#pragma once #define COLOR_BLACK 0 #define COLOR_BRIGHT_BLACK 1 #define COLOR_BLUE 2 #define COLOR_BRIGHT_BLUE 3 #define COLOR_RED 4 #define COLOR_BRIGHT_RED 5 #define COLOR_MAGENTA 6 #define COLOR_BRIGHT_MAGENTA 7 #define COLOR_GREEN 8 #define COLOR_BRIGHT_GREEN 9 #define COLOR_CYAN 10 #define COLOR_BRIGHT_CYAN 11 #define COLOR_YELLOW 12 #define COLOR_BRIGHT_YELLOW 13 #define COLOR_WHITE 14 #define COLOR_BRIGHT_WHITE 15 struct enemy_t { char *animation {nullptr}; uint8_t x {0}; uint8_t y {0}; float vx {0.0f}; float vy {0.0f}; uint8_t x1 {0}; uint8_t y1 {0}; uint8_t x2 {0}; uint8_t y2 {0}; uint8_t color {COLOR_WHITE}; }; struct item_t { uint8_t tile {0}; uint8_t x {0}; uint8_t y {0}; float counter {0.0f}; }; struct room_t { char *name {nullptr}; uint8_t bgColor {COLOR_BLACK}; uint8_t border {COLOR_BLACK}; char *tileMapFile {nullptr}; char *tileSetFile {nullptr}; uint8_t roomUp {0}; uint8_t roomDown {0}; uint8_t roomLeft {0}; uint8_t roomRight {0}; enemy_t *enemies; item_t *items; }; namespace rooms { void load(); }