pt.po updates from José JORGE <lists.jjorge@free.fr>
[supertux.git] / src / tile.hpp
index c03154f..fd1f69a 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;
 
 /**
@@ -65,6 +67,8 @@ public:
     WATER     = 0x0200,
     /** a tile that hurts the player if he touches it */
     HURTS     = 0x0400,
+    /** for lava: WATER, HURTS, FIRE */
+    FIRE      = 0x0800
   };
 
   /// worldmap flags
@@ -73,6 +77,7 @@ public:
     WORLDMAP_SOUTH = 0x0002,
     WORLDMAP_EAST  = 0x0004,
     WORLDMAP_WEST  = 0x0008,
+       WORLDMAP_DIR_MASK = 0x000f,
 
     WORLDMAP_STOP  = 0x0010,
 
@@ -94,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;
@@ -113,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; }
 
@@ -139,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);
 };