Changed components versions to 4 latest versions of 4 first groups
Fixed prefix creation due to random weird issue
Disabled dlls repairing on dxvk applying
Before it couldn't get list of available wine/dxvk versions because
on first run launcher obviously doesn't have `components` folder
and it needs to be synced with one of remotes
I've added here status page and heavy tasks system to the first run window
as it works now on the main window, and now
components are synced there behind status page
As well was updated SDK with fixed `Installer::get_filename` method
which will fix issue with stuff downloading
closes https://github.com/an-anime-team/an-anime-game-launcher/issues/91
Note that I changed the language names to lookup from {lang}-{region} instead of
just {lang}, because Genshin Impact supports both zh-cn and zh-tw locales.
zh-tw's tranlsation is different zh-cn.
This commit adds the translation and registers the language in the code,
so that french translations show up in the launcher.
This translation, though not perfect should be understandable to most
French speakers :) If you have any comments or suggestion, feel free to
leave them here!
FSR, NIS and Integer scaling got separate "upscaling" section in gamescope settings.
As well were added descriptions so users can actually
know what e.g. integer scaling is
Standard German language code is `de` but game API requires it to be `de-de`.
With this change formatted locales always will have
region so always will fit game requirements
New core library version contain updated voice packages sizes
for more precise versioning
New SDK version's `game::run()` function freezes thread
so now game launching should work better
As part of launchers' unification process we decided to get rid of both neutralino and gtk versions
and release Relm4 version as default and only one with its own id
Added `--run-game` and `--just-run-game` flags which can be used to run the game
1st will launch the game if launcher state is `Launch`.
Otherwise launcher window will appear
2nd will launch the game on `Launch` state,
as well as on `PredownloadAvailable` and `PatchAvailable(Patch::NotAvailable)`.
As well process stopping was changed by proper app exiting
by calling `relm4::main_application().quit()`
Some messages (relm4 component's input commands) were renamed
Added `UpdateLauncherState` message to, well, update launcher state.
By calling this status page will appear with information about
current status getting progress
Added some new error messages. Before, heavy tasks
were sending errors only to tracing logs. Now they also will generate toast messages
Added patch applying functionality to the main button.
Also made main window disappear when the game is running (like it works now in GTK launcher)
Improved `i18n` mod to list supported languages and some other stuff
As well was added `get_default_lang` function
which will return language key based on current system language.
This function is called at the first launcher start
to update default `launcher.language` config property, so user will immediately
have proper language in initial setup window
Previously launcher wasn't downloading background picture if the style was changed from the settings. This lead to situation when the window size and components position is updated, but background is fully transparent. With this change launcher will try to download picture if default background file doesn't exist. Not that launcher won't try to update this picture and this will happen only after restart, which is not an issue, I think
Added blank first run window with welcome page. On first start launcher will create launcher folder and `.first-run` file inside if needed. If file exists - launcher will open first run window instead of the main one (to prevent further data loadings in `init` functions)
- now launcher can use `RUST_LOG` variable to filter logs
- removed "called event" logs from wine/dxvk/progress bar components
Also:
- fixed constant "remove_css_class" gtk errors
- now launcher is able to load some heavy stuff in background
so they will not freeze it during start
- patch status and latest game data is loaded in background from now
- renamed some components and their messages types for consistency
- now `General` and `Enhancements` sections are relm4 components
- this change improves code structure and should help
adding dynamic data loading on app start in future
- settings components are also not async from now because they don't need to
- classic style loads its background from "config's_tmp_path/background"
so from "launcher folder/background" by default
- icons will be changed in some future
- stdout logs got rid of rustls messages and now are pretty styled
- logs are saved into the `debug.log` file in the launcher folder
they're not filtered and contain all the messages
- toasts timeout fixed to 5 seconds
- added "save" button which will, well, not save logs
but open `debug.log` file using `xdg-open`
- updated core library with a few fixes
- improved gamer updater. Now it will not start to download next update
before the previous one was properly applied (hdiff and so on)
Core library changes:
- updated `VOICE_PACKAGES_SIZES`
- added version prediction based on the `.version` file for voiceovers
- fixed redownloading of downloaded files in `Downloader::download_to`
- Updated dependencies, components and the core library;
fixed voiceovers updating issue
From previous commits:
- Fixed `--run-game` flag work
- Fixed predownload button's state updating
- Now launcher will run the game with `--run-game` flag
even when predownloading is available, but if update was already predownloaded
- Added `--just-run-game` flag to run game even when predownloading is available
- updated core library; now launcher will try to repair
failed that were unnable to be patched by the hdiff patcher
- updated components list with new soda version
- limited dxvk and wine versions
Now total amount is 12 versions, where (first) 6 are recommended
- updated core library and components library
- added (likely working) updates pre-downloading functionality
- moved to `anyhow::Result` in lots of places
- fixed panicing when DXVK is not applied (`Config::try_get_selected_dxvk_info`)
- removed 100 option from fps unlocker
From previous commits:
- added support for FPS unlocker
- added support for system wine during initial setup
- added usage of xdg-portals for folders chooser during initial setup
- fixed DXVK applying using system wine
- updated core library; now launcher will continue downloading
of partially downloaded files
- added downloading speed limiter (`config.json` -> `launcher.speed_limit`)
- added `Config::try_get_selected_dxvk_info` method;
now launcher loads currently applied dxvk version from the wine prefix files