Bazaar developer reference

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}

Calls

Called by