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:
@@ -134,19 +134,19 @@ auto Audio::getRealMusicState() -> MusicState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Establece el volumen de los sonidos
|
// Establece el volumen de los sonidos
|
||||||
void Audio::setSoundVolume(int sound_volume, Group group) const {
|
void Audio::setSoundVolume(float sound_volume, Group group) const {
|
||||||
if (sound_enabled_) {
|
if (sound_enabled_) {
|
||||||
sound_volume = std::clamp(sound_volume, MIN_VOLUME, MAX_VOLUME);
|
sound_volume = std::clamp(sound_volume, MIN_VOLUME, MAX_VOLUME);
|
||||||
const float CONVERTED_VOLUME = (sound_volume / 100.0F) * (Options::audio.volume / 100.0F);
|
const float CONVERTED_VOLUME = sound_volume * Options::audio.volume;
|
||||||
JA_SetSoundVolume(CONVERTED_VOLUME, static_cast<int>(group));
|
JA_SetSoundVolume(CONVERTED_VOLUME, static_cast<int>(group));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Establece el volumen de la música
|
// Establece el volumen de la música
|
||||||
void Audio::setMusicVolume(int music_volume) const {
|
void Audio::setMusicVolume(float music_volume) const {
|
||||||
if (music_enabled_) {
|
if (music_enabled_) {
|
||||||
music_volume = std::clamp(music_volume, MIN_VOLUME, MAX_VOLUME);
|
music_volume = std::clamp(music_volume, MIN_VOLUME, MAX_VOLUME);
|
||||||
const float CONVERTED_VOLUME = (music_volume / 100.0F) * (Options::audio.volume / 100.0F);
|
const float CONVERTED_VOLUME = music_volume * Options::audio.volume;
|
||||||
JA_SetMusicVolume(CONVERTED_VOLUME);
|
JA_SetMusicVolume(CONVERTED_VOLUME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ class Audio {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// --- Constantes ---
|
// --- Constantes ---
|
||||||
static constexpr int MAX_VOLUME = 100; // Volumen máximo
|
static constexpr float MAX_VOLUME = 1.0F; // Volumen máximo
|
||||||
static constexpr int MIN_VOLUME = 0; // Volumen mínimo
|
static constexpr float MIN_VOLUME = 0.0F; // Volumen mínimo
|
||||||
static constexpr int FREQUENCY = 48000; // Frecuencia de audio
|
static constexpr int FREQUENCY = 48000; // Frecuencia de audio
|
||||||
|
|
||||||
// --- Métodos de singleton ---
|
// --- Métodos de singleton ---
|
||||||
@@ -64,8 +64,8 @@ class Audio {
|
|||||||
void toggleMusic() { music_enabled_ = !music_enabled_; } // Alternar estado de música
|
void toggleMusic() { music_enabled_ = !music_enabled_; } // Alternar estado de música
|
||||||
|
|
||||||
// --- Control de Volumen ---
|
// --- Control de Volumen ---
|
||||||
void setSoundVolume(int volume, Group group = Group::ALL) const; // Ajustar volumen de efectos
|
void setSoundVolume(float volume, Group group = Group::ALL) const; // Ajustar volumen de efectos
|
||||||
void setMusicVolume(int volume) const; // Ajustar volumen de música
|
void setMusicVolume(float volume) const; // Ajustar volumen de música
|
||||||
|
|
||||||
// --- Getters para debug ---
|
// --- Getters para debug ---
|
||||||
[[nodiscard]] auto isEnabled() const -> bool { return enabled_; }
|
[[nodiscard]] auto isEnabled() const -> bool { return enabled_; }
|
||||||
@@ -78,14 +78,12 @@ class Audio {
|
|||||||
private:
|
private:
|
||||||
// --- Estructuras privadas ---
|
// --- Estructuras privadas ---
|
||||||
struct Music {
|
struct Music {
|
||||||
MusicState state; // Estado actual de la música (reproduciendo, detenido, en pausa)
|
MusicState state{MusicState::STOPPED}; // Estado actual de la música (reproduciendo, detenido, en pausa)
|
||||||
std::string name; // Última pista de música reproducida
|
std::string name; // Última pista de música reproducida
|
||||||
bool loop; // Indica si la última pista de música se debe reproducir en bucle
|
bool loop{false}; // Indica si la última pista de música se debe reproducir en bucle
|
||||||
|
|
||||||
// Constructor para inicializar la música con valores predeterminados
|
// Constructor para inicializar la música con valores predeterminados
|
||||||
Music()
|
Music() = default;
|
||||||
: state(MusicState::STOPPED),
|
|
||||||
loop(false) {}
|
|
||||||
|
|
||||||
// Constructor para inicializar con valores específicos
|
// Constructor para inicializar con valores específicos
|
||||||
Music(MusicState init_state, std::string init_name, bool init_loop)
|
Music(MusicState init_state, std::string init_name, bool init_loop)
|
||||||
|
|||||||
@@ -341,7 +341,7 @@ void Resource::createText() {
|
|||||||
std::cout << "\n>> CREATING TEXT_OBJECTS" << '\n';
|
std::cout << "\n>> CREATING TEXT_OBJECTS" << '\n';
|
||||||
|
|
||||||
std::vector<ResourceInfo> resources = {
|
std::vector<ResourceInfo> resources = {
|
||||||
{"debug", "debug.gif", "debug.txt"},
|
{"aseprite", "aseprite.gif", "aseprite.txt"},
|
||||||
{"gauntlet", "gauntlet.gif", "gauntlet.txt"},
|
{"gauntlet", "gauntlet.gif", "gauntlet.txt"},
|
||||||
{"smb2", "smb2.gif", "smb2.txt"},
|
{"smb2", "smb2.gif", "smb2.txt"},
|
||||||
{"subatomic", "subatomic.gif", "subatomic.txt"},
|
{"subatomic", "subatomic.gif", "subatomic.txt"},
|
||||||
|
|||||||
@@ -45,15 +45,15 @@ constexpr int BORDER_HEIGHT = 24; // Alto del borde por defecto
|
|||||||
// =============================================================================
|
// =============================================================================
|
||||||
// AUDIO
|
// 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
|
constexpr bool AUDIO_ENABLED = true; // Audio por defecto
|
||||||
|
|
||||||
// MUSIC
|
// 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
|
constexpr bool MUSIC_ENABLED = true; // Musica habilitada por defecto
|
||||||
|
|
||||||
// SOUND
|
// 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
|
constexpr bool SOUND_ENABLED = true; // Sonido habilitado por defecto
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
|
|||||||
@@ -11,16 +11,6 @@
|
|||||||
|
|
||||||
// --- Namespace Options: gestión de configuración y opciones del juego ---
|
// --- Namespace Options: gestión de configuración y opciones del juego ---
|
||||||
namespace Options {
|
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
|
// Tipos de control de teclado
|
||||||
enum class ControlScheme {
|
enum class ControlScheme {
|
||||||
CURSOR,
|
CURSOR,
|
||||||
@@ -157,41 +147,29 @@ struct Video {
|
|||||||
// Estructura para las opciones de musica
|
// Estructura para las opciones de musica
|
||||||
struct Music {
|
struct Music {
|
||||||
bool enabled{GameDefaults::MUSIC_ENABLED}; // Indica si la música suena o no
|
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)
|
float volume{GameDefaults::MUSIC_VOLUME}; // Volumen al que suena la música
|
||||||
|
|
||||||
// Constructor por defecto
|
// Constructor por defecto
|
||||||
Music() = default;
|
Music() = default;
|
||||||
|
|
||||||
// Constructor con parámetros
|
// Constructor con parámetros
|
||||||
Music(bool is_enabled, int volume_percent)
|
Music(bool is_enabled, float volume_percent)
|
||||||
: enabled(is_enabled),
|
: enabled(is_enabled),
|
||||||
volume(VolumeHelpers::convertVolume(volume_percent)) {}
|
volume(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);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Estructura para las opciones de sonido
|
// Estructura para las opciones de sonido
|
||||||
struct Sound {
|
struct Sound {
|
||||||
bool enabled{GameDefaults::SOUND_ENABLED}; // Indica si los sonidos suenan o no
|
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)
|
float volume{GameDefaults::SOUND_VOLUME}; // Volumen al que suenan los sonidos (0 a 128 internamente)
|
||||||
|
|
||||||
// Constructor por defecto
|
// Constructor por defecto
|
||||||
Sound() = default;
|
Sound() = default;
|
||||||
|
|
||||||
// Constructor con parámetros
|
// Constructor con parámetros
|
||||||
Sound(bool is_enabled, int volume_percent)
|
Sound(bool is_enabled, float volume_percent)
|
||||||
: enabled(is_enabled),
|
: enabled(is_enabled),
|
||||||
volume(VolumeHelpers::convertVolume(volume_percent)) {}
|
volume(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);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Estructura para las opciones de audio
|
// Estructura para las opciones de audio
|
||||||
@@ -199,17 +177,17 @@ struct Audio {
|
|||||||
Music music; // Opciones para la música
|
Music music; // Opciones para la música
|
||||||
Sound sound; // Opciones para los efectos de sonido
|
Sound sound; // Opciones para los efectos de sonido
|
||||||
bool enabled{GameDefaults::AUDIO_ENABLED}; // Indica si el audio está activo o no
|
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)
|
float volume{GameDefaults::AUDIO_VOLUME}; // Volumen al que suenan el audio (0-128 internamente)
|
||||||
|
|
||||||
// Constructor por defecto
|
// Constructor por defecto
|
||||||
Audio() = default;
|
Audio() = default;
|
||||||
|
|
||||||
// Constructor
|
// 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),
|
: music(audio_music),
|
||||||
sound(audio_sound),
|
sound(audio_sound),
|
||||||
enabled(is_enabled),
|
enabled(is_enabled),
|
||||||
volume(VolumeHelpers::convertVolume(volume_percent)) {}
|
volume(volume_percent) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Estructura para las opciones de juego
|
// Estructura para las opciones de juego
|
||||||
|
|||||||
Reference in New Issue
Block a user