#ifndef WORLD_H #define WORLD_H #include #include #define W_CELL_SIZEPX 8 #define W_SIZE_X 160 #define W_SIZE_Y 16 #define EMPTY 0 #define EARTH 1 // X, Y, _ (XY tileset) typedef struct { unsigned type :8; unsigned empty :16; unsigned x :4; unsigned y :4; } earth_t; #define BRICK 2 typedef struct { unsigned type :8; unsigned time_hit_id :8; unsigned state :4; unsigned hidden :4; unsigned content :4; unsigned number :4; } brick_t; #define BLOC 3 typedef struct { unsigned type :8; unsigned data :24; // raw binary format } bloc_t; #define END_LEVEL 4 typedef struct { unsigned type :8; unsigned empty :8; unsigned avancement :4; unsigned bonus :4; //*400 unsigned x :4; //=0 unsigned y :4; } end_level_t; #define TUYAU 5 // X, Y, _ (XY tileset) typedef struct { unsigned type :8; unsigned empty :16; unsigned x :4; unsigned y :4; } tuyau_t; #define GIFT 6 // s, t, n (state[hit time], type[vide=0, piece=1, ...], qté) typedef struct { unsigned type :8; unsigned time_hit_id :8; unsigned state :4; unsigned hidden :4; unsigned content :4; unsigned number :4; } gift_t; #define COIN 7 // s, _, _ (state) typedef struct { unsigned type :8; unsigned empty :20; unsigned taken :4; } coin_t; #define NUAGE 8 // X, Y, _ (XY tileset) #define BUISSON 9 // X, Y, _ (XY tileset) #define COLLINE 10 // X, Y, _ (XY tileset) #define CASTLE 11 typedef struct { unsigned type :8; unsigned empty :16; unsigned x :4; unsigned y :4; } deco_t; // Generic container typedef struct { unsigned type :8; unsigned data :24; // raw binary format } world_t; int world_get_width(); world_t* world_get(int x, int y); void display_cell(int cx, int cy, int sx, int sy, int plan); void world_set(world_t * w); void world_draw(int x, int y); void world_move(); int world_get_real_x0(); int world_get_real_y0(); void world_reset(); #define CTG_SOIL 1 #define CTG_EMPTY 2 #define CTG_DEATH 3 int world_get_ctg(int x, int y); void reset_camera(); extern world_t * w_current; extern image_t * w_fond; extern int w_current_x; extern int w_current_y; extern int w_mario_startx; extern int w_mario_starty; #endif