DEADSOFTWARE

dynrec API documenting and cleanup (still has some way to go, though)
[d2df-sdl.git] / src / game / g_menu.pas
index 85334b3bf14b8331ed5c2bc114266c667a0db93f..a84251949474de22ad1a163b41c767f5eb2d52e0 100644 (file)
@@ -26,7 +26,7 @@ procedure LoadFont(txtres, fntres: string; var FontID: DWORD);
 procedure g_Menu_AskLanguage();
 
 procedure g_Menu_Show_SaveMenu();
-procedure g_Menu_Show_LoadMenu();
+procedure g_Menu_Show_LoadMenu(standalone: Boolean=false);
 procedure g_Menu_Show_GameSetGame();
 procedure g_Menu_Show_OptionsVideo();
 procedure g_Menu_Show_OptionsSound();
@@ -1327,8 +1327,8 @@ var
 begin
   Enabled := True;
   if (gGameSettings.GameType = GT_SINGLE) and
-     ((gPlayer1 = nil) or (not gPlayer1.Live)) and
-     ((gPlayer2 = nil) or (not gPlayer2.Live)) then
+     ((gPlayer1 = nil) or (not gPlayer1.alive)) and
+     ((gPlayer2 = nil) or (not gPlayer2.alive)) then
     Enabled := False; // Îäèí èç èãðîêîâ ïîãèá â ñèíãëå
   if not gGameOn then
     Enabled := False; // Çàïðåòèòü ñîõðàíåíèå â èíòåðìèññèè (íå ðåàëèçîâàíî)
@@ -3088,19 +3088,18 @@ begin
   g_Sound_PlayEx('MENU_OPEN');
 end;
 
-procedure g_Menu_Show_LoadMenu();
+procedure g_Menu_Show_LoadMenu (standalone: Boolean=false);
 begin
+  if (g_ActiveWindow <> nil) and (g_ActiveWindow.name = 'LoadMenu') then exit; // nothing to do
   if gGameSettings.GameType = GT_SINGLE then
-    g_GUI_ShowWindow('GameSingleMenu')
+  begin
+    if not standalone then g_GUI_ShowWindow('GameSingleMenu')
+  end
   else
   begin
-    if g_Game_IsClient then
-      Exit
-    else
-      if g_Game_IsNet then
-        Exit
-      else
-        g_GUI_ShowWindow('GameCustomMenu');
+    if g_Game_IsClient then exit;
+    if g_Game_IsNet then exit;
+    if not standalone then g_GUI_ShowWindow('GameCustomMenu');
   end;
   g_GUI_ShowWindow('LoadMenu');
   g_Sound_PlayEx('MENU_OPEN');