mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	Fix client build
* use regular overloaded methods for client serialization. (serialize template not needed if connection.h already included and save/load code is different)
This commit is contained in:
		| @@ -493,11 +493,10 @@ void CClient::newGame( CConnection *con, StartInfo *si ) | ||||
| // 	} | ||||
| } | ||||
|  | ||||
| template <typename Handler> | ||||
| void CClient::serialize( Handler &h, const int version ) | ||||
| void CClient::serialize(COSer & h, const int version) | ||||
| { | ||||
| 	h & hotSeat; | ||||
| 	if(h.saving) | ||||
| 	assert(h.saving); | ||||
| 	h & hotSeat;	 | ||||
| 	{ | ||||
| 		ui8 players = playerint.size(); | ||||
| 		h & players; | ||||
| @@ -507,11 +506,15 @@ void CClient::serialize( Handler &h, const int version ) | ||||
| 			LOG_TRACE_PARAMS(logGlobal, "Saving player %s interface", i->first); | ||||
| 			assert(i->first == i->second->playerID); | ||||
| 			h & i->first & i->second->dllName & i->second->human; | ||||
| 			i->second->saveGame(dynamic_cast<COSer & >(h), version);  | ||||
| 			//evil cast that i still like better than sfinae-magic. If I had a "static if"... | ||||
| 			i->second->saveGame(h, version); 			 | ||||
| 		} | ||||
| 	} | ||||
| 	else | ||||
| } | ||||
|  | ||||
| void CClient::serialize(CISer & h, const int version) | ||||
| { | ||||
| 	assert(!h.saving); | ||||
| 	h & hotSeat; | ||||
| 	{ | ||||
| 		ui8 players = 0; //fix for uninitialized warning | ||||
| 		h & players; | ||||
| @@ -551,7 +554,7 @@ void CClient::serialize( Handler &h, const int version ) | ||||
| 			nInt->playerID = pid; | ||||
|  | ||||
| 			installNewPlayerInterface(nInt, pid); | ||||
| 			nInt->loadGame(dynamic_cast<CISer & >(h), version); //another evil cast, check above | ||||
| 			nInt->loadGame(h, version); //another evil cast, check above | ||||
| 		} | ||||
|  | ||||
| 		if(!vstd::contains(battleints, PlayerColor::NEUTRAL)) | ||||
| @@ -559,11 +562,10 @@ void CClient::serialize( Handler &h, const int version ) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| template <typename Handler> | ||||
| void CClient::serialize( Handler &h, const int version, const std::set<PlayerColor>& playerIDs) | ||||
| void CClient::serialize(COSer & h, const int version, const std::set<PlayerColor> & playerIDs) | ||||
| { | ||||
| 	assert(h.saving); | ||||
| 	h & hotSeat; | ||||
| 	if(h.saving) | ||||
| 	{ | ||||
| 		ui8 players = playerint.size(); | ||||
| 		h & players; | ||||
| @@ -573,11 +575,15 @@ void CClient::serialize( Handler &h, const int version, const std::set<PlayerCol | ||||
| 			LOG_TRACE_PARAMS(logGlobal, "Saving player %s interface", i->first); | ||||
| 			assert(i->first == i->second->playerID); | ||||
| 			h & i->first & i->second->dllName & i->second->human; | ||||
| 			i->second->saveGame(dynamic_cast<COSer & >(h), version);  | ||||
| 			//evil cast that i still like better than sfinae-magic. If I had a "static if"... | ||||
| 			i->second->saveGame(h, version); 			 | ||||
| 		} | ||||
| 	} | ||||
| 	else | ||||
| } | ||||
|  | ||||
| void CClient::serialize(CISer & h, const int version, const std::set<PlayerColor> & playerIDs) | ||||
| { | ||||
| 	assert(!h.saving); | ||||
| 	h & hotSeat; | ||||
| 	{ | ||||
| 		ui8 players = 0; //fix for uninitialized warning | ||||
| 		h & players; | ||||
| @@ -620,7 +626,7 @@ void CClient::serialize( Handler &h, const int version, const std::set<PlayerCol | ||||
|             if(playerIDs.count(pid)) | ||||
|                  installNewPlayerInterface(nInt, pid); | ||||
|  | ||||
|             nInt->loadGame(dynamic_cast<CISer & >(h), version); //another evil cast, check above             | ||||
|             nInt->loadGame(h, version);        | ||||
| 		} | ||||
|  | ||||
| 		if(playerIDs.count(PlayerColor::NEUTRAL)) | ||||
| @@ -901,8 +907,6 @@ std::string CClient::aiNameForPlayer(const PlayerSettings &ps, bool battleAI) | ||||
| 	return goodAI; | ||||
| } | ||||
|  | ||||
| template void CClient::serialize(CISer & h, const int version); | ||||
| template void CClient::serialize(COSer & h, const int version); | ||||
|  | ||||
| void CServerHandler::startServer() | ||||
| { | ||||
|   | ||||
| @@ -32,6 +32,8 @@ struct SharedMem; | ||||
| class CClient; | ||||
| class CScriptingModule; | ||||
| struct CPathsInfo; | ||||
| class CISer; | ||||
| class COSer; | ||||
| namespace boost { class thread; } | ||||
|  | ||||
| /// structure to handle running server and connecting to it | ||||
| @@ -236,7 +238,10 @@ public: | ||||
|  | ||||
| 	////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version); | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version, const std::set<PlayerColor>& playerIDs); | ||||
| 	void serialize(COSer &h, const int version); | ||||
| 	void serialize(CISer &h, const int version); | ||||
| 	 | ||||
| 	void serialize(COSer &h, const int version, const std::set<PlayerColor>& playerIDs); | ||||
| 	void serialize(CISer &h, const int version, const std::set<PlayerColor>& playerIDs); | ||||
| 	void battleFinished(); | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user