Files
Sylpheed/docs/re/data/arsenal-chain.txt
Sylpheed RE agent 2519427bab 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.
2026-08-27 12:49:22 +00:00

73 lines
4.5 KiB
Plaintext

# 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