Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool House::transferToDepot()
- {
- if(!townId)
- return false;
- Player* player = NULL;
- if(owner)
- {
- uint32_t tmp = owner;
- if(isGuild() && !IOGuild::getInstance()->swapGuildIdToOwner(tmp))
- tmp = 0;
- if(tmp)
- player = g_game.getPlayerByGuidEx(tmp);
- }
- Item* item = NULL;
- Container* tmpContainer = NULL;
- ItemList moveList;
- for(HouseTileList::iterator it = houseTiles.begin(); it != houseTiles.end(); ++it)
- {
- for(uint32_t i = 0; i < (*it)->getThingCount(); ++i)
- {
- if(!(item = (*it)->__getThing(i)->getItem()))
- continue;
- if(item->isPickupable())
- moveList.push_back(item);
- else if((tmpContainer = item->getContainer()))
- {
- for(ItemList::const_iterator it = tmpContainer->getItems(); it != tmpContainer->getEnd(); ++it)
- moveList.push_back(*it);
- }
- }
- }
- if(player)
- {
- for(ItemList::iterator it = moveList.begin(); it != moveList.end(); ++it)
- g_game.internalRemoveItem(NULL, (*it), (*it)->getItemCount(), false, FLAG_NOLIMIT);
- if(player->isVirtual())
- {
- IOLoginData::getInstance()->savePlayer(player);
- delete player;
- }
- }
- else
- {
- for(ItemList::iterator it = moveList.begin(); it != moveList.end(); ++it)
- g_game.internalRemoveItem(NULL, (*it), (*it)->getItemCount(), false, FLAG_NOLIMIT);
- }
- return true;
- }
Add Comment
Please, Sign In to add comment