Fix Sound
This commit is contained in:
parent
010aaa89e3
commit
12074e15d9
@ -138,13 +138,13 @@ void media_audio_play(const char *source, const char *name, float x, float y, fl
|
|||||||
AL_ERROR_CHECK();
|
AL_ERROR_CHECK();
|
||||||
|
|
||||||
// Set Attenuation
|
// Set Attenuation
|
||||||
alSourcei(al_source, AL_DISTANCE_MODEL, AL_LINEAR_DISTANCE);
|
alSourcei(al_source, AL_DISTANCE_MODEL, AL_LINEAR_DISTANCE_CLAMPED);
|
||||||
AL_ERROR_CHECK();
|
AL_ERROR_CHECK();
|
||||||
alSourcef(al_source, AL_MAX_DISTANCE, 16.0f);
|
alSourcef(al_source, AL_MAX_DISTANCE, 22.0f);
|
||||||
AL_ERROR_CHECK();
|
AL_ERROR_CHECK();
|
||||||
alSourcef(al_source, AL_ROLLOFF_FACTOR, 1.0f);
|
alSourcef(al_source, AL_ROLLOFF_FACTOR, 1.0f);
|
||||||
AL_ERROR_CHECK();
|
AL_ERROR_CHECK();
|
||||||
alSourcef(al_source, AL_REFERENCE_DISTANCE, 0.0f);
|
alSourcef(al_source, AL_REFERENCE_DISTANCE, 2.0f);
|
||||||
AL_ERROR_CHECK();
|
AL_ERROR_CHECK();
|
||||||
|
|
||||||
// Set Buffer
|
// Set Buffer
|
||||||
|
@ -56,18 +56,23 @@ std::string _sound_get_source_file() {
|
|||||||
|
|
||||||
// Play Sound
|
// Play Sound
|
||||||
// The pitch value is unsued because it causes glitchy sounds, it is seemingly unused in MCPE as well.
|
// The pitch value is unsued because it causes glitchy sounds, it is seemingly unused in MCPE as well.
|
||||||
static void play(std::string name, float x, float y, float z, float volume, bool is_ui) {
|
static void play(std::string name, float x, float y, float z, float volume, float pitch, bool is_ui) {
|
||||||
std::string source = _sound_get_source_file();
|
std::string source = _sound_get_source_file();
|
||||||
std::string resolved_name = _sound_pick(name);
|
std::string resolved_name = _sound_pick(name);
|
||||||
|
if (pitch < 0.5f) {
|
||||||
|
pitch = 0.5f;
|
||||||
|
} else if (pitch > 2.0f) {
|
||||||
|
pitch = 2.0f;
|
||||||
|
}
|
||||||
if (source.size() > 0 && resolved_name.size() > 0) {
|
if (source.size() > 0 && resolved_name.size() > 0) {
|
||||||
media_audio_play(source.c_str(), resolved_name.c_str(), x, y, z, 1.0f, volume, is_ui);
|
media_audio_play(source.c_str(), resolved_name.c_str(), x, y, z, pitch, volume, is_ui);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static void SoundEngine_playUI_injection(__attribute__((unused)) unsigned char *sound_engine, std::string const& name, __attribute__((unused)) float pitch, float volume) {
|
static void SoundEngine_playUI_injection(__attribute__((unused)) unsigned char *sound_engine, std::string const& name, float volume, float pitch) {
|
||||||
play(name, 0, 0, 0, volume, true);
|
play(name, 0, 0, 0, volume, pitch, true);
|
||||||
}
|
}
|
||||||
static void SoundEngine_play_injection(__attribute__((unused)) unsigned char *sound_engine, std::string const& name, float x, float y, float z, __attribute__((unused)) float pitch, float volume) {
|
static void SoundEngine_play_injection(__attribute__((unused)) unsigned char *sound_engine, std::string const& name, float x, float y, float z, float volume, float pitch) {
|
||||||
play(name, x, y, z, volume, false);
|
play(name, x, y, z, volume, pitch, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Refresh Data
|
// Refresh Data
|
||||||
|
@ -889,10 +889,10 @@ static SelectWorldScreen_getUniqueLevelName_t Touch_SelectWorldScreen_getUniqueL
|
|||||||
|
|
||||||
// SoundEngine
|
// SoundEngine
|
||||||
|
|
||||||
typedef void (*SoundEngine_playUI_t)(unsigned char *sound_engine, std::string const& name, float pitch, float volume);
|
typedef void (*SoundEngine_playUI_t)(unsigned char *sound_engine, std::string const& name, float volume, float pitch);
|
||||||
static SoundEngine_playUI_t SoundEngine_playUI = (SoundEngine_playUI_t) 0x67864;
|
static SoundEngine_playUI_t SoundEngine_playUI = (SoundEngine_playUI_t) 0x67864;
|
||||||
|
|
||||||
typedef void (*SoundEngine_play_t)(unsigned char *sound_engine, std::string const& name, float x, float y, float z, float pitch, float volume);
|
typedef void (*SoundEngine_play_t)(unsigned char *sound_engine, std::string const& name, float x, float y, float z, float volume, float pitch);
|
||||||
static SoundEngine_play_t SoundEngine_play = (SoundEngine_play_t) 0x67860;
|
static SoundEngine_play_t SoundEngine_play = (SoundEngine_play_t) 0x67860;
|
||||||
|
|
||||||
// Common
|
// Common
|
||||||
|
Loading…
Reference in New Issue
Block a user