diff --git a/docs/todo.md b/docs/todo.md index 35da57e..529e128 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -123,8 +123,33 @@ in-game texts/tooltips that name the old keys): | 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. +## Hard-coded game keys left (2026-10-19) + +Noted after the key bindings page (docs/options.md): these game keys are +still hard-coded, not on the page. Each would go the way M / Tab / Alt went: +switch the game's key off at its source (switch index byte or compare), add +a binding that calls the same game code. + +| Key | Where | What (as read, not all measured) | +|---|---|---| +| I / F / C | UI manager letter switch (`0x757120`, cases at index bytes `0x75868c` + char − 'C') | inventory window with tab 1 / 2 / 3 (`cCommand_onInvOpen`; again: close) | +| L | same | quest book `UI_WND_QUESTBOOK` toggle | +| H | same | toggles UI manager flag 0x200 (unmeasured) | +| T | same | toggles UI manager flag 0x1000 (unmeasured) | +| N | same | network info `UI_WND_NETINFO` (multiplayer only) | +| O | same, only while the options window is open | closes options (applies them) | +| S | same (`0x757775`) | save game window; works only while S is not bound (it is: *Nach unten*). *Spiel speichern* already calls this code. | +| A | engine `cEngine::ReceiveEvent` (`0x618130`, compare at `0x6188e7`) | pick up items nearby; same situation as S (A is *Nach links*); *Gegenstände aufheben* calls the code | +| P | engine (compare at `0x6188f0`) | pause, single player only | +| `` ` `` / ^ / `\` (key codes 0x60, 0x5e, 0xdc) | engine (`0x6188cf`), UI manager (`0x75758c`, `0x75759c`) | console | +| Esc | engine, UI manager `HandleEsc` | closes windows / ESC menu (escape.cpp builds on it) | +| Shift + Space | engine potion table (off with the potion keys) | - | + +Digits 0-9 are taken by the skill keys (input.cpp `Reserved`). Bound keys are +swallowed before the game sees them, so a game key only acts while it is not +bound to something else: rebinding *Nach links* away from A brings back the +game's A (pickup), same for S. Individual windows may have more keys of +their own (not surveyed). ## Potion stacks