Colors patch from qmax ( + added stat_hdr_color into levelintro.hpp...)
[supertux.git] / src / tile.hpp
index 7351a32..9518f43 100644 (file)
 #include <stdint.h>
 #include "video/surface.hpp"
 #include "math/rect.hpp"
-#include "lisp/lisp.hpp"
 
+namespace lisp { class Lisp; }
+
+class TileSet;
 class DrawingContext;
 
 /**
@@ -38,7 +40,7 @@ class Tile
 public:
   /// bitset for tile attributes
   enum {
-    /** solid tile that is indestructable by Tux */
+    /** solid tile that is indestructible by Tux */
     SOLID     = 0x0001,
     /** uni-directional solid tile */
     UNISOLID  = 0x0002,
@@ -75,7 +77,7 @@ public:
     WORLDMAP_SOUTH = 0x0002,
     WORLDMAP_EAST  = 0x0004,
     WORLDMAP_WEST  = 0x0008,
-       WORLDMAP_DIR_MASK = 0x000f,
+    WORLDMAP_DIR_MASK = 0x000f,
 
     WORLDMAP_STOP  = 0x0010,
 
@@ -97,10 +99,9 @@ public:
   };
 
 private:
-  unsigned int id;
-
+  const TileSet         *tileset;
   std::vector<ImageSpec> imagespecs;
-  std::vector<Surface*> images;
+  std::vector<Surface*>  images;
 
   /// tile attributes
   uint32_t attributes;
@@ -116,9 +117,6 @@ public:
   /** Draw a tile on the screen */
   void draw(DrawingContext& context, const Vector& pos, int z_pos) const;
 
-  unsigned int getID() const
-  { return id; }
-
   uint32_t getAttributes() const
   { return attributes; }
 
@@ -142,14 +140,14 @@ public:
   }
 
 protected:
-  friend class TileManager;
-  Tile();
-  Tile(unsigned int id, Uint32 attributes, const ImageSpec& imagespec);
+  friend class TileSet;
+  Tile(const TileSet *tileset);
+  Tile(const TileSet *tileset, Uint32 attributes, const ImageSpec& imagespec);
 
-  void load_images(const std::string& tilesetpath);
+  void load_images();
 
   /// parses the tile and returns it's id number
-  void parse(const lisp::Lisp& reader);
+  uint32_t parse(const lisp::Lisp& reader);
   void parse_images(const lisp::Lisp& cur);
 };