瀏覽代碼

Event message meta string

nordsoft 2 年之前
父節點
當前提交
00c8c2eb82
共有 4 個文件被更改,包括 7 次插入6 次删除
  1. 1 1
      lib/mapping/CMap.cpp
  2. 2 1
      lib/mapping/CMapDefines.h
  3. 2 2
      lib/mapping/MapFormatH3M.cpp
  4. 2 2
      server/CGameHandler.cpp

+ 1 - 1
lib/mapping/CMap.cpp

@@ -59,7 +59,7 @@ bool CMapEvent::earlierThanOrEqual(const CMapEvent & other) const
 void CMapEvent::serializeJson(JsonSerializeFormat & handler)
 {
 	handler.serializeString("name", name);
-	handler.serializeString("message", message);
+	handler.serializeStruct("message", message);
 	handler.serializeInt("players", players);
 	handler.serializeInt("humanAffected", humanAffected);
 	handler.serializeInt("computerAffected", computerAffected);

+ 2 - 1
lib/mapping/CMapDefines.h

@@ -13,6 +13,7 @@
 VCMI_LIB_NAMESPACE_BEGIN
 
 #include "../ResourceSet.h"
+#include "../MetaString.h"
 
 class TerrainType;
 class RiverType;
@@ -33,7 +34,7 @@ public:
 	bool earlierThanOrEqual(const CMapEvent & other) const;
 
 	std::string name;
-	std::string message;
+	MetaString message;
 	TResources resources;
 	ui8 players; // affected players, bit field?
 	ui8 humanAffected;

+ 2 - 2
lib/mapping/MapFormatH3M.cpp

@@ -2155,7 +2155,7 @@ CGObjectInstance * CMapLoaderH3M::readTown(const int3 & position, std::shared_pt
 	{
 		CCastleEvent event;
 		event.name = readBasicString();
-		event.message = readLocalizedString(TextIdentifier("town", position.x, position.y, position.z, "event", eventID, "description"));
+		event.message.appendTextID(readLocalizedString(TextIdentifier("town", position.x, position.y, position.z, "event", eventID, "description")));
 
 		reader->readResourses(event.resources);
 
@@ -2225,7 +2225,7 @@ void CMapLoaderH3M::readEvents()
 	{
 		CMapEvent event;
 		event.name = readBasicString();
-		event.message = readLocalizedString(TextIdentifier("event", eventID, "description"));
+		event.message.appendTextID(readLocalizedString(TextIdentifier("event", eventID, "description")));
 
 		reader->readResourses(event.resources);
 		event.players = reader->readUInt8();

+ 2 - 2
server/CGameHandler.cpp

@@ -3216,7 +3216,7 @@ void CGameHandler::handleTimeEvents()
 				//prepare dialog
 				InfoWindow iw;
 				iw.player = color;
-				iw.text.appendRawString(ev.message);
+				iw.text = ev.message;
 
 				for (int i=0; i<ev.resources.size(); i++)
 				{
@@ -3267,7 +3267,7 @@ void CGameHandler::handleTownEvents(CGTownInstance * town, NewTurn &n)
 			// dialog
 			InfoWindow iw;
 			iw.player = player;
-			iw.text.appendRawString(ev.message);
+			iw.text = ev.message;
 
 			if (ev.resources.nonZero())
 			{