DEADSOFTWARE

fix split screen for default megawad
[d2df-sdl.git] / src / game / g_menu.pas
index d808bf3bdc446bef705d698b86ea094b74892a6d..3cfec36d6f79ba50f00c1d6c9748991bf9fe71b7 100644 (file)
@@ -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_GetWriteableDir(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_GetWriteableDir(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_GetWriteableDir(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_GetWriteableDir(ConfigDirs);
-  if s <> '' then
-    g_Options_Write_Language(s + '/' + CONFIG_FILENAME)
 end;
 
 procedure ProcRecallAddress();