فهرست منبع

Fixed possible crash at the game start (when victory conditions are checked before currentPlayer is set).

Michał W. Urbańczyk 12 سال پیش
والد
کامیت
e5312887d1
1فایلهای تغییر یافته به همراه4 افزوده شده و 2 حذف شده
  1. 4 2
      server/CGameHandler.cpp

+ 4 - 2
server/CGameHandler.cpp

@@ -5193,9 +5193,11 @@ void CGameHandler::checkVictoryLossConditionsForPlayer(PlayerColor player)
 			checkVictoryLossConditions(playerColors);
 		}
 
-		//If player making turn has lost his turn must be over as well
-		if(gs->getPlayer(gs->currentPlayer)->status != EPlayerStatus::INGAME)
+		auto playerInfo = gs->getPlayer(gs->currentPlayer, false);  
+		// If we are called before the actual game start, there might be no current player
+		if(playerInfo && playerInfo->status != EPlayerStatus::INGAME)
 		{
+			// If player making turn has lost his turn must be over as well
 			states.setFlag(gs->currentPlayer, &PlayerStatus::makingTurn, false);
 		}
 	}