Skirmish — entry and main menu#
Summary#
Skirmish is entered through the gateway wizard (screen mode 0x1f, decimal
31) after intro assets load. GoG sets a launcher flag when GameType=Skirmish is
read from SIGS; that flag steers multiplayer setup away from the campaign lobby
and toward skirmish wizard step 0xb. Single-player skirmish uses step 0xc.
Confidence: likely for menu string labels (L2.ENG group 0xb); confirmed
for SIGS GameType branch.
SIGS / launcher bootstrap#
On startup, FUN_004b7a9a initializes the SIGS session object (DAT_004e2a30).
When initialization succeeds:
- Reads string key
GameTypeviaFUN_004b6e8e. - If value equals
"Skirmish"→DAT_0057cb38 = 1(skirmish launcher mode). - If value equals the alternate campaign string at
DAT_004e2c54→DAT_0057cb38 = 0. - Sets
DAT_00568464 = 1when SIGS is active. - If connected to multiplayer lobby service →
DAT_00553248 = 1.
Evidence: src/Lords2-gog.exe.c ~92210–92245.
| Global | Meaning |
|---|---|
DAT_0057cb38 |
1 = launched as skirmish; 0 = campaign-class game |
DAT_00568464 |
SIGS session initialized |
DAT_00553248 |
SIGS MP connection active (affects save extensions and lobby UI) |
Gateway wizard shell#
| Screen mode | Value | Role |
|---|---|---|
| Wizard | 0x1f |
Main menu and setup flow |
| Gateway return | 0x1c |
Post-skirmish shell (gateway.pl8) |
After intro / sim tick, the client sets lotr2_game_screen_mode = 0x1f and wizard
step 1 (DAT_005530f0 = 1), unless already in MP (DAT_00553030 != 0 → step 4).
Asset loading for steps ≥ 0xb uses skirmish.256 + skirmish.pl8 (or
skircust.pl8 when custom map mode is on). See
setup-wizard.md.
Main menu — wizard step 1#
Drawn by FUN_0041ea14 / FUN_0041eaa3. Strings from L2.ENG group 11 (0xb):
| Index | Label |
|---|---|
| 2 | Single player |
| 3 | Multiple players |
| 0x2f (47) | (row 3 — label in PL8 art; index reused in other contexts) |
| 4 | Exit game |
Hit targets: widget table DAT_004dcb48 (4 rows). Selection stored in
DAT_00553114; confirmed click sets DAT_0053f648.
SIGS fast path#
When DAT_00568464 != 0 and step 1 receives a click, the client sets
lotr2_game_turn_phase = 2 and calls FUN_00432b05 (MP lobby bootstrap) without
using the normal widget dispatch — Play Now path for connected SIGS installs.
Evidence: ~93797–93800.
Main menu — wizard step 2#
Five rows (DAT_004dcba8), strings group 0xb indices 6–9 and 0x13:
| Index | Label |
|---|---|
| 6 | Play Now! |
| 7 | Load a game |
| 8 | Custom game |
| 0x13 | (fourth row) |
| 9 | Back |
FUN_00432cc8 dispatches by lotr2_game_turn_phase:
turn_phase |
Effect |
|---|---|
| 1 | Step 5 (SP setup) |
| 2 | Load-game filename step 3 |
| 3 | Step 4 config; sets DAT_0055302c = 2 |
| 4 | Intro movie (lom.smk) |
| 5 | Step 4 config; sets DAT_0055302c = 3 (skirmish branch) |
When DAT_0055302c == 3, FUN_00433155 opens skirmish setup (step 0xc SP /
0xb MP) instead of campaign MP step 8.
Skirmish vs campaign MP routing#
In FUN_00433155, when lotr2_game_turn_phase == 2 and MP is active
(DAT_00553030 != 0):
| Condition | Next wizard step |
|---|---|
DAT_0057cb38 == 0 (campaign) |
8 — normal MP name/lobby panel |
DAT_0057cb38 == 1 (skirmish) |
0xb — skirmish MP army panel |
SP skirmish (DAT_0055302c == 3, DAT_00553030 == 0): step 0xc.
Both paths call FUN_0042b919 + FUN_0042b7f7 to pre-init skirmish battle state
before setup UI is shown.
Session mode flags#
| Global | SP | MP |
|---|---|---|
DAT_00553030 |
0 | 1 |
| Tick function | lotr2_game_tick_sp |
lotr2_game_tick_mp |
| Army data file | troops2.eng / troops3.eng |
troops.eng |
MP bootstrap: FUN_004b7250 sets DAT_00553030 = 1. Abort returns to SP via
FUN_004b743b.
Gateway return after battle#
When DAT_0053f0c4 is 10 or 11, lotr2_combat_enter_mp_lobby_from_battle
sets screen 0x1c and reloads gateway assets. From there, confirming starts
FUN_004329ec if DAT_0053f258 < 8, advancing the map rotation index on tag 10.
Interop notes#
- Skirmish MP on GoG uses ASIGS, not retail DirectPlay (
DPLAYX.DLL). - Launcher
GameType=Skirmishis required for MP routing to step 0xb; without SIGS the client uses campaign MP step 8.
Evidence#
| Symbol | Address | Role |
|---|---|---|
FUN_004b7a9a |
0x004b7a9a | SIGS init, GameType |
lotr2_game_wizard_load_step_assets |
0x0042634c | Skirmish PL8 at step ≥ 0xb |
FUN_00432cc8 |
0x00432cc8 | Menu step dispatch |
FUN_00433155 |
0x00433155 | Skirmish vs campaign MP branch |
FUN_00432b05 |
0x00432b05 | MP lobby entry |
FUN_004b7250 |
0x004b7250 | MP session start |