diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index 94fe8831712df01b6c81f8e557b82f89ce691e2a..affc870bddbdb010228895f4b25277a4af62d0e9 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
if ((not gGameOn) and (gState <> STATE_INTERCUSTOM))
or (not (gGameSettings.GameType in [GT_CUSTOM, GT_SERVER, GT_CLIENT])) then
Exit;
+
+ if (gGameSettings.MaxLives > 0) and (gLMSRespawn = LMS_RESPAWN_NONE) then
+ Exit;
+
if gPlayer1 = nil then
begin
if g_Game_IsClient then
gGameSettings.Options := gGameSettings.Options + GAME_OPTION_BOTVSMONSTER;
gSwitchGameMode := GM_SINGLE;
+ gLMSRespawn := LMS_RESPAWN_NONE;
+ gLMSRespawnTime := 0;
+ gSpectLatchPID1 := 0;
+ gSpectLatchPID2 := 0;
+
g_Game_ExecuteEvent('ongamestart');
// Óñòàíîâêà ðàçìåðîâ îêîí èãðîêîâ:
gAimLine := False;
gShowMap := False;
+ gLMSRespawn := LMS_RESPAWN_NONE;
+ gLMSRespawnTime := 0;
+ gSpectLatchPID1 := 0;
+ gSpectLatchPID2 := 0;
+
g_Game_ExecuteEvent('ongamestart');
// Óñòàíîâêà ðàçìåðîâ îêîí èãðîêîâ:
gAimLine := False;
gShowMap := False;
+ gLMSRespawn := LMS_RESPAWN_NONE;
+ gLMSRespawnTime := 0;
+ gSpectLatchPID1 := 0;
+ gSpectLatchPID2 := 0;
+
g_Game_ExecuteEvent('ongamestart');
// Óñòàíîâêà ðàçìåðîâ îêíà èãðîêà
else if gPlayers[i].Team = TEAM_BLUE then Inc(nb)
end;
- if (n < 2) or ((gGameSettings.GameMode = GM_TDM) and ((nr = 0) or (nb = 0))) then
+ if (n < 1) or ((gGameSettings.GameMode = GM_TDM) and ((nr = 0) or (nb = 0))) then
begin
// wait a second until the fuckers finally decide to join
gLMSRespawn := LMS_RESPAWN_WARMUP;
- gLMSRespawnTime := gTime + 1000;
+ gLMSRespawnTime := gTime + gGameSettings.WarmupTime*1000;
gLMSSoftSpawn := NoMapRestart;
+ if g_Game_IsNet then
+ MH_SEND_GameEvent(NET_EV_LMS_WARMUP, gLMSRespawnTime - gTime);
Exit;
end;
if g_Game_IsServer then
begin
gGameSettings.WarmupTime := gsWarmupTime;
+ // extend warmup if it's already going
+ if gLMSRespawn = LMS_RESPAWN_WARMUP then
+ begin
+ gLMSRespawnTime := gTime + gsWarmupTime * 1000;
+ if g_Game_IsNet then MH_SEND_GameEvent(NET_EV_LMS_WARMUP, gLMSRespawnTime - gTime);
+ end;
if g_Game_IsNet then MH_SEND_GameSettings;
end;
end;