瀏覽代碼

Merge branch 'PlayerStateFix' into develop

This is additional fix for old saves that were corrupt after PR #202 is fixed. Should probably make them all work properly.

Background: many years ago CBonusSystemNode didn't have proper serialization or at least PlayerState had some nissues with it.
Then bonus system was refactored many times, but that hack was forgotten or everyone just decide to not touch it.

Now it's end up this code wasn't needed probably for long time so we can finally remove it.
Arseniy Shestakov 9 年之前
父節點
當前提交
e16552c2c6
共有 3 個文件被更改,包括 10 次插入2 次删除
  1. 8 1
      lib/CPlayerState.h
  2. 1 1
      lib/Connection.h
  3. 1 0
      lib/VCMI_lib.cbp

+ 8 - 1
lib/CPlayerState.h

@@ -43,7 +43,14 @@ public:
 	{
 		h & color & human & team & resources & status;
 		h & heroes & towns & availableHeroes & dwellings & quests & visitedObjects;
-		h & getBonusList(); //FIXME FIXME FIXME
+
+		if(version < 760)
+		{
+			//was: h & getBonusList();
+			BonusList junk;
+			h & junk;
+		}
+
 		h & status & daysWithoutCastle;
 		h & enteredLosingCheatCode & enteredWinningCheatCode;
 		h & static_cast<CBonusSystemNode&>(*this);

+ 1 - 1
lib/Connection.h

@@ -27,7 +27,7 @@
 #include "mapping/CCampaignHandler.h" //for CCampaignState
 #include "rmg/CMapGenerator.h" // for CMapGenOptions
 
-const ui32 version = 759;
+const ui32 version = 760;
 const ui32 minSupportedVersion = 753;
 
 class CISer;

+ 1 - 0
lib/VCMI_lib.cbp

@@ -162,6 +162,7 @@
 		<Unit filename="CObstacleInstance.h" />
 		<Unit filename="CPathfinder.cpp" />
 		<Unit filename="CPathfinder.h" />
+		<Unit filename="CPlayerState.h" />
 		<Unit filename="CRandomGenerator.cpp" />
 		<Unit filename="CRandomGenerator.h" />
 		<Unit filename="CScriptingModule.h" />