mud/src/mudlib
Jared Miller b0fb9b5e2c
Wire op_restore to QuetzalParser and filesystem
Implement V3 restore opcode:
- Add QuetzalParser.load_from_bytes() to parse save data from memory
- Wire op_restore to call filesystem.restore_game() and parse result
- Validate IFhd matches current story (release/serial/checksum)
- Restore dynamic memory, call stack, and program counter
- Branch true on success, false on failure/cancellation

Fix IFF chunk padding bug:
- Add padding byte to odd-length chunks in QuetzalWriter
- Ensures proper chunk alignment for parser compatibility

Add comprehensive tests:
- Branch false when filesystem returns None
- Branch false without zmachine reference
- Branch true on successful restore
- Verify memory state matches saved values
- Handle malformed save data gracefully
2026-02-10 10:13:45 -05:00
..
combat Add spawn command and wire mobs into server 2026-02-09 11:54:29 -05:00
commands Wire restore into play command 2026-02-09 16:39:15 -05:00
render Wire client capabilities into Player & terrain 2026-02-07 22:44:45 -05:00
store Add PlayerData TypedDict to fix type errors 2026-02-07 22:13:27 -05:00
world Add world cache to speedup startup 2026-02-07 15:00:07 -05:00
zmachine Wire op_restore to QuetzalParser and filesystem 2026-02-10 10:13:45 -05:00
__init__.py Add first generation 2026-02-07 09:45:48 -05:00
__main__.py Add debug logs to view negotiations 2026-02-07 10:32:11 -05:00
caps.py Add MTTS capability parsing module with client color detection 2026-02-07 22:44:23 -05:00
content.py Add TOML content loader for declarative command definitions 2026-02-07 20:27:29 -05:00
editor.py Fix editor search/replace parsing, dirty flag, and cursor tracking 2026-02-07 23:06:47 -05:00
effects.py Add fly command with cloud trail effects 2026-02-07 14:48:42 -05:00
entity.py Add mob templates, registry, and spawn/despawn/query 2026-02-09 11:54:29 -05:00
if_session.py Strip dfrotz prompt even without preceding newline 2026-02-09 17:55:14 -05:00
mob_ai.py Add mob AI for combat decisions 2026-02-09 11:54:29 -05:00
mobs.py Add mob templates, registry, and spawn/despawn/query 2026-02-09 11:54:29 -05:00
player.py Wire IF mode into server shell loop and player model 2026-02-09 15:57:24 -05:00
resting.py Add rest command for stamina recovery 2026-02-08 22:16:47 -05:00
server.py Add blank line before IF mode prompt to match dfrotz 2026-02-09 17:55:14 -05:00