re: AIParams disc-wide, and a correction to my own last entry
CORRECTION FIRST. Last iteration I recorded sub_8233C368 as unblocking a NEEDS-HUMAN item -- "the corpus carries the AI tail of Maneuver as NEEDS-HUMAN/runtime; it is statically reachable after all." That was wrong. stage-mission-tables.md already documents AIParams_S02.tbl as exact original values obtained by static RE, directly portable, listing all 20 field names and both shapes. I grepped FiringLength and saw the file but did not read the section. Finding the owning doc is not reading it. The only genuinely new part was the loader's name. What is new: the census generalises Stage 02 to the disc. 23 AIParams objects, identical in all six GP_MAIN_GAME_* paks, sharing ONE declared-name set of 34 profiles; 782 profile records = 23 x 34; 0 declared names without a record in their own object. So "34 AI profiles" is not a Stage-02 fact -- every stage carries the same 34 and only the values move. The roster is declared by an Enumerate_AIs record whose field names are the profile names, the same declaration-table mechanism that closed DefTables. Type predicts the field count with exactly two exceptions: Fleet -> 6 fields is 253/253 zero partials; Squad -> 20 fields is 483/529. The 46-record residual in full: AI_Test and AI_CraftSquadron_Test, both Type = Squad with only the six base fields, in all 23 objects. No profile's shape varies between objects. New regenerator aiparams_census.py, 45-line artefact, byte-identical across two runs; the other fourteen verify unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
This commit is contained in:
45
docs/re/data/aiparams-census.txt
Normal file
45
docs/re/data/aiparams-census.txt
Normal file
@@ -0,0 +1,45 @@
|
||||
# AIParams across the whole disc
|
||||
# Regenerate: python3 tools/re-capture/aiparams_census.py
|
||||
# See docs/re/structures/stage-mission-tables.md
|
||||
|
||||
## CONTROL the six language copies
|
||||
GP_MAIN_GAME_D.pak 23 AIParams objects
|
||||
GP_MAIN_GAME_E.pak 23 AIParams objects
|
||||
GP_MAIN_GAME_F.pak 23 AIParams objects
|
||||
GP_MAIN_GAME_I.pak 23 AIParams objects
|
||||
GP_MAIN_GAME_J.pak 23 AIParams objects
|
||||
GP_MAIN_GAME_S.pak 23 AIParams objects
|
||||
|
||||
## The roster
|
||||
objects: 23 distinct declared-name sets: 1 roster size: [34]
|
||||
declared names with no record in their own object: 0
|
||||
profile records total: 782 (= 23 objects x 34)
|
||||
|
||||
## Does `Type` predict the field count?
|
||||
Fleet 6 fields x253
|
||||
Squad 6 fields x46
|
||||
Squad 20 fields x483
|
||||
profiles breaking the rule, in full: 2 ['AI_CraftSquadron_Test', 'AI_Test']
|
||||
profiles whose (Type, field count) varies between objects: 0 []
|
||||
|
||||
## Field census over every profile record
|
||||
x782 AutoGuardLength
|
||||
x782 CounterLength
|
||||
x782 FiringLength
|
||||
x782 GuardLength
|
||||
x782 MusterLength
|
||||
x782 Type
|
||||
x483 BootDefManeuverRatio_Aimed
|
||||
x483 BootDefManeuverRatio_Fired
|
||||
x483 BootDefManeuverRatio_Missiled
|
||||
x483 CounterManeuverRatio
|
||||
x483 DefManeuverRatio_BarrelRoll
|
||||
x483 DefManeuverRatio_BoostAway
|
||||
x483 DefManeuverRatio_NoAction
|
||||
x483 DefManeuverRatio_SideRoll
|
||||
x483 DefManeuverRatio_TurnAttack
|
||||
x483 DefManeuverRatio_TurnAway
|
||||
x483 ManeuverRatio_Cutoff
|
||||
x483 OffManeuverRatio_HoldPosition
|
||||
x483 OffManeuverRatio_NoAction
|
||||
x483 OffManeuverRatio_Through
|
||||
Reference in New Issue
Block a user