}
#ifdef ON_TILE
if(player) //CHANGE onWalk
{
Tile* fromT = getTile(player->pos);
actions.luaWalkOff(player,player->pos,fromT->ground->getID(),fromT->ground->getUniqueId(),fromT->ground->getActionId());
}
#endif //ON_TILE
this->FreeThing(c);
return true;
}
#ifdef MOVE_UP
void Game::thingMove(Player *player, unsigned char from_cid, unsigned char from_slotid)
{
OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::thingMove() - 0");
thingMoveInternal(player, from_cid, from_slotid);
}
#endif //MOVE_UP
void Game::thingMove(Creature *creature, Thing *thing,
unsigned short to_x, unsigned short to_y, unsigned char to_z, unsigned char count)
{
OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::thingMove() - 1");
Tile *fromTile = map->getTile(thing->pos);
if (fromTile)
{
int oldstackpos = fromTile->getThingStackPos(thing);
thingMoveInternal(creature, thing->pos.x, thing->pos.y, thing->pos.z, oldstackpos, 0, to_x, to_y, to_z, count);
}
}
void Game::thingMove(Creature *creature, unsigned short from_x, unsigned short from_y, unsigned char from_z,
unsigned char stackPos, unsigned short itemid, unsigned short to_x, unsigned short to_y, unsigned char to_z, unsigned char count)
{
OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::thingMove() - 2");
Tile *fromTile = getTile(from_x, from_y, from_z);
if(!fromTile)
return;
Tile *toTile = getTile(to_x, to_y, to_z);
if(!toTile)
return;
#ifdef FIXY
if (toTile->isHouse() && !fromTile->isHouse())
return;
#endif //FIXY
Thing* thing = fromTile->getThingByStackPos(stackPos);
if(!thing)
return;
Item* item = dynamic_cast<Item*>(thing);
if(item && (item->getID() != itemid || item != fromTile->getTopDownItem()))
return;
thingMoveInternal(creature, from_x, from_y, from_z, stackPos, itemid, to_x, to_y, to_z, count);
}
//container/inventory to container/inventory
void Game::thingMove(Player *player,
unsigned char from_cid, unsigned char from_slotid, unsigned short itemid, bool fromInventory,
unsigned char to_cid, unsigned char to_slotid, bool toInventory,
unsigned char count)
{
OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::thingMove() - 3");
thingMoveInternal(player, from_cid, from_slotid, itemid, fromInventory,
to_cid, to_slotid, toInventory, count);