#ifndef __BOARDS_H__
#define __BOARDS_H__
+#include <vector>
+#include <stdint.h>
+
// Okay, this is ugly but works and I can't think of any better way to handle
// this. So what we do when we pass the anonymous structs into a function is
// pass them as a (void *) and then cast them as type (Board *) in order to
struct Board {
unsigned int width; // Width of the board
unsigned int height; // Height of the board
-// unsigned int x; // Initial X position of player
-// unsigned int y; // Initial Y position of player
unsigned char state[]; // Board data
};
-#define NUMBER_OF_BOARDS 18
+#define BOARDSIZE 128
+
+struct Point
+{
+ Point(int xx = 0, int yy = 0) { x = xx; y = yy; }
+ int x, y;
+};
+
+struct Level
+{
+ uint8_t board[BOARDSIZE][BOARDSIZE];
+ char name[41];
+ Point corner; // Corner dimensions on screen
+ Point cursor; // Cursor location
+};
+
+#define NUMBER_OF_BOARDS 42
extern const void * boards[];
+extern std::vector<Level> levelStorage;
#endif // __BOARDS_H__