-static struct gplayer
-{
- /* Physics */
- rigidbody rb, collide_front, collide_back, rb_gate_frame;
-
- /* TODO: eugh */
- m3x3f gate_vr_frame, gate_vr_pstep_frame;
- int on_board_frame, in_air_frame;
-
- v3f a, v_last, m, bob, vl;
-
- /* Utility */
- float vswitch, slip, slip_last,
- reverse;
-
- float iY; /* Yaw inertia */
- int in_air, is_dead, on_board;
-
- v2f board_xy;
- float grab;
- float pitch;
- float pushing, push_time;
- float jump;
- int jump_charge, jump_dir;
-
- v3f land_target;
- v3f land_target_log[22];
- u32 land_target_colours[22];
- int land_log_count;
- m3x3f vr,vr_pstep;
-
- v3f handl_target, handr_target,
- handl, handr;
-
- /* Camera */
- float air_blend;
-
- v3f camera_pos, smooth_localcam;
- v2f angles;
- m4x3f camera, camera_inverse;
-
- /* animation */
- double jump_time;
- float fslide,
- fdirz, fdirx,
- fstand,
- ffly,
- fpush,
- fairdir,
- fsetup,
- walk_timer,
- fonboard;
- int step_phase;
-
- /* player model */
- struct player_model
- {
- glmesh mesh;
- struct skeleton sk;
- struct skeleton_anim *anim_stand,
- *anim_highg,
- *anim_slide,
- *anim_air,
- *anim_push, *anim_push_reverse,
- *anim_ollie, *anim_ollie_reverse,
- *anim_grabs, *anim_stop,
- *anim_walk, *anim_run, *anim_idle;
-
- u32 id_hip,
- id_ik_hand_l,
- id_ik_hand_r,
- id_ik_elbow_l,
- id_ik_elbow_r,
- id_head;
-
- v3f cam_pos;
-
- struct ragdoll_part
- {
- u32 bone_id;
- v3f offset;
-
- u32 use_limits;
- v3f limits[2];
-
- rigidbody rb;
- u32 parent;
- }
- *ragdoll;
- u32 ragdoll_count;
-
- int shoes[2];