Make getStackMax return the correct maximal stack size

master
SmallJoker 2016-09-06 19:13:52 +02:00 committed by kwolekr
parent aa33166386
commit 2de8c22a99
3 changed files with 5 additions and 7 deletions

View File

@ -80,15 +80,14 @@ struct ItemStack
// Maximum size of a stack
u16 getStackMax(IItemDefManager *itemdef) const
{
s16 max = itemdef->get(name).stack_max;
return (max >= 0) ? max : 0;
return itemdef->get(name).stack_max;
}
// Number of items that can be added to this stack
u16 freeSpace(IItemDefManager *itemdef) const
{
u16 max = getStackMax(itemdef);
if(count > max)
if (count >= max)
return 0;
return max - count;
}

View File

@ -61,7 +61,7 @@ struct ItemDefinition
/*
Item stack and interaction properties
*/
s16 stack_max;
u16 stack_max;
bool usable;
bool liquids_pointable;
// May be NULL. If non-NULL, deleted by destructor

View File

@ -65,9 +65,8 @@ ItemDefinition read_item_definition(lua_State* L,int index,
}
lua_pop(L, 1);
def.stack_max = getintfield_default(L, index, "stack_max", def.stack_max);
if(def.stack_max == 0)
def.stack_max = 1;
int stack_max = getintfield_default(L, index, "stack_max", def.stack_max);
def.stack_max = rangelim(stack_max, 1, U16_MAX);
lua_getfield(L, index, "on_use");
def.usable = lua_isfunction(L, -1);