Skip to content

Recovered structures#

Each recovered type has:

  • A C header (*.h) with #pragma pack and size comments
  • A companion provenance doc (*.md) with offset table, evidence, and confidence

Confidence levels#

Level Meaning
confirmed Verified by size, multiple field uses, or external capture
likely Strong usage pattern, not yet fully verified
speculative Hypothesis only; do not rely on for wire docs

Structures#

Name Size Confidence Header Notes
lotr2_net_msg 0x104 max likely lotr2_net_msg.h App message frame inside DirectPlay Send/Receive; see lotr2_net_msg.md
lotr2_net_join_request / lotr2_net_join_reply 0x28 / 0x30 likely lotr2_net_msg_join.h App opcodes 1 and 2 join payloads; see lotr2_net_msg_join.md
lotr2_net_msg_roster 0x91 likely lotr2_net_msg_roster.h App opcode 3 roster sync; see lotr2_net_msg_roster.md
lotr2_battle_figure 0x1b0 likely lotr2_battle_figure.h Combat unit instance; see lotr2_battle_figure.md
lotr2_battle_tile 0x8 likely lotr2_battle_tile.h Siege map cell; see lotr2_battle_tile.md
lotr2_maps_dat_record 0x80c1 likely lotr2_maps_dat_record.h Campaign map file record; see lotr2_maps_dat_record.md
lotr2_projectile 0x4c likely lotr2_projectile.h Arrow, bolt, boulder, oil; see lotr2_projectile.md
Game state globals (partial) likely Turn-phase flags, map cell base; see lotr2_game_state.md
lotr2_player_record (partial) 0x160 likely Campaign player slot; see lotr2_player_record.md

Stat tables#

Doc Contents
lotr2_unit_stats.md Melee damage, movement, siege tables (dump via tools/ghidra/dump_combat_tables.py)
../nobles/README.md AI noble parameters (dump via tools/ghidra/dump_noble_tables.py)