Parcourir la source

Register templates for new objects from mods

Tomasz Zieliński il y a 1 an
Parent
commit
bf2c9237b2
1 fichiers modifiés avec 6 ajouts et 4 suppressions
  1. 6 4
      lib/mapObjectConstructors/CObjectClassesHandler.cpp

+ 6 - 4
lib/mapObjectConstructors/CObjectClassesHandler.cpp

@@ -108,10 +108,6 @@ std::vector<JsonNode> CObjectClassesHandler::loadLegacyData()
 	auto totalNumber = static_cast<size_t>(parser.readNumber()); // first line contains number of objects to read and nothing else
 	parser.endLine();
 
-	//std::map<TerrainId, std::map<MapObjectID, std::map<MapObjectSubID, ObstacleSet>>> obstacleSets;
-
-	// TODO: Create map defName -> tmpl
-
 	for (size_t i = 0; i < totalNumber; i++)
 	{
 		auto tmpl = std::make_shared<ObjectTemplate>();
@@ -224,6 +220,12 @@ TObjectTypeHandler CObjectClassesHandler::loadSubObjectFromJson(const std::strin
 	createdObject->subtype = index;
 	createdObject->init(entry);
 
+	for (auto & templ : createdObject->getTemplates())
+	{
+		// Register templates for new objects
+		VLC->biomeHandler->addTemplate(scope, templ->stringID, templ);
+	}
+
 	auto range = legacyTemplates.equal_range(std::make_pair(obj->id, index));
 	for (auto & templ : boost::make_iterator_range(range.first, range.second))
 	{