/* ========================================================================== * ¸ñ Àû : * ÀÛ ¼º ÀÚ : ±è°¡¶÷ * ÀÛ ¼º ÀÏ : 2006-12-21 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "Chat_Common.h" enum eWINPOSIDX { CHATWIN_POS = 0, /// hold ECHATWIN1_POS, ECHATWIN2_POS, ECHATWIN3_POS, HEROSTATWIN_POS, /// hold HEROINFOWIN_POS, TARGETWIN_POS, INVENWIN_POS, BAGWIN1_POS, BAGWIN2_POS, BAGWIN3_POS, SKILLWIN_POS, OPTWIN_POS, MINIMAPWIN_POS, CQUICK_POS, /// hold or hide RQUICK_POS, /// hold or hide FSCQUICK_POS, /// hold or hide FSRQUICK_POS, /// hold or hide PARTYWIN_POS, PARTYSTATWIN1_POS, PARTYSTATWIN2_POS, PARTYSTATWIN3_POS, PARTYSTATWIN4_POS, PARTYSTATWIN5_POS, PARTYSTATMINIWIN1_POS, PARTYSTATMINIWIN2_POS, PARTYSTATMINIWIN3_POS, PARTYSTATMINIWIN4_POS, PARTYSTATMINIWIN5_POS, FRIENDWIN_POS, TAROTCON_POS, SELLWIN_POS, LOOTWIN_POS, QUESTWIN_POS, SQUESTWIN_POS, DISJOINT_POS, ENHANCEDWIN_POS, PUTCARD_POS, SOCIALWIN_POS, TITLEWIN_POS, GUILDWIN_POS, THEMESTATEWIN_POS, TODAYWORDWIN_POS, ITEMMIXWIN_POS, MAILWIN_POS, PARTYUNIONWIN_POS, PARTYUNIONSMALLWIN_POS, CASHFREEMOVE_POS, TWITTER_POS, CQUICK_EXTRA1_POS, /// hold or hide RQUICK_EXTRA1_POS, /// hold or hide CQUICK_EXTRA2_POS, /// hold or hide RQUICK_EXTRA2_POS, /// hold or hide SUMMON_POS, POS_END, }; class cBaseObject; enum eMSGBox_Event; class cUIWindow; class cNpcBackWindow; class cChatManager; class cChatWindow; class cTargetWindow; class cHeroInfoWindow; class cCastingBar; class cDestroyWarningWindow; class cDropWarningWindow; class cHeroStateWindow; class cNpcWindow; class cNpcStoreWindow; class cInventoryWindow; class cBagWindow; class cWareHouseWindow; class cWareHouseBagWindow; class cItemCountWindow; class cItemMsgWindow; class cTradeWindow; class cSkillWindow; class cBuffWindow; class cDragWindow; class cMenuButtonWindow; class cMiniMapWindow; class cOptionWindow; class cSmallMiniMapWindow; class cColumnQuickSlot; class cRowQuickSlot; class cFriendWindow; class cTarotWindow; class cTarotControlWindow; class cUserSellWindow; class cItemTipWindow; class cSkillTipWindow; class cBuffToolTipWindow; class cSimpleTipWindow; class cExitWindow; class cExitMsgWindow; class cLootingWindow; class cRevivalWindow; class cPartyWindow; class cPartyStateWindow; class cPartyStateMiniWindow; class cPartyMenu; class cPartyDivideMenu; class cMoneyWindow; class cQuestWindow; class cNpcRewardWindow; class cNpcDisjointWindow; class cEnhancedWindow; class cQuestSimpleWindow; class cMoneyWindow; class cPutCardWindow; class cDuelMsgWindow; class cDuelWindow; class cCardBookWindow; class cChatExtraWindow; class cFSColumnQuickSlot; class cFSRowQuickSlot; class cSocialWindow; class cDMScoreWindow; class cDMResultWindow; class cDMMsgWindow; class cDMRevivalWindow; class cDMRankingListWindow; class cChatButtonWindow; class cTitleWindow; class cMenuHeroWindow; class cMenuCommuityWindow; class cMenuOptionWindow; class cMenuLifeWindow; class cGuildWindow; class cChatTipWindow; class cRButtonMenuWindow; class cGuildButtonWindow; class cGuildMarkWindow; class cTodayWordWindow; class cItemMixWindow; class cNpcDealWindow; class cMailWindow; class cPartyUnionWindow; class cPartyUnionSmallWindow; class cUnionDragWindow; class cThemeEnterWindow; class cThemeStateWindow; class cQuestTipWindow; class cSkillPreviewWindow; class cShortcutWindow; class cBoardWindow; class cDiceWindow; class cTutorialExitWindow; class cNpcTutorialWindow; class cMoveMsgWindow; class cItemReceiptWindow; class cItemMallWindow; class cTwitterWindow; class cTwitterRegisterWindow; class cCamaelWindow; class cMegaphoneWindow; class cCashFreeMoveWindow; class cThemeResetWindow; class cItemDivideWindow; class cLookWindow; //class cCertifyWindow; class cSummonWindow; enum eItemTry; enum eMoneyType; /// save window pos struct struct sWindowPosHeader { unsigned short version; unsigned int dataCount; }; struct sWindowPosData { unsigned long index; NiPoint2 pos; unsigned char showFlag; // 0: hide, 1: show, 2: holdView }; struct sChatWinOption { bool checkNormal; bool checkParty; bool checkGuild; bool checkShout; bool checkTrade; bool checkWhisper; bool checkSystem; bool checkMegaPhone; }; struct sInvenWinOption { bool showBag1; bool showBag2; bool showBag3; }; struct sSkillWinOption { bool showStepListWin; sSkillWinOption() { showStepListWin = true; } }; struct sMiniMapWinOption { bool showHelper; bool showQuestView; }; struct sPartyStateOption { unsigned char showFlag; // 0 : stateWindow, 1 : stateMiniWindow, 2 : hide sPartyStateOption() { showFlag = 0; } }; struct sQuestOption { bool infoViewFlag; // 0 : ²¨Áü 1: ÄÑÁü sQuestOption() { infoViewFlag = false; } }; struct sMoveLockOption { bool chatLock; bool partyLock; sMoveLockOption() { chatLock = false; partyLock = false; } }; struct sTitleWinOption { long titleIdxArr[5]; sTitleWinOption() { for( int i = 0; i < 5; i++ ) titleIdxArr[i] = -1; } }; struct sWindowOptCharacter { unsigned short version; unsigned int questCount; }; /// class cGameUIManager { static cGameUIManager* mpSingleton; public: cGameUIManager(); ~cGameUIManager(); void Init(); void Exit(); void Open(); void Close(); void Process( unsigned long deltaTime, unsigned long accumTime ); void InitHeroInfo(); void UpdateHeroInfo(); /// ¸ðµç ½ºÅÈÁ¤º¸ °»½Å void UpdateHeroHPMP(); /// HP,MP¸¸ °»½Å void UpdateExpSxp(); void UpdateRecovery(); void UpdateSkillPoint(); void UpdateMinimap(); /// ³×Æ®¿öÅ© void ReqFinish( bool exitEvent ); // ij¸¯ÅÍ ¼±ÅÃÀ¸·Î º¯°æ void SendGameOut(); // °ÔÀÓ Á¾·á ¿äû void SendDisConnect(); void NetLockParty( int lockTry ); /// ÆÄƼ¿Í °ü·ÃÀÖ´Â ¸ðµç UI LOCK void NetUnLockParty( int lockTry ); /// °¢Á¾ À©µµ¿ìÀÇ »óÅ Àüȯ ÇÔ¼öµé.. void OnFocusChatWindow( unsigned long key, LPCTSTR addstring = _T("") ); bool IsDuelMode() { return mDuelMode; } void SetDuelMode( bool mode ); /// hero »óÅ¿¡ µû¸¥ ui ´Ý±â void HideUIByDie(); void HideUIByPushPull(); /// ¾ÆÀÌÅÛ °ü·Ã ¼¼Æ® À©µµ¿ì ´Ý±â(Á¶ÇÕâ, °­È­Ã¢, Ä«µåÀåÂøÃ¢) void HideItemSetWindow( cUIWindow* exceptWin ); /// void ToggleGameUI(); void ToggleOptionWindow(); void ToggleHeroInfoWindow(); void ToggleInventoryWindow(); void ToggleSmallMiniMapWindow(); void ToggleFriendWindow(); void ToggleMiniMapWindow(); void ToggleSkillWindow(); void TogglePartyMenu(); /// ÆÄƼ¸Þ´º void TogglePartyDivideMenu(); /// ÆÄƼ ºÐ¹è¸Þ´º void ToggleBagWindow( unsigned int index ); void ToggleWareHouseBagWindow( unsigned int idx ); void ToggleQuestWindow(); void TogglePutCardWindow(); void ToggleCardBookWindow(); void ToggleSocialWindow(); void ToggleGuildWindow(); void ToggleThemeStateWindow(); void ToggleShortcutWindow(); /// ´ÜÃàŰ ¼³Á¤ À©µµ¿ì void ToggleTitleWindow(); void ToggleItemMixWindow(); void ToggleItemReceiptWindow(); void ToggleTwitterWindow(); void ToggleCamaelWindow(); void ClearPartyWindow(); /// ÆÄƼÀ©µµ¿ì void HidePartyMenu(); /// ÆÄƼ¸Þ´º void HidePartyDivideMenu(); /// ÆÄƼ ºÐ¹è¸Þ´º void HideLootingWindow(); /// ·çÆÃÀ©µµ¿ì´Ý±â - ´ÝÀ¸¸é¼­ ¼­¹ö¿¡ ÆÐŶ º¸³¿ void HideTarotControlWindow(); void HideTradeWindow(); void HideCardBookWindow(); void HideTodayWordWindow(); void HideMailWindow(); void HidePartyUnionWindow(); void HidePartyUnionSmallWindow(); void HideNpcBackWindow(); void HideMoveMsgWindow(); void HideCamaelWindow(); void ShowHeroInfoWindow(); void ShowFriendWindow(); void ShowOptionWindow(); void ShowLootingWindow(); /// ¾ÆÀÌÅÛ ½Àµæ »óÀÚ À©µµ¿ì void ShowRevivalWindow(); /// ºÎȰ À©µµ¿ì void ShowTarotWindow( unsigned char page ); /// Ÿ·Î°³¼³, ¼³Á¤ À©µµ¿ì void ShowTarotControlWindow(); void ShowItemCountWindow( eMSGBox_Event eventtype, unsigned long slotIndex0, unsigned long slotIndex1 ); void ShowItemCountWindow( eMSGBox_Event eventtype, unsigned long itemIndex ); void ShowItemCountWindow( eMSGBox_Event eventtype, unsigned long slotIndex, unsigned long itemIndex, unsigned long maxValue, unsigned long price ); void ShowMoneyWindow( eMoneyType type, eMSGBox_Event eventtype, unsigned short slotIndex = USHRT_MAX ); void ShowMoneyModifyWindow( eMoneyType type, eMSGBox_Event eventtype, unsigned short slotIndex = USHRT_MAX ); void ShowNpcStoreWindow( unsigned long npcIndex ); void ShowSkillWindow( bool backup = false ); void ShowExitWindow(); void ShowTutorialExitWindow(); void ShowQuestWindow(); void ShowNpcDisjointWindow(); void ShowCardBookWindow(); void ShowColumnMonSlot(); void ShowGuildWindow(); void ShowNpcTarotWindow( unsigned long* tarotArr, unsigned long price, unsigned long* spreadArr, short size ); void ShowTodayWordWindow(); void ShowNpcDealWindow(); void ShowPartyUnionWindow(); void ShowPartyUnionSmallWindow(); void ShowThemeStateWindow(); void ShowSkillPreviewWindow( unsigned long jobIndex1, unsigned long jobIndex2 ); void ShowNpcBackWindow(); void ShowMoveMsgWindow(); void ShowReceiptWindow(); void ShowSocialWindow(); void ShowEnhanceWindow(); void ShowCamaelWindow(); void ShowInventory(); void ShowWarehouse(); void ShowItemDumpAskWindow( unsigned short slotIndex ); void ShowItemBuyAskWindow( unsigned long itemIndex, unsigned int count ); void ShowItemSellAskWindow( unsigned short slotIndex, unsigned int count ); void ShowItemUserSellBuyAskWindow( unsigned short slotIndex, unsigned long itemIndex, unsigned short count, unsigned long price ); void ShowItemNpcDealBuyAskWindow( unsigned long slotIndex, unsigned long itemIndex, unsigned short count, unsigned long price ); void ShowItemPutCard( eMSGBox_Event eventtype, unsigned short slotIndex0, unsigned short putSlot, unsigned long itemIndex ); void ShowItemCardBook( eMSGBox_Event eventtype, unsigned short slotIndex0, unsigned short slotIndex1, unsigned long itemIndex ); bool IsAccessPartyObject ( int partyIdx ); /// ·çÆÃÀ©µµ¿ì¿¡ À̺¥Æ® ÁÖ±â void EventLootingWindow(); void UpdateInvenWithUI( cUIWindow* win, bool backup = true ); // Àκ¥Å丮¿Í ui ÀÇ À§Ä¡ Á¶Á¤ void UpdateInvenWithWare(); // Àκ¥Å丮¿Í â°í ui À§Ä¡ Á¶Á¤ // npc °ü·Ã À©µµ¿ì ¿­±â void OpenNpcUI( unsigned long npcIndex ); cBaseObject* GetPartyObject( int i ); cInventoryWindow* GetInventoryWindow() { return mpInventoryWindow; } cTradeWindow* GetTradeWindow() { return mpTradeWindow; } cItemTipWindow* GetItemTip() { return mpItemTip; } cItemTipWindow* GetEquipItemTip() { return mpEquipItemTip; } cSkillTipWindow* GetSkillTip() { return mpSkillTip; } cBuffToolTipWindow* GetBuffTip() { return mpBuffTip; } cSimpleTipWindow* GetSimpleTip() { return mpSimpleTip; } cQuestTipWindow* GetQuestTip() { return mpQuestTip; } cBuffWindow* GetBuffWindow() { return mpBuffWindow; } cBuffWindow* GetDeBuffWindow() { return mpDeBuffWindow; } cBuffWindow* GetCashBuffWindow() { return mpCashBuffWindow; } cSkillWindow* GetSkillWindow() { return mpSkillWindow; } cTargetWindow* GetTargetWindow() { return mpTargetWindow; } cHeroInfoWindow* GetHeroInfoWindow() { return mpHeroInfoWindow; } cHeroStateWindow* GetHeroStateWindow() { return mpHeroStateWindow; } cPartyWindow* GetPartyWindow() { return mpPartyWindow; } cPartyMenu* GetPartyMenu() { return mpPartyMenu; } cPartyDivideMenu* GetPartyDivideMenu() { return mpPartyDivideMenu; } cTarotWindow* GetTarotWindow() { return mpTarotWindow; } cTarotControlWindow* GetTarotControlWindow() { return mpTarotControlWindow; } cLootingWindow* GetLootingWindow() { return mpLootingWindow; } cSmallMiniMapWindow* GetSmallMinimapWindow() { return mpSmallMiniMapWindow; } cMiniMapWindow* GetMinimapWindow() { return mpMiniMapWindow; } cFriendWindow* GetFriendWindow() { return mpFriendWindow; } cMenuButtonWindow* GetMenuButtonWindow() { return mpMenuButtonWindow; } cMenuOptionWindow* GetMenuOptionWindow() { return mpMenuOption; } cMenuLifeWindow* GetMenuLifeWindow() { return mpMenuLife; } cMenuHeroWindow* GetMenuHeroWindow() { return mpMenuHero; } cRevivalWindow* GetReVivalWindow() { return mpRevivalWindow; } cNpcStoreWindow* GetNpcStore() { return mpNpcStoreWindow; } cWareHouseWindow* GetWareHouseWindow() { return mpWareHouseWindow; } cMoneyWindow* GetMoneyWindow() { return mpMoneyWindow; } cQuestWindow* GetQuestWindow() { return mpQuestWindow; } cNpcWindow* GetNpcWindow() { return mpNpcWindow; } cNpcRewardWindow* GetNpcRewardWindow() { return mpNpcRewardWindow; } cNpcDisjointWindow* GetNpcDisjointWindow() { return mpNpcDisjointWindow; } cNpcTutorialWindow* GetNpcTutorialWindow() { return mpNpcTutorialWindow; } cExitWindow* GetExitWindow() { return mpExitWindow; } cExitMsgWindow* GetExitMsgWindow() { return mpExitMsgWindow; } cEnhancedWindow* GetEnhancedWindow() { return mpEnhancedWindow; } cQuestSimpleWindow* GetQuestSimpleWindow() { return mpQuestSimpleWindow; } cUserSellWindow* GetUserSellWindow() { return mpUserSellWindow; } cItemMsgWindow* GetItemMsgWindow() { return mpItemMsgWindow; } cItemCountWindow* GetItemCountWindow() { return mpItemCountWindow; } cPutCardWindow* GetPutCardWindow() { return mpPutCardWindow; } cDuelMsgWindow* GetDuelMsgWindow() { return mpDuelMsgWindow; } cDuelWindow* GetDuelWindow() { return mpDuelWindow; } cCardBookWindow* GetCardBookWindow() { return mpCardBookWindow; } cSocialWindow* GetSocialWindow() { return mpSocialWindow; } cDMScoreWindow* GetDMScoreWindow() { return mpDMScoreWindow; } cDMResultWindow* GetDMResultWindow() { return mpDMResultWindow; } cDMRankingListWindow* GetDMRankingListWindow() { return mpDMRankingListWindow; } cChatButtonWindow* GetChatButtonWindow() { return mpChatButtonWindow; } cChatWindow* GetChatWindow() { return mpChatWindow; } cTitleWindow* GetTitleWindow() { return mpTitleWindow; } cGuildWindow* GetGuildWindow() { return mpGuildWindow; } cFSColumnQuickSlot* GetFSColumnQuickSlot() { return mpFSColumnQuickSlot; } cFSRowQuickSlot* GetFSRowQuickSlot() { return mpFSRowQuickSlot; } cGuildButtonWindow* GetGuildButtonWindow() { return mpGuildButtonWindow; } cGuildMarkWindow* GetGuildMarkWindow() { return mpGuildMarkWindow; } cTodayWordWindow* GetTodayWordWindow() { return mpTodayWordWindow; } cItemMixWindow* GetItemMixWindow() { return mpItemMixWindow; } cNpcDealWindow* GetNpcDealWindow() { return mpNpcDealWindow; } cMailWindow* GetMailWindow() { return mpMailWindow; } cPartyUnionWindow* GetPartyUnionWindow() { return mpUnionWindow; } cPartyUnionSmallWindow* GetPartyUnionSmallWindow() { return mpUnionSmallWindow; } cThemeEnterWindow* GetThemeEnterWindow() { return mpThemeEnterWindow; } cThemeStateWindow* GetThemeStateWindow() { return mpThemeStateWindow; } cDMMsgWindow* GetDMMsgWindow() { return mpDMMsgWindow; } cSkillPreviewWindow* GetSkillPreviewWindow() { return mpSkillPreviewWindow; } cShortcutWindow* GetShortcutWindow() { return mpShortcutWindow; } cBoardWindow* GetBoardWindow() { return mpBoardWindow; } cDiceWindow* GetDiceWindow() { return mpDiceWindow; } cMoveMsgWindow* GetMoveMsgWindow() { return mpMoveMsgWindow; } cItemReceiptWindow* GetItemReceiptWindow() { return mpReceiptWindow; } cOptionWindow* GetOptionWindow() { return mpOptionWindow; } cTwitterWindow* GetTwitterWindow() { return mpTwitterWindow; } cTwitterRegisterWindow* GetTwitterRegisterWindow(){ return mpTwitterRegisterWindow; } cMegaphoneWindow* GetMegaphoneWindow() { return mpMegaphoneWindow; } cThemeResetWindow* GetThemeResetWindow() { return mpThemeResetWindow;} cItemDivideWindow* GetItemDivideWindow() { return mpItemDivideWindow; } cLookWindow* GetLookWindow() { return mpLookWindow; } // cChannelMoveWindow* GetChannelMoveWindow() { return mpChannelMoveWindow; } // cCertifyWindow* GetCertifyWindow() { return mpCertifyWindow; } cSummonWindow* GetSummonWindow() { return mpSummonWindow; } cColumnQuickSlot* GetColumnQuickSlot( int type ); cRowQuickSlot* GetRowQuickSlot( int type ); cBagWindow* GetBagWindow( unsigned int i ) { return mpBagWindow[i]; } cWareHouseBagWindow* GetWareHouseBagWindow( unsigned int i) { return mpWareHouseBagWindow[i]; } cPartyStateWindow* GetPartyStateWindow( unsigned int idx ); cPartyStateMiniWindow* GetPartyStateMiniWindow( unsigned int idx ); cRButtonMenuWindow* GetRButtonMenuWindow() { return mpRButtonMenuWindow; } cCamaelWindow* GetCamaelWindow(){ return mpCamaelWindow; } cCashFreeMoveWindow* GetCashFreeMoveWindow(){ return mpCashFreeMoveWindow; } void ApplyWinodwOption_CharacterQuest(); void ApplyWinodwOption_CharacterShortcut(); public: /// ´ÜÀÏü¸¦ ¸®ÅÏ static cGameUIManager* GetSingleton(); protected: /// window player save pos bool LoadWindowPos( const cString& pathName ); void SaveWindowPos( const cString& pathName ); bool LoadWindowOption_Character( const cString& pathName ); void SaveWindowOption_Character( const cString& pathName ); void UpdateWindowOption_Character(); void ApplyWindowPos(); void UpdateWindowPos(); protected: /// äÆÃ °ü¸®ÀÚ cChatManager* mpChatManager; /// äÆÃ À©µµ¿ì cChatWindow* mpChatWindow; /// äÆÃ È®Àå À©µµ¿ì cChatExtraWindow* mpChatExtraWindow[3]; /// Ÿ°Ù À©µµ¿ì cTargetWindow* mpTargetWindow; /// Hero Á¤º¸ À©µµ¿ì cHeroInfoWindow* mpHeroInfoWindow; /// Hero »óÅ À©µµ¿ì ( È­¸é ¿ÞÂÊ »ó´Ü ) cHeroStateWindow* mpHeroStateWindow; /// Npc À©µµ¿ì cNpcBackWindow* mpNpcBackWindow; cNpcWindow* mpNpcWindow; cNpcStoreWindow* mpNpcStoreWindow; /// Àκ¥Å丮 À©µµ¿ì cInventoryWindow* mpInventoryWindow; /// °¡¹æ À©µµ¿ì cBagWindow* mpBagWindow[3]; /// â°í À©µµ¿ì cWareHouseWindow* mpWareHouseWindow; cWareHouseBagWindow* mpWareHouseBagWindow[3]; cMoneyWindow* mpMoneyWindow; /// ¾ÆÀÌÅÛ cItemCountWindow* mpItemCountWindow; /// ¾ÆÀÌÅÛ ¸Þ¼¼Áö À©µµ¿ì cItemMsgWindow* mpItemMsgWindow; /// °Å·¡ À©µµ¿ì cTradeWindow* mpTradeWindow; /// ½ºÅ³ À©µµ¿ì cSkillWindow* mpSkillWindow; cBuffWindow* mpBuffWindow; cBuffWindow* mpDeBuffWindow; cBuffWindow* mpCashBuffWindow; /// µå·¡±× À©µµ¿ì cDragWindow* mpDragWindow; /// ÆÁ À©µµ¿ì cItemTipWindow* mpItemTip; cItemTipWindow* mpEquipItemTip; cSkillTipWindow* mpSkillTip; cBuffToolTipWindow* mpBuffTip; cSimpleTipWindow* mpSimpleTip; cChatTipWindow* mpChatItemTip; cQuestTipWindow* mpQuestTip; /// ÇÏ´Ü ¹öư À©¤§¿ì cMenuButtonWindow* mpMenuButtonWindow; /// ÇÏ´Ü ¸Þ´º À©µµ¿ì cMenuHeroWindow* mpMenuHero; cMenuCommuityWindow* mpMenuCommu; cMenuOptionWindow* mpMenuOption; cMenuLifeWindow* mpMenuLife; /// ¹Ì´Ï¸Ê À©µµ¿ì cMiniMapWindow* mpMiniMapWindow; /// ij½ºÆÃ °ÔÀÌÁö cCastingBar* mpCastingBar; /// ¿É¼Ç À©µµ¿ì cOptionWindow* mpOptionWindow; /// small ¹Ì´Ï¸Ê À©µµ¿ì cSmallMiniMapWindow* mpSmallMiniMapWindow; /// Ä£±¸ À©µµ¿ì cFriendWindow* mpFriendWindow; /// Äü½½·Ô (Çà) cColumnQuickSlot* mpColumnQuickSlot[3]; /// Äü½½·Ô (¿­) cRowQuickSlot* mpRowQuickSlot[3]; /// FS Äü½½·Ô cFSColumnQuickSlot* mpFSColumnQuickSlot; /// FS Äü½½·Ô cFSRowQuickSlot* mpFSRowQuickSlot; /// Ÿ·Ô Á¡Áý ¸ÞÀÎ.. cTarotWindow* mpTarotWindow; /// Ÿ·Ô Á¡Áý °ü¸® À©µµ¿ì ( °³¼³ÀÚ ) cTarotControlWindow* mpTarotControlWindow; /// ³ëÁ¡»ó °³¼³ À©µµ¿ì cUserSellWindow* mpUserSellWindow; /// °ÔÀÓ Á¾·á À©µµ¿ì cExitWindow* mpExitWindow; cTutorialExitWindow* mpTutorialExitWindow; cExitMsgWindow* mpExitMsgWindow; /// ¾ÆÀÌÅÛ ½Àµæ »óÀÚ À©µµ¿ì cLootingWindow* mpLootingWindow; /// ºÎȰ À©µµ¿ì cRevivalWindow* mpRevivalWindow; /// ÆÄƼ °ü¸® À©µµ¿ì cPartyWindow* mpPartyWindow; /// ÆÄƼ »óÅ À©µµ¿ì cPartyStateWindow* mpPartyStateWindow[5]; /// ÆÄƼ »óÅ Mini À©µµ¿ì cPartyStateMiniWindow* mpPartyStateMiniWindow[5]; /// ÆÄƼ ¸Þ´º cPartyMenu* mpPartyMenu; /// ÆÄƼ ºÐ¹è ¸Þ´º cPartyDivideMenu* mpPartyDivideMenu; /// Äù½ºÆ® À©µµ¿ì cQuestWindow* mpQuestWindow; /// npc º¸»ó Á¤º¸ À©µµ¿ì cNpcRewardWindow* mpNpcRewardWindow; /// npc ºÐÇØ À©µµ¿ì cNpcDisjointWindow* mpNpcDisjointWindow; /// ¾ÆÀÌÅÛ °­È­ À©µµ¿ì cEnhancedWindow* mpEnhancedWindow; /// Äù½ºÆ® °£·«Á¤º¸ Ãâ·Â À©µµ¿ì cQuestSimpleWindow* mpQuestSimpleWindow; /// Ä«µåÀåÂø À©µµ¿ì cPutCardWindow* mpPutCardWindow; /// °áÅõ À©µµ¿ì cDuelMsgWindow* mpDuelMsgWindow; cDuelWindow* mpDuelWindow; bool mDuelMode; /// Ä«µå Ä÷º¼Ç ºÏ cCardBookWindow* mpCardBookWindow; /// »çȸ À©µµ¿ì cSocialWindow* mpSocialWindow; /// µ¥½º¸ÅÄ¡ Á¡¼ö À©µµ¿ì cDMScoreWindow* mpDMScoreWindow; cDMRankingListWindow* mpDMRankingListWindow; /// µ¥½º¸ÅÄ¡ °á°ú À©µµ¿ì cDMResultWindow* mpDMResultWindow; /// cDMMsgWindow* mpDMMsgWindow; /// cChatButtonWindow* mpChatButtonWindow; /// ȣΰü¸® À©µµ¿ì cTitleWindow* mpTitleWindow; /// ±æµå Á÷À§ ¹öư À©µµ¿ì cGuildButtonWindow* mpGuildButtonWindow; /// ±æµå°ü¸® À©µµ¿ì cGuildWindow* mpGuildWindow; /// ±æµå¸¶Å© µî·Ï À©µµ¿ì cGuildMarkWindow* mpGuildMarkWindow; /// cRButtonMenuWindow* mpRButtonMenuWindow; /// ¿À´ÃÀÇ ÇѸ¶µð À©µµ¿ì cTodayWordWindow* mpTodayWordWindow; /// ¾ÆÀÌÅÛ Á¶ÇÕ À©µµ¿ì cItemMixWindow* mpItemMixWindow; /// npc ÆÇ¸Å´ëÇà À©µµ¿ì cNpcDealWindow* mpNpcDealWindow; /// ¿ìÆí À©µµ¿ì cMailWindow* mpMailWindow; /// ÆÄƼ ¿¬ÇÕ À©µµ¿ì cPartyUnionWindow* mpUnionWindow; cPartyUnionSmallWindow* mpUnionSmallWindow; /// ¿¬ÇÕ¿ë µå·¡±× À©µµ¿ì cUnionDragWindow* mpUnionDragWindow; cThemeEnterWindow* mpThemeEnterWindow; /// Å׸¶ ´øÁ¯ »óÅ Á¤º¸ À©µµ¿ì cThemeStateWindow* mpThemeStateWindow; /// ½ºÅ³ Âï¾îº¸±â À©µµ¿ì cSkillPreviewWindow* mpSkillPreviewWindow; /// ´ÜÃàŰ ¼³Á¤ À©µµ¿ì cShortcutWindow* mpShortcutWindow; /// °Ô½ÃÆÇ À©µµ¿ì cBoardWindow* mpBoardWindow; /// ÁÖ»çÀ§ ±¼¸®±â À©µµ¿ì cDiceWindow* mpDiceWindow; // Æ©Å丮¾óbook À©µµ¿ì cNpcTutorialWindow* mpNpcTutorialWindow; /// µû¶ó°¡±â/ã¾Æ°¡±â ¸Þ½ÃÁö À©µµ¿ì cMoveMsgWindow* mpMoveMsgWindow; /// ¾ÆÀÌÅÛ ¼ö·ÉÇÔ cItemReceiptWindow* mpReceiptWindow; // ¾ÆÀÌÅÛ ¸ô cItemMallWindow* mpItemMallWindow; /// Æ®À§ÅÍ cTwitterWindow* mpTwitterWindow; cTwitterRegisterWindow* mpTwitterRegisterWindow; /// Ä«¸¶¿¤ À©µµ¿ì cCamaelWindow* mpCamaelWindow; /// ¸Þ°¡Æù À©µµ¿ì cMegaphoneWindow* mpMegaphoneWindow; /// ij½Ã ¾ÆÀÌÅÛ - ÀÚÀ¯À̵¿ ÁÖ¹®¼­ cCashFreeMoveWindow* mpCashFreeMoveWindow; /// Å׸¶´øÀü ±Í¼Ó ÃʱâÈ­ À©µµ¿ì cThemeResetWindow* mpThemeResetWindow; /// ¾ÆÀÌÅÛ ºÐ¹è À©µµ¿ì cItemDivideWindow* mpItemDivideWindow; /// »ìÆìº¸±âÀ©µµ¿ì cLookWindow* mpLookWindow; /// ÀÎÁõ À©µµ¿ì // cCertifyWindow* mpCertifyWindow; /// ÆíÀÇ ±â´É ¼Òȯ À©µµ¿ì cSummonWindow* mpSummonWindow; /// save window pos typedef tPointerHashMap cSaveWindowPos; typedef tArray cSaveQuestArr; cSaveWindowPos mSaveWindowInfo; sChatWinOption mChatWinOption[4]; sInvenWinOption mInvenWinOption; sMiniMapWinOption mMiniMapWinOption; sPartyStateOption mPartyStateOption; sQuestOption mQuestOption; sMoveLockOption mMoveLockOption; sSkillWinOption mSkillWinOption; sTitleWinOption mTitleOption; int mChatBoxMaxRow; int mExtraChatBoxMaxRow[3]; float mMiniWinPer; unsigned long mQuestCharacterIdx; cSaveQuestArr mQuestCheckArr; typedef tHashSet cSaveQuestSet; cSaveQuestSet mClosedCategorySet; cSaveQuestSet mClosedSimpleCategorySet; typedef tHashMap< int, int > cShortcutMap; cShortcutMap mShortcutMap; }; inline cPartyStateWindow* cGameUIManager::GetPartyStateWindow( unsigned int idx ) { if( idx >= 0 && idx < 5 ) return mpPartyStateWindow[idx]; else return 0; } inline cPartyStateMiniWindow* cGameUIManager::GetPartyStateMiniWindow( unsigned int idx ) { if( idx >= 0 && idx < 5 ) return mpPartyStateMiniWindow[idx]; else return 0; } inline cGameUIManager* cGameUIManager::GetSingleton() { return mpSingleton; } #define GAMEUI cGameUIManager::GetSingleton()