Bazaar developer reference

CvLuaPlayer::lGetPrevCity(lua_State *)

Defined in
Lua/CvLuaPlayer.cpp, line 10083
Class
CvLuaPlayer
Hook name
CivHooks::CvLuaPlayer_lGetPrevCity

Hooks

static bool BeforeCvLuaPlayer_lGetPrevCity(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetPrevCity(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetPrevCity(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetPrevCity>(host, &BeforeCvLuaPlayer_lGetPrevCity);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetPrevCity>(host, &AfterCvLuaPlayer_lGetPrevCity);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetPrevCity>(host, &ReplaceCvLuaPlayer_lGetPrevCity);

Code

10083int CvLuaPlayer::lGetPrevCity(lua_State* L)10084{10085	CvPlayerAI* pkPlayer = GetInstance(L);10086	CvCity* pCurrentCity = CvLuaCity::GetInstance(L, 2);10087	CvCity* pLoopCity = NULL;10088	CvCity* pPrevCity = NULL;10089	int	iLoop = pCurrentCity->getIndex();10090	iLoop--;1009110092	do10093	{10094		pLoopCity = pkPlayer->nextCity(&iLoop, true);1009510096		if(pLoopCity == NULL)10097		{10098			pLoopCity = pkPlayer->firstCity(&iLoop, true);10099		}1010010101		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 purpose10102		{10103			pPrevCity = pLoopCity;10104		}1010510106	}10107	while((pLoopCity != pCurrentCity) && !pPrevCity);1010810109	CvLuaCity::Push(L, pPrevCity);10110	return 1;10111}

Calls

Called by