Hooks
static bool BeforeCvLuaPlayer_lGetCityOfClosestGreatWorkSlot(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetCityOfClosestGreatWorkSlot(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetCityOfClosestGreatWorkSlot(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetCityOfClosestGreatWorkSlot>(host, &BeforeCvLuaPlayer_lGetCityOfClosestGreatWorkSlot);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetCityOfClosestGreatWorkSlot>(host, &AfterCvLuaPlayer_lGetCityOfClosestGreatWorkSlot);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetCityOfClosestGreatWorkSlot>(host, &ReplaceCvLuaPlayer_lGetCityOfClosestGreatWorkSlot);
Code
2793//CvCity *GetCityOfClosestGreatWorkSlot(int iX, int iY, GreatWorkSlotType eGreatWorkSlot);2794int CvLuaPlayer::lGetCityOfClosestGreatWorkSlot(lua_State* L)2795{2796 CvPlayerAI* pkPlayer = GetInstance(L);2797 int iX = lua_tointeger(L, 2);2798 int iY = lua_tointeger(L, 3);2799 GreatWorkSlotType eGreatWorkSlot = static_cast<GreatWorkSlotType>(lua_tointeger(L, 4));2800 BuildingClassTypes eBuildingClass;2801 int iSlot;2802 CvCity* pkCity = pkPlayer->GetCulture()->GetClosestAvailableGreatWorkSlot(iX, iY, eGreatWorkSlot, &eBuildingClass, &iSlot);2803 if (pkCity)2804 {2805 CvLuaCity::Push(L, pkCity);2806 return 1;2807 }2808 else2809 {2810 return 0;2811 }2812}