Hooks
static bool BeforeCvDllNetMessageHandler_ResponseResearch(CvDllNetMessageHandler* self, PlayerTypes ePlayer, TechTypes eTech, int iDiscover, bool bShift);static void AfterCvDllNetMessageHandler_ResponseResearch(CvDllNetMessageHandler* self, PlayerTypes ePlayer, TechTypes eTech, int iDiscover, bool bShift);static void ReplaceCvDllNetMessageHandler_ResponseResearch(void (*original)(CvDllNetMessageHandler*, PlayerTypes, TechTypes, int, bool), CvDllNetMessageHandler* self, PlayerTypes ePlayer, TechTypes eTech, int iDiscover, bool bShift);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseResearch::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllNetMessageHandler_ResponseResearch);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseResearch::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllNetMessageHandler_ResponseResearch);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseResearch::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllNetMessageHandler_ResponseResearch);