CvLuaGame::lGetUnitUpgradesTo(lua_State *)
- Defined in
- Lua/CvLuaGame.cpp, line 2187
- Class
- CvLuaGame
- Hook name
CivHooks::CvLuaGame_lGetUnitUpgradesTo
Hooks
static bool BeforeCvLuaGame_lGetUnitUpgradesTo(lua_State* L, int& result);static void AfterCvLuaGame_lGetUnitUpgradesTo(lua_State* L, int& result);static int ReplaceCvLuaGame_lGetUnitUpgradesTo(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaGame_lGetUnitUpgradesTo>(host, &BeforeCvLuaGame_lGetUnitUpgradesTo);CivRegisterAfter<CivHooks::CvLuaGame_lGetUnitUpgradesTo>(host, &AfterCvLuaGame_lGetUnitUpgradesTo);CivRegisterReplace<CivHooks::CvLuaGame_lGetUnitUpgradesTo>(host, &ReplaceCvLuaGame_lGetUnitUpgradesTo);
Code
2187int CvLuaGame::lGetUnitUpgradesTo(lua_State* L)2188{2189 const UnitTypes eUnit = (UnitTypes) lua_tointeger(L, 1);21902191 CvUnitEntry* pkUnitInfo = GC.getUnitInfo(eUnit);2192 if(pkUnitInfo == NULL)2193 {2194 luaL_error(L, "Unit row at ID %d is empty.", eUnit);2195 return 0;2196 }21972198 for(int iUnitClassLoop = 0; iUnitClassLoop < GC.getNumUnitClassInfos(); iUnitClassLoop++)2199 {2200 CvUnitClassInfo* pkUnitClassInfo = GC.getUnitClassInfo((UnitClassTypes) iUnitClassLoop);2201 if(pkUnitClassInfo != NULL)2202 {2203 if(pkUnitInfo->GetUpgradeUnitClass(iUnitClassLoop)) // Hardcoded to look at entry 02204 {2205 lua_pushinteger(L, pkUnitClassInfo->getDefaultUnitIndex());2206 return 1;2207 }2208 }2209 }22102211 lua_pushinteger(L, -1);2212 return 0;2213}