OnSameBodyOfWater(CvCity *, CvCity *)
- Defined in
- CvGameCoreUtils.cpp, line 629
- Hook name
CivHooks::OnSameBodyOfWater
Hooks
static bool BeforeOnSameBodyOfWater(CvCity* pCity1, CvCity* pCity2, bool& result);static void AfterOnSameBodyOfWater(CvCity* pCity1, CvCity* pCity2, bool& result);static bool ReplaceOnSameBodyOfWater(bool (*original)(CvCity*, CvCity*), CvCity* pCity1, CvCity* pCity2);CivRegisterBefore<CivHooks::OnSameBodyOfWater>(host, &BeforeOnSameBodyOfWater);CivRegisterAfter<CivHooks::OnSameBodyOfWater>(host, &AfterOnSameBodyOfWater);CivRegisterReplace<CivHooks::OnSameBodyOfWater>(host, &ReplaceOnSameBodyOfWater);
Code
629bool OnSameBodyOfWater(CvCity* pCity1, CvCity* pCity2)630{631 for(int iI = 0; iI < NUM_DIRECTION_TYPES; iI++)632 {633 CvPlot* pAdjacentPlot1 = plotDirection(pCity1->getX(), pCity1->getY(), ((DirectionTypes)iI));634635 if(pAdjacentPlot1 != NULL && pAdjacentPlot1->isWater())636 {637 for(int jJ = 0; jJ < NUM_DIRECTION_TYPES; jJ++)638 {639 CvPlot* pAdjacentPlot2 = plotDirection(pCity2->getX(), pCity2->getY(), ((DirectionTypes)jJ));640 if(pAdjacentPlot2 != NULL && pAdjacentPlot2->isWater())641 {642 if(pAdjacentPlot2->getArea() == pAdjacentPlot1->getArea())643 {644 return true;645 }646 }647 }648 }649 }650 return false;651}