Send Position packet on event, don't check it at each AsyncRunStep.
[oweals/minetest.git] / src / player.cpp
index a8f95bb99bb58e5095585efab884bac22c6dad9c..0da761eedef27549505913453100d387e98d01dd 100644 (file)
@@ -39,7 +39,6 @@ Player::Player(IGameDef *gamedef, const char *name):
        is_climbing(false),
        swimming_vertical(false),
        camera_barely_in_ceiling(false),
-       light(0),
        inventory(gamedef->idef()),
        hp(PLAYER_MAX_HP),
        hurt_tilt_timer(0),
@@ -48,7 +47,7 @@ Player::Player(IGameDef *gamedef, const char *name):
        keyPressed(0),
 // protected
        m_gamedef(gamedef),
-       m_breath(-1),
+       m_breath(PLAYER_MAX_BREATH),
        m_pitch(0),
        m_yaw(0),
        m_speed(0,0,0),
@@ -64,6 +63,7 @@ Player::Player(IGameDef *gamedef, const char *name):
        craft->setWidth(3);
        inventory.addList("craftpreview", 1);
        inventory.addList("craftresult", 1);
+       inventory.setModified(false);
 
        // Can be redefined via Lua
        inventory_formspec = "size[8,7.5]"
@@ -203,6 +203,7 @@ void Player::deSerialize(std::istream &is, std::string playername)
                                playername + " not found!");
        }
 
+       m_dirty = true;
        //args.getS32("version"); // Version field value not used
        std::string name = args.get("name");
        strlcpy(m_name, name.c_str(), PLAYERNAME_SIZE);
@@ -212,12 +213,12 @@ void Player::deSerialize(std::istream &is, std::string playername)
        try{
                hp = args.getS32("hp");
        }catch(SettingNotFoundException &e) {
-               hp = 20;
+               hp = PLAYER_MAX_HP;
        }
        try{
                m_breath = args.getS32("breath");
        }catch(SettingNotFoundException &e) {
-               m_breath = 11;
+               m_breath = PLAYER_MAX_BREATH;
        }
 
        inventory.deSerialize(is);
@@ -235,8 +236,6 @@ void Player::deSerialize(std::istream &is, std::string playername)
                        inventory.getList("craftresult")->changeItem(0, ItemStack());
                }
        }
-
-       m_dirty = false;
 }
 
 u32 Player::addHud(HudElement *toadd)
@@ -299,7 +298,7 @@ void RemotePlayer::save(std::string savedir)
                        if (!fs::safeWriteToFile(path, ss.str())) {
                                infostream << "Failed to write " << path << std::endl;
                        }
-                       m_dirty = false;
+                       setModified(false);
                        return;
                }
                // Open file and deserialize
@@ -317,7 +316,7 @@ void RemotePlayer::save(std::string savedir)
                        if (!fs::safeWriteToFile(path, ss.str())) {
                                infostream << "Failed to write " << path << std::endl;
                        }
-                       m_dirty = false;
+                       setModified(false);
                        return;
                }
                path = savedir + m_name + itos(i);