Skip to content

System dialog scenes#

Transient overlays, options dialogs, and internal state modes that sit on top of or between substantive game screens. Most of these are reached via the overlay push/restore stack rather than a direct mode assignment.


0x1e — Modal overlay#

Summary. A general-purpose blocking modal. The game saves the current lotr2_game_screen_mode to a push-slot, sets mode 0x1e, draws a small modal frame with a title and body, and restores the previous mode on dismiss. Used for confirmation prompts and informational notices that do not have a dedicated mode of their own.

Entry. lotr2_game_ui_enter_modal_mode (0x415cb4). Called internally by lotr2_game_wizard_open_options_modal and other action handlers.

Exit. OK or cancel hit-test (lotr2_game_ui_hit_test_dialog_ok); prior mode restored via lotr2_game_ui_restore_screen_mode.

Symbol Address Role
lotr2_game_ui_enter_modal_mode 0x415cb4 Save current mode; enter 0x1e
lotr2_game_ui_draw_modal_backdrop 0x43bf96 Draw 0xa0×0xa0 modal backdrop tile
lotr2_game_ui_draw_modal_frame_small 0x414339 Small modal frame + title
lotr2_game_ui_draw_modal_frame_large 0x414397 Large parameter dialog frame
lotr2_game_ui_run_menu_dialog 0x41570e Blocking menu dialog
lotr2_game_ui_run_wait_dialog 0x415c42 Blocking wait dialog with message pump
lotr2_game_ui_hit_test_dialog_ok 0x415da6 Modal OK button (0x18×0x18) hit test

Evidence. Architecture ../architecture/game/MODULE.md (UI widget toolkit pass 29b); ../architecture/ui/MODULE.md (overlay/restore stack).

Confidence. confirmed — push/restore pattern and modal symbols thoroughly documented in pass 29b / 31d.


0x21 — Parameter dialog#

Summary. A parameter-entry overlay similar to the modal but wider, used for dialogs requiring numeric or text input from the player (e.g. entering tribute amounts, setting turn limits). Distinct from 0x1e in that it uses the large frame variant.

Entry. lotr2_game_ui_enter_parameter_dialog (0x415d23); saves current mode and enters 0x21.

Exit. Confirm or cancel; prior mode restored.

Symbol Address Role
lotr2_game_ui_enter_parameter_dialog 0x415d23 Save mode; enter parameter mode 0x21
lotr2_game_ui_draw_modal_frame_large 0x414397 Large parameter dialog frame

Evidence. src/LORDS2.EXE.c line 29322 — direct assignment; architecture ../architecture/game/MODULE.md (UI widget toolkit pass 29b).

Confidence. likely — entry function named; parameter-dialog usage sites not fully enumerated.


0x23 — Palette-fade transition#

Summary. Not a player-visible screen in its own right. When set, the game interpolates DirectDraw palette entries over several frames between two screen states. lotr2_gfx_fade_step is called each frame; once complete the prior lotr2_game_screen_mode is restored. Mode 0x24 is an intermediate step within the same sequence.

lotr2_game_ui_redraw_province_panel early-exits when mode is 0x23 or 0x24 to avoid redrawing the panel during the fade.

Entry. lotr2_gfx_begin_palette_fade arms the fade and assigns lotr2_game_screen_mode = 0x23 (line 34348). lotr2_gfx_fade_arm and lotr2_gfx_fade_step step the interpolation.

Exit. Fade complete; prior mode restored automatically.

Symbol Address Role
lotr2_gfx_begin_palette_fade (gfx module) Arm palette fade; set mode 0x23
lotr2_gfx_fade_arm (gfx module) Arm fade state
lotr2_gfx_fade_step (gfx module) Per-frame palette interpolation step

Evidence. src/LORDS2.EXE.c line 34348; lines 25409–25412; architecture ../architecture/ui/MODULE.md (Palette fade section); ../architecture/gfx/MODULE.md.

Confidence. confirmed — fade sequence described in UI MODULE.md; mode assignment directly observed at line 34348.


0x25 — Quit confirm#

Summary. A modal dialog asking the player to confirm quitting the game. Drawn as a small dialog with yes/no options. In multiplayer, quitting also sends a disconnect notification.

Entry. lotr2_game_action_show_quit_confirm (0x43c891) enters mode 0x25 ('%').

Exit. Yes: lotr2_game_shutdown / exit; No: prior mode restored.

Symbol Address Role
lotr2_game_ui_draw_quit_confirm_dialog (pass 49) Quit confirm dialog draw
lotr2_game_action_show_quit_confirm 0x43c891 Enter mode 0x25; draw quit-confirm dialog

