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;
|
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)
|
||||||
|
@ -36,6 +36,14 @@
|
|||||||
#include "../../lib/mapping/CMap.h"
|
#include "../../lib/mapping/CMap.h"
|
||||||
#include "../../lib/pathfinder/CGPathNode.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)
|
AdventureMapShortcuts::AdventureMapShortcuts(AdventureMapInterface & owner)
|
||||||
: owner(owner)
|
: owner(owner)
|
||||||
, state(EAdventureState::NOT_INITIALIZED)
|
, state(EAdventureState::NOT_INITIALIZED)
|
||||||
@ -461,7 +469,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::ENEMY_TURN && isCurrentPlayerHuman());
|
||||||
|
}
|
||||||
|
|
||||||
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::ENEMY_TURN && isCurrentPlayerHuman());
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user