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
- CvCity::CanPlaceUnitHere(UnitTypes)
- CvCity::canTrain(UnitTypes, bool, bool, bool, bool, CvString *) const
- CvCity::getOwner() const
- CvCity::GetPurchaseCost(UnitTypes)
CvLuaScopedInstance::GetInstance- CvPlayer::GetTreasury() const
- CvPlayerAI::getPlayer(PlayerTypes)
CvString::CvStringCvString::IsEmpty- CvTreasury::GetGold() const
Localization::LookupLocalization::String::toUTF8lua_pushstringlua_tointegerstd::basic_string::c_strstd::basic_string::operator+=