X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fplayer.h;h=174f147289a91f20420fddef557a55f5d9c05a7c;hb=cd0df0d5e7051763c7ac6ca20a0f2960e0dda83a;hp=4c5939d3d66e7b5c1bf8cc306bbd2fed03fd05b8;hpb=118e2ae865bd7a0020586ef72d05bf14d66f4eae;p=dragonfireclient.git diff --git a/src/player.h b/src/player.h index 4c5939d3d..174f14728 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,19 @@ class Player virtual void setPosition(const v3f &position) { + m_dirty = true; m_position = position; } void setPitch(f32 pitch) { + m_dirty = true; m_pitch = pitch; } virtual void setYaw(f32 yaw) { + m_dirty = true; m_yaw = yaw; } @@ -172,6 +175,7 @@ class Player virtual void setBreath(u16 breath) { + m_dirty = true; m_breath = breath; } @@ -185,11 +189,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; @@ -225,19 +224,7 @@ class Player bool checkModified() { - 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; } bool touching_ground; @@ -294,10 +281,17 @@ class Player u32 keyPressed; - std::vector hud; + + HudElement* getHud(u32 id); + u32 addHud(HudElement* hud); + HudElement* removeHud(u32 id); + void clearHud(); + u32 maxHudId() { + return hud.size(); + } + u32 hud_flags; s32 hud_hotbar_itemcount; - protected: IGameDef *m_gamedef; @@ -309,11 +303,9 @@ 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; }; @@ -323,9 +315,14 @@ 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(std::string savedir); + PlayerSAO *getPlayerSAO() { return m_sao; } void setPlayerSAO(PlayerSAO *sao)