#pragma once class SGame; class SRaidMgr; class SPartyMgr; class SGuildMgr; class SFriendMgr; class SCutMgr; class STradeMgr; class SStorageMgr; class SMotionMgr; class SPlayerInfoMgr; class SInventoryMgr; class SCreatureSlotMgr; class SSkillSlotMgr; class SCreatureSkillSlotMgr; class SPetMgr; // sonador #2.1.2.4.3 팻 조작 UI 연동 class SGuildDataMgr; class STitleMgr; // 2012. 4. 3 - marine 호칭매니저 class SGameUIMgr { protected: SGame* m_pGame; public: virtual void Process( DWORD dwTime ) {} void SetGame( SGame* pGame ) { m_pGame = pGame; } virtual void ResetInfo(); bool ProcMsgAtStatic( struct SGameMessage* pMsg ); protected: bool SendGameInterfaceMsg( struct SGameMessage * game_msg ); bool SendMsg( const struct TS_MESSAGE *msg ); public: SGameUIMgr() : m_pGame( NULL ) {} virtual ~SGameUIMgr() { m_pGame = NULL; } }; class SGameUIInstance { public: enum UI_MGR_TYPE { RAID_MGR = 0, PARTY_MGR, GUILD_MGR, FRIEND_MGR, CUT_MGR, TRADE_MGR, STORAGE_MGR, MOTION_MGR, PLAYERINFO_MGR, INVENTORY_MGR, CREATURESLOT_MGR, SKILLSLOT_MGR, CREATURESKILLSLOT_MGR, PET_MGR, ///< 팻 메니저 // sonador #2.1.2.4.3 팻 조작 UI 연동 PETSKILL_MGR, ///< 팻 스킬 메니저 // sonador #2.1.2.4.3 팻 조작 UI 연동 GUILDDATA_MGR, TITLE_MGR, UI_MGR_MAX, }; private: SGameUIMgr* m_pMgrList[UI_MGR_MAX]; public: SGameUIMgr* GetUIMgr( UI_MGR_TYPE type ) const; void SetGame( SGame* pGame ); public: void Process( DWORD dwTime ); void ResetInfoMgr(); protected: SGameUIInstance(); public: static SGameUIInstance& GetInstance(); virtual ~SGameUIInstance(); }; #define GameUIMgrInstance SGameUIInstance::GetInstance()