# Unit / vessel definition object layout — offset, field, kind. # # Read out of the title's own loader, not inferred: `sub_82341A20` builds every # key as `addi r4, r30, -N` with `r30 = 0x82088f94`, so the field NAME for each # store is a string in the executable image; pairing each key with the first # store after its accessor call gives the offset. The accessor for floats is # `sub_822FC5A8`, which returns 0.0 when the pool has no value for the key. # # Verified against live objects dumped from a running Stage 02: 406 field values # agree with the disc records and 0 disagree, over 11 objects spanning both the # UNIT and VESSEL schemas (see docs/re/live-unit-definitions.md). # # Two conventions matter for a reimplementation: # * angle fields are DEGREES on disc and RADIANS in this object; # * a field the disc record omits is left at the accessor's miss value (0.0 for # floats) unless something later derives it — `Size_Y` takes `Size_X`. # # offset kind field 24 str Model 28 str CollisionModel 48 f32 Size_X 52 f32 Size_Y 56 f32 Size_Z 64 f32 Color_R 68 f32 Color_G 72 f32 Color_B 80 f32 Size_Radius 84 f32 HP 88 f32 HQRatio 92 f32 ShieldRatio 96 f32 ThrusterRatio 100 word IsDestructible 104 str NamePlate 112 word MountedShieldGenerator 116 f32 ResistanceToOptics 120 f32 ResistanceToShell 124 f32 ResistanceToExplosion 128 f32 ResistanceToPlayer 132 f32 ResistanceParalyze 136 str HUDMarkerID 156 f32 MinimumVelocity 160 f32 MaximumVelocity 164 f32 CruisingVelocity 168 f32 Acceleration 172 f32 Deceleration 176 f32 AV_PitchPlus_Max 180 f32 AV_PitchPlus_Min 184 f32 AA_PitchPlus_Max 188 f32 AA_PitchPlus_Min 192 f32 AV_PitchMinus_Max 196 f32 AV_PitchMinus_Min 200 f32 AA_PitchMinus_Max 204 f32 AA_PitchMinus_Min 208 f32 AV_Yaw_Max 212 f32 AV_Yaw_Min 216 f32 AA_Yaw_Max 220 f32 AA_Yaw_Min 224 f32 AV_Roll_Max 228 f32 AV_Roll_Min 232 f32 AA_Roll_Max 236 f32 AA_Roll_Min 248 f32 SideThrustVelocity_Max 252 f32 SideThrustAcceleration 256 f32 MaximumBank_Normal 260 f32 YawDragFactor 264 f32 PitchDragFactor 268 f32 RollDragFactor 272 f32 DragFactorThreshold 276 f32 ArterBurner_Vc 280 f32 ReverseThrust_Vc 284 f32 ArterBurner_Acc 288 f32 ReverseThrust_Acc 292 f32 AccPitchFactor 296 f32 DecPitchFactor 300 f32 AV_AxisMode_Max 304 f32 AV_AxisMode_Min 308 f32 AA_AxisMode_Max 312 f32 AA_AxisMode_Min 316 f32 PowerCutConsumeShield 320 f32 PowerCutDeceleration 324 f32 AB_ConsumeShield_Begin 328 f32 AB_ConsumeShield 332 f32 AB_AV_PitchPlus 336 f32 AB_AA_PitchPlus 340 f32 AB_AV_PitchMinus 344 f32 AB_AA_PitchMinus 348 f32 AB_AV_Yaw 352 f32 AB_AA_Yaw 356 f32 AB_AV_Roll 360 f32 AB_AA_Roll 364 word SideRoll 368 f32 SideRoll_Time 372 f32 SideRoll_Length 376 word BarrelRoll 380 f32 BarrelRoll_CountMinimum 384 f32 BarrelRoll_CountMaximum 388 f32 BarrelRoll_Time 392 f32 BarrelRoll_Radius 396 word TurnAttack 400 f32 TurnAttack_CutoffRatio 404 f32 TurnAttack_DoubleRatio 408 f32 CutoffTimeMin 412 f32 CutoffTimeMax 416 f32 TurnAttack_DoubleTimeMin 420 f32 TurnAttack_DoubleTimeMax 424 word TurnAway 428 f32 Turn_AngularVelocity 432 f32 TurnAway_Time_Minimum 436 f32 TurnAway_Time_Maximum 440 word BoostAway 444 f32 BoostAway_Time_Minimum 448 f32 BoostAway_Time_Maximum 452 word HoldPosition 456 f32 HoldPosition_LengthMin 460 f32 HoldPosition_LengthMax 464 f32 HoldPosition_MinimumTime 468 f32 HoldPosition_MaximumTime 472 f32 HoldPosition_SideRatio 476 f32 HoldPosition_BackRatio 480 f32 HoldPosition_CutoffRatio 484 f32 HoldPosition_CancelTime 488 word Slalom 492 f32 Slalom_CutoffRatio 496 f32 Slalom_TurnCount_Min 500 f32 Slalom_TurnCount_Max 504 word Through 508 f32 Through_CutoffRatio 512 f32 Through_AngleMinimum 516 f32 Through_AngleMaximum 520 f32 Through_Time1Max 524 f32 Through_Time1Min 528 f32 Through_Time2Max 532 f32 Through_Time2Min 536 f32 Through_LengthMinimum 540 f32 Through_LengthMaximum 544 word SolidCutoff 548 f32 SolidCutoff_Ratio 552 f32 SolidCutoff_LengthMin 556 f32 SolidCutoff_LengthMax 560 f32 HomingResistAdjustment 564 f32 UsingChaffRatio 568 f32 MaxValue 572 f32 ChargeDelay 576 f32 ChargeDelay_Break 580 f32 ChargeSpeed 584 f32 Delay 588 f32 DelayAdjustment 596 str LowerHPFxModel 604 str ExplosionFxModel 612 str DestroyMotionName 620 str ExplosionMotionName 624 f32 DestroyMotionTime 628 f32 DryMass 632 f32 GrossMass 636 word Thruster 640 word SideThruster 644 word ExplosionSE 648 word JumpIn 652 word JumpOut 656 word ShipEnvironmentSE 660 word LowerHPSE 664 f32 LowerHPThresholdRatio 668 f32 SELength 672 f32 RadarRange 676 f32 FCSRange 680 f32 FiringRange 684 word MountedFCS 692 f32 AttackVesselPoint 696 f32 AttackCraftPoint 700 f32 DefencePoint 736 str ShieldRecoverEffectName 740 str ShieldHitEffectName 744 str JumpIn 748 str JumpOut 752 str FadeIn 756 str FadeOut 760 str Effect_Paralyze