Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare for 1.10.9 #338

Merged
merged 34 commits into from
Dec 17, 2023
Merged

Prepare for 1.10.9 #338

merged 34 commits into from
Dec 17, 2023

Conversation

loathingKernel
Copy link
Contributor

@loathingKernel loathingKernel commented Dec 15, 2023

Changes

  • Initialize the library once the window is visible, instead of application initialization
  • Make library icons slightly smaller. This is temporary and a test if we should make them adjustable.
  • Various text input fields will also show their documentation on hover as a tool-tip.
  • Add a new setting to change the default installation folder for native games on macOS
  • Update the installation dialog to be more easier to use.
    • Show the correct path when updating/repairing/modifying an already installed game.
    • Disable immutable options in the interface when updating/repairing/modifying an already installed game.
    • Offer the correct installation folder on macOS if the game is native.
  • Validate some important to Rare settings in Legendary's configuration file at startup.
  • Do not check for Legendary updates when starting the application for a slightly less startup time.
  • Default to macOS games on macOS when starting Rare for the first time.
  • Add platform selection when importing games. Available only when importing a single game.
  • For multiple game import the current OS will be assumed as platform and fallback to Windows if the game doesn't support it.

Bug fixes

  • Fix a bug on macOS that cause it to load only the Windows assets. This caused Rare to only offer the option to install the Windows version on macOS.
  • Respect LEGENDARY_CONFIG_PATH if set when creating a new configuration.
  • Use the same default paths as Legendary instead of hard-coding our own everywhere.
  • Do not assume Windows platform when importing games.
  • Unreal Engine is now excluded from all other filters except for the dedicated Include Unreal Engine in the library.
  • Add some more logging all around Rare.
  • Hide proton settings on macOS

Internal

  • Fix FlowLayout issues that caused overlapping widgets and required using update() on the layout
  • Reduce RareGame clutter by removing duplicate methods

Previously the Display and Library presets were equal. Make the
icons smaller by making the Library preset ~75% of the Display.preset
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`
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.
… option

Used only when installing macOS games on macOS, in any other OS
the setting is set to the same value as `install_dir`
* Infer the displayed to reflect where the affected directory is
  If base_path is set outside of InstallDialog, display that.
  If the game is already installed, show the installation directory
  If neither of the above is true, use legendary's inference based on
  the default platform if the game supports it. Fallback to Windows.

* Disable irrelevant and potentially harmful options when the game is
  already installed, such as the installation path, the platform selection
  and creating a shortcut.

* Infer the correct platform based on the existing installation. If it
  is not installed, use the default platform if the game supports it and
  fallback to windows.

* Move the horrible lambda used to populate the error box when the
  platform was unsupported into a separate method.
This property reports the default platform to use for a game based
on legendary's configuration and if they platform is available in the
game's assets.

Using that property we can make better choices on what platform to operate
on without user intervention. Currently we use it to infer the platform
in when installing, importing, and calculating game versions.
* Check if the `default_platform` option exists and it is correct
* Check if `install_dir` and `mac_install_dir` are already set
@loathingKernel loathingKernel changed the title Prepare for 1.10.8 Prepare for 1.10.9 Dec 16, 2023
@loathingKernel loathingKernel merged commit 2803319 into RareDevs:main Dec 17, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant