1.4.6.2
--------
**New: switch UI language from the options menu**
- Main menu → **Options** → **Language**: pick a language or **System default** without editing install-folder files.
- Preference is saved to the user ``language.txt`` (portable ``user/language.txt``, or ``%APPDATA%\\SoundRTS\\language.txt`` on Windows installs). Install ``cfg/language.txt`` remains a read-only fallback.
- The user file overrides ``cfg/language.txt``. Choosing **System default** writes an empty user file and ignores a forced language in ``cfg``.
- **Code**: ``clientmain.py``, ``lib/resource.py``, ``paths.py``.
- **Docs**: player manuals, getting started, mod i18n guides, release notes.
**Improvement: Ctrl+F2 selection stats / backpack & gear / large-map viewport**
- **Selection stats panel**: bottom-left portrait + HP/attack/defense/range/speed (Age of Empires / StarCraft-style; full Alt+V list remains TTS).
- **Backpack / equipment visuals**: with Ctrl+F2, open via buttons beside the selection panel; clickable item grid + Use/Unequip/Drop (Shift+V / Ctrl+V keyboard still work).
- **Large-map viewport**: big maps (e.g. cw1) no longer shrink-to-fit; cells stay near the size used on small maps, the rest extends off-screen, and the view follows the focused square (Age of Empires-style).
- The top-right minimap still shows the whole map and outlines the current viewport; left-click jumps square, right-click jumps and issues default order. Small maps still fit centered.
- **Code**: ``clientgame/game_hud.py``, ``clientgame/game_gear_hud.py``, ``clientgamegridview.py``, ``clientgame/game_input_handler.py``.
- **Docs**: player manuals, release notes.
**Fix: auto resume save failed when quitting large maps mid-game**
- **Symptom**: quitting a large map such as ``cw1-mm`` (100×100) logged ``auto save resume skipped: world too large (10000 squares)``, so “continue unfinished game” was unavailable.
- **Cause**: the save path pickled ``local_client.interface`` (pygame fonts, locks, etc.); any dump failure was then mislabeled as “world too large.”
- **Fix**: client ``__getstate__`` omits ``interface`` (UI rebuilt on load); only ``RecursionError`` / ``MemoryError`` are reported as “world too large.”
- **Code**: ``worldclient.py``, ``game.py``, ``clientgame/game_resources.py``.
- **Tests**: ``test_save_resume_pickle.py`` (including cw1-mm round-trip with a fake UI attached).
code:
[url]
https://github.com/tuohai/soundrts-ultimate-version[/url]game:
https://github.com/tuohai/soundrts-ultimate-version/releases/tag/1.4.6.2