Hooks
static bool BeforeCvDllNetMessageHandler_ResponseSwapGreatWorks(CvDllNetMessageHandler* self, PlayerTypes ePlayer1, int iWorkIndex1, PlayerTypes ePlayer2, int iWorkIndex2);static void AfterCvDllNetMessageHandler_ResponseSwapGreatWorks(CvDllNetMessageHandler* self, PlayerTypes ePlayer1, int iWorkIndex1, PlayerTypes ePlayer2, int iWorkIndex2);static void ReplaceCvDllNetMessageHandler_ResponseSwapGreatWorks(void (*original)(CvDllNetMessageHandler*, PlayerTypes, int, PlayerTypes, int), CvDllNetMessageHandler* self, PlayerTypes ePlayer1, int iWorkIndex1, PlayerTypes ePlayer2, int iWorkIndex2);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseSwapGreatWorks::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllNetMessageHandler_ResponseSwapGreatWorks);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseSwapGreatWorks::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllNetMessageHandler_ResponseSwapGreatWorks);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseSwapGreatWorks::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllNetMessageHandler_ResponseSwapGreatWorks);