X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_menu.pas;h=aca1dbf59939c6b399c083399728e2396f1f7daf;hb=db4e988645273fe1c11611d84e03f0199cd181f7;hp=85334b3bf14b8331ed5c2bc114266c667a0db93f;hpb=11162ad485996f3e9ae4ef3b36788fcf9ed57af4;p=d2df-sdl.git diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas index 85334b3..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(); @@ -47,7 +47,8 @@ uses e_log, SysUtils, CONFIG, g_playermodel, DateUtils, MAPDEF, wadreader, Math, g_saveload, e_texture, GL, GLExt, g_language, - g_net, g_netmsg, g_netmaster, g_items, e_input; + g_net, g_netmsg, g_netmaster, g_items, e_input, + utils; type TYNCallback = procedure (yes:Boolean); @@ -551,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; @@ -611,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; @@ -1327,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; // Çàïðåòèòü ñîõðàíåíèå â èíòåðìèññèè (íå ðåàëèçîâàíî) @@ -3088,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');