#pragma once #include #include "core/rendering/screen.hpp" // Para Screen::Filter #include "utils/defines.hpp" // Para GameCanvas // Forward declarations from Options namespace namespace Options { // enum class ControlScheme; enum class NotificationPosition; } // namespace Options namespace Defaults { // --- CANVAS --- // Dimensiones del canvas del juego (usa GameCanvas como fuente única) namespace Canvas { constexpr int WIDTH = GameCanvas::WIDTH; // Ancho del canvas del juego (320) constexpr int HEIGHT = GameCanvas::HEIGHT; // Alto del canvas del juego (200) } // namespace Canvas // --- WINDOW --- namespace Window { constexpr int ZOOM = 2; // Zoom de la ventana por defecto } // namespace Window // --- VIDEO --- namespace 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 SHADERS = false; // Shaders desactivados 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 = "cpc"; // Paleta por defecto } // namespace Video // --- BORDER --- namespace Border { constexpr bool ENABLED = true; // Borde activado por defecto constexpr int WIDTH = 40; // Ancho del borde por defecto (400x300 total) constexpr int HEIGHT = 50; // Alto del borde por defecto (400x300 total) } // namespace Border // --- AUDIO --- namespace Audio { constexpr float VOLUME = 1.0F; // Volumen por defecto constexpr bool ENABLED = true; // Audio por defecto } // namespace Audio // --- MUSIC --- namespace Music { constexpr float VOLUME = 0.8F; // Volumen por defecto de la musica 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* GAME_TRACK = "574071_EA_DTV.ogg"; // Musica de la escena game constexpr int FADE_DURATION_MS = 1000; // Duracion del fade out en milisegundos } // namespace Music // --- SOUND --- namespace Sound { constexpr float VOLUME = 1.0F; // Volumen por defecto de los efectos de sonido constexpr bool ENABLED = true; // Sonido habilitado por defecto constexpr const char* JUMP = "jump.wav"; // Sonido de salto constexpr const char* HIT = "hit.wav"; // Sonido de golpe/daño constexpr const char* LAND = "land.wav"; // Sonido de aterrizaje constexpr const char* ITEM = "item.wav"; // Sonido de recoger item constexpr const char* NOTIFY = "notify.wav"; // Sonido de notificación } // namespace Sound // --- CHEATS --- namespace 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 Cheat // --- CONTROLS --- namespace 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 Controls } // namespace Defaults