guild_base.cpp & .h include header cleanup

This commit is contained in:
Akkadius 2014-12-15 21:59:23 -06:00
parent 0c21f56ff3
commit 20200fd028
2 changed files with 118 additions and 113 deletions

View File

@ -16,7 +16,6 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include "debug.h"
#include "guild_base.h" #include "guild_base.h"
#include "database.h" #include "database.h"
#include "logsys.h" #include "logsys.h"

View File

@ -3,146 +3,152 @@
#include "guilds.h" #include "guilds.h"
#include <map> #include <map>
#include <string>
#include <vector> #include <vector>
class Database; class Database;
class CharGuildInfo { class CharGuildInfo
public: {
//fields from `characer_` public:
uint32 char_id; //fields from `characer_`
std::string char_name; uint32 char_id;
uint8 class_; std::string char_name;
uint16 level; uint8 class_;
uint32 time_last_on; uint16 level;
uint32 zone_id; uint32 time_last_on;
uint32 zone_id;
//fields from `guild_members` //fields from `guild_members`
uint32 guild_id; uint32 guild_id;
uint8 rank; uint8 rank;
bool tribute_enable; bool tribute_enable;
uint32 total_tribute; uint32 total_tribute;
uint32 last_tribute; //timestamp uint32 last_tribute; //timestamp
bool banker; bool banker;
bool alt; bool alt;
std::string public_note; std::string public_note;
}; };
//this object holds guild functionality shared between world and zone. //this object holds guild functionality shared between world and zone.
class BaseGuildManager { class BaseGuildManager
public: {
BaseGuildManager(); public:
virtual ~BaseGuildManager(); BaseGuildManager();
virtual ~BaseGuildManager();
//this must be called before doing anything else with this object //this must be called before doing anything else with this object
void SetDatabase(Database *db) { m_db = db; } void SetDatabase(Database *db)
{
m_db = db;
}
bool LoadGuilds(); bool LoadGuilds();
bool RefreshGuild(uint32 guild_id); bool RefreshGuild(uint32 guild_id);
//guild edit actions. //guild edit actions.
uint32 CreateGuild(const char* name, uint32 leader_char_id); uint32 CreateGuild(const char* name, uint32 leader_char_id);
bool DeleteGuild(uint32 guild_id); bool DeleteGuild(uint32 guild_id);
bool RenameGuild(uint32 guild_id, const char* name); bool RenameGuild(uint32 guild_id, const char* name);
bool SetGuildMOTD(uint32 guild_id, const char* motd, const char *setter); bool SetGuildMOTD(uint32 guild_id, const char* motd, const char *setter);
bool SetGuildURL(uint32 GuildID, const char* URL); bool SetGuildURL(uint32 GuildID, const char* URL);
bool SetGuildChannel(uint32 GuildID, const char* Channel); bool SetGuildChannel(uint32 GuildID, const char* Channel);
//character edit actions //character edit actions
bool SetGuildLeader(uint32 guild_id, uint32 leader_char_id); bool SetGuildLeader(uint32 guild_id, uint32 leader_char_id);
bool SetGuild(uint32 charid, uint32 guild_id, uint8 rank); bool SetGuild(uint32 charid, uint32 guild_id, uint8 rank);
bool SetGuildRank(uint32 charid, uint8 rank); bool SetGuildRank(uint32 charid, uint8 rank);
bool SetBankerFlag(uint32 charid, bool is_banker); bool SetBankerFlag(uint32 charid, bool is_banker);
bool ForceRankUpdate(uint32 charid); bool ForceRankUpdate(uint32 charid);
bool GetAltFlag(uint32 CharID); bool GetAltFlag(uint32 CharID);
bool SetAltFlag(uint32 charid, bool is_alt); bool SetAltFlag(uint32 charid, bool is_alt);
bool GetBankerFlag(uint32 CharID); bool GetBankerFlag(uint32 CharID);
bool SetTributeFlag(uint32 charid, bool enabled); bool SetTributeFlag(uint32 charid, bool enabled);
bool SetPublicNote(uint32 charid, const char *note); bool SetPublicNote(uint32 charid, const char *note);
//queries //queries
bool GetCharInfo(const char *char_name, CharGuildInfo &into); bool GetCharInfo(const char *char_name, CharGuildInfo &into);
bool GetCharInfo(uint32 char_id, CharGuildInfo &into); bool GetCharInfo(uint32 char_id, CharGuildInfo &into);
bool GetEntireGuild(uint32 guild_id, std::vector<CharGuildInfo *> &members); //caller is responsible for deleting each pointer in the resulting vector. bool GetEntireGuild(uint32 guild_id, std::vector<CharGuildInfo *> &members); //caller is responsible for deleting each pointer in the resulting vector.
bool GuildExists(uint32 guild_id) const; bool GuildExists(uint32 guild_id) const;
bool GetGuildMOTD(uint32 guild_id, char *motd_buffer, char *setter_buffer) const; bool GetGuildMOTD(uint32 guild_id, char *motd_buffer, char *setter_buffer) const;
bool GetGuildURL(uint32 GuildID, char *URLBuffer) const; bool GetGuildURL(uint32 GuildID, char *URLBuffer) const;
bool GetGuildChannel(uint32 GuildID, char *ChannelBuffer) const; bool GetGuildChannel(uint32 GuildID, char *ChannelBuffer) const;
const char *GetRankName(uint32 guild_id, uint8 rank) const; const char *GetRankName(uint32 guild_id, uint8 rank) const;
const char *GetGuildName(uint32 guild_id) const; const char *GetGuildName(uint32 guild_id) const;
bool GetGuildNameByID(uint32 guild_id, std::string &into) const; bool GetGuildNameByID(uint32 guild_id, std::string &into) const;
uint32 GetGuildIDByName(const char *GuildName); uint32 GetGuildIDByName(const char *GuildName);
bool IsGuildLeader(uint32 guild_id, uint32 char_id) const; bool IsGuildLeader(uint32 guild_id, uint32 char_id) const;
uint8 GetDisplayedRank(uint32 guild_id, uint8 rank, uint32 char_id) const; uint8 GetDisplayedRank(uint32 guild_id, uint8 rank, uint32 char_id) const;
bool CheckGMStatus(uint32 guild_id, uint8 status) const; bool CheckGMStatus(uint32 guild_id, uint8 status) const;
bool CheckPermission(uint32 guild_id, uint8 rank, GuildAction act) const; bool CheckPermission(uint32 guild_id, uint8 rank, GuildAction act) const;
// uint32 Getguild_id(uint32 eqid); // uint32 Getguild_id(uint32 eqid);
uint32 FindGuildByLeader(uint32 leader) const; uint32 FindGuildByLeader(uint32 leader) const;
// void GetGuildMembers(uint32 guild_id,GuildMember_Struct* gms); // void GetGuildMembers(uint32 guild_id,GuildMember_Struct* gms);
uint32 NumberInGuild(uint32 guild_id); uint32 NumberInGuild(uint32 guild_id);
// bool GetGuildRanks(uint32 guildeqid, GuildRanks_Struct* gr); // bool GetGuildRanks(uint32 guildeqid, GuildRanks_Struct* gr);
// bool EditGuild(uint32 guild_id, uint8 ranknum, GuildRankLevel_Struct* grl); // bool EditGuild(uint32 guild_id, uint8 ranknum, GuildRankLevel_Struct* grl);
uint8 *MakeGuildList(const char *head_name, uint32 &length) const; //make a guild list packet, returns ownership of the buffer. uint8 *MakeGuildList(const char *head_name, uint32 &length) const; //make a guild list packet, returns ownership of the buffer.
static const char *const GuildActionNames[_MaxGuildAction]; static const char *const GuildActionNames[_MaxGuildAction];
uint32 DoesAccountContainAGuildLeader(uint32 AccountID); uint32 DoesAccountContainAGuildLeader(uint32 AccountID);
protected: protected:
//the methods which must be defined by base classes. //the methods which must be defined by base classes.
virtual void SendGuildRefresh(uint32 guild_id, bool name, bool motd, bool rank, bool relation) = 0; virtual void SendGuildRefresh(uint32 guild_id, bool name, bool motd, bool rank, bool relation) = 0;
virtual void SendCharRefresh(uint32 old_guild_id, uint32 guild_id, uint32 charid) = 0; virtual void SendCharRefresh(uint32 old_guild_id, uint32 guild_id, uint32 charid) = 0;
virtual void SendRankUpdate(uint32 CharID) = 0; virtual void SendRankUpdate(uint32 CharID) = 0;
virtual void SendGuildDelete(uint32 guild_id) = 0; virtual void SendGuildDelete(uint32 guild_id) = 0;
uint32 DBCreateGuild(const char* name, uint32 leader_char_id); uint32 DBCreateGuild(const char* name, uint32 leader_char_id);
bool DBDeleteGuild(uint32 guild_id); bool DBDeleteGuild(uint32 guild_id);
bool DBRenameGuild(uint32 guild_id, const char* name); bool DBRenameGuild(uint32 guild_id, const char* name);
bool DBSetGuildLeader(uint32 guild_id, uint32 leader_char_id); bool DBSetGuildLeader(uint32 guild_id, uint32 leader_char_id);
bool DBSetGuildMOTD(uint32 guild_id, const char* motd, const char *setter); bool DBSetGuildMOTD(uint32 guild_id, const char* motd, const char *setter);
bool DBSetGuildURL(uint32 GuildID, const char* URL); bool DBSetGuildURL(uint32 GuildID, const char* URL);
bool DBSetGuildChannel(uint32 GuildID, const char* Channel); bool DBSetGuildChannel(uint32 GuildID, const char* Channel);
bool DBSetGuild(uint32 charid, uint32 guild_id, uint8 rank); bool DBSetGuild(uint32 charid, uint32 guild_id, uint8 rank);
bool DBSetGuildRank(uint32 charid, uint8 rank); bool DBSetGuildRank(uint32 charid, uint8 rank);
bool DBSetBankerFlag(uint32 charid, bool is_banker); bool DBSetBankerFlag(uint32 charid, bool is_banker);
bool DBSetAltFlag(uint32 charid, bool is_alt); bool DBSetAltFlag(uint32 charid, bool is_alt);
bool DBSetTributeFlag(uint32 charid, bool enabled); bool DBSetTributeFlag(uint32 charid, bool enabled);
bool DBSetPublicNote(uint32 charid, const char *note); bool DBSetPublicNote(uint32 charid, const char *note);
bool QueryWithLogging(std::string query, const char *errmsg); bool QueryWithLogging(std::string query, const char *errmsg);
// void DBSetPublicNote(uint32 guild_id,char* charname, char* note); // void DBSetPublicNote(uint32 guild_id,char* charname, char* note);
bool LocalDeleteGuild(uint32 guild_id); bool LocalDeleteGuild(uint32 guild_id);
class RankInfo { class RankInfo
public: {
RankInfo(); public:
std::string name; RankInfo();
bool permissions[_MaxGuildAction]; std::string name;
}; bool permissions[_MaxGuildAction];
class GuildInfo { };
public: class GuildInfo
GuildInfo(); {
std::string name; public:
std::string motd; GuildInfo();
std::string motd_setter; std::string name;
std::string url; std::string motd;
std::string channel; std::string motd_setter;
std::string url;
std::string channel;
uint32 leader_char_id; uint32 leader_char_id;
uint8 minstatus; uint8 minstatus;
//tribute is not in here on purpose, since it is only valid in world! //tribute is not in here on purpose, since it is only valid in world!
RankInfo ranks[GUILD_MAX_RANK+1]; RankInfo ranks[GUILD_MAX_RANK + 1];
}; };
std::map<uint32, GuildInfo *> m_guilds; //we own the pointers in this map std::map<uint32, GuildInfo *> m_guilds; //we own the pointers in this map
void ClearGuilds(); //clears internal structure void ClearGuilds(); //clears internal structure
Database *m_db; //we do not own this Database *m_db; //we do not own this
bool _StoreGuildDB(uint32 guild_id); bool _StoreGuildDB(uint32 guild_id);
GuildInfo *_CreateGuild(uint32 guild_id, const char *guild_name, uint32 account_id, uint8 minstatus, const char *guild_motd, const char *motd_setter, const char *Channel, const char *URL); GuildInfo *_CreateGuild(uint32 guild_id, const char *guild_name, uint32 account_id, uint8 minstatus, const char *guild_motd, const char *motd_setter, const char *Channel, const char *URL);
uint32 _GetFreeGuildID(); uint32 _GetFreeGuildID();
}; };