From: hgn Date: Wed, 5 Mar 2025 11:42:17 +0000 (+0000) Subject: fix all the things broken by api update X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=40b6c37a9e9e339ac329bc2abac745ad4b0c3d84;p=carveJwlIkooP6JGAAIwe30JlM.git fix all the things broken by api update --- diff --git a/content_skaterift/maps/mp_spawn/main.mdl b/content_skaterift/maps/mp_spawn/main.mdl index eefd82e..12e63c5 100644 Binary files a/content_skaterift/maps/mp_spawn/main.mdl and b/content_skaterift/maps/mp_spawn/main.mdl differ diff --git a/skaterift_blender/sr_mdl.py b/skaterift_blender/sr_mdl.py index 217f236..9942acf 100644 --- a/skaterift_blender/sr_mdl.py +++ b/skaterift_blender/sr_mdl.py @@ -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() diff --git a/src/world_entity.c b/src/world_entity.c index abcbbd0..5184b11 100644 --- a/src/world_entity.c +++ b/src/world_entity.c @@ -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 ); }