ui frosting info
[carveJwlIkooP6JGAAIwe30JlM.git] / player.h
index ef78e31645475117a4573609d16ed7a33dd1757b..4396cbe353a5cb432087be6c4b400f3e7ebdbc28 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;
 
@@ -139,20 +145,27 @@ struct {
    mdl_context skeleton_meta;
    struct skeleton skeleton;
 
-   u32 id_hip,
-       id_chest,
-       id_ik_hand_l,
-       id_ik_hand_r,
-       id_ik_elbow_l,
-       id_ik_elbow_r,
-       id_head,
-       id_ik_foot_l,
-       id_ik_foot_r,
-       id_ik_knee_l,
-       id_ik_knee_r,
-       id_wheel_l,
-       id_wheel_r,
-       id_board;
+   u8 id_hip,
+      id_chest,
+      id_ik_hand_l,
+      id_ik_hand_r,
+      id_ik_elbow_l,
+      id_ik_elbow_r,
+      id_head,
+      id_foot_l,
+      id_foot_r,
+      id_ik_foot_l,
+      id_ik_foot_r,
+      id_ik_knee_l,
+      id_ik_knee_r,
+      id_wheel_l,
+      id_wheel_r,
+      id_board,
+      id_eyes;
+
+   u8 skeleton_mirror[32];
+
+   struct player_effects_data effect_data;
 }
 static localplayer = {
    .rb = {