mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-06 09:09:40 +02:00
Try to not route roads through passable objects
This commit is contained in:
@@ -597,7 +597,7 @@ void ObjectManager::placeObject(rmg::Object & object, bool guarded, bool updateD
|
||||
{
|
||||
objectsVisitableArea.add(instance->getVisitablePosition());
|
||||
objects.push_back(&instance->object());
|
||||
if(auto * m = zone.getModificator<RoadPlacer>())
|
||||
if(auto * rp = zone.getModificator<RoadPlacer>())
|
||||
{
|
||||
if (instance->object().blockVisit && !instance->object().removable)
|
||||
{
|
||||
@@ -607,7 +607,7 @@ void ObjectManager::placeObject(rmg::Object & object, bool guarded, bool updateD
|
||||
else if(instance->object().appearance->isVisitableFromTop())
|
||||
{
|
||||
//Passable objects
|
||||
m->areaForRoads().add(instance->getVisitablePosition());
|
||||
rp->areaForRoads().add(instance->getVisitablePosition());
|
||||
}
|
||||
else if(!instance->object().appearance->isVisitableFromTop())
|
||||
{
|
||||
@@ -621,8 +621,10 @@ void ObjectManager::placeObject(rmg::Object & object, bool guarded, bool updateD
|
||||
(!instance->object().blockingAt(tile + int3(0, 1, 0)) &&
|
||||
instance->object().blockingAt(tile));
|
||||
});
|
||||
m->areaIsolated().unite(borderAbove);
|
||||
rp->areaIsolated().unite(borderAbove);
|
||||
}
|
||||
|
||||
rp->areaVisitable().add(instance->getVisitablePosition());
|
||||
}
|
||||
|
||||
switch (instance->object().ID.toEnum())
|
||||
|
||||
Reference in New Issue
Block a user