re: the disc ships the unit datasheet's own SCHEMA (and 文字列 was not a placeholder)
This corrects the previous commit. 文字列 is not a developer's leftover: it is one member of a six-word Shift-JIS TYPE vocabulary, and the records carrying it are a machine-readable schema for the unit datasheet. The whole non-ASCII population on the disc is 6 distinct values out of 99328 - 0 of 3496 record names and 0 of 12173 field names - and all six are type words: 文字列 string 366 uses NS_"文字列" NS_ string 12 整数 / 整数値 integer 66 / 6 浮動小数値 floating-point value 504 浮動小数値[0〜1] float in [0,1] 36 990 type-valued fields. So the reader defect noted last time is real but bounded to these six strings, and name_hash re-encodes Latin-1 byte-for-byte, so hashing was never affected. They sit in 15 records x 6 GP_MAIN_GAME_* paks = 90 instances, i.e. 15 records with ONE user. The names are exactly the unit substructure family, and six carry a literal wildcard: Turret_???, Hatch_???, Bridge_???, Thruster_???, ShieldGenerator_???, Versatile_???, and NS_*. ??? is the numeric-suffix wildcard at record AND field level - Turret_??? is the schema for Turret_000..00N, and inside it CannonFrame_??? / MuzzleFrame_??? stand for the numbered slots. Where a field's type is an enumeration the schema holds an EXAMPLE value instead of a type name: Yes for the five booleans, Vessel for Generic.Type (the 43 Craft + 71 Vessel split), Ship_ for the ID prefix convention. Maneuver is the one fully-typed record, 34 of 34. Every ResistanceTo* and every Color_* channel is declared FLOAT[0..1] - normalised by declaration, matching the sampled values in unit-datasheet-static. Generic.NozzleSpec_??? has its own type NS_"文字列" and NS_* is a record, so the nozzle spec is a nested sub-schema. Control separates schema from data cleanly: the _??? records and NS_* exist ONLY as schema, 6 of 6 instances typed, while the eight real substructure names are typed in 6 instances and untyped in the rest - Generic 6 of 3651, the others 6 of 684 each. Turret_??? carries the game's own typo NomalModel beside DamagedModel. This gives the port an authoritative field-type table: types the disc declares, rather than types inferred from sampled values. New artefact with its regenerator: tools/re-capture/datasheet_schema.py -> docs/re/data/datasheet-schema.txt. All fifteen existing artefacts byte-identical.
This commit is contained in:
228
docs/re/data/datasheet-schema.txt
Normal file
228
docs/re/data/datasheet-schema.txt
Normal file
@@ -0,0 +1,228 @@
|
||||
the unit datasheet schema shipped in GP_MAIN_GAME_*.pak
|
||||
15 schema records; identical in all six paks (x6 = one user)
|
||||
|
||||
=== Bridge_??? (16 fields, 12 typed) ===
|
||||
DamagedModel STRING
|
||||
Effect_Explosion STRING
|
||||
Effect_Flare STRING
|
||||
Frame STRING
|
||||
HP FLOAT
|
||||
ID STRING
|
||||
IsDestructible example: 'Yes'
|
||||
IsInvolved example: 'Yes'
|
||||
IsRadarVisible example: 'Yes'
|
||||
IsShielded example: 'Yes'
|
||||
Name STRING
|
||||
NomalModel STRING
|
||||
ParentStructureID STRING
|
||||
PowerRatio FLOAT
|
||||
Radius FLOAT
|
||||
SpreadDamage FLOAT
|
||||
|
||||
=== Effect (2 fields, 2 typed) ===
|
||||
Shield STRING
|
||||
Thruster STRING
|
||||
|
||||
=== Explosion (2 fields, 2 typed) ===
|
||||
Delay FLOAT
|
||||
DelayAdjustment FLOAT
|
||||
|
||||
=== Generic (23 fields, 20 typed) ===
|
||||
Color_B FLOAT[0..1]
|
||||
Color_G FLOAT[0..1]
|
||||
Color_R FLOAT[0..1]
|
||||
HP FLOAT
|
||||
HQRatio FLOAT
|
||||
ID example: 'Ship_'
|
||||
IsDestructible example: 'Yes'
|
||||
Model STRING
|
||||
Name STRING
|
||||
NozzleCount INT
|
||||
NozzleFrame_??? STRING
|
||||
NozzleSpec_??? NS_STRING
|
||||
ResistanceToExplosion FLOAT[0..1]
|
||||
ResistanceToOptics FLOAT[0..1]
|
||||
ResistanceToShell FLOAT[0..1]
|
||||
ShieldRatio FLOAT
|
||||
Size_Radius FLOAT
|
||||
Size_X FLOAT
|
||||
Size_Y FLOAT
|
||||
Size_Z FLOAT
|
||||
ThrusterRatio FLOAT
|
||||
Type example: 'Vessel'
|
||||
UncertainName STRING
|
||||
|
||||
=== Hatch_??? (19 fields, 15 typed) ===
|
||||
DamagedModel STRING
|
||||
Effect_Explosion STRING
|
||||
Effect_Flare STRING
|
||||
Frame STRING
|
||||
HP FLOAT
|
||||
ID STRING
|
||||
IsDestructible example: 'Yes'
|
||||
IsInvolved example: 'Yes'
|
||||
IsRadarVisible example: 'Yes'
|
||||
IsShielded example: 'Yes'
|
||||
LoadedCount INT
|
||||
MaxAvailableCount INT
|
||||
Name STRING
|
||||
NomalModel STRING
|
||||
ParentStructureID STRING
|
||||
Radius FLOAT
|
||||
SpreadDamage FLOAT
|
||||
SquadronID STRING
|
||||
TakeoffInterval FLOAT
|
||||
|
||||
=== Maneuver (34 fields, 34 typed) ===
|
||||
AA_PitchMinus_Max FLOAT
|
||||
AA_PitchMinus_Min FLOAT
|
||||
AA_PitchPlus_Max FLOAT
|
||||
AA_PitchPlus_Min FLOAT
|
||||
AA_Roll_Max FLOAT
|
||||
AA_Roll_Min FLOAT
|
||||
AA_Yaw_Max FLOAT
|
||||
AA_Yaw_Min FLOAT
|
||||
AV_PitchMinus_Max FLOAT
|
||||
AV_PitchMinus_Min FLOAT
|
||||
AV_PitchPlus_Max FLOAT
|
||||
AV_PitchPlus_Min FLOAT
|
||||
AV_Roll_Max FLOAT
|
||||
AV_Roll_Min FLOAT
|
||||
AV_Yaw_Max FLOAT
|
||||
AV_Yaw_Min FLOAT
|
||||
AccPitchFactor FLOAT
|
||||
Acceleration FLOAT
|
||||
ArterBurner_Acc FLOAT
|
||||
ArterBurner_Vc FLOAT
|
||||
CruisingVelocity FLOAT
|
||||
DecPitchFactor FLOAT
|
||||
Deceleration FLOAT
|
||||
DragFactorThreshold FLOAT
|
||||
MaximumBank_Normal FLOAT
|
||||
MaximumVelocity FLOAT
|
||||
MinimumVelocity FLOAT
|
||||
PitchDragFactor FLOAT
|
||||
ReverseThrust_Acc FLOAT
|
||||
ReverseThrust_Vc FLOAT
|
||||
RollDragFactor FLOAT
|
||||
SideThrustAcceleration FLOAT
|
||||
SideThrustVelocity_Max FLOAT
|
||||
YawDragFactor FLOAT
|
||||
|
||||
=== Mass (2 fields, 2 typed) ===
|
||||
DryMass FLOAT
|
||||
GrossMass FLOAT
|
||||
|
||||
=== NS_* (10 fields, 8 typed) ===
|
||||
AttenuationAlpha example: 'Yes'
|
||||
AttenuationVolume example: 'Yes'
|
||||
Color_B FLOAT
|
||||
Color_G FLOAT
|
||||
Color_R FLOAT
|
||||
Deceleration FLOAT
|
||||
DeleteFadeSpeed FLOAT
|
||||
Interval FLOAT
|
||||
NodeCount INT_VALUE
|
||||
StartingVelocity FLOAT
|
||||
|
||||
=== SE (2 fields, 2 typed) ===
|
||||
ExplosionSE STRING
|
||||
Thruster STRING
|
||||
|
||||
=== Shield (4 fields, 4 typed) ===
|
||||
ChargeDelay FLOAT
|
||||
ChargeDelay_Break FLOAT
|
||||
ChargeSpeed FLOAT
|
||||
MaxValue FLOAT
|
||||
|
||||
=== ShieldGenerator_??? (16 fields, 12 typed) ===
|
||||
DamagedModel STRING
|
||||
Effect_Explosion STRING
|
||||
Effect_Flare STRING
|
||||
Frame STRING
|
||||
HP FLOAT
|
||||
ID STRING
|
||||
IsDestructible example: 'Yes'
|
||||
IsInvolved example: 'Yes'
|
||||
IsRadarVisible example: 'Yes'
|
||||
IsShielded example: 'Yes'
|
||||
Name STRING
|
||||
NomalModel STRING
|
||||
ParentStructureID STRING
|
||||
PowerRatio FLOAT
|
||||
Radius FLOAT
|
||||
SpreadDamage FLOAT
|
||||
|
||||
=== StructureCount (6 fields, 6 typed) ===
|
||||
BridgeCount INT
|
||||
HatchCount INT
|
||||
ShieldGeneratorCount INT
|
||||
ThrusterCount INT
|
||||
TurretCount INT
|
||||
VersatileCount INT
|
||||
|
||||
=== Thruster_??? (19 fields, 15 typed) ===
|
||||
DamagedModel STRING
|
||||
Effect_Explosion STRING
|
||||
Effect_Flare STRING
|
||||
Frame STRING
|
||||
HP FLOAT
|
||||
ID STRING
|
||||
IsDestructible example: 'Yes'
|
||||
IsInvolved example: 'Yes'
|
||||
IsRadarVisible example: 'Yes'
|
||||
IsShielded example: 'Yes'
|
||||
Name STRING
|
||||
NomalModel STRING
|
||||
NozzleCount INT
|
||||
NozzleFrame_??? STRING
|
||||
NozzleSpec_??? NS_STRING
|
||||
ParentStructureID STRING
|
||||
PowerRatio FLOAT
|
||||
Radius FLOAT
|
||||
SpreadDamage FLOAT
|
||||
|
||||
=== Turret_??? (25 fields, 20 typed) ===
|
||||
AngularVelocity FLOAT
|
||||
CannonFrame_??? STRING
|
||||
DamagedModel STRING
|
||||
Effect_Explosion STRING
|
||||
Effect_Flare STRING
|
||||
Frame STRING
|
||||
HP FLOAT
|
||||
ID STRING
|
||||
IsAuto example: 'Yes'
|
||||
IsDestructible example: 'Yes'
|
||||
IsInvolved example: 'Yes'
|
||||
IsRadarVisible example: 'Yes'
|
||||
IsShielded example: 'Yes'
|
||||
MuzzleFrame_??? STRING
|
||||
Name STRING
|
||||
NomalModel STRING
|
||||
ParentStructureID STRING
|
||||
PitchLimit_Depression FLOAT
|
||||
PitchLimit_Elevation FLOAT
|
||||
Radius FLOAT
|
||||
SequencingCount INT
|
||||
SequencingInterval FLOAT
|
||||
SpreadDamage FLOAT
|
||||
WeaponID STRING
|
||||
YawLimit FLOAT
|
||||
|
||||
=== Versatile_??? (15 fields, 11 typed) ===
|
||||
DamagedModel STRING
|
||||
Effect_Explosion STRING
|
||||
Effect_Flare STRING
|
||||
Frame STRING
|
||||
HP FLOAT
|
||||
ID STRING
|
||||
IsDestructible example: 'Yes'
|
||||
IsInvolved example: 'Yes'
|
||||
IsRadarVisible example: 'Yes'
|
||||
IsShielded example: 'Yes'
|
||||
Name STRING
|
||||
NomalModel STRING
|
||||
ParentStructureID STRING
|
||||
Radius FLOAT
|
||||
SpreadDamage FLOAT
|
||||
|
||||
Reference in New Issue
Block a user