mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-24 22:14:36 +02:00
Unblock basic adventure map actions (scrolling / right-click) in multiplayer
This commit is contained in:
parent
7b17c5ae18
commit
ff1a635e9e
@ -192,7 +192,7 @@ void AdventureMapInterface::handleMapScrollingUpdate(uint32_t timePassed)
|
||||
Point scrollDelta = scrollDirection * scrollDistance;
|
||||
|
||||
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();
|
||||
|
||||
if (!scrollingWasActive && scrollingBlocked)
|
||||
|
@ -36,6 +36,14 @@
|
||||
#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)
|
||||
@ -461,7 +469,13 @@ bool AdventureMapShortcuts::optionSidePanelActive()
|
||||
return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW;
|
||||
}
|
||||
|
||||
bool AdventureMapShortcuts::optionMapScrollingActive()
|
||||
{
|
||||
return state == EAdventureState::MAKING_TURN || state == EAdventureState::WORLD_VIEW || (state == EAdventureState::ENEMY_TURN && isCurrentPlayerHuman());
|
||||
}
|
||||
|
||||
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::ENEMY_TURN && isCurrentPlayerHuman());
|
||||
}
|
||||
|
@ -81,6 +81,7 @@ public:
|
||||
bool optionInMapView();
|
||||
bool optionInWorldView();
|
||||
bool optionSidePanelActive();
|
||||
bool optionMapScrollingActive();
|
||||
bool optionMapViewActive();
|
||||
|
||||
void setState(EAdventureState newState);
|
||||
|
Loading…
Reference in New Issue
Block a user