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 ++ )
{
btn->pressed ^= 0x1;
}
+
+ sfx_set_play( &audio_clicks, &audio_system_ui, btn->pressed?1:0 );
}
// Drawing
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 =
{
.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,
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)
sfx_set_free( &audio_splitter );
sfx_set_free( &audio_rolls );
sfx_set_free( &audio_random );
+ sfx_set_free( &audio_clicks );
}
// SHADERS
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
}
}
+// 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 ) )