ArcZoneEvent_BuildFrom (sb.exe 0xC8ED20) builds ArcZoneEvent,
ArcZoneResourceEvent (0xC904F0) or ArcZoneStateEvent (0xC952E0); Python
read the base fields only for all three and had no save or JSON code.
Field names come from each class's ParseKeyword; trigger types and
state actions use the client name tables (0x176AF20, 0x176A40C).
Base event unknowns are the event-name hash, parent-name hash and
has-parent flag; the trigger action's third bool is has_items.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The client's use flag name table (sb.exe 0x16C9728) has None at bit 0,
so USE_SELF is bit 1 through EMPTY_NEWITEM at bit 4. Names in the JSON
were one bit low.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>