Fixed sound back to th way it was before mostly.

This commit is contained in:
Storm Dragon
2026-01-20 02:12:19 -05:00
parent 5a16f798ac
commit 385ed3fd9b
6 changed files with 51 additions and 29 deletions

View File

@@ -114,12 +114,19 @@ class WorldSnare {
minute_timer.restart();
}
// Keep snare sound active so distance-based fade can work.
if (sound_handle == -1 || !p.sound_is_active(sound_handle)) {
sound_handle = play_1d_tile("sounds/actions/set_snare.ogg", x, position, true);
if (sound_handle != -1) {
p.update_sound_positioning_values(sound_handle, SNARE_SOUND_PAN_STEP, to_audio_volume_step(SNARE_SOUND_VOLUME_STEP), true);
int snare_distance = x - position;
if (snare_distance < 0) snare_distance = -snare_distance;
if (snare_distance <= SNARE_SOUND_RANGE) {
if (sound_handle == -1 || !p.sound_is_active(sound_handle)) {
sound_handle = p.play_1d("sounds/actions/set_snare.ogg", x, position, true);
if (sound_handle != -1) {
p.update_sound_positioning_values(sound_handle, SNARE_SOUND_PAN_STEP, SNARE_SOUND_VOLUME_STEP, true);
}
}
} else if (sound_handle != -1) {
p.destroy_sound(sound_handle);
sound_handle = -1;
}
// Every minute logic (only when active)
@@ -211,13 +218,20 @@ class WorldFire {
}
}
// Keep fire sound active while burning so distance-based fade can work.
// Hard cutoff for fire sound.
if (is_burning()) {
if (sound_handle == -1 || !p.sound_is_active(sound_handle)) {
sound_handle = play_1d_tile("sounds/items/fire.ogg", x, position, true);
if (sound_handle != -1) {
p.update_sound_positioning_values(sound_handle, -1.0, to_audio_volume_step(FIRE_SOUND_VOLUME_STEP), true);
int fire_distance = x - position;
if (fire_distance < 0) fire_distance = -fire_distance;
if (fire_distance <= FIRE_SOUND_RANGE) {
if (sound_handle == -1 || !p.sound_is_active(sound_handle)) {
sound_handle = p.play_1d("sounds/items/fire.ogg", x, position, true);
if (sound_handle != -1) {
p.update_sound_positioning_values(sound_handle, -1.0, FIRE_SOUND_VOLUME_STEP, true);
}
}
} else if (sound_handle != -1) {
p.destroy_sound(sound_handle);
sound_handle = -1;
}
}
}
@@ -322,13 +336,13 @@ class WorldStream {
// Keep stream sound active so distance-based fade can work.
if (sound_handle == -1 || !p.sound_is_active(sound_handle)) {
sound_handle = play_1d_tile("sounds/terrain/stream.ogg", x, sound_pos, true);
sound_handle = p.play_1d("sounds/terrain/stream.ogg", x, sound_pos, true);
sound_position = sound_pos;
if (sound_handle != -1) {
p.update_sound_positioning_values(sound_handle, -1.0, to_audio_volume_step(STREAM_SOUND_VOLUME_STEP), true);
p.update_sound_positioning_values(sound_handle, -1.0, STREAM_SOUND_VOLUME_STEP, true);
}
} else if (sound_position != sound_pos) {
update_sound_1d_tile(sound_handle, sound_pos);
p.update_sound_1d(sound_handle, sound_pos);
sound_position = sound_pos;
}
}
@@ -1186,13 +1200,13 @@ class MountainRange {
// Keep nearest stream sound active so distance-based fade can work.
if (nearest_stream != -1) {
if (stream_sound_handle == -1 || !p.sound_is_active(stream_sound_handle)) {
stream_sound_handle = play_1d_tile("sounds/terrain/stream.ogg", x, nearest_stream, true);
stream_sound_handle = p.play_1d("sounds/terrain/stream.ogg", x, nearest_stream, true);
stream_sound_position = nearest_stream;
if (stream_sound_handle != -1) {
p.update_sound_positioning_values(stream_sound_handle, -1.0, to_audio_volume_step(MOUNTAIN_STREAM_VOLUME_STEP), true);
p.update_sound_positioning_values(stream_sound_handle, -1.0, MOUNTAIN_STREAM_VOLUME_STEP, true);
}
} else if (stream_sound_position != nearest_stream) {
update_sound_1d_tile(stream_sound_handle, nearest_stream);
p.update_sound_1d(stream_sound_handle, nearest_stream);
stream_sound_position = nearest_stream;
}
}