From 5f01e7ab4aad052faad262b55404819dac3d25ce Mon Sep 17 00:00:00 2001 From: hgn Date: Sat, 1 Apr 2023 21:50:24 +0100 Subject: [PATCH] null --- blender_export.py | 13 ++++++++++++ entity.h | 14 ++++++++++++- maps_src/mp_gridmap.mdl | Bin 697368 -> 697384 bytes world.h | 44 ++++++++++++++++++++++++++++++++++++---- 4 files changed, 66 insertions(+), 5 deletions(-) diff --git a/blender_export.py b/blender_export.py index a367cc1..0d4c63a 100644 --- a/blender_export.py +++ b/blender_export.py @@ -1265,6 +1265,15 @@ def sr_compile( collection ): elif obj_data.formato == '1': audio.flags |= 0x400 elif obj_data.formato == '2': audio.flags |= 0x1000 + audio.channel_behaviour = int(obj_data.channel_behaviour) + if audio.channel_behaviour >= 1:#{ + audio.group = obj_data.group + #} + if audio.channel_behaviour == 2:#{ + audio.crossfade = obj_data.transition_duration + #} + audio.probability_curve = int(obj_data.probability_curve) + for ci in range(audio.clip_count):#{ entry = obj_data.files[ci] clip = ent_audio_clip() @@ -1892,6 +1901,8 @@ class SR_OBJECT_ENT_AUDIO(bpy.types.PropertyGroup): flag_loop: bpy.props.BoolProperty( name="Loop",default=False ) flag_auto: bpy.props.BoolProperty( name="Play at start",default=False ) flag_nodoppler: bpy.props.BoolProperty( name="No Doppler",default=False ) + + group: bpy.props.IntProperty( name="Group ID", default=0 ) formato: bpy.props.EnumProperty( name="Format", items=[('0','Uncompressed Mono',''), @@ -1928,6 +1939,8 @@ class SR_OBJECT_ENT_AUDIO(bpy.types.PropertyGroup): c.prop( data[0], 'max_channels' ) c = split.column() c.prop( data[0], 'channel_behaviour', text='Behaviour' ) + if data[0].channel_behaviour >= '1': + box.prop( data[0], 'group' ) if data[0].channel_behaviour == '2': box.prop( data[0], 'transition_duration' ) diff --git a/entity.h b/entity.h index 490737d..5b0d4a7 100644 --- a/entity.h +++ b/entity.h @@ -176,10 +176,22 @@ struct ent_audio{ clip_start, clip_count; float volume, crossfade; - u32 channel_behaviour, + u32 behaviour, group, probability_curve, max_channels; }; +enum channel_behaviour{ + k_channel_behaviour_unlimited = 0, + k_channel_behaviour_discard_if_full = 1, + k_channel_behaviour_crossfade_if_full = 2 +}; + +enum probability_curve{ + k_probability_curve_constant = 0, + k_probability_curve_wildlife_day = 1, + k_probability_curve_wildlife_night = 2 +}; + #endif /* ENTITY_H */ diff --git a/maps_src/mp_gridmap.mdl b/maps_src/mp_gridmap.mdl index ceb3721c51f0b0173603e197c56301a2d30c137a..18f438ebad6d3016753facecffebaeb0ac33d0ef 100644 GIT binary patch delta 10646 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 Szsmeo;qMh^agKh#Z~q6R5SHcu diff --git a/world.h b/world.h index 08d3ca0..997ff31 100644 --- a/world.h +++ b/world.h @@ -118,6 +118,8 @@ struct world_instance tex_light_entities, tex_light_cubes; + float probabilities[3]; + v3i light_cubes; struct framebuffer heightmap; @@ -517,15 +519,40 @@ VG_STATIC void ent_audio_call( world_instance *world, ent_call *call ) ent_audio_clip *clip = mdl_arritm( &world->ent_audio_clip, audio->clip_start+i ); - bar += clip->probability; + float mod = world->probabilities[ audio->probability_curve ], + p = clip->probability * mod; + + bar += p; if( chance < bar ){ float *pos = call->data; audio_lock(); - audio_oneshot_3d( &clip->clip, pos, - audio->transform.s[0], - audio->volume ); + + if( audio->behaviour == k_channel_behaviour_unlimited ){ + audio_oneshot_3d( &clip->clip, pos, + audio->transform.s[0], + audio->volume ); + } + else if( audio->behaviour == k_channel_behaviour_discard_if_full ){ + audio_channel *ch = + audio_get_group_idle_channel( audio->group, + audio->max_channels ); + + if( ch ){ + audio_channel_init( ch, &clip->clip, audio->flags ); + audio_channel_group( ch, audio->group ); + audio_channel_set_spacial( ch, pos, audio->transform.s[0] ); + audio_channel_edit_volume( ch, audio->volume, 1 ); + ch = audio_relinquish_channel( ch ); + } + } + else if( audio->behaviour == k_channel_behaviour_crossfade_if_full){ + + } + + + audio_unlock(); break; } @@ -571,6 +598,15 @@ VG_STATIC void world_update( world_instance *world, v3f pos ) v3_normalize( state->g_sun_dir ); + world->probabilities[ k_probability_curve_constant ] = 1.0f; + + float dp = state->g_day_phase; + + world->probabilities[ k_probability_curve_wildlife_day ] = + (dp*dp*0.8f+state->g_sunset_phase)*0.8f; + world->probabilities[ k_probability_curve_wildlife_night ] = + 1.0f-powf(fabsf((state->g_time_of_day-0.5f)*5.0f),5.0f); + glBindBuffer( GL_UNIFORM_BUFFER, world->ubo_lighting ); glBufferSubData( GL_UNIFORM_BUFFER, 0, -- 2.25.1