mud/src/mudlib
Jared Miller d71f221277
Implement V5+ call variants and fix double-byte operand decoding
New opcodes: op_call_vn, op_call_vn2, op_call_vs2, op_catch,
op_check_arg_count. All call variants delegate to existing _call().
ZRoutine now tracks arg_count for check_arg_count.

Fixed zopdecoder double-byte operand parsing for call_vs2/call_vn2:
the old code called _parse_operands_byte() twice, but this method
reads both type byte AND operands together. The second call would
read operand data as a type byte. Refactored into _read_type_byte()
+ _parse_operand_list() so both type bytes are read before any
operand data.

Also fixed the double-byte detection: was checking opcode[0:7] (7
bits = 0x7A for call_vn2) instead of opcode_num (5 bits = 0x1A).
The check never matched, so double-byte opcodes were always
mis-parsed.
2026-02-10 13:48:08 -05:00
..
combat Add spawn command and wire mobs into server 2026-02-09 11:54:29 -05:00
commands Move z-machine restore before interpreter thread start 2026-02-10 11:51:45 -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 Implement V5+ call variants and fix double-byte operand decoding 2026-02-10 13:48:08 -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
embedded_if_session.py Process V3 save branch on restore to advance PC past branch data 2026-02-10 13:15:16 -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 embedded z-machine interpreter into MUD mode stack 2026-02-10 11:18:16 -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