Bazaar developer reference

CvAStar::Initialize(int, int, bool, bool, CvAPointFunc, CvAPointFunc, CvAHeuristic, CvAStarFunc, CvAStarFunc, CvAStarFunc, CvAStarFunc, CvANumExtraChildren, CvAGetExtraChild, CvABegin, CvAEnd, const void *)

Defined in
CvAStar.cpp, line 139
Class
CvAStar
Hook name
CivHooks::CvAStar_Initialize

Hooks

static bool BeforeCvAStar_Initialize(CvAStar* self, int iColumns, int iRows, bool bWrapX, bool bWrapY, CvAPointFunc IsPathDestFunc, CvAPointFunc DestValidFunc, CvAHeuristic HeuristicFunc, CvAStarFunc CostFunc, CvAStarFunc ValidFunc, CvAStarFunc NotifyChildFunc, CvAStarFunc NotifyListFunc, CvANumExtraChildren NumExtraChildrenFunc, CvAGetExtraChild GetExtraChildFunc, CvABegin InitializeFunc, CvAEnd UninitializeFunc, const void* pData);static void AfterCvAStar_Initialize(CvAStar* self, int iColumns, int iRows, bool bWrapX, bool bWrapY, CvAPointFunc IsPathDestFunc, CvAPointFunc DestValidFunc, CvAHeuristic HeuristicFunc, CvAStarFunc CostFunc, CvAStarFunc ValidFunc, CvAStarFunc NotifyChildFunc, CvAStarFunc NotifyListFunc, CvANumExtraChildren NumExtraChildrenFunc, CvAGetExtraChild GetExtraChildFunc, CvABegin InitializeFunc, CvAEnd UninitializeFunc, const void* pData);static void ReplaceCvAStar_Initialize(void (*original)(CvAStar*, int, int, bool, bool, CvAPointFunc, CvAPointFunc, CvAHeuristic, CvAStarFunc, CvAStarFunc, CvAStarFunc, CvAStarFunc, CvANumExtraChildren, CvAGetExtraChild, CvABegin, CvAEnd, const void*), CvAStar* self, int iColumns, int iRows, bool bWrapX, bool bWrapY, CvAPointFunc IsPathDestFunc, CvAPointFunc DestValidFunc, CvAHeuristic HeuristicFunc, CvAStarFunc CostFunc, CvAStarFunc ValidFunc, CvAStarFunc NotifyChildFunc, CvAStarFunc NotifyListFunc, CvANumExtraChildren NumExtraChildrenFunc, CvAGetExtraChild GetExtraChildFunc, CvABegin InitializeFunc, CvAEnd UninitializeFunc, const void* pData);CivRegisterBefore<CivHooks::CvAStar_Initialize>(host, &BeforeCvAStar_Initialize);CivRegisterAfter<CivHooks::CvAStar_Initialize>(host, &AfterCvAStar_Initialize);CivRegisterReplace<CivHooks::CvAStar_Initialize>(host, &ReplaceCvAStar_Initialize);

Code

138/// Initializes the AStar algorithm139void CvAStar::Initialize(int iColumns, int iRows, bool bWrapX, bool bWrapY, CvAPointFunc IsPathDestFunc, CvAPointFunc DestValidFunc, CvAHeuristic HeuristicFunc, CvAStarFunc CostFunc, CvAStarFunc ValidFunc, CvAStarFunc NotifyChildFunc, CvAStarFunc NotifyListFunc, CvANumExtraChildren NumExtraChildrenFunc, CvAGetExtraChild GetExtraChildFunc, CvABegin InitializeFunc, CvAEnd UninitializeFunc, const void* pData)140{141	int iI, iJ;142143	DeInit();	// free old memory just in case144145	udIsPathDest = IsPathDestFunc;146	udDestValid = DestValidFunc;147	udHeuristic = HeuristicFunc;148	udCost = CostFunc;149	udValid = ValidFunc;150	udNotifyChild = NotifyChildFunc;151	udNotifyList = NotifyListFunc;152	udNumExtraChildrenFunc = NumExtraChildrenFunc;153	udGetExtraChildFunc = GetExtraChildFunc;154	udInitializeFunc = InitializeFunc;155	udUninitializeFunc = UninitializeFunc;156157	m_pData = pData;158159	m_iColumns = iColumns;160	m_iRows = iRows;161162	m_iXstart = -1;163	m_iYstart = -1;164	m_iXdest = -1;165	m_iYdest = -1;166	m_iInfo = 0;167168	m_bWrapX = bWrapX;169	m_bWrapY = bWrapY;170	m_bForceReset = false;171172	m_pOpen = NULL;173	m_pOpenTail = NULL;174	m_pClosed = NULL;175	m_pBest = NULL;176	m_pStackHead = NULL;177178	m_ppaaNodes = reinterpret_cast<CvAStarNode**>(FMALLOCALIGNED(sizeof(CvAStarNode*)*m_iColumns, 64, c_eCiv5GameplayDLL, 0));179	for(iI = 0; iI < m_iColumns; iI++)180	{181		m_ppaaNodes[iI] = reinterpret_cast<CvAStarNode*>(FMALLOCALIGNED(sizeof(CvAStarNode)*m_iRows, 64, c_eCiv5GameplayDLL, 0));182		for(iJ = 0; iJ < m_iRows; iJ++)183		{184			new(&m_ppaaNodes[iI][iJ]) CvAStarNode();185			m_ppaaNodes[iI][iJ].m_iX = iI;186			m_ppaaNodes[iI][iJ].m_iY = iJ;187		}188	}189}

Calls

Called by