projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
textbox
[carveJwlIkooP6JGAAIwe30JlM.git]
/
player_skate.c
diff --git
a/player_skate.c
b/player_skate.c
index 9b1aea11a47c83f7b35af6553dcecfc0287919f3..e1971b2000725198264cf07b6d7ec5f65e675d40 100644
(file)
--- a/
player_skate.c
+++ b/
player_skate.c
@@
-5,6
+5,7
@@
#include "audio.h"
#include "vg/vg_perlin.h"
#include "menu.h"
#include "audio.h"
#include "vg/vg_perlin.h"
#include "menu.h"
+#include "ent_skateshop.h"
VG_STATIC void player__skate_bind( player_instance *player )
{
VG_STATIC void player__skate_bind( player_instance *player )
{
@@
-662,15
+663,16
@@
invalidated_grind:;
v3_copy( best->v, player->rb.v );
s->land_dist = best->land_dist;
v3_copy( best->v, player->rb.v );
s->land_dist = best->land_dist;
- v2f steer = { player->input_js1h->axis.value,
- player->input_js1v->axis.value };
- v2_normalize_clamp( steer );
s->state.gravity_bias = best->gravity;
if( best->type == k_prediction_grind ){
s->state.activity = k_skate_activity_air_to_grind;
}
s->state.gravity_bias = best->gravity;
if( best->type == k_prediction_grind ){
s->state.activity = k_skate_activity_air_to_grind;
}
+ v2f steer;
+ joystick_state( k_srjoystick_steer, steer );
+ v2_normalize_clamp( steer );
+
if( (fabsf(steer[1]) > 0.5f) && (s->land_dist >= 1.5f) ){
s->state.flip_rate = (1.0f/s->land_dist) * vg_signf(steer[1]) *
s->state.reverse ;
if( (fabsf(steer[1]) > 0.5f) && (s->land_dist >= 1.5f) ){
s->state.flip_rate = (1.0f/s->land_dist) * vg_signf(steer[1]) *
s->state.reverse ;
@@
-712,10
+714,6
@@
VG_STATIC void skate_apply_air_model( player_instance *player )
q_axis_angle( correction, axis,
acosf(angle)*2.0f*VG_TIMESTEP_FIXED );
q_mul( correction, player->rb.q, player->rb.q );
q_axis_angle( correction, axis,
acosf(angle)*2.0f*VG_TIMESTEP_FIXED );
q_mul( correction, player->rb.q, player->rb.q );
-
- v2f steer = { player->input_js1h->axis.value,
- player->input_js1v->axis.value };
- v2_normalize_clamp( steer );
}
VG_STATIC int player_skate_trick_input( player_instance *player );
}
VG_STATIC int player_skate_trick_input( player_instance *player );
@@
-793,7
+791,7
@@
VG_STATIC void skate_apply_grab_model( player_instance *player )
{
struct player_skate *s = &player->_skate;
{
struct player_skate *s = &player->_skate;
- float grabt =
player->input_grab->axis.value
;
+ float grabt =
axis_state( k_sraxis_grab )
;
if( grabt > 0.5f ){
v2_muladds( s->state.grab_mouse_delta, vg.mouse_delta, 0.02f,
if( grabt > 0.5f ){
v2_muladds( s->state.grab_mouse_delta, vg.mouse_delta, 0.02f,
@@
-811,9
+809,12
@@
VG_STATIC void skate_apply_steering_model( player_instance *player )
{
struct player_skate *s = &player->_skate;
{
struct player_skate *s = &player->_skate;
+ v2f jsteer;
+ joystick_state( k_srjoystick_steer, jsteer );
+
/* Steering */
/* Steering */
- float steer =
player->input_js1h->axis.value
,
- grab =
player->input_grab->axis.value
;
+ float steer =
jsteer[0]
,
+ grab =
axis_state( k_sraxis_grab )
;
steer = vg_signf( steer ) * steer*steer * k_steer_ground;
steer = vg_signf( steer ) * steer*steer * k_steer_ground;
@@
-892,9
+893,8
@@
VG_STATIC void skate_apply_friction_model( player_instance *player )
/* Pushing additive force */
/* Pushing additive force */
- if( !player->input_jump->button.value ){
- if( player->input_push->button.value ||
- (vg.time-s->state.start_push<0.75) )
+ if( !button_press( k_srbind_jump ) ){
+ if( button_press( k_srbind_push ) || (vg.time-s->state.start_push<0.75) )
{
if( (vg.time - s->state.cur_push) > 0.25 )
s->state.start_push = vg.time;
{
if( (vg.time - s->state.cur_push) > 0.25 )
s->state.start_push = vg.time;
@@
-922,7
+922,7
@@
VG_STATIC void skate_apply_jump_model( player_instance *player )
{
struct player_skate *s = &player->_skate;
int charging_jump_prev = s->state.charging_jump;
{
struct player_skate *s = &player->_skate;
int charging_jump_prev = s->state.charging_jump;
- s->state.charging_jump =
player->input_jump->button.value
;
+ s->state.charging_jump =
button_press( k_srbind_jump )
;
/* Cannot charge this in air */
if( s->state.activity <= k_skate_activity_air_to_grind ){
/* Cannot charge this in air */
if( s->state.activity <= k_skate_activity_air_to_grind ){
@@
-962,7
+962,10
@@
VG_STATIC void skate_apply_jump_model( player_instance *player )
s->grind_cooldown = 30;
s->state.activity = k_skate_activity_ground;
s->grind_cooldown = 30;
s->state.activity = k_skate_activity_ground;
- float tilt = player->input_js1h->axis.value * 0.3f;
+ v2f steer;
+ joystick_state( k_srjoystick_steer, steer );
+
+ float tilt = steer[0] * 0.3f;
tilt *= vg_signf(v3_dot( player->rb.v, s->grind_dir ));
v4f qtilt;
tilt *= vg_signf(v3_dot( player->rb.v, s->grind_dir ));
v4f qtilt;
@@
-976,10
+979,6
@@
VG_STATIC void skate_apply_jump_model( player_instance *player )
s->state.jump_charge = 0.0f;
s->state.jump_time = vg.time;
s->state.jump_charge = 0.0f;
s->state.jump_time = vg.time;
- v2f steer = { player->input_js1h->axis.value,
- player->input_js1v->axis.value };
- v2_normalize_clamp( steer );
-
audio_lock();
audio_oneshot_3d( &audio_jumps[rand()%2], player->rb.co, 40.0f, 1.0f );
audio_unlock();
audio_lock();
audio_oneshot_3d( &audio_jumps[rand()%2], player->rb.co, 40.0f, 1.0f );
audio_unlock();
@@
-997,7
+996,7
@@
VG_STATIC void skate_apply_pump_model( player_instance *player )
/* Throw / collect routine
*/
/* Throw / collect routine
*/
- if(
player->input_grab->axis.value
> 0.5f ){
+ if(
axis_state( k_sraxis_grab )
> 0.5f ){
if( s->state.activity == k_skate_activity_ground ){
/* Throw */
v3_muls( player->rb.to_world[1], k_mmthrow_scale, s->state.throw_v );
if( s->state.activity == k_skate_activity_ground ){
/* Throw */
v3_muls( player->rb.to_world[1], k_mmthrow_scale, s->state.throw_v );
@@
-1041,8
+1040,8
@@
VG_STATIC void skate_apply_cog_model( player_instance *player )
v3_copy( s->state.up_dir, ideal_dir );
v3_normalize( ideal_dir );
v3_copy( s->state.up_dir, ideal_dir );
v3_normalize( ideal_dir );
- v3_muladds( player->rb.co, ideal_dir,
-
1.0f-player->input_grab->axis.value
, ideal_cog );
+ float grab = axis_state( k_sraxis_grab );
+
v3_muladds( player->rb.co, ideal_dir, 1.0f-grab
, ideal_cog );
v3_sub( ideal_cog, s->state.cog, ideal_diff );
/* Apply velocities */
v3_sub( ideal_cog, s->state.cog, ideal_diff );
/* Apply velocities */
@@
-1109,17
+1108,17
@@
VG_STATIC void skate_copy_holdout( player_instance *player )
VG_STATIC int player_skate_trick_input( player_instance *player )
{
VG_STATIC int player_skate_trick_input( player_instance *player )
{
- return (
player->input_trick0->button.value
) |
- (
player->input_trick1->button.value
<< 1) |
- (
player->input_trick2->button.value
<< 1) |
- (
player->input_trick2->button.value
);
+ return (
button_press( k_srbind_trick0 )
) |
+ (
button_press( k_srbind_trick1 )
<< 1) |
+ (
button_press( k_srbind_trick2 )
<< 1) |
+ (
button_press( k_srbind_trick2 )
);
}
VG_STATIC void player__skate_pre_update( player_instance *player )
{
struct player_skate *s = &player->_skate;
}
VG_STATIC void player__skate_pre_update( player_instance *player )
{
struct player_skate *s = &player->_skate;
- if(
vg_input_button_down( player->input
_use ) ){
+ if(
button_down( k_srbind
_use ) ){
player->subsystem = k_player_subsystem_walk;
v3f angles;
player->subsystem = k_player_subsystem_walk;
v3f angles;
@@
-1451,14
+1450,16
@@
VG_STATIC void skate_weight_distribute( player_instance *player )
int reverse_dir = v3_dot( player->rb.to_world[2], player->rb.v ) < 0.0f?1:-1;
int reverse_dir = v3_dot( player->rb.to_world[2], player->rb.v ) < 0.0f?1:-1;
+ v2f steer;
+ joystick_state( k_srjoystick_steer, steer );
+
if( s->state.manual_direction == 0 ){
if( s->state.manual_direction == 0 ){
- if( (player->input_js1v->axis.value > 0.7f) &&
- (s->state.activity == k_skate_activity_ground) &&
+ if( (steer[1] > 0.7f) && (s->state.activity == k_skate_activity_ground) &&
(s->state.jump_charge <= 0.01f) )
s->state.manual_direction = reverse_dir;
}
else{
(s->state.jump_charge <= 0.01f) )
s->state.manual_direction = reverse_dir;
}
else{
- if(
player->input_js1v->axis.value
< 0.1f ){
+ if(
steer[1]
< 0.1f ){
s->state.manual_direction = 0;
}
else{
s->state.manual_direction = 0;
}
else{
@@
-1469,7
+1470,7
@@
VG_STATIC void skate_weight_distribute( player_instance *player )
}
if( s->state.manual_direction ){
}
if( s->state.manual_direction ){
- float amt = vg_minf(
player->input_js1v->axis.value
* 8.0f, 1.0f );
+ float amt = vg_minf(
steer[1]
* 8.0f, 1.0f );
s->weight_distribution[2] = k_board_length * amt *
(float)s->state.manual_direction;
}
s->weight_distribution[2] = k_board_length * amt *
(float)s->state.manual_direction;
}
@@
-1622,9
+1623,10
@@
VG_STATIC void skate_grind_truck_apply( player_instance *player,
v3_normalize( target_fwd );
v3_normalize( fwd );
v3_normalize( target_fwd );
v3_normalize( fwd );
+ v2f steer;
+ joystick_state( k_srjoystick_steer, steer );
- float way = player->input_js1v->axis.value *
- vg_signf( v3_dot( raw_nplane, player->rb.v ) );
+ float way = steer[1] * vg_signf( v3_dot( raw_nplane, player->rb.v ) );
v4f q;
q_axis_angle( q, axis, VG_PIf*0.125f * way );
v4f q;
q_axis_angle( q, axis, VG_PIf*0.125f * way );
@@
-1676,8
+1678,10
@@
VG_STATIC void skate_5050_apply( player_instance *player,
v3_cross( axis, inf_avg.dir, inf_avg.n );
skate_grind_decay( player, &inf_avg, 1.0f );
v3_cross( axis, inf_avg.dir, inf_avg.n );
skate_grind_decay( player, &inf_avg, 1.0f );
+ v2f steer;
+ joystick_state( k_srjoystick_steer, steer );
- float way =
player->input_js1v->axis.value
*
+ float way =
steer[1]
*
vg_signf( v3_dot( player->rb.to_world[2], player->rb.v ) );
v4f q;
v3f up, target_up;
vg_signf( v3_dot( player->rb.to_world[2], player->rb.v ) );
v4f q;
v3f up, target_up;
@@
-1971,18
+1975,20
@@
VG_STATIC enum skate_activity skate_availible_grind( player_instance *player )
int allow_back = 1,
allow_front = 1;
int allow_back = 1,
allow_front = 1;
+ v2f steer;
+ joystick_state( k_srjoystick_steer, steer );
+
if( s->state.activity == k_skate_activity_grind_5050 ||
s->state.activity == k_skate_activity_grind_back50 ||
s->state.activity == k_skate_activity_grind_front50 )
{
if( s->state.activity == k_skate_activity_grind_5050 ||
s->state.activity == k_skate_activity_grind_back50 ||
s->state.activity == k_skate_activity_grind_front50 )
{
- float tilt =
player->input_js1v->axis.value
;
+ float tilt =
steer[1]
;
if( fabsf(tilt) >= 0.25f ){
v3f raw = {0.0f,0.0f,tilt};
m3x3_mulv( player->rb.to_world, raw, raw );
if( fabsf(tilt) >= 0.25f ){
v3f raw = {0.0f,0.0f,tilt};
m3x3_mulv( player->rb.to_world, raw, raw );
- float way = player->input_js1v->axis.value *
- vg_signf( v3_dot( raw, player->rb.v ) );
+ float way = tilt * vg_signf( v3_dot( raw, player->rb.v ) );
if( way < 0.0f ) allow_front = 0;
else allow_back = 0;
if( way < 0.0f ) allow_front = 0;
else allow_back = 0;
@@
-2020,7
+2026,7
@@
VG_STATIC enum skate_activity skate_availible_grind( player_instance *player )
res_front50 = skate_grind_truck_entry( player, -1.0f, &inf_front50 );
if( res_back50 != res_front50 ){
res_front50 = skate_grind_truck_entry( player, -1.0f, &inf_front50 );
if( res_back50 != res_front50 ){
- int wants_to_do_that = fabsf(
player->input_js1v->axis.value
) >= 0.25f;
+ int wants_to_do_that = fabsf(
steer[1]
) >= 0.25f;
res_back50 &= wants_to_do_that;
res_front50 &= wants_to_do_that;
res_back50 &= wants_to_do_that;
res_front50 &= wants_to_do_that;
@@
-2772,7
+2778,10
@@
VG_STATIC void player__skate_animate( player_instance *player,
mdl_keyframe air_pose[32];
{
mdl_keyframe air_pose[32];
{
- float target = -player->input_js1h->axis.value;
+ v2f steer;
+ joystick_state( k_srjoystick_steer, steer );
+
+ float target = -steer[1];
s->blend_airdir = vg_lerpf( s->blend_airdir, target, 2.4f*vg.time_delta );
s->blend_airdir = vg_lerpf( s->blend_airdir, target, 2.4f*vg.time_delta );
@@
-2781,9
+2790,10
@@
VG_STATIC void player__skate_animate( player_instance *player,
static v2f grab_choice;
static v2f grab_choice;
- v2f grab_input
= { player->input_js2h->axis.value,
-
player->input_js2v->axis.value }
;
+ v2f grab_input
;
+
joystick_state( k_srjoystick_grab, grab_input )
;
v2_add( s->state.grab_mouse_delta, grab_input, grab_input );
v2_add( s->state.grab_mouse_delta, grab_input, grab_input );
+
if( v2_length2( grab_input ) <= 0.001f )
grab_input[0] = -1.0f;
else
if( v2_length2( grab_input ) <= 0.001f )
grab_input[0] = -1.0f;
else
@@
-2957,7
+2967,7
@@
VG_STATIC void player__skate_animate( player_instance *player,
q_mul( kf_board->q, qtrick, kf_board->q );
q_normalize( kf_board->q );
q_mul( kf_board->q, qtrick, kf_board->q );
q_normalize( kf_board->q );
- struct player_board *board = player
->board
;
+ struct player_board *board = player
_get_player_board( player )
;
if( board ){
/* foot weight distribution */
if( board ){
/* foot weight distribution */