DEADSOFTWARE

game: fix spectator mode switch
[d2df-sdl.git] / src / game / g_game.pas
index fc06d8925d2ab0b6cdea80280d237b865b4682bc..3105360e1e8a675a3f9b59f30e2842522b283f38 100644 (file)
@@ -2259,8 +2259,16 @@ begin
 
     (* spectator state check from render *)
 
-    if (gPlayer1 = nil) and (gPlayer2 = nil) and (gSpectMode = SPECT_NONE) then
-      gSpectMode := SPECT_STATS;
+    if (gPlayer1 = nil) and (gPlayer2 = nil) then
+    begin
+      (* no local players -> automatically enable to spectator mode *)
+      if gSpectMode = SPECT_NONE then gSpectMode := SPECT_STATS;
+    end
+    else
+    begin
+      (* at least one local player -> automatically disable spectator mode *)
+      gSpectMode := SPECT_NONE;
+    end;
 
     if IsActivePlayer(g_Player_Get(gSpectPID1)) = false then
       gSpectPID1 := GetActivePlayerID_Next();