ICT290 / src / scene / AIController / Goals / GoalExplore.h
GoalExplore.h
Raw
#pragma once
//#pragma warning (disable:4786)

#include <glm/glm.hpp>

#include "ArcanistGoalTypes.h"
#include "GoalComposite.h"

class Vehicle;

class GoalExplore : public GoalComposite<Vehicle> {
   private:
    glm::vec2 m_CurrentDestination;

    // set to true when the destination for the exploration has been established
    bool m_DestinationIsSet;

   public:
    explicit GoalExplore(Vehicle* Owner)
        : GoalComposite<Vehicle>(Owner, goal_explore),
          m_DestinationIsSet(false) {}

    void Activate() override;

    int Process() override;

    void Terminate() override {}

    bool HandleMessage(const Telegram& msg) override;

    void markOwnerWithGoal() override { m_Owner->m_Goal = m_Type; }
};