Files
firestorm/Gameleap/mw4/Content/Mechs/Sunder/sunder.subsystems
T
e088555b96 Fix content defects found while decompiling V4H packages
Three unrelated source-data bugs surfaced while round-tripping our own
Content/Mechs tree against the decompiled V4H packages. All three were
found because a decompiler verifier disagreed with the shipped data, not
by inspection.

Hellspawn / Sunder: unterminated section headers
-------------------------------------------------
  hellspawn.subsystems:101   [HeatSink10  ->  [HeatSink10]
  sunder.subsystems:120      [HeatSink16  ->  [HeatSink16]

The notation parser keys a page on the bracketed name. With the closing
bracket missing the page name is malformed, so that heat sink's block is
not registered as its own page and its Model/ExecutionState/
InternalLocation keys are absorbed by the preceding page. Net effect: one
heat sink silently missing from each mech (Hellspawn LeftTorso, Sunder
LeftArm), and the preceding sink's location keys overwritten.

CauldronBorn: undefined macro in TwistRadius
--------------------------------------------
  cauldronborn.torso:15      TwistRadius=$(OBSTUSE_TRADIUS)  ->  100

OBSTUSE_TRADIUS is a typo and is defined nowhere in the define tables;
the intended symbol is OBTUSE_TRADIUS (=140). An undefined macro does not
fail loudly - the factory substitutes its own default - so this shipped
for years as a silent fallback.

Resolved to the literal 100 rather than $(OBTUSE_TRADIUS) because the
compiled .torso record in the shipped package holds 100.0f, i.e. the
factory default that has always been in effect. Using 140 would change
long-standing behaviour; 100 preserves it and makes it explicit. Verified
against the packaged record: verify_smallmodel now reports 1280/1280 keys.

Lesson recorded: an undefined macro is not a build error here. Check what
the compiled package actually holds before "correcting" a symbol name.

Co-authored-by: Claude Opus 5 (Anthropic) <noreply@anthropic.com>
Co-authored-by: GitHub Copilot <copilot@github.com>
2026-08-08 16:47:29 -05:00

222 lines
5.0 KiB
Plaintext

[Engine]
Model=sunder.engine
ExecutionState=NeverExecuteState
InternalLocation=CenterTorso
EngineUpgrades=3
[Armor]
Model=Subsystems\Armor.data
ExecutionState=NeverExecuteState
InternalLocation=CenterTorso
ArmorType=Standard
InternalType=Standard
LeftArm=1.35
RightArm=1.35
LeftLeg=1.55
RightLeg=1.55
LeftFrontTorso=1.65
RightFrontTorso=1.65
CenterFrontTorso=2.0
CenterRearTorso=1.0
Head=0.3
[AdvancedGyro]
Model=Subsystems\AdvancedGyroSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=CenterTorso
[Sensor]
Model=Subsystems\SensorSubsystem.data
ExecutionState=ActiveState
InternalLocation=Head
[Torso]
Model=Sunder.torso
ExecutionState=AlwaysExecuteState
InternalLocation=CenterTorso
[SearchLight]
Model=Subsystems\SearchLightSubsystem.data
ExecutionState=AlwaysExecuteState
CriticalHitsTaken=1
Site=site_light
InternalLocation=CenterTorso
[HeatSink1]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=LeftArm
[HeatSink2]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=LeftTorso
[HeatSink3]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=CenterTorso
[HeatSink4]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=RightTorso
[HeatSink5]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=RightArm
[HeatSink6]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=LeftArm
[HeatSink7]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=LeftTorso
[HeatSink8]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=CenterTorso
[HeatSink9]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=RightTorso
[HeatSink10]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=RightArm
[HeatSink11]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=LeftArm
[HeatSink12]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=LeftTorso
[HeatSink13]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=CenterTorso
[HeatSink14]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=RightTorso
[HeatSink15]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=RightArm
[HeatSink16]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=LeftArm
[HeatSink17]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=LeftTorso
[HeatSink18]
Model=Subsystems\HeatSinkSubsystem.data
ExecutionState=NeverExecuteState
InternalLocation=CenterTorso
[MediumBeam1]
Model=WeaponSubsystems\LaserWeaponSubsystem\MediumLaser.data
ExecutionState=NeverExecuteState
CriticalHitsTaken=1
Site=site_ldtorsoport
GroupIndex=1
InternalLocation=LeftTorso
[MediumBeam2]
Model=WeaponSubsystems\LaserWeaponSubsystem\MediumLaser.data
ExecutionState=NeverExecuteState
CriticalHitsTaken=1
Site=site_ldtorsoport
GroupIndex=1
InternalLocation=LeftTorso
[MediumBeam3]
Model=WeaponSubsystems\LaserWeaponSubsystem\MediumLaser.data
ExecutionState=NeverExecuteState
CriticalHitsTaken=1
Site=site_ldtorsoport
GroupIndex=1
InternalLocation=LeftTorso
WeaponFacing=1
[MediumBeam4]
Model=WeaponSubsystems\LaserWeaponSubsystem\MediumLaser.data
ExecutionState=NeverExecuteState
CriticalHitsTaken=1
Site=site_rdtorsoport
GroupIndex=1
InternalLocation=RightTorso
WeaponFacing=1
[MediumBeam5]
Model=WeaponSubsystems\LaserWeaponSubsystem\MediumLaser.data
ExecutionState=NeverExecuteState
CriticalHitsTaken=1
Site=site_rdtorsoport
GroupIndex=1
InternalLocation=RightTorso
[MediumBeam6]
Model=WeaponSubsystems\LaserWeaponSubsystem\MediumLaser.data
ExecutionState=NeverExecuteState
CriticalHitsTaken=1
Site=site_rdtorsoport
GroupIndex=1
InternalLocation=RightTorso
[LargeBeam1]
Model=WeaponSubsystems\PPCWeaponSubsystem\PPC.data
ExecutionState=NeverExecuteState
CriticalHitsTaken=1
Site=site_lugunport
GroupIndex=1
InternalLocation=LeftArm
[LargeBallistic1]
Model=WeaponSubsystems\MachineGunWeaponSubsystem\MachineGun.data
ExecutionState=NeverExecuteState
CriticalHitsTaken=1
Site=site_rdgunport
EjectSite=site_rshellport
GroupIndex=1
InternalLocation=RightArm
AmmoCount=200
[LargeBallistic2]
Model=WeaponSubsystems\MachineGunWeaponSubsystem\MachineGun.data
ExecutionState=NeverExecuteState
CriticalHitsTaken=1
Site=site_rugunport
EjectSite=site_rshellport
GroupIndex=1
InternalLocation=RightArm
AmmoCount=200
[Missile1]
Model=WeaponSubsystems\SRMWeaponSubsystem\SRM6.data
ExecutionState=NeverExecuteState
CriticalHitsTaken=1
Site=site_missileport
GroupIndex=2
InternalLocation=CenterTorso
AmmoCount=30