launch option to load world
[carveJwlIkooP6JGAAIwe30JlM.git] / player.h
index ef78e31645475117a4573609d16ed7a33dd1757b..18936a7ade2248844468cc7e182299c46ea14042 100644 (file)
--- a/player.h
+++ b/player.h
@@ -4,6 +4,7 @@
 #include "skaterift.h"
 #include "player_common.h"
 #include "network_compression.h"
+#include "player_effects.h"
 
 enum player_subsystem{
    k_player_subsystem_walk = 0,
@@ -43,6 +44,8 @@ struct player_subsystem_interface{
    void(*im_gui)(void);
    void(*animate)(void);
    void(*pose)( void *animator, player_pose *pose );
+   void(*effects)( void *animator, m4x3f *final_mtx, struct player_board *board,
+                   struct player_effects_data *effect_data );
    void(*post_animate)(void);
    void(*network_animator_exchange)( bitpack_ctx *ctx, void *data );
    void(*sfx_oneshot)( u8 id, v3f pos, f32 volume );
@@ -97,6 +100,8 @@ struct {
    ent_gate *gate_waiting;
    int immobile;
 
+   int rewinded_since_last_gate;
+
    /* 
     * Network
     * --------------------------------------------------
@@ -117,6 +122,7 @@ struct {
 
    struct player_ragdoll  ragdoll;
    struct player_model    fallback_model;
+   struct player_board    fallback_board;
 
    u16 board_view_slot, playermodel_view_slot;
 
@@ -152,7 +158,10 @@ struct {
        id_ik_knee_r,
        id_wheel_l,
        id_wheel_r,
-       id_board;
+       id_board,
+       id_eyes;
+
+   struct player_effects_data effect_data;
 }
 static localplayer = {
    .rb = {