Browse Source

Fix RMG bug with incorrect town placement (#779)

* Fix RMG bug with incorrect town placement
* Readability tweak
Nordsoft91 3 years ago
parent
commit
e028875fe3
2 changed files with 2 additions and 1 deletions
  1. 1 1
      lib/registerTypes/RegisterTypes.h
  2. 1 0
      lib/rmg/TownPlacer.cpp

+ 1 - 1
lib/registerTypes/RegisterTypes.h

@@ -142,11 +142,11 @@ void registerTypesMapObjectTypes(Serializer &s)
 	s.template registerType<IUpdater, GrowsWithLevelUpdater>();
 	s.template registerType<IUpdater, TimesHeroLevelUpdater>();
 	s.template registerType<IUpdater, TimesStackLevelUpdater>();
+	s.template registerType<IUpdater, OwnerUpdater>();
 
 	s.template registerType<ILimiter, AnyOfLimiter>();
 	s.template registerType<ILimiter, NoneOfLimiter>();
 	s.template registerType<ILimiter, OppositeSideLimiter>();
-	s.template registerType<IUpdater, OwnerUpdater>();
 	//new types (other than netpacks) must register here
 	//order of type registration is critical for loading old savegames
 }

+ 1 - 0
lib/rmg/TownPlacer.cpp

@@ -138,6 +138,7 @@ int3 TownPlacer::placeMainTown(ObjectManager & manager, CGTownInstance & town)
 {
 	//towns are big objects and should be centered around visitable position
 	rmg::Object rmgObject(town);
+	rmgObject.setTemplate(zone.getTerrainType());
 	auto position = manager.findPlaceForObject(zone.areaPossible(), rmgObject, [this](const int3 & t)
 	{
 		float distance = zone.getPos().dist2dSQ(t);