//---------------------------- HandleMessage ---------------------------------- //----------------------------------------------------------------------------- bool Goal_Explore::HandleMessage(const Telegram& msg) { //first, pass the message down the goal hierarchy bool bHandled = ForwardMessageToFrontMostSubgoal(msg); //if the msg was not handled, test to see if this goal can handle it if (bHandled == false) { switch(msg.Msg) { case Msg_PathReady: //clear any existing goals RemoveAllSubgoals(); AddSubgoal(new Goal_FollowPath(m_pOwner, m_pOwner->GetPathPlanner()->GetPath())); return true; //msg handled case Msg_NoPathAvailable: m_iStatus = failed; return true; //msg handled default: return false; } } //handled by subgoals return true; }
//---------------------------- HandleMessage ---------------------------------- //----------------------------------------------------------------------------- bool Goal_GetItem::HandleMessage(const Telegram& msg) { //first, pass the message down the goal hierarchy bool bHandled = ForwardMessageToFrontMostSubgoal(msg); //if the msg was not handled, test to see if this goal can handle it if (bHandled == false) { switch(msg.Msg) { case Msg_PathReady: //clear any existing goals RemoveAllSubgoals(); AddSubgoal(new Goal_FollowPath(m_pOwner, m_pOwner->GetPathPlanner()->GetPath())); //get the pointer to the item m_pGiverTrigger = static_cast<Raven_Map::TriggerType*>(msg.ExtraInfo); return true; //msg handled case Msg_NoPathAvailable: m_iStatus = failed; return true; //msg handled default: return false; } } //handled by subgoals return true; }