X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fplayer.h;h=435875233b45250368eae095f84292de4c56a0a2;hb=a1e9732407494edb9cef3ada45cc2781a34ed60c;hp=098a4d1537d017fb951e1dc0b6f3311aab41f9ce;hpb=7e6db1b80344a519e53a9967a159c8d3585a9b9d;p=dragonfireclient.git diff --git a/src/player.h b/src/player.h index 098a4d153..435875233 100644 --- a/src/player.h +++ b/src/player.h @@ -95,7 +95,7 @@ class Player { public: - Player(IGameDef *gamedef); + Player(IGameDef *gamedef, const char *name); virtual ~Player() = 0; virtual void move(f32 dtime, Environment *env, f32 pos_max_d) @@ -142,16 +142,22 @@ class Player virtual void setPosition(const v3f &position) { + if (position != m_position) + m_dirty = true; m_position = position; } void setPitch(f32 pitch) { + if (pitch != m_pitch) + m_dirty = true; m_pitch = pitch; } virtual void setYaw(f32 yaw) { + if (yaw != m_yaw) + m_dirty = true; m_yaw = yaw; } @@ -172,6 +178,8 @@ class Player virtual void setBreath(u16 breath) { + if (breath != m_breath) + m_dirty = true; m_breath = breath; } @@ -185,11 +193,6 @@ class Player return (m_yaw + 90.) * core::DEGTORAD; } - void updateName(const char *name) - { - snprintf(m_name, PLAYERNAME_SIZE, "%s", name); - } - const char * getName() const { return m_name; @@ -223,21 +226,16 @@ class Player void serialize(std::ostream &os); void deSerialize(std::istream &is, std::string playername); - bool checkModified() + bool checkModified() const { - if(m_last_hp != hp || m_last_pitch != m_pitch || - m_last_pos != m_position || m_last_yaw != m_yaw || - !(inventory == m_last_inventory)) - { - m_last_hp = hp; - m_last_pitch = m_pitch; - m_last_pos = m_position; - m_last_yaw = m_yaw; - m_last_inventory = inventory; - return true; - } else { - return false; - } + return m_dirty || inventory.checkModified(); + } + + void setModified(const bool x) + { + m_dirty = x; + if (x == false) + inventory.setModified(x); } bool touching_ground; @@ -251,8 +249,6 @@ class Player bool swimming_vertical; bool camera_barely_in_ceiling; - u8 light; - Inventory inventory; f32 movement_acceleration_default; @@ -316,11 +312,7 @@ class Player v3f m_position; core::aabbox3d m_collisionbox; - f32 m_last_pitch; - f32 m_last_yaw; - v3f m_last_pos; - u16 m_last_hp; - Inventory m_last_inventory; + bool m_dirty; std::vector hud; }; @@ -332,10 +324,13 @@ class Player class RemotePlayer : public Player { public: - RemotePlayer(IGameDef *gamedef): Player(gamedef), m_sao(0) {} + RemotePlayer(IGameDef *gamedef, const char *name): + Player(gamedef, name), + m_sao(NULL) + {} virtual ~RemotePlayer() {} - void save(const std::string &savedir); + void save(std::string savedir); PlayerSAO *getPlayerSAO() { return m_sao; }