From d7e26c5b3bd136c429cd4e1532892b9476658126 Mon Sep 17 00:00:00 2001 From: fgsfds Date: Sun, 9 Feb 2020 06:09:38 +0300 Subject: [PATCH] added dmkeys option to the menu --- src/game/g_language.pas | 3 +++ src/game/g_menu.pas | 48 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/src/game/g_language.pas b/src/game/g_language.pas index 1aad7c6..09021f5 100644 --- a/src/game/g_language.pas +++ b/src/game/g_language.pas @@ -163,6 +163,7 @@ type I_MENU_MAX_LIVES, I_MENU_TEAM_DAMAGE, I_MENU_RESPAWN_ITEMS, + I_MENU_DEATHMATCH_KEYS, I_MENU_ENABLE_EXITS, I_MENU_WEAPONS_STAY, I_MENU_ENABLE_MONSTERS, @@ -925,6 +926,8 @@ const 'Óðîí ñâîèõ:'), ('MENU RESPAWN ITEMS', 'Respawn Items:', 'Ðåñïàâíèòü ïðåäìåòû:'), + ('MENU DEATHMATCH KEYS', 'Give all keys in DM:', + 'Âñå êëþ÷è â DM:'), ('MENU ENABLE EXITS', 'Enable Exit:', 'Âêëþ÷èòü âûõîä:'), ('MENU WEAPONS STAY', 'Weapons stay:', diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas index 8331660..3513439 100644 --- a/src/game/g_menu.pas +++ b/src/game/g_menu.pas @@ -668,6 +668,7 @@ begin gcTeamDamage := TGUISwitch(GetControl('swTeamDamage')).ItemIndex = 0; gcRespawnItems := TGUISwitch(GetControl('swRespawnItems')).ItemIndex = 0; + gcDeathmatchKeys := TGUISwitch(GetControl('swDeathmatchKeys')).ItemIndex = 0; gcAllowExit := TGUISwitch(GetControl('swEnableExits')).ItemIndex = 0; gcWeaponStay := TGUISwitch(GetControl('swWeaponStay')).ItemIndex = 0; gcMonsters := TGUISwitch(GetControl('swMonsters')).ItemIndex = 0; @@ -676,6 +677,8 @@ begin Options := Options or GAME_OPTION_TEAMDAMAGE; if gcRespawnItems then Options := Options or GAME_OPTION_RESPAWNITEMS; + if gcDeathmatchKeys then + Options := Options or GAME_OPTION_DMKEYS; if gcAllowExit then Options := Options or GAME_OPTION_ALLOWEXIT; if gcWeaponStay then @@ -735,6 +738,7 @@ begin gnTeamDamage := TGUISwitch(GetControl('swTeamDamage')).ItemIndex = 0; gnRespawnItems := TGUISwitch(GetControl('swRespawnItems')).ItemIndex = 0; + gnDeathmatchKeys := TGUISwitch(GetControl('swDeathmatchKeys')).ItemIndex = 0; gnAllowExit := TGUISwitch(GetControl('swEnableExits')).ItemIndex = 0; gnWeaponStay := TGUISwitch(GetControl('swWeaponStay')).ItemIndex = 0; gnMonsters := TGUISwitch(GetControl('swMonsters')).ItemIndex = 0; @@ -743,6 +747,8 @@ begin Options := Options or GAME_OPTION_TEAMDAMAGE; if gnRespawnItems then Options := Options or GAME_OPTION_RESPAWNITEMS; + if gnDeathmatchKeys then + Options := Options or GAME_OPTION_DMKEYS; if gnAllowExit then Options := Options or GAME_OPTION_ALLOWEXIT; if gnWeaponStay then @@ -1697,6 +1703,11 @@ begin ItemIndex := 0 else ItemIndex := 1; + with TGUISwitch(menu.GetControl('swDeathmatchKeys')) do + if LongBool(Options and GAME_OPTION_DMKEYS) then + ItemIndex := 0 + else + ItemIndex := 1; TGUIEdit(menu.GetControl('edTimeLimit')).Text := IntToStr(TimeLimit); TGUIEdit(menu.GetControl('edGoalLimit')).Text := IntToStr(GoalLimit); @@ -1715,6 +1726,7 @@ begin if GameType in [GT_CUSTOM, GT_SERVER] then begin TGUISwitch(menu.GetControl('swTeamDamage')).Enabled := True; + TGUISwitch(menu.GetControl('swDeathmatchKeys')).Enabled := (GameMode in [GM_DM, GM_TDM, GM_CTF]); TGUIEdit(menu.GetControl('edTimeLimit')).Enabled := True; TGUILabel(menu.GetControlsText('edTimeLimit')).Color := MENU_ITEMSTEXT_COLOR; TGUIEdit(menu.GetControl('edGoalLimit')).Enabled := True; @@ -1726,6 +1738,7 @@ begin else begin TGUISwitch(menu.GetControl('swTeamDamage')).Enabled := True; + TGUISwitch(menu.GetControl('swDeathmatchKeys')).Enabled := False; with TGUIEdit(menu.GetControl('edTimeLimit')) do begin Enabled := False; @@ -1769,6 +1782,14 @@ begin Options := Options and (not GAME_OPTION_TEAMDAMAGE); end; + if TGUISwitch(menu.GetControl('swDeathmatchKeys')).Enabled then + begin + if TGUISwitch(menu.GetControl('swDeathmatchKeys')).ItemIndex = 0 then + Options := Options or GAME_OPTION_DMKEYS + else + Options := Options and (not GAME_OPTION_DMKEYS); + end; + if TGUIEdit(menu.GetControl('edTimeLimit')).Enabled then begin n := StrToIntDef(TGUIEdit(menu.GetControl('edTimeLimit')).Text, TimeLimit); @@ -2204,6 +2225,16 @@ begin else ItemIndex := 1; end; + with AddSwitch(_lc[I_MENU_DEATHMATCH_KEYS]) do + begin + Name := 'swDeathmatchKeys'; + AddItem(_lc[I_MENU_YES]); + AddItem(_lc[I_MENU_NO]); + if gnDeathmatchKeys then + ItemIndex := 0 + else + ItemIndex := 1; + end; with AddSwitch(_lc[I_MENU_ENABLE_EXITS]) do begin Name := 'swEnableExits'; @@ -2414,6 +2445,16 @@ begin else ItemIndex := 1; end; + with AddSwitch(_lc[I_MENU_DEATHMATCH_KEYS]) do + begin + Name := 'swDeathmatchKeys'; + AddItem(_lc[I_MENU_YES]); + AddItem(_lc[I_MENU_NO]); + if gcDeathmatchKeys then + ItemIndex := 0 + else + ItemIndex := 1; + end; with AddSwitch(_lc[I_MENU_ENABLE_EXITS]) do begin Name := 'swEnableExits'; @@ -3274,6 +3315,13 @@ begin AddItem(_lc[I_MENU_NO]); ItemIndex := 1; end; + with AddSwitch(_lc[I_MENU_DEATHMATCH_KEYS]) do + begin + Name := 'swDeathmatchKeys'; + AddItem(_lc[I_MENU_YES]); + AddItem(_lc[I_MENU_NO]); + ItemIndex := 1; + end; with AddEdit(_lc[I_MENU_TIME_LIMIT]) do begin Name := 'edTimeLimit'; -- 2.29.2