Pārlūkot izejas kodu

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 gadi atpakaļ
vecāks
revīzija
e16552c2c6
3 mainītis faili ar 10 papildinājumiem un 2 dzēšanām
  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" />