forked from jaildesigner-jailgames/jaildoctors_dilemma
normalitzat el audio de options, audio i jail_audio a float entre 0.0 i 1.0
This commit is contained in:
@@ -27,13 +27,13 @@ constexpr int WINDOW_ZOOM = 2; // Zoom de la ventana por defecto
|
||||
// =============================================================================
|
||||
// VIDEO
|
||||
// =============================================================================
|
||||
constexpr bool VIDEO_MODE = false; // Modo de pantalla completa por defecto (false = ventana)
|
||||
constexpr bool VIDEO_MODE = false; // Modo de pantalla completa por defecto (false = ventana)
|
||||
constexpr ScreenFilter VIDEO_FILTER = ScreenFilter::NEAREST; // Filtro por defecto
|
||||
constexpr bool VIDEO_VERTICAL_SYNC = true; // Vsync activado por defecto
|
||||
constexpr bool VIDEO_SHADERS = false; // Shaders desactivados por defecto
|
||||
constexpr bool VIDEO_INTEGER_SCALE = true; // Escalado entero activado por defecto
|
||||
constexpr bool VIDEO_KEEP_ASPECT = true; // Mantener aspecto activado por defecto
|
||||
constexpr const char* PALETTE_NAME = "zx-spectrum"; // Paleta por defecto
|
||||
constexpr bool VIDEO_VERTICAL_SYNC = true; // Vsync activado por defecto
|
||||
constexpr bool VIDEO_SHADERS = false; // Shaders desactivados por defecto
|
||||
constexpr bool VIDEO_INTEGER_SCALE = true; // Escalado entero activado por defecto
|
||||
constexpr bool VIDEO_KEEP_ASPECT = true; // Mantener aspecto activado por defecto
|
||||
constexpr const char* PALETTE_NAME = "zx-spectrum"; // Paleta por defecto
|
||||
|
||||
// =============================================================================
|
||||
// BORDER
|
||||
@@ -45,22 +45,22 @@ constexpr int BORDER_HEIGHT = 24; // Alto del borde por defecto
|
||||
// =============================================================================
|
||||
// AUDIO
|
||||
// =============================================================================
|
||||
constexpr int AUDIO_VOLUME = 100; // Volumen por defecto
|
||||
constexpr float AUDIO_VOLUME = 1.0F; // Volumen por defecto
|
||||
constexpr bool AUDIO_ENABLED = true; // Audio por defecto
|
||||
|
||||
// MUSIC
|
||||
constexpr int MUSIC_VOLUME = 80; // Volumen por defecto de la musica
|
||||
constexpr float MUSIC_VOLUME = 0.8F; // Volumen por defecto de la musica
|
||||
constexpr bool MUSIC_ENABLED = true; // Musica habilitada por defecto
|
||||
|
||||
// SOUND
|
||||
constexpr int SOUND_VOLUME = 100; // Volumen por defecto de los efectos de sonido
|
||||
constexpr float SOUND_VOLUME = 1.0F; // Volumen por defecto de los efectos de sonido
|
||||
constexpr bool SOUND_ENABLED = true; // Sonido habilitado por defecto
|
||||
|
||||
// =============================================================================
|
||||
// NOTIFICATIONS
|
||||
// =============================================================================
|
||||
constexpr bool NOTIFICATION_SOUND = true; // Sonido de las notificaciones por defecto
|
||||
const Uint8 NOTIFICATION_COLOR = static_cast<Uint8>(PaletteColor::BLUE); // Color de las notificaciones por defecto
|
||||
constexpr bool NOTIFICATION_SOUND = true; // Sonido de las notificaciones por defecto
|
||||
const Uint8 NOTIFICATION_COLOR = static_cast<Uint8>(PaletteColor::BLUE); // Color de las notificaciones por defecto
|
||||
|
||||
// =============================================================================
|
||||
// CONTROL
|
||||
@@ -70,7 +70,7 @@ constexpr Options::ControlScheme CONTROL_SCHEME = Options::ControlScheme::CURSOR
|
||||
// =============================================================================
|
||||
// OTHER
|
||||
// =============================================================================
|
||||
constexpr bool CONSOLE = false; // Consola desactivada por defecto
|
||||
constexpr const char* VERSION = "1.10"; // Versión por defecto
|
||||
constexpr bool CONSOLE = false; // Consola desactivada por defecto
|
||||
constexpr const char* VERSION = "1.10"; // Versión por defecto
|
||||
|
||||
} // namespace GameDefaults
|
||||
|
||||
@@ -11,16 +11,6 @@
|
||||
|
||||
// --- Namespace Options: gestión de configuración y opciones del juego ---
|
||||
namespace Options {
|
||||
|
||||
// =============================================================================
|
||||
// VOLUME HELPERS - Conversión de volumen 0-100 a 0-128
|
||||
// =============================================================================
|
||||
namespace VolumeHelpers {
|
||||
constexpr auto convertVolume(int volume_percent) -> int {
|
||||
return (volume_percent * 128) / 100;
|
||||
}
|
||||
} // namespace VolumeHelpers
|
||||
|
||||
// Tipos de control de teclado
|
||||
enum class ControlScheme {
|
||||
CURSOR,
|
||||
@@ -113,9 +103,9 @@ struct Window {
|
||||
|
||||
// Estructura para gestionar el borde de la pantalla
|
||||
struct Border {
|
||||
bool enabled{GameDefaults::BORDER_ENABLED}; // Indica si se ha de mostrar el borde
|
||||
float width{GameDefaults::BORDER_WIDTH}; // Ancho del borde
|
||||
float height{GameDefaults::BORDER_HEIGHT}; // Alto del borde
|
||||
bool enabled{GameDefaults::BORDER_ENABLED}; // Indica si se ha de mostrar el borde
|
||||
float width{GameDefaults::BORDER_WIDTH}; // Ancho del borde
|
||||
float height{GameDefaults::BORDER_HEIGHT}; // Alto del borde
|
||||
|
||||
// Constructor por defecto
|
||||
Border() = default;
|
||||
@@ -129,15 +119,15 @@ struct Border {
|
||||
|
||||
// Estructura para las opciones de video
|
||||
struct Video {
|
||||
bool fullscreen{GameDefaults::VIDEO_MODE}; // Contiene el valor del modo de pantalla completa
|
||||
ScreenFilter filter{GameDefaults::VIDEO_FILTER}; // Filtro usado para el escalado de la imagen
|
||||
bool vertical_sync{GameDefaults::VIDEO_VERTICAL_SYNC}; // Indica si se quiere usar vsync o no
|
||||
bool shaders{GameDefaults::VIDEO_SHADERS}; // Indica si se van a usar shaders o no
|
||||
bool integer_scale{GameDefaults::VIDEO_INTEGER_SCALE}; // Indica si el escalado de la imagen ha de ser entero en el modo a pantalla completa
|
||||
bool keep_aspect{GameDefaults::VIDEO_KEEP_ASPECT}; // Indica si se ha de mantener la relación de aspecto al poner el modo a pantalla completa
|
||||
Border border; // Borde de la pantalla
|
||||
std::string palette{GameDefaults::PALETTE_NAME}; // Paleta de colores a usar en el juego
|
||||
std::string info; // Información sobre el modo de vídeo
|
||||
bool fullscreen{GameDefaults::VIDEO_MODE}; // Contiene el valor del modo de pantalla completa
|
||||
ScreenFilter filter{GameDefaults::VIDEO_FILTER}; // Filtro usado para el escalado de la imagen
|
||||
bool vertical_sync{GameDefaults::VIDEO_VERTICAL_SYNC}; // Indica si se quiere usar vsync o no
|
||||
bool shaders{GameDefaults::VIDEO_SHADERS}; // Indica si se van a usar shaders o no
|
||||
bool integer_scale{GameDefaults::VIDEO_INTEGER_SCALE}; // Indica si el escalado de la imagen ha de ser entero en el modo a pantalla completa
|
||||
bool keep_aspect{GameDefaults::VIDEO_KEEP_ASPECT}; // Indica si se ha de mantener la relación de aspecto al poner el modo a pantalla completa
|
||||
Border border; // Borde de la pantalla
|
||||
std::string palette{GameDefaults::PALETTE_NAME}; // Paleta de colores a usar en el juego
|
||||
std::string info; // Información sobre el modo de vídeo
|
||||
|
||||
// Constructor por defecto
|
||||
Video() = default;
|
||||
@@ -156,60 +146,48 @@ struct Video {
|
||||
|
||||
// Estructura para las opciones de musica
|
||||
struct Music {
|
||||
bool enabled{GameDefaults::MUSIC_ENABLED}; // Indica si la música suena o no
|
||||
int volume{VolumeHelpers::convertVolume(GameDefaults::MUSIC_VOLUME)}; // Volumen al que suena la música (0 a 128 internamente)
|
||||
bool enabled{GameDefaults::MUSIC_ENABLED}; // Indica si la música suena o no
|
||||
float volume{GameDefaults::MUSIC_VOLUME}; // Volumen al que suena la música
|
||||
|
||||
// Constructor por defecto
|
||||
Music() = default;
|
||||
|
||||
// Constructor con parámetros
|
||||
Music(bool is_enabled, int volume_percent)
|
||||
Music(bool is_enabled, float volume_percent)
|
||||
: enabled(is_enabled),
|
||||
volume(VolumeHelpers::convertVolume(volume_percent)) {}
|
||||
|
||||
// Método para establecer el volumen
|
||||
void setVolume(int volume_percent) {
|
||||
volume_percent = std::clamp(volume_percent, 0, 100);
|
||||
volume = VolumeHelpers::convertVolume(volume_percent);
|
||||
}
|
||||
volume(volume_percent) {}
|
||||
};
|
||||
|
||||
// Estructura para las opciones de sonido
|
||||
struct Sound {
|
||||
bool enabled{GameDefaults::SOUND_ENABLED}; // Indica si los sonidos suenan o no
|
||||
int volume{VolumeHelpers::convertVolume(GameDefaults::SOUND_VOLUME)}; // Volumen al que suenan los sonidos (0 a 128 internamente)
|
||||
bool enabled{GameDefaults::SOUND_ENABLED}; // Indica si los sonidos suenan o no
|
||||
float volume{GameDefaults::SOUND_VOLUME}; // Volumen al que suenan los sonidos (0 a 128 internamente)
|
||||
|
||||
// Constructor por defecto
|
||||
Sound() = default;
|
||||
|
||||
// Constructor con parámetros
|
||||
Sound(bool is_enabled, int volume_percent)
|
||||
Sound(bool is_enabled, float volume_percent)
|
||||
: enabled(is_enabled),
|
||||
volume(VolumeHelpers::convertVolume(volume_percent)) {}
|
||||
|
||||
// Método para establecer el volumen
|
||||
void setVolume(int volume_percent) {
|
||||
volume_percent = std::clamp(volume_percent, 0, 100);
|
||||
volume = VolumeHelpers::convertVolume(volume_percent);
|
||||
}
|
||||
volume(volume_percent) {}
|
||||
};
|
||||
|
||||
// Estructura para las opciones de audio
|
||||
struct Audio {
|
||||
Music music; // Opciones para la música
|
||||
Sound sound; // Opciones para los efectos de sonido
|
||||
bool enabled{GameDefaults::AUDIO_ENABLED}; // Indica si el audio está activo o no
|
||||
int volume{VolumeHelpers::convertVolume(GameDefaults::AUDIO_VOLUME)}; // Volumen al que suenan el audio (0-128 internamente)
|
||||
Music music; // Opciones para la música
|
||||
Sound sound; // Opciones para los efectos de sonido
|
||||
bool enabled{GameDefaults::AUDIO_ENABLED}; // Indica si el audio está activo o no
|
||||
float volume{GameDefaults::AUDIO_VOLUME}; // Volumen al que suenan el audio (0-128 internamente)
|
||||
|
||||
// Constructor por defecto
|
||||
Audio() = default;
|
||||
|
||||
// Constructor
|
||||
Audio(Music audio_music, Sound audio_sound, bool is_enabled, int volume_percent)
|
||||
Audio(Music audio_music, Sound audio_sound, bool is_enabled, float volume_percent)
|
||||
: music(audio_music),
|
||||
sound(audio_sound),
|
||||
enabled(is_enabled),
|
||||
volume(VolumeHelpers::convertVolume(volume_percent)) {}
|
||||
volume(volume_percent) {}
|
||||
};
|
||||
|
||||
// Estructura para las opciones de juego
|
||||
@@ -239,7 +217,7 @@ inline Audio audio{}; // Opciones relativas
|
||||
inline ControlScheme keys{GameDefaults::CONTROL_SCHEME}; // Teclas usadas para jugar
|
||||
|
||||
// --- Funciones ---
|
||||
void init(); // Crea e inicializa las opciones del programa
|
||||
void init(); // Crea e inicializa las opciones del programa
|
||||
auto loadFromFile(const std::string& file_path) -> bool; // Carga las opciones desde un fichero
|
||||
auto saveToFile(const std::string& file_path) -> bool; // Guarda las opciones a un fichero
|
||||
|
||||
|
||||
Reference in New Issue
Block a user