Browse Source

Final stabilization changes

Ivan Savenko 2 years ago
parent
commit
4e4dae854f
4 changed files with 26 additions and 42 deletions
  1. 3 4
      lib/GameConstants.h
  2. 18 22
      lib/Terrain.cpp
  3. 5 13
      lib/Terrain.h
  4. 0 3
      lib/mapObjects/ObjectTemplate.cpp

+ 3 - 4
lib/GameConstants.h

@@ -198,13 +198,12 @@ public:
 		num += change;
 		num += change;
 	}
 	}
 
 
-	typedef BaseForID<Derived, NumericType> __SelfType;
 	bool operator == (const BaseForID & b) const { return num == b.num; }
 	bool operator == (const BaseForID & b) const { return num == b.num; }
-	bool operator <= (const BaseForID & b) const { return num >= b.num; }
-	bool operator >= (const BaseForID & b) const { return num <= b.num; }
+	bool operator <= (const BaseForID & b) const { return num <= b.num; }
+	bool operator >= (const BaseForID & b) const { return num >= b.num; }
 	bool operator != (const BaseForID & b) const { return num != b.num; }
 	bool operator != (const BaseForID & b) const { return num != b.num; }
 	bool operator <  (const BaseForID & b) const { return num <  b.num; }
 	bool operator <  (const BaseForID & b) const { return num <  b.num; }
-	bool operator >  (const BaseForID & b) const { return num > b.num; }
+	bool operator >  (const BaseForID & b) const { return num >  b.num; }
 
 
 	BaseForID & operator++() { ++num; return *this; }
 	BaseForID & operator++() { ++num; return *this; }
 };
 };

+ 18 - 22
lib/Terrain.cpp

@@ -38,6 +38,7 @@ TerrainType * TerrainTypeHandler::loadFromJson( const std::string & scope, const
 	TerrainType * info = new TerrainType;
 	TerrainType * info = new TerrainType;
 
 
 	info->id = TerrainId(index);
 	info->id = TerrainId(index);
+	info->name = identifier;
 
 
 	info->moveCost = static_cast<int>(json["moveCost"].Integer());
 	info->moveCost = static_cast<int>(json["moveCost"].Integer());
 	info->musicFilename = json["music"].String();
 	info->musicFilename = json["music"].String();
@@ -145,6 +146,11 @@ std::vector<bool> TerrainTypeHandler::getDefaultAllowed() const
 	return {};
 	return {};
 }
 }
 
 
