projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
the luxuries of a modern C compiler
[carveJwlIkooP6JGAAIwe30JlM.git]
/
player_walk.c
diff --git
a/player_walk.c
b/player_walk.c
index 4334473e63335f8dde25db931ccfb54727d238bc..10d00947a2701a8b67e024c58603511cd8cdfd9a 100644
(file)
--- a/
player_walk.c
+++ b/
player_walk.c
@@
-69,6
+69,7
@@
VG_STATIC void player_walk_generic_to_skate( player_instance *player,
VG_STATIC void player_walk_drop_in_to_skate( player_instance *player )
{
VG_STATIC void player_walk_drop_in_to_skate( player_instance *player )
{
+ player->immobile = 0;
player->subsystem = k_player_subsystem_skate;
struct player_walk *w = &player->_walk;
player->subsystem = k_player_subsystem_skate;
struct player_walk *w = &player->_walk;
@@
-119,7
+120,7
@@
VG_STATIC void player_walk_drop_in_overhang_transform( player_instance *player,
VG_STATIC int player_walk_scan_for_drop_in( player_instance *player )
{
struct player_walk *w = &player->_walk;
VG_STATIC int player_walk_scan_for_drop_in( player_instance *player )
{
struct player_walk *w = &player->_walk;
- world_instance *world =
get_active_world
();
+ world_instance *world =
world_current_instance
();
v3f dir, center;
q_mulv( player->rb.q, (v3f){0.0f,0.0f,1.0f}, dir );
v3f dir, center;
q_mulv( player->rb.q, (v3f){0.0f,0.0f,1.0f}, dir );
@@
-282,6
+283,9
@@
VG_STATIC void player__walk_pre_update( player_instance *player )
player->subsystem = k_player_subsystem_drive;
}
else{
player->subsystem = k_player_subsystem_drive;
}
else{
+ if( !player_get_player_board(player) )
+ return;
+
if( w->state.activity == k_walk_activity_ground ){
if( player_walk_scan_for_drop_in( player ) ){
w->state.outro_type = k_walk_outro_drop_in;
if( w->state.activity == k_walk_activity_ground ){
if( player_walk_scan_for_drop_in( player ) ){
w->state.outro_type = k_walk_outro_drop_in;
@@
-382,8
+386,11
@@
VG_STATIC void player__walk_update( player_instance *player )
m3x3_mulv( player->basis, forward_dir, forward_dir );
m3x3_mulv( player->basis, right_dir, right_dir );
m3x3_mulv( player->basis, forward_dir, forward_dir );
m3x3_mulv( player->basis, right_dir, right_dir );
- w->move_speed = v2_length( srinput.joy_steer );
- world_instance *world = get_active_world();
+ v2f steer;
+ joystick_state( k_srjoystick_steer, steer );
+
+ w->move_speed = v2_length( steer );
+ world_instance *world = world_current_instance();
/*
* Collision detection
/*
* Collision detection
@@
-424,8
+431,9
@@
VG_STATIC void player__walk_update( player_instance *player )
*/
float accel_speed = 0.0f, nominal_speed = 0.0f;
v3f movedir;
*/
float accel_speed = 0.0f, nominal_speed = 0.0f;
v3f movedir;
- v3_muls( right_dir, srinput.joy_steer[0], movedir );
- v3_muladds( movedir, forward_dir, srinput.joy_steer[1], movedir );
+
+ v3_muls( right_dir, steer[0], movedir );
+ v3_muladds( movedir, forward_dir, steer[1], movedir );
if( w->state.activity == k_walk_activity_ground ){
v3_normalize( surface_avg );
if( w->state.activity == k_walk_activity_ground ){
v3_normalize( surface_avg );
@@
-433,7
+441,7
@@
VG_STATIC void player__walk_update( player_instance *player )
v3f tx, ty;
rb_tangent_basis( surface_avg, tx, ty );
v3f tx, ty;
rb_tangent_basis( surface_avg, tx, ty );
- if( v2_length2(s
rinput.joy_s
teer) > 0.001f ){
+ if( v2_length2(steer) > 0.001f ){
/* clip movement to the surface */
float d = v3_dot(surface_avg,movedir);
v3_muladds( movedir, surface_avg, -d, movedir );
/* clip movement to the surface */
float d = v3_dot(surface_avg,movedir);
v3_muladds( movedir, surface_avg, -d, movedir );
@@
-461,7
+469,7
@@
VG_STATIC void player__walk_update( player_instance *player )
nominal_speed = k_airspeed;
}
nominal_speed = k_airspeed;
}
- if( v2_length2( s
rinput.joy_s
teer ) > 0.001f ){
+ if( v2_length2( steer ) > 0.001f ){
player_accelerate( player->rb.v, movedir, nominal_speed, accel_speed );
v3_normalize( movedir );
}
player_accelerate( player->rb.v, movedir, nominal_speed, accel_speed );
v3_normalize( movedir );
}
@@
-644,19
+652,19
@@
VG_STATIC void player__walk_post_update( player_instance *player )
audio_lock();
if( w->surface == k_surface_prop_concrete ){
audio_oneshot_3d(
audio_lock();
if( w->surface == k_surface_prop_concrete ){
audio_oneshot_3d(
- &audio_footsteps[
rand
()%vg_list_size(audio_footsteps)],
+ &audio_footsteps[
vg_randu32
()%vg_list_size(audio_footsteps)],
player->rb.co, 40.0f, 1.0f
);
}
else if( w->surface == k_surface_prop_grass ){
audio_oneshot_3d(
player->rb.co, 40.0f, 1.0f
);
}
else if( w->surface == k_surface_prop_grass ){
audio_oneshot_3d(
- &audio_footsteps_grass[
rand
()%vg_list_size(audio_footsteps_grass)],
+ &audio_footsteps_grass[
vg_randu32
()%vg_list_size(audio_footsteps_grass)],
player->rb.co, 40.0f, 1.0f
);
}
else if( w->surface == k_surface_prop_wood ){
audio_oneshot_3d(
player->rb.co, 40.0f, 1.0f
);
}
else if( w->surface == k_surface_prop_wood ){
audio_oneshot_3d(
- &audio_footsteps_wood[
rand
()%vg_list_size(audio_footsteps_wood)],
+ &audio_footsteps_wood[
vg_randu32
()%vg_list_size(audio_footsteps_wood)],
player->rb.co, 40.0f, 1.0f
);
}
player->rb.co, 40.0f, 1.0f
);
}