re: the 59-of-131 arsenal question is closed -- an item names a hardpoint
An Arsenal item does not reference a Weapon record. It references a Turret_NNN HARDPOINT SLOT on the player craft's own unit table, and the slot is what carries the WeaponID. Three hops: Arbalest_155KG.PlayerWeapon -> Turret_050 (a slot on UN_f001_TCAF_DeltaSaber_T_Player) -> .WeaponID -> Weapon_DSaber_P_wep_50_Cannon Controls, both in the same loop: 0/59 distinct PlayerWeapon values are a Weapon.ID; 59/59 are a Turret_NNN slot id; the full chain lands on a Weapon.ID 59/59. WingmanWeapon resolves identically. The WEAPONS roster's 59 = 55 item names + 4 empty-slot sentinels. Wingmen fly a cheaper gun: following the same 59 slots across craft variants, the _Player tables give each item its own weapon record (59 distinct) while the AI tables collapse all 59 onto 10 generic classes. That is most of the 131. Upgrades yesterday's 'hardpoint catalogue' reading from 21 to adopted, proved from an independent file, and corrects its '10 distinct WeaponID' figure -- that was the AI variant, not the player's. Also adds an __main__ guard to unit_substructures.py so importing pak_entries from it does not run its report; its artefact is unchanged and still byte-identical.
This commit is contained in:
72
docs/re/data/arsenal-chain.txt
Normal file
72
docs/re/data/arsenal-chain.txt
Normal file
@@ -0,0 +1,72 @@
|
||||
# The Arsenal item -> hardpoint slot -> Weapon record chain
|
||||
# Regenerate: python3 tools/re-capture/arsenal_chain.py
|
||||
# See docs/re/structures/arsenal-item-weapon-chain.md
|
||||
|
||||
## the roster and the item records
|
||||
WEAPONS roster values 59
|
||||
arsenal ITEM records 59
|
||||
item names that are roster values 55
|
||||
roster values with no item record: ['No_Equipment', 'NullWeapon_Arm1', 'NullWeapon_Arm2', 'NullWeapon_Arm3']
|
||||
Weapon.ID values in the datasheet 131
|
||||
|
||||
## CONTROL item.PlayerWeapon is NOT a Weapon.ID
|
||||
distinct PlayerWeapon values 59 ; how many are a Weapon.ID: 0
|
||||
|
||||
## CONTROL item.PlayerWeapon IS a Turret_NNN slot id
|
||||
UN_f001_TCAF_DeltaSaber_T slots 63 Player 59/59 Wingman 59/59
|
||||
UN_f001_TCAF_DeltaSaber_T_EX5 slots 63 Player 59/59 Wingman 59/59
|
||||
UN_f001_TCAF_DeltaSaber_T_EX5_el slots 63 Player 59/59 Wingman 59/59
|
||||
UN_f001_TCAF_DeltaSaber_T_Player slots 63 Player 59/59 Wingman 59/59
|
||||
UN_f001_TCAF_DeltaSaber_T_Player_Ttrl1 slots 5 Player 3/59 Wingman 3/59
|
||||
UN_f001_TCAF_DeltaSaber_T_Player_Ttrl2 slots 5 Player 1/59 Wingman 1/59
|
||||
UN_f001_TCAF_DeltaSaber_T_Ttrl slots 4 Player 4/59 Wingman 4/59
|
||||
UN_f002_TCAF_DeltaSaber_W slots 63 Player 59/59 Wingman 59/59
|
||||
UN_f002_TCAF_DeltaSaber_W_Player slots 63 Player 59/59 Wingman 59/59
|
||||
UN_f004_TCAF_DeltaSaber_A_Player slots 63 Player 59/59 Wingman 59/59
|
||||
|
||||
## THE CHAIN, per craft variant: item -> slot -> WeaponID -> Weapon.ID
|
||||
UN_f001_TCAF_DeltaSaber_T 59/ 59 land on a Weapon.ID, 10 distinct
|
||||
slot WeaponIDs: 59 non-NULL, 10 distinct, e.g. ['Weapon_TCAF_DeltaSaber_ASMissile', 'Weapon_TCAF_DeltaSaber_Beam']
|
||||
UN_f001_TCAF_DeltaSaber_T_EX5 59/ 59 land on a Weapon.ID, 10 distinct
|
||||
slot WeaponIDs: 59 non-NULL, 10 distinct, e.g. ['Weapon_TCAF_DeltaSaber_ASMissile', 'Weapon_TCAF_DeltaSaber_Beam']
|
||||
UN_f001_TCAF_DeltaSaber_T_EX5_el 59/ 59 land on a Weapon.ID, 10 distinct
|
||||
slot WeaponIDs: 59 non-NULL, 10 distinct, e.g. ['Weapon_TCAF_DeltaSaber_ASMissile', 'Weapon_TCAF_DeltaSaber_Beam']
|
||||
UN_f001_TCAF_DeltaSaber_T_Player 59/ 59 land on a Weapon.ID, 59 distinct
|
||||
slot WeaponIDs: 59 non-NULL, 59 distinct, e.g. ['Weapon_DSaber_P_wep_01_Beam', 'Weapon_DSaber_P_wep_02_Missile']
|
||||
UN_f001_TCAF_DeltaSaber_T_Player_Ttrl1 3/ 59 land on a Weapon.ID, 3 distinct
|
||||
slot WeaponIDs: 3 non-NULL, 3 distinct, e.g. ['Weapon_DSaber_P_wep_01_Beam', 'Weapon_DSaber_P_wep_02_Missile']
|
||||
UN_f001_TCAF_DeltaSaber_T_Player_Ttrl2 1/ 59 land on a Weapon.ID, 1 distinct
|
||||
slot WeaponIDs: 1 non-NULL, 1 distinct, e.g. ['Weapon_DSaber_P_wep_01_Beam']
|
||||
UN_f001_TCAF_DeltaSaber_T_Ttrl 4/ 59 land on a Weapon.ID, 4 distinct
|
||||
slot WeaponIDs: 4 non-NULL, 4 distinct, e.g. ['Weapon_TCAF_DeltaSaber_ASMissile', 'Weapon_TCAF_DeltaSaber_Beam']
|
||||
UN_f002_TCAF_DeltaSaber_W 59/ 59 land on a Weapon.ID, 10 distinct
|
||||
slot WeaponIDs: 59 non-NULL, 10 distinct, e.g. ['Weapon_TCAF_DeltaSaber_ASMissile', 'Weapon_TCAF_DeltaSaber_Beam']
|
||||
UN_f002_TCAF_DeltaSaber_W_Player 59/ 59 land on a Weapon.ID, 59 distinct
|
||||
slot WeaponIDs: 59 non-NULL, 59 distinct, e.g. ['Weapon_DSaber_P_wep_01_Beam', 'Weapon_DSaber_P_wep_02_Missile']
|
||||
UN_f004_TCAF_DeltaSaber_A_Player 59/ 59 land on a Weapon.ID, 59 distinct
|
||||
slot WeaponIDs: 59 non-NULL, 59 distinct, e.g. ['Weapon_DSaber_P_wep_01_Beam', 'Weapon_DSaber_P_wep_02_Missile']
|
||||
|
||||
player craft slots not referenced by any item: ['Turret_000', 'Turret_097', 'Turret_098', 'Turret_099']
|
||||
|
||||
## a full item record -- Arbalest_155KG
|
||||
Dependency
|
||||
MissionObjective
|
||||
Model rou_f001_wep_50_hangar
|
||||
Package rou_f001_wep_50_hangar.xpr
|
||||
PlayerLOD Equip_EnumLODSet_wep_50.tbl
|
||||
PlayerMotion Equip_EnumGameModel_wep_50.tbl
|
||||
PlayerPackage rou_f001_wep_50.xpr
|
||||
PlayerWeapon Turret_050
|
||||
Points 25000
|
||||
Power B
|
||||
Range B
|
||||
SilhouetteModel rou_f001_wep_50_NA
|
||||
Size L
|
||||
Speed -
|
||||
Stage 6
|
||||
Type g04b
|
||||
Weight 1.5
|
||||
WingmanLOD Equip_EnumLODSet_wep_50.tbl
|
||||
WingmanMotion Equip_EnumGameModel_wep_50.tbl
|
||||
WingmanPackage rou_f001_wep_50.xpr
|
||||
WingmanWeapon Turret_050
|
||||
Reference in New Issue
Block a user