+RiverTypeHandler::RiverTypeHandler()
+{
+	objects.push_back(new RiverType);
+}
+
 RiverType * RiverTypeHandler::loadFromJson(
 RiverType * RiverTypeHandler::loadFromJson(
 	const std::string & scope,
 	const std::string & scope,
 	const JsonNode & json,
 	const JsonNode & json,
@@ -153,6 +159,7 @@ RiverType * RiverTypeHandler::loadFromJson(
 {
 {
 	RiverType * info = new RiverType;
 	RiverType * info = new RiverType;
 
 
+	info->id         = RiverId(index);
 	info->fileName   = json["animation"].String();
 	info->fileName   = json["animation"].String();
 	info->code       = json["code"].String();
 	info->code       = json["code"].String();
 	info->deltaName  = json["delta"].String();
 	info->deltaName  = json["delta"].String();
@@ -177,6 +184,11 @@ std::vector<bool> RiverTypeHandler::getDefaultAllowed() const
 	return {};
 	return {};
 }
 }
 
 
+RoadTypeHandler::RoadTypeHandler()
+{
+	objects.push_back(new RoadType);
+}
+
 RoadType * RoadTypeHandler::loadFromJson(
 RoadType * RoadTypeHandler::loadFromJson(
 	const std::string & scope,
 	const std::string & scope,
 	const JsonNode & json,
 	const JsonNode & json,
@@ -185,6 +197,7 @@ RoadType * RoadTypeHandler::loadFromJson(
 {
 {
 	RoadType * info = new RoadType;
 	RoadType * info = new RoadType;
 
 
+	info->id           = RoadId(index);
 	info->fileName     = json["animation"].String();
 	info->fileName     = json["animation"].String();
 	info->code         = json["code"].String();
 	info->code         = json["code"].String();
 	info->movementCost = json["moveCost"].Integer();
 	info->movementCost = json["moveCost"].Integer();
@@ -209,26 +222,6 @@ std::vector<bool> RoadTypeHandler::getDefaultAllowed() const
 	return {};
 	return {};
 }
 }
 
 
-TerrainType::operator std::string() const
-{
-	return name;
-}
-
-bool TerrainType::operator==(const TerrainType& other)
-{
-	return id == other.id;
-}
-
-bool TerrainType::operator!=(const TerrainType& other)
-{
-	return id != other.id;
-}
-
-bool TerrainType::operator<(const TerrainType& other)
-{
-	return id < other.id;
-}
-	
 bool TerrainType::isLand() const
 bool TerrainType::isLand() const
 {
 {
 	return !isWater();
 	return !isWater();
@@ -272,9 +265,12 @@ bool TerrainType::isTransitionRequired() const
 TerrainType::TerrainType()
 TerrainType::TerrainType()
 {}
 {}
 
 
-RiverType::RiverType()
+RiverType::RiverType():
+	id(River::NO_RIVER)
 {}
 {}
 
 
-RoadType::RoadType()
+RoadType::RoadType():
+	id(Road::NO_ROAD),
+	movementCost(GameConstants::BASE_MOVEMENT_COST)
 {}
 {}
 VCMI_LIB_NAMESPACE_END
 VCMI_LIB_NAMESPACE_END

+ 5 - 13
lib/Terrain.h

@@ -59,10 +59,6 @@ public:
 	
 	
 	TerrainType();
 	TerrainType();
 	
 	
-	bool operator==(const TerrainType & other);
-	bool operator!=(const TerrainType & other);
-	bool operator<(const TerrainType & other);
-	
 	bool isLand() const;
 	bool isLand() const;
 	bool isWater() const;
 	bool isWater() const;
 	bool isPassable() const;
 	bool isPassable() const;
@@ -71,9 +67,7 @@ public:
 	bool isTransitionRequired() const;
 	bool isTransitionRequired() const;
 	bool isSurfaceCartographerCompatible() const;
 	bool isSurfaceCartographerCompatible() const;
 	bool isUndergroundCartographerCompatible() const;
 	bool isUndergroundCartographerCompatible() const;
-		
-	operator std::string() const;
-	
+
 	template <typename Handler> void serialize(Handler &h, const int version)
 	template <typename Handler> void serialize(Handler &h, const int version)
 	{
 	{
 		h & battleFields;
 		h & battleFields;
@@ -177,8 +171,6 @@ public:
 	virtual std::vector<JsonNode> loadLegacyData(size_t dataSize) override;
 	virtual std::vector<JsonNode> loadLegacyData(size_t dataSize) override;
 	virtual std::vector<bool> getDefaultAllowed() const override;
 	virtual std::vector<bool> getDefaultAllowed() const override;
 
 
-//	TerrainType * getInfoByCode(const std::string & identifier);
-
 	template <typename Handler> void serialize(Handler & h, const int version)
 	template <typename Handler> void serialize(Handler & h, const int version)
 	{
 	{
 		h & objects;
 		h & objects;
@@ -194,12 +186,12 @@ public:
 		const std::string & identifier,
 		const std::string & identifier,
 		size_t index) override;
 		size_t index) override;
 
 
+	RiverTypeHandler();
+
 	virtual const std::vector<std::string> & getTypeNames() const override;
 	virtual const std::vector<std::string> & getTypeNames() const override;
 	virtual std::vector<JsonNode> loadLegacyData(size_t dataSize) override;
 	virtual std::vector<JsonNode> loadLegacyData(size_t dataSize) override;
 	virtual std::vector<bool> getDefaultAllowed() const override;
 	virtual std::vector<bool> getDefaultAllowed() const override;
 
 
-//	RiverType * getInfoByCode(const std::string & identifier);
-
 	template <typename Handler> void serialize(Handler & h, const int version)
 	template <typename Handler> void serialize(Handler & h, const int version)
 	{
 	{
 		h & objects;
 		h & objects;
@@ -215,12 +207,12 @@ public:
 		const std::string & identifier,
 		const std::string & identifier,
 		size_t index) override;
 		size_t index) override;
 
 
+	RoadTypeHandler();
+
 	virtual const std::vector<std::string> & getTypeNames() const override;
 	virtual const std::vector<std::string> & getTypeNames() const override;
 	virtual std::vector<JsonNode> loadLegacyData(size_t dataSize) override;
 	virtual std::vector<JsonNode> loadLegacyData(size_t dataSize) override;
 	virtual std::vector<bool> getDefaultAllowed() const override;
 	virtual std::vector<bool> getDefaultAllowed() const override;
 
 
-//	RoadType * getInfoByCode(const std::string & identifier);
-
 	template <typename Handler> void serialize(Handler & h, const int version)
 	template <typename Handler> void serialize(Handler & h, const int version)
 	{
 	{
 		h & objects;
 		h & objects;

+ 0 - 3
lib/mapObjects/ObjectTemplate.cpp

@@ -285,9 +285,6 @@ void ObjectTemplate::readJson(const JsonNode &node, const bool withTerrain)
 		anyTerrain = true;
 		anyTerrain = true;
 	}
 	}
 
 
-	if(withTerrain && allowedTerrains.empty())
-		logGlobal->warn("Loaded template %s without allowed terrains!", animationFile);
-
 	auto charToTile = [&](const char & ch) -> ui8
 	auto charToTile = [&](const char & ch) -> ui8
 	{
 	{
 		switch (ch)
 		switch (ch)