From: hgn Date: Sun, 12 Dec 2021 05:15:03 +0000 (+0000) Subject: sound tweaks X-Git-Url: https://skaterift.com/git/?a=commitdiff_plain;h=0bf2b5bb8b7f8617f629c64c4473dd2e024e0c8d;p=fishladder.git sound tweaks --- diff --git a/fishladder.c b/fishladder.c index e344844..18332b5 100644 --- a/fishladder.c +++ b/fishladder.c @@ -1330,7 +1330,7 @@ void vg_update(void) while( world.sim_frame < world.sim_target ) { - sfx_set_playrnd( &audio_random, &audio_system_balls_switching, 0, 9 ); + sfx_set_playrnd( &audio_random, &audio_system_balls_switching, 0, 8 ); // Update splitter deltas for( int i = 0; i < world.h*world.w; i ++ ) @@ -1964,6 +1964,8 @@ static void wbutton_run( enum e_world_button btn_name ) { btn->pressed ^= 0x1; } + + sfx_set_play( &audio_clicks, &audio_system_ui, btn->pressed?1:0 ); } // Drawing diff --git a/fishladder_resources.h b/fishladder_resources.h index 1a56f54..29e7f3e 100644 --- a/fishladder_resources.h +++ b/fishladder_resources.h @@ -64,6 +64,14 @@ sound/random_07.ogg\0\ sound/random_08.ogg\0" }; +sfx_set audio_clicks = +{ + .sources = "\ +sound/click_a.ogg\0\ +sound/click_b.ogg\0\ +sound/click_c.ogg\0" +}; + // One two or three layers of rolling noise sfx_system audio_system_balls_rolling = { @@ -92,6 +100,12 @@ sfx_system audio_system_balls_extra = .name = "Balls Extra" }; +sfx_system audio_system_ui = +{ + .vol = 1.f, .ch = 1, .vol_src = &audio_volume_sfx, + .name = "UI" +}; + ui_colourset ui_fl_colours = { .main = 0xff807373, .hover = 0xff918484, @@ -119,6 +133,7 @@ static void resource_load_main(void) sfx_set_init( &audio_splitter, NULL ); sfx_set_init( &audio_rolls, NULL ); sfx_set_init( &audio_random, NULL ); + sfx_set_init( &audio_clicks, NULL ); } static void resource_free_main(void) @@ -129,6 +144,7 @@ static void resource_free_main(void) sfx_set_free( &audio_splitter ); sfx_set_free( &audio_rolls ); sfx_set_free( &audio_random ); + sfx_set_free( &audio_clicks ); } // SHADERS diff --git a/sound/click_a.ogg b/sound/click_a.ogg new file mode 100644 index 0000000..9ed767a Binary files /dev/null and b/sound/click_a.ogg differ diff --git a/sound/click_b.ogg b/sound/click_b.ogg new file mode 100644 index 0000000..174be87 Binary files /dev/null and b/sound/click_b.ogg differ diff --git a/sound/click_c.ogg b/sound/click_c.ogg new file mode 100644 index 0000000..4c8d73e Binary files /dev/null and b/sound/click_c.ogg differ diff --git a/sound/rolling_01.ogg b/sound/rolling_01.ogg index 6a79597..7243b8b 100644 Binary files a/sound/rolling_01.ogg and b/sound/rolling_01.ogg differ diff --git a/sound/splitter_01.ogg b/sound/splitter_01.ogg index a145fbd..934a353 100644 Binary files a/sound/splitter_01.ogg and b/sound/splitter_01.ogg differ diff --git a/vg/vg_audio.h b/vg/vg_audio.h index 0c9a666..aefc0fc 100644 --- a/vg/vg_audio.h +++ b/vg/vg_audio.h @@ -625,20 +625,14 @@ static void sfx_set_init( sfx_set *dest, char *sources ) sfx_set_strings( dest, sources, dest->flags, 0 ); } -// Pick a random sound from the buffer and play it into system -static void sfx_set_playrnd( sfx_set *source, sfx_system *sys, int min_id, int max_id ) +static void sfx_set_play( sfx_set *source, sfx_system *sys, int id ) { - if( !source->numsegments ) - return; - - int pick = (rand() % (max_id-min_id)) + min_id; - if( sfx_begin_edit( sys ) ) { sys->fadeout = 0; sys->source = source->main; - sys->cur = source->segments[ pick*2 + 0 ]; - sys->end = source->segments[ pick*2 + 1 ]; + sys->cur = source->segments[ id*2 + 0 ]; + sys->end = source->segments[ id*2 + 1 ]; sys->ch = source->ch; // Diagnostics @@ -650,6 +644,23 @@ static void sfx_set_playrnd( sfx_set *source, sfx_system *sys, int min_id, int m } } +// Pick a random sound from the buffer and play it into system +static void sfx_set_playrnd( sfx_set *source, sfx_system *sys, int min_id, int max_id ) +{ + if( !source->numsegments ) + return; + + if( max_id > source->numsegments ) + { + vg_error( "Max ID out of range for playrnd\n" ); + return; + } + + int pick = (rand() % (max_id-min_id)) + min_id; + + sfx_set_play( source, sys, pick ); +} + static void sfx_system_fadeout( sfx_system *sys, u32 length_samples ) { if( sfx_begin_edit( sys ) )