1
0
Fork 0
mirror of synced 2024-05-19 12:02:54 +12:00
Commit graph

136 commits

Author SHA1 Message Date
loathingKernel 3b721fdd13 WinePathResolver: Disable pylint check (possibly-used-before-assignment) 2024-05-16 19:29:14 +03:00
loathingKernel d16b3d5d68
Runners: rename proton to steam 2024-02-18 12:50:35 +02:00
loathingKernel 582b83c12b WIP 2024-02-12 21:52:08 +02:00
loathingKernel 3fe02e5026 GameProcess: Reset tried connections after accepting the dialog.
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2024-02-12 21:52:08 +02:00
loathingKernel 6be9eec3ef Rare: Offline mode kinda works again 2024-02-12 21:52:08 +02:00
loathingKernel 3313f15c9f WineResolver: Fix proton command invocation 2024-02-12 21:52:08 +02:00
loathingKernel 8bde2c2c6d Rare: Import platform specific modules only on the relevant platforms 2024-02-12 21:52:07 +02:00
loathingKernel cd1743cb92 GameSettings: Re-strucure settings widgets
The default widgets only implement the settings for the `default` "app_name"
The game specific widgets sub-class the default widgets and implement
whatever they additionally need locally.

Remove multiple calls to save config and save when the game settings gets hidden.
2024-02-12 21:52:07 +02:00
loathingKernel af6d7c5055 Various WIP
* Use `vars()` instead of directly accessing `__dict__`
* Remove `auto_update` from RareGame's metadata
* Correct check for updating the Steam App ID (We want to keep any changes from the user)
* Collect both Wine and Proton prefixes when removing overlay registry keys.
* Add few convenience functions in config_helper and paths.
2024-02-12 21:52:07 +02:00
loathingKernel 3c01cfc0a8 EosOverlay: Fix a few remaining issues
* Don't create path when preparing overlay download, it fails on updates.
* Concatenate the overlay install path in InstallDialog instead of passing it as `base_path`
* Respect RareGame state in in the EOS overlay form
2024-01-19 14:54:09 +02:00
loathingKernel 7ae06ff5d8 RareCore: Move entitlements request into an independent worker
Yes, we are back at this. Entitlements are important to have early
as Ubisoft redemption requires them, and they don't depend on anything
else.

* Move config helper initialization into RareCore to make it available
earlier.
2024-01-19 01:28:10 +02:00
loathingKernel 89486f882e EOSGroup: Add the option to select which overlay installation to enable 2024-01-19 00:57:16 +02:00
loathingKernel 3c43da1594 RareCore: Add options to exclude non-asset games and entitlements from startup
* Add options in settings to not request non-asset games and entitlements.

This greatly improves startup time but reduces functionality a bit. Both
options are disabled by default.

* Remove the old options to exclude Win32 and Mac games as they were no longer relevant.

* Add a performance context manager to log execution time when used.

* Fixed an issue with UbisoftGroup where multiple threads would spawn.
2024-01-19 00:57:16 +02:00
loathingKernel a246f4ee16 EosGroup: Remake the UI and integrate with Rare's facilities
* Uninstalling the Overlay now goes through the same procedure as
uninstalling any other game.

* The available prefixes are now listed instead of hiding them inside
a combo box.

* Each listing works indepedently to enable/disable the Overlay for the prefix
2024-01-19 00:57:16 +02:00
loathingKernel 9d3e9fecea GameProcess: Add more information in the failure message when a timeout occurs 2024-01-18 16:44:27 +02:00
loathingKernel 9b10a48704 ImageManager: Reduce thread count even more 2024-01-18 16:43:03 +02:00
loathingKernel fd22d831eb Rare: refactor timer names 2024-01-02 11:18:31 +02:00
loathingKernel 2cbe6cadd9 Rare: Add launchable addons as games in the library 2024-01-02 11:12:00 +02:00
loathingKernel 6d3dd3784e
RareCore: Temporarily disable automatic egl sync and remove UI option.
Also set some more defaults for legendary because Rare lacks support for
them. Forced at startup.

