diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas
index ff6757f659ffcb5a4484f2d45588370a6591fcb1..d9a8c6d7a16d39be58481ba48c93467af4a5d7e9 100644 (file)
--- a/src/game/g_menu.pas
+++ b/src/game/g_menu.pas
gsScoreLimit := StrToIntDef(TGUIEdit(GetControl('edScoreLimit')).Text, 0);
gsMaxLives := StrToIntDef(TGUIEdit(GetControl('edMaxLives')).Text, 0);
gsItemRespawnTime := StrToIntDef(TGUIEdit(GetControl('edItemRespawnTime')).Text, 0);
gsScoreLimit := StrToIntDef(TGUIEdit(GetControl('edScoreLimit')).Text, 0);
gsMaxLives := StrToIntDef(TGUIEdit(GetControl('edMaxLives')).Text, 0);
gsItemRespawnTime := StrToIntDef(TGUIEdit(GetControl('edItemRespawnTime')).Text, 0);
+ gsRulezRespawnTime := StrToIntDef(TGUIEdit(GetControl('edRulezRespawnTime')).Text, 0);
+ gsRulezRespawnRandom := StrToIntDef(TGUIEdit(GetControl('edRulezRespawnRandom')).Text, 0);
gsPlayers := TGUISwitch(GetControl('swPlayers')).ItemIndex;
gsMap := Map;
gsGameFlags := 0;
if TGUISwitch(GetControl('swTeamDamage')).ItemIndex = 0 then
gsGameFlags := gsGameFlags or GAME_OPTION_TEAMDAMAGE;
gsPlayers := TGUISwitch(GetControl('swPlayers')).ItemIndex;
gsMap := Map;
gsGameFlags := 0;
if TGUISwitch(GetControl('swTeamDamage')).ItemIndex = 0 then
gsGameFlags := gsGameFlags or GAME_OPTION_TEAMDAMAGE;
+ if TGUISwitch(GetControl('swTeamAbsorbDamage')).ItemIndex = 0 then
+ gsGameFlags := gsGameFlags or GAME_OPTION_TEAMABSORBDAMAGE;
if TGUISwitch(GetControl('swDeathmatchKeys')).ItemIndex = 0 then
gsGameFlags := gsGameFlags or GAME_OPTION_DMKEYS;
if TGUISwitch(GetControl('swEnableExits')).ItemIndex = 0 then
if TGUISwitch(GetControl('swDeathmatchKeys')).ItemIndex = 0 then
gsGameFlags := gsGameFlags or GAME_OPTION_DMKEYS;
if TGUISwitch(GetControl('swEnableExits')).ItemIndex = 0 then
gsGameFlags := gsGameFlags or GAME_OPTION_WEAPONSTAY;
if TGUISwitch(GetControl('swMonsters')).ItemIndex = 0 then
gsGameFlags := gsGameFlags or GAME_OPTION_MONSTERS;
gsGameFlags := gsGameFlags or GAME_OPTION_WEAPONSTAY;
if TGUISwitch(GetControl('swMonsters')).ItemIndex = 0 then
gsGameFlags := gsGameFlags or GAME_OPTION_MONSTERS;
+ if TGUISwitch(GetControl('swRulezRandom')).ItemIndex = 0 then
+ gsGameFlags := gsGameFlags or GAME_OPTION_RULEZRANDOM;
case TGUISwitch(GetControl('swTeamHit')).ItemIndex of
1: gsGameFlags := gsGameFlags or GAME_OPTION_TEAMHITTRACE;
case TGUISwitch(GetControl('swTeamHit')).ItemIndex of
1: gsGameFlags := gsGameFlags or GAME_OPTION_TEAMHITTRACE;
// TODO: get this crap out of here
gGameSettings.ItemRespawnTime := gsItemRespawnTime;
// TODO: get this crap out of here
gGameSettings.ItemRespawnTime := gsItemRespawnTime;
+ gGameSettings.RulezRespawnTime := gsRulezRespawnTime;
+ gGameSettings.RulezRespawnRandom := gsRulezRespawnRandom;
gGameSettings.WarmupTime := gsWarmupTime;
gGameSettings.SpawnInvul := gsSpawnInvul;
end;
gGameSettings.WarmupTime := gsWarmupTime;
gGameSettings.SpawnInvul := gsSpawnInvul;
end;
if gsItemRespawnTime > 0 then
Text := IntToStr(gsItemRespawnTime);
end;
if gsItemRespawnTime > 0 then
Text := IntToStr(gsItemRespawnTime);
end;
+ AddSpace(); // Rulez Respawn block
+ with AddEdit(_lc[I_MENU_RULEZ_RESPAWN_TIME]) do
+ begin
+ Name := 'edRulezRespawnTime';
+ OnlyDigits := True;
+ Width := 4;
+ MaxLength := 5;
+ if gsRulezRespawnTime > 0 then
+ Text := IntToStr(gsRulezRespawnTime);
+ end;
+ with AddEdit(_lc[I_MENU_RULEZ_RESPAWN_RANDOM]) do
+ begin
+ Name := 'edRulezRespawnRandom';
+ OnlyDigits := True;
+ Width := 4;
+ MaxLength := 5;
+ if gsRulezRespawnRandom > 0 then
+ Text := IntToStr(gsRulezRespawnRandom);
+ end;
+ with AddSwitch(_lc[I_MENU_ENABLE_RULEZ_RANDOM]) do
+ begin
+ Name := 'swRulezRandom';
+ AddItem(_lc[I_MENU_YES]);
+ AddItem(_lc[I_MENU_NO]);
+ if LongBool(gsGameFlags and GAME_OPTION_RULEZRANDOM) then
+ ItemIndex := 0
+ else
+ ItemIndex := 1;
+ end;
+ AddSpace();
with AddSwitch(_lc[I_MENU_PLAYERS]) do
begin
Name := 'swPlayers';
with AddSwitch(_lc[I_MENU_PLAYERS]) do
begin
Name := 'swPlayers';
else
ItemIndex := 3;
end;
else
ItemIndex := 3;
end;
+ with AddSwitch(_lc[I_MENU_ENABLE_TEAM_DAMAGE_ABSOBR]) do
+ begin
+ Name := 'swTeamAbsorbDamage';
+ AddItem(_lc[I_MENU_YES]);
+ AddItem(_lc[I_MENU_NO]);
+ if LongBool(gsGameFlags and GAME_OPTION_TEAMABSORBDAMAGE) then
+ ItemIndex := 0
+ else
+ ItemIndex := 1;
+ end;
with AddSwitch(_lc[I_MENU_DEATHMATCH_KEYS]) do
begin
Name := 'swDeathmatchKeys';
with AddSwitch(_lc[I_MENU_DEATHMATCH_KEYS]) do
begin
Name := 'swDeathmatchKeys';
if gsItemRespawnTime > 0 then
Text := IntToStr(gsItemRespawnTime);
end;
if gsItemRespawnTime > 0 then
Text := IntToStr(gsItemRespawnTime);
end;
+ AddSpace(); // Rulez Respawn block
+ with AddEdit(_lc[I_MENU_RULEZ_RESPAWN_TIME]) do
+ begin
+ Name := 'edRulezRespawnTime';
+ OnlyDigits := True;
+ Width := 4;
+ MaxLength := 5;
+ if gsRulezRespawnTime > 0 then
+ Text := IntToStr(gsRulezRespawnTime);
+ end;
+ with AddEdit(_lc[I_MENU_RULEZ_RESPAWN_RANDOM]) do
+ begin
+ Name := 'edRulezRespawnRandom';
+ OnlyDigits := True;
+ Width := 4;
+ MaxLength := 5;
+ if gsRulezRespawnRandom > 0 then
+ Text := IntToStr(gsRulezRespawnRandom);
+ end;
+ with AddSwitch(_lc[I_MENU_ENABLE_RULEZ_RANDOM]) do
+ begin
+ Name := 'swRulezRandom';
+ AddItem(_lc[I_MENU_YES]);
+ AddItem(_lc[I_MENU_NO]);
+ if LongBool(gsGameFlags and GAME_OPTION_RULEZRANDOM) then
+ ItemIndex := 0
+ else
+ ItemIndex := 1;
+ end;
+ AddSpace();
with AddSwitch(_lc[I_MENU_PLAYERS]) do
begin
Name := 'swPlayers';
with AddSwitch(_lc[I_MENU_PLAYERS]) do
begin
Name := 'swPlayers';
else
ItemIndex := 3;
end;
else
ItemIndex := 3;
end;
+ with AddSwitch(_lc[I_MENU_ENABLE_TEAM_DAMAGE_ABSOBR]) do
+ begin
+ Name := 'swTeamAbsorbDamage';
+ AddItem(_lc[I_MENU_YES]);
+ AddItem(_lc[I_MENU_NO]);
+ if LongBool(gsGameFlags and GAME_OPTION_TEAMABSORBDAMAGE) then
+ ItemIndex := 0
+ else
+ ItemIndex := 1;
+ end;
with AddSwitch(_lc[I_MENU_DEATHMATCH_KEYS]) do
begin
Name := 'swDeathmatchKeys';
with AddSwitch(_lc[I_MENU_DEATHMATCH_KEYS]) do
begin
Name := 'swDeathmatchKeys';