Bazaar developer reference

CvLuaCity::lGetPurchaseUnitTooltip(lua_State *)

Defined in
Lua/CvLuaCity.cpp, line 941
Class
CvLuaCity
Hook name
CivHooks::CvLuaCity_lGetPurchaseUnitTooltip

Hooks

static bool BeforeCvLuaCity_lGetPurchaseUnitTooltip(lua_State* L, int& result);static void AfterCvLuaCity_lGetPurchaseUnitTooltip(lua_State* L, int& result);static int ReplaceCvLuaCity_lGetPurchaseUnitTooltip(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaCity_lGetPurchaseUnitTooltip>(host, &BeforeCvLuaCity_lGetPurchaseUnitTooltip);CivRegisterAfter<CivHooks::CvLuaCity_lGetPurchaseUnitTooltip>(host, &AfterCvLuaCity_lGetPurchaseUnitTooltip);CivRegisterReplace<CivHooks::CvLuaCity_lGetPurchaseUnitTooltip>(host, &ReplaceCvLuaCity_lGetPurchaseUnitTooltip);

Code

941int CvLuaCity::lGetPurchaseUnitTooltip(lua_State* L)942{943	CvString toolTip;944	CvCity* pkCity = GetInstance(L);945	const UnitTypes eUnit = (UnitTypes) lua_tointeger(L, 2);946947	// City Production Modifier948	pkCity->canTrain(eUnit, false, false, false, false, &toolTip);949950	// Already a unit here951	if(!pkCity->CanPlaceUnitHere(eUnit))952	{953		Localization::String localizedText = Localization::Lookup("TXT_KEY_CANNOT_PURCHASE_UNIT_HERE");954955		const char* const localized = localizedText.toUTF8();956		if(localized)957		{958			if(!toolTip.IsEmpty())959				toolTip += "[NEWLINE]";960961			toolTip += localized;962		}963	}964965	// Not enough cash money966	if(pkCity->GetPurchaseCost(eUnit) > GET_PLAYER(pkCity->getOwner()).GetTreasury()->GetGold())967	{968		Localization::String localizedText = Localization::Lookup("TXT_KEY_CANNOT_PURCHASE_NO_GOLD");969970		const char* const localized = localizedText.toUTF8();971		if(localized)972		{973			if(!toolTip.IsEmpty())974				toolTip += "[NEWLINE]";975976			toolTip += localized;977		}978	}979980	lua_pushstring(L, toolTip.c_str());981	return 1;982}

Calls

Called by