* Set `disable_auto_crossover` to `false` because we don't support CX yet.
* Set `egl_sync` to `false` because issues.
2023-12-23 13:38:29 +02:00
loathingKernel bc485ed40b
RareCore: Don't delete overlay RareGame at exit 2023-12-17 19:34:08 +02:00
loathingKernel 1cf53e3b54
Library: Filter unreal engine entries expect for the dedicated option 2023-12-16 20:26:56 +02:00
loathingKernel b93435d920
Lgndr: Disable legendary's update checks and ignore config file options 2023-12-16 16:23:58 +02:00
loathingKernel bfa2335551
RareCore: Strengthen config initialization and checks
* Check if the `default_platform` option exists and it is correct
* Check if `install_dir` and `mac_install_dir` are already set
2023-12-16 15:40:01 +02:00
loathingKernel 8e573083ad
RareCore: Set install_dir and mac_install_dir on new configurations. 2023-12-16 13:52:06 +02:00
loathingKernel c3bdffcd50
RareCore: Check if LEGENDARY_CONFIG_PATH is set before creating a new config 2023-12-16 00:39:00 +02:00
loathingKernel 097b76fc6b
FetchWorker: Update strings MacOS -> macOS 2023-12-15 23:30:13 +02:00
loathingKernel 1677ea762c
FetchWorker: Fix issue with missing MacOS assets on MacOS
Using `LegendaryCore.get_game_and_dlc_list` with platform `Windows`
updated the assets only for the `Windows` builds of the games missing
`Win32` and `MacOS` assets on clean installs. This caused Rare to not
include MacOS install options on MacOS (duh!). This might also have been
the cause that users were unable to launch games, since they where only
offered the `Windows` build of the games (big duh!).

To fix this, fetch the assets for `Win32` and `MacOS` games before getting
the final list of games and dlcs based on the `Windows` platform.

In this regard, also re-use the existing options for getting metadata to
give the option to the user to include them when updating assets. Also add
an option to include Unreal engine assets which until now were fetched
unconditionally.

* Include Unreal: When the user option is `true` or debugging.
  Defaults to `false`
* Update Win32: When the user option is `true` or debugging.
  Defaults to `false`
* Update MacOS: Force on MacOS, when the option is `true` or debugging on
  other platforms. Defaults to `true` on MacOS and is disabled,
  `false` on others

Furthermore, respect legendary's `default_platform` config option and
set it in the config on new configurations. The new method in our
LegendaryCore monkey allows us to use that option in RareGame when doing
version checks on not installed games, and not defaulting to `Windows`.

Finally, set `install_platform_fallback` to false in a new config to
avoid unwanted side-effects.
2023-12-15 16:57:32 +02:00
loathingKernel 687218d29b
RareGame: Return values only from Game for app_name and app_title
With launchable DLCs we will need to replace the InstalledGame in the
DLC with the InstalledGame from the base game so depend these properties
solely on the Game attribute. Furthermore, since we do not need backwards
compatibility any more, remove the `title` property and rename its uses
to use `app_title`
2023-12-14 23:08:29 +02:00
loathingKernel 0503cb1bb4
VerifyWorker: Use verify_stdout factory instead of direct assignment 2023-12-10 22:44:59 +02:00
loathingKernel 90f55287c0
WineResolver: Fix typo 2023-12-10 14:22:28 +02:00
loathingKernel 99eaf86507
AccountWidget: Add a Quit button in the widget in case the system tray
is unavailable (for example running in a gamescope session)

* Do not show the launch window while instantiating the application. This
probably was causing numerous issues because it was running outside of
the applications event loop. This also fixes the exit button on the login
dialog requiring `sys.exit()` to quit Rare. Now it goes through the
proper cleanup procedures.

* Make slot and signal names more uniform

* Fix a problem with RareCore connecting RareGames to the same signals
multiple times when the library was refreshed.
2023-12-10 14:21:39 +02:00
loathingKernel ba65ffa905
Wine,WineResolver: Add more logging 2023-12-10 14:21:37 +02:00
loathingKernel 9a941e3001
Wine: Set environment through flatpak-spawn arguments
Partially fixes #305
2023-12-10 14:21:37 +02:00
loathingKernel c2676eaa90
GameProcess: Don't spam with not found processes on startup 2023-12-07 19:39:07 +02:00
loathingKernel 9aae822295
Lgndr: Import legendary changes 2023-12-01 13:21:44 +02:00
loathingKernel c063f5f5b9
Library: Move image loading from RareCore to the GameWidget
Instead of loading images in the showEvent of the MainWindow,
load them in the showEvent of each widget. It seems to reduce
the startup stuttering this way. With some more work
we can only load the images for the widgets that are currently
visible and reduce the stutter even more.

