Setup wizard scenes#
Scenes handling new game setup, loading saved games, multiplayer lobby configuration, and the introductory chapter picker.
The wizard sub-system uses a second state variable:
lotr2_game_wizard_step (0x593494) — sub-step within mode 0x1f (values 1–8,
plus 0xb/0xc for GoG skirmish)
0x1c — Gateway / new-game#
Summary. The gateway screen showing the gateway.256 backdrop. This is
the main "front door" of the game after the intro video, presenting the
player with high-level choices: start a new game, load a saved game, or
access the multiplayer lobby. Transitions into the wizard (0x1f).
Entry. lotr2_game_ui_enter_gateway_screen (0x425f59) called via exit
dispatcher; mode set at line 24283 on startup after intro or when returning
from gameplay to the main menu (lotr2_game_return_to_campaign_map can also
restore to 0x1c depending on context).
Exit. Player selection advances lotr2_game_wizard_step to step 1 and
transitions to mode 0x1f.
| Symbol | Address | Role |
|---|---|---|
lotr2_game_ui_enter_gateway_screen |
0x425f59 | Gateway backdrop enter/draw (gateway.256) |
lotr2_game_wizard_load_step_assets |
0x42634c | Load gateway/custom/panels2 assets for wizard step |
Evidence. src/LORDS2.EXE.c line 19336; line 24283; architecture
../architecture/game/MODULE.md
(Castle interior / gateway UI pass 37).
Confidence. confirmed — entry function named and backed by asset name
gateway.256.
0x1f — New-game / save-load / MP lobby wizard#
Summary. The multi-step setup wizard covering new game configuration,
save/load slot selection, multiplayer host/join setup, and rule naming.
The active sub-step is selected by lotr2_game_wizard_step (1–8 for retail;
0xb/0xc for GoG skirmish). Each step has its own draw function.
Entry. Mode set at line 25885 (from gateway selection) or line 25894
(other wizard paths). lotr2_game_wizard_redraw_current_step dispatches to
the step renderer on each init.
Wizard steps#
| Step | Name | Draw function | Address |
|---|---|---|---|
| 1 | Intro / main choice | lotr2_game_wizard_draw_step1_panel + _option_rows |
0x426648 / 0x4266d7 |
| 2 | Game type / options | lotr2_game_wizard_draw_step2_panel + _option_rows |
0x426849 / 0x4268a5 |
| 3 | Save/load slot | lotr2_game_wizard_draw_step3_load_panel |
0x426a8c |
| 4 | Game name / MP choice | lotr2_game_wizard_draw_step4_name_panel + _mp_options |
0x426aa1 / 0x426b7a |
| 5 | SP game setup (map + players) | lotr2_game_wizard_draw_step5_sp_setup |
0x426e9b |
| 6 | MP host setup | lotr2_game_wizard_draw_step6_mp_setup + name field |
0x426f4e / 0x427853 |
| 7 | Player-count panel | lotr2_game_wizard_draw_step7_player_count + MP list |
0x4275e7 / 0x427747 |
| 8 | Final confirmation | lotr2_game_wizard_draw_step8_panel |
0x427968 |
| 0xb | GoG skirmish MP | (GoG-specific) | — |
| 0xc | GoG skirmish SP | (GoG-specific) | — |
Exit. Step 8 confirm: starts game via lotr2_game_wizard_on_start_step
→ lotr2_game_on_mp_lobby_start. Cancel via
lotr2_game_wizard_cancel_and_resume; SP tick or MP opcode 0x19.
| Symbol | Address | Role |
|---|---|---|
lotr2_game_wizard_redraw_current_step |
0x426498 | Redraw dispatcher; branches on lotr2_game_wizard_step |
lotr2_game_wizard_load_step_assets |
0x42634c | Load assets for current step |
lotr2_game_wizard_draw_loading_message |
0x426596 | Loading overlay + present frame |
lotr2_game_wizard_blit_player_slot_icons |
0x426c9c | Player slot icon sprites |
lotr2_game_wizard_draw_name_text_input |
0x426dd3 | Name field + blinking cursor |
lotr2_game_wizard_draw_config_value_rows |
0x427073 | Config value label rows |
lotr2_game_wizard_draw_map_size_selector |
0x427191 | Map size minimap + selector bar |
lotr2_game_wizard_draw_player_slot_rows |
0x4273dc | Nation/culture player slot rows |
lotr2_game_wizard_draw_mp_player_list |
0x427747 | MP connected player name list |
lotr2_game_wizard_on_start_step |
0x43b316 | Wizard turn-phase dispatch; MP lobby start |
lotr2_game_wizard_apply_config_choice |
0x43b7f7 | Apply config row; MP net msg 9 |
lotr2_game_wizard_open_options_modal |
0x43bb91 | Open options modal from wizard |
lotr2_game_wizard_cancel_and_resume |
0x43bbb5 | Cancel wizard; SP tick or MP opcode 0x19 |
lotr2_game_wizard_on_mp_host |
0x43ae19 | MP host wizard step; calls lotr2_net_start_session |
lotr2_game_on_mp_lobby_start |
0x43ad7a | MP lobby complete → start game or send net msg |
Evidence. src/LORDS2.EXE.c lines 19338–19339; lines 25885, 25888,
25894; architecture ../architecture/game/MODULE.md
(Wizard step renderers pass 39; Wizard + turn actions pass 38).
Confidence. confirmed — all 8 step renderers and action functions named; GoG steps 0xb/0xc noted in architecture.
0x35 — Save wizard chrome#
Summary. The save-game slot list embedded within the wizard flow when the player is saving. Renders the slot list panel inside the wizard backdrop.
Entry. Exit dispatcher calls lotr2_game_ui_draw_save_wizard_chrome(0)
for mode 0x35 ('5').
| Symbol | Address | Role |
|---|---|---|
lotr2_game_ui_draw_save_wizard_chrome |
0x41c77d | Save/load wizard chrome draw (param 0 = save) |
lotr2_game_ui_draw_save_slot_list |
0x41c950 | Save slot list draw |
Evidence. src/LORDS2.EXE.c line 19330 — exit dispatcher case '5'
(0x35); architecture ../architecture/game/MODULE.md
(Screen-mode dialogs pass 31d).
Confidence. likely — functions named; slot-record format cross-references
../spec/save/README.md.
0x36 — Load wizard chrome#
Summary. The load-game slot list embedded within the wizard flow when the
player is loading. Renders the slot list panel inside the wizard backdrop.
Functionally mirrors 0x35 with param 1 to select load behaviour.
Entry. Exit dispatcher calls lotr2_game_ui_draw_save_wizard_chrome(1)
for mode 0x36 ('6').
| Symbol | Address | Role |
|---|---|---|
lotr2_game_ui_draw_save_wizard_chrome |
0x41c77d | Save/load wizard chrome draw (param 1 = load) |
lotr2_game_ui_draw_save_slot_list |
0x41c950 | Save slot list draw |
Evidence. src/LORDS2.EXE.c line 19333 — exit dispatcher case '6'
(0x36).
Confidence. likely — mirrors 0x35; same chrome function with different
parameter.
0x44 — Intro chapter picker#
Summary. A Smacker-video chapter selection screen shown at startup or when the player elects to replay the intro. Presents numbered chapter icons; the selected chapter plays via the Smacker video subsystem.
Entry. Exit dispatcher routes mode 0x44 ('D') to
lotr2_game_ui_draw_intro_chapter_dialog.
| Symbol | Address | Role |
|---|---|---|
lotr2_game_ui_draw_intro_chapter_dialog |
0x42ace1 | Intro Smacker chapter picker draw |
lotr2_game_play_intro_or_enable_tick |
0x4cec91 | Play intro Smacker or enable tick gate |
Evidence. src/LORDS2.EXE.c line 19345 — exit dispatcher case 'D'
(0x44); architecture ../architecture/game/MODULE.md
(post-siege outcome / battle HUD pass 45).
Confidence. likely — dialog symbol named; chapter-index mapping not traced.
0x2e — Skirmish score (GoG only)#
Summary. A post-battle score screen shown at the end of a skirmish
match. Displays player performance metrics before returning to the gateway
or skirmish setup. This scene is GoG-specific; retail LORDS2.EXE does not
have skirmish mode.
Entry. lotr2_game_ui_on_battle_end_return (0x0043be65, GoG) routes
to score screen 0x2e in skirmish mode rather than campaign mode 0x13.
| Symbol | GoG address | Role |
|---|---|---|
lotr2_game_ui_on_battle_end_return |
0x0043be65 | Skirmish → mode 0x2e vs campaign 0x13 |
Evidence. Architecture ../architecture/game/MODULE.md
(Skirmish mode GoG only); ../skirmish/README.md.
Confidence. partial — mode value documented in architecture; score-panel layout not traced. Retail EXE does not have this mode.
Evidence sources#
../architecture/game/MODULE.md— passes 31d, 37, 38, 39, 45../skirmish/README.md— GoG skirmish flowsrc/LORDS2.EXE.clines 19322–19442 — exit/init dispatcher