X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Finventory.cpp;h=5e39a41a6bc42527351824d6b63c4fca99baaca4;hb=ab45133ab4826359ca9a5ed50b68150eb462c8ef;hp=df75ebcd53b006c5bd867b5ddb883343fe22c6a1;hpb=3899f83da879e11cf531c88514772b890d060721;p=oweals%2Fminetest.git diff --git a/src/inventory.cpp b/src/inventory.cpp index df75ebcd5..5e39a41a6 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -3,23 +3,22 @@ Minetest-c55 Copyright (C) 2010-2011 celeron55, Perttu Ahola This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +GNU Lesser General Public License for more details. -You should have received a copy of the GNU General Public License along +You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "inventory.h" #include "serialization.h" -#include "utility.h" #include "debug.h" #include #include "log.h" @@ -27,6 +26,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "strfnd.h" #include "content_mapnode.h" // For loading legacy MaterialItems #include "nameidmapping.h" // For loading legacy MaterialItems +#include "util/serialize.h" +#include "util/string.h" /* ItemStack @@ -430,6 +431,7 @@ InventoryList::InventoryList(std::string name, u32 size, IItemDefManager *itemde { m_name = name; m_size = size; + m_width = 0; m_itemdef = itemdef; clearItems(); //m_dirty = false; @@ -458,10 +460,22 @@ void InventoryList::setSize(u32 newsize) m_size = newsize; } +void InventoryList::setWidth(u32 newwidth) +{ + m_width = newwidth; +} + +void InventoryList::setName(const std::string &name) +{ + m_name = name; +} + void InventoryList::serialize(std::ostream &os) const { //os.imbue(std::locale("C")); + os<<"Width "<> m_width; + if (iss.fail()) + throw SerializationError("incorrect width property"); + } else if(name == "Item") { if(item_i > getSize() - 1) @@ -521,10 +542,6 @@ void InventoryList::deSerialize(std::istream &is) throw SerializationError("too many items"); m_items[item_i++].clear(); } - else - { - throw SerializationError("Unknown inventory identifier"); - } } } @@ -537,6 +554,7 @@ InventoryList & InventoryList::operator = (const InventoryList &other) { m_items = other.m_items; m_size = other.m_size; + m_width = other.m_width; m_name = other.m_name; m_itemdef = other.m_itemdef; //setDirty(true); @@ -554,6 +572,11 @@ u32 InventoryList::getSize() const return m_items.size(); } +u32 InventoryList::getWidth() const +{ + return m_width; +} + u32 InventoryList::getUsedSlots() const { u32 num = 0; @@ -880,10 +903,6 @@ void Inventory::deSerialize(std::istream &is) m_lists.push_back(list); } - else - { - throw SerializationError("Unknown inventory identifier"); - } } }