DEADSOFTWARE

F3 at titlepic/menu will show "load game" dialog: bugfix
[d2df-sdl.git] / src / game / g_menu.pas
index 298fab8c2b0f033fca626e3cc70f54e2711e49f1..93666fa87f3f4f4a9da3c5fe71a195b871af8533 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();
@@ -45,8 +45,8 @@ uses
   g_gui, g_textures, e_graphics, g_main, g_window, g_game, g_map,
   g_basic, g_console, g_sound, g_gfx, g_player, g_options, g_weapons,
   e_log, SysUtils, CONFIG, g_playermodel, DateUtils,
-  MAPSTRUCT, wadreader, Math, g_saveload,
-  e_textures, GL, GLExt, g_language,
+  MAPDEF, wadreader, Math, g_saveload,
+  e_texture, GL, GLExt, g_language,
   g_net, g_netmsg, g_netmaster, g_items, e_input;
 
 
@@ -506,20 +506,38 @@ end;
 
 procedure ProcSwitchMonstersCustom(Sender: TGUIControl);
 begin
+  // don't turn off monsters in DM
+  {
   with TGUIMenu(g_ActiveWindow.GetControl('mCustomGameMenu')) do
-    if TGUISwitch(GetControl('swGameMode')).GetText = _lc[I_MENU_GAME_TYPE_COOP] then
+    if TGUISwitch(GetControl('swGameMode')).GetText <> _lc[I_MENU_GAME_TYPE_CTF] then
       TGUISwitch(GetControl('swMonsters')).ItemIndex := 0
     else
       TGUISwitch(GetControl('swMonsters')).ItemIndex := 1;
+  }
+  {
+    if TGUISwitch(GetControl('swGameMode')).GetText = _lc[I_MENU_GAME_TYPE_COOP] then
+      TGUISwitch(GetControl('swMonsters')).ItemIndex := 0
+    else if TGUISwitch(GetControl('swGameMode')).GetText = _lc[I_MENU_GAME_TYPE_CTF] then
+      TGUISwitch(GetControl('swMonsters')).ItemIndex := 1;
+  }
 end;
 
 procedure ProcSwitchMonstersNet(Sender: TGUIControl);
 begin
+  // don't turn off monsters in DM
+  {
   with TGUIMenu(g_ActiveWindow.GetControl('mNetServerMenu')) do
-    if TGUISwitch(GetControl('swGameMode')).GetText = _lc[I_MENU_GAME_TYPE_COOP] then
+    if TGUISwitch(GetControl('swGameMode')).GetText <> _lc[I_MENU_GAME_TYPE_CTF] then
       TGUISwitch(GetControl('swMonsters')).ItemIndex := 0
     else
       TGUISwitch(GetControl('swMonsters')).ItemIndex := 1;
+  }
+    {
+    if TGUISwitch(GetControl('swGameMode')).GetText = _lc[I_MENU_GAME_TYPE_COOP] then
+      TGUISwitch(GetControl('swMonsters')).ItemIndex := 0
+    else if TGUISwitch(GetControl('swGameMode')).GetText = _lc[I_MENU_GAME_TYPE_CTF] then
+      TGUISwitch(GetControl('swMonsters')).ItemIndex := 1;
+    }
 end;
 
 procedure ProcStartCustomGame();
@@ -1124,12 +1142,12 @@ end;
 
 procedure ProcSingle1Player();
 begin
-  g_Game_StartSingle('megawads/DOOM2D.WAD:\MAP01', False, 1);
+  g_Game_StartSingle(gDefaultMegawadStart, False, 1);
 end;
 
 procedure ProcSingle2Players();
 begin
-  g_Game_StartSingle('megawads/DOOM2D.WAD:\MAP01', True, 2);
+  g_Game_StartSingle(gDefaultMegawadStart, True, 2);
 end;
 
 procedure ProcSelectMapMenu();
@@ -3070,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');