Hooks
static bool BeforeCvLuaCity_lGetFaithPurchaseBuildingTooltip(lua_State* L, int& result);static void AfterCvLuaCity_lGetFaithPurchaseBuildingTooltip(lua_State* L, int& result);static int ReplaceCvLuaCity_lGetFaithPurchaseBuildingTooltip(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaCity_lGetFaithPurchaseBuildingTooltip>(host, &BeforeCvLuaCity_lGetFaithPurchaseBuildingTooltip);CivRegisterAfter<CivHooks::CvLuaCity_lGetFaithPurchaseBuildingTooltip>(host, &AfterCvLuaCity_lGetFaithPurchaseBuildingTooltip);CivRegisterReplace<CivHooks::CvLuaCity_lGetFaithPurchaseBuildingTooltip>(host, &ReplaceCvLuaCity_lGetFaithPurchaseBuildingTooltip);
Code
1056int CvLuaCity::lGetFaithPurchaseBuildingTooltip(lua_State* L)1057{1058 CvString toolTip;1059 CvCity* pkCity = GetInstance(L);1060 const BuildingTypes eBuilding = (BuildingTypes) lua_tointeger(L, 2);10611062 // City Production Modifier1063#if defined(MOD_API_EXTENSIONS)1064 pkCity->canConstruct(eBuilding, false, false, false, false, &toolTip);1065#else1066 pkCity->canConstruct(eBuilding, false, false, false, &toolTip);1067#endif10681069 // Not enough faith1070 if(pkCity->GetFaithPurchaseCost(eBuilding) > GET_PLAYER(pkCity->getOwner()).GetFaith())1071 {1072 Localization::String localizedText = Localization::Lookup("TXT_KEY_CANNOT_PURCHASE_NO_FAITH");10731074 const char* const localized = localizedText.toUTF8();1075 if(localized)1076 {1077 if(!toolTip.IsEmpty())1078 toolTip += "[NEWLINE]";10791080 toolTip += localized;1081 }1082 }10831084 lua_pushstring(L, toolTip.c_str());1085 return 1;1086}