Files
projecte_2026/source/game/defaults.hpp

136 lines
6.8 KiB
C++

#pragma once
#include <SDL3/SDL.h>
#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 = 3; // 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 SHADER_ENABLED = false; // Shaders de post-procesado desactivados 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 = "resurrect-64"; // Paleta por defecto
constexpr const char* PALETTE_SORT = "original"; // Modo de ordenación de paleta por defecto
constexpr bool LINEAR_UPSCALE = false; // Upscale NEAREST por defecto
constexpr int DOWNSCALE_ALGO = 1; // Downscale por defecto (0=Bilinear, 1=Lanczos2, 2=Lanczos3)
constexpr bool GPU_ACCELERATION = true; // Aceleración GPU activada 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 defecto
} // 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 Files {
constexpr const char* TITLE_TRACK = "574071_EA_DTV.ogg";
constexpr const char* GAME_TRACK = "574070_KUVO_Farewell_to_school.ogg";
} // namespace Files
} // 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 Files {
constexpr const char* JUMP = "jump.wav";
constexpr const char* LAND = "land.wav";
constexpr const char* DEATH = "death.wav";
constexpr const char* ITEM = "item.wav";
constexpr const char* NOTIFY = "notify.wav";
} // namespace Files
} // namespace Defaults::Sound
namespace Defaults::Cheat {
constexpr bool INFINITE_LIVES = false; // Vidas infinitas desactivadas por defecto
constexpr bool INVINCIBLE = false; // Invencibilidad 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
} // 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_Z; // 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
constexpr Sint16 JOYSTICK_AXIS_THRESHOLD = 20000; // Umbral para ejes y triggers del gamepad
} // namespace Defaults::Controls
namespace Defaults::Kiosk {
constexpr bool ENABLED = false; // Modo kiosko desactivado por defecto
constexpr const char* TEXT = "KIOSK MODE"; // Texto del modo kiosko por defecto
constexpr bool INFINITE_LIVES = true; // Vidas infinitas en modo kiosko desactivadas por defecto
} // namespace Defaults::Kiosk
namespace Defaults::Notification {
constexpr Uint8 BG_COLOR = 0; // Color de fondo (DEFAULT) — púrpura oscuro
constexpr Uint8 BORDER_COLOR = 7; // Color del borde (DEFAULT) — gris azulado
constexpr Uint8 TEXT_COLOR = 7; // Color del texto (DEFAULT) — gris azulado
constexpr Uint8 CHEEVO_BG_COLOR = 0; // Color de fondo (CHEEVO) — púrpura oscuro
constexpr Uint8 CHEEVO_BORDER_COLOR = 18; // Color del borde (CHEEVO) — amarillo dorado
constexpr Uint8 CHEEVO_TEXT_COLOR = 9; // Color del texto (CHEEVO) — blanco
} // namespace Defaults::Notification
namespace Defaults::Console {
constexpr bool TRANSPARENT = false; // Por defecto sólida
constexpr Uint8 BG_COLOR = 0; // Color de fondo (índice de paleta)
constexpr Uint8 MSG_COLOR = 8; // Color de los mensajes
constexpr Uint8 PROMPT_COLOR = 9; // Color del prompt y del borde
constexpr Uint8 COMMAND_COLOR = 9; // Color del texto que escribe el usuario
} // namespace Defaults::Console
namespace Defaults::Loading {
constexpr bool SHOW_PROGRESS = false; // Por defecto no mostrar la barra de carga de recursos
} // namespace Defaults::Loading
namespace Defaults::Localization {
constexpr const char* LANGUAGE = "ca"; // Idioma por defecto (en = inglés, ca = catalán)
} // namespace Defaults::Localization
namespace Defaults::Game::Room {
constexpr const char* INITIAL = "001.yaml"; // Habitación de inicio
} // namespace Defaults::Game::Room
namespace Defaults::Game::Player {
constexpr int SPAWN_X = 25 * Tile::SIZE; // Posición X inicial
constexpr int SPAWN_Y = 13 * Tile::SIZE; // Posición Y inicial
constexpr SDL_FlipMode SPAWN_FLIP = Flip::LEFT; // Orientación inicial
constexpr const char* SKIN = "default"; // Skin del jugador por defecto
constexpr const char* DEFAULT_ANIMATION = "player.yaml"; // Animación del skin por defecto
} // namespace Defaults::Game::Player