From 06e35432f5cf2b4e9ad2f537393511867f64d29a Mon Sep 17 00:00:00 2001 From: hgn Date: Thu, 20 Oct 2022 11:38:40 +0100 Subject: [PATCH] menu stuff --- camera.h | 26 +++ main.c | 67 +++---- menu.h | 403 +++++++++++++++++++++++++++++++++++---- models_src/ch_jordan.mdl | Bin 612140 -> 612140 bytes models_src/ch_outlaw.mdl | Bin 606950 -> 606950 bytes models_src/rs_menu.mdl | Bin 108353 -> 171019 bytes player.h | 13 +- player_audio.h | 20 +- player_model.h | 139 +++++++------- player_physics.h | 19 +- shaders.sh | 2 +- shaders/menu.h | 10 +- 12 files changed, 515 insertions(+), 184 deletions(-) create mode 100644 camera.h diff --git a/camera.h b/camera.h new file mode 100644 index 0000000..07205de --- /dev/null +++ b/camera.h @@ -0,0 +1,26 @@ +#ifndef CAMERA_H +#define CAMERA_H + +#include "common.h" + +static v2f camera_angles; +static v3f camera_pos; + +static m4x3f camera_mtx, + camera_mtx_inverse; + +static void camera_update(void) +{ + /* Update camera matrices */ + v4f qyaw, qpitch, qcam; + q_axis_angle( qyaw, (v3f){ 0.0f, 1.0f, 0.0f }, -camera_angles[0] ); + q_axis_angle( qpitch, (v3f){ 1.0f, 0.0f, 0.0f }, -camera_angles[1] ); + + q_mul( qyaw, qpitch, qcam ); + q_m3x3( qcam, camera_mtx ); + v3_copy( camera_pos, camera_mtx[3] ); + + m4x3_invert_affine( camera_mtx, camera_mtx_inverse ); +} + +#endif /* CAMERA_H */ diff --git a/main.c b/main.c index bbb4c32..61bd6df 100644 --- a/main.c +++ b/main.c @@ -29,8 +29,7 @@ #include "network.h" #include "menu.h" -static int cl_ui = 1, - cl_menu = 0; +static int cl_ui = 1; int main( int argc, char *argv[] ) { @@ -93,7 +92,7 @@ void vg_load(void) static void vg_start(void) { - player_load_model( "ch_jordan" ); + player_load_model( "ch_jordan", 0 ); reset_player( 1, (const char *[]){ "start" } ); } @@ -110,27 +109,17 @@ void vg_update( int loaded ) if( loaded ) { - if( vg_get_button_down( "menu" ) ) - { - cl_menu = !cl_menu; - } - draw_origin_axis(); network_update(); - if( !cl_menu ) - { - player_update_pre(); - world_update( player.phys.rb.co ); - } - - menu_update( cl_menu ); + player_update_pre(); + world_update( player.phys.rb.co ); } } static void vg_update_fixed( int loaded ) { - if( loaded && !cl_menu ) + if( loaded ) { player_update_fixed(); } @@ -138,9 +127,10 @@ static void vg_update_fixed( int loaded ) static void vg_update_post( int loaded ) { - if( loaded && !cl_menu ) + if( loaded ) { player_update_post(); + menu_update(); } } @@ -153,27 +143,19 @@ static void vg_framebuffer_resize( int w, int h ) static void render_main_game(void) { - v3f *active_cam_inv = NULL, - *active_cam = NULL; - m4x4f world_4x4; + m4x3_expand( camera_mtx_inverse, world_4x4 ); - if( cl_menu ) - { - active_cam = menu_cam; - active_cam_inv = menu_cam_inv; - } - else - { - active_cam_inv = player.camera_inverse; - active_cam = player.camera; - } + static float fov = 97.0f; - m4x3_expand( active_cam_inv, world_4x4 ); + float fov_target = 108.0f; + if( player.phys.on_board ) + fov_target = 125.0f; - static float fov = 97.0f; - float fov_target = (player.phys.on_board&&!cl_menu)? 125.0f: 108.0f; - fov = vg_lerpf( fov, fov_target, vg.time_delta * 2.0f ); + if( cl_menu ) + fov_target = menu_fov_target; + + fov = vg_lerpf( fov, fov_target, vg.frame_delta * 2.0f ); gpipeline.fov = freecam? 60.0f: fov; /* 120 */ m4x4_projection( vg.pv, gpipeline.fov, @@ -189,18 +171,21 @@ static void render_main_game(void) int draw_solid = player.is_dead | freecam; - render_world( vg.pv, active_cam ); + render_world( vg.pv, camera_mtx ); if( draw_solid ) - draw_player( active_cam ); + draw_player( camera_mtx ); - render_water_texture( active_cam ); + render_water_texture( camera_mtx ); glBindFramebuffer( GL_FRAMEBUFFER, 0 ); - render_water_surface( vg.pv, active_cam ); - render_world_gates( vg.pv, player.phys.rb.co, active_cam ); + render_water_surface( vg.pv, camera_mtx ); + render_world_gates( vg.pv, player.phys.rb.co, camera_mtx ); if( cl_menu ) + { + glClear( GL_DEPTH_BUFFER_BIT ); menu_render( vg.pv ); + } /* Copy the RGB of what we have into the background buffer */ glBindFramebuffer( GL_READ_FRAMEBUFFER, 0 ); @@ -223,9 +208,9 @@ static void render_main_game(void) { m4x4_projection( vg.pv, gpipeline.fov, (float)vg.window_x / (float)vg.window_y, - 0.01f, 600.0f ); + 0.05f, 60.0f ); m4x4_mul( vg.pv, world_4x4, vg.pv ); - draw_player( active_cam ); + draw_player( camera_mtx ); } /* Draw back in the background diff --git a/menu.h b/menu.h index e062b30..d83538e 100644 --- a/menu.h +++ b/menu.h @@ -10,12 +10,90 @@ static mdl_header *menu_model; static glmesh menu_glmesh; -static v3f menu_cam_pos, - menu_target_cam_pos; -static v4f menu_cam_q = { 0.0f, 0.0f, 0.0f, 1.0f }, - menu_target_cam_q; -static m4x3f menu_cam, menu_cam_inv; +static m4x3f menu_mdl_mtx; static float menu_opacity = 0.0f; +static float menu_input_cooldown = 0.0f; +static float menu_fov_target = 97.0f; +static v2f menu_extra_angles; + +static int menu_loc = 1, + menu_loc_last = 1; +static u32 menu_page = 0; + +static int cl_menu = 0, + cl_menu_go_away = 0; +static int cl_playermdl_id = 0; + +static const char *playermodels[] = { "ch_new", "ch_jordan", "ch_outlaw" }; + +static void menu_btn_paused( int event ); +static void menu_btn_quit( int event ); +static void menu_btn_skater( int event ); +static void menu_btn_map( int event ); +static void menu_btn_map_a( int event ); +static void menu_btn_map_b( int event ); +static void menu_btn_map_c( int event ); +static void menu_btn_fuckoff( int event ); + +struct menu_button +{ + const char *name; + u32 areas; + + void (*fn_press)(int event); + int links[4]; + mdl_node *pnode; + + float falpha, fsize; +} +static menu_buttons[] = +{ +/*0*/{"text_paused", 1, menu_btn_paused }, +/*1*/{"text_quit", 9, menu_btn_quit, {3,-1,4,2}}, +/*2*/{"text_skater", 3, menu_btn_skater, {3,1,4,-1}}, +/*3*/{"text_map", 5, menu_btn_map, {-1,-1,2,-1}}, +/*4*/{"text_about_game", 1, NULL, {2,-1,-1,-1}}, +/*5*/{"skater_left", 2, NULL, {-1,-1,-1,-1}}, +/*6*/{"skater_right", 2, NULL, {-1,-1,-1,-1}}, +/*7*/{"map_a", 4, menu_btn_map_a,{8, -1, 9, 9 }}, +/*8*/{"map_b", 4, menu_btn_map_b,{-1,7,7,-1}}, +/*9*/{"map_c", 4, menu_btn_map_c,{7,7,-1,8}}, +/*a*/{"g_map", 5, NULL }, +/*b*/{"g_controls", 1, NULL }, +/*c*/{"text_quitty", 8, NULL }, +/*d*/{"text_yes", 8, menu_btn_fuckoff }, +}; + +static void menu_btn_map_a( int event ){} +static void menu_btn_map_b( int event ){} +static void menu_btn_map_c( int event ){} + +static void menu_btn_paused( int event ) +{ + +} + +static void menu_btn_fuckoff( int event ) +{ + glfwSetWindowShouldClose( vg.window, 1 ); +} + +static void menu_btn_quit( int event ) +{ + menu_page = 0x8; + menu_loc = 0xd; +} + +static void menu_btn_map( int event ) +{ + menu_page = 0x4; + menu_loc = 7; +} + +static void menu_btn_skater( int event ) +{ + menu_page = 0x2; +} static void menu_init(void) { @@ -24,6 +102,23 @@ static void menu_init(void) if( !menu_model ) vg_fatal_exit_loop( "No menu model" ); + for( int i=0; ipnode = mdl_node_from_name( menu_model, btn->name ); + + if( !btn->pnode ) + vg_fatal_exit_loop( "Menu programming error" ); + } + + vg_convar_push( (struct vg_convar){ + .name = "cl_playermdl_id", + .data = &cl_playermdl_id, + .data_type = k_convar_dtype_i32, + .opt_i32 = { .min=0, .max=2, .clamp=1 }, + .persistent = 1 + }); + vg_acquire_thread_sync(); mdl_unpack_glmesh( menu_model, &menu_glmesh ); vg_release_thread_sync(); @@ -31,54 +126,250 @@ static void menu_init(void) shader_menu_register(); } -static void menu_update( int enabled ) +static void menu_run_directional(void) { - static int enabled_last = 0; + struct menu_button *btn = &menu_buttons[ menu_loc ]; - if( enabled && !enabled_last ) + if( vg_get_button_down( "jump" ) ) { - v3_copy( player.camera[3], menu_cam_pos ); - m3x3_q( player.camera, menu_cam_q ); + if( btn->fn_press ) + { + btn->fn_press( 1 ); + return; + } + } + + if( menu_input_cooldown <= 0.0f ) + { + v2f dir = { vg_get_axis( "lookh" ), vg_get_axis( "lookv" ) }; - if( player.phys.on_board ) + if( v2_length2( dir ) > 0.8f*0.8f ) { - v4f r90; - q_axis_angle( r90, player.phys.rb.up, VG_PIf*-0.5f ); - q_mul( r90, player.phys.rb.q, menu_target_cam_q ); - m4x3_mulv( player.phys.rb.to_world, (v3f){-1.0f,1.6f,0.0f}, - menu_target_cam_pos ); + int idir = 0; + + if( fabsf(dir[0]) > fabsf(dir[1]) ) + { + if( dir[0] > 0.0f ) idir = 2; + else idir = 0; + } + else + { + if( dir[1] > 0.0f ) idir = 3; + else idir = 1; + } + + int link = btn->links[idir]; + + if( link != -1 ) + { + menu_loc_last = menu_loc; + menu_loc = link; + menu_input_cooldown = 0.25f; + } + } + } +} + +static int menu_page_should_backout(void) +{ + return vg_get_button_down( "break" ); +} + +static void menu_close(void) +{ + cl_menu_go_away = 1; + menu_page = 0; +} + +static void menu_page_main(void) +{ + if( menu_page_should_backout() ) + { + menu_close(); + return; + } + + menu_fov_target = 112.0f; + menu_run_directional(); +} + +static void menu_page_map(void) +{ + if( menu_page_should_backout() ) + { + menu_page = 1; + menu_loc = 3; + } + + menu_fov_target = 80.0f; + menu_run_directional(); +} + +static void menu_page_quit(void) +{ + if( menu_page_should_backout() ) + { + menu_page = 1; + menu_loc = 1; + } + + menu_fov_target = 90.0f; + menu_run_directional(); +} + +static void menu_page_skater(void) +{ + float h = vg_get_axis( "lookh" ); + menu_fov_target = 97.0f; + + if( menu_page_should_backout() ) + { + menu_page = 1; + menu_loc = 2; + return; + } + + if( (fabsf(h) > 0.7f) && (menu_input_cooldown <= 0.0f) ) + { + if( h < 0.0f ) + { + cl_playermdl_id --; + if( cl_playermdl_id < 0 ) + cl_playermdl_id = 2; + + menu_buttons[5].fsize = 0.4f; + menu_buttons[5].falpha = 1.0f; + + menu_input_cooldown = 0.25f; + player_load_model( playermodels[ cl_playermdl_id ], 1 ); + } + else + { + cl_playermdl_id ++; + if( cl_playermdl_id > 2 ) + cl_playermdl_id = 0; + + menu_buttons[6].fsize = 0.4f; + menu_buttons[6].falpha = 1.0f; + + menu_input_cooldown = 0.25f; + player_load_model( playermodels[ cl_playermdl_id ], 1 ); + } + } +} + +static void menu_update(void) +{ + if( vg_get_button_down( "menu" ) ) + { + if( cl_menu ) + { + cl_menu_go_away = 1; + menu_page = 0; + } + else + { + cl_menu = 1; + menu_page = 1; + } + } + + if( menu_page == 1 ) + menu_page_main(); + else if( menu_page == 2 ) + menu_page_skater(); + else if( menu_page == 4 ) + menu_page_map(); + else if( menu_page == 8 ) + menu_page_quit(); + + struct menu_button *btn = &menu_buttons[ menu_loc ]; + + v3f pos; + v2f angles; + + /* Base */ + { + v3f lookdir; + v3f *mtx = player.mdl.sk.final_mtx[player.mdl.id_head]; + m3x3_mulv( mtx, (v3f){-1.0f,0.0f,0.0f}, lookdir ); + + lookdir[1] = 0.0f; + v3_normalize( lookdir ); + + v3f center_rough; + + if( player.is_dead ) + { + v3_copy(player.mdl.ragdoll[ player.mdl.id_hip-1 ].rb.co, center_rough); } else { - v4f r180; - q_axis_angle( r180, player.phys.rb.up, VG_PIf ); - q_mul( r180, player.phys.rb.q, menu_target_cam_q ); - m4x3_mulv( player.phys.rb.to_world, (v3f){0.0f,1.6f,-1.0f}, - menu_target_cam_pos ); + v3_add( player.camera_pos, player.visual_transform[3], center_rough ); + v3_muls( center_rough, 0.5f, center_rough ); } - q_normalize( menu_target_cam_q ); - q_normalize( menu_cam_q ); - menu_opacity = 0.0f; + v3_muladds( center_rough, lookdir, 1.5f, pos ); + v3_add( (v3f){ 0.0f,0.8f,0.0f}, pos, pos ); + + angles[1] = 0.0f; + angles[0] = -atan2f( lookdir[0], lookdir[2] ); + + /* setup model matrix */ + v4f qmenu_mdl; + q_axis_angle( qmenu_mdl, (v3f){0.0f,1.0f,0.0f}, -angles[0] ); + + q_m3x3( qmenu_mdl, menu_mdl_mtx ); + v3_copy( center_rough, menu_mdl_mtx[3] ); } - if( enabled_last && !enabled ) + /* Extra */ { - m3x3_q( player.camera, menu_target_cam_q ); - v3_copy( player.camera[3], menu_target_cam_pos ); + v3f delta; + v3_sub( btn->pnode->co, (v3f){ 0.0f,1.5f,-1.5f }, delta ); + v3_normalize( delta ); + + float y = atan2f( delta[0], delta[2] ), + p = -sinf(delta[1]), + dt = vg.frame_delta; + + menu_extra_angles[0] = vg_lerpf( menu_extra_angles[0], y, dt ); + menu_extra_angles[1] = vg_lerpf( menu_extra_angles[1], p, dt ); + + v2_muladds( angles, menu_extra_angles, 0.8f, angles ); + angles[0] = fmodf( angles[0], VG_TAUf ); + } + + /* Update camera */ + { + camera_angles[0] = vg_alerpf( camera_angles[0], angles[0], menu_opacity ); + camera_angles[1] = vg_lerpf ( camera_angles[1], angles[1], menu_opacity ); + v3_lerp( camera_pos, pos, menu_opacity, camera_pos ); + camera_update(); } - float dt = vg.time_delta * 6.0f; + float dt = vg.frame_delta * 6.0f; + menu_opacity = vg_lerpf( menu_opacity, cl_menu&&!cl_menu_go_away, dt ); + + if( menu_opacity <= 0.01f ) + { + cl_menu = 0; + cl_menu_go_away = 0; + } - q_nlerp( menu_cam_q, menu_target_cam_q, dt, menu_cam_q ); - v3_lerp( menu_cam_pos, menu_target_cam_pos, dt, menu_cam_pos ); + vg.time_rate = 1.0-(double)menu_opacity; - q_m3x3( menu_cam_q, menu_cam ); - v3_copy( menu_cam_pos, menu_cam[3] ); - m4x3_invert_affine( menu_cam, menu_cam_inv ); - menu_opacity = vg_lerpf( menu_opacity, enabled, dt ); + if( cl_menu ) + { + menu_input_cooldown -= vg.frame_delta; + } +} - enabled_last = enabled; +/* https://iquilezles.org/articles/functions/ */ +float expSustainedImpulse( float x, float f, float k ) +{ + float s = fmaxf(x-f,0.0f); + return fminf( x*x/(f*f), 1.0f+(2.0f/f)*s*expf(-k*s)); } static void menu_render( m4x4f projection ) @@ -105,10 +396,43 @@ static void menu_render( m4x4f projection ) shader_menu_uPv( projection ); mesh_bind( &menu_glmesh ); - m4x3_identity( mtx ); - shader_menu_uMdl( mtx ); - mesh_draw( &menu_glmesh ); + for( int i=0; iareas & menu_page? 1.0f: 0.0f, + tsize1 = i==menu_loc? 0.07f: 0.0f, + tsize = tsize0+tsize1; + + btn->falpha = vg_lerpf( btn->falpha, talpha, vg.frame_delta * 14.0f ); + btn->fsize = vg_lerpf( btn->fsize, tsize, vg.frame_delta * 3.0f ); + + /* Colour */ + v4f vselected = {0.95f*1.3f,0.45f*1.3f,0.095f*1.3f, 1.0f}, + vnormal = {1.0f,1.0f,1.0f, 1.0f}, + vcurrent; + v4_lerp( vnormal, vselected, btn->falpha, vcurrent ); + shader_menu_uColour( vcurrent ); + + /* Create matrix */ + m4x3f mtx_size; + mdl_node_transform( btn->pnode, mtx ); + m4x3_mul( menu_mdl_mtx, mtx, mtx ); + m4x3_identity( mtx_size ); + m4x3_scale( mtx_size, expSustainedImpulse( btn->fsize, 0.5f, 8.7f) ); + m4x3_mul( mtx, mtx_size, mtx ); + shader_menu_uMdl( mtx ); + + for( int j=0; jpnode->submesh_count; j++ ) + { + mdl_submesh *sm = + mdl_submesh_from_id( menu_model, btn->pnode->submesh_start+j ); + mdl_draw_submesh( sm ); + } + } + + /* for( int i=0; inode_count; i++ ) { mdl_node *pnode = mdl_node_from_id( menu_model, i ); @@ -119,12 +443,13 @@ static void menu_render( m4x4f projection ) mdl_submesh_from_id( menu_model, pnode->submesh_start+j ); mdl_node_transform( pnode, mtx ); - m4x3_mul( player.phys.rb.to_world, mtx, mtx ); + m4x3_mul( menu_mdl_mtx, mtx, mtx ); shader_menu_uMdl( mtx ); mdl_draw_submesh( sm ); } } + */ } static void menu_free(void *_) diff --git a/models_src/ch_jordan.mdl b/models_src/ch_jordan.mdl index 3af60ac1f22eb24213dc6e4e6a060c3d6d805cb7..80482dc745b6766d2fefbdcfa937ac5611253d54 100644 GIT binary patch delta 895 zcmXw%eN0nV7{+;MyWWPYgD6;-Lu0@pvS3Dx5a66fvt%={jm1T@qQ+rTj0({>YlwU* zNqqGAxBcO-_c~yv`VCOM_85TZlZJ81&}xq;v#+{-wV4&9GshE1>5^_C-0PS+K`QSX-6?C1^g<74nh-)Sm{AEX0(DSR3aNsXES zs_%qNtcY06C-=kzniCD-gTAoAqaFL}zMouIkVMPvu%Mhy+F{mZ3~KlsJ+Na|EIQK4 z%0J%1i|3Yw=bktat-JNu!=BQD1G7=3HF4bf)W!l+oGM$CJi!T0uiZXq^k$2IDaeAMb6Fd+3l0pNNglI<_yTjL%l?XX;x=TyP26H?QTH z1GQnx+67U!?fp00LG@iYuRju#c%`mllbVy+t+2UGpLZi&jCcp0?7ZgFT6cvn-rkLa zhNOuI&ibGG%(TRf?I@%DZl$?DZl3)(ww33)Z_43lH|*lkq8H4(BbJ%w!;H!5K{Q0F z_h7xDI$@<8JT=X}B)svUP8Wbd>y(ra5VpJG$B`HLOkmyuLZ52gP zL=3_~D51~-odjeCC9i1v>ehi^#wBW`5aW!-(YP=~jaxMF#aI9M{`t;1_q+FZZu_~o z_H%L83oxw{O48=Zm9wIJHHnClj;%wcPW;Q2$zzk?>-?ux{%(KV0BeX)SJf%6ygXU$ ztlb2gM*QRT4Yqo1d-{#L`J9qd5iPCX28#f{6xa^UM2wdn9>kDVSQ5yWqmQIA8nG%V z1EqMS7b|5q8*x8jw+B~o)qh@rO%V3R-(?-WU%aYkszjpJkY2c2)`c(N)1`(p2n`Y5 zXTMs}MzfH4srw_iHduxVkF9;LlYn(o8~{M(oKQU|nlg@LwaJ$YiWTG?mq% zUbKvw#``yh`zm7$!Go69!>R50_kow}mk>)6Y%pOD?YALEH@{QEU(!Pxo{71|)okC? z44(ITd~oi01HyE-{&TWd^tA!cLW>SXaP!N0<{RK-sZ#QUM%eY%@&w)#5vDqQjWFup z_WtdCRFO@OYA}gr*^z39+@<0E)(Y7{JM5St9&apVo70N;Q%fFG-|Du*E@(cylZOgQ zf|j`nqVDI%UM5>EgcRrCbJV^2&FP7 zW*aP%rpVV053=RtbwWY`?P|eRlu)1rKH`{Z zjNQXUbCu`&+R4=hqac(IvD*#>vhj#AU~pj^GAP=G9793sW6xmABK}s|??NQRypvfx z%733_-3-X;zj6PLOd&M(a)-z6P3CnmDJqVcT?#8(N&;)6lrC(sDA#KU&=l WMInkbinNM!ibgBaOV!;1HGKnSj%V%w diff --git a/models_src/ch_outlaw.mdl b/models_src/ch_outlaw.mdl index eb2aa3c1d89fda541a0b42ce58e15803ab9334d5..0fffc5ccd801b41564f3970d45b76d615c383ba9 100644 GIT binary patch delta 6021 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 RpB%s5_~{g8y;n?~{y%VK&es3{ diff --git a/models_src/rs_menu.mdl b/models_src/rs_menu.mdl index a8524864eb40ae59fdd02312257d1729975b2874..160d37e2dca6b25ca9086728525b6478d340c7b6 100644 GIT binary patch literal 171019 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 delta 6584 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 1.0f: 0.0f, 5.0f*VG_TIMESTEP_FIXED ); + air = vg_lerpf( air, phys->in_air? 1.0f: 0.0f, 5.0f*vg.time_delta ); /* Spacial info */ v3f ears = { 1.0f,0.0f,0.0f }; v3f delta; - float *cam = player.camera[3], + float *cam = camera_pos, *pos = phys->rb.co; audio_player_set_position( &audio_player0, phys->rb.co ); @@ -54,16 +54,16 @@ static void player_audio(void) audio_player_set_position( &audio_player_gate, world.render_gate_pos ); audio_player_set_vol( &audio_player_gate, 5.0f ); - v3_sub( phys->rb.co, player.camera[3], delta ); + v3_sub( phys->rb.co, camera_pos, delta ); v3_normalize( delta ); - m3x3_mulv( player.camera, ears, ears ); + m3x3_mulv( camera_mtx, ears, ears ); /* TODO, Make function */ v3_copy( ears, vg_audio.listener_ears ); - v3_copy( player.camera[3], vg_audio.listener_pos ); + v3_copy( camera_pos, vg_audio.listener_pos ); /* Tunnel / occlusion */ - audio_sample_occlusion( player.camera[3] ); + audio_sample_occlusion( camera_pos ); int sprite_avail = -1; for( int i=0; i