Problem solved. I'll explain the issue, maybe someone will need it one day.
I've followed this tut:
But in it's newest version. I've followed the downloaded txt file. The problem lies in exchange.cpp:
#define INVEN_PAGES 4
#define INVEN_PAGE_SIZE (INVENTORY_MAX_NUM / INVEN_PAGES)
bool CExchange::CheckSpace()
Replace:
for (i = 0; i < INVEN_PAGE_SIZE; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid1.Put(i, 1, item->GetSize());
}
for (i = INVEN_PAGE_SIZE; i < INVEN_PAGE_SIZE*2; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid2.Put(i - INVEN_PAGE_SIZE, 1, item->GetSize());
}
for (i = INVEN_PAGE_SIZE*2; i < INVEN_PAGE_SIZE*3; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid3.Put(i - INVEN_PAGE_SIZE*2, 1, item->GetSize());
}
for (i = INVEN_PAGE_SIZE*3; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid4.Put(i - INVEN_PAGE_SIZE*3, 1, item->GetSize());
}
For some reason the "define" part caused the issue. I tried using this versoin, without the "define part":
for (i = 0; i < INVENTORY_MAX_NUM / 4; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid1.Put(i, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid2.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid3.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid4.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize());
}