diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas
index 484b513c208e50a63f9175c540fbd6c53fb45fb3..bd213148c20374d88faf9ef963fd0605124eac46 100644 (file)
--- a/src/game/g_menu.pas
+++ b/src/game/g_menu.pas
if TGUISwitch(GetControl('swMonsters')).ItemIndex = 0 then
gsGameFlags := gsGameFlags or GAME_OPTION_MONSTERS;
+ case TGUISwitch(GetControl('swTeamHit')).ItemIndex of
+ 1: gsGameFlags := gsGameFlags or GAME_OPTION_TEAMHITTRACE;
+ 2: gsGameFlags := gsGameFlags or GAME_OPTION_TEAMHITPROJECTILE;
+ 0: gsGameFlags := gsGameFlags or GAME_OPTION_TEAMHITTRACE or GAME_OPTION_TEAMHITPROJECTILE;
+ end;
+
case TGUISwitch(GetControl('swBotsVS')).ItemIndex of
1: gsGameFlags := gsGameFlags or GAME_OPTION_BOTVSMONSTER;
2: gsGameFlags := gsGameFlags or GAME_OPTION_BOTVSPLAYER or GAME_OPTION_BOTVSMONSTER;
ItemIndex := 0
else
ItemIndex := 1;
+ with TGUISwitch(menu.GetControl('swTeamHit')) do
+ if (Options and (GAME_OPTION_TEAMHITTRACE or GAME_OPTION_TEAMHITPROJECTILE)) = (GAME_OPTION_TEAMHITTRACE or GAME_OPTION_TEAMHITPROJECTILE) then
+ ItemIndex := 0
+ else if LongBool(Options and GAME_OPTION_TEAMHITTRACE) then
+ ItemIndex := 1
+ else if LongBool(Options and GAME_OPTION_TEAMHITPROJECTILE) then
+ ItemIndex := 2
+ else
+ ItemIndex := 3;
with TGUISwitch(menu.GetControl('swDeathmatchKeys')) do
if LongBool(Options and GAME_OPTION_DMKEYS) then
ItemIndex := 0
if GameType in [GT_CUSTOM, GT_SERVER] then
begin
TGUISwitch(menu.GetControl('swTeamDamage')).Enabled := True;
+ TGUISwitch(menu.GetControl('swTeamHit')).Enabled := True;
if (GameMode in [GM_DM, GM_TDM, GM_CTF]) then
begin
TGUISwitch(menu.GetControl('swDeathmatchKeys')).Enabled := True;
else
begin
TGUISwitch(menu.GetControl('swTeamDamage')).Enabled := True;
+ TGUISwitch(menu.GetControl('swTeamHit')).Enabled := True;
TGUISwitch(menu.GetControl('swDeathmatchKeys')).Enabled := False;
TGUILabel(menu.GetControlsText('swDeathmatchKeys')).Color := MENU_UNACTIVEITEMS_COLOR;
with TGUIEdit(menu.GetControl('edTimeLimit')) do
Options := Options and (not GAME_OPTION_TEAMDAMAGE);
end;
+ if TGUISwitch(menu.GetControl('swTeamHit')).Enabled then
+ begin
+ Options := Options and not (GAME_OPTION_TEAMHITTRACE or GAME_OPTION_TEAMHITPROJECTILE);
+ case TGUISwitch(menu.GetControl('swTeamHit')).ItemIndex of
+ 1: Options := Options or GAME_OPTION_TEAMHITTRACE;
+ 2: Options := Options or GAME_OPTION_TEAMHITPROJECTILE;
+ 0: Options := Options or GAME_OPTION_TEAMHITTRACE or GAME_OPTION_TEAMHITPROJECTILE;
+ end;
+ end;
+
if TGUISwitch(menu.GetControl('swDeathmatchKeys')).Enabled then
begin
if TGUISwitch(menu.GetControl('swDeathmatchKeys')).ItemIndex = 0 then
else
ItemIndex := 1;
end;
+ with AddSwitch(_lc[I_MENU_TEAM_HIT]) do
+ begin
+ Name := 'swTeamHit';
+ AddItem(_lc[I_MENU_TEAM_HIT_BOTH]);
+ AddItem(_lc[I_MENU_TEAM_HIT_TRACE]);
+ AddItem(_lc[I_MENU_TEAM_HIT_PROJECTILE]);
+ AddItem(_lc[I_MENU_TEAM_HIT_NOTHING]);
+ if (gsGameFlags and (GAME_OPTION_TEAMHITTRACE or GAME_OPTION_TEAMHITPROJECTILE)) = (GAME_OPTION_TEAMHITTRACE or GAME_OPTION_TEAMHITPROJECTILE) then
+ ItemIndex := 0
+ else if LongBool(gsGameFlags and GAME_OPTION_TEAMHITTRACE) then
+ ItemIndex := 1
+ else if LongBool(gsGameFlags and GAME_OPTION_TEAMHITPROJECTILE) then
+ ItemIndex := 2
+ else
+ ItemIndex := 3;
+ end;
with AddSwitch(_lc[I_MENU_DEATHMATCH_KEYS]) do
begin
Name := 'swDeathmatchKeys';
else
ItemIndex := 1;
end;
+ with AddSwitch(_lc[I_MENU_TEAM_HIT]) do
+ begin
+ Name := 'swTeamHit';
+ AddItem(_lc[I_MENU_TEAM_HIT_BOTH]);
+ AddItem(_lc[I_MENU_TEAM_HIT_TRACE]);
+ AddItem(_lc[I_MENU_TEAM_HIT_PROJECTILE]);
+ AddItem(_lc[I_MENU_TEAM_HIT_NOTHING]);
+ if (gsGameFlags and (GAME_OPTION_TEAMHITTRACE or GAME_OPTION_TEAMHITPROJECTILE)) = (GAME_OPTION_TEAMHITTRACE or GAME_OPTION_TEAMHITPROJECTILE) then
+ ItemIndex := 0
+ else if LongBool(gsGameFlags and GAME_OPTION_TEAMHITTRACE) then
+ ItemIndex := 1
+ else if LongBool(gsGameFlags and GAME_OPTION_TEAMHITPROJECTILE) then
+ ItemIndex := 2
+ else
+ ItemIndex := 3;
+ end;
with AddSwitch(_lc[I_MENU_DEATHMATCH_KEYS]) do
begin
Name := 'swDeathmatchKeys';
AddItem(_lc[I_MENU_NO]);
ItemIndex := 1;
end;
+ with AddSwitch(_lc[I_MENU_TEAM_HIT]) do
+ begin
+ Name := 'swTeamHit';
+ AddItem(_lc[I_MENU_TEAM_HIT_BOTH]);
+ AddItem(_lc[I_MENU_TEAM_HIT_TRACE]);
+ AddItem(_lc[I_MENU_TEAM_HIT_PROJECTILE]);
+ AddItem(_lc[I_MENU_TEAM_HIT_NOTHING]);
+ ItemIndex := 0
+ end;
with AddSwitch(_lc[I_MENU_DEATHMATCH_KEYS]) do
begin
Name := 'swDeathmatchKeys';