general.h
changeset 4 d9259a605dec
child 6 bfbca2c0fc70
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/general.h	Fri May 05 23:43:20 2006 +0200
@@ -0,0 +1,76 @@
+#define BOX '$'
+#define WALL '#'
+#define MAN '@'
+#define PLATFORM '.'
+#define BOXINPLATFORM '*'
+#define MANINPLATFORM 'E'
+#define BLANK ' '
+#define CORNER '-'
+#define MANCANMOVE '+'
+
+//#define DEBUG
+
+enum
+{
+	ALARM_SECONDS=1,
+	MAX_X=50,
+	MAX_Y=50,
+	MAX_MOVES=50,
+	MAX_STEPS=50,
+	MAX_BOXES=15
+};
+
+
+enum logic
+{
+	TRUE=1,
+	FALSE=0,
+};
+
+struct Position
+{
+	int x;
+	int y;
+};
+
+struct Map
+{
+	char Cells[MAX_Y][MAX_X];
+	char cells_boxes[MAX_Y][MAX_X];
+	char man_moves[MAX_Y][MAX_X];
+	int SizeX, SizeY;
+	struct Position Man;
+	int NumPlatforms;
+	int NumBoxesInPlatform;
+	struct Position Box[MAX_BOXES];
+	int NumBoxes;
+};
+
+
+
+enum e_direction
+{
+	DIR_LEFT,
+	DIR_RIGHT,
+	DIR_DOWN,
+	DIR_UP
+};
+
+static const struct Position move_vectors[4] = {
+	{0, 1},
+	{0, -1},
+	{1, 0},
+	{-1, 0}};
+
+struct BoxMove
+{
+	int box;
+	struct Position dir;
+};
+
+
+/* Prototypes for map managing */
+
+void CopyMap (struct Map *Mdest, const struct Map *Morig);
+void ReadMap(struct Map *M, char *FileName);
+void ShowMap (const struct Map *M);