From: hgn Date: Mon, 11 Dec 2023 10:39:45 +0000 (+0000) Subject: Merge branch 'master' of harrygodden.com:/home/carveJwlIkooP6JGAAIwe30JlM X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=981f43376c7929866e9294fc35b8bc4cf806eb38;hp=fdfd087053eb596f1e9123951af8acee94d8cd99;p=carveJwlIkooP6JGAAIwe30JlM.git Merge branch 'master' of harrygodden.com:/home/carveJwlIkooP6JGAAIwe30JlM --- diff --git a/player_skate.c b/player_skate.c index 7f4bc37..72055cf 100644 --- a/player_skate.c +++ b/player_skate.c @@ -957,6 +957,7 @@ static void skate_apply_jump_model(void){ q_mulv( qtilt, jumpdir, jumpdir ); } state->surface_cooldown = 10; + state->trick_input_collect = 0.0f; float force = k_jump_force*state->jump_charge; v3_muladds( localplayer.rb.v, jumpdir, force, localplayer.rb.v ); @@ -1100,9 +1101,14 @@ static void player__skate_pre_update(void){ return; } + enum trick_type trick = player_skate_trick_input(); + if( trick ) + state->trick_input_collect += vg.time_frame_delta; + else + state->trick_input_collect = 0.0f; + if( state->activity <= k_skate_activity_air_to_grind ){ - enum trick_type trick = k_trick_type_none; - if( (trick = player_skate_trick_input()) ){ + if( trick && (state->trick_input_collect < 0.1f) ){ if( state->trick_time == 0.0f ){ audio_lock(); audio_oneshot_3d( &audio_flips[vg_randu32(&vg.rand)%4], diff --git a/player_skate.h b/player_skate.h index 735ffa6..8af645b 100644 --- a/player_skate.h +++ b/player_skate.h @@ -44,11 +44,13 @@ struct player_skate{ k_trick_type_none, k_trick_type_kickflip, k_trick_type_shuvit, - k_trick_type_treflip + k_trick_type_treflip, } trick_type; float gravity_bias; + f32 trick_input_collect; + v3f up_dir; v3f head_position; diff --git a/skaterift.c b/skaterift.c index e488f77..00fb7d5 100644 --- a/skaterift.c +++ b/skaterift.c @@ -85,6 +85,10 @@ static void vg_launch_opt(void){ if( vg_long_opt( "demo" ) ){ skaterift.demo_mode = 1; } + + if( (arg = vg_long_opt_arg( "world" )) ){ + skaterift.hub_world = arg; + } } static void vg_preload(void){ @@ -166,7 +170,7 @@ static addon_reg *skaterift_mount_world_unloadable( const char *path, u32 ext ){ static void skaterift_load_world_content(void){ /* hub world */ - addon_reg *hub = skaterift_mount_world_unloadable( "maps/dev_hub", 0 ); + addon_reg *hub = skaterift_mount_world_unloadable( skaterift.hub_world, 0 ); skaterift_mount_world_unloadable( "maps/mp_spawn", ADDON_REG_CITY|ADDON_REG_PREMIUM ); skaterift_mount_world_unloadable( "maps/mp_mtzero", diff --git a/skaterift.h b/skaterift.h index f96d17c..a21e6ab 100644 --- a/skaterift.h +++ b/skaterift.h @@ -68,9 +68,12 @@ struct{ int demo_mode; audio_channel *aud_air; + const char *hub_world; } static skaterift = { - .op = k_async_op_clientloading, .time_rate = 1.0f, .demo_mode = 1 }; + .op = k_async_op_clientloading, .time_rate = 1.0f, .demo_mode = 1, + .hub_world = "maps/dev_hub" +}; /* Skaterift api */ static void skaterift_change_world_start( addon_reg *reg );