Bazaar developer reference

CvUnitMission::DeleteMissionQueueNode(UnitHandle, MissionData *)

Defined in
CvUnitMission.cpp, line 2084
Class
CvUnitMission
Hook name
CivHooks::CvUnitMission_DeleteMissionQueueNode

Hooks

static bool BeforeCvUnitMission_DeleteMissionQueueNode(UnitHandle hUnit, MissionData* pNode, MissionData*& result);static void AfterCvUnitMission_DeleteMissionQueueNode(UnitHandle hUnit, MissionData* pNode, MissionData*& result);static MissionData* ReplaceCvUnitMission_DeleteMissionQueueNode(MissionData* (*original)(UnitHandle, MissionData*), UnitHandle hUnit, MissionData* pNode);CivRegisterBefore<CivHooks::CvUnitMission_DeleteMissionQueueNode>(host, &BeforeCvUnitMission_DeleteMissionQueueNode);CivRegisterAfter<CivHooks::CvUnitMission_DeleteMissionQueueNode>(host, &AfterCvUnitMission_DeleteMissionQueueNode);CivRegisterReplace<CivHooks::CvUnitMission_DeleteMissionQueueNode>(host, &ReplaceCvUnitMission_DeleteMissionQueueNode);

Code

2083/// Delete a specific mission from queue2084MissionData* CvUnitMission::DeleteMissionQueueNode(UnitHandle hUnit, MissionData* pNode)2085{2086	MissionQueueNode* pNextMissionNode;20872088	CvAssertMsg(pNode != NULL, "Node is not assigned a valid value");2089	CvAssert(hUnit->getOwner() != NO_PLAYER);20902091	MissionQueue& kQueue = hUnit->m_missionQueue;20922093	if(pNode == HeadMissionQueueNode(kQueue))2094	{2095		DeactivateHeadMission(hUnit, /*iUnitCycleTimer*/ 1);2096	}20972098	pNextMissionNode = kQueue.deleteNode(pNode);2099	if(pNextMissionNode == NULL)2100		hUnit->ClearPathCache();21012102	if(pNextMissionNode == HeadMissionQueueNode(kQueue))2103	{2104		ActivateHeadMission(hUnit);2105	}21062107	if((hUnit->getOwner() == GC.getGame().getActivePlayer()) && hUnit->IsSelected())2108	{2109		GC.GetEngineUserInterface()->setDirty(Waypoints_DIRTY_BIT, true);2110		GC.GetEngineUserInterface()->setDirty(SelectionButtons_DIRTY_BIT, true);2111		GC.GetEngineUserInterface()->setDirty(UnitInfo_DIRTY_BIT, true);2112	}21132114	return pNextMissionNode;2115}

Calls

Called by