sots-re/objects/layouts.md
alex d7ea0a048c lane D: automated struct recovery from the IStreamable serializers
Every serializable class carries an enumeration of its own fields -- its
Write(Stream&), walking the members in order with a 4-char tag. This decodes
that idiom mechanically for the whole binary in 0.35 s.

Validation first (tools/serializers.py validate), against answers the campaign
already had before the tool existed:
  A  305/307 field offsets+kinds exact across 17 classes, 0 WRONG, vs
     struct-recovery.md 1-4 and observedtech-append.md
  B  sizeof from the container-stride divides: ObservedTech 0x2c, MoraleEvent
     0x50, PlayerReport 0x30, DiplomacyStats 0x24 -- all matching
  C  22 of save_reader.py's shapes, tag order identical (Sys 78 tags,
     Player 104, CreateParams 25, Ship 22): 22 agree, 0 disagree
  D  Read/Write cross-check on every class: 437/437 field offsets agree

At scale: 386 classes with a Write, 1,682 member fields.
  verified 87 (542 fields) | clean 77 (328) | unnamed 176 (471)
  partial 31 (341) | empty 15
  58 classes with a sizeof corroborated by a second line of evidence
  (45 container stride, 13 enumeration meeting the embedding bound); the rest
  report a lower bound and say so.

