| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | /* * ActiveModsInSaveList.h, part of VCMI engine * * Authors: listed in file AUTHORS in main folder * * License: GNU General Public License v2.0 or later * Full text of license available in license.txt file, in main folder * */#pragma once#include "ModVerificationInfo.h"VCMI_LIB_NAMESPACE_BEGINclass ActiveModsInSaveList{	std::vector<TModID> getActiveGameplayAffectingMods();	const ModVerificationInfo & getVerificationInfo(TModID mod);	/// Checks whether provided mod list is compatible with current VLC and throws on failure	void verifyActiveMods(const std::map<TModID, ModVerificationInfo> & modList);public:	template <typename Handler> void serialize(Handler &h)	{		if(h.saving)		{			std::vector<TModID> activeMods = getActiveGameplayAffectingMods();			h & activeMods;			for(const auto & m : activeMods)				h & getVerificationInfo(m);		}		else		{			std::vector<TModID> saveActiveMods;			h & saveActiveMods;			std::map<TModID, ModVerificationInfo> saveModInfos;			for(int i = 0; i < saveActiveMods.size(); ++i)			{				ModVerificationInfo data;				h & saveModInfos[saveActiveMods[i]];			}			verifyActiveMods(saveModInfos);		}	}};VCMI_LIB_NAMESPACE_END
 |