#ifndef _CASTLE_MANAGER_H_ #define _CASTLE_MANAGER_H_ #pragma once #include #include #include #include // Àü¹æ ÂüÁ¶ class CSiegeObject; class CSiegeObjectMgr; namespace Castle { // Àü¹æ ÂüÁ¶ class CCastle; class CCastleMgr { public: ~CCastleMgr(); static CCastleMgr& GetInstance(); typedef std::map CastleMap; // bool Initialize(); void Destroy(); void Process(); CCastle* GetCastle(unsigned long dwCastleID); CCastle* GetCastleByNameID(unsigned long dwCastleNameID); // CASTLE_TODO : ¼ºÀÌ ±æµå ¼ÒÀ¯°¡ ¾Æ´Ï¹Ç·Î ¸·¾ÆµÐ´Ù. // CCastle* GetCastleByGID(unsigned long dwGID); CCastle* GetCastleInBlessArea(const Position& Pos); void GetCastleSiegeInfo(CastleSiegeInfo* lpCastleSiegeInfo, unsigned char& cNum, unsigned short& wSize); // ¼ºÀÇ °¹¼ö¸¦ ¸®ÅÏ unsigned char GetCastleNum() const; // ÇØ´ç Á¸, ÇØ´ç ±¹°¡ÀÇ ¼ºÀÇ °¹¼ö¸¦ ¸®ÅÏ unsigned char GetCastleNum(unsigned char cNation, unsigned char cZone) const; // ÇØ´ç Á¸, ÇØ´ç ±¹°¡ÀÇ º¸»ó ¹Ý°æ³»¿¡ ÀÖ´Â ¼ºÀÇ °¹¼ö¸¦ ¸®ÅÏ unsigned char GetCastleNum(unsigned char cNation, unsigned char cZone, const Position& Pos) const; // Pos ¹Ý°æ¿¡ ¼ºÀÌ Á¸ÀçÇÏ´ÂÁö üũ bool ExistCastleInRadius(const Position& Pos); // Pos ¹Ý°æ¿¡ °ø¼º º´±â¸¦ »ý¼ºÇÒ ¼ö ÀÖ´ÂÁö üũ bool ExistSiegeInRadius(const Position& Pos); // ÆÐŶ Àü¼Û bool SendCastleInfo(CSendStream& SendStream); // DBAgentServer ·ÎºÎÅÍ ¼º Á¤º¸¸¦ ¾ò¾î¿È bool SerializeIn(char* lpBuffer_In, unsigned short wBufferSize_In, unsigned char cObjectNum); // ¼º »ó¡¹° HP Regen ó¸® void ProcessEmblemRegenHPAndMP(); // °ø¼º ½Ã°£ÈÄ ¼ºµéÀÇ ¼¼À² º¯°æ °¡´É Á¤º¸ ÃʱâÈ­ void EnableTaxChange(); // ¼ö¼º º´±â¸¦ º´±â °ü¸® NPC ·Î º¯°æ void DestroyAllCastleArms(); // ¼ö¼º º´±â üũ. bool HasCastleArms(unsigned long dwCID); // ¼º ¼ÒÀ¯ÁÖ. unsigned char GetNation(); private: CCastleMgr(); CastleMap m_CastleMap; }; } #endif // _CASTLE_MANAGER_H_