Bazaar developer reference

CvLuaPlayer::lGetBuildingOfClosestGreatWorkSlot(lua_State *)

Defined in
Lua/CvLuaPlayer.cpp, line 2815
Class
CvLuaPlayer
Hook name
CivHooks::CvLuaPlayer_lGetBuildingOfClosestGreatWorkSlot

Hooks

static bool BeforeCvLuaPlayer_lGetBuildingOfClosestGreatWorkSlot(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetBuildingOfClosestGreatWorkSlot(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetBuildingOfClosestGreatWorkSlot(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetBuildingOfClosestGreatWorkSlot>(host, &BeforeCvLuaPlayer_lGetBuildingOfClosestGreatWorkSlot);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetBuildingOfClosestGreatWorkSlot>(host, &AfterCvLuaPlayer_lGetBuildingOfClosestGreatWorkSlot);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetBuildingOfClosestGreatWorkSlot>(host, &ReplaceCvLuaPlayer_lGetBuildingOfClosestGreatWorkSlot);

Code

2814//BuildingType GetBuildingOfClosestGreatWorkSlot(int iX, int iY, GreatWorkSlotType eGreatWorkSlot);2815int CvLuaPlayer::lGetBuildingOfClosestGreatWorkSlot(lua_State* L)2816{2817	CvPlayerAI* pkPlayer = GetInstance(L);2818	int iX = lua_tointeger(L, 2);2819	int iY = lua_tointeger(L, 3);2820	GreatWorkSlotType eGreatWorkSlot = static_cast<GreatWorkSlotType>(lua_tointeger(L, 4));2821	BuildingClassTypes eBuildingClass;2822	int iSlot;2823	CvCity* pkCity = pkPlayer->GetCulture()->GetClosestAvailableGreatWorkSlot(iX, iY, eGreatWorkSlot, &eBuildingClass, &iSlot);2824	CvCivilizationInfo *pkCivInfo = GC.getCivilizationInfo(pkPlayer->getCivilizationType());2825	if (pkCity && pkCivInfo)2826	{2827		int iBuilding = pkCivInfo->getCivilizationBuildings(eBuildingClass);2828		lua_pushinteger(L, iBuilding);2829		return 1;2830	}2831	else2832	{2833		return 0;2834	}2835}

Calls

Called by