X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_menu.pas;h=3cfec36d6f79ba50f00c1d6c9748991bf9fe71b7;hb=d985a32a91a55643f61e83e9ed412686906977ca;hp=53a1cbc6bae3cca965e73a2c6dfdd3ea144ccca3;hpb=414f2873efa0cce84499f64774db7000e6268971;p=d2df-sdl.git diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas index 53a1cbc..3cfec36 100644 --- a/src/game/g_menu.pas +++ b/src/game/g_menu.pas @@ -375,7 +375,7 @@ begin if g_Game_IsClient then MC_SEND_PlayerSettings; - s := e_GetDir(ConfigDirs); + s := e_GetWriteableDir(ConfigDirs); if s <> '' then g_Options_Write(s + '/' + CONFIG_FILENAME); g_Console_WriteGameConfig; @@ -699,7 +699,7 @@ begin gcMap := Map; end; - s := e_GetDir(ConfigDirs); + s := e_GetWriteableDir(ConfigDirs); if s <> '' then g_Options_Write_Gameplay_Custom(s + '/' + CONFIG_FILENAME); @@ -768,7 +768,7 @@ begin NetUseMaster := TGUISwitch(GetControl('swUseMaster')).ItemIndex = 0; end; - s := e_GetDir(ConfigDirs); + s := e_GetWriteableDir(ConfigDirs); if s <> '' then begin g_Options_Write_Net_Server(s + '/' + CONFIG_FILENAME); @@ -791,7 +791,7 @@ begin PW := TGUIEdit(GetControl('edPW')).Text; end; - s := e_GetDir(ConfigDirs); + s := e_GetWriteableDir(ConfigDirs); if s <> '' then g_Options_Write_Net_Client(s + '/' + CONFIG_FILENAME); g_Game_StartClient(NetClientIP, NetClientPort, PW); @@ -809,7 +809,7 @@ begin PW := TGUIEdit(GetControl('edPW')).Text; end; - s := e_GetDir(ConfigDirs); + s := e_GetWriteableDir(ConfigDirs); if s <> '' then g_Options_Write_Net_Client(s + '/' + CONFIG_FILENAME); g_Game_StartClient(NetClientIP, NetClientPort, PW); @@ -860,6 +860,7 @@ begin WAD := TGUIFileListBox(GetControl('lsWAD')).SelectedItem(); TwoPlayers := TGUISwitch(GetControl('swPlayers')).ItemIndex = 1; end; + WAD := e_FindWadRel(MegawadDirs, WAD); if TwoPlayers then n := 2 @@ -1280,13 +1281,14 @@ end; procedure ProcSinglePlayer (n: Integer); var wad, map: AnsiString; begin + assert(n >= 1); wad := g_ExtractWadName(gDefaultMegawadStart); map := g_ExtractFilePathName(gDefaultMegawadStart); if e_FindResource(AllMapDirs, wad) then begin wad := ExpandFileName(wad); - g_Game_StartSingle(wad + ':\' + map, False, n); - end; + g_Game_StartSingle(wad + ':\' + map, n > 1, n) + end end; procedure ProcSingle1Player; @@ -1357,6 +1359,8 @@ begin if (wad = '') or (map = '') then Exit; + wad := e_FindWadRel(MapDirs, WAD); + res := wad+':\'+map; TGUILabel(TGUIMenu(g_GUI_GetWindow('CustomGameMenu').GetControl('mCustomGameMenu')).GetControl('lbMap')).Text := res; @@ -1653,37 +1657,23 @@ begin end; procedure ProcSetRussianLanguage; - var s: AnsiString; begin if gLanguage <> LANGUAGE_RUSSIAN then begin gLanguage := LANGUAGE_RUSSIAN; gLanguageChange := True; gAskLanguage := False; - - s := e_GetDir(ConfigDirs); - if s <> '' then - g_Options_Write_Language(s + '/' + CONFIG_FILENAME); - - // Ñîõðàíÿåì èçìåíåíèÿ âñåõ íàñòðîåê: ProcApplyOptions(); end; end; procedure ProcSetEnglishLanguage; - var s: AnsiString; begin if gLanguage <> LANGUAGE_ENGLISH then begin gLanguage := LANGUAGE_ENGLISH; gLanguageChange := True; gAskLanguage := False; - - s := e_GetDir(ConfigDirs); - if s <> '' then - g_Options_Write_Language(s + '/' + CONFIG_FILENAME); - - // Ñîõðàíÿåì èçìåíåíèÿ âñåõ íàñòðîåê: ProcApplyOptions(); end; end; @@ -1870,7 +1860,7 @@ begin with TGUIListBox(menu.GetControl('lsResolution')) do begin - list := sys_GetDispalyModes(gBPP); + list := sys_GetDisplayModes(gBPP); if list <> nil then begin Items := list; @@ -1919,27 +1909,17 @@ begin end; procedure ProcSetFirstRussianLanguage; - var s: AnsiString; begin gLanguage := LANGUAGE_RUSSIAN; gLanguageChange := True; gAskLanguage := False; - - s := e_GetDir(ConfigDirs); - if s <> '' then - g_Options_Write_Language(s + '/' + CONFIG_FILENAME) end; procedure ProcSetFirstEnglishLanguage; - var s: AnsiString; begin gLanguage := LANGUAGE_ENGLISH; gLanguageChange := True; gAskLanguage := False; - - s := e_GetDir(ConfigDirs); - if s <> '' then - g_Options_Write_Language(s + '/' + CONFIG_FILENAME) end; procedure ProcRecallAddress();