#pragma once //============================================================================================================================= /// OptLogicByNation Ŭ·¡½º /** @author Waverix Lee @since 2007. 05. 06 @remark - ºôµåÇÏÁö ¾Ê°í ½ºÅ©¸³Æ®¿¡ ÀÇÇÑ Á¦¾î½Ã °¢Á¾ ¼öÄ¡³ª ·ÎÁ÷ÀÌ ±¹°¡º°·Î Ʋ·ÁÁú °æ¿ì ±×°ÍÀ» ÀÏÀÏÈ÷ °¢ ¼­¹ö Äڵ忡 »ðÀÔÇϱ⠺¸´Ù´Â ÇØ´ç Äڵ忡¼­´Â ±×³É ƯÁ¤ ÇÔ¼ö¸¸À» È£ÃâÇÔÀ¸·Î½á °ªµîÀÌ ´Þ¶óÁú ¼ö ÀÖµµ·Ï Áö¿ø @note - @history - @usage */ //============================================================================================================================= #ifndef __NA_000000_20071106_SERVER_OPTION_CHANGE class OptLogicAgent { public: OptLogicAgent() {} ~OptLogicAgent() {} public: // PC ¹æ ÇýÅÃÀ» ÁÖ¾î¾ß ÇÏ´ÂÁö ¿©ºÎ inline BOOL CanApplyPCBangBenefit() { return m_INFO.m_bCanApplyPCBangBenefit; } private: struct sOptInfo { BOOL m_bCanApplyPCBangBenefit; // PC ¹æ ÇýÅÃÀ» ÁÖ¾î¾ß ÇÏ´ÂÁö ¿©ºÎ } m_INFO; friend class OptLogicByNation; }; class OptLogicGame { public: OptLogicGame() {} ~OptLogicGame() {} public: // PC ¹æ ÇýÅÃÀ» ÁÖ¾î¾ß ÇÏ´ÂÁö ¿©ºÎ inline BOOL CanApplyPCBangBenefit() { return m_INFO.m_bCanApplyPCBangBenefit; } // inline FLOAT GetSuperRoomBonusExp( BOOL bMaster ) { if( bMaster ) return m_INFO.m_fMasterBonusExp; else return m_INFO.m_fNoMasterBonusExp; } inline BOOL IsCheckLevelOwnership() { return m_INFO.m_bCheckLevelOwnership; } private: struct sOptInfo { BOOL m_bCanApplyPCBangBenefit; // PC ¹æ ÇýÅÃÀ» ÁÖ¾î¾ß ÇÏ´ÂÁö ¿©ºÎ FLOAT m_fMasterBonusExp; // ¼öÆÛ¹æÀÇ ¹æÀå Ãß°¡ °æÇèÄ¡ FLOAT m_fNoMasterBonusExp; // ½´ÆÛ¹æÀÇ ÆÄƼ¿ø Ãß°¡ °æÇèÄ¡ BOOL m_bCheckLevelOwnership; // ¼ÒÀ¯±Ç¼³Á¤½Ã ·¹º§Â÷À̸¦ üũÇÏ´ÂÁö } m_INFO; friend class OptLogicByNation; }; class OptLogicWorld { public: OptLogicWorld() {} ~OptLogicWorld() {} private: struct sOptInfo { } m_INFO; friend class OptLogicByNation; }; class OptLogicDBProxy { public: OptLogicDBProxy() {} ~OptLogicDBProxy() {} private: struct sOptInfo { } m_INFO; friend class OptLogicByNation; }; class OptLogicGuild { public: OptLogicGuild() {} ~OptLogicGuild() {} private: struct sOptInfo { } m_INFO; friend class OptLogicByNation; }; class OptLogicMaster { public: OptLogicMaster() {} ~OptLogicMaster() {} private: struct sOptInfo { } m_INFO; friend class OptLogicByNation; }; ////////////////////////////////////////////////////////////////////////// // class OptLogicByNation { public: static VOID CreateInstance( eNATION_CODE eNationCode ); static VOID DestroyInstance(); inline static OptLogicByNation* Instance() { return ms_pInstance; } public: OptLogicAgent AGENT; OptLogicGame GAME; OptLogicWorld WORLD; OptLogicDBProxy DBPROXY; OptLogicGuild GUILD; OptLogicMaster MASTER; public: inline eNATION_CODE GetNationCode() { return m_eNationCode; } private: OptLogicByNation(); ~OptLogicByNation(); private: VOID _InitializeByNationCode( eNATION_CODE eNationCode ); VOID __Initialize__KR(); VOID __Initialize__JP(); VOID __Initialize__TW(); VOID __Initialize__CN(); VOID __Initialize__UK(); private: static OptLogicByNation* ms_pInstance; eNATION_CODE m_eNationCode; }; #endif //__NA_000000_20071106_SERVER_OPTION_CHANGE