Редизайн открытия сундука

Сделал редизайн сундука и окончательный функционал по взятию вещей, на сервере.
Также теперь выводится артефакты на экране в зависимости от общего количества, один арт - выводится по середине, если два - то по краям.

Код примитивный :)

if (num==1) {b=a;a=0;}
if (num==2) {c=b;b=0;}

Зато так более красивее, мне кажется

лабиринты зыби, сундук с артефактами, 7maze.ru

На сервер отправляется сигнал ACT_GET_ART_FROM_CHEST с двумя параметрами - координатами сундука и идентификатором сундука, выполняются проверка на удаленность координат от игрока (не более 1 клетки), наличия на них сундука, наличие в сундуке такого артефакта и наличие пустого места в инвентаре.

case ACT_GET_ART_FROM_CHEST:
{
int x = p1 % m->w;
int y = p1 / m->w;
int dx = c->x - x;
int dy = c->y - y;
if (dx<0) dx=-dx;
if (dy<0) dy=-dy;
if (dx>1 || dy>1) return false;//very far
TMazeObject *chest = getObjectByPos(m,x,y);
if (chest)
if (chest->type==MAZE_OBJ_CHEST || chest->type==MAZE_OBJ_OPEN_CHEST)
{
for(int j=0;j<OBJ_MAX_DATA;j++)
{
if (chest->data[j] == p2)
{
for(int i=INV_BAG;i<=INV_LAST;i++)
if (!c->inventory[i])
{
chest->data[j]=0;
c->inventory[i]=p2;
return true;
}
}
}
}

}

Собственно осталось сделать полноценную аренду мешка для сбора минералов - и можно запускать в тестовом режиме.
Придумал буквально только что - можно сделать что-то типа gamble в Diablo, покупаете n ключей у торговца и открываете X сундуков, в которых может быть что угодно. (Само-собой может быть и вообще ничего и n << X)