Sort inventory when item is removed.
This commit is contained in:
parent
a085a028b9
commit
24d26b094c
|
@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
static void loadMetaInfo(void);
|
static void loadMetaInfo(void);
|
||||||
static void addKeyToStash(Item *item);
|
static void addKeyToStash(Item *item);
|
||||||
|
static int sortItems(const void *a, const void *b);
|
||||||
|
|
||||||
void initGame(void)
|
void initGame(void)
|
||||||
{
|
{
|
||||||
|
@ -141,6 +142,7 @@ void removeItem(char *name)
|
||||||
if (item->type != ET_KEY)
|
if (item->type != ET_KEY)
|
||||||
{
|
{
|
||||||
world.bob->items[i] = NULL;
|
world.bob->items[i] = NULL;
|
||||||
|
qsort(world.bob->items, MAX_ITEMS, sizeof(Entity*), sortItems);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -149,8 +151,9 @@ void removeItem(char *name)
|
||||||
{
|
{
|
||||||
item->flags &= ~EF_GONE;
|
item->flags &= ~EF_GONE;
|
||||||
item->alive = ALIVE_DEAD;
|
item->alive = ALIVE_DEAD;
|
||||||
|
|
||||||
world.bob->items[i] = NULL;
|
world.bob->items[i] = NULL;
|
||||||
|
qsort(world.bob->items, MAX_ITEMS, sizeof(Entity*), sortItems);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -448,6 +451,25 @@ void restoreGameState(void)
|
||||||
free(text);
|
free(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int sortItems(const void *a, const void *b)
|
||||||
|
{
|
||||||
|
Entity *e1 = *((Entity**)a);
|
||||||
|
Entity *e2 = *((Entity**)b);
|
||||||
|
|
||||||
|
if (!e1)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else if (!e2)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void destroyGame(void)
|
void destroyGame(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue