forgot to lock!
authorhgn <hgodden00@gmail.com>
Tue, 21 Nov 2023 11:09:04 +0000 (11:09 +0000)
committerhgn <hgodden00@gmail.com>
Tue, 21 Nov 2023 11:09:04 +0000 (11:09 +0000)
audio.h
ent_challenge.c
ent_miniworld.c
ent_objective.c
sound_src/teleport.ogg [new file with mode: 0644]

diff --git a/audio.h b/audio.h
index dbd6fc7b4a3cb00e23d24353bb8cf1567f54791d..5e29a96c08fc6503981dc104f07b4e433e1933db 100644 (file)
--- a/audio.h
+++ b/audio.h
@@ -126,6 +126,7 @@ audio_clip audio_rewind[] = {
 audio_clip audio_ui[] = {
    { .path = "sound/ui_click.ogg" },
    { .path = "sound/ui_ding.ogg" },
+   { .path = "sound/teleport.ogg" }
 };
 
 audio_clip audio_challenge[] = {
index b8f2f5e27ef6a083c822557455df179a44115222..72149b1a4d4dd72327c01b71ad6207cb8a8b2fbe 100644 (file)
@@ -67,8 +67,10 @@ static void ent_challenge_preupdate( ent_challenge *challenge, int active ){
          world_static.challenge_target = NULL;
          world_static.challenge_timer = 0.0f;
          world_static.focused_entity = 0;
+         audio_lock();
          audio_oneshot_3d( &audio_challenge[6], localplayer.rb.co,
                            30.0f, 1.0f );
+         audio_unlock();
       }
       return;
    }
@@ -92,7 +94,9 @@ static void ent_challenge_preupdate( ent_challenge *challenge, int active ){
             next = objective->id_next;
             v3_fill( objective->transform.s, 1.0f );
          }
+         audio_lock();
          audio_oneshot( &audio_challenge[5], 1.0f, 0.0f );
+         audio_unlock();
          return;
       }
    }
@@ -101,7 +105,9 @@ static void ent_challenge_preupdate( ent_challenge *challenge, int active ){
       world_static.challenge_target = NULL;
       world_entity_unfocus();
       gui_helper_clear();
+      audio_lock();
       audio_oneshot( &audio_challenge[4], 1.0f, 0.0f );
+      audio_unlock();
       return;
    }
 }
index c56fa180488f09f0b67be75feed49d56448b701d..9d1d615dd66668e09cd2db53782a2fe1f6fe5cf7 100644 (file)
@@ -184,6 +184,9 @@ static void ent_miniworld_preupdate(void){
       srinput.state = k_input_state_resume;
       menu.disable_open = 0;
       gui_helper_clear();
+      audio_lock();
+      audio_oneshot( &audio_ui[2], 1.0f, 0.0f );
+      audio_unlock();
    }
    else {
       if( global_miniworld.mode == 1 ){
@@ -213,6 +216,10 @@ static void ent_miniworld_preupdate(void){
 }
 
 static void ent_miniworld_goback(void){
+   audio_lock();
+   audio_oneshot( &audio_ui[2], 1.0f, 0.0f );
+   audio_unlock();
+
    global_miniworld.transition = -1;
    global_miniworld.t = 1.0f;
 
index 0cf5790a70c0ce690011c56abc5239302c83e6fb..97e33d8cb5c54caf922fc167348a3b595c6f10eb 100644 (file)
@@ -21,13 +21,17 @@ static void ent_objective_pass( world_instance *world,
          ent_objective_pass( world, next );
       else{
          vg_info( "pass challenge point\n" );
+         audio_lock();
          audio_oneshot_3d( &audio_challenge[0], localplayer.rb.co,
                            30.0f, 1.0f );
+         audio_unlock();
       }
    }
    else {
       vg_success( "challenge win\n" );
+      audio_lock();
       audio_oneshot( &audio_challenge[2], 1.0f, 0.0f );
+      audio_unlock();
       world_static.challenge_target = NULL;
       world_static.challenge_timer = 0.0f;
       world_static.focused_entity = 0;
@@ -107,8 +111,10 @@ static void ent_objective_call( world_instance *world, ent_call *call ){
             ent_objective_pass( world, objective );
          }
          else {
+            audio_lock();
             audio_oneshot_3d( &audio_challenge[6], localplayer.rb.co,
                               30.0f, 1.0f );
+            audio_unlock();
             vg_error( "challenge failed\n" );
             world_static.challenge_target = NULL;
             world_static.challenge_timer = 0.0f;
diff --git a/sound_src/teleport.ogg b/sound_src/teleport.ogg
new file mode 100644 (file)
index 0000000..dfce51e
Binary files /dev/null and b/sound_src/teleport.ogg differ