Add actuator and creature type catalogs #264
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "refs/pull/264/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #263.
Adds name catalogs and word-1 parameter decoding for Actuator and Creature dungeon records, closing Phase 2's last deferral except the text escape-code 29/30 tables (kept open per the issue).
Sourcing & licensing
dtTextrecords atcls = (0x0f, creature_type, 0x05, 0x00)/cls5 = 0xf0in dos-engraphics.dat, transcribed verbatim (including the game'sTHICKET THEIFandPEDISTAL). A provenance test re-derives the table from the fixture in both directions; mac-us carries the same 76 records byte-identical and is asserted too.DM2_Actu/DM2_Actuators.htm+DM2_A.htm) with citations. Transcription surfaced two structural facts: the type space is single but placement-keyed —0x03,0x08,0x26carry distinct wall vs floor meanings, some rows cover both — and KKDF2's own pages disagree once (0x0eword 3: resolved towardDM2_A.htm's Strength, noted in the format doc).dungeon-dat.md.Library (
dm2-dungeon)New
catalogmodule:creature_type_name(u8),actuator_type_info(u8, Placement),ActuatorTypeInfo { name, placement, word1, word3 }, andParamClass::decodeimplementing the six word-1 bit formats (item class/index with the0x1ffall-items sentinel, missile, map, numeric, creature, hero). Record conveniences:Creature::type_name(),Actuator::type_info(placement),Actuator::decoded_param(placement). The catalog never gates parsing: every lookup isOption, unknown types round-trip untouched.CLI
dm2 extractdungeon JSON: creatures gain"type_name"; actuators gain"catalog"withfloor/wallentries (name + decodedparam), both placements emitted since slot records carry no tile context. Fields omitted when unresolved. The C#-parity-lockedjson::skprojectdump path is untouched.Tests
12 catalog unit tests (bit formats, placement keying, span coverage); the two-directional dos-en provenance test plus mac-us agreement; a 17-dungeon fixture survey pinning the exact uncatalogued sets (actuators
00 02 09 1c 28 29 33 37 3e 7d, creatures03 40 4b 4f) so any new gap or lost entry fails loudly; a CLI test asserting the new JSON fields resolve on dos-en. All tests skip cleanly without the fixture tree (CI).