--- /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);