A rouge-like rpg, heavily inspired on the binding of isaac. Running on a FRDM-K64F Mbed board. C++.
Dependencies: mbed MotionSensor
RoomEngine/Room/Room.h
- Committer:
- el17sm
- Date:
- 2019-05-07
- Revision:
- 41:0697508a28ba
- Parent:
- 40:cbcbf6fc1421
- Child:
- 44:cc4cecfc639f
File content as of revision 41:0697508a28ba:
#ifndef ROOM_H #define ROOM_H #include "sprites.h" #include "Entity.h" #include "Player.h" #include "Headless.h" #include "Snake.h" #include "Skull.h" #include "Walls.h" #include "N5110.h" #define MAX_ENEMIES 10 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 _room_type; int _enemy_coord[MAX_ENEMIES][2]; // _enemy_coord[EnemyID][x/y] char _wall_stat[2][4]; // _wall_coord[WallID][x/y/width/height] // Functions void draw_doorways(N5110 &lcd); void draw_doorways_overlay(N5110 &lcd); void draw_enemies(N5110 &lcd, int j); void draw_collectibles(N5110 &lcd, int j); void draw_walls(N5110 &lcd, int j); void init_normal_room(); void init_middle_walled_room(); void init_side_walled_room(); void init_boss_room(); public: // Constructors Room(int no_of_enemies, int room_type); // Deconstructors ~Room(); // Accessors char * get_current_map_2d(); bool * get_doorways(); // Functions void load(); void unload(); void draw_room(N5110 &lcd); void draw_room_overlay(N5110 &lcd); void draw(N5110 &lcd, int j); // Variables Entity *enemies[MAX_ENEMIES]; bool valid_enemies[MAX_ENEMIES]; Entity *collectibles[MAX_ENEMIES]; bool valid_collectibles[MAX_ENEMIES]; Entity *walls[2]; bool valid_walls[2]; int enemies_type[MAX_ENEMIES]; }; const char wall_x[2][11][3] = { // [E/W][Size_Y][Size_X] { // E {1,2,2}, {1,2,2}, {1,2,2}, {1,2,2}, {1,2,2}, {1,2,2}, {1,2,2}, {1,2,2}, {1,2,2}, {1,2,2}, {1,2,2}, }, { // W {2,2,1}, {2,2,1}, {2,2,1}, {2,2,1}, {2,2,1}, {2,2,1}, {2,2,1}, {2,2,1}, {2,2,1}, {2,2,1}, {2,2,1}, } }; const char wall_n[10][12] = { // [Size_Y][Size_X] {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 char wall_s[3][12] = { // [Size_Y][Size_X] {1,1,1,1,1,1,1,1,1,1,1,1,}, {2,2,2,2,2,2,2,2,2,2,2,2,}, {2,2,2,2,2,2,2,2,2,2,2,2,}, }; #endif