dorianocacasorus/maps.h

282 lines
6.0 KiB
C
Raw Permalink Normal View History

2025-06-03 09:27:07 +02:00
#ifdef RELEASE
int etage = 0;
#else
2025-06-07 13:17:02 +02:00
int etage = 9;
2025-06-03 09:27:07 +02:00
#endif
2025-06-07 13:17:02 +02:00
#define MAP_SIZE_MAX 50
2025-06-03 09:27:07 +02:00
typedef char Map[MAP_SIZE_MAX][MAP_SIZE_MAX];
2025-06-07 13:17:02 +02:00
#define NB_ETAGE_TOTAL 15
2025-06-03 09:27:07 +02:00
Vec2i map_sizes[NB_ETAGE_TOTAL] = {
[0] = {9, 9},
[1] = {9, 9},
[2] = {9, 9},
2025-06-07 13:17:02 +02:00
[3] = {11, 13},
2025-06-03 09:27:07 +02:00
[4] = {9, 9},
[5] = {9, 9},
[6] = {9, 9},
[7] = {9, 9},
[8] = {9, 9},
[9] = {9, 9},
2025-06-07 13:17:02 +02:00
[10] = {15, 9},
[11] = {8, 9},
[12] = {9, 10},
[13] = {13, 9},
[14] = {9, 12},
2025-06-03 09:27:07 +02:00
};
Map maps[NB_ETAGE_TOTAL] = {
[0] = {
2025-06-07 13:17:02 +02:00
{" P M B "},
{" M "},
{" M "},
{" M "},
{" M "},
{" "},
{" "},
{" "},
{" S "},
2025-06-03 09:27:07 +02:00
},
[1] = {
2025-06-07 13:17:02 +02:00
{" P M B "},
{" M "},
{" M "},
{" "},
{" "},
{" "},
{" "},
{" "},
{" S "},
2025-06-03 09:27:07 +02:00
},
[2] = {
2025-06-07 13:17:02 +02:00
{" P M B "},
{" M "},
{" M "},
{" "},
{" "},
{" "},
{" "},
{" "},
{" S "},
2025-06-03 09:27:07 +02:00
},
[3] = {
2025-06-07 13:17:02 +02:00
{" B "},
{" "},
{" MM MM "},
{" M M "},
{" M "},
{" M "},
{" M M "},
{" M "},
{" M "},
{" M M "},
{" M "},
{" M "},
{" S M M P "},
2025-06-03 09:27:07 +02:00
},
[4] = {
2025-06-07 13:17:02 +02:00
{" "},
{" "},
{" "},
{" "},
{" "},
{" "},
{" OOOOO "},
{" O O "},
{"P O S O B"},
2025-06-03 09:27:07 +02:00
},
[5] = {
2025-06-07 13:17:02 +02:00
{" "},
{" OOOOOOO "},
{" OSOOOBO "},
{" OOOOOOO "},
{" OOOOOOO "},
{" OOOOOOO "},
{" OOOOOPO "},
{" OOOOOOO "},
{" "},
2025-06-03 09:27:07 +02:00
},
[6] = {
2025-06-07 13:17:02 +02:00
{" B "},
{" A"},
{"A A "},
{" A A"},
{"A "},
{" M P"},
{" AS "},
{"A A A A "},
{" A A A"},
2025-06-03 09:27:07 +02:00
},
[7] = {
2025-06-07 13:17:02 +02:00
{"A O O A"},
{"A O O B"},
{"A O O A"},
{"A O O A"},
{"A O O A"},
{"A O O A"},
{"A O S O A"},
{"A O O A"},
{"A O P O A"},
2025-06-03 09:27:07 +02:00
},
[8] = {
2025-06-07 13:17:02 +02:00
{" B"},
{" "},
{" "},
{" "},
{" S "},
{" "},
{" "},
{" "},
{"P "},
2025-06-03 09:27:07 +02:00
},
[9] = {
2025-06-07 13:17:02 +02:00
{"MP M B "},
{"M M "},
{"M M "},
{"M M "},
{"M M A "},
{"MOOOOOOOO"},
{"M "},
{"M "},
{"M S "},
},
[10] = {
{"P B O O A"},
{" O O O O "},
{"MMMMMMMMMMMMM "},
{" O O "},
{" O O O "},
{" MMMMMMMMMMMOM"},
{"A O "},
{" O O O "},
{"MMMMMMMMMMMMM S"},
},
[11] = {
{" OO "},
{" OP O "},
{" O O "},
{" O O "},
{" O O "},
{" OO OO "},
{"O O"},
{"OB OO SO"},
{" OO OO "},
},
[12] = {
{" OO OO "},
{" OP O BO "},
{"O O O"},
{"O O"},
{"O O"},
{" O O "},
{" O O "},
{" O O "},
{" OSO "},
{" O "},
},
[13] = {
{" O P"},
{" O "},
{" O "},
{" O "},
{" O "},
{" O "},
{" O "},
{" O "},
{"B O S"},
},
[14] = {
{" GG GGB"},
{"G G "},
{"G GG G GG"},
{"G G G G"},
{" GG GG "},
{" "},
{" S "},
{" GG GG "},
{"G G "},
{"G GG G GG"},
{"G G G G"},
{"PGG GG "},
2025-06-03 09:27:07 +02:00
},
};
// 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;
2025-06-07 13:17:02 +02:00
#define MAX_GUARD_ETAGE 10
2025-06-03 09:27:07 +02:00
typedef Guard Guards[MAX_GUARD_ETAGE];
Guards guards[NB_ETAGE_TOTAL] = {
[1] = {
2025-06-07 13:17:02 +02:00
{.start = {2,1}, .end = {2,5}},
2025-06-03 09:27:07 +02:00
},
[2] = {
2025-06-07 13:17:02 +02:00
{.start = {6,5}, .end = {2,5}},
{.start = {6,7}, .end = {2,7}},
},
[3] = {
{.start = {5,3}, .end = {5,5}},
{.start = {5,6}, .end = {5,8}},
{.start = {5,9}, .end = {5,11}},
},
[4] = {
{.start = {2,4}, .end = {6,4}},
},
[5] = {
{.start = {0,0}, .end = {7,0}},
{.start = {8,0}, .end = {8,7}},
{.start = {8,8}, .end = {1,8}},
{.start = {0,8}, .end = {0,1}},
2025-06-03 09:27:07 +02:00
},
[7] = {
2025-06-07 13:17:02 +02:00
{.start = {1,0}, .end = {1,8}},
{.start = {7,8}, .end = {7,0}},
2025-06-03 09:27:07 +02:00
},
[8] = {
2025-06-07 13:17:02 +02:00
{.start = {1,1}, .end = {5,1}},
{.start = {7,1}, .end = {7,5}},
{.start = {7,7}, .end = {3,7}},
{.start = {1,7}, .end = {1,3}},
},
[9] = {
2025-06-03 09:27:07 +02:00
{.start = {1,1}, .end = {1,4}},
{.start = {7,2}, .end = {7,4}},
},
2025-06-07 13:17:02 +02:00
[10] = {
{.start = {12,6}, .end = {14,6}},
{.start = {1,3}, .end = {1,7}},
{.start = {13,0}, .end = {13,4}},
},
[13] = {
{.start = {0,0}, .end = {9,0}},
{.start = {1,1}, .end = {9,1}},
{.start = {2,2}, .end = {9,2}},
{.start = {3,3}, .end = {9,3}},
{.start = {4,4}, .end = {9,4}},
{.start = {5,5}, .end = {9,5}},
{.start = {6,6}, .end = {9,6}},
{.start = {7,7}, .end = {9,7}},
{.start = {8,8}, .end = {9,8}},
{.start = {9,9}, .end = {9,9}},
2025-06-03 09:27:07 +02:00
},
};