A rouge-like rpg, heavily inspired on the binding of isaac. Running on a FRDM-K64F Mbed board. C++.

Dependencies:   mbed MotionSensor

Revision:
27:a1b41626f57c
Parent:
26:abbc19edc5c1
Child:
28:98848e6a77a2
diff -r abbc19edc5c1 -r a1b41626f57c Room/Room.h
--- a/Room/Room.h	Mon Apr 29 02:45:17 2019 +0000
+++ b/Room/Room.h	Mon Apr 29 10:39:09 2019 +0000
@@ -1,5 +1,6 @@
 #ifndef ROOM_H
 #define ROOM_H
+#include "sprites.h"
 #include "Entity.h"
 #include "Player.h"
 #include "Headless.h"
@@ -11,19 +12,99 @@
 class Room // contains the type of room, number of enemies inside it, the doorways existing in the room, functions to spawn enemies
 {
     private:
+    bool _doorways[4];
+    int _type;
+    int _current_map[3][48][84];
+    
+    // Functions
+    void overlap(int x, int y, int width, int height, int * object, int * map);
     
     public:
     // Constructors
     Room();
+    // Deconstructors
+    ~Room();
+    
+    // Accessors
+    int * get_current_map_2d();
     
     // Functions
     void init();
-    void spawn_enemies();
-    void draw_enemies(N5110 &lcd);
+    void draw_room(N5110 &lcd);
+    void draw_room_overlay(N5110 &lcd);
     
     // Variables
     Entity *enemies[MAX_ENEMIES];
     bool valid_enemies[MAX_ENEMIES];
 };
 
+const int wall_x[2][11][3] = { // [E/W][Size_Y][Size_X]
+    {   // E
+        {1,0,0},
+        {1,0,0},
+        {1,0,0},
+        {1,0,0},
+        {1,0,0},
+        {1,0,0},
+        {1,0,0},
+        {1,0,0},
+        {1,0,0},
+        {1,0,0},
+        {1,0,0},
+    },
+    {   // W
+        {0,0,1},
+        {0,0,1},
+        {0,0,1},
+        {0,0,1},
+        {0,0,1},
+        {0,0,1},
+        {0,0,1},
+        {0,0,1},
+        {0,0,1},
+        {0,0,1},
+        {0,0,1},
+    }
+};
+
+const int wall_n[2][10][12] = { // [2d/3d][Size_Y][Size_X]
+    {   // N
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {1,1,1,1,1,1,1,1,1,1,1,1,},
+    },
+    {   
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {1,1,1,1,1,1,1,1,1,1,1,1,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {1,1,1,1,1,1,1,1,1,1,1,1,},
+    },
+};
+
+const int wall_s[2][3][12] = { // [2d/3d][Size_Y][Size_X]
+    {
+        {1,1,1,1,1,1,1,1,1,1,1,1,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+    },
+    {
+        {1,1,1,1,1,1,1,1,1,1,1,1,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+        {0,0,0,0,0,0,0,0,0,0,0,0,},
+    },
+};
+
 #endif
\ No newline at end of file