+ m4x3_mulv( av->sk.final_mtx[ av->id_head-1 ], vp, dev->cam_1st.pos );
+ v3_copy( w->state.angles, dev->cam_1st.angles );
+ dev->cam_1st.fov = 90.0f;
+
+ /* FIXME: Organize this. Its int wrong fucking place */
+ v3f vp0 = {0.0f,0.1f, 0.6f},
+ vp1 = {0.0f,0.1f,-0.6f};
+
+ m4x3_mulv( av->sk.final_mtx[ av->id_board ], vp0, TEMP_BOARD_0 );
+ m4x3_mulv( av->sk.final_mtx[ av->id_board ], vp1, TEMP_BOARD_1 );
+}
+
+
+VG_STATIC void player_walk_ui( player_device *dev, player_interface *player )
+{
+ player_debugtext( 1, "V: %5.2f %5.2f %5.2f",player->rb.v[0],
+ player->rb.v[1],
+ player->rb.v[2] );
+ player_debugtext( 1, "CO: %5.2f %5.2f %5.2f",player->rb.co[0],
+ player->rb.co[1],
+ player->rb.co[2] );
+}
+
+VG_STATIC void player_walk_bind( player_device *dev, player_interface *player )
+{
+ struct player_device_walk *w = dev->storage;
+ struct player_avatar *av = player->playeravatar;
+ struct skeleton *sk = &av->sk;
+
+ w->anim_idle = skeleton_get_anim( sk, "idle_cycle" );
+ w->anim_walk = skeleton_get_anim( sk, "walk" );
+ w->anim_run = skeleton_get_anim( sk, "run" );
+ w->anim_jump = skeleton_get_anim( sk, "jump" );
+
+ w->device_id_skate = player_get_device( player, "skateboard" );
+}
+
+VG_STATIC int player_walk_event( player_device *dev, player_interface *player,
+ enum player_device_event_type ev, void *data )
+{
+ struct player_device_walk *w = dev->storage;
+
+ if( ev == k_player_device_event_bind )
+ {
+ player_walk_bind( dev, player );
+ }
+ else if( ev == k_player_device_event_custom_transition )
+ {
+ struct device_transition_walk *inf = data;
+ v3_copy( inf->angles, w->state.angles );
+ }
+ else if( ev == k_player_device_event_pre_update )
+ {
+ player_walk_pre_update( dev, player );
+ }
+ else if( ev == k_player_device_event_update )
+ {
+ player_walk_update( dev, player );
+ }
+ else if( ev == k_player_device_event_post_update )
+ {
+ player_walk_post_update( dev, player );
+ }
+ else if( ev == k_player_device_event_animate )
+ {
+ player_walk_animate( dev, player );
+ }
+ else if( ev == k_player_device_event_post_animate )
+ {
+ player_walk_post_animate( dev, player );
+ }
+ else if( ev == k_player_device_event_debug_ui )
+ {
+ player_walk_ui( dev, player );
+ }
+ else
+ return 0;
+
+ return 1;