Four things each worth 10-170 classes: the RTTI class hierarchy descriptor as
the only honest "is this an IStreamable" test (a 3-slot vftable also matches
TacAISquadRule_* and the row parsers); mod=0 memory operands, which x86disp.py
cannot index and which hide every field at offset 0; the member->id pointer
idiom behind every handle field; and sub-writers, both base-class and private
(StrategyServer's six id lists live in FUN_00794cd0).

Failure classes are enumerated in the finding -- 176 anonymous-tag classes are
a hard limit on names but not on layout, and the other 64 are bounded
mechanical fixes. Two fields lost to a value assembled across a branch were
left unrecovered rather than patched with an unverifiable heuristic.

Write-back: 288 structures + 328 labels into Ghidra (0 failures), +201
addresses.json entries, header regenerated with tools/gen_addresses.py.

Note: ghidra/addresses.json also carries lane V's already-written live
confirmation text on ObservedTech_sizeof and ServerPlayer_off_ObservedTechs --
their edit, swept in only because we share the file.
2026-09-08 05:51:37 -04:00

181 KiB

Recovered class layouts (tools/serializers.py all)

Generated -- do not hand-edit. Offsets are absolute (object base). sizeof is quoted only where a second, independent line of evidence agrees with the field enumeration; otherwise a lower bound is given.

Address

Write 0x008f63c0, Read 0x008f6360, IStreamable vftable 0x00a2dcbc (COL offset +0x0). sizeof 0x58 (enumeration meets embedding). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x1c string .
0x1c 0x4 int .
0x20 0x1c string .
0x3c 0x1c string .

Game::AIAutoPeaceRun

Write 0x00692cf0, Read 0x00692c90, IStreamable vftable 0x00a199b4 (COL offset +0x0). sizeof 0x10 (container stride). verified -- fields exact; Read agrees on all 2 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int sid
0x8 0x4 int tn0
0xc 0x4 int tn1

Game::AICombatReport

Write 0x006986e0, Read 0x0069c6d0, IStreamable vftable 0x00a1a6f0 (COL offset +0x0). sizeof >= 0x30 (lower bound). verified -- fields exact; Read agrees on all 2 comparable offsets

offset size kind tag type
0x0 0x4 int CRTrn
0x4 0x1 bool CRPce
0x8 0x4 enum CRSys enum:uint
0xc 0x24 object CRPlSv2 Game::CombatPlayerStats

Game::AIEncounterFlags

Write 0x0059dfe0, Read 0x005a26b0, IStreamable vftable 0x00a0622c (COL offset +0x0). sizeof >= 0x10 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0xc 0x4 int Nas

Container-element fields (offsets are within the element / map node, not the object): Fid@+0xc, Ast@+0x10

Game::AIRebellionImpl

Write 0x00693b30, Read 0x006a2320, IStreamable vftable 0x00a1a9e4 (COL offset +0x0). sizeof >= 0x24 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 int St
0xc 0x4 handle Plr
0x10 0x4 handle Reb
0x14 0x10 vector NSys

Game::AIRelationRecord

Write 0x00816b40, Read 0x00816ab0, IStreamable vftable 0x00a1a650 (COL offset +0x0). sizeof 0x18 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .
0x10 0x4 float .
0x14 0x4 float .

Game::AISituation

Write 0x0069a220, Read 0x0069a160, IStreamable vftable 0x00a1a670 (COL offset +0x0). sizeof >= 0x20 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x10 0x10 object AISitWeapFams Game::Mars::Game::W4WeaponFamilyID::U?$StreamableEnum::?$AIWeightMap

Game::AISystem

Write 0x006bda30, Read 0x006bd960, IStreamable vftable 0x00a1adf4 (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- only container elements / computed values recovered

Game::AllianceInvite

Write 0x006d5bf0, Read 0x006d59d0, IStreamable vftable 0x00a0a354 (COL offset +0x0). sizeof >= 0x4c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1 bool .
0x9 0x1 bool .
0xa 0x1 bool .
0xb 0x1 bool .
0xc 0x4 int .
0x10 0x4 int .
0x14 0x4 int .
0x18 0x4 int .
0x1c 0x10 vector . Game::AllianceInvite::Response
0x2c 0x4 int .
0x30 0x4 int .
0x34 0x4 int .
0x38 0x10 vector . Game::AllianceInvite::Response
0x48 0x4 int .

Game::AllianceInvite::Response

Write 0x006d2c60, Read 0x006d2bf0, IStreamable vftable 0x00a09e94 (COL offset +0x0). sizeof 0x10 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x1 bool .

Game::AttribMap

Write 0x0059ee60, Read 0x005a8a60, IStreamable vftable 0x00a1a6a0 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::BackEngProject

Write 0x00853390, Read 0x00853280, IStreamable vftable 0x00a3185c (COL offset +0x0). sizeof >= 0x54 (lower bound). verified -- fields exact; Read agrees on all 4 comparable offsets

offset size kind tag type
0x8 0x34 object SPi Game::SpecialProject
0x3c 0x4 int Stp
0x40 0x4 float AOdd
0x44 0x4 float AInc
0x4c 0x4 int RCst
0x50 0x4 int RDn

Game::BerserkerEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f1f10 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::BuildQueue

Write 0x0085f0a0, Read 0x008451c0, IStreamable vftable 0x00a31328 (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- only container elements / computed values recovered

Game::CNMClientNotResponding

Write 0x00451690, Read 0x00451660, IStreamable vftable 0x009e3e70 (COL offset +0x0). sizeof >= 0x9 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1 bool .

Game::CNMPlayerJoined

Write 0x00451630, Read 0x00451600, IStreamable vftable 0x009e4148 (COL offset +0x0). sizeof >= 0x24 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1c string .

Game::CNMPlayerLeft

Write 0x008d1ab0, Read 0x008d1a90, IStreamable vftable 0x009e3e5c (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::CNMUpdate

Write 0x004520c0, Read 0x00452050, IStreamable vftable 0x009e3ef4 (COL offset +0x0). sizeof >= 0x14 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 object . Game::UpdateData

Game::CNMUpdateComplete

Write 0x008d1ab0, Read 0x008d1a90, IStreamable vftable 0x009e4014 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::CNMUserShips

Write 0x004521d0, Read 0x00452120, IStreamable vftable 0x009e4124 (COL offset +0x0). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 vector . Game::ShipParams
0x14 0x4 int .

Game::CivilianRatios

Write 0x0082c740, Read 0x0082c6b0, IStreamable vftable 0x00a23e7c (COL offset +0x0). sizeof >= 0x8 (lower bound). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x4 0x4 float smx
0x8 ? object spe Game::SpeciesRatios

Game::ClientEncounterResults

Write 0x00826750, Read 0x008266a0, IStreamable vftable 0x00a24f80 (COL offset +0x0). sizeof >= 0x30 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1 bool .
0xc 0x24 object . Game::CombatPlayerStats

Game::ClientSystem

Write 0x00727820, Read 0x00727790, IStreamable vftable 0x00a20144 (COL offset +0x8). sizeof >= 0x24 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x18 0xc object Pos Vector3

Game::ClientTradeSector

Write 0x00727820, Read 0x00727790, IStreamable vftable 0x00a31b04 (COL offset +0x8). sizeof >= 0x24 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x18 0xc object Pos Vector3

Game::CombatCommandCloak

Write 0x0042f5a0, Read 0x0042f530, IStreamable vftable 0x009e26dc (COL offset +0x4). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint

Game::CombatCommandDecloak

Write 0x0042f5a0, Read 0x0042f530, IStreamable vftable 0x009e2700 (COL offset +0x4). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint

Game::CombatCommandFleetSetFacing

Write 0x0042c7f0, Read 0x0042dd90, IStreamable vftable 0x009e2550 (COL offset +0x4). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x4 int .

Game::CombatCommandFleetSetHoldFire

Write 0x00451690, Read 0x00451660, IStreamable vftable 0x009e2574 (COL offset +0x4). sizeof >= 0xd (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x1 bool .

Game::CombatCommandFleetSetStance

Write 0x0042c7f0, Read 0x0042dd90, IStreamable vftable 0x009e252c (COL offset +0x4). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x4 int .

Game::CombatCommandIntangOff

Write 0x0042f5a0, Read 0x0042f530, IStreamable vftable 0x009e2748 (COL offset +0x4). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint

Game::CombatCommandIntangOn

Write 0x0042f5a0, Read 0x0042f530, IStreamable vftable 0x009e2724 (COL offset +0x4). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint

Game::CombatCommandMoveReserves

Write 0x0042f720, Read 0x00907e60, IStreamable vftable 0x009e264c (COL offset +0x4). sizeof >= 0x20 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x4 int .
0x10 0x10 vector . int

Game::CombatCommandPickReserve

Write 0x0042dd60, Read 0x0042dd30, IStreamable vftable 0x009e2598 (COL offset +0x4). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x4 int .

Game::CombatCommandRequestAsylumResponse

Write 0x004fb530, Read 0x004fb4c0, IStreamable vftable 0x009f3958 (COL offset +0x4). sizeof >= 0x14 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x4 int .
0x10 0x4 int .

Game::CombatCommandSetAEAutoFire

Write 0x00451690, Read 0x00451660, IStreamable vftable 0x009e25bc (COL offset +0x4). sizeof >= 0xd (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x1 bool .

Game::CombatCommandSetPlanetAttackMode

Write 0x0042c7f0, Read 0x0042dd90, IStreamable vftable 0x009e25e0 (COL offset +0x4). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x4 int .

Game::CombatCommandSetPlayerAI

Write 0x00451690, Read 0x00451660, IStreamable vftable 0x009e2628 (COL offset +0x4). sizeof >= 0xd (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x1 bool .

Game::CombatCommandSetWantEndCombat

Write 0x00451690, Read 0x00451660, IStreamable vftable 0x009e2604 (COL offset +0x4). sizeof >= 0xd (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x1 bool .

Game::CombatCommandShipAllStop

Write 0x0042f5a0, Read 0x0042f530, IStreamable vftable 0x009e2670 (COL offset +0x4). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint

Game::CombatCommandShipAttack

Write 0x0042f0b0, Read 0x0042efa0, IStreamable vftable 0x009e288c (COL offset +0x4). sizeof >= 0x30 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . Game::CombatCommandShipAttack::ShipData
0x18 0x4 int .
0x1c 0xc object . Vector3
0x28 0x4 float .
0x2c 0x4 int .

Game::CombatCommandShipClearTargets

Write 0x0042f5a0, Read 0x0042f530, IStreamable vftable 0x009e2694 (COL offset +0x4). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint

Game::CombatCommandShipFireOnce

Write 0x0042f310, Read 0x0042f250, IStreamable vftable 0x009e2820 (COL offset +0x4). sizeof >= 0x20 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint
0x18 0x8 object . Game::GunBankSelection

Game::CombatCommandShipManeuver

Write 0x0042f6a0, Read 0x0042f600, IStreamable vftable 0x009e276c (COL offset +0x4). sizeof >= 0x1c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x10 vector . enum:uint

Game::CombatCommandShipReleaseGrapple

Write 0x0042f5a0, Read 0x0042f530, IStreamable vftable 0x009e26b8 (COL offset +0x4). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint

Game::CombatCommandShipSetFacing

Write 0x0042ec90, Read 0x0042ebe0, IStreamable vftable 0x009e27b4 (COL offset +0x4). sizeof >= 0x1c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint
0x18 0x4 int .

Game::CombatCommandShipSetHoldFire

Write 0x0042f190, Read 0x0042f440, IStreamable vftable 0x009e2844 (COL offset +0x4). sizeof >= 0x29 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint
0x18 0x8 object . Game::GunBankSelection
0x28 0x1 bool .

Game::CombatCommandShipSetOnlyMyTarget

Write 0x0042f190, Read 0x0042f440, IStreamable vftable 0x009e2868 (COL offset +0x4). sizeof >= 0x29 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint
0x18 0x8 object . Game::GunBankSelection
0x28 0x1 bool .

Game::CombatCommandShipSetStance

Write 0x0042ec90, Read 0x0042ebe0, IStreamable vftable 0x009e2790 (COL offset +0x4). sizeof >= 0x1c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint
0x18 0x4 int .

Game::CombatCommandShipSetWaypoint

Write 0x0042ee30, Read 0x0042ed20, IStreamable vftable 0x009e27d8 (COL offset +0x4). sizeof >= 0x39 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . Game::CombatCommandShipSetWaypoint::ShipData
0x18 0x10 object . Quaternion
0x28 0x10 vector . Vector2
0x38 0x1 bool .

Game::CombatCommandShipToggleBank

Write 0x0042f190, Read 0x0042f440, IStreamable vftable 0x009e27fc (COL offset +0x4). sizeof >= 0x29 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x10 vector . enum:uint
0x18 0x8 object . Game::GunBankSelection
0x28 0x1 bool .

Game::CombatDamageReport

Write 0x0059bbf0, Read 0x005a6bc0, IStreamable vftable 0x00a062d4 (COL offset +0x0). sizeof >= 0x30 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 handle did
0x14 0x1c string wep

Game::CombatLaunchParams

Write 0x00451dc0, Read 0x00451a80, IStreamable vftable 0x009e41b0 (COL offset +0x0). sizeof >= 0x194 (lower bound). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x4 0x1c string .
0x20 0x1c string .
0x3c 0x4 int .
0x40 0x4 int .
0x44 0x4 int .
0x48 0x10 vector . Game::ShipParams
0x58 0x1 bool .
0x5c 0x10 vector . Game::CombatPlayerInvariant
0x84 0x1c string .
0xa0 0x4 float .
0xa4 0x10 vector . Game::NodePointParams
0xb4 0x10 vector . Game::PlayerMessage
0xc4 0x4 int .
0xc8 0x1 bool .
0xc9 0x1 bool .
0xcc 0x4 int .
0xd0 0x1c string .
0xec 0x1c string .
0x108 0x24 object . Game::PlanetStats
0x148 0x4 int .
0x14c 0x1 bool .
0x150 ? object . Game::CombatEncounterParams
0x178 0x1c object . Game::DefenceLayout

Container-element fields (offsets are within the element / map node, not the object): .@+0x0, .@+0x0

Game::CombatPlayerReport

Write 0x0059d6d0, Read 0x0059d360, IStreamable vftable 0x00a0623c (COL offset +0x0). sizeof 0x54 (container stride). verified -- fields exact; Read agrees on all 1 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int plr
0x8 0x1 bool ai
0xc 0x4 int ally
0x10 0x4 int8 status
0x14 0x4 int mxeng
0x18 0x4 int mxcls
0x1c 0x4 int mxmsl
0x26 0x4 int8 nsat
0x36 0x4 int8 nsatl
0x3a 0x2 int16 ndam
0x44 0x10 vector srep Game::CombatShipReport

Container-element fields (offsets are within the element / map node, not the object): nshp@+0x-a, nshfld@+0x0, nshlst@+0x6, nshp@+0x0

Game::CombatPlayerStats

Write 0x00459140, Read 0x00459070, IStreamable vftable 0x009e4b74 (COL offset +0x0). sizeof 0x24 (container stride). verified -- fields exact; Read agrees on all 4 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x10 vector TacReports Game::TacReport
0x14 0x4 float RPBon
0x18 0x4 int RPBonT
0x1c 0x4 int SavBonus
0x20 0x1 bool MaintHF

Game::CombatReport

Write 0x0059db30, Read 0x0059d8f0, IStreamable vftable 0x00a0624c (COL offset +0x0). sizeof >= 0x5c (lower bound). verified -- fields exact; Read agrees on all 6 comparable offsets

offset size kind tag type
0x4 0x4 int cid
0x8 0x4 int trn
0xc 0xc object pos Vector3
0x18 0x4 int sid
0x1c 0x1 bool auto
0x20 0x4 float dur
0x24 0x4 int cow
0x28 0x1 bool cdst
0x2c 0x4 int cpk
0x30 0x4 int cpt
0x34 0x4 float cdt
0x38 0x4 float cdi
0x3c 0x10 vector prep Game::CombatPlayerReport
0x4c 0x10 vector wrep Game::CombatWeaponReport

Game::CombatShipReport

Write 0x0059b960, Read 0x0059c650, IStreamable vftable 0x00a06064 (COL offset +0x0). sizeof 0x50 (container stride). verified -- fields exact; Read agrees on all 7 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x1c string name
0x20 0x4 int did
0x24 0x4 int cls
0x28 0x8 int64 caps2
0x30 0x4 int nshp
0x34 0x4 int nfld
0x38 0x4 int nlst
0x3c 0x4 int dtak
0x40 0x4 int dams
0x44 0x4 int damp
0x48 0x4 float dami
0x4c 0x4 float damt

Game::CombatTechFlags

Write 0x004d9e10, Read 0x004d9dc0, IStreamable vftable 0x009e4620 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x4 int .
0x4 0x4 int .

Game::CombatWeaponReport

Write 0x0059bb70, Read 0x0059bad0, IStreamable vftable 0x00a06074 (COL offset +0x0). sizeof 0x30 (container stride). verified -- fields exact; Read agrees on all 3 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x1c string wep
0x20 0x4 int dams
0x24 0x4 int damp
0x28 0x4 float dami
0x2c 0x4 float damt

Game::CommDeclareCurse

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e190 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommDeclareIDontWant

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e280 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommDeclareIHate

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e334 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommDeclareILike

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e370 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommDeclareISaw

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e2bc (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommDeclareISeveredAllianceWith

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e2f8 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommDeclareIWant

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e244 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommDeclareShareAllColonyStats

Write 0x00810990, Read 0x00810850, IStreamable vftable 0x00a2e76c (COL offset +0x0). sizeof >= 0x14 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd

Game::CommDeclareShareStats

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2f830 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommDeclareShareSystemNotes

Write 0x00810da0, Read 0x00810d50, IStreamable vftable 0x00a3157c (COL offset +0x0). sizeof >= 0x34 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x1c string notes

Game::CommDeclareShareSystemStats

Write 0x00810d00, Read 0x008321a0, IStreamable vftable 0x00a2e730 (COL offset +0x0). sizeof >= 0x18 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys

Game::CommDeclareSorry

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e208 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommDeclareThanks

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e1cc (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommMessageContainer

Write 0x00825590, Read 0x0084cc60, IStreamable vftable 0x00a30630 (COL offset +0x0). sizeof >= 0x14 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x10 vector nmsg

Container-element fields (offsets are within the element / map node, not the object): msgt@+0x4, msg@+0x0

Game::CommRequestAttackSystem

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e58c (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestDefendSystem

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e5c8 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestDisposition

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e424 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestHarassPlayer

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e6b8 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestHarassSystem

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e604 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestMoney

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e3ac (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestRallyAtSystem

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e550 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestResearch

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e3e8 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestSeverAllianceWith

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e67c (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestShareSystemStats

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e514 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestStopColonizing

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e4d8 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestStopHarassingMe

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e460 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestStopHarassingPlayer

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e6f4 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestStopHarrassingSystem

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e640 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommRequestStopMining

Write 0x00810ca0, Read 0x00810c40, IStreamable vftable 0x00a2e49c (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x5 0x4 int8 rcpt
0x6 0x2 int16 rcp
0x8 0x4 int cid2
0xc 0x2 int16 sent
0xe 0x2 int16 exp
0x10 0x4 int8 snd
0x14 0x4 int sys
0x18 0x4 int plr

Game::CommonPlague

Write 0x005360e0, Read 0x005373e0, IStreamable vftable 0x009f8b50 (COL offset +0x0). sizeof >= 0x44 (lower bound). verified -- fields exact; Read agrees on all 3 comparable offsets

offset size kind tag type
0x8 0x4 handle PlgSys
0xc 0x4 int PlgCByF
0x10 0x4 handle PlgCBy
0x38 0x4 int PlgCM
0x3c 0x4 int PlgTurns
0x40 0x4 int PlgInf

Game::CrowDefendersEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f284c (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::CrowRuinsEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f285c (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::DefenceFleetAssignment

Write 0x008119d0, Read 0x00832330, IStreamable vftable 0x009e3c48 (COL offset +0x0). sizeof >= 0x18 (lower bound). verified -- fields exact; Read agrees on all 3 comparable offsets

offset size kind tag type
0x4 0x4 int fid
0x8 0x4 int stnid
0xc 0x4 float head2
0x10 0x4 float ori
0x14 0x4 int quota

Game::DefenceLayout

Write 0x00825650, Read 0x0084e700, IStreamable vftable 0x00a22280 (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 int sysid
0x8 0x10 vector ndsa
0x18 0x4 object (ptr) fa Game::DefenceFleetAssignment

Container-element fields (offsets are within the element / map node, not the object): dsid@+0x4

Game::DefenceSummary

Write 0x00825810, Read 0x0084e9b0, IStreamable vftable 0x00a313b8 (COL offset +0x0). sizeof >= 0x48 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 int pid
0x8 0x4 int sid
0xc 0x10 vector stac
0x1c 0x10 vector satc
0x2c 0x1c object dlay Game::DefenceLayout

Game::DerelictEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f12b8 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::DiplomacyStats

Write 0x00818cb0, Read 0x00818b80, IStreamable vftable 0x00a21430 (COL offset +0x0). sizeof 0x24 (container stride). verified -- fields exact; Read agrees on all 13 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int other
0x8 0x2 int16 lastnap
0xa 0x2 int16 lastnapbty
0xc 0x2 int16 bknnap
0xe 0x2 int16 btynap
0x10 0x2 int16 lastally
0x12 0x2 int16 lastallybty
0x14 0x2 int16 bknally
0x16 0x2 int16 btyally
0x18 0x2 int16 lastcf
0x1a 0x2 int16 lastcfbty
0x1c 0x2 int16 bkncf
0x1e 0x2 int16 btycf
0x20 0x2 int16 deadhome

Game::EncounterQuery

Write 0x008122f0, Read 0x0084f190, IStreamable vftable 0x00a313d8 (COL offset +0x0). sizeof >= 0x14 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 vector .

Game::EncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f0b58 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::EncounterResults

Write 0x008262b0, Read 0x0083fb10, IStreamable vftable 0x00a256ec (COL offset +0x0). sizeof >= 0x174 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1 bool .
0x5 0x1 bool .
0x6 0x1 bool .
0x7 0x1 bool .
0x8 0x10 vector . enum:uint
0x18 0x10 vector . Game::CombatPlayerStats
0x28 0x10 vector . int
0x38 0x10 vector . Game::EncounterResults::PrisonerShip
0x48 0x10 vector . Game::EncounterResults::DamagedShip
0x58 0x10 vector . Game::EncounterResults::BoardedShip
0x68 0x10 vector . Game::EncounterResults::RetreatingShip
0x78 0x10 vector . Game::EncounterResults::SpyShip
0x88 0x10 vector . enum:uint
0x98 0x10 vector . enum:uint
0xa8 0x10 vector . enum:uint
0xb8 0x4 int .
0xbc 0x30 object . Game::CombatDamageReport
0xe0 0x10 vector . enum:uint
0xf0 0x4 int .
0xf4 0x4 float .
0xf8 0x1 bool .
0xfc 0x10 vector . enum:uint
0x10c 0x1 bool .
0x110 0x24 object . Game::PlanetStats
0x150 0x14 object . Game::PlagueStats
0x164 0x10 vector .

Container-element fields (offsets are within the element / map node, not the object): .@+0x4, .@+0x0

Game::EncounterResults::BoardedShip

Write 0x00812500, Read 0x00817120, IStreamable vftable 0x00a1cee8 (COL offset +0x0). sizeof 0xc (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .

Game::EncounterResults::DamagedShip

Write 0x008261d0, Read 0x0084f560, IStreamable vftable 0x00a1d050 (COL offset +0x0). sizeof 0x28 (container stride). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x4 0x4 int .
0x8 ? object . Game::ShipHealth
0x18 0x10 vector .

Game::EncounterResults::PrisonerShip

Write 0x00826150, Read 0x008260c0, IStreamable vftable 0x00a1ced8 (COL offset +0x0). sizeof 0x20 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x18 object . Game::PrisonerHold

Game::EncounterResults::RetreatingShip

Write 0x008125d0, Read 0x00812540, IStreamable vftable 0x00a1cef8 (COL offset +0x0). sizeof 0x14 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .
0x10 0x4 int .

Game::EncounterResults::SpyShip

Write 0x008124a0, Read 0x00812410, IStreamable vftable 0x00a1cf08 (COL offset +0x0). sizeof 0x14 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x1 bool .
0xd 0x1 bool .
0x10 0x4 float .

Game::EventStorage

Write 0x00825cc0, Read 0x008850f0, IStreamable vftable 0x00a313c8 (COL offset +0x0). sizeof >= 0x18 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x4 0x10 vector Events Game::EventStorage::TurnEvents
0x14 0x4 int EvNxID

Game::EventStorage::Event

Write 0x00825ab0, Read 0x00825970, IStreamable vftable 0x00a21958 (COL offset +0x0). sizeof >= 0x74 (lower bound). verified -- fields exact; Read agrees on all 4 comparable offsets

offset size kind tag type
0x4 0x4 int EvEID
0x8 0x1c string EvDsc
0x24 0x1c string EvMsg
0x40 0x4 int EvLoc
0x44 0xc object EvPos Vector3
0x50 0x1c string EvImg
0x6c 0x4 int EvAct
0x70 0x4 int EvCID

Game::EventStorage::TurnEvents

Write 0x00825c40, Read 0x00825bb0, IStreamable vftable 0x00a0f07c (COL offset +0x0). sizeof 0x18 (container stride). verified -- fields exact; Read agrees on all 1 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int EvTurn
0x8 0x10 vector Events Game::EventStorage::Event

Game::FieldTemplate

Write 0x0059e310, Read 0x0059e2a0, IStreamable vftable 0x009e4610 (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- only container elements / computed values recovered

Game::FieldTemplate::Point

Write 0x0059bfa0, Read 0x0059bf10, IStreamable vftable 0x00a05df8 (COL offset +0x0). sizeof 0x14 (container stride). verified -- fields exact; Read agrees on all 3 comparable offsets; sizeof corroborated

offset size kind tag type
0x0 0x4 int FTPShID
0x4 0x4 int FTPDesID
0x8 0x4 int FTPPosX
0xc 0x4 int FTPPosY
0x10 0x4 int FTPSqd

Game::FleetLayout

Write 0x00700e20, Read 0x007022b0, IStreamable vftable 0x00a0f3dc (COL offset +0x0). sizeof >= 0x24 (lower bound). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x4 ? object . Game::FieldTemplate
0x14 0x10 vector .

Game::FleetNameGenerator

Write 0x00817460, Read 0x00817440, IStreamable vftable 0x00a32760 (COL offset +0x0). sizeof >= 0x8 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x4 0x4 int FNGNum

Game::FlightPlan

Write 0x00700f60, Read 0x00704c70, IStreamable vftable 0x00a1d50c (COL offset +0x0). sizeof 0x38 (enumeration meets embedding). verified -- fields exact; Read agrees on all 2 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x10 vector wpts Game::FlightPlan::Waypoint
0x14 0x4 float FPsp2
0x18 0x4 int FPeta2
0x1c 0xc object FPogn2 Vector3
0x28 0xc object FPdpos Vector3
0x34 0x4 int pnd

Game::FlightPlan::Waypoint

Write 0x00700ed0, Read 0x00701860, IStreamable vftable 0x00a1d39c (COL offset +0x0). sizeof >= 0x1c (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 int Wpt
0x8 0x4 int Tp
0xc 0x10 object nrt Game::NodeRoute

Game::Game::SVSOBrokenEmpire::VPCStat::?$NetworkIDDataMap

Write 0x0054e8d0, Read 0x00557460, IStreamable vftable 0x009fa5a4 (COL offset +0x0). sizeof >= 0xc (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x8 0x4 int siz

Container-element fields (offsets are within the element / map node, not the object): .@+0xc, .@+0x10

Game::Game::VLocustFleetLogistics::?$NetworkIDDataMap

Write 0x0050c5f0, Read 0x0051c6c0, IStreamable vftable 0x009f1e10 (COL offset +0x0). sizeof >= 0xc (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x8 0x4 int siz

Container-element fields (offsets are within the element / map node, not the object): .@+0xc, .@+0x10

Game::Game::VLocustNestState::?$NetworkIDDataMap

Write 0x0050c4f0, Read 0x0051c5f0, IStreamable vftable 0x009f1e00 (COL offset +0x0). sizeof >= 0xc (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x8 0x4 int siz

Container-element fields (offsets are within the element / map node, not the object): .@+0xc, .@+0x10

Game::Game::VShipSectionID::?$AIWeightMap

Write 0x00696b40, Read 0x006bff00, IStreamable vftable 0x00a1a680 (COL offset +0x0). sizeof >= 0x4 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x4 object (ptr) . Game::ShipSectionID

Container-element fields (offsets are within the element / map node, not the object): .@+0x8

Game::GameTurnHistory

Write 0x0082c5a0, Read 0x00894180, IStreamable vftable 0x00a333a0 (COL offset +0x0). sizeof >= 0x10 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0xc 0x4 int nply

Container-element fields (offsets are within the element / map node, not the object): ply@+0xc, hist@+0x10

Game::GunBankSelection

Write 0x0056e950, Read 0x0056e920, IStreamable vftable 0x009e24f8 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::HeraldEncounterResult

Write 0x004f2ff0, Read 0x004f2fc0, IStreamable vftable 0x009efc90 (COL offset +0x0). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x4 float .

Game::IndependenceInfo

Write 0x00748ee0, Read 0x00748df0, IStreamable vftable 0x00a2005c (COL offset +0x0). sizeof >= 0x70 (lower bound). verified -- fields exact; Read agrees on all 3 comparable offsets

offset size kind tag type
0x4 0x4 int indsp
0x8 0x7 object indcl Game::PlayerColorID
0x1c 0x1c string indnm
0x38 0x1c string indav
0x54 0x1c string indba

Game::JewelsProject

Write 0x00548910, Read 0x005488d0, IStreamable vftable 0x009fa438 (COL offset +0x0). sizeof >= 0x4c (lower bound). verified -- fields exact; Read agrees on all 2 comparable offsets

offset size kind tag type
0x8 0x34 object SPi Game::SpecialProject
0x3c 0x4 int Stp
0x44 0x4 int einv
0x48 0x4 int eapp

Game::LocustEncounterParams

Write 0x00508be0, Read 0x00508b70, IStreamable vftable 0x009f56a8 (COL offset +0x0). sizeof >= 0x14 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0xc object . Game::Game::VLocustNestState::?$NetworkIDDataMap

Game::LocustEncounterResult

Write 0x00508ce0, Read 0x00508c40, IStreamable vftable 0x009f54e8 (COL offset +0x0). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0xc object . Game::Game::VLocustNestState::?$NetworkIDDataMap

Game::LocustFleetLogistics

Write 0x00508e50, Read 0x00508d60, IStreamable vftable 0x009f1f00 (COL offset +0x0). sizeof >= 0x14 (lower bound). verified -- fields exact; Read agrees on all 2 comparable offsets

offset size kind tag type
0x0 0x1 bool hav
0x1 0x1 bool don
0x4 0x4 int dsy
0x8 0xc object dst Vector3

Game::Mars::Game::W4AIPurposeID::U?$StreamableEnum::?$AIWeightMap

Write 0x0069b590, Read 0x006c01a0, IStreamable vftable 0x00a1a6b0 (COL offset +0x0). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x10 vector .

Container-element fields (offsets are within the element / map node, not the object): .@+0x0

Game::Mars::Game::W4WeaponFamilyID::U?$StreamableEnum::?$AIWeightMap

Write 0x0069b4c0, Read 0x006bffe0, IStreamable vftable 0x00a1a690 (COL offset +0x0). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x10 vector .

Container-element fields (offsets are within the element / map node, not the object): .@+0x0

Game::Mars::I::U?$StreamableEnum::?$AIWeightMap

Write 0x00696c50, Read 0x006b57c0, IStreamable vftable 0x00a1a6c0 (COL offset +0x0). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x10 vector .

Container-element fields (offsets are within the element / map node, not the object): .@+0x0

Game::MeteorEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f1424 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::MonitorEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f1570 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::MonitorProject

Write 0x008287d0, Read 0x00828740, IStreamable vftable 0x00a3180c (COL offset +0x0). sizeof >= 0x54 (lower bound). verified -- fields exact; Read agrees on all 4 comparable offsets

offset size kind tag type
0x8 0x34 object SPi Game::SpecialProject
0x3c 0x4 int Stp
0x40 0x4 int Sys
0x44 0x4 int RMn
0x48 0x4 int RMx
0x4c 0x4 int RDn
0x50 0x4 float RMd

Game::Morale

Write 0x00744ea0, Read 0x00744dd0, IStreamable vftable 0x00a1f7c8 (COL offset +0x0). sizeof >= 0x8 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x4 0x4 int mv

Game::MoraleEvent

Write 0x007491b0, Read 0x007490b0, IStreamable vftable 0x00a2003c (COL offset +0x0). sizeof 0x50 (container stride). verified -- fields exact; Read agrees on all 4 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int mid
0x8 0x4 int mtr
0xc 0x4 int mn
0x10 0x4 int mtp
0x14 0x8 object mfx Game::Morale
0x34 0x1c string mdsc

Game::NodePath

Write 0x006e1fd0, Read 0x006e1e90, IStreamable vftable 0x00a1cb50 (COL offset +0x0). sizeof 0x30 (container stride). verified -- fields exact; Read agrees on all 6 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int npt
0x8 0x4 int npid
0xc 0x4 int npfr
0x10 0x4 int npto
0x14 0x4 int npctm
0x18 0x4 int npcby
0x1c 0x4 int npdtn
0x20 0x4 int npdtf
0x24 0x4 int nptf
0x28 0x4 int npenp
0x2c 0x4 int npuse

Game::NodePointParams

Write 0x00492aa0, Read 0x004929d0, IStreamable vftable 0x009e3ff4 (COL offset +0x0). sizeof >= 0x3c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x4 float .
0x4 0x4 int .
0x8 0x1c string .
0x24 0x4 float .
0x28 0x4 int .
0x2c 0x10 vector . enum:uint

Game::NodeRoute

Write 0x006e22e0, Read 0x006e2260, IStreamable vftable 0x00a1cbdc (COL offset +0x0). sizeof >= 0x10 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 int nrp
0x8 0x4 int nrf
0xc 0x4 int nrt

Game::Objective

Write 0x008505b0, Read 0x00850430, IStreamable vftable 0x00a2e0cc (COL offset +0x0). sizeof 0x44 (container stride). verified -- fields exact; Read agrees on all 2 comparable offsets; sizeof corroborated

offset size kind tag type
0x0 0x4 int ID
0x4 0x1 bool Cmp
0x40 0x4 int NID

Game::ObservedDesign

Write 0x00817aa0, Read 0x008179f0, IStreamable vftable 0x00a23c64 (COL offset +0x0). sizeof 0x10 (container stride). clean -- fields exact; sizeof corroborated

offset size kind tag type
0x4 0x2 int16 otnF
0x6 0x2 int16 otnL
0x8 0x4 int odid
0xc 0x4 int opid

Game::ObservedTech

Write 0x00817cf0, Read 0x00817c40, IStreamable vftable 0x00a2439c (COL offset +0x0). sizeof 0x2c (container stride). verified -- fields exact; Read agrees on all 2 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x2 int16 otnF
0x6 0x2 int16 otnL
0x8 0x1 bool odet
0xc 0x1c string otch
0x28 0x4 int owith

Game::ObservedWeapon

Write 0x00817bc0, Read 0x00817b10, IStreamable vftable 0x00a2438c (COL offset +0x0). sizeof 0x2c (container stride). verified -- fields exact; Read agrees on all 2 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x2 int16 otnF
0x6 0x2 int16 otnL
0x8 0x1 bool odet
0xc 0x1c string owep
0x28 0x4 int owith

Game::OrtgayEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f0e80 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::PirateEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f159c (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::PlagueHit

Write 0x00536710, Read 0x005366b0, IStreamable vftable 0x009f8d10 (COL offset +0x0). sizeof 0x10 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .

Game::PlagueStats

Write 0x00537e90, Read 0x00537e20, IStreamable vftable 0x009eef70 (COL offset +0x0). sizeof 0x14 (enumeration meets embedding). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 vector . Game::PlagueHit

Game::PlanetClientContext

Write 0x005369a0, Read 0x005368c0, IStreamable vftable 0x009e3c38 (COL offset +0x0). sizeof >= 0x1c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 float .
0x8 0x4 float .
0xc 0x4 float .
0x10 0x4 float .
0x14 0x4 int .
0x18 0x4 int .

Game::PlanetStats

Write 0x00536810, Read 0x00536760, IStreamable vftable 0x009e3f84 (COL offset +0x0). sizeof >= 0x24 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x4 float .
0x4 0x4 float .
0x8 0x4 int .
0x10 0x8 int64 .
0x18 0x8 int64 .
0x20 0x4 float .

Game::PlayerAid

Write 0x00818dc0, Read 0x008207b0, IStreamable vftable 0x00a286dc (COL offset +0x0). sizeof 0x18 (container stride). verified -- fields exact; Read agrees on all 4 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int aidto
0x8 0x4 int aidrai
0xc 0x4 int aidrt
0x10 0x4 int aidsa
0x14 0x4 int aidst

Game::PlayerAlliances

Write 0x006d2e10, Read 0x006d2d20, IStreamable vftable 0x00a2dd5c (COL offset +0x0). sizeof 0x10 (container stride). clean -- fields exact; sizeof corroborated

offset size kind tag type
0x0 0x4 int ALid
0x4 0x4 int AL
0x8 0x4 int NA
0xc 0x4 int CF

Game::PlayerColorID

Write 0x0053c080, Read 0x0053c880, IStreamable vftable 0x009e4630 (COL offset +0x0). sizeof >= 0x7 (lower bound). partial -- 4 field(s) via an untyped sub-writer

offset size kind tag type
0x0 0x4 opaque .
0x1 0x4 opaque .
0x2 0x4 opaque .
0x3 0x4 opaque .

Game::PlayerEncounterProgress

Write 0x004fa040, Read 0x004fa000, IStreamable vftable 0x009f0b68 (COL offset +0x0). sizeof 0x10 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1 bool .
0xc 0x4 float .

Game::PlayerMessage

Write 0x0053cc50, Read 0x0053cb80, IStreamable vftable 0x009e3cd8 (COL offset +0x0). sizeof >= 0x38 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x1c string .
0x28 0x10 vector . String

Game::PlayerNotes

Write 0x008132b0, Read 0x00813250, IStreamable vftable 0x00a21948 (COL offset +0x0). sizeof >= 0x28 (lower bound). verified -- fields exact; Read agrees on all 2 comparable offsets

offset size kind tag type
0x4 0x4 int NtSys
0x8 0x1c string NtTxt
0x24 0x4 int NtTrn

Game::PlayerReport

Write 0x00817480, Read 0x008200a0, IStreamable vftable 0x00a21440 (COL offset +0x0). sizeof 0x30 (container stride). verified -- fields exact; Read agrees on all 4 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int oid
0x8 0x4 int pid
0xc 0x4 int flds
0x10 0x4 int sav
0x14 0x4 int home
0x18 0x4 int ncol
0x1c 0x4 int mpwr
0x20 0x4 int mcls
0x24 0x4 int mmsl
0x28 0x4 int nshp
0x2c 0x4 int nsat

Game::PlayerTurnHistory

Write 0x0082c4a0, Read 0x00885450, IStreamable vftable 0x00a32c90 (COL offset +0x0). sizeof >= 0x8 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 int ply

Container-element fields (offsets are within the element / map node, not the object): stats@+0x18

Game::PlayerTurnStats

Write 0x0082c290, Read 0x00833360, IStreamable vftable 0x00a3145c (COL offset +0x0). sizeof >= 0x70 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x2 int16 trn
0x8 0x4 int almem
0xc 0x4 int inc
0x10 0x4 int tdinc
0x14 0x4 int sav
0x18 0x2 int16 col
0x1a 0x2 int16 bat
0x20 0x8 int64 pop
0x28 0x2 int16 tch
0x50 0x10 vector sacq Game::SystemEvent
0x60 0x10 vector slost Game::SystemEvent

Container-element fields (offsets are within the element / map node, not the object): shpt@+0x-c, shpl@+0x0, shpk@+0x6, satt@+0x-6, satl@+0xc, satk@+0x12

Game::Population

Write 0x00537ef0, Read 0x005390c0, IStreamable vftable 0x009f90f0 (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- only container elements / computed values recovered

Game::PopulationGroup

Write 0x00536af0, Read 0x00536a80, IStreamable vftable 0x009f8d50 (COL offset +0x0). sizeof >= 0x18 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x4 0x4 int PopT
0x8 0x4 int PopS
0x10 0x8 int64 PopC

Game::PrisonerHold

Write 0x0056ec00, Read 0x0056eb00, IStreamable vftable 0x009fe130 (COL offset +0x0). sizeof 0x18 (enumeration meets embedding). clean -- fields exact; sizeof corroborated

offset size kind tag type
0x14 0x4 handle PrMax

Container-element fields (offsets are within the element / map node, not the object): PrSp@+0x0, PrNum@+0x0

Game::PuppetMasterEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f16f8 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::RaidTargets

Write 0x00818ec0, Read 0x0083a090, IStreamable vftable 0x00a21968 (COL offset +0x0). sizeof >= 0x20 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x4 0x4 int rds
0x8 0x4 int rdv
0xc 0x10 vector dsc
0x1c 0x4 int rdt

Game::RefugeesEncounterParams

Write 0x004fbff0, Read 0x004fbfd0, IStreamable vftable 0x009f11dc (COL offset +0x0). sizeof >= 0x9 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x1 bool .

Game::RefugeesEncounterResult

Write 0x004fc070, Read 0x004fc010, IStreamable vftable 0x009f11ec (COL offset +0x0). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x4 int .

Game::SNMAIRelationValues

Write 0x0082a650, Read 0x0082a5e0, IStreamable vftable 0x00a319d8 (COL offset +0x0). sizeof >= 0x14 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 vector . Game::AIRelationRecord

Game::SNMAllCombatDone

Write 0x0082a170, Read 0x0082a100, IStreamable vftable 0x00a24758 (COL offset +0x0). sizeof >= 0x14 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 vector . Game::EncounterResults

Game::SNMAllianceInvite

Write 0x00817290, Read 0x00816f30, IStreamable vftable 0x00a2d768 (COL offset +0x0). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .

Game::SNMAllianceInviteChat

Write 0x00816c20, Read 0x00816ba0, IStreamable vftable 0x00a319ec (COL offset +0x0). sizeof >= 0x2c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x1c string .
0x28 0x4 int .

Game::SNMAllianceInviteProgress

Write 0x0082a9e0, Read 0x0082a940, IStreamable vftable 0x00a3233c (COL offset +0x0). sizeof >= 0x54 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4c object . Game::AllianceInvite

Game::SNMAllianceNotify

Write 0x00817290, Read 0x00816f30, IStreamable vftable 0x00a2d790 (COL offset +0x0). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .

Game::SNMAllianceReply

Write 0x00817030, Read 0x00816fb0, IStreamable vftable 0x00a2d77c (COL offset +0x0). sizeof >= 0x11 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .
0x10 0x1 bool .

Game::SNMCancelAllianceInvite

Write 0x00812500, Read 0x00817120, IStreamable vftable 0x00a2d7cc (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .

Game::SNMChat

Write 0x00816d30, Read 0x00816c80, IStreamable vftable 0x00a241c4 (COL offset +0x0). sizeof >= 0x30 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .
0x10 0x1c string .
0x2c 0x4 int .

Game::SNMCombatTimeRemaining

Write 0x00816980, Read 0x00816950, IStreamable vftable 0x00a2d704 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 float .

Game::SNMCommMessage

Write 0x0082a4f0, Read 0x00855690, IStreamable vftable 0x00a2d740 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 object (ptr) . Game::ICommMessage

Game::SNMDemandEmpireSurrender

Write 0x00812500, Read 0x00817120, IStreamable vftable 0x00a2164c (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .

Game::SNMDemandEmpireSurrenderResponse

Write 0x00764ac0, Read 0x00764a90, IStreamable vftable 0x00a21660 (COL offset +0x0). sizeof >= 0xd (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x1 bool .

Game::SNMDoEncounterQuery

Write 0x00816f10, Read 0x00816ee0, IStreamable vftable 0x00a23d54 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::SNMEncounterProgress

Write 0x0082a240, Read 0x0082a1d0, IStreamable vftable 0x00a319c4 (COL offset +0x0). sizeof >= 0x14 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 vector . Game::PlayerEncounterProgress

Game::SNMEncounterQueryResults

Write 0x0082a330, Read 0x0082a2a0, IStreamable vftable 0x00a31424 (COL offset +0x0). sizeof >= 0x1c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x14 object . Game::EncounterQuery

Game::SNMEncounterResults

Write 0x0082a460, Read 0x0082a3b0, IStreamable vftable 0x00a32a54 (COL offset +0x0). sizeof >= 0x184 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x174 object . Game::EncounterResults
0x180 0x4 int .

Game::SNMEndTurn

Write 0x0082a770, Read 0x0082a6b0, IStreamable vftable 0x00a229e0 (COL offset +0x0). sizeof >= 0x1c8 (lower bound). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x4 ? object . Game::TurnCommands
0x1b8 0x10 object . Game::AIEncounterFlags

Game::SNMGenericEvent

Write 0x00451630, Read 0x00451600, IStreamable vftable 0x00a31a50 (COL offset +0x0). sizeof >= 0x24 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1c string .

Game::SNMGenericGameMessage

Write 0x00812500, Read 0x00817120, IStreamable vftable 0x00a2d7f4 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .

Game::SNMHostCombat

Write 0x00816870, Read 0x008167f0, IStreamable vftable 0x00a31974 (COL offset +0x0). sizeof >= 0x32 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x1c string .
0x28 0x4 int .
0x2c 0x4 float .
0x30 0x1 bool .
0x31 0x1 bool .

Game::SNMHostCombatReply

Write 0x00829df0, Read 0x00829d40, IStreamable vftable 0x00a31988 (COL offset +0x0). sizeof >= 0x7c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1 bool .
0x8 0x58 object . Address
0x60 0x1c string .

Game::SNMJoin

Write 0x008167b0, Read 0x00816770, IStreamable vftable 0x00a31960 (COL offset +0x0). sizeof >= 0x25 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1c string .
0x24 0x1 bool .

Game::SNMJoinCombat

Write 0x0082a040, Read 0x00829f70, IStreamable vftable 0x00a3199c (COL offset +0x0). sizeof >= 0x9c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x58 object . Address
0x5c 0x1c string .
0x78 0x1c string .
0x94 0x4 int .
0x98 0x4 int .

Game::SNMJoinCombatReply

Write 0x00816920, Read 0x008168f0, IStreamable vftable 0x00a319b0 (COL offset +0x0). sizeof >= 0x24 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1 bool .
0x8 0x1c string .

Game::SNMJoinReply

Write 0x008d1ab0, Read 0x008d1a90, IStreamable vftable 0x00a2d6f0 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::SNMKillAI

Write 0x00816f10, Read 0x00816ee0, IStreamable vftable 0x00a2d754 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::SNMLaunchCombat

Write 0x00829e90, Read 0x0087acf0, IStreamable vftable 0x00a3274c (COL offset +0x0). sizeof >= 0x2c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x10 vector .
0x18 0x14 object . Game::EncounterQuery

Game::SNMLeaveAlliance

Write 0x00816f10, Read 0x00816ee0, IStreamable vftable 0x00a212c0 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::SNMLeaveCeaseFire

Write 0x00812500, Read 0x00817120, IStreamable vftable 0x00a2d7b8 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .

Game::SNMLeaveNonAggression

Write 0x00812500, Read 0x00817120, IStreamable vftable 0x00a2d7a4 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .

Game::SNMLobbyChat

Write 0x00816e00, Read 0x00816da0, IStreamable vftable 0x00a31a00 (COL offset +0x0). sizeof >= 0x40 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1c string .
0x24 0x1c string .

Game::SNMMakePlayerAI

Write 0x00816a00, Read 0x008169b0, IStreamable vftable 0x00a2d72c (COL offset +0x0). sizeof >= 0x9 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1 bool .

Game::SNMPendingAlliances

Write 0x0082abf0, Read 0x0082ab80, IStreamable vftable 0x00a31438 (COL offset +0x0). sizeof >= 0x14 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 vector . Game::PlayerAlliances

Game::SNMPlaySpeechEvent

Write 0x00817290, Read 0x00816f30, IStreamable vftable 0x00a2d808 (COL offset +0x0). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .

Game::SNMProgressionWarsConvoyShips

Write 0x008172e0, Read 0x00838eb0, IStreamable vftable 0x00a307bc (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::SNMRefreshSlots

Write 0x00828290, Read 0x00828220, IStreamable vftable 0x00a317b0 (COL offset +0x0). sizeof >= 0x14 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 vector . Game::SNMRefreshSlots::SlotData

Game::SNMRefreshSlots::SlotData

Write 0x008145b0, Read 0x00814570, IStreamable vftable 0x00a23c74 (COL offset +0x0). sizeof 0x10 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x1 bool .

Game::SNMRemoveCommMessage

Write 0x00812500, Read 0x00817120, IStreamable vftable 0x00a2141c (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .

Game::SNMRunAI

Write 0x00816ea0, Read 0x00816e40, IStreamable vftable 0x00a31a14 (COL offset +0x0). sizeof >= 0x25 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1c string .
0x24 0x1 bool .

Game::SNMSetAIPolicy

Write 0x00812500, Read 0x00817120, IStreamable vftable 0x00a21408 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .

Game::SNMSetPlayerStatus

Write 0x0042c7f0, Read 0x0042dd90, IStreamable vftable 0x00a2d718 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .

Game::SNMSetSlotPassword

Write 0x008170e0, Read 0x00817090, IStreamable vftable 0x00a31a3c (COL offset +0x0). sizeof >= 0x24 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1c string .

Game::SNMSetTimers

Write 0x00617bc0, Read 0x00617b50, IStreamable vftable 0x00a0c08c (COL offset +0x0). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x14 object . Game::StrategyTimerParams

Game::SNMSlotInit

Write 0x00827e80, Read 0x00827d40, IStreamable vftable 0x00a3256c (COL offset +0x0). sizeof >= 0x40 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1 bool .
0x5 0x1 bool .
0x6 0x1 bool .
0x8 0x4 int .
0xc 0x10 vector . Game::Slot
0x1c 0x4 int .
0x20 0x1 bool .
0x24 0x4 int .
0x28 0x4 int .
0x2c 0x14 object . Game::StrategyPlayerGameSettings

Game::SNMSlotInsertClient

Write 0x008143b0, Read 0x00814370, IStreamable vftable 0x00a31774 (COL offset +0x0). sizeof >= 0x28 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x1c string .

Game::SNMSlotMoveClient

Write 0x00814430, Read 0x008143f0, IStreamable vftable 0x00a2d594 (COL offset +0x0). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .

Game::SNMSlotPWAttempt

Write 0x0076c680, Read 0x008d1ad0, IStreamable vftable 0x00a3179c (COL offset +0x0). sizeof >= 0x20 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .

Game::SNMSlotPWRejected

Write 0x008d1ab0, Read 0x008d1a90, IStreamable vftable 0x00a2d5e4 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::SNMSlotRemoveClient

Write 0x008d1ab0, Read 0x008d1a90, IStreamable vftable 0x00a2d580 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::SNMSlotReqPW

Write 0x00814540, Read 0x00814510, IStreamable vftable 0x00a2d5a8 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 float .
0x8 0x4 int .

Game::SNMSlotSetData

Write 0x008280f0, Read 0x00827fa0, IStreamable vftable 0x00a31760 (COL offset +0x0). sizeof >= 0x94 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x1c string .
0x28 0x4 int .
0x2c 0x4 int .
0x30 0x7 object . Game::PlayerColorID
0x44 0x1c string .
0x60 0x1c string .
0x7c 0x1 bool .
0x80 0x14 object . Game::StrategyPlayerGameSettings

Game::SNMSlotSetForcedSpecies

Write 0x008d1ab0, Read 0x008d1a90, IStreamable vftable 0x00a2d558 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::SNMSlotSetPW

Write 0x008144c0, Read 0x00814470, IStreamable vftable 0x00a31788 (COL offset +0x0). sizeof >= 0x26 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x1c string .
0x24 0x1 bool .
0x25 0x1 bool .

Game::SNMSlotSetState

Write 0x00814330, Read 0x008142e0, IStreamable vftable 0x00a2d56c (COL offset +0x0). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .

Game::SNMTechOffer

Write 0x00817220, Read 0x00817180, IStreamable vftable 0x00a21914 (COL offset +0x0). sizeof >= 0x2d (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .
0x10 0x1c string .
0x2c 0x1 bool .

Game::SNMTransferProgress

Write 0x007910d0, Read 0x00791060, IStreamable vftable 0x00a241d8 (COL offset +0x0). sizeof >= 0x14 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 vector . char

Game::SNMTurnInfo

Write 0x0078da60, Read 0x0078d9f0, IStreamable vftable 0x00a23a8c (COL offset +0x0). sizeof >= 0x38 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x34 object . Game::StrategyTurnInfo

Game::SNMUpdate

Write 0x00829c40, Read 0x00829ad0, IStreamable vftable 0x00a24744 (COL offset +0x0). sizeof >= 0x54 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 vector . Game::PlayerAlliances
0x14 0x10 vector . enum:uint
0x24 0x10 vector . enum:uint
0x34 0x10 vector . enum:uint
0x44 0x10 vector . Game::TechOffer

Game::SNMUpdateAlliances

Write 0x0082ab00, Read 0x0082aa60, IStreamable vftable 0x00a2d7e0 (COL offset +0x0). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x10 object . Game::PlayerAlliances

Game::SNMUpdateComplete

Write 0x0076c680, Read 0x008d1ad0, IStreamable vftable 0x00a21ad0 (COL offset +0x0). sizeof >= 0x20 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .

Game::SNMUserNames

Write 0x0082a8b0, Read 0x0082a810, IStreamable vftable 0x00a31a28 (COL offset +0x0). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x10 vector . Game::StrategyUserInfo
0x14 0x4 int .

Game::SVSOAntiquarians

Write 0x0054bb40, Read 0x00551e90, IStreamable vftable 0x009fab94 (COL offset +0x0). sizeof >= 0x20 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x8 0x10 vector narts
0x18 0x4 int wpid
0x1c 0x4 int wpturn

Container-element fields (offsets are within the element / map node, not the object): art@+0x0

Game::SVSOAntiquarians::Artifact

Write 0x005477e0, Read 0x00547760, IStreamable vftable 0x009fa410 (COL offset +0x0). sizeof >= 0x14 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 handle shipid
0x8 0x4 handle salsid
0xc 0x4 int salpid
0x10 0x4 int pvis

Game::SVSOBrokenEmpire

Write 0x0054bd50, Read 0x0054bcc0, IStreamable vftable 0x009fb134 (COL offset +0x0). sizeof >= 0x14 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x8 0xc object pcs Game::Game::SVSOBrokenEmpire::VPCStat::?$NetworkIDDataMap

Game::SVSOCrowDefenders

Write 0x004f8c90, Read 0x0050fe90, IStreamable vftable 0x009f5904 (COL offset +0x0). sizeof >= 0x3c (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x4 0x4 handle sys
0x8 0x10 vector ndsys
0x18 0x10 vector ndes
0x38 0x4 float drad

Game::SVSOCrowRuins

Write 0x00502730, Read 0x005241d0, IStreamable vftable 0x009f4d44 (COL offset +0x0). sizeof >= 0x28 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x10 vector NAsg
0x18 0x10 vector NWD

Container-element fields (offsets are within the element / map node, not the object): Esys@+0x4

Game::SVSODerelict

Write 0x004fc2b0, Read 0x0051f2a0, IStreamable vftable 0x009f4664 (COL offset +0x0). sizeof >= 0x28 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 handle Eflt
0x18 0x10 vector NDsn

Container-element fields (offsets are within the element / map node, not the object): NAsg@+0x4, Esys@+0x4

Game::SVSOGrandMenaceTrigger

Write 0x004fca00, Read 0x004fc9d0, IStreamable vftable 0x009f1204 (COL offset +0x0). sizeof >= 0x8 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 int gmch

Game::SVSOJewelsOfTheCrown

Write 0x0054c740, Read 0x0054c5f0, IStreamable vftable 0x009fb1f4 (COL offset +0x0). sizeof >= 0x30 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x8 0x4 int JEWELLOCATIONID
0xc 0x4 int JEWELSHIPID
0x10 0x4 int JEWELLOCATIONID
0x14 0x10 vector prjdone enum:uint
0x2c 0x4 int PREVJEWELSHIPID

Game::SVSOLandGrab

Write 0x00548f70, Read 0x0054a9e0, IStreamable vftable 0x009fa92c (COL offset +0x0). sizeof >= 0x8c (lower bound). verified -- fields exact; Read agrees on all 2 comparable offsets

offset size kind tag type
0x8 0x4 int nwt
0x88 0x4 float winr

Game::SVSOLocust

Write 0x00508ef0, Read 0x0050d380, IStreamable vftable 0x009f56bc (COL offset +0x0). sizeof >= 0x3c (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x4 0x1 bool ini2
0x8 0xc object nst Game::Game::VLocustNestState::?$NetworkIDDataMap
0x18 0xc object flt Game::Game::VLocustFleetLogistics::?$NetworkIDDataMap
0x28 0x4 int des
0x2c 0x10 vector vis enum:uint

Game::SVSOMasterVoice

Write 0x0054cd10, Read 0x0054cc40, IStreamable vftable 0x009fb094 (COL offset +0x0). sizeof >= 0x28 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x8 0x10 vector hom enum:uint
0x18 0x10 vector hmd enum:HomeState

Game::SVSOMonitor

Write 0x004fd810, Read 0x0052b440, IStreamable vftable 0x009f5854 (COL offset +0x0). sizeof >= 0x44 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 handle Eflt
0x18 0x10 vector NDsn
0x28 0x1c string scnm

Container-element fields (offsets are within the element / map node, not the object): NAsg@+0x4, Esys@+0x4

Game::SVSOOrtgay

Write 0x00509510, Read 0x00509390, IStreamable vftable 0x009f0e94 (COL offset +0x0). sizeof >= 0x38 (lower bound). verified -- fields exact; Read agrees on all 5 comparable offsets

offset size kind tag type
0x4 0x1 bool init
0x8 0x4 int design
0xc 0x4 int state
0x10 0xc object origin Vector3
0x1c 0xc object center Vector3
0x28 0x4 int turnLv
0x2c 0x4 int turnAn
0x30 0x4 int spawnturn
0x34 0x4 int spawnodds

Game::SVSOProgressionWars

Write 0x0054cdb0, Read 0x00553490, IStreamable vftable 0x009fb34c (COL offset +0x0). sizeof >= 0x50 (lower bound). verified -- fields exact; Read agrees on all 8 comparable offsets

offset size kind tag type
0x8 0x4 int stg
0xc 0x4 int sft
0x10 0x4 int snt
0x14 0x4 int snec
0x18 0x4 int ses
0x1c 0x4 int snet
0x20 0x4 int snep
0x24 0x4 int srsi
0x28 0x4 int srs
0x40 0x10 vector lts String

Game::SVSOPuppetMaster

Write 0x00509f80, Read 0x00511b80, IStreamable vftable 0x009f3dcc (COL offset +0x0). sizeof >= 0x2c (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x8 0x4 handle Flt
0xc 0x1 bool Init2
0x10 0x10 vector NSys
0x20 0xc object End Vector3

Game::SVSORefugees

Write 0x00509640, Read 0x00526420, IStreamable vftable 0x009f575c (COL offset +0x0). sizeof >= 0x28 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0xc 0x4 int rsuc
0x14 0x1 bool ini
0x18 0x10 vector didc

Container-element fields (offsets are within the element / map node, not the object): pid@+0xc, rsu@+0x10

Game::SVSORefugees::PlayerStatus

Write 0x004fbf50, Read 0x004fbeb0, IStreamable vftable 0x009f11cc (COL offset +0x0). sizeof >= 0x12 (lower bound). verified -- fields exact; Read agrees on all 3 comparable offsets

offset size kind tag type
0x4 0x4 int lr
0x8 0x4 int lrt
0xc 0x4 int llc
0x10 0x1 bool atr
0x11 0x1 bool asy

Game::SVSOSlaversRefuel

Write 0x004fdf80, Read 0x00520b00, IStreamable vftable 0x009f4834 (COL offset +0x0). sizeof >= 0x3c (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x4 0x10 vector NAsg
0x18 0x10 vector NTD
0x28 0x10 vector NAD
0x38 0x4 int CDiff

Container-element fields (offsets are within the element / map node, not the object): Esys@+0x4

Game::SVSOSots

Write 0x0059ddf0, Read 0x005a7a40, IStreamable vftable 0x00a063c4 (COL offset +0x0). sizeof >= 0x38 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 int ScnID
0x8 0x4 object (ptr) ScnObj Game::SVSOScenarioBase
0xc 0x10 vector NEncObjs
0x34 0x4 int numx

Container-element fields (offsets are within the element / map node, not the object): xscn@+0xc, xsc@+0x28, EncObj@+0x4

Game::SVSOSwarm

Write 0x0050a0c0, Read 0x00520d50, IStreamable vftable 0x009f48dc (COL offset +0x0). sizeof >= 0x24 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x10 vector NAsg
0x20 0x4 vector (ptr) infest Game::SVSOSwarm::Infestation

Container-element fields (offsets are within the element / map node, not the object): Esys@+0x4

Game::SVSOSwarm::Infestation

Write 0x004fe0e0, Read 0x00504bd0, IStreamable vftable 0x009f1720 (COL offset +0x0). sizeof >= 0x19 (lower bound). verified -- fields exact; Read agrees on all 4 comparable offsets

offset size kind tag type
0x4 0x4 handle sysid
0x8 0x4 int stg
0xc 0x4 int strn
0x10 0x4 int mtrn
0x14 0x4 int trgtrn
0x18 0x1 bool canh

Game::SVSOSwarmQueen

Write 0x0050ac70, Read 0x0050dea0, IStreamable vftable 0x009f49e4 (COL offset +0x0). sizeof >= 0x40 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x10 0x10 vector Hives Game::SVSOSwarmQueen::HiveInfo
0x20 0x10 vector Queens Game::SVSOSwarmQueen::QueenInfo
0x30 0x10 vector SysMem enum:uint

Game::SVSOSwarmQueen::HiveInfo

Write 0x004fe730, Read 0x004fe6f0, IStreamable vftable 0x009f1a68 (COL offset +0x0). sizeof 0x10 (container stride). verified -- fields exact; Read agrees on all 1 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 handle HiveID
0x8 0x4 int NextQ
0xc 0x4 handle QueenID

Game::SVSOSwarmQueen::QueenInfo

Write 0x004f6680, Read 0x004fe780, IStreamable vftable 0x009f1a78 (COL offset +0x0). sizeof 0xc (container stride). clean -- fields exact; sizeof corroborated

offset size kind tag type
0x4 0x4 handle QueenID
0x8 0x4 handle QDstID

Game::SVSOSystemKiller

Write 0x0050af20, Read 0x00511f90, IStreamable vftable 0x009f3e6c (COL offset +0x0). sizeof >= 0x2c (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x8 0x4 handle Flt
0xc 0x1 bool Init2
0x10 0x10 vector NSys
0x20 0xc object End Vector3

Game::SVSOTraps

Write 0x00509a70, Read 0x005099e0, IStreamable vftable 0x009f5bcc (COL offset +0x0). sizeof >= 0x24 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x14 0x10 vector traps Game::SVSOTraps::Trap

Game::SVSOTraps::Trap

Write 0x004fca20, Read 0x005042c0, IStreamable vftable 0x009f12a0 (COL offset +0x0). sizeof 0x14 (container stride). clean -- fields exact; sizeof corroborated

offset size kind tag type
0x4 0x4 int sys
0x8 0x4 int pid
0xc 0x4 int trenc
0x10 0x4 int trgenc

Game::SVSOUpstartApes

Write 0x0054d1b0, Read 0x00563850, IStreamable vftable 0x009fb4cc (COL offset +0x0). sizeof >= 0x48 (lower bound). verified -- fields exact; Read agrees on all 2 comparable offsets

offset size kind tag type
0xc 0x4 int EMPIREFLAGS
0x10 0x4 int EMPIRESTANDING
0x30 0x4 int NEXTORDERTURN
0x44 0x4 int EARTHID

Container-element fields (offsets are within the element / map node, not the object): EMPIREORDERID@+0x4, EMPIREORDER@+0x0

Game::SVSOUpstartApes_EO_DEMANDS_SHIPS

Write 0x0054cfe0, Read 0x0054cef0, IStreamable vftable 0x009fb290 (COL offset +0x0). sizeof >= 0x30 (lower bound). verified -- fields exact; Read agrees on all 5 comparable offsets

offset size kind tag type
0xc 0x4 int OBJECTIVEID
0x10 0x4 int TURNCREATED
0x14 0x10 vector REQUESTS Game::SVSOUpstartApes_EO_DEMANDS_SHIPS::ShipRequest
0x24 0x4 int LASTTURN
0x28 0x4 int SUCCESSSTANDING
0x2c 0x4 int FAILURESTANDING

Game::SVSOUpstartApes_EO_DEMANDS_SHIPS::ShipRequest

Write 0x0055d120, Read 0x0055d040, IStreamable vftable 0x009fa614 (COL offset +0x0). sizeof 0x20 (container stride). verified -- fields exact; Read agrees on all 1 comparable offsets; sizeof corroborated

offset size kind tag type
0x1c 0x4 int NUMREQUIRED

Game::SVSOUpstartApes_EO_DEMANDS_TRADE_GOODS

Write 0x00548ce0, Read 0x00548c90, IStreamable vftable 0x009fa564 (COL offset +0x0). sizeof >= 0x18 (lower bound). verified -- fields exact; Read agrees on all 3 comparable offsets

offset size kind tag type
0xc 0x4 int OBJECTIVEID
0x10 0x4 int TURNCREATED
0x14 0x4 int LASTTURN

Game::SVSOUpstartApes_EO_DEMANDS_VICTORY

Write 0x00548ce0, Read 0x00548c90, IStreamable vftable 0x009fa534 (COL offset +0x0). sizeof >= 0x18 (lower bound). verified -- fields exact; Read agrees on all 3 comparable offsets

offset size kind tag type
0xc 0x4 int OBJECTIVEID
0x10 0x4 int TURNCREATED
0x14 0x4 int LASTTURN

Game::SVSOUpstartApes_EO_ENERGY_WEAPONS_DECADENT

Write 0x00548ce0, Read 0x00548c90, IStreamable vftable 0x009fa504 (COL offset +0x0). sizeof >= 0x18 (lower bound). verified -- fields exact; Read agrees on all 3 comparable offsets

offset size kind tag type
0xc 0x4 int OBJECTIVEID
0x10 0x4 int TURNCREATED
0x14 0x4 int LASTTURN

Game::SVSOUpstartApes_EO_FEARS_YOUR_POWER

Write 0x00548ce0, Read 0x00548c90, IStreamable vftable 0x009fa4d4 (COL offset +0x0). sizeof >= 0x18 (lower bound). verified -- fields exact; Read agrees on all 3 comparable offsets

offset size kind tag type
0xc 0x4 int OBJECTIVEID
0x10 0x4 int TURNCREATED
0x14 0x4 int LASTTURN

Game::SVSOUpstartApes_EO_GIFTS

Write 0x00548c50, Read 0x00548c10, IStreamable vftable 0x009fa54c (COL offset +0x0). sizeof >= 0x14 (lower bound). verified -- fields exact; Read agrees on all 2 comparable offsets

offset size kind tag type
0xc 0x4 int OBJECTIVEID
0x10 0x4 int TURNCREATED

Game::SVSOUpstartApes_EO_MUST_EXPAND

Write 0x00548bb0, Read 0x00548b50, IStreamable vftable 0x009fa51c (COL offset +0x0). sizeof >= 0x1c (lower bound). verified -- fields exact; Read agrees on all 3 comparable offsets

offset size kind tag type
0xc 0x4 int OBJECTIVEID
0x10 0x4 int TURNCREATED
0x18 0x4 int LASTTURN

Game::SVSOUpstartApes_EO_REQUIRES_CASH

Write 0x00548ce0, Read 0x00548c90, IStreamable vftable 0x009fa4ec (COL offset +0x0). sizeof >= 0x18 (lower bound). verified -- fields exact; Read agrees on all 3 comparable offsets

offset size kind tag type
0xc 0x4 int OBJECTIVEID
0x10 0x4 int TURNCREATED
0x14 0x4 int LASTTURN

Game::SVSOVonNeumann

Write 0x0052b8d0, Read 0x0050e130, IStreamable vftable 0x009f59cc (COL offset +0x0). sizeof >= 0x90 (lower bound). verified -- fields exact; Read agrees on all 14 comparable offsets

offset size kind tag type
0x4 0x10 vector dfts Game::SVSOVonNeumann::DefeatRecord
0x24 0x4 int rusav
0x28 0x4 int nenc
0x2c 0x4 int nmb
0x30 0x4 int nml
0x34 0x4 int nbb
0x38 0x4 int nbl
0x3c 0x4 int nskb
0x40 0x4 int nskl
0x44 0x4 handle vnhw
0x48 0x8 int64 vnhp
0x50 0x4 int mbid
0x54 0x4 int mbgid
0x58 0x4 int skgid
0x5c 0x4 int ntm
0x60 0x10 vector mts enum:uint
0x70 0x4 int ntb
0x74 0x1 bool sken
0x78 0x4 int skdid
0x7c 0x4 int skhid
0x80 0x4 int skfid
0x84 0x4 int sktq
0x88 0x4 int skt
0x8c 0x4 int sktc

Game::SVSOVonNeumann::DefeatRecord

Write 0x004ff7f0, Read 0x005051f0, IStreamable vftable 0x009f1c9c (COL offset +0x0). sizeof 0x18 (container stride). verified -- fields exact; Read agrees on all 4 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int sys
0x8 0x4 int ndft
0xc 0x4 int lstd
0x10 0x4 int nxrv
0x14 0x1 bool bkdf

Game::ServerNodeGraph

Write 0x006e3530, Read 0x006e61e0, IStreamable vftable 0x00a1cc4c (COL offset +0x44). sizeof >= 0x4c (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x8 0x10 vector paths Game::NodePath
0x48 0x4 int nextid

Game::ServerNodeGraph::Params

Write 0x006e3480, Read 0x006e33a0, IStreamable vftable 0x00a1cc6c (COL offset +0x0). sizeof >= 0x28 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 int RSeed
0x8 0x10 vector PSeed Game::SimpleNodePath
0x18 0x10 vector SSeed int

Game::ServerPlayer

Write 0x008563e0, Read 0x008804d0, IStreamable vftable 0x00a32794 (COL offset +0x3a0). sizeof >= 0x3e0 (lower bound). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x28 0x4 int PlyrIdx
0x2c 0x4 handle HomeSys
0x30 0x10 vector NumOwn
0x34 0x4 handle OwnId
0x40 0x1c string PlryName
0x5c 0x4 int Species
0x60 0x7 object ClrID Game::PlayerColorID
0x74 0x1c string Bdg
0x90 0x1c string Avt
0xac 0x4 int Team
0xb0 0x4 float IdealSuit
0xb4 0x4 float SuitTol
0xb8 0x4 float MaxOH
0xbc 0x4 float ResRate
0xc0 0x4 float ResMod
0xc4 0x4 float ResScl
0xd0 0x4 float TRM
0xd4 0x4 int TRA
0xd8 0x4 int TRP
0xe4 0x10 vector NumDes
0xf4 0x4 object (ptr) TechTree Game::TechTree
0xf8 0x1 bool Elim
0xfb 0x1 bool NPC
0xfc 0x1 bool RebAI
0xfd 0x1 bool ReqCL
0xfe 0x1 bool AIBn
0xff 0x1 bool CnTrd
0x100 0x1 bool CnRad
0x101 0x1 bool CnVItl
0x102 0x1 bool hgs
0x103 0x1 bool hadvs
0x104 0x1 bool harcc
0x108 0x4 float pddm
0x118 0x4 float SavMod
0x124 0x4 float OutMod
0x128 0x4 float RebOutMod
0x12c 0x4 float ScOutMod
0x130 0x4 float PopMod
0x134 0x4 float TerraMod
0x138 0x1 bool AMine
0x13c 0x4 float MinPure
0x140 0x4 float MinRate
0x144 0x4 int NGts
0x148 0x4 int PrGtTrf
0x14c 0x4 int GTraf
0x150 0x4 float CstR
0x154 0x4 float CstE
0x158 0x4 float CstT
0x15c 0x4 int Maint
0x160 0x4 float shrm
0x164 0x4 int Status
0x168 0x10 object Team Game::PlayerAlliances
0x178 0x10 vector NumLeg
0x17c 0x4 handle DesID
0x188 0x4 int PvSav
0x18c 0x1 bool PvMA
0x19c 0x4 int HasDisc
0x1a0 0x4 int HasDiscSp
0x1a4 0x4 int HasDiscCl
0x1a8 0x4 int HasEnc
0x1ac 0x4 int HasEng
0x1b0 0x38 object ShipRecs Game::ShipRecords
0x1f4 0x10 vector Ojvs Game::Objective
0x204 0x10 vector Nexp
0x214 0x10 vector NWeapXcl
0x230 0x10 vector dipstats Game::DiplomacyStats
0x240 0x4 object (ptr) comms Game::CommMessageContainer
0x244 0x10 vector preps Game::PlayerReport
0x254 0x10 vector odes Game::ObservedDesign
0x264 0x10 vector owep Game::ObservedWeapon
0x274 0x10 vector otch Game::ObservedTech
0x284 0x4 int Sav
0x288 0x4 int HasImm
0x28c 0x4 int HasVac
0x290 0x4 int NPTrk
0x298 0x4 object (ptr) FNG Game::FleetNameGenerator
0x29c 0x18 object Events Game::EventStorage
0x2bc 0x4 int NumNotes
0x2c4 0x4 int BnkWrn
0x2c8 0x4 int BnkTrn
0x2cc 0x4 int BnkEl
0x2d0 0x4 int BnkPr
0x2d8 0x4 int plcy
0x2dc 0x1c string pswd
0x2f8 0x1 bool Srn
0x2fc 0x4 handle SrnTo
0x300 0x4 int lboid
0x304 0x4 int lcid2
0x30c 0x4 float IncMod
0x310 0x10 vector aid Game::PlayerAid
0x320 0x10 vector ndeflay
0x330 0x1 bool cdp
0x334 0x4 object (ptr) spy2 Game::SpyReport
0x338 0x10 vector rdtc
0x368 0x4 int aidf
0x370 ? object civr Game::CivilianRatios
0x3a4 0x10 vector NumPR
0x3b4 0x1 bool ResErrRoll
0x3b5 0x1 bool cta
0x3b8 0x4 object (ptr) AIR Game::AIRebellion
0x3bc 0x4 object (ptr) AIEnf Game::AIEncounterFlags
0x3c0 0x10 vector NSprj
0x3d0 0x4 int NextPrjID
0x3d4 0x4 int lret
0x3dc 0x4 int nmeid

Container-element fields (offsets are within the element / map node, not the object): ConMod@+0x-c, DesID@+0x4, Des@+0x0, Des@+0x0, Nts@+0x10, SprjT@+0x3c, Sprj@+0x0, WeapXcl@+0x0, deflay@+0x0

Game::ServerSpyManager

Write 0x00828a40, Read 0x008381b0, IStreamable vftable 0x00a30728 (COL offset +0x4). sizeof >= 0x20 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0xc 0x4 int xsid
0x10 0x10 vector nspy

Container-element fields (offsets are within the element / map node, not the object): spy@+0x0

Game::ServerSystem

Write 0x00749630, Read 0x0075d4b0, IStreamable vftable 0x00a2043c (COL offset +0x8). sizeof >= 0x2d8 (lower bound). partial -- 4 nested field(s) of unknown size

offset size kind tag type
0x18 0xc object Pos Vector3
0x4c 0x4 float R
0x50 0x4 float G
0x54 0x4 float B
0x58 0x4 float A
0x5c 0x4 int Idx
0x60 0x4 int Size
0x64 0x4 float Suit
0x68 0x4 int Res
0x6c 0x4 int ARes2
0x70 0x4 int MRes
0x74 0x4 int TRes
0x78 0x1 bool haltv
0x7c 0x4 float OutMod
0x80 0x4 int TAcq
0x84 0x4 int TFAcq
0x88 0x1c object Rts Game::StarSystem::OutputRates
0xa4 0x4 object (ptr) BQ Game::BuildQueue
0xa8 0x1c string Name
0xc4 0x1 bool Abdn
0xc5 0x1 bool Dstyd
0xc6 0x1 bool vnh
0xc7 0x1 bool vnd
0xc8 0x1 bool vnex3
0xc9 0x1 bool vnpex3
0xcc 0x4 int VFlags
0xd0 0x4 int EFlags
0xd4 0x4 int AFlags
0xd8 0x4 int FFlags
0xdc 0x4 int GFlags
0xe0 0x4 int MnRFlags
0xe4 0x4 int RfRFlags
0xe8 0x4 int ClkFlags
0xf0 0x8 int64 Bats2
0xf8 0x8 int64 rcex
0x100 0x4 handle PID
0x104 ? object dcs Game::Population
0x118 0x4 float dsu
0x11c 0x8 object cm Game::Morale
0x13c 0x10 vector cme2 Game::MoraleEvent
0x14c 0x8 object PvCM Game::Morale
0x16c 0x10 vector NumFlts
0x17c 0x4 float RepCur
0x180 0x4 float RepMax
0x184 0x4 int EggScio
0x188 0x1 bool NoRebAI
0x189 0x1 bool PvNoRebAI
0x18c 0x4 int Pop
0x190 0x4 float Infra
0x194 0x4 int pbon
0x198 0x4 float ibon
0x19c 0x4 int TerrFl
0x1a0 ? object Pop2 Game::Population
0x1b4 ? object pbon2 Game::Population
0x1c8 0x4 object (ptr) indi Game::IndependenceInfo
0x1cc 0x10 vector spies2 int
0x1dc 0x4 int rbfl
0x1e0 0x1 bool hsrg
0x1e4 0x4 int adt
0x200 0x4 int PvPop
0x204 0x4 float PvInfra
0x208 0x4 float PvSuit
0x20c 0x4 int PvRes
0x210 0x4 int PvARes2
0x214 0x4 int PvMRes
0x218 ? object PvPop2 Game::Population
0x238 0x4 handle DefF
0x23c 0x4 handle DefSF
0x240 0x10 vector NumGFs
0x250 0x10 vector NumSnF
0x260 0x10 vector NumMnF
0x274 0x4 handle PID
0x278 0x4 int NVO
0x288 0x4 int NVE
0x298 0x4 int NVs
0x2a8 0x10 vector NumPlgs2
0x2b8 0x4 int TnsOH
0x2bc 0x4 int TDst
0x2c4 0x4 int ntdev
0x2c8 0x4 int ltis
0x2cc 0x4 int rbtn
0x2d0 0x4 int rbfr
0x2d4 0x4 int rbwn

Container-element fields (offsets are within the element / map node, not the object): Plg@+0x0, TShn@+0x12, OID@+0x14, isind@+0x18, indi@+0x1c, EPid@+0x0, ETS@+0x12, Eid@+0x14, PID@+0x0, pview@+0x10

Game::ServerTradeManagerImpl

Write 0x0082cb60, Read 0x00858a10, IStreamable vftable 0x00a31b64 (COL offset +0x4c). sizeof >= 0x2c (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x8 0x4 float SctSize
0x1c 0x10 vector NumTradeSectors

Container-element fields (offsets are within the element / map node, not the object): TradeID@+0x4, Trade@+0x0, rt@+0x0

Game::ServerTradeSector

Write 0x0082c8c0, Read 0x00858290, IStreamable vftable 0x00a31b30 (COL offset +0x8). sizeof >= 0xb4 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x18 0xc object Pos Vector3
0x68 0x4 int tsgridID
0x6c 0xc object tsctr Vector3
0x78 0x10 vector tsnumsys
0x88 0x4 int tssec
0x8c 0x4 int tsct
0x90 0x4 int tscr
0x94 0x4 int ptssec
0x98 0x4 int ptsct
0x9c 0x4 int ptscr
0xa0 0x10 vector tsnumflt
0xb0 0x4 vector (ptr) fwarn Game::ServerTradeSector::FreighterWarning

Container-element fields (offsets are within the element / map node, not the object): tssys@+0x4

Game::ServerTradeSector::FreighterWarning

Write 0x008197d0, Read 0x00819780, IStreamable vftable 0x00a2d858 (COL offset +0x0). sizeof 0xc (container stride). verified -- fields exact; Read agrees on all 1 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int pid
0x8 0x4 int ntrns

Game::ShipBuildOrder

Write 0x00813800, Read 0x00813770, IStreamable vftable 0x00a0c160 (COL offset +0x0). sizeof >= 0x18 (lower bound). verified -- fields exact; Read agrees on all 3 comparable offsets

offset size kind tag type
0x4 0x4 int desID
0x8 0x4 int con
0xc 0x4 int sav
0x10 0x4 int conleft
0x14 0x4 int ordID

Game::ShipBuildOrderDef

Write 0x00813800, Read 0x00813770, IStreamable vftable 0x00a0ad08 (COL offset +0x0). sizeof 0x18 (container stride). verified -- fields exact; Read agrees on all 3 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int desID
0x8 0x4 int con
0xc 0x4 int sav
0x10 0x4 int conleft
0x14 0x4 int ordID

Game::ShipDesignDef::LegacyGunBank

Write 0x008d1ab0, Read 0x008d1a90, IStreamable vftable 0x00a2db3c (COL offset +0x0). sizeof 0x8 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Game::ShipDesignDef::LegacyWeaponDef

Write 0x00813950, Read 0x00846260, IStreamable vftable 0x00a2df7c (COL offset +0x0). sizeof >= 0x20 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x1c 0x4 int DWi

Game::ShipDesignDef::Section

Write 0x00827180, Read 0x0087e390, IStreamable vftable 0x00a2db4c (COL offset +0x0). sizeof >= 0x28 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x8 0x10 vector DGbnk2 Game::ShipDesignDef::GunBank
0x18 0x10 vector DOpts String

Game::ShipHealth

Write 0x00813e50, Read 0x00813df0, IStreamable vftable 0x009f1e50 (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- only container elements / computed values recovered

Game::ShipParams

Write 0x005700a0, Read 0x005717d0, IStreamable vftable 0x009e3d88 (COL offset +0x0). sizeof >= 0xa4 (lower bound). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x4 0x1c string .
0x20 0x4 int .
0x24 0x10 vector . Game::ShipParams::Section
0x34 0x10 vector .
0x44 0x4 int .
0x48 0x4 int .
0x4c 0x4 int .
0x50 0x4 int .
0x54 0x4 int .
0x58 0x4 int .
0x5c ? object . Game::ShipHealth
0x6c 0x18 object . Game::PrisonerHold
0x84 0x1 bool .
0x85 0x1 bool .
0x86 0x1 bool .
0x88 0x4 int .
0x8c 0x4 float .
0x90 0x4 int .
0x94 0x1 bool .
0x98 0xc object . Game::WeaponGroups

Game::ShipParams::Section

Write 0x0056fff0, Read 0x0056ff20, IStreamable vftable 0x009fdcec (COL offset +0x0). sizeof 0x50 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x1c string .
0x38 0x10 vector . Game::ShipParams::GunBank
0x48 0x8 object . Game::CombatTechFlags

Game::ShipRecords

Write 0x008176a0, Read 0x008560d0, IStreamable vftable 0x00a3144c (COL offset +0x0). sizeof >= 0x38 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x10 0x4 int srl
0x34 0x4 handle srd

Container-element fields (offsets are within the element / map node, not the object): srb@+0x-c, srk@+0xc, sri@+0x18

Game::ShipSectionID

Write 0x0056ed50, Read 0x0056ed10, IStreamable vftable 0x00a1a720 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x4 int .
0x4 0x4 int .

Game::ShipWeapon

Write 0x0056f450, Read 0x00571130, IStreamable vftable 0x009fdc8c (COL offset +0x0). sizeof >= 0x24 (lower bound). verified -- fields exact; Read agrees on all 2 comparable offsets

offset size kind tag type
0x0 0x1c string wfn
0x1c 0x4 int wid
0x20 0x4 int did

Game::SimpleNodePath

Write 0x006e2390, Read 0x006e2330, IStreamable vftable 0x009f1dd0 (COL offset +0x0). sizeof 0x8 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x2 int16 .
0x6 0x2 int16 .

Game::SlaversRefuelEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f1708 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::Slot

Write 0x00827c30, Read 0x00827b40, IStreamable vftable 0x00a2e03c (COL offset +0x0). sizeof >= 0x164 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0xbc 0xa1 object . Game::SlotUser
0x160 0x4 int .

Game::SlotDef

Write 0x008276d0, Read 0x00832790, IStreamable vftable 0x00a2db6c (COL offset +0x0). sizeof 0xbc (enumeration meets embedding). verified -- fields exact; Read agrees on all 15 comparable offsets; sizeof corroborated

offset size kind tag type
0x0 0x1 bool IsPlay
0x1 0x1 bool IsDead
0x2 0x1 bool IsReq
0x3 0x1 bool IsRec
0x4 0x1 bool IsFxNm
0x8 0x1c string FxNm
0x24 0x1 bool IsFxSp
0x28 0x4 int FxSp
0x2c 0x1 bool IsFxCr
0x30 0x7 object FxCrID Game::PlayerColorID
0x44 0x1 bool IsFxBd
0x48 0x1c string FxBd
0x64 0x1 bool IsFxAv
0x68 0x1c string FxAv
0x84 0x4 int Team
0x88 0x4 int Tag
0x8c 0x1c string Pwd
0xa8 0x14 object Settings Game::StrategyPlayerGameSettings

Game::SlotUser

Write 0x00827a00, Read 0x008278a0, IStreamable vftable 0x00a2db7c (COL offset +0x0). sizeof 0xa4 (enumeration meets embedding). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x4 int .
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .
0x10 0x1c string .
0x2c 0x4 int .
0x30 0x4 int .
0x34 0x7 object . Game::PlayerColorID
0x48 0x1c string .
0x64 0x1c string .
0x80 0x1 bool .
0x84 0x1c string .
0xa0 0x1 bool .

Game::SpecialProject

Write 0x00814760, Read 0x008146c0, IStreamable vftable 0x00a21938 (COL offset +0x0). sizeof 0x34 (enumeration meets embedding). verified -- fields exact; Read agrees on all 5 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int SPid
0x8 0x4 int Sts
0xc 0x4 float Cst
0x10 0x4 int MxC
0x14 0x1c string Nm
0x30 0x4 int Trns

Game::SpecialProjectImpl

Write 0x008285d0, Read 0x00828530, IStreamable vftable 0x00a306f0 (COL offset +0x0). sizeof >= 0x40 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x8 0x34 object SPi Game::SpecialProject
0x3c 0x4 int Stp

Game::SpecialProjectNameGen

Write 0x008147e0, Read 0x00852960, IStreamable vftable 0x00a32730 (COL offset +0x0). sizeof >= 0x8 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 handle Nm

Game::SpeciesRatios

Write 0x0053c5e0, Read 0x0053d220, IStreamable vftable 0x009f9714 (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- only container elements / computed values recovered

Container-element fields (offsets are within the element / map node, not the object): nv@+0x1, va2@+0x0

Game::SpyCraft

Write 0x00814940, Read 0x00837dc0, IStreamable vftable 0x00a30718 (COL offset +0x0). sizeof >= 0x44 (lower bound). verified -- fields exact; Read agrees on all 5 comparable offsets

offset size kind tag type
0x4 0x4 int sid
0x8 0x4 int sown
0xc 0x4 int atto
0x10 0x4 int deat
0x14 0x4 int tdep
0x18 0x4 float cbh
0x1c 0x4 int spyon
0x20 0x4 int spyat
0x24 0x4 int cm
0x28 0x4 float cmo
0x2c 0x10 vector ncp
0x3c 0x4 float sdo
0x40 0x4 int sdet

Game::SpyReport

Write 0x00828ec0, Read 0x008843d0, IStreamable vftable 0x00a32b2c (COL offset +0x0). sizeof >= 0x30 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x8 0x4 int defc2
0x14 0x4 int rtc
0x20 0x4 int evc
0x2c 0x4 int ttc

Container-element fields (offsets are within the element / map node, not the object): def@+0x8, strd@+0x8, evs@+0x8, tt@+0x8

Game::SpyReportDefences

Write 0x00828ba0, Read 0x00828b10, IStreamable vftable 0x00a313e8 (COL offset +0x0). sizeof >= 0x50 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x4 0x4 int stn
0x8 0x48 object sdef Game::DefenceSummary

Game::SpyReportEvents

Write 0x00828e40, Read 0x00828da0, IStreamable vftable 0x00a307ac (COL offset +0x0). sizeof >= 0x18 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 int spl
0x8 0x10 vector ste int

Game::SpyReportTechTree

Write 0x00814ba0, Read 0x00814b40, IStreamable vftable 0x00a318b4 (COL offset +0x0). sizeof >= 0xc (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x4 0x4 int stn
0x8 0x4 int spl

Container-element fields (offsets are within the element / map node, not the object): St@+0x4, TResCost@+0x8, TResDone@+0xc, TAcq@+0x14, TiAcq@+0x18, Tbd@+0x1c, Tfc@+0x20, TUnlck@+0x10

Game::SpyReportTrade

Write 0x00828cf0, Read 0x00828c20, IStreamable vftable 0x00a313f8 (COL offset +0x0). sizeof >= 0x20 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x4 0x4 int stn
0x8 0x4 int spl
0xc 0x4 int sctr
0x10 0x10 vector srt Game::SpyReportTradeRoute

Game::SpyReportTradeRoute

Write 0x00814aa0, Read 0x00838980, IStreamable vftable 0x00a3079c (COL offset +0x0). sizeof 0x20 (container stride). verified -- fields exact; Read agrees on all 1 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int stn
0x8 0x4 int sctr
0xc 0x4 int spl
0x10 0x10 vector sdgc

Game::StarFleet

Write 0x00701070, Read 0x00702470, IStreamable vftable 0x00a1d5f8 (COL offset +0x8). sizeof >= 0x120 (lower bound). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x18 0xc object Pos Vector3
0x4c 0xc object PrvPos Vector3
0x58 0x4 handle PID
0x5c 0x1c string FtName
0x78 0x1 bool Perm
0x7c ? object Lay Game::FleetLayout
0xa0 0x4 handle LocID
0xa4 0x10 vector NShips
0xc4 0x38 object FPlan Game::FlightPlan
0xfc 0x4 int FtTrans
0x100 0xc object FtOrig Vector3
0x10c 0x4 int FtFlg
0x110 0x4 int Ftae
0x114 0x4 int Ftpae
0x118 0x4 int FtEnc
0x11c 0x4 int FtMS

Container-element fields (offsets are within the element / map node, not the object): Ship@+0x0

Game::StarMapNode

Write 0x00727820, Read 0x00727790, IStreamable vftable 0x00a1e620 (COL offset +0x8). sizeof >= 0x24 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x18 0xc object Pos Vector3

Game::StarMapParams

Write 0x00727a10, Read 0x00739510, IStreamable vftable 0x009fb2a8 (COL offset +0x0). sizeof 0x38 (enumeration meets embedding). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x10 vector . Game::SystemParams
0x18 0x10 vector .
0x28 0x10 vector . Game::SimpleNodePath

Game::StarShip

Write 0x008291f0, Read 0x00853fa0, IStreamable vftable 0x00a31408 (COL offset +0x8). sizeof >= 0xb0 (lower bound). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x10 0x4 handle PlrID
0x14 0x4 handle DesID
0x20 0x4 float Range
0x24 ? object Health Game::ShipHealth
0x34 0x4 int MineCap
0x38 0x10 vector NTH
0x48 0x4 int Plg
0x4c 0x4 int Act
0x50 0x1 bool Dep
0x51 0x1 bool Atq
0x5c 0x4 int LCT
0x60 0x4 int tsd
0x64 0x4 handle FltID
0x68 0x4 int ConCap
0x6c 0x4 float RefCap
0x70 0x4 float RepCap
0x7c 0x4 int EncID
0x80 0x18 object PrisH Game::PrisonerHold
0x98 0x4 object (ptr) BQ2 Game::BuildQueue
0x9c 0x4 object (ptr) pop Game::Population
0xa0 0x4 object (ptr) ppop Game::Population
0xa8 0x4 int atsp
0xac 0x4 int tblt

Game::StarSystem

Write 0x00727820, Read 0x00727790, IStreamable vftable 0x00a200d4 (COL offset +0x8). sizeof >= 0x24 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x18 0xc object Pos Vector3

Game::StarSystem::OutputRates

Write 0x00745190, Read 0x007472a0, IStreamable vftable 0x00a1f884 (COL offset +0x0). sizeof 0x1c (enumeration meets embedding). verified -- fields exact; Read agrees on all 7 comparable offsets; sizeof corroborated

offset size kind tag type
0x0 0x4 float SRt
0x4 0x4 float SRsc
0x8 0x4 float SRtf
0xc 0x4 float SRi
0x10 0x4 float SRoh
0x14 0x4 float SRs
0x18 0x4 int SRnr

Game::StarSystem::PlayerView

Write 0x007492d0, Read 0x00752af0, IStreamable vftable 0x00a201ac (COL offset +0x0). sizeof >= 0x5c (lower bound). partial -- 2 nested field(s) of unknown size

offset size kind tag type
0x8 0x4 int VTrn
0xc 0x4 int Pop
0x10 ? object Pop2 Game::Population
0x24 0x4 float Infra
0x28 0x4 float Suit
0x2c 0x4 int Res
0x30 0x4 int ARes2
0x34 0x4 int MRes
0x38 0x1 bool NoRebAI
0x3c 0x4 int pbon
0x40 ? object pbon2 Game::Population
0x54 0x4 float ibon
0x58 0x4 int TerrFl

Game::StrategyAIAgent::DesignNameGen

Write 0x006c77a0, Read 0x006ccc70, IStreamable vftable 0x00a1b124 (COL offset +0x0). sizeof >= 0x8 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 object (ptr) dnid Game::ShipSectionID

Game::StrategyAIAgent::Streamable

Write 0x006c6f00, Read 0x006c8fd0, IStreamable vftable 0x00a1a61c (COL offset +0x0). sizeof >= 0x8 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x4 vector (ptr) prs2 Game::AIPlayerRequestStamp

Container-element fields (offsets are within the element / map node, not the object): AIAttr@+0x24, pid@+0xc, trns@+0x10, NBStab@+0x38, BStabTn@+0x4, NMBlst@+0x48, MBlstTn@+0x4, AIDNG@+0x344, AISysID@+0x4, AISys@+0x10, NCmbR@+0x28, CmbR@+0x0, CLSyID@+0x0, CLPlID@+0x0, NPrv@+0x32c, NPrvId@+0x0, NPrvVa@+0x4, NTecS@+0x13c, TecS@+0x0

Game::StrategyGameCreateParams

Write 0x0082ae40, Read 0x00832cc0, IStreamable vftable 0x00a25574 (COL offset +0x0). sizeof >= 0xf0 (lower bound). verified -- fields exact; Read agrees on all 19 comparable offsets

offset size kind tag type
0x4 0x1c string Name
0x20 0x4 int ID
0x24 0x4 int RSeed
0x28 0x1c string Key
0x44 0x38 object MapP Game::StarMapParams
0x7c 0x4 int MapS
0x80 0x1c string MapF
0x9c 0x4 int NSys
0xa0 0x4 float REnc
0xa4 0x4 float SDist
0xa8 0x4 float SSize
0xac 0x4 float SRes
0xb0 0x4 float SSuit
0xb4 0x4 int MaxP
0xb8 0x4 int ASpec
0xbc 0x1 bool bAlly
0xc0 0x4 int NTeam
0xc4 0x1 bool tmgrp
0xcc 0x4 int PSav
0xd0 0x4 int PCol
0xd4 0x4 int PTech
0xd8 0x4 int AID
0xdc 0x4 float IncM
0xe0 0x4 float ResM
0xe4 0xc object scrp Game::StrategyScriptParams

Game::StrategyGameInfo

Write 0x00829960, Read 0x00875cb0, IStreamable vftable 0x00a07ba0 (COL offset +0x0). sizeof >= 0x9c (lower bound). verified -- fields exact; Read agrees on all 10 comparable offsets

offset size kind tag type
0x20 0x1c string GameName
0x3c 0x4 int Turn
0x40 0x4 int NumSys
0x44 0x4 int Checksum
0x48 0x4 int MapShape
0x4c 0x10 vector Players Game::StrategyPlayerInfo
0x5c 0x18 object Session Game::StrategySessionParams
0x74 0x4 float IncMod
0x78 0x4 float ResMod
0x7c 0x1 bool Alliances
0x7d 0x1 bool Teams
0x7e 0x1 bool Encounters
0x80 0x1c string Scenario

Game::StrategyGameLoadParams

Write 0x0076c680, Read 0x008d1ad0, IStreamable vftable 0x00a241b4 (COL offset +0x0). sizeof >= 0x20 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .

Game::StrategyGameLoader::CustomDataTable

Write 0x0086a9d0, Read 0x008709a0, IStreamable vftable 0x00a323d0 (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- only container elements / computed values recovered

Game::StrategyGameParams

Write 0x0082b1d0, Read 0x0082b0d0, IStreamable vftable 0x00a256fc (COL offset +0x0). sizeof >= 0x1f4 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x104 0xf0 object . Game::StrategyGameCreateParams

Game::StrategyHostParams

Write 0x0082b4b0, Read 0x0082b3c0, IStreamable vftable 0x00a25790 (COL offset +0x0). sizeof >= 0x244 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x2c 0x1 bool .
0x30 0x1c string .
0x4c 0x1 bool .
0x50 0x1f4 object . Game::StrategyGameParams
0x16c 0x18 object . Game::StrategySessionParams

Game::StrategyLaunchParams

Write 0x0082acd0, Read 0x0082ac50, IStreamable vftable 0x00a22a20 (COL offset +0x0). sizeof >= 0x22c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .
0x20 0x20c object . Game::StrategySimParams

Game::StrategyPlayerGameSettings

Write 0x00817390, Read 0x00817330, IStreamable vftable 0x00a07344 (COL offset +0x0). sizeof >= 0x14 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x4 int .
0x10 0x4 int .

Game::StrategyPlayerInfo

Write 0x008298d0, Read 0x00829820, IStreamable vftable 0x00a077d8 (COL offset +0x0). sizeof 0xc4 (container stride). verified -- fields exact; Read agrees on all 1 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0xbc object Slot Game::SlotDef
0xc0 0x4 int Rank

Game::StrategyPlayerParams

Write 0x0082b6d0, Read 0x0082b580, IStreamable vftable 0x00a2e0bc (COL offset +0x0). sizeof 0xac (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x4 int .
0x4 0x1c string .
0x20 0x1 bool .
0x24 0x1c string .
0x40 0x4 int .
0x44 0x4 int .
0x48 0x7 object . Game::PlayerColorID
0x5c 0x1c string .
0x78 0x1c string .
0x94 0x1 bool .
0x98 0x14 object . Game::StrategyPlayerGameSettings

Game::StrategyScriptParams

Write 0x0082ad40, Read 0x00870ac0, IStreamable vftable 0x00a25370 (COL offset +0x0). sizeof >= 0xc (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x8 0x4 int spc

Container-element fields (offsets are within the element / map node, not the object): spsn@+0x8, sppn@+0x24, sppv@+0x40

Game::StrategyServer

Write 0x0079fa70, Read 0x007d27a0, IStreamable vftable 0x00a26084 (COL offset +0x0). sizeof >= 0x320 (lower bound). verified -- fields exact; Read agrees on all 18 comparable offsets

offset size kind tag type
0x8 0x4 int ModCount
0xc 0x4 int Frame
0x10 0x4 int GOTurn
0x14 0x4 int GameID
0x18 0x10 vector GOWinPly enum:uint
0x28 0x1c string GameName
0x44 0x10 vector NumSys
0x54 0x10 vector NumPlrs
0x64 0x10 vector NumFlts
0x74 0x10 vector NumActs
0x9c 0x4 int NMLc
0xbc 0x4 int Map
0xc0 0x4 float IncMod
0xc4 0x4 float ResMod
0xc8 0x1 bool EnAl
0xc9 0x1 bool EnTm
0x134 0x1c string KeyPath
0x154 0x4 object (ptr) NdGr2 Game::ServerNodeGraph
0x158 0x4 object (ptr) trdmgr Game::ServerTradeManager
0x15c 0x4 object (ptr) spymgr Game::IServerSpyManager
0x160 0x4 object (ptr) sprjs Game::SpecialProjectNameGen
0x164 0x4 object (ptr) Attrib Game::AttribMap
0x16c 0x4 object (ptr) RNG RNG
0x1a0 0x4 float RandEncAdj
0x1b4 0x4 object (ptr) SvSctOb Game::SVScriptObject
0x1b8 0x4 int NPCm
0x1bc 0x4 int NPCo
0x1c0 0x4 int NPCi
0x1c4 0x4 int NPCv
0x1c8 0x4 int NPCa
0x1cc 0x4 float szadj
0x1d0 0x4 float rsadj
0x1d4 0x4 float suadj
0x1f8 0x4 int cmbtid
0x1fc 0x4 handle numcreps
0x200 0x4 object (ptr) turnstats Game::GameTurnHistory
0x2c8 0x10 vector ninv
0x31c 0x4 int zdsc

Container-element fields (offsets are within the element / map node, not the object): .@+0x4, .@+0x4, .@+0x4, .@+0x4, .@+0x4, .@+0x4, crep@+0x8, AllExc@+0x0, AllExc@+0x4, AllExc@+0x0, AllExc@+0x4, AllExcCFp@+0x0, AllExcCFp@+0x4, Player@+0x0, Sys@+0x0, Flt@+0x0

Game::StrategySessionParams

Write 0x0082b360, Read 0x0082b280, IStreamable vftable 0x00a075a4 (COL offset +0x0). sizeof 0x18 (enumeration meets embedding). clean -- fields exact; sizeof corroborated

offset size kind tag type
0x4 0x14 object TMRS Game::StrategyTimerParams

Game::StrategySimParams

Write 0x0082b8f0, Read 0x0082b800, IStreamable vftable 0x00a2dd6c (COL offset +0x0). sizeof >= 0x20c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x18 0x1f4 object . Game::StrategyGameParams
0x134 0x10 vector . Game::StrategyPlayerParams

Game::StrategyTimerParams

Write 0x008173e0, Read 0x00820040, IStreamable vftable 0x00a07334 (COL offset +0x0). sizeof >= 0x14 (lower bound). verified -- fields exact; Read agrees on all 4 comparable offsets

offset size kind tag type
0x4 0x4 float TSTL
0x8 0x4 float TCTL
0xc 0x4 float TQTL
0x10 0x4 float TQTLE

Game::StrategyTurnInfo

Write 0x00816370, Read 0x008162c0, IStreamable vftable 0x00a2d6e0 (COL offset +0x0). sizeof >= 0x34 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x14 0x4 float .
0x18 0x4 int .
0x1c 0x4 int .
0x20 0x4 int .
0x30 0x4 int .

Container-element fields (offsets are within the element / map node, not the object): .@+0x8, .@+0xc

Game::StrategyUserInfo

Write 0x00816450, Read 0x00816410, IStreamable vftable 0x00a21928 (COL offset +0x0). sizeof 0x24 (container stride). partial -- 2 field(s) via an untyped sub-writer

offset size kind tag type
0x4 0x1c string .
0x20 0x4 opaque .
0x21 0x4 opaque .

Game::SwarmEncounterParams

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f174c (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::SwarmEncounterResult

Write 0x0050a420, Read 0x0050a360, IStreamable vftable 0x009f175c (COL offset +0x0). sizeof >= 0x10 (lower bound). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x8 0x4 int .
0xc 0x4 int .
0x10 ? object . Game::ShipHealth

Game::SwarmQueenEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f1a98 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::SystemEvent

Write 0x008189a0, Read 0x00839e30, IStreamable vftable 0x00a243ac (COL offset +0x0). sizeof 0x24 (container stride). clean -- fields exact; sizeof corroborated

offset size kind tag type
0x4 0x4 int ses
0x8 0x4 int set
0xc 0x4 int seop
0x10 0x4 int senp
0x14 0x10 vector seno2

Game::SystemKillerEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f1c20 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::SystemParams

Write 0x00727950, Read 0x00727880, IStreamable vftable 0x00a1d9ec (COL offset +0x0). sizeof >= 0x38 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0xc object . Vector3
0x10 0x1c string .
0x2c 0x4 int .
0x30 0x4 int .
0x34 0x4 float .

Game::TacReport

Write 0x00458e60, Read 0x00458c00, IStreamable vftable 0x009e4600 (COL offset +0x0). sizeof >= 0x91 (lower bound). verified -- fields exact; Read agrees on all 13 comparable offsets

offset size kind tag type
0x4 0x4 int TRid
0x8 0x4 int TRal
0xc 0x1d object TRby Game::TacReportEvents
0x2c 0x1d object TRto Game::TacReportEvents
0x58 0x4 int TRsats
0x70 0x4 int TRbal
0x74 0x4 int TRlas
0x78 0x4 int TRmis
0x7c 0x4 int TRmin
0x80 0x4 int TRnrg
0x84 0x4 int TRbio
0x88 0x4 int TRbrd
0x8c 0x1 bool TRsld
0x8d 0x1 bool TRsldd
0x8e 0x1 bool TRsldc
0x8f 0x1 bool TRsldi
0x90 0x1 bool TRsldr

Container-element fields (offsets are within the element / map node, not the object): TRships@+0x-c, TRshipsL@+0xc

Game::TacReportEvents

Write 0x004565d0, Read 0x00456540, IStreamable vftable 0x009e45f0 (COL offset +0x0). sizeof 0x20 (enumeration meets embedding). verified -- fields exact; Read agrees on all 7 comparable offsets; sizeof corroborated

offset size kind tag type
0x4 0x4 int TREhd
0x8 0x4 int TREhi
0xc 0x4 float TREd
0x10 0x4 float TREdp
0x14 0x4 float TREdi
0x18 0x4 float TREdt
0x1c 0x1 bool TREb

Game::TechOffer

Write 0x00853900, Read 0x008537f0, IStreamable vftable 0x00a23d44 (COL offset +0x0). sizeof 0x10 (container stride). clean -- fields exact; sizeof corroborated

offset size kind tag type
0x4 0x4 int giv
0x8 0x4 int rcp

Game::TechOfferProject

Write 0x008535c0, Read 0x00853530, IStreamable vftable 0x00a31884 (COL offset +0x0). sizeof >= 0x5d (lower bound). verified -- fields exact; Read agrees on all 5 comparable offsets

offset size kind tag type
0x8 0x34 object SPi Game::SpecialProject
0x3c 0x4 int Stp
0x40 0x4 float AOdd
0x44 0x4 float AInc
0x4c 0x4 int RCst
0x50 0x4 int RDn
0x54 0x4 int giv
0x58 0x4 int rcp
0x5c 0x1 bool rcpd2

Game::TechProject

Write 0x00853390, Read 0x00853280, IStreamable vftable 0x00a31834 (COL offset +0x0). sizeof >= 0x54 (lower bound). verified -- fields exact; Read agrees on all 4 comparable offsets

offset size kind tag type
0x8 0x34 object SPi Game::SpecialProject
0x3c 0x4 int Stp
0x40 0x4 float AOdd
0x44 0x4 float AInc
0x4c 0x4 int RCst
0x50 0x4 int RDn

Game::TechTree

Write 0x005890a0, Read 0x00588910, IStreamable vftable 0x00a003a8 (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- only container elements / computed values recovered

Container-element fields (offsets are within the element / map node, not the object): NumBrs@+0x4

Game::TradeRoute

Write 0x00819650, Read 0x008208d0, IStreamable vftable 0x00a2d848 (COL offset +0x0). sizeof >= 0x24 (lower bound). verified -- fields exact; Read agrees on all 5 comparable offsets

offset size kind tag type
0x4 0x4 int tro
0x8 0x4 int trfow
0xc 0x4 int trfr
0x10 0x4 int trfrs
0x14 0x4 int trtow
0x18 0x4 int trto
0x1c 0x4 int trtos
0x20 0x4 int trtc

Game::TradeSector

Write 0x00727820, Read 0x00727790, IStreamable vftable 0x00a30cac (COL offset +0x8). sizeof >= 0x24 (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x18 0xc object Pos Vector3

Game::TurnCommands

Write 0x00842540, Read 0x00892ae0, IStreamable vftable 0x00a25e00 (COL offset +0x0). sizeof >= 0x6d (lower bound). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x4 0x4 int .
0x8 0x4 float .
0xc 0x1 bool .
0x10 0x4 int .
0x14 0x1 bool .
0x18 0x4 int .
0x1c 0x4 float .
0x20 0x1 bool .
0x24 0x1 bool .
0x28 0x4 int .
0x2c 0x1 bool .
0x30 0x4 float .
0x34 0x4 float .
0x38 0x4 float .
0x3c 0x1 bool .
0x40 ? object . Game::CivilianRatios
0x6c 0x1 bool .

Container-element fields (offsets are within the element / map node, not the object): .@+0x4, .@+0x8, .@+0x4, .@+0x8, .@+0xc, .@+0x4, .@+0x8, .@+0xc, .@+0x0, .@+0x4, .@+0x8, .@+0xc, .@+0x4, .@+0x8, .@+0xc, .@+0x10, .@+0x4, .@+0x8, .@+0xc, .@+0x10, .@+0x4, .@+0x8, .@+0x4, .@+0x8, .@+0xc, .@+0x4, .@+0x8

Game::UpdateData

Write 0x004515b0, Read 0x00451570, IStreamable vftable 0x009e3ee4 (COL offset +0x0). sizeof >= 0x10 (lower bound). partial -- 1 field(s) via an untyped sub-writer

offset size kind tag type
0x4 0x4 int .
0x8 0x4 float .
0xc 0x4 opaque .

Game::VNFinsolEncounterResult

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f1d00 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::VNHomeEncounterParams

Write 0x00500390, Read 0x005002c0, IStreamable vftable 0x009f1d38 (COL offset +0x0). sizeof >= 0x28 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x4 int .
0x10 0x4 int .
0x14 0x4 int .
0x18 0x4 int .
0x20 0x8 int64 .

Game::VNHomeEncounterResult

Write 0x00500460, Read 0x00500410, IStreamable vftable 0x009f1d48 (COL offset +0x0). sizeof >= 0x18 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0x10 0x8 int64 .

Game::VonNeumannEncounterParams

Write 0x004f9fe0, Read 0x004fdd20, IStreamable vftable 0x009f1d18 (COL offset +0x0). sizeof >= 0xc (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .

Game::VonNeumannEncounterResult

Write 0x00500280, Read 0x00500230, IStreamable vftable 0x009f1d28 (COL offset +0x0). sizeof >= 0x10 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x8 0x4 int .
0xc 0x4 int .

Game::WeaponGroups

Write 0x0056fd10, Read 0x0056fbf0, IStreamable vftable 0x009e3c60 (COL offset +0x0). sizeof >= 0xc (lower bound). clean -- fields exact; sizeof is a lower bound only

offset size kind tag type
0x4 0x8 object wgb Game::GunBankSelection

Game::XenoTechsPerSpecies

Write 0x0053d1f0, Read 0x0053d1a0, IStreamable vftable 0x009e4650 (COL offset +0x0). sizeof >= 0x4 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x4 int .

Game::ZuulInfestation

Write 0x005361e0, Read 0x00536160, IStreamable vftable 0x009f8cb0 (COL offset +0x0). sizeof >= 0x24 (lower bound). verified -- fields exact; Read agrees on all 1 comparable offsets

offset size kind tag type
0x8 0x4 handle PlgSys
0xc 0x4 int PlgCByF
0x10 0x4 handle PlgCBy
0x18 0x8 int64 PlgNZ
0x20 0x4 float PlgZdr

Mars::FNMBase

Write 0x009047c0, Read 0x00904590, IStreamable vftable 0x00a41a44 (COL offset +0x0). sizeof >= 0x24 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .
0x20 0x4 int .

Mars::FNMChunk

Write 0x009048d0, Read 0x009046d0, IStreamable vftable 0x00a41a30 (COL offset +0x0). sizeof >= 0x30 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .
0x20 0x4 int .
0x24 0x4 int .
0x28 0x4 int .
0x2c 0x4 raw .

Mars::FNMChunkReply

Write 0x009047c0, Read 0x00904590, IStreamable vftable 0x00a41aa8 (COL offset +0x0). sizeof >= 0x24 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .
0x20 0x4 int .

Mars::FNMDone

Write 0x00904920, Read 0x00904610, IStreamable vftable 0x00a41a6c (COL offset +0x0). sizeof >= 0x2c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .
0x20 0x4 int .
0x24 0x4 int .
0x28 0x4 int .

Mars::FNMDoneReply

Write 0x009047c0, Read 0x00904590, IStreamable vftable 0x00a41abc (COL offset +0x0). sizeof >= 0x24 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .
0x20 0x4 int .

Mars::FNMError

Write 0x00904960, Read 0x00904690, IStreamable vftable 0x00a41a80 (COL offset +0x0). sizeof >= 0x40 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .
0x20 0x4 int .
0x24 0x1c string .

Mars::FNMSendNotify

Write 0x00904840, Read 0x009045c0, IStreamable vftable 0x00a41a58 (COL offset +0x0). sizeof >= 0x28 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .
0x20 0x4 int .
0x24 0x4 int .

Mars::FNMSendReply

Write 0x009047c0, Read 0x00904590, IStreamable vftable 0x00a41a94 (COL offset +0x0). sizeof >= 0x24 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .
0x20 0x4 int .

Mars::LaunchParams

Write 0x0076c680, Read 0x008d1ad0, IStreamable vftable 0x009e4138 (COL offset +0x0). sizeof >= 0x20 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1c string .

Mars::NMCommand

Write 0x008d1ec0, Read 0x008d1e20, IStreamable vftable 0x00a39678 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 object (ptr) . Command

Mars::NMLoad

Write 0x008d1d60, Read 0x008d1c70, IStreamable vftable 0x00a396b4 (COL offset +0x0). sizeof >= 0x3c (lower bound). partial -- 1 nested field(s) of unknown size

offset size kind tag type
0x4 ? object . SyncParams
0x34 0x4 object (ptr) . LaunchParams
0x38 0x4 int .

Mars::NMSyncCheck

Write 0x008d2000, Read 0x008d1f50, IStreamable vftable 0x00a3968c (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 object (ptr) . SyncChecksumBuffer

Mars::NMSyncError

Write 0x008d1ab0, Read 0x008d1a90, IStreamable vftable 0x00a396a0 (COL offset +0x0). sizeof >= 0x8 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .

Mars::RNG

Write 0x008e6ca0, Read 0x008e6c30, IStreamable vftable 0x009e9aec (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- only container elements / computed values recovered

Mars::SyncChecksumBuffer

Write 0x0042f720, Read 0x00907e60, IStreamable vftable 0x00a41e54 (COL offset +0x0). sizeof >= 0x1c (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x4 int .
0x8 0x4 int .
0xc 0x10 vector . int

Mars::SyncParams

Write 0x00907d40, Read 0x00907cd0, IStreamable vftable 0x00a41e64 (COL offset +0x0). sizeof >= 0x30 (lower bound). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x4 0x1 bool .
0x5 0x1 bool .
0x8 0x1c string .
0x24 0x4 int .
0x28 0x4 int .
0x2c 0x4 int .

Mars::TNMConnect

Write 0x008fd880, Read 0x008fd7c0, IStreamable vftable 0x00a40dd0 (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- 4 nested field(s) of unknown size

offset size kind tag type
0x4 ? object . TNID
0xc ? object . TNID
0x14 ? object . TNID
0x1c ? object . TNID

Mars::TNMDisconnect

Write 0x008fd750, Read 0x008fd920, IStreamable vftable 0x00a40dbc (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- 3 nested field(s) of unknown size

offset size kind tag type
0x4 ? object . TNID
0xc ? object . TNID
0x14 ? object . TNID

Mars::TNMHost

Write 0x008fd750, Read 0x008fd920, IStreamable vftable 0x00a40da8 (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- 3 nested field(s) of unknown size

offset size kind tag type
0x4 ? object . TNID
0xc ? object . TNID
0x14 ? object . TNID

Mars::TNMMessage

Write 0x008fd9d0, Read 0x008fd9a0, IStreamable vftable 0x00a40c4c (COL offset +0x0). sizeof >= 0x1c (lower bound). partial -- 2 nested field(s) of unknown size

offset size kind tag type
0x4 ? object . TNID
0xc ? object . TNID
0x14 0x1 bool .
0x18 0x4 object (ptr) . NetMessage

Mars::TNMessage

Write 0x008fd6b0, Read 0x008fd5f0, IStreamable vftable 0x00a40d94 (COL offset +0x0). sizeof >= 0x0 (lower bound). partial -- 2 nested field(s) of unknown size

offset size kind tag type
0x4 ? object . TNID
0xc ? object . TNID

Quaternion

Write 0x008a7aa0, Read 0x008a7a50, IStreamable vftable 0x009e2458 (COL offset +0x0). sizeof 0x10 (enumeration meets embedding). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x4 float .
0x4 0x4 float .
0x8 0x4 float .
0xc 0x4 float .

Vector2

Write 0x008b9e30, Read 0x008b9e00, IStreamable vftable 0x009e24d8 (COL offset +0x0). sizeof 0x8 (container stride). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x4 float .
0x4 0x4 float .

Vector3

Write 0x008a60d0, Read 0x008a6090, IStreamable vftable 0x009e2498 (COL offset +0x0). sizeof 0xc (enumeration meets embedding). unnamed -- offsets and types recovered; the writer passes a NULL name so the fields have no on-disk names and cannot be matched against Read by name

offset size kind tag type
0x0 0x4 float .
0x4 0x4 float .
0x8 0x4 float .