#include "StdInc.h" #define INSTANTIATE_REGISTER_TYPES_HERE #include "RegisterTypes.h" #include "mapping/CMapInfo.h" #include "StartInfo.h" #include "BattleState.h" #include "CGameState.h" #include "mapping/CMap.h" #include "CModHandler.h" #include "CObjectHandler.h" #include "CCreatureHandler.h" #include "VCMI_Lib.h" #include "CArtHandler.h" #include "CHeroHandler.h" #include "CSpellHandler.h" #include "CTownHandler.h" #include "mapping/CCampaignHandler.h" #include "NetPacks.h" #include "CDefObjInfoHandler.h" // For reference: peak memory usage by gcc during compilation of register type templates // registerTypesMapObjects: 1.9 Gb // registerTypes2: 2.2 Gb // registerTypesClientPacks1 1.6 Gb // registerTypesClientPacks2 1.6 Gb // registerTypesServerPacks: 1.3 Gb // registerTypes4: 1.3 Gb #define DEFINE_EXTERNAL_METHOD(METHODNAME) \ extern template DLL_LINKAGE void METHODNAME>(CISer& s); \ extern template DLL_LINKAGE void METHODNAME>(COSer& s); \ extern template DLL_LINKAGE void METHODNAME>(CISer& s); \ extern template DLL_LINKAGE void METHODNAME>(COSer& s); \ extern template DLL_LINKAGE void METHODNAME(CSaveFile & s); \ extern template DLL_LINKAGE void METHODNAME(CLoadFile & s); \ extern template DLL_LINKAGE void METHODNAME(CTypeList & s); \ extern template DLL_LINKAGE void METHODNAME(CLoadIntegrityValidator & s); DEFINE_EXTERNAL_METHOD(registerTypesMapObjects) DEFINE_EXTERNAL_METHOD(registerTypesClientPacks1) DEFINE_EXTERNAL_METHOD(registerTypesClientPacks2) DEFINE_EXTERNAL_METHOD(registerTypesServerPacks) DEFINE_EXTERNAL_METHOD(registerTypesPregamePacks) template void registerTypes>(CISer& s); template void registerTypes>(COSer& s); template void registerTypes>(CISer& s); template void registerTypes>(COSer& s); template void registerTypes(CSaveFile & s); template void registerTypes(CLoadFile & s); template void registerTypes(CTypeList & s); template void registerTypes(CLoadIntegrityValidator & s);