re: the Hangar loadout system -- loadout, allow-list, arsenal item
15 loadout records, one per flight position x pilot (Bird1-Sandra .. Rhino4-Yoji), each with Arm1/Arm2/Arm3/Nose + UnitID. The same trap as PlayerWeapon, one level up: Arm1/Arm2/Arm3/Nose do NOT name items. They name a per-slot ALLOW-LIST record -- one of 24 whose only named field is Type (the slot kind) -- and the candidate items are that record's positional, unnamed fields, in order. Four hops: Rhino4-Yoji.Arm1 -> STANDARD_ARM1 -> [Falcon_9AM, Condor_105AM, ...] -> item.PlayerWeapon = Turret_NNN -> slot.WeaponID -> Weapon.ID Controls: Arm1/2/3/Nose -> allow-list record 60/60; allow-list positional entries -> arsenal item 70/88, and every one of the 18 misses is the single sentinel No_Equipment -- one of the four WEAPONS-roster values with no item record, i.e. the empty-slot marker. UnitID is two ID spaces at once: 5 rows name a unit Generic.ID (the three -Katana rows are the player -- a _Player craft plus an extra, empty PlayerUnit field), 8 name a character, resolving as Character + the value into the 64-record character table. Two values resolve to nothing, both single rows against 13 that do: Rhino2-Ellen.UnitID = UN_f001_TCAF_DeltaSaber_W exists nowhere (checked as a Generic.ID across every pak and as a record name, 0 hits) while UN_f002_TCAF_DeltaSaber_W does -- consistent with a shipped typo, reported not diagnosed -- and Rhino4-Brandon.UnitID = BRANDON has no CharacterBRANDON among the 64. New structure doc, artefact and regenerator; the other four artefacts regenerate byte-identical.
This commit is contained in:
61
docs/re/data/hangar-loadouts.txt
Normal file
61
docs/re/data/hangar-loadouts.txt
Normal file
@@ -0,0 +1,61 @@
|
||||
# The Hangar loadout system
|
||||
# Regenerate: python3 tools/re-capture/hangar_loadouts.py
|
||||
# See docs/re/structures/hangar-loadout-system.md
|
||||
|
||||
## counts
|
||||
arsenal items 59 loadout records 15 per-slot allow-lists 24
|
||||
|
||||
## loadout records
|
||||
Bird1-Sandra S01SET_ARM1 S01SET_ARM2 S01SET_ARM3 S01SET_NOSE UnitID=SANDRA (character)
|
||||
Bird2-Billy S01SET_ARM1 S01SET_ARM2 S01SET_ARM3 S01SET_NOSE UnitID=BILLY (character)
|
||||
Bird3-Antonius S01SET_ARM1 S01SET_ARM2 S01SET_ARM3 S01SET_NOSE UnitID=ANTONIUS (character)
|
||||
Bird4-Carl S01SET_ARM1 S01SET_ARM2 S01SET_ARM3 S01SET_NOSE UnitID=CARL (character)
|
||||
Rhino1-Katana PlayerSET_ARM1 PlayerSET_ARM2 PlayerSET_ARM3 PlayerSET_NOSE UnitID=UN_f002_TCAF_DeltaSaber_W_Player (unit) PlayerUnit
|
||||
Rhino1-Raymond S01SET_ARM1 S01SET_ARM2 S01SET_ARM3 S01SET_NOSE UnitID=RAYMOND (character)
|
||||
Rhino2-Ellen STANDARD_ARM1 STANDARD_ARM2 STANDARD_ARM3 STANDARD_NOSE UnitID=UN_f001_TCAF_DeltaSaber_W (???)
|
||||
Rhino2-Gene STANDARD_ARM1 STANDARD_ARM2 STANDARD_ARM3 STANDARD_NOSE UnitID=GENE (character)
|
||||
Rhino2-Katana PlayerSET_ARM1 PlayerSET_ARM2 PlayerSET_ARM3 PlayerSET_NOSE UnitID=UN_f001_TCAF_DeltaSaber_T_Player (unit) PlayerUnit
|
||||
Rhino3-Ellen S01SET_ARM1 S01SET_ARM2 S01SET_ARM3 S01SET_NOSE UnitID=UN_f001_TCAF_DeltaSaber_T (unit)
|
||||
Rhino3-Gene STANDARD_ARM1 STANDARD_ARM2 STANDARD_ARM3 STANDARD_NOSE UnitID=GENE (character)
|
||||
Rhino3-Katana PlayerSET_ARM1 PlayerSET_ARM2 PlayerSET_ARM3 PlayerSET_NOSE UnitID=UN_f001_TCAF_DeltaSaber_T_Player (unit) PlayerUnit
|
||||
Rhino4-Brandon STANDARD_ARM1 STANDARD_ARM2 STANDARD_ARM3 STANDARD_NOSE UnitID=BRANDON (???)
|
||||
Rhino4-Ellen STANDARD_ARM1 STANDARD_ARM2 STANDARD_ARM3 STANDARD_NOSE UnitID=UN_f001_TCAF_DeltaSaber_T (unit)
|
||||
Rhino4-Yoji STANDARD_ARM1 STANDARD_ARM2 STANDARD_ARM3 STANDARD_NOSE UnitID=YOJI (character)
|
||||
|
||||
## CONTROL loadout.Arm1/2/3/Nose names an ALLOW-LIST record
|
||||
60/60
|
||||
|
||||
## CONTROL allow-list positional entries name an ARSENAL ITEM
|
||||
70/88
|
||||
misses: [('No_Equipment', 18)]
|
||||
every miss is a WEAPONS-roster sentinel with no item record: True
|
||||
|
||||
## CONTROL loadout.UnitID
|
||||
15 loadouts: 5 name a unit Generic.ID, 8 name a character (as 'Character'+value), 2 neither
|
||||
neither: ['BRANDON', 'UN_f001_TCAF_DeltaSaber_W']
|
||||
|
||||
## the allow-lists, in order
|
||||
ExSET_ARM1 Type=Arm1 10: Condor_105AM, Frail_GP37, Pilum_BP, Multi_Pike_BP, Spear_HBP, Needle_L1GP, Buzzard_10AM, Dirt_23_Rocket, Falcon_9AM, No_Equipment
|
||||
ExSET_ARM2 Type=Arm2 8: White_Shark_T53R, Piranha_T53, Hound_SMH, Terrier_SMH, Fire_Arrow_L2GP, Sling_75KG, Hawk_75AM, No_Equipment
|
||||
ExSET_ARM3 Type=Arm3 4: Glaive_120mm_Cannon, Monoceros_Long_Cannon, Tomahawk_a_Rail_Gun, No_Equipment
|
||||
ExSET_NOSE Type=Nose 7: Machiene_Cannon_MG3, Machiene_Cannon_MG1, Broad_Sword_SG1, Saber_LG1, Dagger_BG2, Rapier_BG4H, Stiletto_BG1
|
||||
NULL_ARM1 Type=Arm1 1: No_Equipment
|
||||
NULL_ARM2 Type=Arm2 1: No_Equipment
|
||||
NULL_ARM3 Type=Arm3 1: No_Equipment
|
||||
NULL_NOSE Type=Nose 1: Stiletto_BG1
|
||||
PlayerSET_ARM1 Type=Arm1 2: Falcon_9AM, No_Equipment
|
||||
PlayerSET_ARM2 Type=Arm2 1: No_Equipment
|
||||
PlayerSET_ARM3 Type=Arm3 1: No_Equipment
|
||||
PlayerSET_NOSE Type=Nose 1: Stiletto_BG1
|
||||
S01SET_ARM1 Type=Arm1 2: Falcon_9AM, No_Equipment
|
||||
S01SET_ARM2 Type=Arm2 1: No_Equipment
|
||||
S01SET_ARM3 Type=Arm3 1: No_Equipment
|
||||
S01SET_NOSE Type=Nose 1: Stiletto_BG1
|
||||
S02SET_ARM1 Type=Arm1 3: Buzzard_10AM, Falcon_9AM, No_Equipment
|
||||
S02SET_ARM2 Type=Arm2 2: Terrier_SMH, No_Equipment
|
||||
S02SET_ARM3 Type=Arm3 2: Tomahawk_a_Rail_Gun, No_Equipment
|
||||
S02SET_NOSE Type=Nose 1: Stiletto_BG1
|
||||
STANDARD_ARM1 Type=Arm1 11: Falcon_9AM, Dirt_23_Rocket, Eagle_120AM, Condor_105AM, Buzzard_10AM, Needle_L1GP, Spear_HBP, Multi_Pike_BP, Pilum_BP, Frail_GP37, No_Equipment
|
||||
STANDARD_ARM2 Type=Arm2 9: White_Shark_T53R, Cauldron_50_Rocket, Piranha_T53, Hound_SMH, Terrier_SMH, Fire_Arrow_L2GP, Sling_75KG, Hawk_75AM, No_Equipment
|
||||
STANDARD_ARM3 Type=Arm3 9: Glaive_120mm_Cannon, Monoceros_Long_Cannon, Arbalest_155KG, Tomahawk_a_Rail_Gun, Maelstrom_Bomb, Cluster_Mine_B10, Pointer_SM, Long_Spear_HBP, No_Equipment
|
||||
STANDARD_NOSE Type=Nose 8: Stiletto_BG1, Rapier_BG4H, Dagger_BG2, Saber_LG1, Twin_Sword_SG3II, Broad_Sword_SG1, Machiene_Cannon_MG3, Machiene_Cannon_MG1
|
||||
Reference in New Issue
Block a user