Bazaar developer reference

CvLuaCity::lGetPurchaseBuildingTooltip(lua_State *)

Defined in
Lua/CvLuaCity.cpp, line 1024
Class
CvLuaCity
Hook name
CivHooks::CvLuaCity_lGetPurchaseBuildingTooltip

Hooks

static bool BeforeCvLuaCity_lGetPurchaseBuildingTooltip(lua_State* L, int& result);static void AfterCvLuaCity_lGetPurchaseBuildingTooltip(lua_State* L, int& result);static int ReplaceCvLuaCity_lGetPurchaseBuildingTooltip(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaCity_lGetPurchaseBuildingTooltip>(host, &BeforeCvLuaCity_lGetPurchaseBuildingTooltip);CivRegisterAfter<CivHooks::CvLuaCity_lGetPurchaseBuildingTooltip>(host, &AfterCvLuaCity_lGetPurchaseBuildingTooltip);CivRegisterReplace<CivHooks::CvLuaCity_lGetPurchaseBuildingTooltip>(host, &ReplaceCvLuaCity_lGetPurchaseBuildingTooltip);

Code

1024int CvLuaCity::lGetPurchaseBuildingTooltip(lua_State* L)1025{1026	CvString toolTip;1027	CvCity* pkCity = GetInstance(L);1028	const BuildingTypes eBuilding = (BuildingTypes) lua_tointeger(L, 2);10291030	// City Production Modifier1031#if defined(MOD_API_EXTENSIONS)1032	pkCity->canConstruct(eBuilding, false, false, false, false, &toolTip);1033#else1034	pkCity->canConstruct(eBuilding, false, false, false, &toolTip);1035#endif10361037	// Not enough cash money1038	if(pkCity->GetPurchaseCost(eBuilding) > GET_PLAYER(pkCity->getOwner()).GetTreasury()->GetGold())1039	{1040		Localization::String localizedText = Localization::Lookup("TXT_KEY_CANNOT_PURCHASE_NO_GOLD");10411042		const char* const localized = localizedText.toUTF8();1043		if(localized)1044		{1045			if(!toolTip.IsEmpty())1046				toolTip += "[NEWLINE]";10471048			toolTip += localized;1049		}1050	}10511052	lua_pushstring(L, toolTip.c_str());1053	return 1;1054}

Calls

Called by