00001 #ifndef XCLONE_MAPOBJECT_H 00002 #define XCLONE_MAPOBJECT_H 00003 00004 #include "includes.h" 00005 #include "GameEntity.h" 00006 #include "Direction.h" 00007 00008 class MapObject; 00009 00010 enum dir { NE = 1, NW = 2, SE = 4, SW = 8 }; 00011 typedef boost::shared_ptr<MapObject> spMapObject; 00012 00013 class MapObject : public GameEntity 00014 { 00015 public: 00016 MapObject(); 00017 virtual ~MapObject(); 00018 00019 virtual bool isPassable() const = 0; 00020 virtual bool isPassable(Direction dir) const = 0; 00021 virtual void destroy() = 0; 00022 00023 virtual void draw(Point position, Point dimensions) const = 0; 00024 }; 00025 00026 #endif