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 );
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],
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;
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){
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",
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 );