瀏覽代碼

Dedug tweaks

AlexVinS 9 年之前
父節點
當前提交
a59f0c23ce
共有 5 個文件被更改,包括 19 次插入16 次删除
  1. 1 1
      lib/CGameState.cpp
  2. 0 2
      lib/mapObjects/CObjectHandler.cpp
  3. 12 8
      lib/mapping/MapFormatJson.cpp
  4. 0 1
      lib/mapping/MapFormatJson.h
  5. 6 4
      test/CMapFormatTest.cpp

+ 1 - 1
lib/CGameState.cpp

@@ -1852,7 +1852,7 @@ void CGameState::initMapObjects()
 	{
 		if(obj)
 		{
-			//logGlobal->traceStream() << boost::format ("Calling Init for object %d, %d") % obj->ID % obj->subID;
+			logGlobal->traceStream() << boost::format ("Calling Init for object %d, %s, %s") % obj->id.getNum() % obj->typeName % obj->subTypeName;
 			obj->initObj();
 		}
 	}

+ 0 - 2
lib/mapObjects/CObjectHandler.cpp

@@ -359,8 +359,6 @@ void CGObjectInstance::readJson(const JsonNode & json)
 
 	appearance.readJson(json["template"], false);
 
-	logGlobal->debugStream() <<"Loading: [" << pos << "] " << id << " " << ID << " " << subID << " " << typeName << " " << subTypeName;
-
 	readJsonOptions(json["options"]);
 }
 

+ 12 - 8
lib/mapping/MapFormatJson.cpp

@@ -602,13 +602,15 @@ void CMapLoaderJson::readTerrain()
 }
 
 CMapLoaderJson::MapObjectLoader::MapObjectLoader(CMapLoaderJson * _owner, const JsonMap::value_type& json):
-	owner(_owner), instance(nullptr),handler(nullptr),id(-1), jsonKey(json.first), configuration(json.second), internalId(extractNumber(jsonKey, '_'))
+	owner(_owner), instance(nullptr),id(-1), jsonKey(json.first), configuration(json.second), internalId(extractNumber(jsonKey, '_'))
 {
 
 }
 
 void CMapLoaderJson::MapObjectLoader::construct()
 {
+	logGlobal->debugStream() <<"Loading: " <<jsonKey;
+
 	//TODO:consider move to ObjectTypeHandler
 	//find type handler
 	std::string typeName = configuration["type"].String(), subTypeName = configuration["subType"].String();
@@ -618,12 +620,7 @@ void CMapLoaderJson::MapObjectLoader::construct()
 		logGlobal->traceStream() << configuration;
 		return;
 	}
-	if(subTypeName.empty())
-	{
-		logGlobal->errorStream() << "Object subType missing";
-		logGlobal->traceStream() << configuration;
-		return;
-	}
+
 
 	//special case for grail
     if(typeName == "grail")
@@ -633,9 +630,16 @@ void CMapLoaderJson::MapObjectLoader::construct()
 		pos.y = configuration["y"].Float();
 		pos.z = configuration["l"].Float();
 		owner->map->grailRadius = configuration["options"]["grailRadius"].Float();
+		return;
+	}
+	else if(subTypeName.empty())
+	{
+		logGlobal->errorStream() << "Object subType missing";
+		logGlobal->traceStream() << configuration;
+		return;
 	}
 
-	handler = VLC->objtypeh->getHandlerFor(typeName, subTypeName);
+	auto handler = VLC->objtypeh->getHandlerFor(typeName, subTypeName);
 
 	instance = handler->create(ObjectTemplate());
 	instance->id = ObjectInstanceID(owner->map->objects.size());

+ 0 - 1
lib/mapping/MapFormatJson.h

@@ -123,7 +123,6 @@ private:
 		MapObjectLoader(CMapLoaderJson * _owner, const JsonMap::value_type & json);
 		CMapLoaderJson * owner;
 		CGObjectInstance * instance;
-		std::shared_ptr<AObjectTypeHandler> handler;
 		ObjectInstanceID id;
 		std::string jsonKey;//full id defined by map creator
 		const JsonNode & configuration;

+ 6 - 4
test/CMapFormatTest.cpp

@@ -35,13 +35,15 @@ public:
 	{
 		CMapGenOptions opt;
 
-		opt.setHeight(CMapHeader::MAP_SIZE_SMALL);
-		opt.setWidth(CMapHeader::MAP_SIZE_SMALL);
+		opt.setHeight(CMapHeader::MAP_SIZE_LARGE);
+		opt.setWidth(CMapHeader::MAP_SIZE_LARGE);
 		opt.setHasTwoLevels(true);
-		opt.setPlayerCount(2);
+		opt.setPlayerCount(4);
 
 		opt.setPlayerTypeForStandardPlayer(PlayerColor(0), EPlayerType::HUMAN);
-		opt.setPlayerTypeForStandardPlayer(PlayerColor(1), EPlayerType::HUMAN);
+		opt.setPlayerTypeForStandardPlayer(PlayerColor(1), EPlayerType::AI);
+		opt.setPlayerTypeForStandardPlayer(PlayerColor(2), EPlayerType::AI);
+		opt.setPlayerTypeForStandardPlayer(PlayerColor(3), EPlayerType::AI);
 
 		CMapGenerator gen;