re(route-b): full field map verified 154/154, and 101 defaulted fields read out

Anchoring each key string to the first store AFTER the accessor call makes the
extraction exact: 159 fields, 125 of them floats, and verify_fieldmap now checks
every one against the live objects -- 154 agree with the disc, 0 disagree.

The last ten mismatches taught the rule: angle fields are degrees on disc and
RADIANS at runtime (AV_PitchPlus_Max 3.6 -> 0.0628319; MaximumBank_Normal 60 ->
1.0472), an exact conversion across every angle field and unit.

101 defaulted fields now have runtime values: angle limits default to 3.6 degrees,
afterburner/turn-attack fields to 0, FiringRange to 0 (matching the loader's miss
value), Size_Y to that unit's Size_X, and the ratio family is per-unit rather than
constant (HQRatio 0.2 or 1, DefencePoint 0.1 or 0.25, ...).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-12 23:44:57 +00:00
parent 0434afa6a6
commit d674cddad4
3 changed files with 155 additions and 11 deletions

View File

@@ -0,0 +1,105 @@
map check: 154 fields agree with the disc, 0 disagree
runtime value where the disc record DEFAULTS the field:
AA_AxisMode_Max 0 (5 units)
AA_AxisMode_Min 0 (5 units)
AA_PitchMinus_Max 0.0628319 (5 units)
AA_PitchMinus_Min 0.0628319 (5 units)
AA_PitchPlus_Max 0.0628319 (5 units)
AA_PitchPlus_Min 0.0628319 (5 units)
AA_Roll_Max 0.0628319 (5 units)
AA_Roll_Min 0.0628319 (5 units)
AA_Yaw_Max 0.0628319 (5 units)
AA_Yaw_Min 0.0628319 (5 units)
AB_AA_PitchMinus 0 (5 units)
AB_AA_PitchPlus 0 (5 units)
AB_AA_Roll 0 (5 units)
AB_AA_Yaw 0 (5 units)
AB_AV_PitchMinus 0 (5 units)
AB_AV_PitchPlus 0 (5 units)
AB_AV_Roll 0 (5 units)
AB_AV_Yaw 0 (5 units)
AB_ConsumeShield 0 (5 units)
AB_ConsumeShield_Begin 0 (5 units)
AV_AxisMode_Max 0 (5 units)
AV_AxisMode_Min 0 (5 units)
AV_PitchMinus_Max 0.0628319 (5 units)
AV_PitchMinus_Min 0.0628319 (5 units)
AV_PitchPlus_Min 0.0628319 (5 units)
AV_Roll_Max 0.0628319 (5 units)
AV_Roll_Min 0.0628319 (5 units)
AV_Yaw_Max 0.0628319 (5 units)
AV_Yaw_Min 0.0628319 (5 units)
ArterBurner_Acc 2 (5 units)
ArterBurner_Vc 2 (5 units)
AttackCraftPoint 0.1, 0.5 (5 units)
AttackVesselPoint 0.1 (2 units)
BarrelRoll_CountMaximum 0 (5 units)
BarrelRoll_CountMinimum 0 (5 units)
BarrelRoll_Radius 0 (5 units)
BarrelRoll_Time 0 (5 units)
BoostAway_Time_Maximum 0 (5 units)
BoostAway_Time_Minimum 0 (5 units)
ChargeDelay 1 (5 units)
Color_B 1 (1 units)
Color_G 1 (1 units)
CutoffTimeMax 0 (5 units)
CutoffTimeMin 0 (5 units)
DecPitchFactor 30 (5 units)
DefencePoint 0.1, 0.25 (4 units)
Delay 0 (3 units)
DelayAdjustment 0, 2 (5 units)
DragFactorThreshold 0.5 (5 units)
DryMass 10000 (2 units)
FiringRange 0 (5 units)
GrossMass 10000 (5 units)
HQRatio 0.2, 1 (4 units)
HoldPosition_BackRatio 0 (5 units)
HoldPosition_CancelTime 0 (5 units)
HoldPosition_CutoffRatio 0 (5 units)
HoldPosition_LengthMax 0 (5 units)
HoldPosition_LengthMin 0 (5 units)
HoldPosition_MaximumTime 0 (5 units)
HoldPosition_MinimumTime 0 (5 units)
HoldPosition_SideRatio 0 (5 units)
HomingResistAdjustment 0 (5 units)
LowerHPThresholdRatio 0.3 (1 units)
MinimumVelocity 0 (4 units)
PitchDragFactor 2 (5 units)
PowerCutConsumeShield 0 (5 units)
PowerCutDeceleration 0 (5 units)
ResistanceToExplosion 0.5 (3 units)
ResistanceToPlayer 1 (5 units)
ResistanceToShell 0.1 (3 units)
ReverseThrust_Acc 0.25 (3 units)
RollDragFactor 2 (5 units)
SELength 2000 (5 units)
ShieldRatio 1 (1 units)
SideRoll_Length 0 (5 units)
SideRoll_Time 0 (5 units)
Size_Y 200, 300, 400, 600, 700 (5 units)
Slalom_CutoffRatio 0 (5 units)
Slalom_TurnCount_Max 0 (5 units)
Slalom_TurnCount_Min 0 (5 units)
SolidCutoff_LengthMax 0 (5 units)
SolidCutoff_LengthMin 0 (5 units)
SolidCutoff_Ratio 0 (5 units)
Through_AngleMaximum 0 (5 units)
Through_AngleMinimum 0 (5 units)
Through_CutoffRatio 0 (5 units)
Through_LengthMaximum 0 (5 units)
Through_LengthMinimum 0 (5 units)
Through_Time1Max 0 (5 units)
Through_Time1Min 0 (5 units)
Through_Time2Max 0 (5 units)
Through_Time2Min 0 (5 units)
ThrusterRatio 0.2, 1 (4 units)
TurnAttack_CutoffRatio 0 (5 units)
TurnAttack_DoubleRatio 0 (5 units)
TurnAttack_DoubleTimeMax 0 (5 units)
TurnAttack_DoubleTimeMin 0 (5 units)
TurnAway_Time_Maximum 0 (5 units)
TurnAway_Time_Minimum 0 (5 units)
Turn_AngularVelocity 0 (5 units)
UsingChaffRatio 0 (5 units)