#ifndef WORLD_H #define WORLD_H #include #include #define W_CELL_SIZEPX 8 #define W_SIZE_X 160 #define W_SIZE_Y 16 typedef enum { EMPTY=0, EARTH, BRICK, BLOC, END_LEVEL, TUYAU, ARBRE, GIFT, COIN, SPIKES, NUAGE, BUISSON, COLLINE, CASTLE, } cell_id; typedef struct { unsigned type :8; unsigned empty :16; unsigned x :4; unsigned y :4; } earth_t; typedef struct { unsigned type :8; unsigned time_hit_id :8; unsigned state :4; unsigned hidden :4; unsigned content :4; unsigned number :4; } brick_t; typedef struct { unsigned type :8; unsigned data :24; // raw binary format } bloc_t; 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; typedef struct { unsigned type :8; unsigned empty :16; unsigned x :4; unsigned y :4; } tuyau_t; typedef struct { unsigned type :8; unsigned empty :16; unsigned x :4; unsigned y :4; } arbre_t; typedef struct { unsigned type :8; unsigned time_hit_id :8; unsigned state :4; unsigned hidden :4; unsigned content :4; unsigned number :4; } gift_t; typedef struct { unsigned type :8; unsigned empty :20; unsigned taken :4; } coin_t; typedef struct { unsigned type :8; unsigned empty :16; unsigned x :4; unsigned y :4; } deco_t; // Generic container 32 bits typedef struct { unsigned type :8; unsigned data :24; // raw binary format } cell_t; int worldGetWidth(); cell_t* worldGetCell(int x, int y); void cellDraw(int cx, int cy, int sx, int sy, int plan); void worldSet(int w, int h, int x, int y, cell_t * a); void worldDraw(); void worldMove(); void worldReset(); #define CTG_SOIL 1 #define CTG_EMPTY 2 #define CTG_WATER 3 #define CTG_DEATH 4 int worldGetCellCategory(int x, int y); typedef struct { int w; int h; int start_x; int start_y; cell_t* data; }map_t; extern map_t * map_current; #endif