Skip to content

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_steplotr2_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#