]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/client/localplayer.h
Improve client-side packet receiving
[dragonfireclient.git] / src / client / localplayer.h
index 28404aa012f92018b10bc6ba5ad2ac563dda879e..45dc6776ee43d1393685131934bb91e28495d1bd 100644 (file)
@@ -62,6 +62,7 @@ class LocalPlayer : public Player
        u8 liquid_viscosity = 0;
        bool is_climbing = false;
        bool swimming_vertical = false;
+       bool swimming_pitch = false;
 
        float physics_override_speed = 1.0f;
        float physics_override_jump = 1.0f;
@@ -99,7 +100,7 @@ class LocalPlayer : public Player
        bool makes_footstep_sound = true;
 
        int last_animation = NO_ANIM;
-       float last_animation_speed;
+       float last_animation_speed = 0.0f;
 
        std::string hotbar_image = "";
        std::string hotbar_selected_image = "";
@@ -148,15 +149,22 @@ class LocalPlayer : public Player
 
        bool getAutojump() const { return m_autojump; }
 
+       bool isDead() const;
+
+       inline void addVelocity(const v3f &vel)
+       {
+               added_velocity += vel;
+       }
+
 private:
        void accelerate(const v3f &target_speed, const f32 max_increase_H,
-                       const f32 max_increase_V, const bool use_pitch);
+               const f32 max_increase_V, const bool use_pitch);
        bool updateSneakNode(Map *map, const v3f &position, const v3f &sneak_max);
        float getSlipFactor(Environment *env, const v3f &speedH);
        void handleAutojump(f32 dtime, Environment *env,
-                       const collisionMoveResult &result,
-                       const v3f &position_before_move, const v3f &speed_before_move,
-                       f32 pos_max_d);
+               const collisionMoveResult &result,
+               const v3f &position_before_move, const v3f &speed_before_move,
+               f32 pos_max_d);
 
        v3f m_position;
        v3s16 m_standing_node;
@@ -182,17 +190,21 @@ class LocalPlayer : public Player
        // ***** End of variables for temporary option *****
 
        bool m_can_jump = false;
+       bool m_disable_jump = false;
        u16 m_breath = PLAYER_MAX_BREATH_DEFAULT;
        f32 m_yaw = 0.0f;
        f32 m_pitch = 0.0f;
        bool camera_barely_in_ceiling = false;
        aabb3f m_collisionbox = aabb3f(-BS * 0.30f, 0.0f, -BS * 0.30f, BS * 0.30f,
-                       BS * 1.75f, BS * 0.30f);
+               BS * 1.75f, BS * 0.30f);
        float m_eye_height = 1.625f;
        float m_zoom_fov = 0.0f;
        bool m_autojump = false;
        float m_autojump_time = 0.0f;
 
+       v3f added_velocity = v3f(0.0f); // cleared on each move()
+       // TODO: Rename to adhere to convention: added_velocity --> m_added_velocity
+
        GenericCAO *m_cao = nullptr;
        Client *m_client;
 };