Bazaar developer reference

CvGameTrade::CreateVis(int)

Defined in
CvTradeClasses.cpp, line 1549
Class
CvGameTrade
Hook name
CivHooks::CvGameTrade_CreateVis

Hooks

static bool BeforeCvGameTrade_CreateVis(CvGameTrade* self, int iIndex);static void AfterCvGameTrade_CreateVis(CvGameTrade* self, int iIndex);static void ReplaceCvGameTrade_CreateVis(void (*original)(CvGameTrade*, int), CvGameTrade* self, int iIndex);CivRegisterBefore<CivHooks::CvGameTrade_CreateVis>(host, &BeforeCvGameTrade_CreateVis);CivRegisterAfter<CivHooks::CvGameTrade_CreateVis>(host, &AfterCvGameTrade_CreateVis);CivRegisterReplace<CivHooks::CvGameTrade_CreateVis>(host, &ReplaceCvGameTrade_CreateVis);

Code

1549void CvGameTrade::CreateVis(int iIndex)1550{1551	CvAssertMsg(iIndex >= 0 && iIndex < (int)m_aTradeConnections.size(), "iIndex out of bounds");1552	if (iIndex < 0 || iIndex >= (int)m_aTradeConnections.size())1553	{1554		return;1555	}15561557	TradeConnection& kTradeConnection = m_aTradeConnections[iIndex];15581559	if (kTradeConnection.m_unitID == -1)1560	{1561#if defined(MOD_BUGFIX_UNITCLASS_NOT_UNIT)1562		CvPlayer& kPlayer = GET_PLAYER(kTradeConnection.m_eOriginOwner);1563		UnitTypes eUnitType = CvPlayerTrade::GetTradeUnit(kTradeConnection.m_eDomain, &kPlayer);1564#else1565		UnitTypes eUnitType = CvPlayerTrade::GetTradeUnit(kTradeConnection.m_eDomain);1566#endif1567		if (eUnitType != NO_UNIT)1568		{1569#if !defined(MOD_BUGFIX_UNITCLASS_NOT_UNIT)1570			CvPlayer& kPlayer = GET_PLAYER(kTradeConnection.m_eOriginOwner);1571#endif1572			CvUnit* pkUnit = kPlayer.initUnit(eUnitType, kTradeConnection.m_aPlotList[kTradeConnection.m_iTradeUnitLocationIndex].m_iX, kTradeConnection.m_aPlotList[kTradeConnection.m_iTradeUnitLocationIndex].m_iY, NO_UNITAI, NO_DIRECTION, false, true, TRADE_UNIT_MAP_LAYER);1573			if (pkUnit)1574			{1575				pkUnit->SetAutomateType(AUTOMATE_TRADE);1576				kTradeConnection.m_unitID = pkUnit->GetID();1577			}1578		}1579	}1580}

Calls

Called by