At the same time, reduce the number of concurrent downloads
in the image manager and add a timeout so we won't halt.
The exception from the timeout is just logged at this point,
and the download is not requeued.
2023-11-29 12:50:02 +02:00
loathingKernel c0ac23b21d
Ubisoft: Update Ubisoft redemption widget to use RareCore
* Load and populate Ubisoft information when the page is shown instead of startup.
* List all Ubisoft games, and differentiate based on whether they been redeemed.
2023-11-28 17:15:45 +02:00
loathingKernel d6809c287e
RareCore: Fix a problem with dialogs spawning multiple times.
RareCore was connecting RareGames to the same signals
multiple times when the library was refreshed.
2023-11-28 16:38:03 +02:00
loathingKernel d11faa5263
ImageManager: Remove leading space 2023-11-28 16:38:00 +02:00
loathingKernel adaf90f0a8
RareGame/RareCore: Add add_dlc method to connect a dlc with the main game
Move validation after the DLCs have been added so the can be uninstalled
too if the game can't be found.
2023-11-28 16:37:59 +02:00
loathingKernel b2722b6ceb
RareCore: Init default sections if they are not in the config file.
Fixes: #296
2023-06-11 13:40:00 +03:00
loathingKernel 1f06c87743
ImageManager: Few improvements
Check if there is a `keyImages` attribute before accessing it, and return
an empty list in case it isn't available. Fixes a recent crash with
`Prison Architect - eureka Update 1` DLC.

Exit early from `download_image` if the requested image is currently being
downloaded. This avoids multiple preparations and loading callbacks for
queued images.

Remove checking for supported OS when creating the icon. Now we create
icons in `icns` format for `Darwin` irregardless the fact we don't use them
for anything.
2023-06-05 01:33:11 +03:00
loathingKernel 605a5050af
RareGame: Make owned_dlcs a set
By making the attribute into a set, we avoid adding already existing dlcs
back into it when refreshing the library. Fixes duplicated entries in
the DLC page.
2023-05-29 16:40:45 +03:00
loathingKernel 5307932656
RareCore: Replace individual fetch workers with a single one.
The workers where co-dependent anyways as the non-asset worker
was started after the games worker had sent back its results.
By combining them we can move any data manipulations to the worker
and simplify the handling in RareCore.
2023-05-29 16:40:36 +03:00
loathingKernel 5ce9a2edfa RareCore: Handle exception when fetching non-asset games
https://discord.com/channels/826881530310819914/884510635642216499/1111321692703305729
There is a tab character in the appId of Fallout New Vegas: Honest Hearts DLC, this breaks metadata storage
on Windows as they can't handle tabs at the end of the filename (?)
Legendary and Heroic are also affected, but it completed breaks Rare, so dodge it for now pending a fix.
2023-05-26 19:11:58 +02:00
loathingKernel 737730583f ImageManager: Check if desktop icons are supported on current plaform
Before creating icons, check if desktop links are supported by Rare
on the current platform.

Fixes Dummerle/Rare#262
2023-05-14 22:13:12 +02:00
loathingKernel 82128e35ca
RareCore: Use correct typing identifier 2023-05-03 17:27:36 +03:00
loathingKernel 0e4e7420cf
Refactor: Move ImageSize to models
`ImageSize` is a property of `ImageWidget` it is relevant to
`ImageManager` and the store widgets. So move it out of `ImageManager`.
2023-05-03 17:27:35 +03:00
lennard 5cfd3fffe3
Fix offline mode 2023-04-16 19:38:26 +02:00
loathingKernel e9b9f91df8
ImageSize: Include reference to the base image preset
"Base" refers to the preset used fetching and storing the image
2023-04-04 13:30:40 +03:00