Add version string (branch/version) to the debug overlay when F3 is active.
Also add a new keyboard shortcut (B key while F3 is held) to copy the
version string to the clipboard and show a confirmation message. This
improves debugging and support by making version information easily
accessible.
A comma between "item.armor.equip_generic6" and "damage.critical" was
accidentally dropped during an upstream merge, causing the two entries
to be concatenated into a single string literal at compile time.
This produced an invalid sound key and led to crashes when:
- equipping armor
- triggering critical hits
The string identifier for the Elder Guardian entity was set
to `IDS_GUARDIAN_ELDER`. This has been changed to the
consistent identifier `IDS_ELDER_GUARDIAN`.
Additionally, the localization file has been updated to include the
missing string definitions for both `IDS_GUARDIAN` and
`IDS_ELDER_GUARDIAN`
The hardcore difficulty label was using the raw string ID `IDS_HARDCORE` (oops)
instead of a localized string, which caused a crash in the UI.
Replaced `IDS_HARDCORE` with `app.GetString(IDS_HARDCORE)`
Add virtual `canMoveSlider` method to UIScene base class and override it
in both LoadMenu and CreateWorldMenu scenes. The method returns false
when attempting to move the gamemode slider while hardcore mode is active,
effectively locking the slider in that state.
The UIController now checks `canMoveSlider` before initiating a slider
drag and during ongoing drag updates.
* f3 menu text scaling
* Reduce overscaling above 1080p
Restores original scaling for 1440p to try and keep the text size more
sane on high DPI monitors
---------
Co-authored-by: Loki Rautio <lokirautio@gmail.com>
Replace the hardcoded string literal "Hardcore" in the difficulty slider
label with the localization resource identifier `IDS_HARDCORE` in both
the load menu and create world menu scenes.
The previous implementation only indexed files in the root directory,
ignoring files in subdirectories. This change adds recursive traversal
to index all files within the folder hierarchy while maintaining
relative paths for compatibility.
Replace the ArchiveFile-based media asset loading system with a new
FolderFile implementation that reads files directly from a folder
structure instead of from compressed .arc archives. This change
simplifies asset management and eliminates the need for pre-packaged
media archives.
Key changes:
- Added FolderFile class that indexes and reads files from a folder
- Updated Consoles_App to use FolderFile instead of ArchiveFile
- Modified CMake asset copy configuration to exclude platform-specific
media folders instead of .arc files
- Updated platform-specific media path references to point to folders
instead of .arc files
This enables easier development and debugging by allowing direct access
to media files without requiring archive extraction or repackaging.