diff options
author | Bertram <bertram@cegetel.net> | 2010-03-03 23:36:37 +0100 |
---|---|---|
committer | Bertram <bertram@cegetel.net> | 2010-03-03 23:36:37 +0100 |
commit | 8cc31b582f372238ce6bd2c86888d312cf1fe5b2 (patch) | |
tree | 8db5f864348d08a05b8533c7ede58e76741a98f8 /src/player.cpp | |
parent | b1845e9e081df1fc77d9bcbed3ab95792d6ba682 (diff) | |
parent | d564943867452ad76e6d313a28870e640715dded (diff) | |
download | mana-client-8cc31b582f372238ce6bd2c86888d312cf1fe5b2.tar.gz mana-client-8cc31b582f372238ce6bd2c86888d312cf1fe5b2.tar.bz2 mana-client-8cc31b582f372238ce6bd2c86888d312cf1fe5b2.tar.xz mana-client-8cc31b582f372238ce6bd2c86888d312cf1fe5b2.zip |
Merge branch 'master' of gitorious.org:mana/mana
Conflicts:
src/being.cpp
Diffstat (limited to 'src/player.cpp')
-rw-r--r-- | src/player.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/player.cpp b/src/player.cpp index 5eb0163f..4fc5d523 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -220,6 +220,7 @@ void Player::setSpriteColor(unsigned int slot, const std::string &color) void Player::addGuild(Guild *guild) { mGuilds[guild->getId()] = guild; + guild->addMember(mId, mName); if (this == player_node && socialWindow) { @@ -234,6 +235,7 @@ void Player::removeGuild(int id) socialWindow->removeTab(mGuilds[id]); } + mGuilds[id]->removeMember(mId); mGuilds.erase(id); } @@ -264,6 +266,27 @@ Guild *Player::getGuild(int id) const return NULL; } +const std::map<int, Guild*> &Player::getGuilds() const +{ + return mGuilds; +} + +void Player::clearGuilds() +{ + std::map<int, Guild*>::const_iterator itr, itr_end = mGuilds.end(); + for (itr = mGuilds.begin(); itr != itr_end; ++itr) + { + Guild *guild = itr->second; + + if (this == player_node && socialWindow) + socialWindow->removeTab(guild); + + guild->removeMember(mId); + } + + mGuilds.clear(); +} + void Player::setParty(Party *party) { if (party == mParty) @@ -272,6 +295,16 @@ void Player::setParty(Party *party) Party *old = mParty; mParty = party; + if (old) + { + party->removeMember(mId); + } + + if (party) + { + party->addMember(mId, mName); + } + updateColors(); if (this == player_node && socialWindow) |