projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fire Tux for single-sprite version of tux
[supertux.git]
/
src
/
tile.hpp
diff --git
a/src/tile.hpp
b/src/tile.hpp
index
07b57d9
..
fd1f69a
100644
(file)
--- a/
src/tile.hpp
+++ b/
src/tile.hpp
@@
-26,8
+26,10
@@
#include <stdint.h>
#include "video/surface.hpp"
#include "math/rect.hpp"
#include <stdint.h>
#include "video/surface.hpp"
#include "math/rect.hpp"
-#include "lisp/lisp.hpp"
+namespace lisp { class Lisp; }
+
+class TileSet;
class DrawingContext;
/**
class DrawingContext;
/**
@@
-38,7
+40,7
@@
class Tile
public:
/// bitset for tile attributes
enum {
public:
/// bitset for tile attributes
enum {
- /** solid tile that is indestructable by Tux */
+ /** solid tile that is indestructable by Tux */
SOLID = 0x0001,
/** uni-directional solid tile */
UNISOLID = 0x0002,
SOLID = 0x0001,
/** uni-directional solid tile */
UNISOLID = 0x0002,
@@
-58,13
+60,15
@@
public:
/* interesting flags (the following are passed to gameobjects) */
FIRST_INTERESTING_FLAG = 0x0100,
/* interesting flags (the following are passed to gameobjects) */
FIRST_INTERESTING_FLAG = 0x0100,
-
+
/** an ice brick that makes tux sliding more than usual */
ICE = 0x0100,
/** an ice brick that makes tux sliding more than usual */
ICE = 0x0100,
- /** a water tile in which tux starts to swim */
+ /** a water tile in which tux starts to swim */
WATER = 0x0200,
/** a tile that hurts the player if he touches it */
HURTS = 0x0400,
WATER = 0x0200,
/** a tile that hurts the player if he touches it */
HURTS = 0x0400,
+ /** for lava: WATER, HURTS, FIRE */
+ FIRE = 0x0800
};
/// worldmap flags
};
/// worldmap flags
@@
-73,6
+77,7
@@
public:
WORLDMAP_SOUTH = 0x0002,
WORLDMAP_EAST = 0x0004,
WORLDMAP_WEST = 0x0008,
WORLDMAP_SOUTH = 0x0002,
WORLDMAP_EAST = 0x0004,
WORLDMAP_WEST = 0x0008,
+ WORLDMAP_DIR_MASK = 0x000f,
WORLDMAP_STOP = 0x0010,
WORLDMAP_STOP = 0x0010,
@@
-83,7
+88,7
@@
public:
WORLDMAP_CSEW = WORLDMAP_SOUTH | WORLDMAP_EAST | WORLDMAP_WEST,
WORLDMAP_CNSEW = WORLDMAP_NORTH | WORLDMAP_SOUTH | WORLDMAP_EAST | WORLDMAP_WEST
};
WORLDMAP_CSEW = WORLDMAP_SOUTH | WORLDMAP_EAST | WORLDMAP_WEST,
WORLDMAP_CNSEW = WORLDMAP_NORTH | WORLDMAP_SOUTH | WORLDMAP_EAST | WORLDMAP_WEST
};
-
+
struct ImageSpec {
ImageSpec(const std::string& newfile, const Rect& newrect)
: file(newfile), rect(newrect)
struct ImageSpec {
ImageSpec(const std::string& newfile, const Rect& newrect)
: file(newfile), rect(newrect)
@@
-94,32
+99,23
@@
public:
};
private:
};
private:
- unsigned int id;
-
+ const TileSet *tileset;
std::vector<ImageSpec> imagespecs;
std::vector<ImageSpec> imagespecs;
- std::vector<Surface*> images;
+ std::vector<Surface*>
images;
- std::string editor_imagefile;
- Surface* editor_image;
-
- /** tile attributes */
+ /// tile attributes
uint32_t attributes;
uint32_t attributes;
-
+
/** General purpose data attached to a tile (content of a box, type of coin)*/
int data;
/** General purpose data attached to a tile (content of a box, type of coin)*/
int data;
-
+
float anim_fps;
public:
~Tile();
float anim_fps;
public:
~Tile();
-
- /** Draw a tile on the screen */
- void draw(DrawingContext& context, const Vector& pos, int layer) const;
-
- Surface* get_editor_image() const;
- unsigned int getID() const
- { return id; }
+ /** Draw a tile on the screen */
+ void draw(DrawingContext& context, const Vector& pos, int z_pos) const;
uint32_t getAttributes() const
{ return attributes; }
uint32_t getAttributes() const
{ return attributes; }
@@
-129,7
+125,7
@@
public:
/// returns the width of the tile in pixels
int getWidth() const
/// returns the width of the tile in pixels
int getWidth() const
- {
+ {
if(!images.size())
return 0;
return (int) images[0]->get_width();
if(!images.size())
return 0;
return (int) images[0]->get_width();
@@
-144,14
+140,14
@@
public:
}
protected:
}
protected:
- friend class Tile
Manager
;
- Tile();
- Tile(
unsigned int id
, Uint32 attributes, const ImageSpec& imagespec);
+ friend class Tile
Set
;
+ 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
/// 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);
};
void parse_images(const lisp::Lisp& cur);
};