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
- CvGame::GetGameTrade()
- CvGameTrade::IsUnitIDUsed(int)
- CvGlobals::getGame()
CvLuaScopedInstance::GetInstance- CvPlayer::firstUnit(int *, bool)
- CvPlayer::nextUnit(int *, bool)
- CvUnit::getDomainType() const
- CvUnit::GetID() const
- CvUnit::isTrade() const
lua_pushintegerlua_tointeger