#pragma once #include #include "core/rendering/screen.hpp" // Para Screen::Filter #include "utils/defines.hpp" // Para GameCanvas #include "utils/utils.hpp" // Para PaletteColor // Forward declarations from Options namespace namespace Options { // enum class ControlScheme; enum class NotificationPosition; } // namespace Options namespace Defaults::Canvas { constexpr int WIDTH = GameCanvas::WIDTH; // Ancho del canvas del juego (256) constexpr int HEIGHT = GameCanvas::HEIGHT; // Alto del canvas del juego (192) } // namespace Defaults::Canvas namespace Defaults::Window { constexpr int ZOOM = 2; // Zoom de la ventana por defecto } // namespace Defaults::Window namespace Defaults::Video { constexpr bool FULLSCREEN = false; // Modo de pantalla completa por defecto (false = ventana) constexpr Screen::Filter FILTER = Screen::Filter::NEAREST; // Filtro por defecto constexpr bool VERTICAL_SYNC = true; // Vsync activado por defecto constexpr bool POSTFX = false; // PostFX desactivado por defecto constexpr bool SUPERSAMPLING = false; // Supersampling desactivado por defecto constexpr bool INTEGER_SCALE = true; // Escalado entero activado por defecto constexpr bool KEEP_ASPECT = true; // Mantener aspecto activado por defecto constexpr const char* PALETTE_NAME = "zx-spectrum"; // Paleta por defecto } // namespace Defaults::Video namespace Defaults::Border { constexpr bool ENABLED = true; // Borde activado por defecto constexpr int WIDTH = 32; // Ancho del borde por defecto constexpr int HEIGHT = 24; // Alto del borde por defectoF } // namespace Defaults::Border namespace Defaults::Audio { constexpr float VOLUME = 1.0F; // Volumen por defecto constexpr bool ENABLED = true; // Audio por defecto } // namespace Defaults::Audio namespace Defaults::Music { constexpr float VOLUME = 0.8F; // Volumen por defecto de la musica constexpr bool ENABLED = true; // Musica habilitada por defecto } // namespace Defaults::Music namespace Defaults::Sound { constexpr float VOLUME = 1.0F; // Volumen por defecto de los efectos de sonido constexpr bool ENABLED = true; // Sonido habilitado por defecto } // namespace Defaults::Sound namespace Defaults::Cheat { constexpr bool INFINITE_LIVES = false; // Vidas infinitas desactivadas por defecto constexpr bool INVINCIBLE = false; // Invencibilidad desactivada por defecto constexpr bool JAIL_IS_OPEN = false; // Jail abierta desactivada por defecto constexpr bool ALTERNATE_SKIN = false; // Skin alternativa desactivada por defecto } // namespace Defaults::Cheat namespace Defaults::Stats { constexpr int ROOMS = 0; // Habitaciones visitadas por defecto constexpr int ITEMS = 0; // Items obtenidos por defecto constexpr const char* WORST_NIGHTMARE = ""; // Habitación con más muertes por defecto } // namespace Defaults::Stats namespace Defaults::Controls { constexpr SDL_Scancode KEY_LEFT = SDL_SCANCODE_LEFT; // Tecla izquierda por defecto constexpr SDL_Scancode KEY_RIGHT = SDL_SCANCODE_RIGHT; // Tecla derecha por defecto constexpr SDL_Scancode KEY_JUMP = SDL_SCANCODE_UP; // Tecla salto por defecto constexpr int GAMEPAD_BUTTON_LEFT = SDL_GAMEPAD_BUTTON_DPAD_LEFT; // Botón izquierda por defecto constexpr int GAMEPAD_BUTTON_RIGHT = SDL_GAMEPAD_BUTTON_DPAD_RIGHT; // Botón derecha por defecto constexpr int GAMEPAD_BUTTON_JUMP = SDL_GAMEPAD_BUTTON_WEST; // Botón salto por defecto } // namespace Defaults::Controls namespace Defaults::Kiosk { constexpr bool ENABLED = false; // Modo kiosko desactivado por defecto constexpr const char* TEXT = ""; // Texto del modo kiosko por defecto constexpr bool INFINITE_LIVES = false; // Vidas infinitas en modo kiosko desactivadas por defecto } // namespace Defaults::Kiosk namespace Defaults::Localization { constexpr const char* LANGUAGE = "ca"; // Idioma por defecto (en = inglés, ca = catalán) } // namespace Defaults::Localization namespace Defaults::Game::Room { #ifdef _DEBUG constexpr const char* INITIAL = "51.yaml"; // Habitación de inicio en debug #else constexpr const char* INITIAL = "03.yaml"; // Habitación de inicio en release #endif } // namespace Defaults::Game::Room namespace Defaults::Game::Player { #ifdef _DEBUG constexpr int SPAWN_X = 26 * Tile::SIZE; // Posición X inicial en debug constexpr int SPAWN_Y = 10 * Tile::SIZE; // Posición Y inicial en debug constexpr SDL_FlipMode SPAWN_FLIP = Flip::LEFT; // Orientación inicial en debug #else constexpr int SPAWN_X = 25 * Tile::SIZE; // Posición X inicial en release constexpr int SPAWN_Y = 13 * Tile::SIZE; // Posición Y inicial en release constexpr SDL_FlipMode SPAWN_FLIP = Flip::LEFT; // Orientación inicial en release #endif } // namespace Defaults::Game::Player