summaryrefslogtreecommitdiff
path: root/src/chat-server/guild.cpp
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2009-01-27 17:14:09 +0000
committerDavid Athay <ko2fan@gmail.com>2009-01-27 17:14:09 +0000
commitf666fd38beefb554d90503811e5a43d504a18345 (patch)
tree9eb573e3e4c75a8a0658b91e3cd2f6f7311bf52a /src/chat-server/guild.cpp
parentd1b73b1195f8e8b2ad64ff692e7ddb17ed0bbad1 (diff)
downloadmanaserv-f666fd38beefb554d90503811e5a43d504a18345.tar.gz
manaserv-f666fd38beefb554d90503811e5a43d504a18345.tar.bz2
manaserv-f666fd38beefb554d90503811e5a43d504a18345.tar.xz
manaserv-f666fd38beefb554d90503811e5a43d504a18345.zip
Changed guild member permissions. Restricted players to owning only 1 guild.
Diffstat (limited to 'src/chat-server/guild.cpp')
-rw-r--r--src/chat-server/guild.cpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/src/chat-server/guild.cpp b/src/chat-server/guild.cpp
index 46fa6cb9..6637ead0 100644
--- a/src/chat-server/guild.cpp
+++ b/src/chat-server/guild.cpp
@@ -19,6 +19,7 @@
*/
#include "guild.hpp"
+#include "defines.h"
#include <algorithm>
@@ -49,39 +50,43 @@ void Guild::addMember(int playerId, int permissions)
void Guild::removeMember(int playerId)
{
- if (checkLeader(playerId))
+ if (getOwner() == playerId)
{
// if the leader is leaving, assign next member as leader
std::list<GuildMember*>::iterator itr = mMembers.begin();
++itr;
if (itr != mMembers.end())
- setLeader((*itr)->mId);
+ setOwner((*itr)->mId);
}
GuildMember *member = getMember(playerId);
if (member)
mMembers.remove(member);
}
-bool Guild::checkLeader(int playerId)
+int Guild::getOwner()
{
- int leader = 0;
- GuildMember *member = getMember(playerId);
- // check member exists
- if (member)
- leader = member->mPermissions;
- // check permissions
- if (leader == GuildMember::LEADER)
- return true;
- return false;
+ std::list<GuildMember*>::iterator itr = mMembers.begin();
+ std::list<GuildMember*>::iterator itr_end = mMembers.end();
+
+ while (itr != itr_end)
+ {
+ if ((*itr)->mPermissions == GAL_OWNER)
+ {
+ return (*itr)->mId;
+ }
+
+ ++itr;
+ }
+ return 0;
}
-void Guild::setLeader(int playerId)
+void Guild::setOwner(int playerId)
{
GuildMember *member = getMember(playerId);
if (member)
{
- member->mPermissions = GuildMember::LEADER;
+ member->mPermissions = GAL_OWNER;
}
}
@@ -122,7 +127,7 @@ bool Guild::canInvite(int playerId)
// Guild members with permissions above NONE can invite
// Check that guild members permissions are not NONE
GuildMember *member = getMember(playerId);
- if (member->mPermissions > GuildMember::NONE)
+ if (member->mPermissions & GAL_INVITE)
return true;
return false;
}