Bazaar developer reference

CvUnitMission::HasCompletedMoveMission(UnitHandle)

Defined in
CvUnitMission.cpp, line 2266
Class
CvUnitMission
Hook name
CivHooks::CvUnitMission_HasCompletedMoveMission
Lua events
GameEvents.CustomMissionCompleted

Hooks

static bool BeforeCvUnitMission_HasCompletedMoveMission(UnitHandle hUnit, bool& result);static void AfterCvUnitMission_HasCompletedMoveMission(UnitHandle hUnit, bool& result);static bool ReplaceCvUnitMission_HasCompletedMoveMission(bool (*original)(UnitHandle), UnitHandle hUnit);CivRegisterBefore<CivHooks::CvUnitMission_HasCompletedMoveMission>(host, &BeforeCvUnitMission_HasCompletedMoveMission);CivRegisterAfter<CivHooks::CvUnitMission_HasCompletedMoveMission>(host, &AfterCvUnitMission_HasCompletedMoveMission);CivRegisterReplace<CivHooks::CvUnitMission_HasCompletedMoveMission>(host, &ReplaceCvUnitMission_HasCompletedMoveMission);

Code

2265//	Returns true if the is a move mission at the head of the unit queue and it is complete2266bool CvUnitMission::HasCompletedMoveMission(UnitHandle hUnit)2267{2268	MissionQueueNode* pkMissionNode;2269	if((pkMissionNode = HeadMissionQueueNode(hUnit->m_missionQueue)) != NULL)2270	{2271		MissionData& kMissionData = *pkMissionNode;2272		if((kMissionData.eMissionType == CvTypes::getMISSION_MOVE_TO()) ||2273		        (kMissionData.eMissionType == CvTypes::getMISSION_ROUTE_TO()) ||2274		        (kMissionData.eMissionType == CvTypes::getMISSION_MOVE_TO_UNIT()))2275		{2276			CvPlot* pTargetPlot = NULL;22772278			if(kMissionData.eMissionType == CvTypes::getMISSION_MOVE_TO_UNIT())2279			{2280				UnitHandle pTargetUnit = GET_PLAYER((PlayerTypes)kMissionData.iData1).getUnit(kMissionData.iData2);2281				if(pTargetUnit)2282				{2283					pTargetPlot = pTargetUnit->plot();2284				}2285				else2286				{2287					return true;	// Our unit is gone, assume we are done.2288				}2289			}2290			else2291			{2292				pTargetPlot = GC.getMap().plot(kMissionData.iData1, kMissionData.iData2);2293			}22942295			if(pTargetPlot && hUnit->atPlot(*pTargetPlot))2296			{2297				return true;2298			}2299		}2300#if defined(MOD_EVENTS_CUSTOM_MISSIONS)2301		else if (MOD_EVENTS_CUSTOM_MISSIONS) {2302			if (GAMEEVENTINVOKE_TESTANY(GAMEEVENT_CustomMissionCompleted, hUnit->getOwner(), hUnit->GetID(), kMissionData.eMissionType, kMissionData.iData1, kMissionData.iData2, kMissionData.iFlags, kMissionData.iPushTurn) == GAMEEVENTRETURN_TRUE) {2303				return true;2304			}2305		}2306#endif2307	}23082309	return false;2310}

Calls

Called by