Clear inventory before setting lists

This commit is contained in:
ShadowNinja 2014-06-13 17:07:42 -04:00
parent 5fb8778e28
commit d9de29fa50

@ -271,19 +271,20 @@ int InvRef::l_set_lists(lua_State *L)
if (!inv) { if (!inv) {
return 0; return 0;
} }
// Make a temporary inventory in case reading fails
Inventory *tempInv(inv);
tempInv->clear();
Server *server = getServer(L);
lua_pushnil(L); lua_pushnil(L);
while (lua_next(L, 2)) { while (lua_next(L, 2)) {
const char* listname = lua_tostring(L, -2); const char *listname = lua_tostring(L, -2);
InventoryList *list = inv->getList(listname); read_inventory_list(L, -1, tempInv, listname, server);
if (list) {
read_inventory_list(L, -1, inv, listname,
getServer(L), list->getSize());
} else {
read_inventory_list(L, -1, inv, listname,
getServer(L));
}
lua_pop(L, 1); lua_pop(L, 1);
} }
inv = tempInv;
return 0; return 0;
} }