Saving marks effect objects dead, so after a load the Heldenmut / Klingenblick buff was active but its aura effect (cObjectFX 842) was gone. A few ticks after a save game has loaded, the effect is created again for each such buff of a player hero (CreateAt + cEventFX 0x42, as the art's cast effect does), with the buff's remaining time. Shared game events (game/engine/events): engine tick and "save game loaded" callbacks; the WASD mod uses the tick through it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
39 lines
1.8 KiB
Markdown
39 lines
1.8 KiB
Markdown
# To do
|
|
|
|
## Fixed: aura visuals missing after loading (2026-10-15)
|
|
|
|
Saving marks effect objects (cObjectFX) dead; loading keeps the buff but drops
|
|
the aura effect (type 842) that follows the hero. `src/mods/aura_restore.cpp`
|
|
recreates it after a load for Heldenmut (0x3f7) and Klingenblick (0x3f8). Spell
|
|
auras (Steinhaut, Lichtschild, ...) use other effects and are not covered
|
|
yet; check them if their visuals go missing too.
|
|
|
|
## Better pathfinder (mouse clicks and monsters)
|
|
|
|
Replace the game's pathfinding with a more reliable and efficient one, for
|
|
click-to-move and for monster AI. What we know so far:
|
|
|
|
- Walk orders are `cEvent_creature` command 4 with a ground target (+0x18/+0x1c),
|
|
sent through `cEngine::SendCreatureOrder` (`0x6170d0`), which snaps the
|
|
target to a walkable point (`0x616b70`) and hands it to
|
|
`cCreature::ReceiveOrder` (`0x52e400`, vf18, ~6400 decompiled lines).
|
|
- Far targets (~2000 world units) are rejected or followed badly.
|
|
- Still to map: the path search itself, the sector/tile collision data it
|
|
reads, and how monster AI issues its moves.
|
|
|
|
## Key bindings moved for WASD movement (temporary)
|
|
|
|
W, A and S were game hotkeys. With WASD movement (`src/mods/wasd.cpp`) their
|
|
actions moved to other keys for now; choose final bindings (and update the
|
|
in-game texts/tooltips that name the old keys):
|
|
|
|
| Key | Action | Temporary key (sacred_re.ini) |
|
|
|---|---|---|
|
|
| W | action slot 3 (`cEngine::UseActionSlot`, like Q/E/R/B/Space) | G (`[keys] ActionSlot3`) |
|
|
| A | pick up items nearby (creature event 0x113) | V (`[keys] PickUp`) |
|
|
| S | save game window (`UI_WND_SAVEGAME`) | K (`[keys] SaveGame`) |
|
|
| D | unbound | - |
|
|
|
|
Globally bound letters (engine `0x618130`, UI manager `0x757120`): A B C E F
|
|
H I L M N O P Q R S T W, Space, ^, digits. Individual windows may use more.
|