Browse Source

Do not hide minimap on human player turn

Ivan Savenko 2 năm trước cách đây
mục cha
commit
4e80356bea

+ 4 - 1
client/CPlayerInterface.cpp

@@ -183,7 +183,10 @@ void CPlayerInterface::playerStartsTurn(PlayerColor player)
 	if (player != playerID && LOCPLINT == this)
 	{
 		waitWhileDialog();
-		adventureInt->onEnemyTurnStarted(player);
+
+		bool isHuman = cb->getStartInfo()->playerInfos.count(player) && cb->getStartInfo()->playerInfos.at(player).isControlledByHuman();
+
+		adventureInt->onEnemyTurnStarted(player, isHuman);
 	}
 }
 

+ 2 - 2
client/adventureMap/AdventureMapInterface.cpp

@@ -309,13 +309,13 @@ void AdventureMapInterface::onHotseatWaitStarted(PlayerColor playerID)
 	setState(EAdventureState::HOTSEAT_WAIT);
 }
 
-void AdventureMapInterface::onEnemyTurnStarted(PlayerColor playerID)
+void AdventureMapInterface::onEnemyTurnStarted(PlayerColor playerID, bool isHuman)
 {
 	if(settings["session"]["spectate"].Bool())
 		return;
 
 	mapAudio->onEnemyTurnStarted();
-	widget->getMinimap()->setAIRadar(true);
+	widget->getMinimap()->setAIRadar(!isHuman);
 	widget->getInfoBar()->startEnemyTurn(LOCPLINT->cb->getCurrentPlayer());
 	setState(EAdventureState::ENEMY_TURN);
 }

+ 1 - 1
client/adventureMap/AdventureMapInterface.h

@@ -115,7 +115,7 @@ public:
 	void onHotseatWaitStarted(PlayerColor playerID);
 
 	/// Called by PlayerInterface when AI or remote human player starts his turn
-	void onEnemyTurnStarted(PlayerColor playerID);
+	void onEnemyTurnStarted(PlayerColor playerID, bool isHuman);
 
 	/// Called by PlayerInterface when local human player starts his turn
 	void onPlayerTurnStarted(PlayerColor playerID);

+ 1 - 1
client/adventureMap/CMinimap.cpp

@@ -231,7 +231,7 @@ void CMinimap::setAIRadar(bool on)
 	redraw();
 }
 
-void CMinimap::updateTiles(std::unordered_set<int3> positions)
+void CMinimap::updateTiles(const std::unordered_set<int3> & positions)
 {
 	if(minimap)
 	{

+ 1 - 1
client/adventureMap/CMinimap.h

@@ -68,6 +68,6 @@ public:
 
 	void showAll(Canvas & to) override;
 
-	void updateTiles(std::unordered_set<int3> positions);
+	void updateTiles(const std::unordered_set<int3> & positions);
 };