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}