mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	Refactoring of serialization versioning handling
- Removed 'version' field from serialize() method - Handler classes - Binary(De)Serializer now have 'version' field - Serialization versioning now uses named enum Save compatibility with 1.4.X saves should be intact
This commit is contained in:
		| @@ -14,11 +14,11 @@ | ||||
| #include "../../lib/CStack.h" | ||||
| #include "../../lib/battle/BattleAction.h" | ||||
|  | ||||
| void CEmptyAI::saveGame(BinarySerializer & h, const int version) | ||||
| void CEmptyAI::saveGame(BinarySerializer & h) | ||||
| { | ||||
| } | ||||
|  | ||||
| void CEmptyAI::loadGame(BinaryDeserializer & h, const int version) | ||||
| void CEmptyAI::loadGame(BinaryDeserializer & h) | ||||
| { | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -19,8 +19,8 @@ class CEmptyAI : public CGlobalAI | ||||
| 	std::shared_ptr<CCallback> cb; | ||||
|  | ||||
| public: | ||||
| 	virtual void saveGame(BinarySerializer & h, const int version) override; | ||||
| 	virtual void loadGame(BinaryDeserializer & h, const int version) override; | ||||
| 	virtual void saveGame(BinarySerializer & h) override; | ||||
| 	virtual void loadGame(BinaryDeserializer & h) override; | ||||
|  | ||||
| 	void initGameInterface(std::shared_ptr<Environment> ENV, std::shared_ptr<CCallback> CB) override; | ||||
| 	void yourTurn(QueryID queryID) override; | ||||
|   | ||||
| @@ -747,27 +747,25 @@ void AIGateway::showMapObjectSelectDialog(QueryID askID, const Component & icon, | ||||
| 	requestActionASAP([=](){ answerQuery(askID, selectedObject.getNum()); }); | ||||
| } | ||||
|  | ||||
| void AIGateway::saveGame(BinarySerializer & h, const int version) | ||||
| void AIGateway::saveGame(BinarySerializer & h) | ||||
| { | ||||
| 	LOG_TRACE_PARAMS(logAi, "version '%i'", version); | ||||
| 	NET_EVENT_HANDLER; | ||||
| 	nullkiller->memory->removeInvisibleObjects(myCb.get()); | ||||
|  | ||||
| 	CAdventureAI::saveGame(h, version); | ||||
| 	serializeInternal(h, version); | ||||
| 	CAdventureAI::saveGame(h); | ||||
| 	serializeInternal(h); | ||||
| } | ||||
|  | ||||
| void AIGateway::loadGame(BinaryDeserializer & h, const int version) | ||||
| void AIGateway::loadGame(BinaryDeserializer & h) | ||||
| { | ||||
| 	LOG_TRACE_PARAMS(logAi, "version '%i'", version); | ||||
| 	//NET_EVENT_HANDLER; | ||||
|  | ||||
| 	#if 0 | ||||
| 	//disabled due to issue 2890 | ||||
| 	registerGoals(h); | ||||
| 	#endif // 0 | ||||
| 	CAdventureAI::loadGame(h, version); | ||||
| 	serializeInternal(h, version); | ||||
| 	CAdventureAI::loadGame(h); | ||||
| 	serializeInternal(h); | ||||
| } | ||||
|  | ||||
| bool AIGateway::makePossibleUpgrades(const CArmedInstance * obj) | ||||
|   | ||||
| @@ -62,7 +62,7 @@ public: | ||||
| 	void heroVisit(const CGObjectInstance * obj, bool started); | ||||
|  | ||||
|  | ||||
| 	template<typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template<typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battle; | ||||
| 		h & remainingQueries; | ||||
| @@ -119,8 +119,8 @@ public: | ||||
| 	void showGarrisonDialog(const CArmedInstance * up, const CGHeroInstance * down, bool removableUnits, QueryID queryID) override; //all stacks operations between these objects become allowed, interface has to call onEnd when done | ||||
| 	void showTeleportDialog(const CGHeroInstance * hero, TeleportChannelID channel, TTeleportExitsList exits, bool impassable, QueryID askID) override; | ||||
| 	void showMapObjectSelectDialog(QueryID askID, const Component & icon, const MetaString & title, const MetaString & description, const std::vector<ObjectInstanceID> & objects) override; | ||||
| 	void saveGame(BinarySerializer & h, const int version) override; //saving | ||||
| 	void loadGame(BinaryDeserializer & h, const int version) override; //loading | ||||
| 	void saveGame(BinarySerializer & h) override; //saving | ||||
| 	void loadGame(BinaryDeserializer & h) override; //loading | ||||
| 	void finish() override; | ||||
|  | ||||
| 	void availableCreaturesChanged(const CGDwelling * town) override; | ||||
| @@ -203,7 +203,7 @@ public: | ||||
| 	//special function that can be called ONLY from game events handling thread and will send request ASAP | ||||
| 	void requestActionASAP(std::function<void()> whatToDo); | ||||
|  | ||||
| 	template<typename Handler> void serializeInternal(Handler & h, const int version) | ||||
| 	template<typename Handler> void serializeInternal(Handler & h) | ||||
| 	{ | ||||
| 		h & nullkiller->memory->knownTeleportChannels; | ||||
| 		h & nullkiller->memory->knownSubterraneanGates; | ||||
|   | ||||
| @@ -115,7 +115,7 @@ public: | ||||
| 	bool validAndSet() const; | ||||
|  | ||||
|  | ||||
| 	template<typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template<typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & this->h; | ||||
| 		h & hid; | ||||
| @@ -147,7 +147,7 @@ struct ObjectIdRef | ||||
| 	bool operator<(const ObjectIdRef & rhs) const; | ||||
|  | ||||
|  | ||||
| 	template<typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template<typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & id; | ||||
| 	} | ||||
|   | ||||
| @@ -37,7 +37,7 @@ namespace Goals | ||||
| 		{ | ||||
| 			return new T(static_cast<T const &>(*this)); //casting enforces template instantiation | ||||
| 		} | ||||
| 		template<typename Handler> void serialize(Handler & h, const int version) | ||||
| 		template<typename Handler> void serialize(Handler & h) | ||||
| 		{ | ||||
| 			h & static_cast<AbstractGoal &>(*this); | ||||
| 			//h & goalType & isElementar & isAbstract & priority; | ||||
|   | ||||
| @@ -70,7 +70,7 @@ public: | ||||
| 	bool validAndSet() const; | ||||
|  | ||||
|  | ||||
| 	template<typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template<typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & this->h; | ||||
| 		h & hid; | ||||
| @@ -102,7 +102,7 @@ struct ObjectIdRef | ||||
| 	bool operator<(const ObjectIdRef & rhs) const; | ||||
|  | ||||
|  | ||||
| 	template<typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template<typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & id; | ||||
| 	} | ||||
|   | ||||
| @@ -176,7 +176,7 @@ namespace Goals | ||||
| 			return !(*this == g); | ||||
| 		} | ||||
|  | ||||
| 		template<typename Handler> void serialize(Handler & h, const int version) | ||||
| 		template<typename Handler> void serialize(Handler & h) | ||||
| 		{ | ||||
| 			h & goalType; | ||||
| 			h & isElementar; | ||||
|   | ||||
| @@ -69,7 +69,7 @@ namespace Goals | ||||
|  | ||||
| 			return ptr; | ||||
| 		} | ||||
| 		template<typename Handler> void serialize(Handler & h, const int version) | ||||
| 		template<typename Handler> void serialize(Handler & h) | ||||
| 		{ | ||||
| 			h & static_cast<AbstractGoal &>(*this); | ||||
| 			//h & goalType & isElementar & isAbstract & priority; | ||||
|   | ||||
| @@ -28,7 +28,7 @@ struct DLL_EXPORT ResourceObjective | ||||
| 	Goals::TSubgoal goal; //what for (build, gather army etc...) | ||||
|  | ||||
| 	 //TODO: register? | ||||
| 	template<typename Handler> void serializeInternal(Handler & h, const int version) | ||||
| 	template<typename Handler> void serializeInternal(Handler & h) | ||||
| 	{ | ||||
| 		h & resources; | ||||
| 		//h & goal; //FIXME: goal serialization is broken | ||||
| @@ -105,7 +105,7 @@ private: | ||||
| 	void dumpToLog() const; | ||||
|  | ||||
| 	//TODO: register? | ||||
| 	template<typename Handler> void serializeInternal(Handler & h, const int version) | ||||
| 	template<typename Handler> void serializeInternal(Handler & h) | ||||
| 	{ | ||||
| 		h & saving; | ||||
| 		h & queue; | ||||
|   | ||||
| @@ -746,9 +746,8 @@ void VCAI::showMapObjectSelectDialog(QueryID askID, const Component & icon, cons | ||||
| 	requestActionASAP([=](){ answerQuery(askID, selectedObject.getNum()); }); | ||||
| } | ||||
|  | ||||
| void VCAI::saveGame(BinarySerializer & h, const int version) | ||||
| void VCAI::saveGame(BinarySerializer & h) | ||||
| { | ||||
| 	LOG_TRACE_PARAMS(logAi, "version '%i'", version); | ||||
| 	NET_EVENT_HANDLER; | ||||
| 	validateVisitableObjs(); | ||||
|  | ||||
| @@ -756,21 +755,20 @@ void VCAI::saveGame(BinarySerializer & h, const int version) | ||||
| 	//disabled due to issue 2890 | ||||
| 	registerGoals(h); | ||||
| 	#endif // 0 | ||||
| 	CAdventureAI::saveGame(h, version); | ||||
| 	serializeInternal(h, version); | ||||
| 	CAdventureAI::saveGame(h); | ||||
| 	serializeInternal(h); | ||||
| } | ||||
|  | ||||
| void VCAI::loadGame(BinaryDeserializer & h, const int version) | ||||
| void VCAI::loadGame(BinaryDeserializer & h) | ||||
| { | ||||
| 	LOG_TRACE_PARAMS(logAi, "version '%i'", version); | ||||
| 	//NET_EVENT_HANDLER; | ||||
|  | ||||
| 	#if 0 | ||||
| 	//disabled due to issue 2890 | ||||
| 	registerGoals(h); | ||||
| 	#endif // 0 | ||||
| 	CAdventureAI::loadGame(h, version); | ||||
| 	serializeInternal(h, version); | ||||
| 	CAdventureAI::loadGame(h); | ||||
| 	serializeInternal(h); | ||||
| } | ||||
|  | ||||
| void makePossibleUpgrades(const CArmedInstance * obj) | ||||
|   | ||||
| @@ -68,7 +68,7 @@ public: | ||||
| 	void heroVisit(const CGObjectInstance * obj, bool started); | ||||
|  | ||||
|  | ||||
| 	template<typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template<typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battle; | ||||
| 		h & remainingQueries; | ||||
| @@ -152,8 +152,8 @@ public: | ||||
| 	void showGarrisonDialog(const CArmedInstance * up, const CGHeroInstance * down, bool removableUnits, QueryID queryID) override; //all stacks operations between these objects become allowed, interface has to call onEnd when done | ||||
| 	void showTeleportDialog(const CGHeroInstance * hero, TeleportChannelID channel, TTeleportExitsList exits, bool impassable, QueryID askID) override; | ||||
| 	void showMapObjectSelectDialog(QueryID askID, const Component & icon, const MetaString & title, const MetaString & description, const std::vector<ObjectInstanceID> & objects) override; | ||||
| 	void saveGame(BinarySerializer & h, const int version) override; //saving | ||||
| 	void loadGame(BinaryDeserializer & h, const int version) override; //loading | ||||
| 	void saveGame(BinarySerializer & h) override; //saving | ||||
| 	void loadGame(BinaryDeserializer & h) override; //loading | ||||
| 	void finish() override; | ||||
|  | ||||
| 	void availableCreaturesChanged(const CGDwelling * town) override; | ||||
| @@ -301,7 +301,7 @@ public: | ||||
| 	} | ||||
| 	#endif | ||||
|  | ||||
| 	template<typename Handler> void serializeInternal(Handler & h, const int version) | ||||
| 	template<typename Handler> void serializeInternal(Handler & h) | ||||
| 	{ | ||||
| 		h & knownTeleportChannels; | ||||
| 		h & knownSubterraneanGates; | ||||
| @@ -341,7 +341,7 @@ public: | ||||
| 							//we have to explicitly ignore invalid goal class type id | ||||
| 							h & typeId; | ||||
| 							Goals::AbstractGoal ignored2; | ||||
| 							ignored2.serialize(h, version); | ||||
| 							ignored2.serialize(h); | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
|   | ||||
| @@ -1150,16 +1150,16 @@ void CPlayerInterface::heroBonusChanged( const CGHeroInstance *hero, const Bonus | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void CPlayerInterface::saveGame( BinarySerializer & h, const int version ) | ||||
| void CPlayerInterface::saveGame( BinarySerializer & h ) | ||||
| { | ||||
| 	EVENT_HANDLER_CALLED_BY_CLIENT; | ||||
| 	localState->serialize(h, version); | ||||
| 	localState->serialize(h); | ||||
| } | ||||
|  | ||||
| void CPlayerInterface::loadGame( BinaryDeserializer & h, const int version ) | ||||
| void CPlayerInterface::loadGame( BinaryDeserializer & h ) | ||||
| { | ||||
| 	EVENT_HANDLER_CALLED_BY_CLIENT; | ||||
| 	localState->serialize(h, version); | ||||
| 	localState->serialize(h); | ||||
| 	firstCall = -1; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -145,8 +145,8 @@ protected: // Call-ins from server, should not be called directly, but only via | ||||
| 	void gameOver(PlayerColor player, const EVictoryLossCheckResult & victoryLossCheckResult) override; | ||||
| 	void playerStartsTurn(PlayerColor player) override; //called before yourTurn on active itnerface | ||||
| 	void playerEndsTurn(PlayerColor player) override; | ||||
| 	void saveGame(BinarySerializer & h, const int version) override; //saving | ||||
| 	void loadGame(BinaryDeserializer & h, const int version) override; //loading | ||||
| 	void saveGame(BinarySerializer & h) override; //saving | ||||
| 	void loadGame(BinaryDeserializer & h) override; //loading | ||||
| 	void showWorldViewEx(const std::vector<ObjectPosInfo> & objectPositions, bool showTerrain) override; | ||||
|  | ||||
| 	//for battles | ||||
|   | ||||
| @@ -225,7 +225,7 @@ void CClient::loadGame(CGameState * initializedGameState) | ||||
| 			throw std::runtime_error("Cannot open client part of " + CSH->si->mapname); | ||||
|  | ||||
| 		std::unique_ptr<CLoadFile> loader (new CLoadFile(clientSaveName)); | ||||
| 		serialize(loader->serializer, loader->serializer.fileVersion); | ||||
| 		serialize(loader->serializer, loader->serializer.version); | ||||
|  | ||||
| 		logNetwork->info("Client data loaded."); | ||||
| 	} | ||||
| @@ -238,7 +238,7 @@ void CClient::loadGame(CGameState * initializedGameState) | ||||
| 	initPlayerInterfaces(); | ||||
| } | ||||
|  | ||||
| void CClient::serialize(BinarySerializer & h, const int version) | ||||
| void CClient::serialize(BinarySerializer & h) | ||||
| { | ||||
| 	assert(h.saving); | ||||
| 	ui8 players = static_cast<ui8>(playerint.size()); | ||||
| @@ -251,20 +251,17 @@ void CClient::serialize(BinarySerializer & h, const int version) | ||||
| 		h & i->first; | ||||
| 		h & i->second->dllName; | ||||
| 		h & i->second->human; | ||||
| 		i->second->saveGame(h, version); | ||||
| 		i->second->saveGame(h); | ||||
| 	} | ||||
|  | ||||
| #if SCRIPTING_ENABLED | ||||
| 	if(version >= 800) | ||||
| 	{ | ||||
| 		JsonNode scriptsState; | ||||
| 		clientScripts->serializeState(h.saving, scriptsState); | ||||
| 		h & scriptsState; | ||||
| 	} | ||||
| 	JsonNode scriptsState; | ||||
| 	clientScripts->serializeState(h.saving, scriptsState); | ||||
| 	h & scriptsState; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void CClient::serialize(BinaryDeserializer & h, const int version) | ||||
| void CClient::serialize(BinaryDeserializer & h) | ||||
| { | ||||
| 	assert(!h.saving); | ||||
| 	ui8 players = 0; | ||||
| @@ -320,7 +317,7 @@ void CClient::serialize(BinaryDeserializer & h, const int version) | ||||
|  | ||||
| 		// loadGame needs to be called after initGameInterface to load paths correctly | ||||
| 		// initGameInterface is called in installNewPlayerInterface | ||||
| 		nInt->loadGame(h, version); | ||||
| 		nInt->loadGame(h); | ||||
|  | ||||
| 		if (shouldResetInterface) | ||||
| 		{ | ||||
|   | ||||
| @@ -131,8 +131,8 @@ public: | ||||
|  | ||||
| 	void newGame(CGameState * gameState); | ||||
| 	void loadGame(CGameState * gameState); | ||||
| 	void serialize(BinarySerializer & h, const int version); | ||||
| 	void serialize(BinaryDeserializer & h, const int version); | ||||
| 	void serialize(BinarySerializer & h); | ||||
| 	void serialize(BinaryDeserializer & h); | ||||
|  | ||||
| 	void save(const std::string & fname); | ||||
| 	void endGame(); | ||||
|   | ||||
| @@ -47,7 +47,7 @@ public: | ||||
| 		int spellbookLastTabAdvmap = 4; | ||||
|  | ||||
| 		template<typename Handler> | ||||
| 		void serialize(Handler & h, const int version) | ||||
| 		void serialize(Handler & h) | ||||
| 		{ | ||||
| 			h & spellbookLastPageBattle; | ||||
| 			h & spellbookLastPageAdvmap; | ||||
| @@ -94,7 +94,7 @@ public: | ||||
| 	void setSelection(const CArmedInstance *sel); | ||||
|  | ||||
| 	template<typename Handler> | ||||
| 	void serialize(Handler & h, int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		//WARNING: this code is broken and not used. See CClient::loadGame | ||||
| 		std::map<const CGHeroInstance *, int3> pathsMap; //hero -> dest | ||||
|   | ||||
| @@ -161,7 +161,7 @@ CMapOverviewWidget::CMapOverviewWidget(CMapOverview& parent): | ||||
| 		std::unique_ptr<CMap> campaignMap = nullptr; | ||||
| 		if(p.tabType != ESelectionScreen::newGame && config["variables"]["mapPreviewForSaves"].Bool()) | ||||
| 		{ | ||||
| 			CLoadFile lf(*CResourceHandler::get()->getResourceName(ResourcePath(p.resource.getName(), EResType::SAVEGAME)), MINIMAL_SERIALIZATION_VERSION); | ||||
| 			CLoadFile lf(*CResourceHandler::get()->getResourceName(ResourcePath(p.resource.getName(), EResType::SAVEGAME)), ESerializationVersion::MINIMAL); | ||||
| 			lf.checkMagicBytes(SAVEGAME_MAGIC); | ||||
|  | ||||
| 			auto mapHeader = std::make_unique<CMapHeader>(); | ||||
|   | ||||
| @@ -264,13 +264,13 @@ macro(add_main_lib TARGET_NAME LIBRARY_TYPE) | ||||
| 		${MAIN_LIB_DIR}/VCMI_Lib.cpp | ||||
| 	) | ||||
|  | ||||
| 	# Version.cpp is a generated file | ||||
|     # Version.cpp is a generated file | ||||
| 	if(ENABLE_GITVERSION) | ||||
| 		list(APPEND lib_SRCS ${CMAKE_BINARY_DIR}/Version.cpp) | ||||
| 		set_source_files_properties(${CMAKE_BINARY_DIR}/Version.cpp | ||||
| 			PROPERTIES GENERATED TRUE | ||||
| 		) | ||||
| 	endif() | ||||
|     endif() | ||||
|  | ||||
| 	set(lib_HEADERS | ||||
| 		${MAIN_LIB_DIR}/../include/vstd/CLoggerBase.h | ||||
| @@ -557,6 +557,7 @@ macro(add_main_lib TARGET_NAME LIBRARY_TYPE) | ||||
| 		${MAIN_LIB_DIR}/serializer/JsonSerializer.h | ||||
| 		${MAIN_LIB_DIR}/serializer/JsonUpdater.h | ||||
| 		${MAIN_LIB_DIR}/serializer/Cast.h | ||||
| 		${MAIN_LIB_DIR}/serializer/SerializerVersion.h | ||||
|  | ||||
| 		${MAIN_LIB_DIR}/spells/AbilityCaster.h | ||||
| 		${MAIN_LIB_DIR}/spells/AdventureSpellMechanics.h | ||||
| @@ -618,6 +619,7 @@ macro(add_main_lib TARGET_NAME LIBRARY_TYPE) | ||||
| 		${MAIN_LIB_DIR}/CStopWatch.h | ||||
| 		${MAIN_LIB_DIR}/CThreadHelper.h | ||||
| 		${MAIN_LIB_DIR}/CTownHandler.h | ||||
| 		${MAIN_LIB_DIR}/ExtraOptionsInfo.h | ||||
| 		${MAIN_LIB_DIR}/FunctionList.h | ||||
| 		${MAIN_LIB_DIR}/GameCallbackHolder.h | ||||
| 		${MAIN_LIB_DIR}/GameConstants.h | ||||
| @@ -653,7 +655,7 @@ macro(add_main_lib TARGET_NAME LIBRARY_TYPE) | ||||
| 		${MAIN_LIB_DIR}/VCMI_Lib.h | ||||
| 	) | ||||
|  | ||||
| 	assign_source_group(${lib_SRCS} ${lib_HEADERS}) | ||||
|     assign_source_group(${lib_SRCS} ${lib_HEADERS}) | ||||
|  | ||||
| 	add_library(${TARGET_NAME} ${LIBRARY_TYPE} ${lib_SRCS} ${lib_HEADERS}) | ||||
| 	set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_DEFINITIONS "VCMI_DLL=1") | ||||
| @@ -661,7 +663,7 @@ macro(add_main_lib TARGET_NAME LIBRARY_TYPE) | ||||
| 		minizip::minizip ZLIB::ZLIB | ||||
| 		${SYSTEM_LIBS} Boost::boost Boost::thread Boost::filesystem Boost::program_options Boost::locale Boost::date_time | ||||
| 	) | ||||
| 	if(APPLE_IOS) | ||||
|     if(APPLE_IOS) | ||||
| 		target_link_libraries(${TARGET_NAME} PUBLIC iOS_utils) | ||||
| 	endif() | ||||
|  | ||||
| @@ -672,13 +674,13 @@ macro(add_main_lib TARGET_NAME LIBRARY_TYPE) | ||||
| 		PUBLIC ${MAIN_LIB_DIR} | ||||
| 	) | ||||
|  | ||||
| 	if(WIN32) | ||||
|     if(WIN32) | ||||
| 		set_target_properties(${TARGET_NAME} | ||||
| 			PROPERTIES | ||||
| 				OUTPUT_NAME "VCMI_lib" | ||||
| 			    OUTPUT_NAME "VCMI_lib" | ||||
| 				PROJECT_LABEL "VCMI_lib" | ||||
| 		) | ||||
| 	endif() | ||||
|     endif() | ||||
|  | ||||
| 	vcmi_set_output_dir(${TARGET_NAME} "") | ||||
|  | ||||
| @@ -692,7 +694,7 @@ macro(add_main_lib TARGET_NAME LIBRARY_TYPE) | ||||
| 			COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake_modules/create_link.cmake ${MAIN_LIB_DIR}/../config ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/config | ||||
| 			COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake_modules/create_link.cmake ${MAIN_LIB_DIR}/../Mods ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/Mods | ||||
| 		) | ||||
| 	endif() | ||||
|     endif() | ||||
|  | ||||
| 	# Update version before vcmi compiling | ||||
| 	if(TARGET update_version) | ||||
|   | ||||
| @@ -179,7 +179,7 @@ struct DLL_LINKAGE ArtSlotInfo | ||||
| 	ArtSlotInfo() : locked(false) {} | ||||
| 	const CArtifactInstance * getArt() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & artifact; | ||||
| 		h & locked; | ||||
| @@ -223,7 +223,7 @@ public: | ||||
| 	virtual void removeArtifact(ArtifactPosition slot); | ||||
| 	virtual ~CArtifactSet(); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & artifactsInBackpack; | ||||
| 		h & artifactsWorn; | ||||
|   | ||||
| @@ -27,7 +27,7 @@ public: | ||||
| 	{ | ||||
| 		ConstTransitivePtr<CArtifactInstance> art; | ||||
| 		ArtifactPosition slot; | ||||
| 		template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 		template <typename Handler> void serialize(Handler & h) | ||||
| 		{ | ||||
| 			h & art; | ||||
| 			h & slot; | ||||
| @@ -41,7 +41,7 @@ public: | ||||
| 	const std::vector<PartInfo> & getPartsInfo() const; | ||||
| 	void addPlacementMap(CArtifactSet::ArtPlacementMap & placementMap); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & partsInfo; | ||||
| 	} | ||||
| @@ -93,7 +93,7 @@ public: | ||||
| 	void move(CArtifactSet & srcSet, const ArtifactPosition srcSlot, CArtifactSet & dstSet, const ArtifactPosition dstSlot); | ||||
| 	 | ||||
| 	void deserializationFix(); | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & static_cast<CBonusSystemNode&>(*this); | ||||
| 		h & static_cast<CCombinedArtifactInstance&>(*this); | ||||
|   | ||||
| @@ -27,7 +27,7 @@ public: | ||||
| 	std::string getNameTextID() const; | ||||
| 	std::string getDescriptionTextID() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & icon; | ||||
| 		h & identifier; | ||||
| @@ -53,7 +53,7 @@ public: | ||||
| 	std::string bonusToString(const std::shared_ptr<Bonus> & bonus, const IBonusBearer * bearer, bool description) const override; | ||||
| 	ImagePath bonusToGraphics(const std::shared_ptr<Bonus> & bonus) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		//for now always use up to date configuration | ||||
| 		//once modded bonus type will be implemented, serialize only them | ||||
|   | ||||
| @@ -46,7 +46,7 @@ public: | ||||
| 	 | ||||
| 	friend bool operator== (const CStackBasicDescriptor & l, const CStackBasicDescriptor & r); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		if(h.saving) | ||||
| 		{ | ||||
| @@ -85,7 +85,7 @@ public: | ||||
| 	const CArmedInstance * const & armyObj; //stack must be part of some army, army must be part of some object | ||||
| 	TExpType experience;//commander needs same amount of exp as hero | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CBonusSystemNode&>(*this); | ||||
| 		h & static_cast<CStackBasicDescriptor&>(*this); | ||||
| @@ -157,7 +157,7 @@ public: | ||||
| 	int getLevel() const override; | ||||
| 	ArtBearer::ArtBearer bearerType() const override; //from CArtifactSet | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CStackInstance&>(*this); | ||||
| 		h & alive; | ||||
| @@ -197,7 +197,7 @@ public: | ||||
| 	bool setCreature(SlotID slot, CreatureID cre, TQuantity count) override; | ||||
| 	operator bool() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & army; | ||||
| 	} | ||||
| @@ -280,7 +280,7 @@ public: | ||||
| 	bool contains(const CStackInstance *stack) const; | ||||
| 	bool canBeMergedWith(const CCreatureSet &cs, bool allowMergingStacks = true) const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & stacks; | ||||
| 		h & formation; | ||||
|   | ||||
| @@ -243,9 +243,8 @@ void CAdventureAI::yourTacticPhase(const BattleID & battleID, int distance) | ||||
| 	battleAI->yourTacticPhase(battleID, distance); | ||||
| } | ||||
|  | ||||
| void CAdventureAI::saveGame(BinarySerializer & h, const int version) /*saving */ | ||||
| void CAdventureAI::saveGame(BinarySerializer & h) /*saving */ | ||||
| { | ||||
| 	LOG_TRACE_PARAMS(logAi, "version '%i'", version); | ||||
| 	bool hasBattleAI = static_cast<bool>(battleAI); | ||||
| 	h & hasBattleAI; | ||||
| 	if(hasBattleAI) | ||||
| @@ -254,9 +253,8 @@ void CAdventureAI::saveGame(BinarySerializer & h, const int version) /*saving */ | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void CAdventureAI::loadGame(BinaryDeserializer & h, const int version) /*loading */ | ||||
| void CAdventureAI::loadGame(BinaryDeserializer & h) /*loading */ | ||||
| { | ||||
| 	LOG_TRACE_PARAMS(logAi, "version '%i'", version); | ||||
| 	bool hasBattleAI = false; | ||||
| 	h & hasBattleAI; | ||||
| 	if(hasBattleAI) | ||||
|   | ||||
| @@ -111,8 +111,8 @@ public: | ||||
|  | ||||
| 	virtual std::optional<BattleAction> makeSurrenderRetreatDecision(const BattleID & battleID, const BattleStateInfoForRetreat & battleState) = 0; | ||||
|  | ||||
| 	virtual void saveGame(BinarySerializer & h, const int version) = 0; | ||||
| 	virtual void loadGame(BinaryDeserializer & h, const int version) = 0; | ||||
| 	virtual void saveGame(BinarySerializer & h) = 0; | ||||
| 	virtual void loadGame(BinaryDeserializer & h) = 0; | ||||
| }; | ||||
|  | ||||
| class DLL_LINKAGE CDynLibHandler | ||||
| @@ -162,8 +162,8 @@ public: | ||||
| 	virtual void battleEnd(const BattleID & battleID, const BattleResult *br, QueryID queryID) override; | ||||
| 	virtual void battleUnitsChanged(const BattleID & battleID, const std::vector<UnitChanges> & units) override; | ||||
|  | ||||
| 	virtual void saveGame(BinarySerializer & h, const int version) override; | ||||
| 	virtual void loadGame(BinaryDeserializer & h, const int version) override; | ||||
| 	virtual void saveGame(BinarySerializer & h) override; | ||||
| 	virtual void loadGame(BinaryDeserializer & h) override; | ||||
| }; | ||||
|  | ||||
| VCMI_LIB_NAMESPACE_END | ||||
|   | ||||
| @@ -135,7 +135,7 @@ protected: | ||||
| 		std::string modContext; | ||||
| 		 | ||||
| 		template <typename Handler> | ||||
| 		void serialize(Handler & h, const int Version) | ||||
| 		void serialize(Handler & h) | ||||
| 		{ | ||||
| 			h & baseValue; | ||||
| 			h & baseLanguage; | ||||
| @@ -193,7 +193,7 @@ public: | ||||
| 	void jsonSerialize(JsonNode & dest) const; | ||||
| 	 | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int Version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		std::string key; | ||||
| 		auto sz = stringsLocalizations.size(); | ||||
|   | ||||
| @@ -40,10 +40,10 @@ struct DLL_LINKAGE PlayerState : public CBonusSystemNode, public Player | ||||
| 				return subID < other.subID; | ||||
| 		} | ||||
|  | ||||
| 		template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 		template <typename Handler> void serialize(Handler &h) | ||||
| 		{ | ||||
| 			h & id; | ||||
| 			subID.serializeIdentifier(h, id, version); | ||||
| 			subID.serializeIdentifier(h, id); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| @@ -89,7 +89,7 @@ public: | ||||
| 		return heroes.empty() && towns.empty(); | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & color; | ||||
| 		h & human; | ||||
| @@ -123,7 +123,7 @@ public: | ||||
|  | ||||
| 	TeamState(); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & id; | ||||
| 		h & players; | ||||
|   | ||||
| @@ -87,7 +87,7 @@ private: | ||||
|  | ||||
| public: | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		if(h.saving) | ||||
| 		{ | ||||
|   | ||||
| @@ -93,7 +93,7 @@ public: | ||||
| 		return this->owner; | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		//this assumes that stack objects is newly created | ||||
| 		//stackState is not serialized here | ||||
|   | ||||
| @@ -50,7 +50,7 @@ public: | ||||
| 	{} | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & r; | ||||
| 		h & g; | ||||
|   | ||||
| @@ -69,7 +69,7 @@ public: | ||||
| 		ptr = nullptr; | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & ptr; | ||||
| 	} | ||||
|   | ||||
| @@ -20,7 +20,7 @@ struct DLL_LINKAGE ExtraOptionsInfo | ||||
| 	bool operator == (const ExtraOptionsInfo & other) const; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & cheatsAllowed; | ||||
| 		h & unlimitedReplay; | ||||
|   | ||||
| @@ -96,7 +96,7 @@ public: | ||||
| 	const JsonNode & getValue(EGameSettings option) const override; | ||||
|  | ||||
| 	template<typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & gameSettings; | ||||
| 	} | ||||
|   | ||||
| @@ -117,7 +117,7 @@ public: | ||||
|  | ||||
| 	std::string toJson(bool compact = false) const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & meta; | ||||
| 		h & flags; | ||||
|   | ||||
| @@ -57,7 +57,7 @@ namespace LogicalExpressionDetail | ||||
| 			} | ||||
|  | ||||
| 			template <typename Handler> | ||||
| 			void serialize(Handler & h, const int version) | ||||
| 			void serialize(Handler & h) | ||||
| 			{ | ||||
| 				h & expressions; | ||||
| 			} | ||||
| @@ -614,7 +614,7 @@ public: | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & data; | ||||
| 	} | ||||
|   | ||||
| @@ -125,7 +125,7 @@ public: | ||||
| 	 | ||||
| 	void serializeJson(JsonSerializeFormat & handler); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & exactStrings; | ||||
| 		h & localStrings; | ||||
|   | ||||
| @@ -122,7 +122,7 @@ public: | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & x; | ||||
| 		h & y; | ||||
|   | ||||
| @@ -163,7 +163,7 @@ public: | ||||
| 	DLL_LINKAGE Rect include(const Rect & other) const; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & x; | ||||
| 		h & y; | ||||
|   | ||||
| @@ -180,7 +180,7 @@ public: | ||||
| // 			return true; | ||||
| // 		} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & container; | ||||
| 	} | ||||
|   | ||||
| @@ -108,7 +108,7 @@ public: | ||||
|  | ||||
| 	void run(std::shared_ptr<Pool> pool) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		JsonNode state; | ||||
| 		if(h.saving) | ||||
|   | ||||
| @@ -41,7 +41,7 @@ struct DLL_LINKAGE SimturnsInfo | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & requiredTurns; | ||||
| 		h & optionalTurns; | ||||
| @@ -76,7 +76,7 @@ struct DLL_LINKAGE PlayerSettings | ||||
| 	std::set<ui8> connectedPlayerIDs; //Empty - AI, or connectrd player ids | ||||
| 	bool compOnly; //true if this player is a computer only player; required for RMG | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & castle; | ||||
| 		h & hero; | ||||
| @@ -131,7 +131,7 @@ struct DLL_LINKAGE StartInfo | ||||
| 	std::string getCampaignName() const; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & mode; | ||||
| 		h & difficulty; | ||||
| @@ -143,7 +143,7 @@ struct DLL_LINKAGE StartInfo | ||||
| 		h & fileURI; | ||||
| 		h & simturnsInfo; | ||||
| 		h & turnTimerInfo; | ||||
| 		if(version >= 832) | ||||
| 		if(h.version >= Handler::Version::HAS_EXTRA_OPTIONS) | ||||
| 			h & extraOptionsInfo; | ||||
| 		else | ||||
| 			extraOptionsInfo = ExtraOptionsInfo(); | ||||
| @@ -164,7 +164,7 @@ struct ClientPlayer | ||||
| 	int connection; | ||||
| 	std::string name; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & connection; | ||||
| 		h & name; | ||||
| @@ -184,7 +184,7 @@ struct DLL_LINKAGE LobbyState | ||||
|  | ||||
| 	LobbyState() : si(new StartInfo()), hostClientId(-1), campaignMap(CampaignScenarioID::NONE), campaignBonus(-1) {} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & si; | ||||
| 		h & mi; | ||||
|   | ||||
| @@ -26,7 +26,7 @@ struct DLL_LINKAGE TerrainPaletteAnimation | ||||
| 	/// total numbers of colors to cycle | ||||
| 	int32_t length; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler& h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler& h) | ||||
| 	{ | ||||
| 		h & start; | ||||
| 		h & length; | ||||
|   | ||||
| @@ -34,7 +34,7 @@ struct DLL_LINKAGE TurnTimerInfo | ||||
| 	bool operator == (const TurnTimerInfo & other) const; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & turnTimer; | ||||
| 		h & baseTimer; | ||||
|   | ||||
| @@ -55,7 +55,7 @@ public: | ||||
| 	battle::Target getTarget(const CBattleInfoCallback * cb) const; | ||||
| 	void setTarget(const battle::Target & target_); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & side; | ||||
| 		h & stackNumber; | ||||
| @@ -70,7 +70,7 @@ private: | ||||
| 		int32_t unitValue; | ||||
| 		BattleHex hexValue; | ||||
|  | ||||
| 		template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 		template <typename Handler> void serialize(Handler & h) | ||||
| 		{ | ||||
| 			h & unitValue; | ||||
| 			h & hexValue; | ||||
|   | ||||
| @@ -105,7 +105,7 @@ struct DLL_LINKAGE BattleHex //TODO: decide if this should be changed to class f | ||||
| 	static BattleHex getClosestTile(ui8 side, BattleHex initialPos, std::set<BattleHex> & possibilities); //TODO: vector or set? copying one to another is bad | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & hex; | ||||
| 	} | ||||
|   | ||||
| @@ -50,7 +50,7 @@ public: | ||||
| 	ui8 tacticsSide; //which side is requested to play tactics phase | ||||
| 	ui8 tacticDistance; //how many hexes we can go forward (1 = only hexes adjacent to margin line) | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & sides; | ||||
| @@ -66,10 +66,7 @@ public: | ||||
| 		h & tacticsSide; | ||||
| 		h & tacticDistance; | ||||
| 		h & static_cast<CBonusSystemNode&>(*this); | ||||
| 		if (version > 824) | ||||
| 			h & replayAllowed; | ||||
| 		else | ||||
| 			replayAllowed = false; | ||||
| 		h & replayAllowed; | ||||
| 	} | ||||
|  | ||||
| 	////////////////////////////////////////////////////////////////////////// | ||||
|   | ||||
| @@ -36,7 +36,7 @@ struct DLL_LINKAGE AttackableTiles | ||||
| { | ||||
| 	std::set<BattleHex> hostileCreaturePositions; | ||||
| 	std::set<BattleHex> friendlyCreaturePositions; //for Dragon Breath | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & hostileCreaturePositions; | ||||
| 		h & friendlyCreaturePositions; | ||||
|   | ||||
| @@ -63,7 +63,7 @@ struct DLL_LINKAGE CObstacleInstance | ||||
| 	 | ||||
| 	virtual void serializeJson(JsonSerializeFormat & handler); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & ID; | ||||
| 		h & pos; | ||||
| @@ -118,7 +118,7 @@ struct DLL_LINKAGE SpellCreatedObstacle : CObstacleInstance | ||||
|  | ||||
| 	void serializeJson(JsonSerializeFormat & handler) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CObstacleInstance&>(*this); | ||||
| 		h & turnsRemaining; | ||||
|   | ||||
| @@ -28,7 +28,7 @@ struct DLL_LINKAGE SideInBattle | ||||
| 	void init(const CGHeroInstance * Hero, const CArmedInstance * Army); | ||||
|  | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & color; | ||||
| 		h & hero; | ||||
|   | ||||
| @@ -23,7 +23,7 @@ struct DLL_LINKAGE SiegeInfo | ||||
| 	// return EWallState decreased by value of damage points | ||||
| 	static EWallState applyDamage(EWallState state, unsigned int value); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & wallState; | ||||
| 		h & gateState; | ||||
|   | ||||
| @@ -86,7 +86,7 @@ struct DLL_LINKAGE Bonus : public std::enable_shared_from_this<Bonus> | ||||
| 	Bonus(BonusDuration::Type Duration, BonusType Type, BonusSource Src, si32 Val, BonusSourceID sourceID, BonusSubtypeID subtype, BonusValueType ValType); | ||||
| 	Bonus() = default; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & duration; | ||||
| 		h & type; | ||||
|   | ||||
| @@ -91,7 +91,7 @@ public: | ||||
| 	void insert(TInternalContainer::iterator position, TInternalContainer::size_type n, const std::shared_ptr<Bonus> & x); | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<TInternalContainer&>(bonuses); | ||||
| 	} | ||||
|   | ||||
| @@ -130,7 +130,7 @@ public: | ||||
| 		return PlayerColor::NEUTRAL; | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & nodeType; | ||||
| 		h & exportedBonuses; | ||||
|   | ||||
| @@ -38,7 +38,7 @@ public: | ||||
| 	virtual std::string toString() const; | ||||
| 	virtual JsonNode toJsonNode() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 	} | ||||
| }; | ||||
| @@ -53,7 +53,7 @@ public: | ||||
| 	void add(const TLimiterPtr & limiter); | ||||
| 	JsonNode toJsonNode() const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & static_cast<ILimiter&>(*this); | ||||
| 		h & limiters; | ||||
| @@ -104,7 +104,7 @@ public: | ||||
| 	std::string toString() const override; | ||||
| 	JsonNode toJsonNode() const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<ILimiter&>(*this); | ||||
| 		h & creature; | ||||
| @@ -132,7 +132,7 @@ public: | ||||
| 	std::string toString() const override; | ||||
| 	JsonNode toJsonNode() const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<ILimiter&>(*this); | ||||
| 		h & type; | ||||
| @@ -156,7 +156,7 @@ public: | ||||
| 	std::string toString() const override; | ||||
| 	JsonNode toJsonNode() const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<ILimiter&>(*this); | ||||
| 		h & terrainType; | ||||
| @@ -175,7 +175,7 @@ public: | ||||
| 	std::string toString() const override; | ||||
| 	JsonNode toJsonNode() const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<ILimiter&>(*this); | ||||
| 		h & minLevel; | ||||
| @@ -193,7 +193,7 @@ public: | ||||
| 	std::string toString() const override; | ||||
| 	JsonNode toJsonNode() const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<ILimiter&>(*this); | ||||
| 		h & faction; | ||||
| @@ -210,7 +210,7 @@ public: | ||||
| 	std::string toString() const override; | ||||
| 	JsonNode toJsonNode() const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<ILimiter&>(*this); | ||||
| 		h & alignment; | ||||
| @@ -225,7 +225,7 @@ public: | ||||
|  | ||||
| 	EDecision limit(const BonusLimitationContext &context) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<ILimiter&>(*this); | ||||
| 		h & owner; | ||||
| @@ -242,7 +242,7 @@ public: | ||||
| 	RankRangeLimiter(ui8 Min, ui8 Max = 255); | ||||
| 	EDecision limit(const BonusLimitationContext &context) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<ILimiter&>(*this); | ||||
| 		h & minRank; | ||||
| @@ -259,7 +259,7 @@ public: | ||||
| 	EDecision limit(const BonusLimitationContext &context) const override; | ||||
| 	JsonNode toJsonNode() const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<ILimiter&>(*this); | ||||
| 		h & applicableHexes; | ||||
|   | ||||
| @@ -23,7 +23,7 @@ public: | ||||
| 	virtual bool shouldBeAttached(CBonusSystemNode *dest); | ||||
| 	virtual CBonusSystemNode::ENodeTypes getPropagatorType() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{} | ||||
| }; | ||||
|  | ||||
| @@ -36,7 +36,7 @@ public: | ||||
| 	bool shouldBeAttached(CBonusSystemNode *dest) override; | ||||
| 	CBonusSystemNode::ENodeTypes getPropagatorType() const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & nodeType; | ||||
| 	} | ||||
|   | ||||
| @@ -26,7 +26,7 @@ public: | ||||
| 	virtual std::string toString() const; | ||||
| 	virtual JsonNode toJsonNode() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 	} | ||||
| }; | ||||
| @@ -40,7 +40,7 @@ public: | ||||
| 	GrowsWithLevelUpdater() = default; | ||||
| 	GrowsWithLevelUpdater(int valPer20, int stepSize = 1); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & static_cast<IUpdater &>(*this); | ||||
| 		h & valPer20; | ||||
| @@ -55,7 +55,7 @@ public: | ||||
| class DLL_LINKAGE TimesHeroLevelUpdater : public IUpdater | ||||
| { | ||||
| public: | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & static_cast<IUpdater &>(*this); | ||||
| 	} | ||||
| @@ -68,7 +68,7 @@ public: | ||||
| class DLL_LINKAGE TimesStackLevelUpdater : public IUpdater | ||||
| { | ||||
| public: | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & static_cast<IUpdater &>(*this); | ||||
| 	} | ||||
| @@ -87,7 +87,7 @@ public: | ||||
| 	si32 max; | ||||
| 	ArmyMovementUpdater(); | ||||
| 	ArmyMovementUpdater(int base, int divider, int multiplier, int max); | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & static_cast<IUpdater &>(*this); | ||||
| 		h & base; | ||||
| @@ -104,7 +104,7 @@ public: | ||||
| class DLL_LINKAGE OwnerUpdater : public IUpdater | ||||
| { | ||||
| public: | ||||
| 	template <typename Handler> void serialize(Handler& h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler& h) | ||||
| 	{ | ||||
| 		h & static_cast<IUpdater &>(*this); | ||||
| 	} | ||||
|   | ||||
| @@ -22,7 +22,7 @@ struct DLL_LINKAGE CampaignScenarioPrologEpilog | ||||
| 	AudioPath prologVoice; | ||||
| 	MetaString prologText; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int formatVersion) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & hasPrologEpilog; | ||||
| 		h & prologVideo; | ||||
|   | ||||
| @@ -40,7 +40,7 @@ class DLL_LINKAGE CampaignRegions | ||||
| 		int xpos; | ||||
| 		int ypos; | ||||
|  | ||||
| 		template <typename Handler> void serialize(Handler &h, const int formatVersion) | ||||
| 		template <typename Handler> void serialize(Handler &h) | ||||
| 		{ | ||||
| 			h & infix; | ||||
| 			h & xpos; | ||||
| @@ -61,7 +61,7 @@ public: | ||||
| 	ImagePath getSelectedName(CampaignScenarioID which, int color) const; | ||||
| 	ImagePath getConqueredName(CampaignScenarioID which, int color) const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int formatVersion) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & campPrefix; | ||||
| 		h & colorSuffixLength; | ||||
| @@ -106,7 +106,7 @@ public: | ||||
| 	const CampaignRegions & getRegions() const; | ||||
| 	TextContainerRegistrable & getTexts(); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int formatVersion) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & version; | ||||
| 		h & campaignRegions; | ||||
| @@ -118,7 +118,7 @@ public: | ||||
| 		h & modName; | ||||
| 		h & music; | ||||
| 		h & encoding; | ||||
| 		if (formatVersion >= 832) | ||||
| 		if (h.version >= Handler::Version::RELEASE_143) | ||||
| 			h & textContainer; | ||||
| 	} | ||||
| }; | ||||
| @@ -134,7 +134,7 @@ struct DLL_LINKAGE CampaignBonus | ||||
|  | ||||
| 	bool isBonusForHero() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int formatVersion) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & type; | ||||
| 		h & info1; | ||||
| @@ -153,7 +153,7 @@ struct DLL_LINKAGE CampaignTravel | ||||
| 		bool spells = false; | ||||
| 		bool artifacts = false; | ||||
|  | ||||
| 		template <typename Handler> void serialize(Handler &h, const int formatVersion) | ||||
| 		template <typename Handler> void serialize(Handler &h) | ||||
| 		{ | ||||
| 			h & experience; | ||||
| 			h & primarySkills; | ||||
| @@ -171,7 +171,7 @@ struct DLL_LINKAGE CampaignTravel | ||||
| 	CampaignStartOptions startOptions = CampaignStartOptions::NONE; //1 - start bonus, 2 - traveling hero, 3 - hero options | ||||
| 	PlayerColor playerColor = PlayerColor::NEUTRAL; //only for startOptions == 1 | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int formatVersion) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & whatHeroKeeps; | ||||
| 		h & monstersKeptByHero; | ||||
| @@ -199,7 +199,7 @@ struct DLL_LINKAGE CampaignScenario | ||||
| 	void loadPreconditionRegions(ui32 regions); | ||||
| 	bool isNotVoid() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int formatVersion) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & mapName; | ||||
| 		h & scenarioName; | ||||
| @@ -225,7 +225,7 @@ public: | ||||
| 	std::set<CampaignScenarioID> allScenarios() const; | ||||
| 	int scenariosCount() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CampaignHeader&>(*this); | ||||
| 		h & scenarios; | ||||
| @@ -304,7 +304,7 @@ public: | ||||
|  | ||||
| 	std::string campaignSet; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<Campaign&>(*this); | ||||
| 		h & scenarioHeroPool; | ||||
|   | ||||
| @@ -527,7 +527,7 @@ public: | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serializeIdentifier(Handler &h, const MapObjectID & primaryID, const int version) | ||||
| 	void serializeIdentifier(Handler &h, const MapObjectID & primaryID) | ||||
| 	{ | ||||
| 		std::string secondaryStringID; | ||||
|  | ||||
| @@ -959,7 +959,7 @@ public: | ||||
| 	using Identifier<BuildingTypeUniqueID>::Identifier; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		FactionID faction = getFaction(); | ||||
| 		BuildingID building = getBuilding(); | ||||
|   | ||||
| @@ -186,7 +186,7 @@ public: | ||||
| 	using Identifier<FinalClass>::Identifier; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		auto * finalClass = static_cast<FinalClass*>(this); | ||||
| 		std::string value; | ||||
| @@ -208,7 +208,7 @@ public: | ||||
| 	using IdentifierWithEnum<FinalClass, BaseClass>::IdentifierWithEnum; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		auto * finalClass = static_cast<FinalClass*>(this); | ||||
| 		std::string value; | ||||
| @@ -230,7 +230,7 @@ public: | ||||
| 	using Identifier<FinalClass>::Identifier; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		auto * finalClass = static_cast<FinalClass*>(this); | ||||
| 		h & finalClass->num; | ||||
| @@ -244,7 +244,7 @@ public: | ||||
| 	using IdentifierWithEnum<FinalClass, BaseClass>::IdentifierWithEnum; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		auto * finalClass = static_cast<FinalClass*>(this); | ||||
| 		h & finalClass->num; | ||||
|   | ||||
| @@ -59,7 +59,7 @@ public: | ||||
| 			return IdentifierType(); | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & value; | ||||
| 	} | ||||
|   | ||||
| @@ -102,7 +102,7 @@ public: | ||||
|  | ||||
| 	void serializeJson(JsonSerializeFormat & handler); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & type; | ||||
| 		h & name; | ||||
|   | ||||
| @@ -59,7 +59,7 @@ struct DLL_LINKAGE RumorState | ||||
| 	RumorState(){type = TYPE_NONE;}; | ||||
| 	bool update(int id, int extra); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & type; | ||||
| 		h & last; | ||||
| @@ -174,7 +174,7 @@ public: | ||||
| 	/// Any server-side code outside of GH must use CRandomGenerator::getDefault | ||||
| 	CRandomGenerator & getRandomGenerator(); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & scenarioOps; | ||||
| 		h & initialOpts; | ||||
|   | ||||
| @@ -58,7 +58,7 @@ public: | ||||
| 	bool playerHasStartingHero(PlayerColor player) const; | ||||
| 	std::unique_ptr<CMap> getCurrentMap() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & gameState; | ||||
| 	} | ||||
|   | ||||
| @@ -58,7 +58,7 @@ public: | ||||
| 	MetaString messageToSelf; | ||||
| 	MetaString messageToOthers; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & intValue; | ||||
| 		h & messageToSelf; | ||||
|   | ||||
| @@ -44,7 +44,7 @@ struct DLL_LINKAGE QuestInfo //universal interface for human and AI | ||||
| 		return (quest == qi.quest && obj == qi.obj); | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & quest; | ||||
| 		h & obj; | ||||
|   | ||||
| @@ -25,7 +25,7 @@ struct DLL_LINKAGE SThievesGuildInfo | ||||
| 	std::map<PlayerColor, EAiTactic> personality; // color to personality // ai tactic | ||||
| 	std::map<PlayerColor, CreatureID> bestCreature; // color to ID // id or -1 if not known | ||||
|  | ||||
| //	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| //	template <typename Handler> void serialize(Handler &h) | ||||
| //	{ | ||||
| //		h & playerColors; | ||||
| //		h & numOfTowns; | ||||
|   | ||||
| @@ -30,7 +30,7 @@ class DLL_LINKAGE TavernHeroesPool | ||||
| 		TavernSlotRole role; | ||||
| 		PlayerColor player; | ||||
|  | ||||
| 		template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 		template <typename Handler> void serialize(Handler &h) | ||||
| 		{ | ||||
| 			h & hero; | ||||
| 			h & slot; | ||||
| @@ -76,7 +76,7 @@ public: | ||||
| 	/// Makes hero available in tavern of specified player | ||||
| 	void setHeroForPlayer(PlayerColor player, TavernHeroSlot slot, HeroTypeID hero, CSimpleArmy & army, TavernSlotRole role, bool replenishPoints); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & heroesPool; | ||||
| 		h & perPlayerAvailability; | ||||
|   | ||||
| @@ -170,7 +170,7 @@ public: | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int version) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & x; | ||||
| 		h & y; | ||||
|   | ||||
| @@ -27,7 +27,7 @@ struct BankConfig | ||||
| 	std::vector<ArtifactID> artifacts; //artifacts given in case of victory | ||||
| 	std::vector<SpellID> spells; // granted spell(s), for Pyramid | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & chance; | ||||
| 		h & guards; | ||||
|   | ||||
| @@ -52,7 +52,7 @@ public: | ||||
| 	 | ||||
| 	void serializeJsonOptions(JsonSerializeFormat & handler) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 		h & static_cast<CBonusSystemNode&>(*this); | ||||
|   | ||||
| @@ -43,7 +43,7 @@ public: | ||||
|  | ||||
| 	std::vector<Component> getPopupComponents(PlayerColor player) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CArmedInstance&>(*this); | ||||
| 		h & daycounter; | ||||
|   | ||||
| @@ -56,7 +56,7 @@ public: | ||||
| 	bool containsUpgradedStack() const; | ||||
| 	int getNumberOfStacks(const CGHeroInstance *hero) const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CArmedInstance&>(*this); | ||||
| 		h & identifier; | ||||
|   | ||||
| @@ -61,7 +61,7 @@ private: | ||||
| 	void heroAcceptsCreatures(const CGHeroInstance *h) const; | ||||
|  | ||||
| public: | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CArmedInstance&>(*this); | ||||
| 		h & creatures; | ||||
|   | ||||
| @@ -36,7 +36,7 @@ public: | ||||
| 	/// if this is placeholder by type, then hero type of desired hero | ||||
| 	std::optional<HeroTypeID> heroType; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 		h & powerRank; | ||||
| @@ -103,7 +103,7 @@ public: | ||||
| 		bool patrolling; | ||||
| 		int3 initialPos; | ||||
| 		ui32 patrolRadius; | ||||
| 		template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 		template <typename Handler> void serialize(Handler &h) | ||||
| 		{ | ||||
| 			h & patrolling; | ||||
| 			h & initialPos; | ||||
| @@ -121,7 +121,7 @@ public: | ||||
| 		void resetMagicSchoolCounter(); | ||||
| 		void resetWisdomCounter(); | ||||
|  | ||||
| 		template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 		template <typename Handler> void serialize(Handler &h) | ||||
| 		{ | ||||
| 			h & magicSchoolCounter; | ||||
| 			h & wisdomCounter; | ||||
| @@ -321,7 +321,7 @@ public: | ||||
|  | ||||
| 	void serializeJsonDefinition(JsonSerializeFormat & handler); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CArmedInstance&>(*this); | ||||
| 		h & static_cast<CArtifactSet&>(*this); | ||||
|   | ||||
| @@ -36,7 +36,7 @@ public: | ||||
| 	int availableUnits(EMarketMode mode, int marketItemSerial) const override; //-1 if unlimited | ||||
| 	std::vector<TradeItemBuy> availableItemsIds(EMarketMode mode) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 		h & marketModes; | ||||
| @@ -56,7 +56,7 @@ public: | ||||
| 	void newTurn(CRandomGenerator & rand) const override; //reset artifacts for black market every month | ||||
| 	std::vector<TradeItemBuy> availableItemsIds(EMarketMode mode) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGMarket&>(*this); | ||||
| 		h & artifacts; | ||||
| @@ -73,7 +73,7 @@ public: | ||||
| 	std::vector<TradeItemBuy> availableItemsIds(EMarketMode mode) const override; | ||||
| 	void onHeroVisit(const CGHeroInstance * h) const override; //open window | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGMarket&>(*this); | ||||
| 		h & skills; | ||||
|   | ||||
| @@ -137,14 +137,14 @@ public: | ||||
| 	virtual void afterRemoveFromMap(CMap * map); | ||||
|  | ||||
| 	///Entry point of binary (de-)serialization | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & instanceName; | ||||
| 		h & typeName; | ||||
| 		h & subTypeName; | ||||
| 		h & pos; | ||||
| 		h & ID; | ||||
| 		subID.serializeIdentifier(h, ID, version); | ||||
| 		subID.serializeIdentifier(h, ID); | ||||
| 		h & id; | ||||
| 		h & tempOwner; | ||||
| 		h & blockVisit; | ||||
|   | ||||
| @@ -28,7 +28,7 @@ public: | ||||
| 	void battleFinished(const CGHeroInstance *hero, const BattleResult &result) const override; | ||||
| 	void blockingDialogAnswered(const CGHeroInstance *hero, ui32 answer) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CRewardableObject&>(*this); | ||||
| 		h & message; | ||||
| @@ -50,7 +50,7 @@ public: | ||||
| 	bool computerActivate = false; //true if computer player can activate this event | ||||
| 	bool humanActivate = false; //true if human player can activate this event | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGPandoraBox &>(*this); | ||||
| 		h & removeAfterVisit; | ||||
|   | ||||
| @@ -54,7 +54,7 @@ public: | ||||
| 	int3 visitablePos() const override; | ||||
| 	int3 getPosition() const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & bID; | ||||
| 		h & indexOnTV; | ||||
| @@ -79,7 +79,7 @@ public: | ||||
| 	COPWBonus(const BuildingID & index, BuildingSubID::EBuildingSubID subId, CGTownInstance * TOWN); | ||||
| 	COPWBonus(IGameCallback *cb); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGTownBuilding&>(*this); | ||||
| 		h & visitors; | ||||
| @@ -98,7 +98,7 @@ public: | ||||
| 	CTownBonus(const BuildingID & index, BuildingSubID::EBuildingSubID subId, CGTownInstance * TOWN); | ||||
| 	CTownBonus(IGameCallback *cb); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGTownBuilding&>(*this); | ||||
| 		h & visitors; | ||||
| @@ -136,7 +136,7 @@ public: | ||||
| 	CTownRewardableBuilding(const BuildingID & index, BuildingSubID::EBuildingSubID subId, CGTownInstance * town, CRandomGenerator & rand); | ||||
| 	CTownRewardableBuilding(IGameCallback *cb); | ||||
| 	 | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGTownBuilding&>(*this); | ||||
| 		h & static_cast<Rewardable::Interface&>(*this); | ||||
|   | ||||
| @@ -67,7 +67,7 @@ public: | ||||
| 	std::pair<si32, si32> bonusValue;//var to store town bonuses (rampart = resources from mystic pond); | ||||
|  | ||||
| 	////////////////////////////////////////////////////////////////////////// | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGDwelling&>(*this); | ||||
| 		h & nameTextId; | ||||
|   | ||||
| @@ -69,7 +69,7 @@ public: | ||||
| 		return (quest.qid == qid); | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & qid; | ||||
| 		h & isCompleted; | ||||
| @@ -106,7 +106,7 @@ public: | ||||
| 	virtual void getVisitText (MetaString &text, std::vector<Component> &components, bool FirstVisit, const CGHeroInstance * h = nullptr) const = 0; | ||||
| 	virtual bool checkQuest (const CGHeroInstance * h) const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & quest; | ||||
| 	} | ||||
| @@ -142,7 +142,7 @@ public: | ||||
|  | ||||
| 	void afterAddToMap(CMap * map) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CRewardableObject&>(*this); | ||||
| 		h & static_cast<IQuestObject&>(*this); | ||||
| @@ -164,7 +164,7 @@ public: | ||||
| 	void onHeroVisit(const CGHeroInstance * h) const override; | ||||
| 	bool passableFor(PlayerColor color) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGSeerHut&>(*this); | ||||
| 	} | ||||
| @@ -182,7 +182,7 @@ public: | ||||
| 	std::string getObjectName() const override; //depending on color | ||||
| 	std::string getHoverText(PlayerColor player) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 	} | ||||
| @@ -196,7 +196,7 @@ public: | ||||
| 	bool wasVisited (PlayerColor player) const override; | ||||
| 	void onHeroVisit(const CGHeroInstance * h) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 	} | ||||
| @@ -217,7 +217,7 @@ public: | ||||
|  | ||||
| 	void afterAddToMap(CMap * map) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<IQuestObject&>(*this); | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| @@ -233,7 +233,7 @@ public: | ||||
|  | ||||
| 	bool passableFor(PlayerColor color) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGBorderGuard&>(*this); //need to serialize or object will be empty | ||||
| 	} | ||||
|   | ||||
| @@ -78,7 +78,7 @@ public: | ||||
| 	std::vector<Component> getPopupComponents(PlayerColor player) const override; | ||||
| 	std::vector<Component> getPopupComponents(const CGHeroInstance * hero) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CArmedInstance&>(*this); | ||||
| 		h & static_cast<Rewardable::Interface&>(*this); | ||||
|   | ||||
| @@ -67,7 +67,7 @@ public: | ||||
| 	static void preInit(); //called before objs receive their initObj | ||||
| 	static void postInit();//called after objs receive their initObj | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		logGlobal->error("IObjectInterface serialized, unexpected, should not happen!"); | ||||
| 	} | ||||
|   | ||||
| @@ -33,7 +33,7 @@ public: | ||||
| 	bool wasVisited(const TeamID & team) const; | ||||
| 	void setPropertyDer(ObjProperty what, ObjPropertyID identifier) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 		h & players; | ||||
| @@ -50,7 +50,7 @@ public: | ||||
| 	void onHeroVisit(const CGHeroInstance * h) const override; | ||||
| 	void initObj(CRandomGenerator & rand) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 		h & message; | ||||
| @@ -71,7 +71,7 @@ public: | ||||
| 	void onHeroVisit(const CGHeroInstance * h) const override; | ||||
| 	void battleFinished(const CGHeroInstance *hero, const BattleResult &result) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CArmedInstance&>(*this); | ||||
| 		h & removableUnits; | ||||
| @@ -107,7 +107,7 @@ public: | ||||
|  | ||||
| 	ArtifactID getArtifact() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CArmedInstance&>(*this); | ||||
| 		h & message; | ||||
| @@ -137,7 +137,7 @@ public: | ||||
| 	void collectRes(const PlayerColor & player) const; | ||||
| 	GameResID resourceID() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CArmedInstance&>(*this); | ||||
| 		h & amount; | ||||
| @@ -172,7 +172,7 @@ private: | ||||
| 	std::string getHoverText(PlayerColor player) const override; | ||||
|  | ||||
| public: | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CArmedInstance&>(*this); | ||||
| 		h & producedResource; | ||||
| @@ -193,7 +193,7 @@ struct DLL_LINKAGE TeleportChannel | ||||
| 	std::vector<ObjectInstanceID> exits; | ||||
| 	EPassability passability = EPassability::UNKNOWN; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & entrances; | ||||
| 		h & exits; | ||||
| @@ -232,7 +232,7 @@ public: | ||||
| 	static std::vector<ObjectInstanceID> getPassableExits(CGameState * gs, const CGHeroInstance * h, std::vector<ObjectInstanceID> exits); | ||||
| 	static bool isExitPassable(CGameState * gs, const CGHeroInstance * h, const CGObjectInstance * obj); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & type; | ||||
| 		h & channel; | ||||
| @@ -252,7 +252,7 @@ protected: | ||||
| public: | ||||
| 	using CGTeleport::CGTeleport; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGTeleport&>(*this); | ||||
| 	} | ||||
| @@ -268,7 +268,7 @@ public: | ||||
|  | ||||
| 	static void postInit(IGameCallback * cb); | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGMonolith&>(*this); | ||||
| 	} | ||||
| @@ -283,7 +283,7 @@ class DLL_LINKAGE CGWhirlpool : public CGMonolith | ||||
| public: | ||||
| 	using CGMonolith::CGMonolith; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGMonolith&>(*this); | ||||
| 	} | ||||
| @@ -298,7 +298,7 @@ public: | ||||
| 	std::string getHoverText(const CGHeroInstance * hero) const override; | ||||
| 	void initObj(CRandomGenerator & rand) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 	} | ||||
| @@ -323,7 +323,7 @@ public: | ||||
| 	CGBoat(IGameCallback * cb); | ||||
| 	bool isCoastVisitable() const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 		h & static_cast<CBonusSystemNode&>(*this); | ||||
| @@ -353,7 +353,7 @@ protected: | ||||
| public: | ||||
| 	using CGObjectInstance::CGObjectInstance; | ||||
|  | ||||
| 	template<typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template<typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 		h & createdBoat; | ||||
| @@ -371,7 +371,7 @@ public: | ||||
| 	void initObj(CRandomGenerator & rand) override; | ||||
| 	void onHeroVisit(const CGHeroInstance * h) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 	} | ||||
| @@ -393,7 +393,7 @@ public: | ||||
| 	void initObj(CRandomGenerator & rand) override; | ||||
| 	std::string getHoverText(PlayerColor player) const override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CTeamVisited&>(*this); | ||||
| 	} | ||||
| @@ -409,7 +409,7 @@ public: | ||||
| 	void onHeroVisit(const CGHeroInstance * h) const override; | ||||
| 	void initObj(CRandomGenerator & rand) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 	} | ||||
| @@ -443,7 +443,7 @@ protected: | ||||
| public: | ||||
| 	using CGObjectInstance::CGObjectInstance; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CGObjectInstance&>(*this); | ||||
| 		h & upgradeCostPercentage; | ||||
|   | ||||
| @@ -156,7 +156,7 @@ private: | ||||
| 	void calculateTopVisibleOffset(); | ||||
|  | ||||
| public: | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & usedTiles; | ||||
| 		h & allowedTerrains; | ||||
| @@ -164,7 +164,7 @@ public: | ||||
| 		h & animationFile; | ||||
| 		h & stringID; | ||||
| 		h & id; | ||||
| 		subid.serializeIdentifier(h, id, version); | ||||
| 		subid.serializeIdentifier(h, id); | ||||
| 		h & printPriority; | ||||
| 		h & visitDir; | ||||
| 		h & editorAnimationFile; | ||||
|   | ||||
| @@ -44,7 +44,7 @@ struct DLL_LINKAGE Rumor | ||||
| 	~Rumor() = default; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & name; | ||||
| 		h & text; | ||||
| @@ -64,7 +64,7 @@ struct DLL_LINKAGE DisposedHero | ||||
| 	std::set<PlayerColor> players; /// Who can hire this hero (bitfield). | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & heroId; | ||||
| 		h & portrait; | ||||
| @@ -173,7 +173,7 @@ private: | ||||
|  | ||||
| public: | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler &h, const int formatVersion) | ||||
| 	void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & static_cast<CMapHeader&>(*this); | ||||
| 		h & triggeredEvents; //from CMapHeader | ||||
|   | ||||
| @@ -43,7 +43,7 @@ public: | ||||
| 	ui32 nextOccurence; /// specifies after how many days the event will occur the next time; 0 if event occurs only one time | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & name; | ||||
| 		h & message; | ||||
| @@ -68,7 +68,7 @@ public: | ||||
| 	std::vector<si32> creatures; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & static_cast<CMapEvent &>(*this); | ||||
| 		h & buildings; | ||||
| @@ -112,7 +112,7 @@ struct DLL_LINKAGE TerrainTile | ||||
| 	std::vector<CGObjectInstance *> blockingObjects; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & terType; | ||||
| 		h & terView; | ||||
|   | ||||
| @@ -32,7 +32,7 @@ struct DLL_LINKAGE SHeroName | ||||
| 	std::string heroName; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & heroId; | ||||
| 		h & heroName; | ||||
| @@ -76,7 +76,7 @@ struct DLL_LINKAGE PlayerInfo | ||||
| 	TeamID team; /// The default value NO_TEAM | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & hasRandomHero; | ||||
| 		h & mainCustomHeroId; | ||||
| @@ -128,7 +128,7 @@ struct DLL_LINKAGE EventCondition | ||||
| 	EWinLoseType condition; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & objectID; | ||||
| 		h & value; | ||||
| @@ -156,7 +156,7 @@ struct DLL_LINKAGE EventEffect | ||||
| 	MetaString toOtherMessage; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & type; | ||||
| 		h & toOtherMessage; | ||||
| @@ -181,7 +181,7 @@ struct DLL_LINKAGE TriggeredEvent | ||||
| 	EventEffect effect; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & identifier; | ||||
| 		h & trigger; | ||||
| @@ -245,7 +245,7 @@ public: | ||||
| 	void registerMapStrings(); | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int Version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & texts; | ||||
| 		h & version; | ||||
|   | ||||
| @@ -55,7 +55,7 @@ void CMapInfo::mapInit(const std::string & fname) | ||||
|  | ||||
| void CMapInfo::saveInit(const ResourcePath & file) | ||||
| { | ||||
| 	CLoadFile lf(*CResourceHandler::get()->getResourceName(file), MINIMAL_SERIALIZATION_VERSION); | ||||
| 	CLoadFile lf(*CResourceHandler::get()->getResourceName(file), ESerializationVersion::MINIMAL); | ||||
| 	lf.checkMagicBytes(SAVEGAME_MAGIC); | ||||
|  | ||||
| 	mapHeader = std::make_unique<CMapHeader>(); | ||||
|   | ||||
| @@ -58,7 +58,7 @@ public: | ||||
| 	int getMapSizeFormatIconId() const; | ||||
| 	std::string getMapSizeName() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int Version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & mapHeader; | ||||
| 		h & campaign; | ||||
|   | ||||
| @@ -22,7 +22,7 @@ class ActiveModsInSaveList | ||||
| 	/// Checks whether provided mod list is compatible with current VLC and throws on failure | ||||
| 	void verifyActiveMods(const std::vector<std::pair<TModID, ModVerificationInfo>> & modList); | ||||
| public: | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		if(h.saving) | ||||
| 		{ | ||||
|   | ||||
| @@ -38,7 +38,7 @@ struct DLL_LINKAGE CModVersion | ||||
| 	bool compatible(const CModVersion & other, bool checkMinor = false, bool checkPatch = false) const; | ||||
| 	bool isNull() const; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & major; | ||||
| 		h & minor; | ||||
|   | ||||
| @@ -31,7 +31,7 @@ struct ModVerificationInfo | ||||
| 	bool impactsGameplay = true; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int v) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & name; | ||||
| 		h & version; | ||||
|   | ||||
| @@ -38,7 +38,7 @@ struct ArtifactLocation | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & artHolder; | ||||
| 		h & slot; | ||||
|   | ||||
| @@ -47,7 +47,7 @@ public: | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & id; | ||||
| 		h & healthDelta; | ||||
| @@ -69,7 +69,7 @@ public: | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & id; | ||||
| 		h & data; | ||||
|   | ||||
| @@ -43,7 +43,7 @@ struct Component | ||||
| 	ComponentSubType subType; | ||||
| 	std::optional<int32_t> value; // + give; - take | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & type; | ||||
| 		h & subType; | ||||
|   | ||||
| @@ -21,7 +21,7 @@ public: | ||||
| 	Metatype metatype = Metatype::UNKNOWN; | ||||
| 	int32_t entityIndex = 0; | ||||
| 	JsonNode data; | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & metatype; | ||||
| 		h & entityIndex; | ||||
|   | ||||
| @@ -27,7 +27,7 @@ struct DLL_LINKAGE CPack | ||||
| 	CPack() = default; | ||||
| 	virtual ~CPack() = default; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		logNetwork->error("CPack serialized... this should not happen!"); | ||||
| 		assert(false && "CPack serialized"); | ||||
| @@ -66,7 +66,7 @@ struct DLL_LINKAGE CPackForServer : public CPack | ||||
| 	mutable PlayerColor player = PlayerColor::NEUTRAL; | ||||
| 	mutable si32 requestID; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h) | ||||
| 	{ | ||||
| 		h & player; | ||||
| 		h & requestID; | ||||
|   | ||||
| @@ -62,7 +62,7 @@ struct DLL_LINKAGE PackageApplied : public CPackForClient | ||||
| 	ui32 requestID = 0; //an ID given by client to the request that was applied | ||||
| 	PlayerColor player; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & result; | ||||
| 		h & packType; | ||||
| @@ -83,7 +83,7 @@ struct DLL_LINKAGE SystemMessage : public CPackForClient | ||||
|  | ||||
| 	std::string text; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & text; | ||||
| 	} | ||||
| @@ -100,7 +100,7 @@ struct DLL_LINKAGE PlayerBlocked : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & reason; | ||||
| 		h & startOrEnd; | ||||
| @@ -118,7 +118,7 @@ struct DLL_LINKAGE PlayerCheated : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & player; | ||||
| 		h & losingCheatCode; | ||||
| @@ -133,7 +133,7 @@ struct DLL_LINKAGE TurnTimeUpdate : public CPackForClient | ||||
| 	PlayerColor player; | ||||
| 	TurnTimerInfo turnTimer; | ||||
| 		 | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & player; | ||||
| 		h & turnTimer; | ||||
| @@ -148,7 +148,7 @@ struct DLL_LINKAGE PlayerStartsTurn : public Query | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & queryID; | ||||
| 		h & player; | ||||
| @@ -164,7 +164,7 @@ struct DLL_LINKAGE DaysWithoutTown : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & player; | ||||
| 		h & daysWithoutCastle; | ||||
| @@ -179,7 +179,7 @@ struct DLL_LINKAGE EntitiesChanged : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & changes; | ||||
| 	} | ||||
| @@ -195,7 +195,7 @@ struct DLL_LINKAGE SetResources : public CPackForClient | ||||
| 	PlayerColor player; | ||||
| 	ResourceSet res; //res[resid] => res amount | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & abs; | ||||
| 		h & player; | ||||
| @@ -214,7 +214,7 @@ struct DLL_LINKAGE SetPrimSkill : public CPackForClient | ||||
| 	PrimarySkill which = PrimarySkill::ATTACK; | ||||
| 	si64 val = 0; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & abs; | ||||
| 		h & id; | ||||
| @@ -234,7 +234,7 @@ struct DLL_LINKAGE SetSecSkill : public CPackForClient | ||||
| 	SecondarySkill which; | ||||
| 	ui16 val = 0; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & abs; | ||||
| 		h & id; | ||||
| @@ -258,7 +258,7 @@ struct DLL_LINKAGE HeroVisitCastle : public CPackForClient | ||||
| 		return flags & 1; | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & flags; | ||||
| 		h & tid; | ||||
| @@ -276,7 +276,7 @@ struct DLL_LINKAGE ChangeSpells : public CPackForClient | ||||
| 	ObjectInstanceID hid; | ||||
| 	std::set<SpellID> spells; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & learn; | ||||
| 		h & hid; | ||||
| @@ -294,7 +294,7 @@ struct DLL_LINKAGE SetMana : public CPackForClient | ||||
| 	si32 val = 0; | ||||
| 	bool absolute = true; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & val; | ||||
| 		h & hid; | ||||
| @@ -312,7 +312,7 @@ struct DLL_LINKAGE SetMovePoints : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & val; | ||||
| 		h & hid; | ||||
| @@ -331,7 +331,7 @@ struct DLL_LINKAGE FoWChange : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & tiles; | ||||
| 		h & player; | ||||
| @@ -357,7 +357,7 @@ struct DLL_LINKAGE SetAvailableHero : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & slotID; | ||||
| 		h & roleID; | ||||
| @@ -386,7 +386,7 @@ struct DLL_LINKAGE GiveBonus : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & bonus; | ||||
| 		h & id; | ||||
| @@ -409,7 +409,7 @@ struct DLL_LINKAGE ChangeObjPos : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & objid; | ||||
| 		h & nPos; | ||||
| @@ -425,7 +425,7 @@ struct DLL_LINKAGE PlayerEndsTurn : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & player; | ||||
| 	} | ||||
| @@ -440,7 +440,7 @@ struct DLL_LINKAGE PlayerEndsGame : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & player; | ||||
| 		h & victoryLossCheckResult; | ||||
| @@ -456,7 +456,7 @@ struct DLL_LINKAGE PlayerReinitInterface : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & players; | ||||
| 		h & playerConnectionId; | ||||
| @@ -484,7 +484,7 @@ struct DLL_LINKAGE RemoveBonus : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & source; | ||||
| 		h & id; | ||||
| @@ -508,7 +508,7 @@ struct DLL_LINKAGE SetCommanderProperty : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & heroid; | ||||
| 		h & which; | ||||
| @@ -527,7 +527,7 @@ struct DLL_LINKAGE AddQuest : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & player; | ||||
| 		h & quest; | ||||
| @@ -541,7 +541,7 @@ struct DLL_LINKAGE UpdateArtHandlerLists : public CPackForClient | ||||
| 	void applyGs(CGameState * gs) const; | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & allocatedArtifacts; | ||||
| 	} | ||||
| @@ -554,7 +554,7 @@ struct DLL_LINKAGE UpdateMapEvents : public CPackForClient | ||||
| 	void applyGs(CGameState * gs) const; | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & events; | ||||
| 	} | ||||
| @@ -568,7 +568,7 @@ struct DLL_LINKAGE UpdateCastleEvents : public CPackForClient | ||||
| 	void applyGs(CGameState * gs) const; | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & town; | ||||
| 		h & events; | ||||
| @@ -583,7 +583,7 @@ struct DLL_LINKAGE ChangeFormation : public CPackForClient | ||||
| 	void applyGs(CGameState * gs) const; | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & hid; | ||||
| 		h & formation; | ||||
| @@ -608,7 +608,7 @@ struct DLL_LINKAGE RemoveObject : public CPackForClient | ||||
| 	/// Player that initiated this action, if any | ||||
| 	PlayerColor initiator; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & objectID; | ||||
| 		h & initiator; | ||||
| @@ -644,7 +644,7 @@ struct DLL_LINKAGE TryMoveHero : public CPackForClient | ||||
| 		return result != SUCCESS && result != EMBARK && result != DISEMBARK && result != TELEPORTATION; | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & id; | ||||
| 		h & result; | ||||
| @@ -666,7 +666,7 @@ struct DLL_LINKAGE NewStructures : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & tid; | ||||
| 		h & bid; | ||||
| @@ -684,7 +684,7 @@ struct DLL_LINKAGE RazeStructures : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & tid; | ||||
| 		h & bid; | ||||
| @@ -701,7 +701,7 @@ struct DLL_LINKAGE SetAvailableCreatures : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & tid; | ||||
| 		h & creatures; | ||||
| @@ -718,7 +718,7 @@ struct DLL_LINKAGE SetHeroesInTown : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & tid; | ||||
| 		h & visiting; | ||||
| @@ -738,7 +738,7 @@ struct DLL_LINKAGE HeroRecruited : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & hid; | ||||
| 		h & tid; | ||||
| @@ -758,7 +758,7 @@ struct DLL_LINKAGE GiveHero : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & id; | ||||
| 		h & boatId; | ||||
| @@ -774,7 +774,7 @@ struct DLL_LINKAGE OpenWindow : public Query | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & queryID; | ||||
| 		h & window; | ||||
| @@ -800,10 +800,10 @@ struct DLL_LINKAGE NewObject : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & ID; | ||||
| 		subID.serializeIdentifier(h, ID, version); | ||||
| 		subID.serializeIdentifier(h, ID); | ||||
| 		h & targetPos; | ||||
| 		h & initiator; | ||||
| 	} | ||||
| @@ -819,7 +819,7 @@ struct DLL_LINKAGE SetAvailableArtifacts : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & id; | ||||
| 		h & arts; | ||||
| @@ -841,7 +841,7 @@ struct DLL_LINKAGE ChangeStackCount : CGarrisonOperationPack | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & army; | ||||
| 		h & slot; | ||||
| @@ -860,7 +860,7 @@ struct DLL_LINKAGE SetStackType : CGarrisonOperationPack | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & army; | ||||
| 		h & slot; | ||||
| @@ -876,7 +876,7 @@ struct DLL_LINKAGE EraseStack : CGarrisonOperationPack | ||||
| 	void applyGs(CGameState * gs); | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & army; | ||||
| 		h & slot; | ||||
| @@ -893,7 +893,7 @@ struct DLL_LINKAGE SwapStacks : CGarrisonOperationPack | ||||
| 	void applyGs(CGameState * gs); | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & srcArmy; | ||||
| 		h & dstArmy; | ||||
| @@ -912,7 +912,7 @@ struct DLL_LINKAGE InsertNewStack : CGarrisonOperationPack | ||||
| 	void applyGs(CGameState * gs); | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & army; | ||||
| 		h & slot; | ||||
| @@ -934,7 +934,7 @@ struct DLL_LINKAGE RebalanceStacks : CGarrisonOperationPack | ||||
| 	void applyGs(CGameState * gs); | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & srcArmy; | ||||
| 		h & dstArmy; | ||||
| @@ -952,7 +952,7 @@ struct DLL_LINKAGE BulkRebalanceStacks : CGarrisonOperationPack | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & moves; | ||||
| 	} | ||||
| @@ -967,7 +967,7 @@ struct DLL_LINKAGE BulkSmartRebalanceStacks : CGarrisonOperationPack | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> | ||||
| 	void serialize(Handler & h, const int version) | ||||
| 	void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & moves; | ||||
| 		h & changes; | ||||
| @@ -993,7 +993,7 @@ struct DLL_LINKAGE PutArtifact : CArtifactOperationPack | ||||
| 	void applyGs(CGameState * gs); | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & al; | ||||
| 		h & askAssemble; | ||||
| @@ -1008,7 +1008,7 @@ struct DLL_LINKAGE NewArtifact : public CArtifactOperationPack | ||||
| 	void applyGs(CGameState * gs); | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & art; | ||||
| 	} | ||||
| @@ -1021,7 +1021,7 @@ struct DLL_LINKAGE EraseArtifact : CArtifactOperationPack | ||||
| 	void applyGs(CGameState * gs); | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & al; | ||||
| 	} | ||||
| @@ -1041,7 +1041,7 @@ struct DLL_LINKAGE MoveArtifact : CArtifactOperationPack | ||||
| 	void applyGs(CGameState * gs); | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & src; | ||||
| 		h & dst; | ||||
| @@ -1062,7 +1062,7 @@ struct DLL_LINKAGE BulkMoveArtifacts : CArtifactOperationPack | ||||
| 			, dstPos(dstPos) | ||||
| 		{ | ||||
| 		} | ||||
| 		template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 		template <typename Handler> void serialize(Handler & h) | ||||
| 		{ | ||||
| 			h & srcPos; | ||||
| 			h & dstPos; | ||||
| @@ -1102,7 +1102,7 @@ struct DLL_LINKAGE BulkMoveArtifacts : CArtifactOperationPack | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & artsPack0; | ||||
| 		h & artsPack1; | ||||
| @@ -1124,7 +1124,7 @@ struct DLL_LINKAGE AssembledArtifact : CArtifactOperationPack | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & al; | ||||
| 		h & builtArt; | ||||
| @@ -1139,7 +1139,7 @@ struct DLL_LINKAGE DisassembledArtifact : CArtifactOperationPack | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & al; | ||||
| 	} | ||||
| @@ -1157,7 +1157,7 @@ struct DLL_LINKAGE HeroVisit : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & player; | ||||
| 		h & heroId; | ||||
| @@ -1179,7 +1179,7 @@ struct DLL_LINKAGE NewTurn : public CPackForClient | ||||
| 		ObjectInstanceID id; //id is a general serial id | ||||
| 		ui32 move; | ||||
| 		ui32 mana; | ||||
| 		template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 		template <typename Handler> void serialize(Handler & h) | ||||
| 		{ | ||||
| 			h & id; | ||||
| 			h & move; | ||||
| @@ -1197,7 +1197,7 @@ struct DLL_LINKAGE NewTurn : public CPackForClient | ||||
|  | ||||
| 	NewTurn() = default; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & heroes; | ||||
| 		h & cres; | ||||
| @@ -1218,7 +1218,7 @@ struct DLL_LINKAGE InfoWindow : public CPackForClient //103  - displays simple i | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & type; | ||||
| 		h & text; | ||||
| @@ -1241,7 +1241,7 @@ struct DLL_LINKAGE SetObjectProperty : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & id; | ||||
| 		h & what; | ||||
| @@ -1276,7 +1276,7 @@ struct DLL_LINKAGE ChangeObjectVisitors : public CPackForClient | ||||
| 	{ | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & object; | ||||
| 		h & hero; | ||||
| @@ -1296,7 +1296,7 @@ struct DLL_LINKAGE HeroLevelUp : public Query | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & queryID; | ||||
| 		h & player; | ||||
| @@ -1317,7 +1317,7 @@ struct DLL_LINKAGE CommanderLevelUp : public Query | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & queryID; | ||||
| 		h & player; | ||||
| @@ -1356,7 +1356,7 @@ struct DLL_LINKAGE BlockingDialog : public Query | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & queryID; | ||||
| 		h & text; | ||||
| @@ -1375,7 +1375,7 @@ struct DLL_LINKAGE GarrisonDialog : public Query | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & queryID; | ||||
| 		h & objid; | ||||
| @@ -1393,7 +1393,7 @@ struct DLL_LINKAGE ExchangeDialog : public Query | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & queryID; | ||||
| 		h & player; | ||||
| @@ -1418,7 +1418,7 @@ struct DLL_LINKAGE TeleportDialog : public Query | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & queryID; | ||||
| 		h & hero; | ||||
| @@ -1438,7 +1438,7 @@ struct DLL_LINKAGE MapObjectSelectDialog : public Query | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & queryID; | ||||
| 		h & player; | ||||
| @@ -1453,7 +1453,7 @@ struct DLL_LINKAGE AdvmapSpellCast : public CPackForClient | ||||
| { | ||||
| 	ObjectInstanceID casterID; | ||||
| 	SpellID spellID; | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & casterID; | ||||
| 		h & spellID; | ||||
| @@ -1470,7 +1470,7 @@ struct DLL_LINKAGE ShowWorldViewEx : public CPackForClient | ||||
|  | ||||
| 	std::vector<ObjectPosInfo> objectPositions; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & player; | ||||
| 		h & showTerrain; | ||||
| @@ -1494,7 +1494,7 @@ struct DLL_LINKAGE PlayerMessageClient : public CPackForClient | ||||
| 	PlayerColor player; | ||||
| 	std::string text; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & player; | ||||
| 		h & text; | ||||
| @@ -1509,7 +1509,7 @@ struct DLL_LINKAGE CenterView : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & pos; | ||||
| 		h & player; | ||||
|   | ||||
| @@ -32,7 +32,7 @@ struct DLL_LINKAGE BattleStart : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & info; | ||||
| @@ -48,7 +48,7 @@ struct DLL_LINKAGE BattleNextRound : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		assert(battleID != BattleID::NONE); | ||||
| @@ -65,7 +65,7 @@ struct DLL_LINKAGE BattleSetActiveStack : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & stack; | ||||
| @@ -80,7 +80,7 @@ struct DLL_LINKAGE BattleCancelled: public CPackForClient | ||||
|  | ||||
| 	BattleID battleID = BattleID::NONE; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		assert(battleID != BattleID::NONE); | ||||
| @@ -100,7 +100,7 @@ struct DLL_LINKAGE BattleResultAccepted : public CPackForClient | ||||
| 		CArmedInstance * army; | ||||
| 		TExpType exp; | ||||
|  | ||||
| 		template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 		template <typename Handler> void serialize(Handler & h) | ||||
| 		{ | ||||
| 			h & hero; | ||||
| 			h & army; | ||||
| @@ -112,7 +112,7 @@ struct DLL_LINKAGE BattleResultAccepted : public CPackForClient | ||||
| 	std::array<HeroBattleResults, 2> heroResult; | ||||
| 	ui8 winnerSide; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & heroResult; | ||||
| @@ -134,7 +134,7 @@ struct DLL_LINKAGE BattleResult : public Query | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & queryID; | ||||
| @@ -158,7 +158,7 @@ struct DLL_LINKAGE BattleLogMessage : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & lines; | ||||
| @@ -179,7 +179,7 @@ struct DLL_LINKAGE BattleStackMoved : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & stack; | ||||
| @@ -200,7 +200,7 @@ struct DLL_LINKAGE BattleUnitsChanged : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & changedStacks; | ||||
| @@ -248,7 +248,7 @@ struct BattleStackAttacked | ||||
| 		return flags & FIRE_SHIELD; | ||||
| 	} | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & stackAttacked; | ||||
| @@ -315,7 +315,7 @@ struct DLL_LINKAGE BattleAttack : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & bsa; | ||||
| @@ -343,7 +343,7 @@ struct DLL_LINKAGE StartAction : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & ba; | ||||
| @@ -357,7 +357,7 @@ struct DLL_LINKAGE EndAction : public CPackForClient | ||||
|  | ||||
| 	BattleID battleID = BattleID::NONE; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 	} | ||||
| @@ -381,7 +381,7 @@ struct DLL_LINKAGE BattleSpellCast : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & side; | ||||
| @@ -408,7 +408,7 @@ struct DLL_LINKAGE StacksInjured : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & stacks; | ||||
| @@ -422,7 +422,7 @@ struct DLL_LINKAGE BattleResultsApplied : public CPackForClient | ||||
| 	PlayerColor player1, player2; | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & player1; | ||||
| @@ -441,7 +441,7 @@ struct DLL_LINKAGE BattleObstaclesChanged : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & changes; | ||||
| @@ -457,7 +457,7 @@ struct DLL_LINKAGE CatapultAttack : public CPackForClient | ||||
| 		EWallPart attackedPart; | ||||
| 		ui8 damageDealt; | ||||
|  | ||||
| 		template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 		template <typename Handler> void serialize(Handler & h) | ||||
| 		{ | ||||
| 			h & destinationTile; | ||||
| 			h & attackedPart; | ||||
| @@ -477,7 +477,7 @@ struct DLL_LINKAGE CatapultAttack : public CPackForClient | ||||
|  | ||||
| 	void visitTyped(ICPackVisitor & visitor) override; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & attackedParts; | ||||
| @@ -498,7 +498,7 @@ struct DLL_LINKAGE BattleSetStackProperty : public CPackForClient | ||||
| 	int val = 0; | ||||
| 	int absolute = 0; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & stackID; | ||||
| @@ -523,7 +523,7 @@ struct DLL_LINKAGE BattleTriggerEffect : public CPackForClient | ||||
| 	int val = 0; | ||||
| 	int additionalInfo = 0; | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & stackID; | ||||
| @@ -543,7 +543,7 @@ struct DLL_LINKAGE BattleUpdateGateState : public CPackForClient | ||||
|  | ||||
| 	BattleID battleID = BattleID::NONE; | ||||
| 	EGateState state = EGateState::NONE; | ||||
| 	template <typename Handler> void serialize(Handler & h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler & h) | ||||
| 	{ | ||||
| 		h & battleID; | ||||
| 		h & state; | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user