X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_menu.pas;h=aca1dbf59939c6b399c083399728e2396f1f7daf;hb=db4e988645273fe1c11611d84e03f0199cd181f7;hp=d8619f34fe0ed793f57a66838edb56f04d193613;hpb=ca040c47365ab1d900328e3d525def33202c8036;p=d2df-sdl.git diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas index d8619f3..aca1dbf 100644 --- a/src/game/g_menu.pas +++ b/src/game/g_menu.pas @@ -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,9 +45,10 @@ 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, - g_net, g_netmsg, g_netmaster, g_items, e_input; + MAPDEF, wadreader, Math, g_saveload, + e_texture, GL, GLExt, g_language, + g_net, g_netmsg, g_netmaster, g_items, e_input, + utils; type TYNCallback = procedure (yes:Boolean); @@ -506,20 +507,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(); @@ -533,7 +552,7 @@ begin Map := TGUILabel(GetControl('lbMap')).Text; if Map = '' then Exit; - if Pos(':\', Map) = 0 then + if not isWadPath(Map) then Exit; GameMode := TGUISwitch(GetControl('swGameMode')).ItemIndex+1; @@ -593,7 +612,7 @@ begin Map := TGUILabel(GetControl('lbMap')).Text; if Map = '' then Exit; - if Pos(':\', Map) = 0 then + if not isWadPath(Map) then Exit; GameMode := TGUISwitch(GetControl('swGameMode')).ItemIndex+1; @@ -1309,8 +1328,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; // Çàïðåòèòü ñîõðàíåíèå â èíòåðìèññèè (íå ðåàëèçîâàíî) @@ -3070,19 +3089,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');