Evidence. src/LORDS2.EXE.c line 19354 — exit dispatcher case '%' (0x25); architecture ../architecture/game/MODULE.md (Turn-action table pass 26).

Confidence. likely — entry function named; dialog yes/no handling not fully traced.


0x31 — Scroll-speed options#

Summary. A small overlay dialog letting the player adjust the map scroll speed. Presents a slider or set of labelled options. Entered from the toolbar or options menu.

Entry. lotr2_game_action_show_scroll_options (0x43c864) enters mode 0x31 ('1').

Exit. Dismiss returns to prior scene.

Symbol Address Role
lotr2_game_ui_draw_scroll_options_dialog (pass 49) Scroll-speed options dialog draw
lotr2_game_action_show_scroll_options 0x43c864 Enter mode 0x31

Evidence. src/LORDS2.EXE.c line 19357; architecture ../architecture/game/MODULE.md (Turn-action table pass 26).

Confidence. likely — entry function named; dialog internals not traced.


0x32 — Popup menu / end-modal#

Summary. A lightweight popup submenu mode. Used for context menus that appear near a toolbar button or map element. Also the mode assigned when an end-modal action dismisses the current overlay (lotr2_game_ui_end_modal_overlay).

Entry. lotr2_game_ui_enter_popup_menu (0x4154af) enters mode 0x32 ('2'). Also set at line 8443 via direct assignment.

Exit. Selection or dismiss; prior mode restored.

Symbol Address Role
lotr2_game_ui_enter_popup_menu 0x4154af Enter popup submenu mode 0x32
lotr2_game_ui_handle_popup_menu 0x415377 Popup menu input loop
lotr2_game_ui_end_modal_overlay (pass 31d) End-modal dismiss callback

Evidence. src/LORDS2.EXE.c line 19360; line 8443; architecture ../architecture/game/MODULE.md (UI widget toolkit — Modals, menus, popups pass 29b).

Confidence. likely — entry and handle functions named; popup-menu item table layout not traced.


0x39 — Options dialog#

Summary. The main options dialog ('9'). Covers sound volume, music toggle, gameplay settings, and network options. In multiplayer, a client defers opening options via message 0xe3 to ensure host sync.

Entry. lotr2_game_action_enter_options_dialog (0x43c023) enters mode 0x39 ('9').

Exit. Dismiss; prior mode restored.

Symbol Address Role
lotr2_game_ui_draw_options_dialog 0x41cd6c Options dialog draw
lotr2_game_action_enter_options_dialog 0x43c023 Enter options dialog (mode '9'); MP client defers via 0xe3
lotr2_game_action_toggle_music 0x43c4d5 Toggle campaign/battle music stream
lotr2_game_action_toggle_sfx 0x43c55a Toggle sound-effects flag

Evidence. src/LORDS2.EXE.c line 19342; architecture ../architecture/game/MODULE.md (Screen-mode dialogs pass 31d; Turn-action table pass 26).

Confidence. confirmed — options dialog entry and draw symbol named; MP deferral mechanism documented.


0x42 — Game options dialog#

Summary. A sub-options dialog for game-play specific settings (e.g. AI difficulty tuning, autosave interval). Distinct from the main options (0x39) and display options (0x43).

Entry. lotr2_game_action_enter_game_options_dialog (0x43c49d) enters mode 0x42 ('B').

Exit. Dismiss; prior mode restored.

Symbol Address Role
lotr2_game_ui_draw_game_options_dialog (pass 31d) Game options dialog draw
lotr2_game_action_enter_game_options_dialog 0x43c49d Enter game-options dialog (mode 'B')

Evidence. src/LORDS2.EXE.c line 19348; architecture ../architecture/game/MODULE.md (Turn-action table pass 26).

Confidence. likely — entry function named; dialog row layout not traced.


0x43 — Display options dialog#

Summary. A sub-options dialog for display and rendering settings, notably including the hi-colour mode toggle which re-initialises DirectDraw on change.

Entry. lotr2_game_action_enter_display_options_dialog (0x43c4b9) enters mode 0x43 ('C').

Exit. Dismiss; prior mode restored.

Symbol Address Role
lotr2_game_ui_draw_display_options_dialog (pass 31d) Display options dialog draw
lotr2_game_action_enter_display_options_dialog 0x43c4b9 Enter display-options dialog (mode 'C')
lotr2_game_action_toggle_hicolor 0x43c641 Toggle hi-color mode; re-init DirectDraw

Evidence. src/LORDS2.EXE.c line 19351; architecture ../architecture/game/MODULE.md (Turn-action table pass 26).

Confidence. likely — entry function named; display-options row layout not traced.


Evidence sources#