aa0abd9ae1
defaults.hpp tenia 527 línies amb 17 namespaces de dominis distints (Window, Game, Zones, Entities, Palette, Ship, Physics, Math, Brightness, Rendering, Audio, Music, Sound, Controls, Enemies, Title, FloatingScore). 22 .cpp/.hpp l'incloïen, així que tocar una constant forçava recompilar pràcticament tot. Es divideix en 15 subfitxers (un per namespace, fusionant Music/Sound a audio.hpp i unificant els dos blocs Game duplicats en un sol): defaults/window.hpp defaults/audio.hpp defaults/game.hpp defaults/controls.hpp defaults/zones.hpp defaults/enemies.hpp defaults/entities.hpp defaults/title.hpp defaults/palette.hpp defaults/floating_score.hpp defaults/ship.hpp defaults/math.hpp defaults/physics.hpp defaults/brightness.hpp defaults/rendering.hpp Cross-deps explícites (#include en lloc d'order-of-declaration): zones.hpp -> game.hpp (per Game::WIDTH/HEIGHT) enemies.hpp -> entities.hpp (per SHIP_RADIUS) title.hpp -> game.hpp, math.hpp + <cmath> defaults.hpp queda com a umbrella que inclou els 15 subfitxers. Els 22 includers existents no requereixen cap canvi. Codi nou pot incloure el subfitxer concret per millorar la compilació incremental. Hallazgos #22 i #30 de CODE_REVIEW.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
48 lines
2.4 KiB
C++
48 lines
2.4 KiB
C++
// audio.hpp - Configuració d'audio (sistema), pistes de música i efectes
|
|
// © 2026 JailDesigner
|
|
|
|
#pragma once
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
// Audio (sistema de sonido y música) — usado por Audio::Config en init()
|
|
namespace Defaults::Audio {
|
|
|
|
constexpr bool ENABLED = true; // Audio habilitado por defecto
|
|
constexpr float VOLUME = 1.0F; // Volumen maestro (0..1)
|
|
constexpr bool MUSIC_ENABLED = true; // Música habilitada
|
|
constexpr float MUSIC_VOLUME = 0.8F; // Volumen música (0..1)
|
|
constexpr bool SOUND_ENABLED = true; // Efectos habilitados
|
|
constexpr float SOUND_VOLUME = 1.0F; // Volumen efectos (0..1)
|
|
constexpr float VOLUME_STEP = 0.05F; // Paso UI (5%)
|
|
constexpr int FREQUENCY = 48000; // Frecuencia de muestreo (Hz)
|
|
constexpr int CROSSFADE_MS = 1500; // Crossfade por defecto entre pistas (ms)
|
|
constexpr SDL_AudioFormat FORMAT = SDL_AUDIO_S16; // PCM 16-bit signed nativo
|
|
constexpr int CHANNELS = 2; // Estéreo
|
|
|
|
} // namespace Defaults::Audio
|
|
|
|
// Música (pistas de fondo)
|
|
namespace Defaults::Music {
|
|
|
|
constexpr const char* GAME_TRACK = "game.ogg"; // Pista de juego
|
|
constexpr const char* TITLE_TRACK = "title.ogg"; // Pista de titulo
|
|
constexpr int FADE_DURATION_MS = 1000; // Fade out duration
|
|
|
|
} // namespace Defaults::Music
|
|
|
|
// Efectes de so (sons puntuals)
|
|
namespace Defaults::Sound {
|
|
|
|
constexpr const char* CONTINUE = "effects/continue.wav"; // Cuenta atras
|
|
constexpr const char* EXPLOSION = "effects/explosion.wav"; // Explosión
|
|
constexpr const char* EXPLOSION2 = "effects/explosion2.wav"; // Explosión alternativa
|
|
constexpr const char* FRIENDLY_FIRE_HIT = "effects/friendly_fire.wav"; // Friendly fire hit
|
|
constexpr const char* INIT_HUD = "effects/init_hud.wav"; // Para la animación del HUD
|
|
constexpr const char* LASER = "effects/laser_shoot.wav"; // Disparo
|
|
constexpr const char* LOGO = "effects/logo.wav"; // Logo
|
|
constexpr const char* START = "effects/start.wav"; // El player pulsa START
|
|
constexpr const char* GOOD_JOB_COMMANDER = "voices/good_job_commander.wav"; // Voz: "Good job, commander"
|
|
|
|
} // namespace Defaults::Sound
|