1
0
Fork 0
mirror of synced 2024-06-30 20:20:53 +12:00
Commit graph

86 commits

Author SHA1 Message Date
lennard f1fa0ada1a Open cloud save dialog after playing a game, if no action set on start 2023-04-08 01:03:14 +02:00
Dummerle 3f17a69e65
Merge pull request #272 from loathingKernel/fixups
Show environment variables from the "default" section in per-game settings.
2023-04-07 19:37:56 +02:00
loathingKernel fee96a5f9d
[RareGame] Apply state if the game is found to be running at startup 2023-04-06 23:41:23 +03:00
lennard 0186b4f3c4
Add documentation for is_non_asset
{'Windows': GameAsset(app_name='', asset_id='', build_version='', catalog_item_id='', label_name='', namespace='', metadata={})}
2023-04-05 13:32:35 +02:00
lennard ea0f40bb41 Update game state, when saves updated 2023-04-05 13:09:34 +02:00
lennard 9233c28e5b Update loading widget 2023-04-05 13:09:34 +02:00
lennard 37a8a052c8 Add loading widget to cloud saves 2023-04-05 13:09:34 +02:00
lennard 3ec6a45cc3 Add double check for game assets and fix error in cloud save dialog 2023-04-05 13:09:34 +02:00
loathingKernel 459828f1de
RareGame: Initialize steam_date and last_played to datetime.min
Due to some metadata corruption, metadata now gets locked before
being accessed
2023-03-31 14:02:01 +03:00
loathingKernel 8e6503758c
RareGame: Store steam grade and its fetch date in metadata 2023-03-29 18:02:48 +03:00
lennard 554d3557d3
fix auto sync saves 2023-03-19 20:23:44 +01:00
lennard 3874fac402
Sync saves when game finished 2023-03-18 16:14:01 +01: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 a768bce996
RareGame: export .egstore only after installing and successful verification 2023-03-16 18:07: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
Stelios Tsampas 2ebc12b1f5 LgdnrCore: Add egstore_write and egstore_delete methods
`egl_unintall` and `egl_export` try to access EGL's programdata folder which raises an exception if the folder doesn't exist (Windows) or it isn't specified (Linux). Copy the relevant bits from LegendaryCore to LgndrCore and create two new methods that only manipulate the `.egstore` folder.
2023-03-15 17:59:33 +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 b7d499f3e1
RareGame: Add is_ubisoft property 2023-03-13 14:39:14 +02:00
loathingKernel a7b85500f2
RareGame: Clean and export .egstore after updating igame
When importing a game, the first thing being checked for import information
is `<install_dir>/.egstore`. Due to erroneous handling, that directory can
contain multiples of `.mancpn` and `.manifest` files. This could lead to
importing an older version as legendary expects only one pair of these
files to exist in that directory.

The `.egstore` folder is normally updated/created as part of synchronizing
with EGL. To aid with importing games in the future, we always export this
data for Rare to be able to import games between different OSes
2023-03-13 12:29:04 +02:00
loathingKernel a6b10a6ec4
RareGame: Don't emit widget.update in set_installed
`set_pixmap()` handles emitting `widget.update`
2023-03-12 18:57:30 +02:00
loathingKernel 801294b1ea
RareCore: Resolve grant date from entitlements at post init 2023-03-12 14:43:54 +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 fc015a4d30
RareGame: Update saves when a game exits 2023-03-11 01:32:04 +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
loathingKernel 3adabda1ba
ImageManager: Add OfferImageTall to the set of image types to look for
Seems like Epic are changing their API again, and some image types have been renamed. This made the list of updates to be empty after filtering it for image types we could handle. This also had the side effect of an infinite recursion when downloading images, as the resulting pixmap would be null.

