Files
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

78 lines
2.0 KiB
C++

#ifndef _GUILD_STRUCTURE_H_
#define _GUILD_STRUCTURE_H_
#include <map>
#include <vector>
#include <Community/Guild/GuildConstants.h>
namespace Guild
{
// 전방 참조
class CGuild;
struct MemberListInfo
{
unsigned char m_cRank; // 서열 (한 길드내에선 유니크한 숫자. 길드마스터를 0으로 하여 순차적으로 구성)
unsigned char m_cTitle; // 직위 (Guild::Title의 상수를 참고)
unsigned char m_cLevel; // 레벨
unsigned char m_cClass; // 클래스
unsigned char m_cGuildWarFlag; // 길드전쟁 참여 플래그 (Creature::WarFlag의 상수를 참고)
MemberListInfo()
: m_cRank(0), m_cTitle(0), m_cLevel(0), m_cClass(0), m_cGuildWarFlag(0)
{ }
MemberListInfo(unsigned char cRank, unsigned char cTitle, unsigned char cLevel, unsigned char cClass, unsigned char cGuildWarFlag)
: m_cRank(cRank), m_cTitle(cTitle), m_cLevel(cLevel), m_cClass(cClass), m_cGuildWarFlag(cGuildWarFlag)
{ }
};
struct MemberDetailInfo
{
unsigned long m_dwFame;
unsigned long m_dwGold;
MemberDetailInfo()
: m_dwFame(0), m_dwGold(0)
{ }
MemberDetailInfo(unsigned long dwFame, unsigned long dwGold)
: m_dwFame(dwFame), m_dwGold(dwGold)
{ }
};
struct MemberInfo
{
// 변하지 않는 정보
unsigned long m_dwCID;
char m_strName[MAX_MEMBER_NAME_LEN];
// 따로 처리되는 정보
unsigned long m_dwServerID;
TIME m_LeaveGuildTime;
unsigned char m_cUpdateCount;
unsigned char m_cTactics;
// 가끔 변하는 정보 (변경될 때마다 업데이트)
MemberListInfo m_MemberListInfo;
// 자주 변하는 정보 (일정 횟수 이상 변경되면 업데이트)
MemberDetailInfo m_MemberDetailInfo;
MemberInfo()
: m_dwCID(0), m_dwServerID(0), m_cUpdateCount(0), m_cTactics(0), m_MemberListInfo(), m_MemberDetailInfo()
{
std::fill_n(m_strName, int(MAX_MEMBER_NAME_LEN), 0);
::memset(&m_LeaveGuildTime, 0, sizeof(TIME));
}
};
typedef std::map<unsigned long, CGuild *> GuildMap;
typedef std::map<std::string, CGuild *> GuildNameMap;
typedef std::vector<MemberInfo> MemberList;
typedef std::map<unsigned long, unsigned char> RelationMap; // <GID, cRelation>
};
#endif