X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_menu.pas;h=8331660c6107c21c00137101818cc3ce0aa28a37;hb=6f5375e6179294fde838bcf61f0dafeb4e018ee7;hp=11dd664dd078e80d4103dc8bed63e66d190ade31;hpb=96f8e6b190e94847ab2527cc07ee8b19589c05fa;p=d2df-sdl.git diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas index 11dd664..8331660 100644 --- a/src/game/g_menu.pas +++ b/src/game/g_menu.pas @@ -667,12 +667,15 @@ begin 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 @@ -731,12 +734,15 @@ begin 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 @@ -1281,13 +1287,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; @@ -1656,37 +1663,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; @@ -1922,27 +1915,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(); @@ -2211,6 +2194,16 @@ begin 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'; @@ -2411,6 +2404,16 @@ begin 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';