Characters: one file per character with a world per difficulty
- CharacterNN.sacredK holds the shared hero and one world per difficulty, plus an autosave file; the game works in save\characters\_work - Load window: one row per character, a difficulty dialog on Laden (worlds, newer autosaves, "(neu)" starts a new game with the shared hero), Umbenennen, delete moves the character to characters\deleted - The world keeps its own portals and hero position when the shared hero is put on - K and the Esc menu's "Speichern" save directly (quicksave path) - One-time migration of the old save rows and exported heroes, after a backup - Startup no longer hangs in the game's foreground loop (0x810af0) - Text overrides apply to our own text ids too; shared cUI_Button2 helpers in game/ui/button.h Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
5df7efc198
commit
5bccb0734e
16 files changed
+2052
-64
No files matched your search
@@ -166,3 +166,33 @@ The hero sometimes plays a walking animation after a save game load while
|
||||
standing still. Not reproduced yet: a load log (hero mode, action, animation
|
||||
fields, orders) showed nothing unusual; right after a load the game itself
|
||||
sends one walk order (0x4) while the hero is idle. Measure again when it shows.
|
||||
|
||||
## Multiplayer with characters (2026-10-19)
|
||||
|
||||
Characters became one file each with a world per difficulty
|
||||
(`docs/characters.md`); vanilla multiplayer picks exported `Heronn.pax`
|
||||
heroes, which no longer exist. Later: give multiplayer the shared hero of a
|
||||
character file (the session's hero file +0x3a3c, as `SelectHeroSlot` does),
|
||||
and decide what a multiplayer game does to the character's progress.
|
||||
|
||||
## Characters: open parts of the rework (2026-10-20)
|
||||
|
||||
From the characters rework (`docs/characters.md`, request of 2026-10-19):
|
||||
|
||||
- **Unlock difficulties by story completion.** Bronze and Silber stay open;
|
||||
difficulty d >= 2 opens when the story on d - 1 is completed. The counters
|
||||
are one byte per difficulty in cStatsManager +0x5704 (read 0x424be0) and
|
||||
travel in the save header (+0x88..+0x98) and the hero file. Today every
|
||||
difficulty up to the highest played one is offered (and Silber).
|
||||
- **Reset a difficulty.** Remove one world from a character (the shared hero
|
||||
stays); a button / dialog entry in the load window.
|
||||
- **Remove the export / import UI.** The Esc menu's "Exportieren" and the
|
||||
character screen's import (cUI_Character mode 5, `docs/char-export.md`):
|
||||
characters replace exported heroes.
|
||||
- **Silent autosave every 10 minutes** (a setting later) into the
|
||||
autosave file, without the busy dialog, like the direct save
|
||||
(`SaveOnTick`) but marked as an autosave.
|
||||
- **Quickload (row 0) does not know characters.** Ctrl+Z saves into the
|
||||
current character, but the quickload event (0x116, engine +0x68 = row,
|
||||
flag 0x200) loads `GAME00.PAK`, which is not listed; make it reload the
|
||||
current character's world (or its newer autosave).
|
||||
Reference in new issue
Block a user