1
0
Fork 0
mirror of synced 2024-06-28 19:21:05 +12:00
Commit graph

118 commits

Author SHA1 Message Date
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
loathingKernel 74eb87b396
ImageSize: Add smaller size presets for wide images 2023-04-01 00:55:11 +03:00
loathingKernel 748ff6d9ed RareCore: Detect if a game in saves is from another account.
And some cleanup
2023-03-18 14:42:46 +01:00
loathingKernel c3231d9e17
Use object instead of ctypes.c_uint64 for signals that carry large ints 2023-03-16 14:04:12 +02:00
loathingKernel 44590bb92b
Code cleanup
CloudSaves: don't save `save_path` in case it hasn't changed
IconGameWidget/ListGameWidget: Remove dead code
RareCore: add string translations
utils/paths: Use `AppDataLocation` instead of deprecated `DataLocation`
2023-03-16 12:38:33 +02:00
loathingKernel 3236a4090c
RareGame: don't delete .egstore if the game is a DLC
VerifyWorker: use RareGame property to apply the verification check
to any DLCs
2023-03-15 21:20:52 +02:00
loathingKernel ee6a129be8
RareGameSlim: Resolve save game again if dt_local is None
If the save path wasn't known at startup, dt_local will be None. This led
to the UI displaying wrong information about the local save. Detect that
case and resolve the save's status again.
2023-03-14 15:21:10 +02:00
loathingKernel 0cc521ba0b
RareCore: keep configuration when uninstalling a game at startup
We don't need to lose the `install_tags` or any other settings because
a disk might be not mounted.
2023-03-14 01:20:13 +02:00
loathingKernel ec5bf7227b
RareCore: Move validation step after RareGame creation 2023-03-13 14:38:47 +02:00
loathingKernel 4fd723df2e
RareCore: Show progress while preparing RareGames 2023-03-13 00:04:11 +02:00
loathingKernel c10bd59384
RareCore: Move installation validation into the post init phase
Specifically move it just before loading each game's pixmap. We need
the information set by `__validate_installed` to know which pixmap to
load
2023-03-12 18:59:58 +02:00
loathingKernel 801294b1ea
RareCore: Resolve grant date from entitlements at post init 2023-03-12 14:43:54 +02:00
loathingKernel 16400da020
Clean-up 2023-03-12 13:19:24 +02:00
loathingKernel f46dc2209d
RareCore: Move save game fetching into __post_init
Saves is another thing we can fetch later and interact to them becoming
available.
2023-03-12 13:09:09 +02:00
loathingKernel 85998023f0
RareCore: Add asynchronous loading in RareCore for origin and entitlements
Speeds up startup by moving non-essential information loading into a
worker that executes some time after the launch dialog has finished.
2023-03-12 12:44:43 +02:00
loathingKernel f0ba7a7e45
RareCore: Rename RareCore.__games to RareCore.__library
Since RareGame can be both games and dlcs, use a generic name to avoid
confusion
2023-03-12 12:22:44 +02:00
loathingKernel 4e1248a18a
RareCore: Move OriginWineWorker execution in load_pixamps()
We don't need to know if Origin is installed before launching the window,
so we can save on startup time by executing the worker after the window
has become visible.
2023-03-12 01:11:27 +02:00
loathingKernel 8a1dd6c948
RareCore: Sync back the results from OriginWineResolver into the main thread 2023-03-10 21:28:37 +02:00
loathingKernel 81ec9bf772
RareCore: Fetch **ALL** saves during launch
To save time and requests, bulk get saves for all games and
load them into each respective RareGame.

Co-authored-by: Dummerle <44114474+dummerle@users.noreply.github.com>
2023-03-10 17:01:00 +02:00