clang-format
This commit is contained in:
@@ -332,7 +332,7 @@ void Screen::textureToRenderer() {
|
|||||||
void Screen::renderOverlays() {
|
void Screen::renderOverlays() {
|
||||||
renderNotifications();
|
renderNotifications();
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
//renderInfo();
|
// renderInfo();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,10 +29,10 @@ class Screen {
|
|||||||
|
|
||||||
// Renderizado
|
// Renderizado
|
||||||
void clearRenderer(ColorRGB color = {0x00, 0x00, 0x00}); // Limpia el renderer
|
void clearRenderer(ColorRGB color = {0x00, 0x00, 0x00}); // Limpia el renderer
|
||||||
void clearSurface(Uint8 index); // Limpia la game_surface_
|
void clearSurface(Uint8 index); // Limpia la game_surface_
|
||||||
void start(); // Prepara para empezar a dibujar en la textura de juego
|
void start(); // Prepara para empezar a dibujar en la textura de juego
|
||||||
void render(); // Vuelca el contenido del renderizador en pantalla
|
void render(); // Vuelca el contenido del renderizador en pantalla
|
||||||
void update(float delta_time); // Actualiza la lógica de la clase
|
void update(float delta_time); // Actualiza la lógica de la clase
|
||||||
|
|
||||||
// Video y ventana
|
// Video y ventana
|
||||||
void setVideoMode(bool mode); // Establece el modo de video
|
void setVideoMode(bool mode); // Establece el modo de video
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
#include "core/rendering/text.hpp" // Para Text
|
#include "core/rendering/text.hpp" // Para Text
|
||||||
#include "core/resources/resource_cache.hpp" // Para Resource
|
#include "core/resources/resource_cache.hpp" // Para Resource
|
||||||
#include "utils/defines.hpp" // Para PlayArea
|
|
||||||
#include "utils/color.hpp" // Para Color
|
#include "utils/color.hpp" // Para Color
|
||||||
|
#include "utils/defines.hpp" // Para PlayArea
|
||||||
|
|
||||||
// [SINGLETON]
|
// [SINGLETON]
|
||||||
Debug* Debug::debug = nullptr;
|
Debug* Debug::debug = nullptr;
|
||||||
|
|||||||
@@ -51,17 +51,17 @@ constexpr bool ENABLED = true; // Audio por defecto
|
|||||||
|
|
||||||
// --- MUSIC ---
|
// --- MUSIC ---
|
||||||
namespace Music {
|
namespace Music {
|
||||||
constexpr float VOLUME = 0.8F; // Volumen por defecto de la musica
|
constexpr float VOLUME = 0.8F; // Volumen por defecto de la musica
|
||||||
constexpr bool ENABLED = true; // Musica habilitada por defecto
|
constexpr bool ENABLED = true; // Musica habilitada por defecto
|
||||||
constexpr const char* TITLE_TRACK = "574070_KUVO_Farewell_to_school.ogg"; // Musica de la escena title
|
constexpr const char* TITLE_TRACK = "574070_KUVO_Farewell_to_school.ogg"; // Musica de la escena title
|
||||||
constexpr const char* GAME_TRACK = "574071_EA_DTV.ogg"; // Musica de la escena game
|
constexpr const char* GAME_TRACK = "574071_EA_DTV.ogg"; // Musica de la escena game
|
||||||
constexpr int FADE_DURATION_MS = 1000; // Duracion del fade out en milisegundos
|
constexpr int FADE_DURATION_MS = 1000; // Duracion del fade out en milisegundos
|
||||||
} // namespace Music
|
} // namespace Music
|
||||||
|
|
||||||
// --- SOUND ---
|
// --- SOUND ---
|
||||||
namespace Sound {
|
namespace Sound {
|
||||||
constexpr float VOLUME = 1.0F; // Volumen por defecto de los efectos de sonido
|
constexpr float VOLUME = 1.0F; // Volumen por defecto de los efectos de sonido
|
||||||
constexpr bool ENABLED = true; // Sonido habilitado por defecto
|
constexpr bool ENABLED = true; // Sonido habilitado por defecto
|
||||||
constexpr const char* JUMP = "jump.wav"; // Sonido de salto
|
constexpr const char* JUMP = "jump.wav"; // Sonido de salto
|
||||||
constexpr const char* HIT = "hit.wav"; // Sonido de golpe/daño
|
constexpr const char* HIT = "hit.wav"; // Sonido de golpe/daño
|
||||||
constexpr const char* LAND = "land.wav"; // Sonido de aterrizaje
|
constexpr const char* LAND = "land.wav"; // Sonido de aterrizaje
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <ranges> // Para std::ranges::any_of
|
#include <ranges> // Para std::ranges::any_of
|
||||||
|
|
||||||
#include "core/audio/audio.hpp" // Para Audio
|
#include "core/audio/audio.hpp" // Para Audio
|
||||||
#include "core/input/input.hpp" // Para Input, InputAction
|
#include "core/input/input.hpp" // Para Input, InputAction
|
||||||
#include "core/rendering/surface_animated_sprite.hpp" // Para SAnimatedSprite
|
#include "core/rendering/surface_animated_sprite.hpp" // Para SAnimatedSprite
|
||||||
#include "core/resources/resource_cache.hpp" // Para Resource
|
#include "core/resources/resource_cache.hpp" // Para Resource
|
||||||
#include "game/defaults.hpp" // Para Defaults::Sound
|
#include "game/defaults.hpp" // Para Defaults::Sound
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ class Player {
|
|||||||
NONE
|
NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct SpawnData {
|
struct SpawnData {
|
||||||
float x = 0;
|
float x = 0;
|
||||||
float y = 0;
|
float y = 0;
|
||||||
@@ -85,8 +84,8 @@ class Player {
|
|||||||
static constexpr float HORIZONTAL_DECELERATION = 250.0F; // Desaceleración al soltar (momentum) en pixels/segundo²
|
static constexpr float HORIZONTAL_DECELERATION = 250.0F; // Desaceleración al soltar (momentum) en pixels/segundo²
|
||||||
|
|
||||||
// --- Constantes de salto ---
|
// --- Constantes de salto ---
|
||||||
static constexpr float JUMP_VELOCITY = -160.0F; // Impulso de salto en pixels/segundo (más fuerte, menos floaty)
|
static constexpr float JUMP_VELOCITY = -160.0F; // Impulso de salto en pixels/segundo (más fuerte, menos floaty)
|
||||||
static constexpr float GRAVITY_FORCE = 280.0F; // Gravedad en pixels/segundo² (más alta, menos floaty)
|
static constexpr float GRAVITY_FORCE = 280.0F; // Gravedad en pixels/segundo² (más alta, menos floaty)
|
||||||
|
|
||||||
// --- Objetos y punteros ---
|
// --- Objetos y punteros ---
|
||||||
std::shared_ptr<Room> room_; // Objeto encargado de gestionar cada habitación del juego
|
std::shared_ptr<Room> room_; // Objeto encargado de gestionar cada habitación del juego
|
||||||
@@ -110,8 +109,8 @@ class Player {
|
|||||||
// --- Variables de colisión ---
|
// --- Variables de colisión ---
|
||||||
SDL_FRect collider_box_{}; // Caja de colisión con los enemigos u objetos
|
SDL_FRect collider_box_{}; // Caja de colisión con los enemigos u objetos
|
||||||
std::array<SDL_FPoint, 8> collider_points_{}; // Puntos de colisión con el mapa
|
std::array<SDL_FPoint, 8> collider_points_{}; // Puntos de colisión con el mapa
|
||||||
SDL_FPoint under_left_foot_ = {0.0F, 0.0F}; // El punto bajo la esquina inferior izquierda del jugador
|
SDL_FPoint under_left_foot_ = {0.0F, 0.0F}; // El punto bajo la esquina inferior izquierda del jugador
|
||||||
SDL_FPoint under_right_foot_ = {0.0F, 0.0F}; // El punto bajo la esquina inferior derecha del jugador
|
SDL_FPoint under_right_foot_ = {0.0F, 0.0F}; // El punto bajo la esquina inferior derecha del jugador
|
||||||
|
|
||||||
// --- Variables de juego ---
|
// --- Variables de juego ---
|
||||||
bool is_alive_ = true; // Indica si el jugador esta vivo o no
|
bool is_alive_ = true; // Indica si el jugador esta vivo o no
|
||||||
@@ -166,9 +165,9 @@ class Player {
|
|||||||
void placeSprite(); // Coloca el sprite en la posición del jugador
|
void placeSprite(); // Coloca el sprite en la posición del jugador
|
||||||
|
|
||||||
// --- Funciones de finalización ---
|
// --- Funciones de finalización ---
|
||||||
void animate(float delta_time); // Establece la animación del jugador
|
void animate(float delta_time); // Establece la animación del jugador
|
||||||
auto handleBorders() -> Room::Border; // Comprueba si se halla en alguno de los cuatro bordes
|
auto handleBorders() -> Room::Border; // Comprueba si se halla en alguno de los cuatro bordes
|
||||||
auto handleKillingTiles() -> bool; // Comprueba que el jugador no toque ningun tile de los que matan
|
auto handleKillingTiles() -> bool; // Comprueba que el jugador no toque ningun tile de los que matan
|
||||||
void updateVelocity(float delta_time); // Calcula la velocidad en x con aceleración
|
void updateVelocity(float delta_time); // Calcula la velocidad en x con aceleración
|
||||||
void markAsDead(); // Marca al jugador como muerto
|
void markAsDead(); // Marca al jugador como muerto
|
||||||
};
|
};
|
||||||
@@ -71,9 +71,9 @@ class CollisionMap {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// --- Constantes (usar defines de PlayArea) ---
|
// --- Constantes (usar defines de PlayArea) ---
|
||||||
static constexpr int TILE_SIZE = ::Tile::SIZE; // Tamaño del tile en pixels
|
static constexpr int TILE_SIZE = ::Tile::SIZE; // Tamaño del tile en pixels
|
||||||
static constexpr int MAP_WIDTH = PlayArea::TILE_COLS; // Ancho del mapa en tiles
|
static constexpr int MAP_WIDTH = PlayArea::TILE_COLS; // Ancho del mapa en tiles
|
||||||
static constexpr int MAP_HEIGHT = PlayArea::TILE_ROWS; // Alto del mapa en tiles
|
static constexpr int MAP_HEIGHT = PlayArea::TILE_ROWS; // Alto del mapa en tiles
|
||||||
|
|
||||||
// --- Datos de la habitación ---
|
// --- Datos de la habitación ---
|
||||||
std::vector<int> tile_map_; // Índices de colisión de la habitación
|
std::vector<int> tile_map_; // Índices de colisión de la habitación
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ void Room::initializeRoom(const Data& room) {
|
|||||||
right_room_ = room.right_room;
|
right_room_ = room.right_room;
|
||||||
tile_set_file_ = room.tile_set_file;
|
tile_set_file_ = room.tile_set_file;
|
||||||
conveyor_belt_direction_ = room.conveyor_belt_direction;
|
conveyor_belt_direction_ = room.conveyor_belt_direction;
|
||||||
tile_map_ = room.tile_map; // Tilemap para renderizado (viene embebido en el YAML)
|
tile_map_ = room.tile_map; // Tilemap para renderizado (viene embebido en el YAML)
|
||||||
collision_data_ = room.collision_map; // Collisionmap para colisiones (viene embebido en el YAML)
|
collision_data_ = room.collision_map; // Collisionmap para colisiones (viene embebido en el YAML)
|
||||||
surface_ = Resource::Cache::get()->getSurface(room.tile_set_file);
|
surface_ = Resource::Cache::get()->getSurface(room.tile_set_file);
|
||||||
tile_set_width_ = surface_->getWidth() / TILE_SIZE;
|
tile_set_width_ = surface_->getWidth() / TILE_SIZE;
|
||||||
@@ -93,11 +93,11 @@ void Room::openTheJail() {
|
|||||||
constexpr int TILE_A = 16 + (13 * MAP_WIDTH);
|
constexpr int TILE_A = 16 + (13 * MAP_WIDTH);
|
||||||
constexpr int TILE_B = 16 + (14 * MAP_WIDTH);
|
constexpr int TILE_B = 16 + (14 * MAP_WIDTH);
|
||||||
if (TILE_A < tile_map_.size()) {
|
if (TILE_A < tile_map_.size()) {
|
||||||
tile_map_[TILE_A] = -1; // Renderizado: vacío
|
tile_map_[TILE_A] = -1; // Renderizado: vacío
|
||||||
collision_data_[TILE_A] = -1; // Colisiones: vacío
|
collision_data_[TILE_A] = -1; // Colisiones: vacío
|
||||||
}
|
}
|
||||||
if (TILE_B < tile_map_.size()) {
|
if (TILE_B < tile_map_.size()) {
|
||||||
tile_map_[TILE_B] = -1; // Renderizado: vacío
|
tile_map_[TILE_B] = -1; // Renderizado: vacío
|
||||||
collision_data_[TILE_B] = -1; // Colisiones: vacío
|
collision_data_[TILE_B] = -1; // Colisiones: vacío
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,9 +92,9 @@ class Room {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// Constantes (usar defines de PlayArea)
|
// Constantes (usar defines de PlayArea)
|
||||||
static constexpr int TILE_SIZE = ::Tile::SIZE; // Ancho del tile en pixels
|
static constexpr int TILE_SIZE = ::Tile::SIZE; // Ancho del tile en pixels
|
||||||
static constexpr int MAP_WIDTH = PlayArea::TILE_COLS; // Ancho del mapa en tiles
|
static constexpr int MAP_WIDTH = PlayArea::TILE_COLS; // Ancho del mapa en tiles
|
||||||
static constexpr int MAP_HEIGHT = PlayArea::TILE_ROWS; // Alto del mapa en tiles
|
static constexpr int MAP_HEIGHT = PlayArea::TILE_ROWS; // Alto del mapa en tiles
|
||||||
|
|
||||||
// Objetos y punteros
|
// Objetos y punteros
|
||||||
std::unique_ptr<EnemyManager> enemy_manager_; // Gestor de enemigos de la habitación
|
std::unique_ptr<EnemyManager> enemy_manager_; // Gestor de enemigos de la habitación
|
||||||
@@ -105,22 +105,22 @@ class Room {
|
|||||||
std::shared_ptr<Scoreboard::Data> data_; // Puntero a los datos del marcador
|
std::shared_ptr<Scoreboard::Data> data_; // Puntero a los datos del marcador
|
||||||
|
|
||||||
// --- Variables ---
|
// --- Variables ---
|
||||||
std::string number_; // Numero de la habitación
|
std::string number_; // Numero de la habitación
|
||||||
std::string name_; // Nombre de la habitación
|
std::string name_; // Nombre de la habitación
|
||||||
std::string bg_color_; // Color de fondo de la habitación
|
std::string bg_color_; // Color de fondo de la habitación
|
||||||
std::string border_color_; // Color del borde de la pantalla
|
std::string border_color_; // Color del borde de la pantalla
|
||||||
std::string item_color1_; // Color 1 para los items de la habitación
|
std::string item_color1_; // Color 1 para los items de la habitación
|
||||||
std::string item_color2_; // Color 2 para los items de la habitación
|
std::string item_color2_; // Color 2 para los items de la habitación
|
||||||
std::string upper_room_; // Identificador de la habitación que se encuentra arriba
|
std::string upper_room_; // Identificador de la habitación que se encuentra arriba
|
||||||
std::string lower_room_; // Identificador de la habitación que se encuentra abajp
|
std::string lower_room_; // Identificador de la habitación que se encuentra abajp
|
||||||
std::string left_room_; // Identificador de la habitación que se encuentra a la izquierda
|
std::string left_room_; // Identificador de la habitación que se encuentra a la izquierda
|
||||||
std::string right_room_; // Identificador de la habitación que se encuentra a la derecha
|
std::string right_room_; // Identificador de la habitación que se encuentra a la derecha
|
||||||
std::string tile_set_file_; // Imagen con los graficos para la habitación
|
std::string tile_set_file_; // Imagen con los graficos para la habitación
|
||||||
std::vector<int> tile_map_; // Indice de los tiles a dibujar en la habitación (embebido desde YAML)
|
std::vector<int> tile_map_; // Indice de los tiles a dibujar en la habitación (embebido desde YAML)
|
||||||
std::vector<int> collision_data_; // Indice de colisiones de la habitación (embebido desde YAML)
|
std::vector<int> collision_data_; // Indice de colisiones de la habitación (embebido desde YAML)
|
||||||
int conveyor_belt_direction_{0}; // Sentido en el que arrastran las superficies automáticas de la habitación
|
int conveyor_belt_direction_{0}; // Sentido en el que arrastran las superficies automáticas de la habitación
|
||||||
bool is_paused_{false}; // Indica si el mapa esta en modo pausa
|
bool is_paused_{false}; // Indica si el mapa esta en modo pausa
|
||||||
int tile_set_width_{0}; // Ancho del tileset en tiles
|
int tile_set_width_{0}; // Ancho del tileset en tiles
|
||||||
|
|
||||||
// --- Funciones ---
|
// --- Funciones ---
|
||||||
void initializeRoom(const Data& room); // Inicializa los valores
|
void initializeRoom(const Data& room); // Inicializa los valores
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ struct Cheat {
|
|||||||
// Estructura con opciones de la ventana
|
// Estructura con opciones de la ventana
|
||||||
struct Window {
|
struct Window {
|
||||||
std::string caption{std::format("{} v{} ({})", Project::LONG_NAME, Project::VERSION, Project::COPYRIGHT)}; // Texto que aparece en la barra de título de la ventana
|
std::string caption{std::format("{} v{} ({})", Project::LONG_NAME, Project::VERSION, Project::COPYRIGHT)}; // Texto que aparece en la barra de título de la ventana
|
||||||
int zoom{Defaults::Window::ZOOM}; // Zoom de la ventana
|
int zoom{Defaults::Window::ZOOM}; // Zoom de la ventana
|
||||||
int max_zoom{Defaults::Window::ZOOM}; // Máximo tamaño de zoom para la ventana
|
int max_zoom{Defaults::Window::ZOOM}; // Máximo tamaño de zoom para la ventana
|
||||||
};
|
};
|
||||||
|
|
||||||
// Estructura para gestionar el borde de la pantalla
|
// Estructura para gestionar el borde de la pantalla
|
||||||
|
|||||||
@@ -15,16 +15,16 @@
|
|||||||
#include "core/resources/resource_cache.hpp" // Para ResourceRoom, Resource
|
#include "core/resources/resource_cache.hpp" // Para ResourceRoom, Resource
|
||||||
#include "core/resources/resource_list.hpp" // Para Asset
|
#include "core/resources/resource_list.hpp" // Para Asset
|
||||||
#include "core/system/global_events.hpp" // Para check
|
#include "core/system/global_events.hpp" // Para check
|
||||||
|
#include "game/defaults.hpp" // Para Defaults::Music
|
||||||
#include "game/gameplay/item_tracker.hpp" // Para ItemTracker
|
#include "game/gameplay/item_tracker.hpp" // Para ItemTracker
|
||||||
#include "game/gameplay/room.hpp" // Para Room, RoomData
|
#include "game/gameplay/room.hpp" // Para Room, RoomData
|
||||||
#include "game/gameplay/room_tracker.hpp" // Para RoomTracker
|
#include "game/gameplay/room_tracker.hpp" // Para RoomTracker
|
||||||
#include "game/gameplay/scoreboard.hpp" // Para Scoreboard::Data, Scoreboard
|
#include "game/gameplay/scoreboard.hpp" // Para Scoreboard::Data, Scoreboard
|
||||||
#include "game/defaults.hpp" // Para Defaults::Music
|
|
||||||
#include "game/options.hpp" // Para Options, options, Cheat, SectionState
|
#include "game/options.hpp" // Para Options, options, Cheat, SectionState
|
||||||
#include "game/scene_manager.hpp" // Para SceneManager
|
#include "game/scene_manager.hpp" // Para SceneManager
|
||||||
#include "game/ui/notifier.hpp" // Para Notifier, NotificationText, CHEEVO_NO...
|
#include "game/ui/notifier.hpp" // Para Notifier, NotificationText, CHEEVO_NO...
|
||||||
#include "utils/defines.hpp" // Para Tile::SIZE, PlayArea::HEIGHT, RoomBorder::BOTTOM
|
|
||||||
#include "utils/color.hpp" // Para Color
|
#include "utils/color.hpp" // Para Color
|
||||||
|
#include "utils/defines.hpp" // Para Tile::SIZE, PlayArea::HEIGHT, RoomBorder::BOTTOM
|
||||||
#include "utils/utils.hpp" // Para stringToColor
|
#include "utils/utils.hpp" // Para stringToColor
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
|
|||||||
@@ -16,10 +16,10 @@
|
|||||||
#include "core/system/global_events.hpp" // Para check
|
#include "core/system/global_events.hpp" // Para check
|
||||||
#include "game/options.hpp" // Para Options, SectionState, options, Section
|
#include "game/options.hpp" // Para Options, SectionState, options, Section
|
||||||
#include "game/scene_manager.hpp" // Para SceneManager
|
#include "game/scene_manager.hpp" // Para SceneManager
|
||||||
|
#include "utils/color.hpp" // Para Color
|
||||||
#include "utils/defines.hpp" // Para GameCanvas
|
#include "utils/defines.hpp" // Para GameCanvas
|
||||||
#include "utils/delta_timer.hpp" // Para DeltaTimer
|
#include "utils/delta_timer.hpp" // Para DeltaTimer
|
||||||
#include "utils/easing_functions.hpp" // Para funciones de suavizado
|
#include "utils/easing_functions.hpp" // Para funciones de suavizado
|
||||||
#include "utils/color.hpp" // Para Color
|
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Logo::Logo()
|
Logo::Logo()
|
||||||
|
|||||||
@@ -17,8 +17,8 @@
|
|||||||
#include "game/defaults.hpp" // Para Defaults::Music
|
#include "game/defaults.hpp" // Para Defaults::Music
|
||||||
#include "game/options.hpp" // Para Options, options, SectionState, Section
|
#include "game/options.hpp" // Para Options, options, SectionState, Section
|
||||||
#include "game/scene_manager.hpp" // Para SceneManager
|
#include "game/scene_manager.hpp" // Para SceneManager
|
||||||
#include "utils/defines.hpp" // Para GameCanvas::CENTER_X, GameCanvas::WIDTH
|
|
||||||
#include "utils/color.hpp" // Para Color
|
#include "utils/color.hpp" // Para Color
|
||||||
|
#include "utils/defines.hpp" // Para GameCanvas::CENTER_X, GameCanvas::WIDTH
|
||||||
#include "utils/utils.hpp" // Para stringToColor
|
#include "utils/utils.hpp" // Para stringToColor
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
@@ -46,7 +46,7 @@ Title::Title()
|
|||||||
|
|
||||||
// Acciones iniciales
|
// Acciones iniciales
|
||||||
Screen::get()->setBorderColor(Color::index(Color::Cpc::BLACK)); // Cambia el color del borde
|
Screen::get()->setBorderColor(Color::index(Color::Cpc::BLACK)); // Cambia el color del borde
|
||||||
Audio::get()->playMusic(Defaults::Music::TITLE_TRACK); // Inicia la musica
|
Audio::get()->playMusic(Defaults::Music::TITLE_TRACK); // Inicia la musica
|
||||||
}
|
}
|
||||||
|
|
||||||
// Comprueba el manejador de eventos
|
// Comprueba el manejador de eventos
|
||||||
|
|||||||
@@ -15,8 +15,8 @@
|
|||||||
#include "core/rendering/text.hpp" // Para Text, Text::CENTER_FLAG, Text::COLOR_FLAG
|
#include "core/rendering/text.hpp" // Para Text, Text::CENTER_FLAG, Text::COLOR_FLAG
|
||||||
#include "core/resources/resource_cache.hpp" // Para Resource
|
#include "core/resources/resource_cache.hpp" // Para Resource
|
||||||
#include "game/options.hpp" // Para Options, options, NotificationPosition
|
#include "game/options.hpp" // Para Options, options, NotificationPosition
|
||||||
#include "utils/delta_timer.hpp" // Para DeltaTimer
|
|
||||||
#include "utils/color.hpp" // Para Color
|
#include "utils/color.hpp" // Para Color
|
||||||
|
#include "utils/delta_timer.hpp" // Para DeltaTimer
|
||||||
|
|
||||||
// [SINGLETON]
|
// [SINGLETON]
|
||||||
Notifier* Notifier::notifier = nullptr;
|
Notifier* Notifier::notifier = nullptr;
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ auto Color::fromString(const std::string& name) -> Uint8 {
|
|||||||
{"bright_white", index(Cpc::BRIGHT_WHITE)},
|
{"bright_white", index(Cpc::BRIGHT_WHITE)},
|
||||||
|
|
||||||
// Aliases para compatibilidad con archivos YAML existentes (Spectrum)
|
// Aliases para compatibilidad con archivos YAML existentes (Spectrum)
|
||||||
{"bright_black", index(Cpc::BLACK)}, // No existe en CPC, mapea a negro
|
{"bright_black", index(Cpc::BLACK)}, // No existe en CPC, mapea a negro
|
||||||
};
|
};
|
||||||
|
|
||||||
auto it = COLOR_MAP.find(name);
|
auto it = COLOR_MAP.find(name);
|
||||||
|
|||||||
@@ -18,77 +18,77 @@
|
|||||||
* de 3 niveles de intensidad (0, 128, 255) para cada componente RGB.
|
* de 3 niveles de intensidad (0, 128, 255) para cada componente RGB.
|
||||||
*/
|
*/
|
||||||
class Color {
|
class Color {
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @enum Cpc
|
* @enum Cpc
|
||||||
* @brief Índices de los colores de la paleta Amstrad CPC
|
* @brief Índices de los colores de la paleta Amstrad CPC
|
||||||
*
|
*
|
||||||
* Los nombres corresponden a los colores oficiales documentados por Amstrad.
|
* Los nombres corresponden a los colores oficiales documentados por Amstrad.
|
||||||
* El índice 0 está reservado para transparencia.
|
* El índice 0 está reservado para transparencia.
|
||||||
*/
|
*/
|
||||||
enum class Cpc : Uint8 {
|
enum class Cpc : Uint8 {
|
||||||
// Transparente (índice 0)
|
// Transparente (índice 0)
|
||||||
CLEAR = 0, // Nota: No usar "TRANSPARENT" - colisiona con macro de Windows
|
CLEAR = 0, // Nota: No usar "TRANSPARENT" - colisiona con macro de Windows
|
||||||
|
|
||||||
// Negros y azules (R=0)
|
// Negros y azules (R=0)
|
||||||
BLACK = 1, // 0, 0, 0
|
BLACK = 1, // 0, 0, 0
|
||||||
BLUE = 2, // 0, 0, 128
|
BLUE = 2, // 0, 0, 128
|
||||||
BRIGHT_BLUE = 3, // 0, 0, 255
|
BRIGHT_BLUE = 3, // 0, 0, 255
|
||||||
|
|
||||||
// Rojos y magentas (G=0)
|
// Rojos y magentas (G=0)
|
||||||
RED = 4, // 128, 0, 0
|
RED = 4, // 128, 0, 0
|
||||||
MAGENTA = 5, // 128, 0, 128
|
MAGENTA = 5, // 128, 0, 128
|
||||||
MAUVE = 6, // 128, 0, 255
|
MAUVE = 6, // 128, 0, 255
|
||||||
BRIGHT_RED = 7, // 255, 0, 0
|
BRIGHT_RED = 7, // 255, 0, 0
|
||||||
PURPLE = 8, // 255, 0, 128
|
PURPLE = 8, // 255, 0, 128
|
||||||
BRIGHT_MAGENTA = 9, // 255, 0, 255
|
BRIGHT_MAGENTA = 9, // 255, 0, 255
|
||||||
|
|
||||||
// Verdes y cianes (R=0, G>0)
|
// Verdes y cianes (R=0, G>0)
|
||||||
GREEN = 10, // 0, 128, 0
|
GREEN = 10, // 0, 128, 0
|
||||||
CYAN = 11, // 0, 128, 128
|
CYAN = 11, // 0, 128, 128
|
||||||
SKY_BLUE = 12, // 0, 128, 255
|
SKY_BLUE = 12, // 0, 128, 255
|
||||||
|
|
||||||
// Amarillos y blancos medios (G=128)
|
// Amarillos y blancos medios (G=128)
|
||||||
YELLOW = 13, // 128, 128, 0
|
YELLOW = 13, // 128, 128, 0
|
||||||
WHITE = 14, // 128, 128, 128
|
WHITE = 14, // 128, 128, 128
|
||||||
PASTEL_BLUE = 15, // 128, 128, 255
|
PASTEL_BLUE = 15, // 128, 128, 255
|
||||||
|
|
||||||
// Naranjas y rosas (R=255, G=128)
|
// Naranjas y rosas (R=255, G=128)
|
||||||
ORANGE = 16, // 255, 128, 0
|
ORANGE = 16, // 255, 128, 0
|
||||||
PINK = 17, // 255, 128, 128
|
PINK = 17, // 255, 128, 128
|
||||||
PASTEL_MAGENTA = 18, // 255, 128, 255
|
PASTEL_MAGENTA = 18, // 255, 128, 255
|
||||||
|
|
||||||
// Verdes brillantes (G=255)
|
// Verdes brillantes (G=255)
|
||||||
BRIGHT_GREEN = 19, // 0, 255, 0
|
BRIGHT_GREEN = 19, // 0, 255, 0
|
||||||
SEA_GREEN = 20, // 0, 255, 128
|
SEA_GREEN = 20, // 0, 255, 128
|
||||||
BRIGHT_CYAN = 21, // 0, 255, 255
|
BRIGHT_CYAN = 21, // 0, 255, 255
|
||||||
|
|
||||||
// Limas y pasteles verdes (G=255)
|
// Limas y pasteles verdes (G=255)
|
||||||
LIME = 22, // 128, 255, 0
|
LIME = 22, // 128, 255, 0
|
||||||
PASTEL_GREEN = 23, // 128, 255, 128
|
PASTEL_GREEN = 23, // 128, 255, 128
|
||||||
PASTEL_CYAN = 24, // 128, 255, 255
|
PASTEL_CYAN = 24, // 128, 255, 255
|
||||||
|
|
||||||
// Amarillos brillantes y blancos (R=255, G=255)
|
// Amarillos brillantes y blancos (R=255, G=255)
|
||||||
BRIGHT_YELLOW = 25, // 255, 255, 0
|
BRIGHT_YELLOW = 25, // 255, 255, 0
|
||||||
PASTEL_YELLOW = 26, // 255, 255, 128
|
PASTEL_YELLOW = 26, // 255, 255, 128
|
||||||
BRIGHT_WHITE = 27 // 255, 255, 255
|
BRIGHT_WHITE = 27 // 255, 255, 255
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Obtiene el índice de paleta de un color CPC
|
* @brief Obtiene el índice de paleta de un color CPC
|
||||||
* @param color Color del enum Cpc
|
* @param color Color del enum Cpc
|
||||||
* @return Índice de paleta (Uint8)
|
* @return Índice de paleta (Uint8)
|
||||||
*/
|
*/
|
||||||
static constexpr auto index(Cpc color) -> Uint8 {
|
static constexpr auto index(Cpc color) -> Uint8 {
|
||||||
return static_cast<Uint8>(color);
|
return static_cast<Uint8>(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Convierte un nombre de color (string) a índice de paleta
|
* @brief Convierte un nombre de color (string) a índice de paleta
|
||||||
* @param name Nombre del color en minúsculas (ej: "cyan", "bright_blue")
|
* @param name Nombre del color en minúsculas (ej: "cyan", "bright_blue")
|
||||||
* @return Índice de paleta, o 1 (BLACK) si no se encuentra
|
* @return Índice de paleta, o 1 (BLACK) si no se encuentra
|
||||||
*/
|
*/
|
||||||
static auto fromString(const std::string& name) -> Uint8;
|
static auto fromString(const std::string& name) -> Uint8;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // COLOR_HPP
|
#endif // COLOR_HPP
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ constexpr int X = 0;
|
|||||||
constexpr int Y = 0;
|
constexpr int Y = 0;
|
||||||
|
|
||||||
// Dimensiones en tiles
|
// Dimensiones en tiles
|
||||||
constexpr int TILE_COLS = 40; // Ancho del mapa en tiles
|
constexpr int TILE_COLS = 40; // Ancho del mapa en tiles
|
||||||
constexpr int TILE_ROWS = 24; // Alto del mapa en tiles
|
constexpr int TILE_ROWS = 24; // Alto del mapa en tiles
|
||||||
constexpr int TILE_COUNT = TILE_COLS * TILE_ROWS; // 960 tiles totales
|
constexpr int TILE_COUNT = TILE_COLS * TILE_ROWS; // 960 tiles totales
|
||||||
|
|
||||||
// Dimensiones en pixels
|
// Dimensiones en pixels
|
||||||
|
|||||||
@@ -41,13 +41,13 @@ struct ColorRGB {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// COLISIONES Y GEOMETRÍA
|
// COLISIONES Y GEOMETRÍA
|
||||||
auto distanceSquared(int x1, int y1, int x2, int y2) -> double; // Distancia² entre dos puntos
|
auto distanceSquared(int x1, int y1, int x2, int y2) -> double; // Distancia² entre dos puntos
|
||||||
auto checkCollision(const Circle& a, const Circle& b) -> bool; // Colisión círculo-círculo
|
auto checkCollision(const Circle& a, const Circle& b) -> bool; // Colisión círculo-círculo
|
||||||
auto checkCollision(const Circle& a, const SDL_FRect& rect) -> bool; // Colisión círculo-rectángulo
|
auto checkCollision(const Circle& a, const SDL_FRect& rect) -> bool; // Colisión círculo-rectángulo
|
||||||
auto checkCollision(const SDL_FRect& a, const SDL_FRect& b) -> bool; // Colisión rectángulo-rectángulo
|
auto checkCollision(const SDL_FRect& a, const SDL_FRect& b) -> bool; // Colisión rectángulo-rectángulo
|
||||||
auto checkCollision(const SDL_FPoint& p, const SDL_FRect& r) -> bool; // Colisión punto-rectángulo
|
auto checkCollision(const SDL_FPoint& p, const SDL_FRect& r) -> bool; // Colisión punto-rectángulo
|
||||||
auto checkCollision(const LineHorizontal& l, const SDL_FRect& r) -> bool; // Colisión línea horizontal-rectángulo
|
auto checkCollision(const LineHorizontal& l, const SDL_FRect& r) -> bool; // Colisión línea horizontal-rectángulo
|
||||||
auto checkCollision(const LineVertical& l, const SDL_FRect& r) -> bool; // Colisión línea vertical-rectángulo
|
auto checkCollision(const LineVertical& l, const SDL_FRect& r) -> bool; // Colisión línea vertical-rectángulo
|
||||||
auto checkCollision(const LineHorizontal& l, const SDL_FPoint& p) -> bool; // Colisión línea horizontal-punto
|
auto checkCollision(const LineHorizontal& l, const SDL_FPoint& p) -> bool; // Colisión línea horizontal-punto
|
||||||
auto checkCollision(const Line& l1, const Line& l2) -> SDL_Point; // Colisión línea-línea (intersección)
|
auto checkCollision(const Line& l1, const Line& l2) -> SDL_Point; // Colisión línea-línea (intersección)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user