Console logging is now identical in all builds; warning and error show the console...
[supertux.git] / src / supertux / tile.hpp
index 2611a8a..60b3991 100644 (file)
 #ifndef HEADER_SUPERTUX_SUPERTUX_TILE_HPP
 #define HEADER_SUPERTUX_SUPERTUX_TILE_HPP
 
-#include <stdint.h>
 #include <vector>
+#include <stdint.h>
 
-#include "math/rect.hpp"
+#include "math/rectf.hpp"
 #include "video/surface.hpp"
 #include "util/reader_fwd.hpp"
 
 class TileSet;
 class DrawingContext;
 
-/**
-   Tile Class
-*/
 class Tile
 {
 public:
+  static bool draw_editor_images;
   /// bitset for tile attributes
   enum {
     /** solid tile that is indestructible by Tux */
@@ -86,18 +84,20 @@ public:
   };
 
   struct ImageSpec {
-    ImageSpec(const std::string& newfile, const Rect& newrect)
+    ImageSpec(const std::string& newfile, const Rectf& newrect)
       : file(newfile), rect(newrect)
     { }
 
     std::string file;
-    Rect rect;
+    Rectf rect;
   };
 
 private:
   const TileSet&         tileset;
   std::vector<ImageSpec> imagespecs;
-  std::vector<Surface*>  images;
+  std::vector<SurfacePtr>  images;
+  std::vector<ImageSpec> editor_imagespecs;
+  std::vector<SurfacePtr>  editor_images;
 
   /// tile attributes
   uint32_t attributes;
@@ -105,12 +105,12 @@ private:
   /** General purpose data attached to a tile (content of a box, type of coin)*/
   int data;
 
-  float anim_fps;
+  float fps;
 
 public:
   Tile(const TileSet& tileset);
-  Tile(const TileSet& tileset, std::vector<std::string> images, Rect rect,
-       uint32_t attributes, uint32_t data, float animfps);
+  Tile(const TileSet& tileset, const std::vector<ImageSpec>& images, const std::vector<ImageSpec>& editor_images,
+       uint32_t attributes, uint32_t data, float fps);
   ~Tile();
 
   /** load Surfaces, if not already loaded */
@@ -125,40 +125,9 @@ public:
   int getData() const
   { return data; }
 
-  /// returns the width of the tile in pixels
-  int getWidth() const
-  {
-    if(!images.size())
-    {
-      return 0;
-    }
-    else
-    {
-      return (int) images[0]->get_width();
-    }
-  }
-
-  /// returns the height of the tiles in pixels
-  int getHeight() const
-  {
-    if(!images.size())
-    {
-      return 0;
-    }
-    else
-    {
-      return (int) images[0]->get_height();
-    }
-  }
-
-  /// parses the tile and returns it's id number
-  uint32_t parse(const Reader& reader);
-
   void print_debug(int id) const;
 
 private:
-  void parse_images(const Reader& cur);
-
   //Correct small oddities in attributes that naive people
   //might miss (and rebuke them for it)
   void correct_attributes();