Bazaar developer reference

CvLuaPlayer::lGetNumAvailableTradeUnits(lua_State *)

Defined in
Lua/CvLuaPlayer.cpp, line 4005
Class
CvLuaPlayer
Hook name
CivHooks::CvLuaPlayer_lGetNumAvailableTradeUnits

Hooks

static bool BeforeCvLuaPlayer_lGetNumAvailableTradeUnits(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetNumAvailableTradeUnits(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetNumAvailableTradeUnits(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetNumAvailableTradeUnits>(host, &BeforeCvLuaPlayer_lGetNumAvailableTradeUnits);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetNumAvailableTradeUnits>(host, &AfterCvLuaPlayer_lGetNumAvailableTradeUnits);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetNumAvailableTradeUnits>(host, &ReplaceCvLuaPlayer_lGetNumAvailableTradeUnits);

Code

4005int CvLuaPlayer::lGetNumAvailableTradeUnits(lua_State* L)4006{4007	CvPlayerAI* pkPlayer = GetInstance(L);4008	DomainTypes eDomain = (DomainTypes)lua_tointeger(L, 2);4009	CvGameTrade* pTrade = GC.getGame().GetGameTrade();40104011	int iCount = 0;4012	int iLoopUnit;4013	CvUnit* pLoopUnit;4014	for (pLoopUnit = pkPlayer->firstUnit(&iLoopUnit); pLoopUnit != NULL; pLoopUnit = pkPlayer->nextUnit(&iLoopUnit))4015	{4016		if (pLoopUnit->isTrade() && pLoopUnit->getDomainType() == eDomain && !pTrade->IsUnitIDUsed(pLoopUnit->GetID()))4017		{4018			iCount++;4019		}4020	}40214022	lua_pushinteger(L, iCount);4023	return 1;4024}

Calls

Called by