To fix this situation, the new image type has been added, and the image loading in RareGame has become two methods, one for loading and one for setting it.

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-10 10:35:31 +02:00
lennard 901f339415
Only auto sync in launch helper if enabled
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 22:29:53 +02:00
lennard 45ecaa39f3
Add sync worker to launch helper
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 22:27:02 +02:00
lennard 63e4223a96
Move slim RareGame to different file, to avoid circular import
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 22:14:19 +02:00
lennard 4ec1f39109
Update cloud widget, when state changed
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 21:22:38 +02:00
lennard 70960c73c4
Some ui improvements for cloud saves
- Show text on widget if save is not up-to-date
- Fix text in game info -> cloud saves

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 18:54:27 +02:00
lennard 189167f4f7
Add upload and download function to RareGame
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 18:34:26 +02:00
lennard a66600efa3
Move cloud save ui to a new tab in game_info
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 17:46:26 +02:00
lennard efc07e4645
Add install size for origin games and move it to thread on windows
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:23 +02:00
lennard 32de2c21a1
Move registry reader for origin games to a worker
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:22 +02:00
lennard eec3dfeb1e
Fix some rebase errors
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:22 +02:00
lennard 1938bd7084
Fix is_foreign()
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:22 +02:00
lennard 2258d87c83
Cache registry files for performance
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:22 +02:00
lennard 1ac1fd89f8
Show install path for origin games in game info
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:22 +02:00
lennard b926dd112c
Enable origin install check on linux and add some performance improvements for linux
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:21 +02:00
lennard 9733e119c9
Show install path for origin games in game info
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:21 +02:00
loathingKernel 5748d0e6ee
RareCore: Manage initialization in RareCore instead of LaunchDialog
This is the last change of the `backend_refactor` branch. This makes
`RareCore` the centerpiece of Rare by moving initialization before the UI
is brought up. RareCore is now in control of creating and querying `RareGame`
objects, re-introducing the ability (incomplete) to refresh the games library.
As a result, ApiResults has been removed.

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:21 +02:00
loathingKernel dea01ae24b
RareGame: Origin games should be able to launch despite not being installed 2023-03-07 17:11:20 +02:00
loathingKernel a3d09ae288 Code cleanup: Use pass instead of ellipsis (...) for abstractmethods
Fix a few other issues pointed out by MultisampledNight

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-20 15:31:04 +02:00
loathingKernel 9b856e5f8e InstallDialog: Allow downloading 0 size DLCs
There are DLCs (for example KingletAztec) which are essentially
entitlements, a single file the allows access to already downloaded
content. Updates for such DLCs only change the metadata version number
without any actual new data. These DLCs are handled correctly by the
DLM, but our dialog would refuse to allow installing them due to 0 download
size. This change allows them to pass through the InstallDialog.

The other issue, which I don't know if it was only a result of our faulty
validation at startup or could occur in legendary too, is that a DLC might
be marked with needing verification. Currently we don't have a way of
verifying DLCs, so when verifying the game, we will also set the same
state for any installed DLCs. In effect verifying the game successfully
will also mark any DLCs as correct.
2023-02-17 10:37:44 +02:00
loathingKernel 6c0663771c GameInfo: Make widgets react to changes from RareGame's widget.update signal
Note: the `__update_widget()` method, while it doesn't have any visible delay
has the potential for improvement. I didn't do it because it felt like
premature optimization.

MoveGamePopUp: update it to use RareGame and it's signals

RareGame: Add `install_path` attribute and change `needs_verification` setter
Now both setters will update the local `igame` attribute and save it too.

MoveWorker: Update it to use RareGame.
Other changes include moving "same-drive" moving into the worker and using
`os.path` methods instead of `PathLib`

SteamGrades: Remove worker, it is implemented in RareGame now.
2023-02-15 16:59:33 +02:00
loathingKernel 9f408772e3 RareGame: Resolve and cache steam grade 2023-02-14 10:20:59 +02:00
loathingKernel abba86e10b RareGame: Create intermediate class RareGameSlim between RareGameBase and RareGame
The `RareGameSlim` class is useful mostly in the Launcher as it doesn't
depend on `ImageManager`. I should hold anything required by the Launcher.
2023-02-09 01:37:53 +02:00
loathingKernel f2490f065b RareGame: Create common base class for RareGame and RareEosOverlay.
It contains some common methods as well as the `State` enumeration
and the `Signals` class.
2023-02-08 15:13:02 +02:00
loathingKernel 359157fac3 RareGame: Add property to get the unprocessed save path 2023-02-07 16:02:04 +02:00