mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-17 00:07:41 +02:00
Select random object template instead of first
This commit is contained in:
@ -354,7 +354,7 @@ bool ObjectManager::createRequiredObjects()
|
||||
for(const auto & objInfo : requiredObjects)
|
||||
{
|
||||
rmg::Object rmgObject(*objInfo.obj);
|
||||
rmgObject.setTemplate(zone.getTerrainType());
|
||||
rmgObject.setTemplate(zone.getTerrainType(), zone.getRand());
|
||||
bool guarded = addGuard(rmgObject, objInfo.guardStrength, (objInfo.obj->ID == Obj::MONOLITH_TWO_WAY));
|
||||
|
||||
Zone::Lock lock(zone.areaMutex);
|
||||
@ -394,7 +394,7 @@ bool ObjectManager::createRequiredObjects()
|
||||
auto possibleArea = zone.areaPossible();
|
||||
|
||||
rmg::Object rmgObject(*objInfo.obj);
|
||||
rmgObject.setTemplate(zone.getTerrainType());
|
||||
rmgObject.setTemplate(zone.getTerrainType(), zone.getRand());
|
||||
bool guarded = addGuard(rmgObject, objInfo.guardStrength, (objInfo.obj->ID == Obj::MONOLITH_TWO_WAY));
|
||||
auto path = placeAndConnectObject(zone.areaPossible(), rmgObject,
|
||||
[this, &rmgObject](const int3 & tile)
|
||||
@ -480,7 +480,7 @@ void ObjectManager::placeObject(rmg::Object & object, bool guarded, bool updateD
|
||||
if (!monster->object().appearance)
|
||||
{
|
||||
//Needed to determine visitable offset
|
||||
monster->setAnyTemplate();
|
||||
monster->setAnyTemplate(zone.getRand());
|
||||
}
|
||||
object.getPosition();
|
||||
auto visitableOffset = monster->object().getVisitableOffset();
|
||||
@ -492,7 +492,7 @@ void ObjectManager::placeObject(rmg::Object & object, bool guarded, bool updateD
|
||||
int3 parentOffset = monster->getPosition(true) - monster->getPosition(false);
|
||||
monster->setPosition(fixedPos - parentOffset);
|
||||
}
|
||||
object.finalize(map);
|
||||
object.finalize(map, zone.getRand());
|
||||
|
||||
Zone::Lock lock(zone.areaMutex);
|
||||
zone.areaPossible().subtract(object.getArea());
|
||||
@ -689,7 +689,7 @@ bool ObjectManager::addGuard(rmg::Object & object, si32 strength, bool zoneGuard
|
||||
});
|
||||
|
||||
auto & instance = object.addInstance(*guard);
|
||||
instance.setAnyTemplate(); //terrain is irrelevant for monsters, but monsters need some template now
|
||||
instance.setAnyTemplate(zone.getRand()); //terrain is irrelevant for monsters, but monsters need some template now
|
||||
|
||||
//Fix HoTA monsters with offset template
|
||||
auto visitableOffset = instance.object().getVisitableOffset();
|
||||
|
Reference in New Issue
Block a user