summaryrefslogtreecommitdiff
path: root/src/player.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/player.cpp')
-rw-r--r--src/player.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/player.cpp b/src/player.cpp
index 353f44d8a..f26dcba26 100644
--- a/src/player.cpp
+++ b/src/player.cpp
@@ -184,13 +184,17 @@ ServerRemotePlayer::ServerRemotePlayer(ServerEnvironment *env):
ServerActiveObject(env, v3f(0,0,0)),
m_last_good_position(0,0,0),
m_last_good_position_age(0),
- m_additional_items()
+ m_additional_items(),
+ m_inventory_not_sent(false),
+ m_hp_not_sent(false)
{
}
ServerRemotePlayer::ServerRemotePlayer(ServerEnvironment *env, v3f pos_, u16 peer_id_,
const char *name_):
Player(env->getGameDef()),
- ServerActiveObject(env, pos_)
+ ServerActiveObject(env, pos_),
+ m_inventory_not_sent(false),
+ m_hp_not_sent(false)
{
setPosition(pos_);
peer_id = peer_id_;
@@ -249,6 +253,8 @@ bool ServerRemotePlayer::addToInventory(InventoryItem *item)
// Add to inventory
InventoryItem *leftover = ilist->addItem(item);
assert(!leftover);
+
+ m_inventory_not_sent = true;
return true;
}
@@ -295,9 +301,12 @@ void ServerRemotePlayer::completeAddToInventoryLater(u16 preferred_index)
delete leftover;
}
m_additional_items.clear();
+ m_inventory_not_sent = true;
}
void ServerRemotePlayer::setHP(s16 hp_)
{
+ s16 oldhp = hp;
+
hp = hp_;
// FIXME: don't hardcode maximum HP, make configurable per object
@@ -305,6 +314,9 @@ void ServerRemotePlayer::setHP(s16 hp_)
hp = 0;
else if(hp > 20)
hp = 20;
+
+ if(hp != oldhp)
+ m_hp_not_sent = true;
}
s16 ServerRemotePlayer::getHP()
{