#pragma once #include "az_coordinate.h" enum AzActionPointType { AZ_ACTION_POINT_TYPE_NONE = 0, AZ_ACTION_POINT_TYPE_WAYPOINT = 1, AZ_ACTION_POINT_TYPE_SEARCH = 2, AZ_ACTION_POINT_TYPE_RETURN = 3 }; enum AzActionSpecific { AZ_ACTION_SPECIFIC_NONE = 1 << 0, AZ_ACTION_SPECIFIC_TANK = 1 << 1, AZ_ACTION_SPECIFIC_ARTILLERY = 1 << 2, }; class AzActionPoint { public: AzActionPoint(const AzCoordinate &point, int height, AzActionPointType actionPointType, uint actionSpesific); AzCoordinate getPoint(void) const; int getHeight(void) const; AzActionPointType getType(void) const; string getTypeStr(void) const; bool isTank(void) const; bool isArtillery(void) const; string getActionSpecificStr(void) const; friend ostream &operator<<(ostream &os, const AzActionPoint &obj); private: AzCoordinate mPoint; int mHeight; AzActionPointType mType; uint mActionSpesific; };