dorianocacasorus/maps.h

180 lines
5.6 KiB
C

#ifdef RELEASE
int etage = 0;
#else
int etage = 8;
#endif
#define MAP_SIZE_MAX 15
typedef char Map[MAP_SIZE_MAX][MAP_SIZE_MAX];
#define NB_ETAGE_TOTAL 10
Vec2i map_sizes[NB_ETAGE_TOTAL] = {
[0] = {9, 9},
[1] = {9, 9},
[2] = {9, 9},
[3] = {9, 9},
[4] = {9, 9},
[5] = {9, 9},
[6] = {9, 9},
[7] = {9, 9},
[8] = {9, 9},
[9] = {9, 9},
};
Map maps[NB_ETAGE_TOTAL] = {
[0] = {
{' ','P',' ',' ','M',' ',' ','B',' '},
{' ',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ','S',' ',' ',' ',' '},
},
[1] = {
{' ','P',' ',' ',' ',' ',' ','B',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ','S',' ',' ',' ',' '},
},
[2] = {
{'M','P',' ',' ','M',' ',' ','B',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ','S',' ',' ',' ',' '},
},
[3] = {
{'M','P',' ',' ','M',' ',' ','B',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ','S',' ',' ',' ',' '},
},
[4] = {
{'M','P',' ',' ','M',' ',' ','B',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ','S',' ',' ',' ',' '},
},
[5] = {
{'M','P',' ',' ','M',' ',' ','B',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ','S',' ',' ',' ',' '},
},
[6] = {
{'M','P',' ',' ','M',' ',' ','B',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ','S',' ',' ',' ',' '},
},
[7] = {
{'M','P',' ',' ','M',' ',' ','B',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
{' ',' ',' ',' ','S',' ',' ',' ',' '},
},
[8] = {
{'M','P',' ',' ','M',' ',' ','B',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ',' ',' ','M',' ',' ',' ',' '},
{'M',' ','G',' ','M',' ','A',' ',' '},
{'M','O','O','O','O','O','O','O','O'},
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
{'M',' ',' ',' ','S',' ',' ',' ',' '},
},
[9] = {
{'M','P',' ',' ','O',' ',' ','B',' '},
{'M','M',' ',' ','M',' ',' ',' ',' '},
{'M','M',' ',' ','M',' ',' ',' ',' '},
{'M','M',' ',' ','M',' ',' ',' ',' '},
{'M','M',' ',' ','M',' ',' ',' ',' '},
{'M','M',' ',' ',' ',' ',' ',' ',' '},
{'M','M',' ',' ',' ',' ',' ',' ',' '},
{'M','M',' ',' ',' ',' ',' ',' ',' '},
{'M','M',' ',' ','S',' ',' ',' ',' '},
},
};
// M: mur
// O: mur cassable
// S: joueur
// B: boutton pour ouvrir la porte
// P: porte fermer
// E: porte ouverte
// A: alarme
// G: guarde qui bouge pas
typedef enum Direction {
HAUT, BAS, GAUCHE, DROITE,
} Direction;
typedef struct Guard {
const Vec2i start, end;
Vec2i pos;
Direction dir;
int dead;
} Guard;
#define MAX_GUARD_ETAGE 15
typedef Guard Guards[MAX_GUARD_ETAGE];
Guards guards[NB_ETAGE_TOTAL] = {
[1] = {
{.start = {1,1}, .end = {1,5}},
{.start = {7,2}, .end = {7,6}},
},
[2] = {
{.start = {2,0}, .end = {2,5}},
{.start = {3,1}, .end = {3,6}},
},
[7] = {
{.start = {3,2}, .end = {3,7}},
},
[8] = {
{.start = {1,1}, .end = {1,4}},
{.start = {7,2}, .end = {7,4}},
},
[9] = {
{.start = {3,6}, .end = {7,6}},
},
};