mirror of
https://github.com/luanti-org/luanti.git
synced 2026-01-11 19:55:26 +01:00
check for negative width in set_width
This commit is contained in:
@@ -7456,6 +7456,7 @@ An `InvRef` is a reference to an inventory.
|
||||
* returns `false` on error (e.g. invalid `listname` or `size`)
|
||||
* `get_width(listname)`: get width of a list
|
||||
* `set_width(listname, width)`: set width of list; currently used for crafting
|
||||
* returns `false` on error (e.g. invalid `listname` or `width`)
|
||||
* `get_stack(listname, i)`: get a copy of stack index `i` in list
|
||||
* `set_stack(listname, i, stack)`: copy `stack` to index `i` in list
|
||||
* `get_list(listname)`: returns full list (list of `ItemStack`s)
|
||||
|
||||
@@ -151,19 +151,28 @@ int InvRef::l_set_width(lua_State *L)
|
||||
NO_MAP_LOCK_REQUIRED;
|
||||
InvRef *ref = checkObject<InvRef>(L, 1);
|
||||
const char *listname = luaL_checkstring(L, 2);
|
||||
|
||||
int newwidth = luaL_checknumber(L, 3);
|
||||
if (newwidth < 0) {
|
||||
lua_pushboolean(L, false);
|
||||
return 1;
|
||||
}
|
||||
|
||||
Inventory *inv = getinv(L, ref);
|
||||
if(inv == NULL){
|
||||
return 0;
|
||||
lua_pushboolean(L, false);
|
||||
return 1;
|
||||
}
|
||||
InventoryList *list = inv->getList(listname);
|
||||
if(list){
|
||||
list->setWidth(newwidth);
|
||||
} else {
|
||||
return 0;
|
||||
lua_pushboolean(L, false);
|
||||
return 1;
|
||||
}
|
||||
reportInventoryChange(L, ref);
|
||||
return 0;
|
||||
lua_pushboolean(L, true);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// get_stack(self, listname, i) -> itemstack
|
||||
|
||||
Reference in New Issue
Block a user