/* ========================================================================== * ÆÄ ÀÏ : QuestWindow.h * ¸ñ Àû : * ÀÛ ¼º ÀÚ : ±è°¡¶÷ * ÀÛ ¼º ÀÏ : 2008-03-19 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "QuestDefine.h" #include "UIWindow.h" #include "Icon.h" #include "ListFolderBox.h" class cUIImage; class cIcon; class cLabel; class cTextBox; class cButton; class cCheckBox; class cQuestListFolder; enum eQuestRewardBackImg { eQUEST_REWARD_EXP_IMG, eQUEST_REWARD_SXP_IMG, eQUEST_REWARD_GOLD_IMG, eQUEST_REWARD_SP_IMG, eQUEST_REWARD_BASE_ITEM_IMG, eQUEST_REWARD_SELECT_ITEM_IMG, eQUEST_REWARD_IMG_MAX, eQUEST_REWARD_LABEL_MAX = eQUEST_REWARD_SP_IMG + 1, }; struct sRewardIcon { cIcon* icon; unsigned long index; /// ½ºÅ³ or ¾ÆÀÌÅÛ À妽º bool select; /// ¼±ÅõǾú´ÂÁö ¿©ºÎ sRewardIcon() { icon = 0; index = 0; select = false; } }; class cQuestWindow : public cUIWindow { public: cQuestWindow(); virtual ~cQuestWindow(); virtual void Open(); virtual void Close(); void Clear(); /// Äù½ºÆ® Ãß°¡ bool AddQuest( unsigned int arrIdx, unsigned long questIdx, bool complete, bool IsNewQuest = false ); /// °»½Å void SetCheck( unsigned int arrIdx, unsigned long questIdx, bool check ); void SetCompleteQuest( unsigned int arrIdx, unsigned long questIdx ); /// Äù½ºÆ® ¼³¸í ¹× Á¤º¸ ¾÷µ¥ÀÌÆ® void UpdateQuestInfo(); /// ÁøÇàÁß, ¿Ï·á°¡´É Äù½ºÆ® °¹¼ö °»½Å void UpdateCount( unsigned int progress, unsigned int complete ); void SetShowInfo( bool show ); bool IsShowInfo(); // void UpdateSelect(); void GetHideMapCategorySet( tHashSet& mapArr ); void SetHideMapCategory( unsigned long mapIndex ); protected: bool OnCreate( cUINodeProperty* pproperty ); void UpdateRect(); void OnCommand( cUINode* pcaller, unsigned int id ); void OnCheckBoxChanged( cUINode* , unsigned int ); void OnProcess( unsigned long deltaTime, unsigned long accumTime ); void OnListBoxChanged( cUINode* , unsigned int ); void OnListBoxSelected(cUINode* , unsigned int ); void OnIconHovered(cUINode* caller, unsigned int id, const cUIPos& pos ); void OnImageClicked( cUINode* , unsigned int ); void OnNetLock( int lockTry ); void OnNetUnLock( int lockTry ); void OnShow(); void OnRender( cUIFontItemKeeper* pKeeper ); bool SetQuestReward(); /// º¸»óÁ¤º¸ ¾÷µ¥ÀÌÆ® bool UpdateRewardIcon( cQuestReward* reward, sRewardIcon* icon ); void SetSelectCount( unsigned int count ); void ClearIcon(); void ClearLabels(); /// º¸»ó Á¤º¸( exp, sxp, gold, sp ÃʱâÈ­ ) protected: cQuestListFolder* mpListBox; /// º¸»óÁ¤º¸ sRewardIcon mDefaultIcon[5]; sRewardIcon mSelectIcon[5]; cLabel* mpRewardLabel[eQUEST_REWARD_LABEL_MAX]; /// exp, sxp, gold, sp ¼öÄ¡ Ç¥½Ã cLabel* mpCount; ///¼±Åà Áö±Þâ¿¡¼­ °³¼ö Ç¥½Ã /// °¹¼ö Á¤º¸ cLabel* mpCompleteCount; cLabel* mpProgressCount; /// Äù½ºÆ® Á¤º¸ ¹Ú½º cTextBox* mpDescBox; /// cButton* mpDelete; cCheckBox* mpViewInfo; // press : ÄÑÁø»óÅ no press : ²¨Áø»óÅ cUIImage* mpHighImage; cUIImage* mpLowImage; /// º¸»ó À̹ÌÁöµé ÁÂÇ¥ cUINodeSkin* mpRewordBack[eQUEST_REWARD_IMG_MAX]; cUIImage* mpRewordBackImg[eQUEST_REWARD_IMG_MAX]; bool mIsShowBackImg[eQUEST_REWARD_IMG_MAX]; /// ³²Àº½Ã°£ Ãâ·Â ¶óÀÎ int mTimeLine; unsigned long mSelectQuestIndex; }; // Äù½ºÆ®¿ë ¸®½ºÆ® Æú´õ ¹Ú½º class cPlaneObject; class cQuestListFolder : public cListFolderBox { public: cQuestListFolder(); virtual ~cQuestListFolder(); void Clear(); /// extraData¸¦ °¡Áö°íÀÖ´Â ÇÏÀ§¿­À» ã¾Æ¼­ ¸®ÅÏ - Á¢ÇôÀÖÀ¸¸é ¸®ÅÏ ¾ÈÇÔ int FindColumnByExtra( unsigned short mapIndex, int arrIndex ); /// ¼±Åà À̹ÌÁö ÁÂÇ¥ ¾÷µ¥ÀÌÆ® virtual void UpdateSelectImage(); void ShowOn( bool set ) { mShowOn = set; } protected: bool OnCreate( cUINodeProperty* pproperty ); void OnRender( cUIFontItemKeeper* pKeeper ); void UpdateRect(); private: cUINodeSkin* mpOnSkin; cPlaneObject* mpOnImage; // ÃßÀû on À̹ÌÁö bool mShowOn; };