#include "StdAfx.h" #include ".\guildmember.h" #include #include __IMPL_GUILDPOOL(GuildMember) GuildMember::GuildMember(void) { } GuildMember::~GuildMember(void) { } VOID GuildMember::InitializeMember() { ZeroMemory( &m_MemberInfo, sizeof(m_MemberInfo) ); InitDelegateRight(); m_byTotalInfoReqCnt = 0; } VOID GuildMember::ReleaseMember() { } VOID GuildMember::Join( CHARGUID guid, const TCHAR* tszCharName, BYTE byClass, LEVELTYPE CharLV ) { SetCharGuid( guid ); SetCharName( tszCharName ); SetClass( byClass ); SetLevel( CharLV ); SetLogin( TRUE ); SetDuty(eGUILD_DUTY_REGULAR_SOLDIER); SetCorpsNumber(0); SetChaoState(eCHAO_STATE_NORMAL); // Ä«¿ÀÀÎ ³ðÀÌ ±æµå °¡ÀÔÀÌ °¡´ÉÇѰ¡? } VOID GuildMember::SerializeBaseMemberInfo( INOUT BASE_GUILD_MEMBER_INFO& rInfo, eSERIALIZE se ) { if( se == SERIALIZE_LOAD ) { CopyMemory( &rInfo, &m_MemberInfo, sizeof(rInfo) ); } else { // Á¶°Çüũ.. if( rInfo.m_eGuildDuty == eGUILD_DUTY_NONE || rInfo.m_eGuildDuty >= eGUILD_DUTY_MAX ) SUNLOG( eCRITICAL_LOG, "[GuildMember::Serialize] Invalid Value, CharName = %s, Duty = %d", rInfo.m_tszCharName, rInfo.m_eGuildDuty ); CopyMemory( &m_MemberInfo, &rInfo, sizeof(m_MemberInfo) ); } } VOID GuildMember::SerializeMemberInfo( INOUT GUILD_MEMBER_INFO& rInfo, eSERIALIZE se ) { if( se == SERIALIZE_LOAD ) { CopyMemory( &rInfo, &m_MemberInfo, sizeof(rInfo) ); } else { // Á¶°Çüũ.. if( rInfo.m_eGuildDuty == eGUILD_DUTY_NONE || rInfo.m_eGuildDuty >= eGUILD_DUTY_MAX ) SUNLOG( eCRITICAL_LOG, "[GuildMember::Serialize] Invalid Value, CharName = %s, Duty = %d", rInfo.m_tszCharName, rInfo.m_eGuildDuty ); CopyMemory( &m_MemberInfo, &rInfo, sizeof(m_MemberInfo) ); } } VOID GuildMember::SerializeServerMemberInfo( INOUT SERVER_GUILD_MEMBER_INFO& rInfo, eSERIALIZE se ) { if( se == SERIALIZE_LOAD ) { CopyMemory( &rInfo, &m_MemberInfo, sizeof(rInfo) ); } else { // Á¶°Çüũ.. if( rInfo.m_eGuildDuty == eGUILD_DUTY_NONE || rInfo.m_eGuildDuty >= eGUILD_DUTY_MAX ) SUNLOG( eCRITICAL_LOG, "[GuildMember::Serialize] Invalid Value, CharName = %s, Duty = %d", rInfo.m_tszCharName, rInfo.m_eGuildDuty ); CopyMemory( &m_MemberInfo, &rInfo, sizeof(m_MemberInfo) ); } } BOOL GuildMember::CheckDelegateRight( eGUILD_RIGHTS Right ) { for( int i = 0 ; i < MAX_GUILD_DELEGATE_RIGHT; i++ ) { if( m_MemberInfo.m_DelegateRight[i].m_Right == Right ) return m_MemberInfo.m_DelegateRight[i].m_bRightUse; } return FALSE; } VOID GuildMember::GetDelegateRight( OUT GUILD_RIGHT_USE_INFO* pDelegateRight ) { CopyMemory( pDelegateRight, m_MemberInfo.m_DelegateRight, sizeof( GUILD_RIGHT_USE_INFO )*MAX_GUILD_DELEGATE_RIGHT ); } VOID GuildMember::SetDelegateRight( GUILD_RIGHT_USE_INFO* pDelegateRight ) { if( !pDelegateRight ) return; CopyMemory( m_MemberInfo.m_DelegateRight, pDelegateRight, sizeof( GUILD_RIGHT_USE_INFO )*MAX_GUILD_DELEGATE_RIGHT ); } VOID GuildMember::InitDelegateRight() { ZeroMemory( m_MemberInfo.m_DelegateRight, sizeof(m_MemberInfo.m_DelegateRight) ); m_MemberInfo.m_DelegateRight[0].m_Right = eGUILD_RIGHTS_RELATION; m_MemberInfo.m_DelegateRight[1].m_Right = eGUILD_RIGHTS_RANKUP; m_MemberInfo.m_DelegateRight[2].m_Right = eGUILD_RIGHTS_UP2GP; m_MemberInfo.m_DelegateRight[3].m_Right = eGUILD_RIGHTS_USE_UPGP; m_MemberInfo.m_DelegateRight[4].m_Right = eGUILD_RIGHTS_SEIGE_WARFARE; m_MemberInfo.m_DelegateRight[5].m_Right = eGUILD_RIGHTS_GUILD_MARK; } VOID GuildMember::SetCharName( const TCHAR* pszCharName ) { strncpy( m_MemberInfo.m_tszCharName, pszCharName, MAX_CHARNAME_LENGTH ); } VOID GuildMember::SetLogin( BOOL bLogin ) { m_MemberInfo.m_bLogin = bLogin; }