bool BTParty::remove(int who, BTDisplay &d) { if (!removing.isSet(who)) { XMLVector<BTPc*> &roster = BTGame::getGame()->getRoster(); removing.set(who); BTPc *pc = (*this)[who]; BTGame::getGame()->movedPlayer(d, who, BTPARTY_REMOVE); pc->deactivateItems(d); erase(begin() + who); if (roster.end() == std::find(roster.begin(), roster.end(), pc)) { delete pc; } d.drawStats(); removing.clear(who); return true; } else return false; }