ItemTemplate follows ArcItemTemplate_Load (sb.exe 0x4AABD0): weapon and
armor blocks keyed by item type, sheath and stub blocks, and empty equip
slot masks read as empty sets. Adds SheathSlot and readHashLabel, which
keeps unresolved hashes such as item_skill_used in 195340.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Grant pair lists now carry name strings ("HLR-021", "Unarmed Combat")
instead of integer hashes, so they are stored as name -> value maps.
Unresolved hashes are kept as their decimal string and logged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
RuneType covers the rune_type values in the client cache data
(CLASS, DISCIPLINE, RACE, TALENT). ANTISIEGE matches the
combat_attack_resist key in the cache data.
RuneTemplate.rune_type and combat_attack_resist on both cache
templates now use these enums.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
New engine.parsers package:
- cache: DeedParser and RuneParser load COBJECTS/DEED and COBJECTS/RUNE
JSON straight from the data dir, keyed by file id. CacheParserUtil
holds the shared JSON helpers.
- objects: standalone DeedTemplate and RuneTemplate covering every
field in the client data, plus shared PowerGrant/UserPowerAction.
- wpak: placeholder for upcoming wpak parsers.
Not wired into server startup yet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>