summaryrefslogtreecommitdiff
path: root/src/level.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/level.h')
-rw-r--r--src/level.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/level.h b/src/level.h
new file mode 100644
index 0000000..0ffdac2
--- /dev/null
+++ b/src/level.h
@@ -0,0 +1,28 @@
+#pragma once
+
+#include <cstdint>
+#include <cstring>
+
+class Level {
+public:
+ Level(int width, int height);
+ ~Level() { delete[] m_tiles; }
+
+ uint8_t get(int x, int y);
+ void set(int x, int y, uint8_t tile);
+ bool inBounds(int x, int y) { return x >= 0 && x < m_width && y >= 0 && y < m_height; }
+private:
+ int m_width, m_height;
+ uint8_t* m_tiles;
+};
+
+enum RailDirection {
+ NorthSouth = 1,
+ EastWest,
+ SouthEast,
+ SouthWest,
+ NorthWest,
+ NorthEast,
+};
+
+RailDirection ChooseDirection(Level& level, int x, int y); \ No newline at end of file