diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index 303d036f53c62ee319e56b1d862929065dce0614..2d80b3aaa32ea394316d5b13bae7ca799bcde2f2 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
WarmupTime: Word;
SpawnInvul: Word;
ItemRespawnTime: Word;
WarmupTime: Word;
SpawnInvul: Word;
ItemRespawnTime: Word;
- RulezTimeMultiplier: Word;
+ ItemRespawnRandom: Word;
+ RulezRespawnTime: Word;
+ RulezRespawnRandom: Word;
MaxLives: Byte;
Options: LongWord;
WAD: String;
MaxLives: Byte;
Options: LongWord;
WAD: String;
GAME_OPTION_ALLOWDROPFLAG = 2048;
GAME_OPTION_THROWFLAG = 4096;
GAME_OPTION_RULEZRANDOM = 8192;
GAME_OPTION_ALLOWDROPFLAG = 2048;
GAME_OPTION_THROWFLAG = 4096;
GAME_OPTION_RULEZRANDOM = 8192;
+ GAME_OPTION_ITEMALLRANDOM = 16384;
+ GAME_OPTION_ITEMHELPRANDOM = 32768;
+ GAME_OPTION_ITEMAMMORANDOM = 65536;
+ GAME_OPTION_ITEMWEAPONRANDOM = 131072;
STATE_NONE = 0;
STATE_MENU = 1;
STATE_NONE = 0;
STATE_MENU = 1;
gGameSettings.Options := gGameSettings.Options + GAME_OPTION_TEAMHITPROJECTILE;
gGameSettings.Options := gGameSettings.Options + GAME_OPTION_TEAMHITTRACE;
gGameSettings.Options := gGameSettings.Options + GAME_OPTION_RULEZRANDOM;
gGameSettings.Options := gGameSettings.Options + GAME_OPTION_TEAMHITPROJECTILE;
gGameSettings.Options := gGameSettings.Options + GAME_OPTION_TEAMHITTRACE;
gGameSettings.Options := gGameSettings.Options + GAME_OPTION_RULEZRANDOM;
+ gGameSettings.Options := gGameSettings.Options + GAME_OPTION_ITEMALLRANDOM;
+ gGameSettings.Options := gGameSettings.Options + GAME_OPTION_ITEMHELPRANDOM;
+ gGameSettings.Options := gGameSettings.Options + GAME_OPTION_ITEMAMMORANDOM;
+ gGameSettings.Options := gGameSettings.Options + GAME_OPTION_ITEMWEAPONRANDOM;
gSwitchGameMode := GM_SINGLE;
gLMSRespawn := LMS_RESPAWN_NONE;
gSwitchGameMode := GM_SINGLE;
gLMSRespawn := LMS_RESPAWN_NONE;
begin
ParseGameFlag(GAME_OPTION_TEAMHITPROJECTILE, I_MSG_FRIENDLY_PROJECT_TRACE_OFF, I_MSG_FRIENDLY_PROJECT_TRACE_ON);
end
begin
ParseGameFlag(GAME_OPTION_TEAMHITPROJECTILE, I_MSG_FRIENDLY_PROJECT_TRACE_OFF, I_MSG_FRIENDLY_PROJECT_TRACE_ON);
end
- else if cmd = 'g_rulez_randomize_respawn' then
+ else if cmd = 'g_powerup_randomize_respawn' then
begin
begin
- ParseGameFlag(GAME_OPTION_RULEZRANDOM, I_MSG_RULEZ_RANDOM_ON, I_MSG_RULEZ_RANDOM_OFF);
+ ParseGameFlag(GAME_OPTION_RULEZRANDOM, I_MSG_RULEZ_RANDOM_OFF, I_MSG_RULEZ_RANDOM_ON, False);
end
else if cmd = 'g_weaponstay' then
begin
end
else if cmd = 'g_weaponstay' then
begin
g_Console_Add(Format('%s %d', [cmd, Integer(gsItemRespawnTime)]));
if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
end
g_Console_Add(Format('%s %d', [cmd, Integer(gsItemRespawnTime)]));
if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
end
- else if cmd = 'g_rulez_time_multiplier' then
+ else if cmd = 'g_item_time_random' then
begin
if Length(P) > 1 then
begin
begin
if Length(P) > 1 then
begin
- gsRulezTimeMultiplier := nclamp(StrToIntDef(P[1], gsRulezTimeMultiplier), 0, $FFFF);
+ gsItemRespawnRandom := nclamp(StrToIntDef(P[1], gsItemRespawnRandom), 0, $FFFF);
if g_Game_IsServer then
begin
if g_Game_IsServer then
begin
- gGameSettings.RulezTimeMultiplier := gsRulezTimeMultiplier;
+ gGameSettings.ItemRespawnRandom := gsItemRespawnRandom;
if g_Game_IsNet then MH_SEND_GameSettings;
end;
end;
if g_Game_IsNet then MH_SEND_GameSettings;
end;
end;
- g_Console_Add(Format('%s %d', [cmd, Integer(gsRulezTimeMultiplier)]));
+ g_Console_Add(Format('%s %d', [cmd, Integer(gsItemRespawnRandom)]));
+ if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
+ end
+ else if cmd = 'g_powerup_respawn_time' then
+ begin
+ if Length(P) > 1 then
+ begin
+ gsRulezRespawnTime := nclamp(StrToIntDef(P[1], gsRulezRespawnTime), 0, $FFFF);
+ if g_Game_IsServer then
+ begin
+ gGameSettings.RulezRespawnTime := gsRulezRespawnTime;
+ if g_Game_IsNet then MH_SEND_GameSettings;
+ end;
+ end;
+
+ g_Console_Add(Format('%s %d', [cmd, Integer(gsRulezRespawnTime)]));
+ if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
+ end
+ else if cmd = 'g_powerup_time_random' then
+ begin
+ if Length(P) > 1 then
+ begin
+ gsRulezRespawnRandom := nclamp(StrToIntDef(P[1], gsRulezRespawnRandom), 0, $FFFF);
+ if g_Game_IsServer then
+ begin
+ gGameSettings.RulezRespawnRandom := gsRulezRespawnRandom;
+ if g_Game_IsNet then MH_SEND_GameSettings;
+ end;
+ end;
+
+ g_Console_Add(Format('%s %d', [cmd, Integer(gsRulezRespawnRandom)]));
if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
end
else if cmd = 'sv_intertime' then
if g_Game_IsServer then g_Console_Add(_lc[I_MSG_ONMAPCHANGE]);
end
else if cmd = 'sv_intertime' then
if cmd = 'greenarmor' then begin plr.GiveItem(ITEM_ARMOR_GREEN); g_Console_Add('player got a security armor'); continue; end;
if cmd = 'bluearmor' then begin plr.GiveItem(ITEM_ARMOR_BLUE); g_Console_Add('player got a combat armor'); continue; end;
if cmd = 'greenarmor' then begin plr.GiveItem(ITEM_ARMOR_GREEN); g_Console_Add('player got a security armor'); continue; end;
if cmd = 'bluearmor' then begin plr.GiveItem(ITEM_ARMOR_BLUE); g_Console_Add('player got a combat armor'); continue; end;
- if (cmd = 'megasphere') or (cmd = 'mega') then begin plr.GiveItem(ITEM_SPHERE_BLUE); g_Console_Add('player got a megasphere'); continue; end;
- if (cmd = 'soulsphere') or (cmd = 'soul')then begin plr.GiveItem(ITEM_SPHERE_WHITE); g_Console_Add('player got a soul sphere'); continue; end;
+ if (cmd = 'soulsphere') or (cmd = 'soul') then begin plr.GiveItem(ITEM_SPHERE_BLUE); g_Console_Add('player got a soul sphere'); continue; end;
+ if (cmd = 'megasphere') or (cmd = 'mega') then begin plr.GiveItem(ITEM_SPHERE_WHITE); g_Console_Add('player got a megasphere'); continue; end;
if (cmd = 'invul') or (cmd = 'invulnerability') then begin plr.GiveItem(ITEM_INVUL); g_Console_Add('player got invulnerability'); continue; end;
if (cmd = 'invis') or (cmd = 'invisibility') then begin plr.GiveItem(ITEM_INVIS); g_Console_Add('player got invisibility'); continue; end;
if (cmd = 'invul') or (cmd = 'invulnerability') then begin plr.GiveItem(ITEM_INVUL); g_Console_Add('player got invulnerability'); continue; end;
if (cmd = 'invis') or (cmd = 'invisibility') then begin plr.GiveItem(ITEM_INVIS); g_Console_Add('player got invisibility'); continue; end;