summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorLoic Blot <loic.blot@unix-experience.fr>2015-03-02 17:31:31 +0100
committerLoic Blot <loic.blot@unix-experience.fr>2015-03-03 16:06:04 +0100
commit64ff966bae99813229dff6629fd9131a91ba7484 (patch)
treead63765181af40910873520fc45cfe56a1380779 /src/server.cpp
parent056e8f7839d72dfc2e8aa0a68c5d19d7cc30a282 (diff)
downloadminetest-64ff966bae99813229dff6629fd9131a91ba7484.tar.gz
minetest-64ff966bae99813229dff6629fd9131a91ba7484.tar.bz2
minetest-64ff966bae99813229dff6629fd9131a91ba7484.zip
Send Player HP when setHP (or a setHP caller) is called instead of looping and testing the state change.
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp26
1 files changed, 8 insertions, 18 deletions
diff --git a/src/server.cpp b/src/server.cpp
index 6a1e8085b..3536471bf 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -605,17 +605,6 @@ void Server::AsyncRunStep(bool initial_step)
continue;
/*
- Handle player HPs (die if hp=0)
- */
- if(playersao->m_hp_not_sent && g_settings->getBool("enable_damage"))
- {
- if(playersao->getHP() == 0)
- DiePlayer(*i);
- else
- SendPlayerHP(*i);
- }
-
- /*
Send player breath if changed
*/
if(playersao->m_breath_not_sent) {
@@ -1889,7 +1878,6 @@ void Server::SendPlayerHP(u16 peer_id)
DSTACK(__FUNCTION_NAME);
PlayerSAO *playersao = getPlayerSAO(peer_id);
assert(playersao);
- playersao->m_hp_not_sent = false;
SendHP(peer_id, playersao->getHP());
m_script->player_event(playersao,"health_changed");
@@ -2588,9 +2576,9 @@ void Server::DiePlayer(u16 peer_id)
PlayerSAO *playersao = getPlayerSAO(peer_id);
assert(playersao);
- infostream<<"Server::DiePlayer(): Player "
- <<playersao->getPlayer()->getName()
- <<" dies"<<std::endl;
+ infostream << "Server::DiePlayer(): Player "
+ << playersao->getPlayer()->getName()
+ << " dies" << std::endl;
playersao->setHP(0);
@@ -2608,13 +2596,15 @@ void Server::RespawnPlayer(u16 peer_id)
PlayerSAO *playersao = getPlayerSAO(peer_id);
assert(playersao);
- infostream<<"Server::RespawnPlayer(): Player "
- <<playersao->getPlayer()->getName()
- <<" respawns"<<std::endl;
+ infostream << "Server::RespawnPlayer(): Player "
+ << playersao->getPlayer()->getName()
+ << " respawns" << std::endl;
playersao->setHP(PLAYER_MAX_HP);
playersao->setBreath(PLAYER_MAX_BREATH);
+ SendPlayerHP(peer_id);
+
bool repositioned = m_script->on_respawnplayer(playersao);
if(!repositioned){
v3f pos = findSpawnPos(m_env->getServerMap());