164 lines
5.1 KiB
C++
164 lines
5.1 KiB
C++
|
|
#pragma once
|
|
|
|
//#include "SUIWnd.h"
|
|
//#include "SUIUtil.h"
|
|
//#include <vector>
|
|
|
|
class SUIDisplayInfo;
|
|
class KUIControlQuestInfoManager;
|
|
class KUIControlCheck;
|
|
|
|
class SUIQuestListWnd : public SUIWnd
|
|
{
|
|
public:
|
|
SUIQuestListWnd( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo )
|
|
: SUIWnd( pGameManager )
|
|
, m_pDisplayInfo( pDisplayInfo )
|
|
, m_nFocus( -1 )
|
|
, m_nScrollPos( 0 )
|
|
{
|
|
m_nSysMenuPosX = -99;
|
|
m_nSysMenuPosY = -99;
|
|
m_mouseX = 0;
|
|
m_mouseY = 0;
|
|
m_questInfoMgr = NULL;
|
|
m_closeButton = NULL;
|
|
m_updateRefreshTime = 0;
|
|
|
|
SUIQuestListWnd::setFirst(true);
|
|
}
|
|
|
|
virtual ~SUIQuestListWnd(); // 2011.05.17 - servantes
|
|
|
|
virtual void Process(DWORD dwTime);
|
|
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
|
|
virtual void* Perform( KID id, KArg& msg );
|
|
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
|
|
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
|
|
virtual bool InitControls( KPoint kPos );
|
|
virtual DWORD OnMouseMessage(DWORD dwMessage, int x, int y);
|
|
|
|
static bool isFirst() { return m_isFirst; }
|
|
static void setFirst(bool first) { m_isFirst = first; }
|
|
|
|
private:
|
|
|
|
std::string CoordinateQuestName( int nDifficulty, int nLimitLevel, const std::string & strQuestName );
|
|
void Refresh(bool sortCheck = false);
|
|
/// -1 이면 없앤다
|
|
void UpdateQuestInfo();
|
|
void addOpacityList();
|
|
|
|
void SetItemSlot( ItemBase::ItemCode code, int nCount, const char *szIconControl, const char *szNumberControl );
|
|
void IconFocus( int nIndex );
|
|
|
|
bool IsRewardQuest( QuestBase::QuestCode code );
|
|
void DelRewardQuest( QuestBase::QuestCode code );
|
|
/// 2011.10.31 아무것도 선택이 안되어 있을 때, 맨처음 퀘스트를 선택한다. - prodongi
|
|
void selectFirstQuest();
|
|
void selectQuest(int index);
|
|
|
|
protected:
|
|
/// 2011.09.15 - prodongi
|
|
void updateOpacity(DWORD elapsedtime);
|
|
void setChoiceCheck(char const* sectionStr, char const* controlID);
|
|
/// 2011.09.28 퀘스트 창의 투명모드 토글
|
|
void toggleOpacity();
|
|
void setOpacity(bool opacity);
|
|
void toggleChoice();
|
|
void setChoice(bool check);
|
|
/// 2011.11.03 정렬을 하면 인덱스가 바뀌기 때문에 선택된 인덱스를 재선택 해준다 - prodongi
|
|
void reselectIndexBySort();
|
|
/// 2011.11.03 controlID에서 str을 제외한 offset값을 구한다 - prodongi
|
|
int extractScrollOffset(char const* controlID, char const* str);
|
|
/// 2011.12.01 확장 - prodongi
|
|
void toggleExpansion();
|
|
void setExpansion(bool expansion);
|
|
void setAllFold(bool fold, bool refresh = true);
|
|
void toggleAllFold(bool refresh = true);
|
|
/// 2011.12.07 리스트들의 접힌 상태에 따라서 전체 접기 버튼 상태를 갱신해 준다 - prodongi
|
|
void updateAllFoldStatus();
|
|
/// 접히고 전체 퀘스트 보기 상태
|
|
void setDefaultStatus();
|
|
/// 2011.12.12 스크롤을 시작 위치로 초기화
|
|
void setScrollStartPosition();
|
|
|
|
protected:
|
|
|
|
std::vector< QuestBase::QuestCode > m_vRewardList; ///< 보상 받을 수 있는 퀘스트 리스트
|
|
|
|
size_t m_nScrollPos; ///< 스크롤바 처리
|
|
int m_nFocus;
|
|
QuestBase::QuestCode m_nQuestCode;
|
|
SUIDisplayInfo* m_pDisplayInfo;
|
|
int m_nSummaryIndex;
|
|
int m_nSysMenuPosX, m_nSysMenuPosY;
|
|
bool m_bTransparent;
|
|
int m_nDataIndex;
|
|
int m_oldDataIndex; /// 2011.09.19 - prodongi
|
|
//KRect m_BackRect;
|
|
|
|
/// 2011.09.09 - prodongi
|
|
int m_mouseX;
|
|
int m_mouseY;
|
|
sui::sOpacityMouseChecker m_opacityList;
|
|
KUIControlQuestInfoManager* m_questInfoMgr;
|
|
DWORD m_time;
|
|
KUIControlSimpleButton* m_closeButton;
|
|
bool m_isChangeInfoCheck;
|
|
AR_TIME m_updateRefreshTime;
|
|
/// 2011.12.01 타이틀 컨트롤 - prodongi
|
|
KUIControlStatic* m_titleBar;
|
|
/// 확장 상태
|
|
bool m_isExpansion;
|
|
/// nui의 원본 사이즈
|
|
KSize m_oriSize;
|
|
/// 2011.12.07 전체 접기 상태 - prodongi
|
|
bool m_isAllFoldStatus;
|
|
|
|
/// 2011.09.26 - prodongi
|
|
struct sCheckChoice
|
|
{
|
|
void init(KUIControl* wnd);
|
|
void toggle();
|
|
void setCheck(bool check);
|
|
bool m_isCheck;
|
|
KUIControl* m_wnd;
|
|
};
|
|
sCheckChoice m_checkChoice;
|
|
|
|
/// 2011.09.28 투명 모드 버튼 - prodongi
|
|
struct sOpacityButton
|
|
{
|
|
void init(KUIControlSimpleButton* wnd);
|
|
void setOpacity(bool opacity);
|
|
void toggle();
|
|
|
|
bool m_isOpacity;
|
|
KUIControlSimpleButton* m_wnd;
|
|
};
|
|
sOpacityButton m_opacityButton;
|
|
|
|
/// 2011.09.30 상세보기/월드맵 보기 버튼 설정 - prodongi
|
|
struct sDetailViewCheckButton
|
|
{
|
|
enum CHECK_TYPE { WORLDMAP, INFO, NONE };
|
|
void init(SUIWnd* parent);
|
|
void setCheck(CHECK_TYPE type, bool bCheck);
|
|
void update(DWORD elapsedtime, SGameInterface* gameInterface);
|
|
/// 퀘스트 창이 open 했을 때, 호출 되는 함수
|
|
void open(SGameInterface* gameInterface);
|
|
/// 월드맵과 인포창 중에서 어떤 창이 위에 있는지 체크
|
|
void checkTopWnd(SGameInterface* gameInterface);
|
|
|
|
KUIControlCheck* m_wndWorldMap;
|
|
KUIControlCheck* m_wndInfo;
|
|
float m_updateTime;
|
|
};
|
|
sDetailViewCheckButton m_detailViewCheckButton;
|
|
|
|
/// 2011.11.07 맨 처음 로드 榮募?것을 나타냄, 새로 받은 퀘스트는 new 설정을 해줘야 되는데,
|
|
/// 새로 받은 퀘스트인지, 처음 접속해서 받은 퀘스트인지 구분하기 위해 쓰임 - prodongi
|
|
static bool m_isFirst;
|
|
}; |