Bazaar developer reference

CvLuaPlayer::lGetNextCity(lua_State *)

Defined in
Lua/CvLuaPlayer.cpp, line 10052
Class
CvLuaPlayer
Hook name
CivHooks::CvLuaPlayer_lGetNextCity

Hooks

static bool BeforeCvLuaPlayer_lGetNextCity(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetNextCity(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetNextCity(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetNextCity>(host, &BeforeCvLuaPlayer_lGetNextCity);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetNextCity>(host, &AfterCvLuaPlayer_lGetNextCity);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetNextCity>(host, &ReplaceCvLuaPlayer_lGetNextCity);

Code

10052int CvLuaPlayer::lGetNextCity(lua_State* L)10053{10054	CvPlayerAI* pkPlayer = GetInstance(L);10055	CvCity* pCurrentCity = CvLuaCity::GetInstance(L, 2);10056	CvCity* pLoopCity = NULL;10057	CvCity* pNextCity = NULL;10058	int	iLoop = pCurrentCity->getIndex();10059	iLoop++;1006010061	do10062	{10063		pLoopCity = pkPlayer->nextCity(&iLoop, false);1006410065		if(pLoopCity == NULL)10066		{10067			pLoopCity = pkPlayer->firstCity(&iLoop, false);10068		}1006910070		if((pLoopCity != NULL) && (pLoopCity != pCurrentCity) && !pLoopCity->IsPuppet())  // we don't want the player to be able to cycle to puppeted cities - it kind of defeats teh whole purpose10071		{10072			pNextCity = pLoopCity;10073		}1007410075	}10076	while((pLoopCity != pCurrentCity) && !pNextCity);100771007810079	CvLuaCity::Push(L, pNextCity);10080	return 1;10081}

Calls

Called by