mirror of
https://github.com/vcmi/vcmi.git
synced 2025-01-26 03:52:01 +02:00
Fix HoTA guard once again
(cherry picked from commit 138a7c8024573f46962ad0f6e8e03ba53fa56076)
This commit is contained in:
parent
7b06c41929
commit
545f047cae
@ -344,6 +344,16 @@ void Object::Instance::finalize(RmgMap & map)
|
||||
setTemplate(terrainType->getId());
|
||||
}
|
||||
}
|
||||
if (dObject.ID == Obj::MONSTER)
|
||||
{
|
||||
//Make up for extra offset in HotA creature templates
|
||||
auto visitableOffset = dObject.getVisitableOffset();
|
||||
auto fixedPos = getPosition(true) + visitableOffset;
|
||||
vstd::abetween(fixedPos.x, visitableOffset.x, map.width() - 1);
|
||||
vstd::abetween(fixedPos.y, visitableOffset.y, map.height() - 1);
|
||||
int3 parentPos = getPosition(true) - getPosition(false);
|
||||
setPosition(fixedPos - parentPos);
|
||||
}
|
||||
|
||||
if (dObject.isVisitable() && !map.isOnMap(dObject.visitablePos()))
|
||||
throw rmgException(boost::to_string(boost::format("Visitable tile %s of object %d at %s is outside the map") % dObject.visitablePos().toString() % dObject.id % dObject.pos.toString()));
|
||||
|
@ -606,8 +606,6 @@ bool ObjectManager::addGuard(rmg::Object & object, si32 strength, bool zoneGuard
|
||||
auto & instance = object.addInstance(*guard);
|
||||
instance.setPosition(guardPos - object.getPosition());
|
||||
instance.setAnyTemplate(); //terrain is irrelevant for monsters, but monsters need some template now
|
||||
//Make up for extra offset in HotA creature templates
|
||||
instance.setPosition(instance.getPosition() + instance.object().getVisitableOffset());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user