From 0136a935c00e3ea1f231fd88b38b44982fd409ac Mon Sep 17 00:00:00 2001 From: hgn Date: Mon, 6 Mar 2023 03:29:33 +0000 Subject: [PATCH] some audio things --- .gitignore | 3 +++ blender_export.py | 22 ++++++++++++++++++++-- maps_src/mp_home.mdl | Bin 133216 -> 133696 bytes model.h | 3 ++- player_skate.c | 4 +--- skaterift.c | 14 +++++++++++++- world.h | 5 +++-- world_gen.h | 4 ++-- 8 files changed, 44 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index d14eaf6..dd3c399 100755 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,6 @@ bin/ dist/ compile_commands.json + +sound_src/rtj3_01_down.ogg +sound_src/song.ogg diff --git a/blender_export.py b/blender_export.py index a12850b..3e4704e 100644 --- a/blender_export.py +++ b/blender_export.py @@ -782,6 +782,11 @@ class classtype_audio(Structure): if obj.cv_data.bp1: flags |= 0x4 if obj.cv_data.bp2: flags |= 0x8 + if obj.cv_data.audio_format == 'stereo': + flags |= 0x200 + if obj.cv_data.audio_format == 'remain compressed': + flags |= 0x400 + _.flags = flags _.volume = obj.cv_data.fltp #} @@ -789,11 +794,14 @@ class classtype_audio(Structure): @staticmethod def editor_interface( layout, obj ): #{ - layout.prop( obj.cv_data, "strp" ) + layout.prop( obj.cv_data, "strp", text = "File (.ogg)" ) layout.prop( obj.cv_data, "bp0", text = "Looping" ) layout.prop( obj.cv_data, "bp1", text = "3D Audio" ) layout.prop( obj.cv_data, "bp2", text = "Auto Start" ) + layout.prop( obj.cv_data, "audio_format" ) + + layout.prop( obj.cv_data, "fltp", text = "Volume (0-1)" ) #} @staticmethod @@ -1266,6 +1274,7 @@ def encoder_process_material( mat ): if mat.cv_data.surface_prop == 'concrete': dest.surface_prop = 0 if mat.cv_data.surface_prop == 'wood': dest.surface_prop = 1 if mat.cv_data.surface_prop == 'grass': dest.surface_prop = 2 + if mat.cv_data.surface_prop == 'tiles': dest.surface_prop = 3 if mat.cv_data.shader == 'standard': dest.shader = 0 if mat.cv_data.shader == 'standard_cutout': dest.shader = 1 @@ -2714,6 +2723,14 @@ class CV_OBJ_SETTINGS(bpy.types.PropertyGroup): ('classtype_spawn_link',"classtype_spawn_link","",150), ('classtype_nonlocal_gate', "classtype_nonlocal_gate", "", 300) ]) + + audio_format: bpy.props.EnumProperty( + name="Loaded format", + items = [ + ('mono', "mono", "", 0), + ('stereo', "stereo", "", 1), + ('remain compressed', "remain compressed", "", 2) + ]) #} class CV_BONE_SETTINGS(bpy.types.PropertyGroup): @@ -2798,7 +2815,8 @@ class CV_MATERIAL_SETTINGS(bpy.types.PropertyGroup): items = [ ('concrete','concrete','',0), ('wood','wood','',1), - ('grass','grass','',2) + ('grass','grass','',2), + ('tiles','tiles','',3) ]) collision: bpy.props.BoolProperty( \ diff --git a/maps_src/mp_home.mdl b/maps_src/mp_home.mdl index 365dce4c839b99081bd2e15eb6615f512fc54223..b1360d8136cc661172238899aca05edc86660398 100644 GIT binary patch delta 852 zcmZWnO=uHA6n>LzHk+_1CPu7SOf(5mvCT?aJy_UuL$N{??8T^uR!xo8=7%IjgNFvR z2enGd%fX9~t5i`8YQ1ek>p>9`5JVJg#e;_mEqWC6&9e1i9{YXY?7ZKd*_DcHi10c#u(>0*biEBFu^#Y%7~ZnUup8{8eapvXjtgwnu#brxA|QB zPSy!Ldm2}5J|@sXt2iw7JN&fA&59?*Fh6&ez+2)Gb|06;qjO~eWxL$HmjaqpSN~#8 zWTeo~KzfOA-MfpHF#|X2gZ61A4^gDcxQw!jP08;*Kb6jvC^nTpm%KclDHiaDbQl%K z`#po{T(Q)nMESiIvQwF4Bww6}jw%O7li918o@^>r?{K~mx0@eIQDv3WK3E$Fjps4q z+|lM6frR1nxl3(6FC5Z>l=sBlLcb@9Kix_f)%$mn?G0S*4K|CYo&k(GrM4#K0QIcL U;l@g!6Kf&mh8}pS2UzXfU-sn2WB>pF delta 679 zcmZXSOK4M35QgU@_t~a+Z4*Qka|5{;YKvW@ZWPkyDn(G}LL|CMsSm26RkLVmp%--J z0}`f!n}A?)9_SHK+2mQchXp6U@ zZT2)j)FHm2WtGOyHD5XW3%Z{tb$=)&H}1p|zts=gOIQixoG{`;@~%HY1T6DuBd)@D zj-wnH4p)q0`f=35rR@atq> zVXi5;$!_`j%TgD!u_ExVq$iRaXwWle#%JIQ{ zv43}FDc9X;?q2?HDoRJPGIe9PQO!p?&WS@fYZN4b_skate; - - /* FIXME: Compression */ player__debugtext( 1, "V: %5.2f %5.2f %5.2f",player->rb.v[0], player->rb.v[1], player->rb.v[2] ); @@ -2622,7 +2620,7 @@ VG_STATIC void player__skate_post_animate( player_instance *player ) player->cam_velocity_influence = 1.0f; - v3f head = { 0.0f, 1.8f, 0.0f }; /* FIXME: Viewpoint entity */ + v3f head = { 0.0f, 1.8f, 0.0f }; m4x3_mulv( av->sk.final_mtx[ av->id_head ], head, s->state.head_position ); m4x3_mulv( player->rb.to_local, s->state.head_position, s->state.head_position ); diff --git a/skaterift.c b/skaterift.c index a410301..e0d8a31 100644 --- a/skaterift.c +++ b/skaterift.c @@ -261,10 +261,12 @@ VG_STATIC void vg_load(void) /* load home world */ world_load( &world_global.worlds[0], "maps/mp_home.mdl" ); +#if 0 world_load( &world_global.worlds[1], "maps/mp_gridmap.mdl" ); world_load( &world_global.worlds[2], "maps/mp_mtzero.mdl" ); world_link_nonlocal_gates( 0, 1 ); world_link_nonlocal_gates( 0, 2 ); +#endif vg_console_load_autos(); } @@ -332,6 +334,14 @@ VG_STATIC void vg_update_post(void) player__post_update( &localplayer ); + /* FIXME: TEMP */ + audio_lock(); + v3f ears = { 1.0f,0.0f,0.0f }; + m3x3_mulv( main_camera.transform, ears, ears ); + v3_copy( ears, vg_audio.listener_ears ); + v3_copy( main_camera.transform[3], vg_audio.listener_pos ); + audio_unlock(); + #if 0 menu_update(); vehicle_update_post(); @@ -519,11 +529,13 @@ VG_STATIC void vg_render(void) glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT ); render_main_game(); + + m4x4_copy( main_camera.mtx.pv, vg.pv ); /* Other shite */ glDisable(GL_BLEND); glDisable( GL_DEPTH_TEST ); - vg_lines_drawall( (float *)main_camera.mtx.pv ); + vg_lines_drawall(); glViewport( 0,0, vg.window_x, vg.window_y ); } diff --git a/world.h b/world.h index 672ceb7..69def4c 100644 --- a/world.h +++ b/world.h @@ -341,8 +341,7 @@ VG_STATIC struct world_global * Allocated as system memory * -------------------------------------------------------------------------- */ - void *generic_heap, - *audio_heap; /* sub buffer of the audio buffer */ + void *generic_heap; /* rendering */ glmesh skydome; @@ -562,12 +561,14 @@ VG_STATIC void world_init(void) VG_STATIC void world_audio_init(void) { +#if 0 u32 size = vg_linear_remaining( vg_audio.audio_pool ) - sizeof(vg_linear_allocator); world_global.audio_heap = vg_create_linear_allocator( vg_audio.audio_pool, size, VG_MEMORY_SYSTEM ); +#endif } VG_STATIC void world_trigger_achievement( world_instance *world, u32 uid ) diff --git a/world_gen.h b/world_gen.h index 248a7d7..293784a 100644 --- a/world_gen.h +++ b/world_gen.h @@ -262,9 +262,9 @@ VG_STATIC void world_pct_audio( world_instance *world, mdl_node *pnode ) thing->flags = aud->flags; thing->temp_embedded_clip.path = mdl_pstr( world->meta, aud->pstr_file ); - thing->temp_embedded_clip.source_mode = k_audio_source_mono; + thing->temp_embedded_clip.flags = aud->flags; - audio_clip_load( &thing->temp_embedded_clip, world_global.audio_heap ); + audio_clip_load( &thing->temp_embedded_clip, world_global.generic_heap ); thing->player.name = mdl_pstr( world->meta, pnode->pstr_name ); thing->player.enqued = 0; -- 2.25.1