mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-24 22:14:36 +02:00
Added GUARDED state to distinguish from blocked visitable
This commit is contained in:
parent
7a6540ec2f
commit
ef29c47408
@ -37,6 +37,7 @@ enum class EPathAccessibility : ui8
|
|||||||
NOT_SET,
|
NOT_SET,
|
||||||
ACCESSIBLE, //tile can be entered and passed
|
ACCESSIBLE, //tile can be entered and passed
|
||||||
VISITABLE, //tile can be entered as the last tile in path
|
VISITABLE, //tile can be entered as the last tile in path
|
||||||
|
GUARDED, //visitable, but in zone of control of nearby monster
|
||||||
BLOCKVIS, //visitable from neighboring tile but not passable
|
BLOCKVIS, //visitable from neighboring tile but not passable
|
||||||
FLYABLE, //can only be accessed in air layer
|
FLYABLE, //can only be accessed in air layer
|
||||||
BLOCKED //tile can be neither entered nor visited
|
BLOCKED //tile can be neither entered nor visited
|
||||||
|
@ -58,7 +58,7 @@ namespace PathfinderUtil
|
|||||||
else if(gs->guardingCreaturePosition(pos).valid())
|
else if(gs->guardingCreaturePosition(pos).valid())
|
||||||
{
|
{
|
||||||
// Monster close by; blocked visit for battle
|
// Monster close by; blocked visit for battle
|
||||||
return EPathAccessibility::BLOCKVIS;
|
return EPathAccessibility::GUARDED;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -377,7 +377,7 @@ void LayerTransitionRule::process(
|
|||||||
|
|
||||||
case EPathfindingLayer::SAIL:
|
case EPathfindingLayer::SAIL:
|
||||||
//tile must be accessible -> exception: unblocked blockvis tiles -> clear but guarded by nearby monster coast
|
//tile must be accessible -> exception: unblocked blockvis tiles -> clear but guarded by nearby monster coast
|
||||||
if((destination.node->accessible != EPathAccessibility::ACCESSIBLE && (destination.node->accessible != EPathAccessibility::BLOCKVIS || destination.tile->blocked))
|
if((destination.node->accessible != EPathAccessibility::ACCESSIBLE && destination.node->accessible != EPathAccessibility::GUARDED)
|
||||||
|| destination.tile->visitable) //TODO: passableness problem -> town says it's passable (thus accessible) but we obviously can't disembark onto town gate
|
|| destination.tile->visitable) //TODO: passableness problem -> town says it's passable (thus accessible) but we obviously can't disembark onto town gate
|
||||||
{
|
{
|
||||||
destination.blocked = true;
|
destination.blocked = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user