1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-13 19:54:17 +02:00

Merge pull request #2419 from dydzio0614/multiplayer-adventure-map-responsiveness

Multiplayer adventure map responsiveness
This commit is contained in:
Ivan Savenko
2023-07-28 13:39:02 +03:00
committed by GitHub
4 changed files with 12 additions and 4 deletions

View File

@@ -192,7 +192,7 @@ void AdventureMapInterface::handleMapScrollingUpdate(uint32_t timePassed)
Point scrollDelta = scrollDirection * scrollDistance; Point scrollDelta = scrollDirection * scrollDistance;
bool cursorInScrollArea = scrollDelta != Point(0,0); bool cursorInScrollArea = scrollDelta != Point(0,0);
bool scrollingActive = cursorInScrollArea && isActive() && shortcuts->optionSidePanelActive() && !scrollingWasBlocked; bool scrollingActive = cursorInScrollArea && shortcuts->optionMapScrollingActive() && !scrollingWasBlocked;
bool scrollingBlocked = GH.isKeyboardCtrlDown() || !settings["adventure"]["borderScroll"].Bool(); bool scrollingBlocked = GH.isKeyboardCtrlDown() || !settings["adventure"]["borderScroll"].Bool();
if (!scrollingWasActive && scrollingBlocked) if (!scrollingWasActive && scrollingBlocked)
@@ -323,7 +323,7 @@ void AdventureMapInterface::onEnemyTurnStarted(PlayerColor playerID, bool isHuma
mapAudio->onEnemyTurnStarted(); mapAudio->onEnemyTurnStarted();
widget->getMinimap()->setAIRadar(!isHuman); widget->getMinimap()->setAIRadar(!isHuman);
widget->getInfoBar()->startEnemyTurn(LOCPLINT->cb->getCurrentPlayer()); 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) void AdventureMapInterface::setState(EAdventureState state)

View File

@@ -461,7 +461,13 @@ bool AdventureMapShortcuts::optionSidePanelActive()
return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW; return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW;
} }
bool AdventureMapShortcuts::optionMapScrollingActive()
{
return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW || (state == EAdventureState::OTHER_HUMAN_PLAYER_TURN);
}
bool AdventureMapShortcuts::optionMapViewActive() bool AdventureMapShortcuts::optionMapViewActive()
{ {
return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW || state == EAdventureState::CASTING_SPELL; return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW || state == EAdventureState::CASTING_SPELL
|| (state == EAdventureState::OTHER_HUMAN_PLAYER_TURN);
} }

View File

@@ -81,6 +81,7 @@ public:
bool optionInMapView(); bool optionInMapView();
bool optionInWorldView(); bool optionInWorldView();
bool optionSidePanelActive(); bool optionSidePanelActive();
bool optionMapScrollingActive();
bool optionMapViewActive(); bool optionMapViewActive();
void setState(EAdventureState newState); void setState(EAdventureState newState);

View File

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