diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas
index 72a5c8ceeb16317cfbaf60d737cd667dcb8726d1..8331660c6107c21c00137101818cc3ce0aa28a37 100644 (file)
--- a/src/game/g_menu.pas
+++ b/src/game/g_menu.pas
gcMaxLives := StrToIntDef(TGUIEdit(GetControl('edMaxLives')).Text, 0);
gcTeamDamage := TGUISwitch(GetControl('swTeamDamage')).ItemIndex = 0;
+ gcRespawnItems := TGUISwitch(GetControl('swRespawnItems')).ItemIndex = 0;
gcAllowExit := TGUISwitch(GetControl('swEnableExits')).ItemIndex = 0;
gcWeaponStay := TGUISwitch(GetControl('swWeaponStay')).ItemIndex = 0;
gcMonsters := TGUISwitch(GetControl('swMonsters')).ItemIndex = 0;
Options := 0;
if gcTeamDamage then
Options := Options or GAME_OPTION_TEAMDAMAGE;
+ if gcRespawnItems then
+ Options := Options or GAME_OPTION_RESPAWNITEMS;
if gcAllowExit then
Options := Options or GAME_OPTION_ALLOWEXIT;
if gcWeaponStay then
NetPort := StrToIntDef(TGUIEdit(GetControl('edPort')).Text, 0);
gnTeamDamage := TGUISwitch(GetControl('swTeamDamage')).ItemIndex = 0;
+ gnRespawnItems := TGUISwitch(GetControl('swRespawnItems')).ItemIndex = 0;
gnAllowExit := TGUISwitch(GetControl('swEnableExits')).ItemIndex = 0;
gnWeaponStay := TGUISwitch(GetControl('swWeaponStay')).ItemIndex = 0;
gnMonsters := TGUISwitch(GetControl('swMonsters')).ItemIndex = 0;
Options := 0;
if gnTeamDamage then
Options := Options or GAME_OPTION_TEAMDAMAGE;
+ if gnRespawnItems then
+ Options := Options or GAME_OPTION_RESPAWNITEMS;
if gnAllowExit then
Options := Options or GAME_OPTION_ALLOWEXIT;
if gnWeaponStay then
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;
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;
with TGUIListBox(menu.GetControl('lsResolution')) do
begin
- list := sys_GetDispalyModes(gBPP);
+ list := sys_GetDisplayModes(gBPP);
if list <> nil then
begin
Items := list;
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();
else
ItemIndex := 1;
end;
+ with AddSwitch(_lc[I_MENU_RESPAWN_ITEMS]) do
+ begin
+ Name := 'swRespawnItems';
+ AddItem(_lc[I_MENU_YES]);
+ AddItem(_lc[I_MENU_NO]);
+ if gnRespawnItems then
+ ItemIndex := 0
+ else
+ ItemIndex := 1;
+ end;
with AddSwitch(_lc[I_MENU_ENABLE_EXITS]) do
begin
Name := 'swEnableExits';
else
ItemIndex := 1;
end;
+ with AddSwitch(_lc[I_MENU_RESPAWN_ITEMS]) do
+ begin
+ Name := 'swRespawnItems';
+ AddItem(_lc[I_MENU_YES]);
+ AddItem(_lc[I_MENU_NO]);
+ if gcRespawnItems then
+ ItemIndex := 0
+ else
+ ItemIndex := 1;
+ end;
with AddSwitch(_lc[I_MENU_ENABLE_EXITS]) do
begin
Name := 'swEnableExits';