fix all the things broken by api update
authorhgn <hgodden00@gmail.com>
Wed, 5 Mar 2025 11:42:17 +0000 (11:42 +0000)
committerhgn <hgodden00@gmail.com>
Wed, 5 Mar 2025 11:42:17 +0000 (11:42 +0000)
content_skaterift/maps/mp_spawn/main.mdl
skaterift_blender/sr_mdl.py
src/world_entity.c

index eefd82e82a8c41aebc15db612eb2a89b88c75df7..12e63c55211c6ee048a059654c31aa861adad85e 100644 (file)
Binary files a/content_skaterift/maps/mp_spawn/main.mdl and b/content_skaterift/maps/mp_spawn/main.mdl differ
index 217f236a85b8ecf1279b4f4c4d99c4bc120ab803..9942acf782b1eb0a523c006678eef285b72aedc2 100644 (file)
@@ -865,9 +865,9 @@ def _mdl_compiler_compile_entities():
          elif ent_type == 'ent_list':
          #{
             obj_data = obj.SR_data.ent_list[0]
-            list = ent_list()
-            list.entity_ref_start = _mdl_compiler_ent_count( 'file_entity_ref' )
-            list.entity_ref_count = 0
+            lista = ent_list()
+            lista.entity_ref_start = _mdl_compiler_ent_count( 'file_entity_ref' )
+            lista.entity_ref_count = 0
             for k in range(len(obj_data.entities)):
             #{
                if obj_data.entities[k]:
@@ -878,7 +878,7 @@ def _mdl_compiler_compile_entities():
                   list.entity_ref_count += 1
                #}
             #}
-            sr_ent_push( list )
+            sr_ent_push( lista )
          #}
          elif ent_type == 'ent_region':#{
             region = ent_region()
index abcbbd0e623e73697756674c8ec87d7c92325bd0..5184b11cf6ec25f82e74d768c7f3ca9ae319e70f 100644 (file)
@@ -484,14 +484,19 @@ entity_call_result ent_audio_call( world_instance *world, ent_call *call )
       {
          vg_audio_lock();
 
+         u32 flags = AUDIO_FLAG_WORLD | AUDIO_FLAG_RELINQUISHED;
+         flags |= audio->flags & (AUDIO_FLAG_LOOP|AUDIO_FLAG_NO_DOPPLER|AUDIO_FLAG_NO_DSP);
+
          if( audio->behaviour == k_channel_behaviour_unlimited )
          {
             audio_channel_id channel_id = vg_audio_get_first_idle_channel();
             if( channel_id )
             {
-               vg_audio_add_channel_flags( channel_id, AUDIO_FLAG_WORLD | AUDIO_FLAG_RELINQUISHED );
+               vg_audio_add_channel_flags( channel_id, flags );
+               vg_audio_set_channel_group( channel_id, audio->group );
                vg_audio_set_channel_clip( channel_id, &clip->_.clip );
-               vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] );
+               if( audio->flags & AUDIO_FLAG_SPACIAL_3D )
+                  vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] );
                vg_audio_set_channel_volume( channel_id, audio->volume, 1 );
                vg_audio_start_channel( channel_id );
             }
@@ -504,9 +509,11 @@ entity_call_result ent_audio_call( world_instance *world, ent_call *call )
                audio_channel_id channel_id = vg_audio_get_first_idle_channel();
                if( channel_id )
                {
-                  vg_audio_add_channel_flags( channel_id, AUDIO_FLAG_WORLD | AUDIO_FLAG_RELINQUISHED );
+                  vg_audio_add_channel_flags( channel_id, flags );
+                  vg_audio_set_channel_group( channel_id, audio->group );
                   vg_audio_set_channel_clip( channel_id, &clip->_.clip );
-                  vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] );
+                  if( audio->flags & AUDIO_FLAG_SPACIAL_3D )
+                     vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] );
                   vg_audio_set_channel_volume( channel_id, audio->volume, 1 );
                   vg_audio_start_channel( channel_id );
                }
@@ -518,16 +525,21 @@ entity_call_result ent_audio_call( world_instance *world, ent_call *call )
             {
                audio_channel_id channel_id = vg_audio_get_first_active_channel_in_group( audio->group );
                if( channel_id )
-                  vg_audio_crossfade( channel_id, &clip->_.clip, audio->crossfade );
+               {
+                  if( !vg_audio_is_channel_using_clip( channel_id, &clip->_.clip ) )
+                     vg_audio_crossfade( channel_id, &clip->_.clip, audio->crossfade );
+               }
             }
             else
             {
                audio_channel_id channel_id = vg_audio_get_first_idle_channel();
                if( channel_id )
                {
-                  vg_audio_add_channel_flags( channel_id, AUDIO_FLAG_WORLD|AUDIO_FLAG_RELINQUISHED );
+                  vg_audio_add_channel_flags( channel_id, flags );
+                  vg_audio_set_channel_group( channel_id, audio->group );
                   vg_audio_set_channel_clip( channel_id, &clip->_.clip );
-                  vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] );
+                  if( audio->flags & AUDIO_FLAG_SPACIAL_3D )
+                     vg_audio_set_channel_spacial_falloff( channel_id, sound_co, audio->transform.s[0] );
                   vg_audio_set_channel_volume( channel_id, audio->volume, 1 );
                   vg_audio_start_channel( channel_id );
                }