//------------------------------------------------------------------------ IMPLEMENT_RMI(CGameRules, ClSetObjectiveStatus) { CHUDMissionObjective *pObjective = SAFE_HUD_FUNC_RET(GetMissionObjectiveSystem().GetMissionObjective(params.name.c_str())); if(pObjective) pObjective->SetStatus((CHUDMissionObjective::HUDMissionStatus)params.status); return true; }
//------------------------------------------------------------------------ int CScriptBind_HUD::SetObjectiveStatus(IFunctionHandler *pH,const char* pObjectiveID, int status, bool silent) { CHUD *pHUD = g_pGame->GetHUD(); if (!pHUD) return pH->EndFunction(); CHUDMissionObjective* pObj = pHUD->GetMissionObjectiveSystem().GetMissionObjective(pObjectiveID); if (pObj) { pObj->SetSilent(silent); pObj->SetStatus((CHUDMissionObjective::HUDMissionStatus)status); } else GameWarning("CScriptBind_HUD::Tried to access non existing MissionObjective '%s'", pObjectiveID); return pH->EndFunction(); }
void CHUDMissionObjectiveSystem::StopObjectiveAnalysis(const bool bSignalResultingObjective) { if (!m_currentAnalysis.empty()) { CHUDMissionObjective* pMissionObjective = GetMissionObjective(m_currentAnalysis); // May not be one if only showing UI screen anims without actual objectives for world anims if (pMissionObjective) { pMissionObjective->SetStatus(CHUDMissionObjective::ACTIVATED); } SHUDEvent hudEvent(eHUDEvent_OnObjectiveAnalysis); hudEvent.AddData(SHUDEventData(eOAE_Stop)); CHUDEventDispatcher::CallEvent(hudEvent); m_currentAnalysis = ""; } }