-
fix: correct SharedData entity type and rename all SpecialFireSubtype/WormState
paavohtl +1: Claude Opus 4.6 (1M context) SharedData key (0, 0x14) returns CTaskTurnGame, not CTaskTeam.
CTaskTurnGame overrides HandleMessage (0x55DC00) with turn-flow logic
that CTaskTeam::HandleMessage (0x557310) lacks — end-turn handler,
surrender sound. Calling CTaskTeam directly caused 1-frame retreat
time differences and broken round endings in 6 replays.
- lookup_team_task -> lookup_turn_game, returns *mut CTaskTurnGame
- All callers use CTaskTurnGame::handle_message_raw (vtable dispatch)
- Renamed all SpecialFireSubtype variants from wrong old mapping to
confirmed weapon->sub34 values from replay test logs
- Renamed 7 WormState variants to match actual weapons (FirePunch=0x6C,
Kamikaze=0x6D, PneumaticDrill=0x6E, Blowtorch=0x71, SuicideBomber=0x75)
- Renamed handler functions (fire_freeze->fire_girder, fire_air_strike->
fire_teleport, fire_jet_pack->fire_scales_of_justice, etc.)
- Added Parachute=12 to SpecialFireSubtype
- TeamMessage::StrikeFire -> Surrender
- Added napalm and bomber_parachute replay tests
Co-…