// ============================================================== // This file is part of Glest (www.glest.org) // // Copyright (C) 2001-2008 Martio Figueroa // // You can redistribute this code and/or modify it under // the terms of the GNU General Public License as published // by the Free Software Foundation; either version 2 of the // License, or (at your option) any later version // ============================================================== #ifndef _GLEST_GAME_COMMAND_H_ #define _GLEST_GAME_COMMAND_H_ #include #include "unit.h" #include "vec.h" #include "game_constants.h" namespace Glest{ namespace Game{ using Shared::Graphics::Vec2i; class CommandType; // ===================================================== // class Command // /// A unit command // ===================================================== class Command{ private: const CommandType *commandType; Vec2i pos; UnitReference unitRef; //target unit, used to move and attack optinally CardinalDir facing; // facing, for build command const UnitType *unitType; //used for build public: //constructor Command(const CommandType *ct, const Vec2i &pos=Vec2i(0)); Command(const CommandType *ct, Unit *unit); Command(const CommandType *ct, const Vec2i &pos, const UnitType *unitType, CardinalDir facing); //get const CommandType *getCommandType() const {return commandType;} Vec2i getPos() const {return pos;} Unit* getUnit() const {return unitRef.getUnit();} const UnitType* getUnitType() const {return unitType;} CardinalDir getFacing() const {return facing;} //set void setCommandType(const CommandType *commandType); void setPos(const Vec2i &pos); void setUnit(Unit *unit); std::string toString() const; }; }}//end namespace #endif