Hooks
static bool BeforeCvStartPositioner_ChopIntoThreeRegions(CvStartPositioner* self, bool bTaller, CvStartRegion* region, CvStartRegion* secondRegion, CvStartRegion* thirdRegion);static void AfterCvStartPositioner_ChopIntoThreeRegions(CvStartPositioner* self, bool bTaller, CvStartRegion* region, CvStartRegion* secondRegion, CvStartRegion* thirdRegion);static void ReplaceCvStartPositioner_ChopIntoThreeRegions(void (*original)(CvStartPositioner*, bool, CvStartRegion*, CvStartRegion*, CvStartRegion*), CvStartPositioner* self, bool bTaller, CvStartRegion* region, CvStartRegion* secondRegion, CvStartRegion* thirdRegion);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvStartPositioner_ChopIntoThreeRegions::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvStartPositioner_ChopIntoThreeRegions);host->RegisterHook(host->pluginIndex, CivHooks::CvStartPositioner_ChopIntoThreeRegions::ID, CIV_HOOK_AFTER, (void*)&AfterCvStartPositioner_ChopIntoThreeRegions);host->RegisterHook(host->pluginIndex, CivHooks::CvStartPositioner_ChopIntoThreeRegions::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvStartPositioner_ChopIntoThreeRegions);
Code
575/// Performs the mechanics of dividing a region into three equal fertility subregions576void CvStartPositioner::ChopIntoThreeRegions(bool bTaller, CvStartRegion* region, CvStartRegion* secondRegion, CvStartRegion* thirdRegion)577{578 CvAssert(region);579 if(!region) return;580 CvAssert(secondRegion);581 if(!secondRegion) return;582 CvAssert(thirdRegion);583 if(!thirdRegion) return;584585 // Chop off the first third586 ChopIntoTwoRegions(bTaller, region, secondRegion, 33);587588 // Chop the bigger piece in half589 ChopIntoTwoRegions(bTaller, secondRegion, thirdRegion, 50);590}