# 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
