/* ========================================================================== * ÆÄ ÀÏ : GuildManager.h * ¸ñ Àû : * ÀÛ ¼º ÀÚ : ±è°¡¶÷ * ÀÛ ¼º ÀÏ : 2008-10-31 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #include "BaseStage.h" #include "Guild_Common.h" #define REGIST_GUILDMARK "./GuildMark/mark.bmp" const unsigned long GUILD_WAIT_TIME = 10000; // ±æµåÃÊ´ë Áö¼Ó½Ã°£ struct MSG_RES_NPC_GUILD_CREATE; struct MARK_VERSION { unsigned long guildIndex; tm versionData; }; #define MARK_MAX_SIZE MARK_SIZE + sizeof(MARK_VERSION) class cGuildManager { public: cGuildManager(); ~cGuildManager(); bool Init(); void Open(); void Close(); /// bool GuildCreate(); void GuildAdd( cStringT name ); void GuildOut(); void GuildCut( unsigned long characterIdx ); void GuildDelete(); void GuildGivePosition( unsigned long characterIdx, unsigned char position, unsigned char newPosition ); void GuildNotice( LPCTSTR notice ); void GuildMarkRequest( unsigned long guildIndex ); void ResGuildCreate( MSG_RES_NPC_GUILD_CREATE* pmsg ); /// »õ ±æµå¸¶Å© µî·Ï ¿äû void GuildMarkUpdate(); /// ±æµå ¸¶Å© ÅØ½ºÃÄ »Ì±â NiTexture* LoadGuildMark( unsigned long guildIndex ); NiTexture* LoadPreviewGuildMark( const cString& pathName ); void ClearPreviewGuildMark(); /// NiTexture* CheckMarkVersion( unsigned long guildIndex, tm registDate ); /// void NetworkMsgParser( char* msg ); /// Á÷À§ÀÇ ÅØ½ºÆ® À妽º °¡Á®¿À±â LPCTSTR GetTextIndex( unsigned char position ); void SetTempData( LPCTSTR name, unsigned long npcIdx ); void ClearTempData(); unsigned long GetMasterIndex() { return mGuildInfo.masterIndex; } wchar_t* GetGuildNotice() { return mGuildInfo.notice; } int GetTotalCount() { return mGuildUserMap.GetSize(); } void GuildInfoReset() { mGuildInfoInit = false; } public: static cGuildManager* mpSingleton; static cGuildManager* GetSingleton(); private: void Clear(); /// ±æµå Á¤º¸ ½ÃÆ® °»½Å void UpdateInfoSheet(); /// ±æµå¿ø °¡ÀÔ/Å»Åð ¿¡ ÀÇÇÑ º¯°æ void UpdateInfoSheetByUser(); /// ±æµå °øÁö Ãâ·Â void UpdateNotice(); /// void AddGuildUser( sGuildUserInfo* user ); /// ±æµå¸¶Å©Æú´õ »ý¼º bool CheckGuildMarkFolder(); /// void SaveGuildMark( unsigned long guildIndex, tm registDate, BYTE* mark ); private: /// ±æµå Á¤º¸ sGuildInfo mGuildInfo; /// ±æµå À¯Àú¸®½ºÆ® (sGuildUserInfo) typedef tPointerHashMap cGuildUserMap; cGuildUserMap mGuildUserMap; /// Á¢¼Ó Àοø ¼ö unsigned long mConnectCount; /// ±æµåÀ̸§ »ý¼º cStringT mTempName; unsigned long mTempNpcIndex; /// Ãß¹æÀ¯Àú À妽º Àӽà ÀúÀå unsigned long mTempCutPlayerIdx; /// ±æµå¿ø Ãß°¡ À¯Àú¸í ÀúÀå cStringT mTempAddName; bool mGuildInfoInit; // NiTexture* mpPreviewMark; /// ±æµå¸¶Å© ¹öÆÛ BYTE mMarkBuffer[MARK_SIZE]; /// ±æµå¸¶Å© ¿äû Á¤º¸( ±æµåÀ妽º ) typedef tHashSet cRequestMarkSet; cRequestMarkSet mRequestMarkSet; typedef tPointerHashMap cMarkTextureMap; cMarkTextureMap mMarkTextureMap; }; inline cGuildManager* cGuildManager::GetSingleton() { return mpSingleton; } #define GUILDMAN cGuildManager::GetSingleton()