The corpus has named these since unit-struct-runtime.md but never opened them. Per unit table: Turret_NNN 835 records (max 63 on one unit), ShieldGenerator_NNN 46, Thruster_NNN 38, Hatch_NNN 26, Bridge_NNN 25, plus one each of Shield/Mass/SE/Explosion/ StructureCount and NS_Body on 68 of 114. Turret/ShieldGenerator/Thruster/Hatch/Bridge are ONE record shape: a shared 19-field destructible-part base (ID, Name, ParentStructureID, Frame = a mesh NODE name, NomalModel, CollisionModel, Radius, HP, the four Is* flags, SpreadDamage, damaged/destroy motion + time, and the three Effect_*), with per-kind extras. Turrets add WeaponID, AngularVelocity, YawLimit, PitchLimit_Elevation/_Depression, CoverArea, IsAuto, HasBarrel and up to 80 CannonModel_NNN/CannonFrame_NNN. Shield generators, thrusters and bridges add PowerRatio. Hatches add SquadronID, LoadedCount, MaxAvailableCount, TakeoffInterval -- a carrier's launch bay. Control 1: StructureCount.<Kind>Count == #<Kind>_NNN records, over 684 comparisons -- 612 equal, 55 "0 declared, one blank placeholder" (55/55 blank in Name AND NomalModel AND Frame), 11 differ, 6 kind absent. All 11 exceptions are Turret and all are declared < records. Control 2: 835/835 Turret_NNN.WeaponID resolve to an ID in the 131-record Weapon datasheet, zero unresolved; 26 weapons are never mounted on a turret. Refuted in the same pass: "the DeltaSaber's 59 non-NULL hardpoints are the 59-name WEAPONS arsenal roster". The counts match exactly and the sets overlap in 0 values -- two namespaces, one coincidence. New structure doc, artefact and regenerator; other artefacts unchanged.
403 lines
17 KiB
Plaintext
403 lines
17 KiB
Plaintext
# Sub-records inside the 114 unit tables of GP_MAIN_GAME_E.pak
|
|
# Regenerate: python3 tools/re-capture/unit_substructures.py
|
|
# See docs/re/structures/unit-substructure-records.md
|
|
|
|
## families (records, max per unit, distinct non-indexed field names)
|
|
Turret_NNN 835 max/unit 63 fields 38
|
|
Maneuver 114 max/unit 1 fields 101
|
|
Effect 114 max/unit 1 fields 9
|
|
Shield 114 max/unit 1 fields 4
|
|
Mass 114 max/unit 1 fields 2
|
|
SE 114 max/unit 1 fields 8
|
|
Generic 114 max/unit 1 fields 37
|
|
Explosion 114 max/unit 1 fields 9
|
|
StructureCount 114 max/unit 1 fields 6
|
|
NS_Body 68 max/unit 1 fields 12
|
|
ShieldGenerator_NNN 46 max/unit 4 fields 21
|
|
Thruster_NNN 38 max/unit 4 fields 21
|
|
Hatch_NNN 26 max/unit 4 fields 23
|
|
Bridge_NNN 25 max/unit 2 fields 20
|
|
NS_Body_2 1 max/unit 1 fields 12
|
|
Hatch_??? 1 max/unit 1 fields 19
|
|
ShieldGenerator_??? 1 max/unit 1 fields 16
|
|
NS_* 1 max/unit 1 fields 10
|
|
Bridge_??? 1 max/unit 1 fields 16
|
|
Thruster_??? 1 max/unit 1 fields 19
|
|
Turret_??? 1 max/unit 1 fields 25
|
|
Versatile_??? 1 max/unit 1 fields 15
|
|
|
|
## Turret_NNN -- non-indexed fields (records carrying it, of 835)
|
|
AngularVelocity 835
|
|
CoverArea 835
|
|
Effect_Explosion 835
|
|
Effect_Flare 835
|
|
Frame 835
|
|
HP 835
|
|
ID 835
|
|
IsAuto 835
|
|
IsDestructible 835
|
|
IsInvolved 835
|
|
IsRadarVisible 835
|
|
IsShielded 835
|
|
Name 835
|
|
NomalModel 835
|
|
ParentStructureID 835
|
|
PitchLimit_Depression 835
|
|
PitchLimit_Elevation 835
|
|
Radius 835
|
|
SequencingCount 835
|
|
SequencingInterval 835
|
|
SpreadDamage 835
|
|
WeaponID 835
|
|
YawLimit 835
|
|
CollisionModel 831
|
|
CommonCannonFrame 831
|
|
CommonCannonModel 831
|
|
HasBarrel 831
|
|
DamagedMotionName 829
|
|
DestroyMotionName 829
|
|
DestroyMotionTime 829
|
|
Effect_Paralyze 824
|
|
DisableCollision_Lost 240
|
|
CurveAngle 120
|
|
FCSAngle 120
|
|
FollowView 40
|
|
ShellModel 40
|
|
CoverModel 26
|
|
DamagedModel 6
|
|
|
|
## Effect -- non-indexed fields (records carrying it, of 114)
|
|
FadeIn 113
|
|
FadeOut 113
|
|
JumpIn 113
|
|
JumpOut 113
|
|
Shield 79
|
|
Effect_Paralyze 74
|
|
ShieldHitEffectName 35
|
|
ShieldRecoverEffectName 35
|
|
Thruster 1
|
|
|
|
## Shield -- non-indexed fields (records carrying it, of 114)
|
|
ChargeDelay 114
|
|
ChargeDelay_Break 114
|
|
ChargeSpeed 114
|
|
MaxValue 114
|
|
|
|
## Mass -- non-indexed fields (records carrying it, of 114)
|
|
DryMass 114
|
|
GrossMass 114
|
|
|
|
## SE -- non-indexed fields (records carrying it, of 114)
|
|
ExplosionSE 114
|
|
Thruster 114
|
|
JumpIn 113
|
|
JumpOut 113
|
|
LowerHPSE 113
|
|
LowerHPThresholdRatio 113
|
|
ShipEnvironmentSE 113
|
|
SideThruster 113
|
|
|
|
## Explosion -- non-indexed fields (records carrying it, of 114)
|
|
Delay 114
|
|
DelayAdjustment 114
|
|
ExplosionFxModel 113
|
|
LowerHPFxModel 113
|
|
DestroyMotionTime 112
|
|
DestroyMotionName 109
|
|
ExplosionMotionName 109
|
|
ExplosionFxMotion 3
|
|
LowerHPFxMotion 3
|
|
|
|
## StructureCount -- non-indexed fields (records carrying it, of 114)
|
|
BridgeCount 114
|
|
HatchCount 114
|
|
ShieldGeneratorCount 114
|
|
ThrusterCount 114
|
|
TurretCount 114
|
|
VersatileCount 114
|
|
|
|
## NS_Body -- non-indexed fields (records carrying it, of 68)
|
|
AttenuationAlpha 68
|
|
AttenuationVolume 68
|
|
Color_B 68
|
|
Color_G 68
|
|
Color_R 68
|
|
Deceleration 68
|
|
DeleteFadeSpeed 68
|
|
Interval 68
|
|
Model 68
|
|
NodeCount 68
|
|
StartingVelocity 68
|
|
Volume 68
|
|
|
|
## ShieldGenerator_NNN -- non-indexed fields (records carrying it, of 46)
|
|
CollisionModel 46
|
|
DamagedMotionName 46
|
|
DestroyMotionName 46
|
|
DestroyMotionTime 46
|
|
Effect_Explosion 46
|
|
Effect_Flare 46
|
|
Effect_Paralyze 46
|
|
Frame 46
|
|
HP 46
|
|
ID 46
|
|
IsDestructible 46
|
|
IsInvolved 46
|
|
IsRadarVisible 46
|
|
IsShielded 46
|
|
Name 46
|
|
NomalModel 46
|
|
ParentStructureID 46
|
|
PowerRatio 46
|
|
Radius 46
|
|
SpreadDamage 46
|
|
DisableCollision_Lost 25
|
|
|
|
## Thruster_NNN -- non-indexed fields (records carrying it, of 38)
|
|
CollisionModel 38
|
|
DamagedMotionName 38
|
|
DestroyMotionName 38
|
|
DestroyMotionTime 38
|
|
Effect_Explosion 38
|
|
Effect_Flare 38
|
|
Effect_Paralyze 38
|
|
Frame 38
|
|
HP 38
|
|
ID 38
|
|
IsDestructible 38
|
|
IsInvolved 38
|
|
IsRadarVisible 38
|
|
IsShielded 38
|
|
Name 38
|
|
NomalModel 38
|
|
NozzleCount 38
|
|
ParentStructureID 38
|
|
PowerRatio 38
|
|
Radius 38
|
|
SpreadDamage 38
|
|
|
|
## Hatch_NNN -- non-indexed fields (records carrying it, of 26)
|
|
CollisionModel 26
|
|
DamagedMotionName 26
|
|
DestroyMotionName 26
|
|
DestroyMotionTime 26
|
|
Effect_Explosion 26
|
|
Effect_Flare 26
|
|
Effect_Paralyze 26
|
|
Frame 26
|
|
HP 26
|
|
ID 26
|
|
IsDestructible 26
|
|
IsInvolved 26
|
|
IsRadarVisible 26
|
|
IsShielded 26
|
|
LoadedCount 26
|
|
MaxAvailableCount 26
|
|
Name 26
|
|
NomalModel 26
|
|
ParentStructureID 26
|
|
Radius 26
|
|
SpreadDamage 26
|
|
SquadronID 26
|
|
TakeoffInterval 26
|
|
|
|
## Bridge_NNN -- non-indexed fields (records carrying it, of 25)
|
|
CollisionModel 25
|
|
DamagedMotionName 25
|
|
DestroyMotionName 25
|
|
DestroyMotionTime 25
|
|
Effect_Explosion 25
|
|
Effect_Flare 25
|
|
Effect_Paralyze 25
|
|
Frame 25
|
|
HP 25
|
|
ID 25
|
|
IsDestructible 25
|
|
IsInvolved 25
|
|
IsRadarVisible 25
|
|
IsShielded 25
|
|
Name 25
|
|
NomalModel 25
|
|
ParentStructureID 25
|
|
PowerRatio 25
|
|
Radius 25
|
|
SpreadDamage 25
|
|
|
|
## NS_Body_2 -- non-indexed fields (records carrying it, of 1)
|
|
AttenuationAlpha 1
|
|
AttenuationVolume 1
|
|
Color_B 1
|
|
Color_G 1
|
|
Color_R 1
|
|
Deceleration 1
|
|
DeleteFadeSpeed 1
|
|
Interval 1
|
|
Model 1
|
|
NodeCount 1
|
|
StartingVelocity 1
|
|
Volume 1
|
|
|
|
## Hatch_??? -- non-indexed fields (records carrying it, of 1)
|
|
DamagedModel 1
|
|
Effect_Explosion 1
|
|
Effect_Flare 1
|
|
Frame 1
|
|
HP 1
|
|
ID 1
|
|
IsDestructible 1
|
|
IsInvolved 1
|
|
IsRadarVisible 1
|
|
IsShielded 1
|
|
LoadedCount 1
|
|
MaxAvailableCount 1
|
|
Name 1
|
|
NomalModel 1
|
|
ParentStructureID 1
|
|
Radius 1
|
|
SpreadDamage 1
|
|
SquadronID 1
|
|
TakeoffInterval 1
|
|
|
|
## ShieldGenerator_??? -- non-indexed fields (records carrying it, of 1)
|
|
DamagedModel 1
|
|
Effect_Explosion 1
|
|
Effect_Flare 1
|
|
Frame 1
|
|
HP 1
|
|
ID 1
|
|
IsDestructible 1
|
|
IsInvolved 1
|
|
IsRadarVisible 1
|
|
IsShielded 1
|
|
Name 1
|
|
NomalModel 1
|
|
ParentStructureID 1
|
|
PowerRatio 1
|
|
Radius 1
|
|
SpreadDamage 1
|
|
|
|
## NS_* -- non-indexed fields (records carrying it, of 1)
|
|
AttenuationAlpha 1
|
|
AttenuationVolume 1
|
|
Color_B 1
|
|
Color_G 1
|
|
Color_R 1
|
|
Deceleration 1
|
|
DeleteFadeSpeed 1
|
|
Interval 1
|
|
NodeCount 1
|
|
StartingVelocity 1
|
|
|
|
## Bridge_??? -- non-indexed fields (records carrying it, of 1)
|
|
DamagedModel 1
|
|
Effect_Explosion 1
|
|
Effect_Flare 1
|
|
Frame 1
|
|
HP 1
|
|
ID 1
|
|
IsDestructible 1
|
|
IsInvolved 1
|
|
IsRadarVisible 1
|
|
IsShielded 1
|
|
Name 1
|
|
NomalModel 1
|
|
ParentStructureID 1
|
|
PowerRatio 1
|
|
Radius 1
|
|
SpreadDamage 1
|
|
|
|
## Thruster_??? -- non-indexed fields (records carrying it, of 1)
|
|
DamagedModel 1
|
|
Effect_Explosion 1
|
|
Effect_Flare 1
|
|
Frame 1
|
|
HP 1
|
|
ID 1
|
|
IsDestructible 1
|
|
IsInvolved 1
|
|
IsRadarVisible 1
|
|
IsShielded 1
|
|
Name 1
|
|
NomalModel 1
|
|
NozzleCount 1
|
|
NozzleFrame_??? 1
|
|
NozzleSpec_??? 1
|
|
ParentStructureID 1
|
|
PowerRatio 1
|
|
Radius 1
|
|
SpreadDamage 1
|
|
|
|
## Turret_??? -- non-indexed fields (records carrying it, of 1)
|
|
AngularVelocity 1
|
|
CannonFrame_??? 1
|
|
DamagedModel 1
|
|
Effect_Explosion 1
|
|
Effect_Flare 1
|
|
Frame 1
|
|
HP 1
|
|
ID 1
|
|
IsAuto 1
|
|
IsDestructible 1
|
|
IsInvolved 1
|
|
IsRadarVisible 1
|
|
IsShielded 1
|
|
MuzzleFrame_??? 1
|
|
Name 1
|
|
NomalModel 1
|
|
ParentStructureID 1
|
|
PitchLimit_Depression 1
|
|
PitchLimit_Elevation 1
|
|
Radius 1
|
|
SequencingCount 1
|
|
SequencingInterval 1
|
|
SpreadDamage 1
|
|
WeaponID 1
|
|
YawLimit 1
|
|
|
|
## Versatile_??? -- non-indexed fields (records carrying it, of 1)
|
|
DamagedModel 1
|
|
Effect_Explosion 1
|
|
Effect_Flare 1
|
|
Frame 1
|
|
HP 1
|
|
ID 1
|
|
IsDestructible 1
|
|
IsInvolved 1
|
|
IsRadarVisible 1
|
|
IsShielded 1
|
|
Name 1
|
|
NomalModel 1
|
|
ParentStructureID 1
|
|
Radius 1
|
|
SpreadDamage 1
|
|
|
|
## CONTROL StructureCount.<Kind>Count == #<Kind>_NNN records
|
|
## (a 0 count still emits one blank slot)
|
|
684 comparisons (114 units x 6 kinds)
|
|
equal 612
|
|
0 declared, 1 blank placeholder 55
|
|
DIFFERS 11
|
|
no field 6
|
|
exceptions:
|
|
kind=Turret declared=4 records=63 x7
|
|
UN_f001_TCAF_DeltaSaber_T
|
|
UN_f001_TCAF_DeltaSaber_T_EX5
|
|
UN_f001_TCAF_DeltaSaber_T_EX5_el
|
|
UN_f001_TCAF_DeltaSaber_T_Player
|
|
UN_f002_TCAF_DeltaSaber_W
|
|
UN_f002_TCAF_DeltaSaber_W_Player
|
|
UN_f004_TCAF_DeltaSaber_A_Player
|
|
kind=Turret declared=4 records=5 x2
|
|
UN_f001_TCAF_DeltaSaber_T_Player_Ttrl1
|
|
UN_f001_TCAF_DeltaSaber_T_Player_Ttrl2
|
|
kind=Turret declared=1 records=2 x1
|
|
UN_e001_ADAN_Elan_EX4
|
|
kind=Turret declared=8 records=9 x1
|
|
UN_e107_ADAN_AAFrigate_EX4
|
|
|
|
## CONTROL Turret_NNN.WeaponID resolves into the Weapon datasheet
|
|
Weapon.ID values: 131
|
|
turrets: 835, distinct WeaponID: 105
|
|
resolve: 835 do NOT resolve: 0
|
|
weapons never mounted on a turret: 26
|