Merge branch 'master' of harrygodden.com:/home/carveJwlIkooP6JGAAIwe30JlM
authorhgn <hgodden00@gmail.com>
Mon, 11 Dec 2023 10:39:45 +0000 (10:39 +0000)
committerhgn <hgodden00@gmail.com>
Mon, 11 Dec 2023 10:39:45 +0000 (10:39 +0000)
player_skate.c
player_skate.h
skaterift.c
skaterift.h

index 7f4bc37f741991deb72b99cca2495cfe0a2731af..72055cf7ffb6a54dd9eb435ca0c581cd2c2236c3 100644 (file)
@@ -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], 
index 735ffa613e8b59651fa73f4b6c544aae07c2c020..8af645bdf1ac102d6deb07419742fa285e3da972 100644 (file)
@@ -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;
 
index e488f778f0cfa63e613b36bd39ee850a1e8b08e5..00fb7d5656a4f31e9d0a6df390ecfaa2573a855d 100644 (file)
@@ -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", 
index f96d17c61b470fae836be8a9cdb2bf592d58bd90..a21e6ab423642b4b86903b8c7490cff9471df3a6 100644 (file)
@@ -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 );