1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-11-28 08:48:48 +02:00

Use new adventure map state to detect opponent human turn

This commit is contained in:
Dydzio 2023-07-27 17:26:52 +02:00
parent ff1a635e9e
commit 0b5cea0320
3 changed files with 5 additions and 12 deletions

View File

@ -323,7 +323,7 @@ void AdventureMapInterface::onEnemyTurnStarted(PlayerColor playerID, bool isHuma
mapAudio->onEnemyTurnStarted();
widget->getMinimap()->setAIRadar(!isHuman);
widget->getInfoBar()->startEnemyTurn(LOCPLINT->cb->getCurrentPlayer());
setState(EAdventureState::ENEMY_TURN);
setState(isHuman ? EAdventureState::OTHER_HUMAN_PLAYER_TURN : EAdventureState::AI_PLAYER_TURN);
}
void AdventureMapInterface::setState(EAdventureState state)

View File

@ -36,14 +36,6 @@
#include "../../lib/mapping/CMap.h"
#include "../../lib/pathfinder/CGPathNode.h"
bool isCurrentPlayerHuman()
{
PlayerColor currentPlayer = LOCPLINT->cb->getCurrentPlayer();
bool isHuman = LOCPLINT->cb->getStartInfo()->playerInfos.count(currentPlayer)
&& LOCPLINT->cb->getStartInfo()->playerInfos.at(currentPlayer).isControlledByHuman();
return isHuman;
}
AdventureMapShortcuts::AdventureMapShortcuts(AdventureMapInterface & owner)
: owner(owner)
, state(EAdventureState::NOT_INITIALIZED)
@ -471,11 +463,11 @@ bool AdventureMapShortcuts::optionSidePanelActive()
bool AdventureMapShortcuts::optionMapScrollingActive()
{
return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW || (state == EAdventureState::ENEMY_TURN && isCurrentPlayerHuman());
return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW || (state == EAdventureState::OTHER_HUMAN_PLAYER_TURN);
}
bool AdventureMapShortcuts::optionMapViewActive()
{
return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW || state == EAdventureState::CASTING_SPELL
|| (state == EAdventureState::ENEMY_TURN && isCurrentPlayerHuman());
|| (state == EAdventureState::OTHER_HUMAN_PLAYER_TURN);
}

View File

@ -14,7 +14,8 @@ enum class EAdventureState
NOT_INITIALIZED,
HOTSEAT_WAIT,
MAKING_TURN,
ENEMY_TURN,
AI_PLAYER_TURN,
OTHER_HUMAN_PLAYER_TURN,
CASTING_SPELL,
WORLD_VIEW
};