/* ========================================================================== * ÆÄ ÀÏ : PartyManager.h * ¸ñ Àû : * ÀÛ ¼º ÀÚ : ±è°¡¶÷ * ÀÛ ¼º ÀÏ : 2007-11-05 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "Monster.h" #include "Party.h" #include "PartyJoinPool.h" const unsigned long PARTY_UPDATETIME = 10000; const unsigned long PARTY_DELETETIME = 60000; class cPartyManager { static cPartyManager* mpSingleton; public: cPartyManager( ); ~cPartyManager( ); bool Init ( ); void Process ( unsigned long elapsedTime, unsigned long accumTime ); void Release ( ); cParty* AllocParty ( ) { return mPartyPool.Alloc(); } void FreeParty ( cParty* party ) { mPartyPool.Free( party ); } int CheckPlayer ( cPlayer* player ); // ÆÄƼ»ý¼º cParty* AddParty ( unsigned long partyIndex, unsigned long leaderIdx, unsigned long playerIdx ); cParty* GetParty ( unsigned int partyIdx ); void DelParty ( cParty** party ); // ÆÄƼ »èÁ¦ void AddRestore ( unsigned long playerIdx, unsigned int partyIdx ); void SetRestore ( cPlayer* player ); void DelRestore ( unsigned long playerIdx ); // ÆÄƼ½ÅûÀÀ´ä½Ã Á¦´ë·Î µÈ ¿¬°áÀÎÁö °Ë»çÇϱâ À§ÇÔ. // ½ÅûÁ¤º¸ ÀúÀå ( ½Åû¹ÞÀº À¯Àú, ½ÅûÇÑ À¯Àú À妽º ) PartyJoin* SearchJoin ( wchar_t* name ); PartyJoin* GetJoin ( wchar_t* name ); void ReleaseJoin ( PartyJoin* join ); void ClearRequest ( cPlayer* player ); // ½Åû¹Þ´Â À¯Àú ½Åû ÀÚµ¿ Ãë¼Ò // ¸ó½ºÅÍ »ç³É : ÆÄƼ¿ø °»½Å void SendToPartyHunt ( cMonster* monster, cPlayer* player, unsigned int racegender ); void SendToJobChange ( cPlayer* player ); // ÁÖ»çÀ§ ±¼¸®±â void PartyDiceStart ( cPlayer* player ); void PartyDiceResult ( cPlayer* player, unsigned short value ); void SendDiceResult ( cParty* party ); void SendToPartyAll ( cParty* party, char* msg, unsigned long length ); bool ResPartyList ( cPlayer* player, cParty* party ); bool ResPartyAddOne ( cPlayer* player, cParty* party ); // ÆÄƼ¿ø Å»Åðó¸® (ÆÄƼŻÅð, °ÔÀÓÁ¾·á) void PartyDelPlayer ( cParty* party, unsigned long playerIdx ); void PartyOutPlayer ( cPlayer* player ); void PartyThrowPlayer ( cPlayer* leader, unsigned long playerIdx ); void PartyChangeLeader ( cPlayer* leader, unsigned long playerIdx ); void PartyChangeDivide ( cPlayer* leader, PARTY_DIVIDE_TYPE type ); void PartyMapIn ( cPlayer* player ); void PostSynParty ( cParty* party ); void PostAskParty ( unsigned long partyIdx, cPlayer* player, wchar_t* playerName ); void PostRepParty ( unsigned long leaderIdx, wchar_t* playerName, unsigned long error, unsigned char replay ); void PostAddParty ( unsigned long partyIdx, sPartyUserData* leader, sPartyUserData* player ); void PostDelParty ( unsigned long partyIdx ); void PostAddUser ( unsigned long partyIdx, cPlayer* player ); void PostDelUser ( unsigned long partyIdx, unsigned long leaderIdx, unsigned long playerIdx ); void PostOutUser ( unsigned long partyIdx, unsigned long leaderIdx, unsigned long playerIdx ); void PostSynLeader ( cParty* party ); void PostSynDivideType ( cParty* party ); //void PostSynLevelData ( unsigned long partyIdx, cPlayer* player ); void PostSynMapData ( unsigned long partyIdx, cPlayer* player ); void PostSynUser ( unsigned long partyIdx, unsigned long playerIdx, long gotoCID ); void PostSynDiceStart ( unsigned long partyIdx ); void PostSynDiceResult ( unsigned long partyIdx, unsigned long playerIdx, unsigned short value ); private: typedef tPool cPartyPool; typedef tPointerHashMap cPartyMap; typedef tHashMap cJoinMap; cPartyPool mPartyPool; // ÀüüÆÄƼ Ç® cPartyMap mPartyMap; // Àüü ÆÄƼÁ¤º¸ ÀúÀå cJoinMap mRestore; // ÆÄƼÁ¤º¸ º¹±¸ // Memory Pool - cPartyJoinPool class. cPartyJoinPool* mpPartyJoinPool; public: static cPartyManager* Get ( ) { return mpSingleton; } }; #define PARTYMAN cPartyManager::Get( )