]> git.lizzy.rs Git - minetest.git/blobdiff - src/player.cpp
Fix a crash (assert) when client set serial version < 24 in INIT
[minetest.git] / src / player.cpp
index a8f95bb99bb58e5095585efab884bac22c6dad9c..64c138d02682111b1cea145055db40d344c8f4d9 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),
@@ -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);
@@ -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);