Files
2022-10-26 12:25:11 +08:00

206 lines
5.0 KiB
Objective-C

#ifndef __UIQUESTCOMMONFORWARD_H__
#define __UIQUESTCOMMONFORWARD_H__
//------------------------------------------------------------------------------
/**
@class uiQuestCommonForward
interface for Item Composite
(C) 2005 y2jinc
*/
#include "uiBase.h"
#include "uiQuestCommonForward_def.h"
#include "FTextParser.h"
#include "FTextSentence.h"
#include "FTextRender.h"
#include "globalfunc.h"
#include "interfacemanager.h"
class uiQuestMan;
#define MAX_QUEST_LIST_LINE 12
struct sFORWARD_INFO
{
eNPC_TYPE type;
};
class uiQuestCommonForward :
public uiBase
{
enum eDIALOG_POS
{
eDLG_BTN_JOB,
eDLG_BTN_TAB,
#ifdef _NA_003027_20111013_HONOR_SYSTEM
eDLG_TXT_INIT_DATE,
#endif //_NA_003027_20111013_HONOR_SYSTEM
eDLG_BTN_EXIT,
eDLG_LST_QUEST,
#ifdef _GS_ADD_QUEST_SCROLL_1143
eDLG_SCR_QUEST,
#endif//_GS_ADD_QUEST_SCROLL_1143
DIALOG_MAX,
};
enum
{
kAcceptQuest = 0,
kCantAcceptLevel,
kCantAcceptDailyQuestMaxCount,
kCompletedDailyQuestMaxCount,
kCantAcceptGuildDailyQuestMaxCount,
kCompletedGuildDailyQuestMaxCount,
};
public:
uiQuestCommonForward(InterfaceManager *pUIMan);
virtual ~uiQuestCommonForward();
//--------------------------------------------------------------------------
// init/release
//
public:
virtual void Init(CDrawBase* pDrawBase);
virtual void Release();
void InitControls();
bool CheckControls();
//--------------------------------------------------------------------------
// helper/comms.
//
public:
uiQuestMan* GetManager();
//--------------------------------------------------------------------------
// functions
//
public:
void ClearInfo();
void clickBtnJob(POSTYPE pos);
#ifdef _NA_008559_20151103_QUEST_AUTO_ACCEPT_PAGE_FUNC_ADD
void AutoclickFirstQuest();
bool AutoFirstRewardQuest();
#endif // _NA_008559_20151103_QUEST_AUTO_ACCEPT_PAGE_FUNC_ADD
protected:
void initInfo();
void initQuestInfo();
void registerConversation();
void registerMissionList();
void registerRewardList();
#ifdef _NA_003027_20111013_HONOR_SYSTEM
void registerDailyQuestInitDate();
#endif //_NA_003027_20111013_HONOR_SYSTEM
void updateInfo();
void hideAllBtn();
void clickList();
void UpdateMouseWheel();
void DownScroll(int nRange=1);
void UpScroll(int nRange=1);
void registerScrollRange();
//--------------------------------------------------------------------------
// dialog functions
//
public:
protected:
virtual void OnShowWindow( BOOL val );
virtual void OnRenderSolarDialog();
virtual void OnUpdateSolarDialog();
protected:
CControlWZ * getControl( POSTYPE AtPos );
POSTYPE getCtrlIDToPos( WzID wzId );
static WzID m_wzId[DIALOG_MAX];
//--------------------------------------------------------------------------
// procedure
//
public:
virtual void MessageProc( SI_MESSAGE * pMessage ); // Pure
//virtual void UpdatePosition();
virtual VOID MouseOver_MsgProc( SI_MESSAGE * pMessage );
void renderTooltip();
private:
// control property
UI_CONTROL_STATIC_PROPERTY(Title, StrToWzID("T001"));
UI_CONTROL_STATIC_PROPERTY(Conversation, StrToWzID("T003"));
UI_CONTROL_LIST_PROPERTY(QuestList, StrToWzID("L001"));
CCtrlButtonWZ * m_pBTN_Tab;
CCtrlButtonWZ * m_pBTN_Job;
//--------------------------------------------------------------------------
// member vars
//
private:
BOOL m_bInitControls;
ItemUnitRenderer * m_pItemUnitRenderer;
TCHAR m_szText[INTERFACE_STRING_LENGTH];
TCHAR m_szResult[INTERFACE_STRING_LENGTH];
std::vector<sFORWARD_INFO> m_VecForward;
FTextParser m_FTextParser;
FTextSentence m_FTextSentence;
FTextRender m_FTextRender;
CCtrlVScrollWZ* m_pScroll;
};
//------------------------------------------------------------------------------
/**
*/
inline
POSTYPE
uiQuestCommonForward::getCtrlIDToPos( WzID wzId )
{
for( POSTYPE i = 0 ; i < DIALOG_MAX ; ++i )
{
if( m_wzId[i] == wzId )
{
return i;
}
}
return DIALOG_MAX;
}
//------------------------------------------------------------------------------
/**
*/
inline
CControlWZ *
uiQuestCommonForward::getControl( POSTYPE AtPos )
{
assert( AtPos < DIALOG_MAX );
return GetControlWZ( m_wzId[AtPos] );
}
//------------------------------------------------------------------------------
/**
*/
inline
bool
uiQuestCommonForward::CheckControls()
{
if (!this->m_bInitControls)
{
assert ("Unknown controls!!");
return false;
}
return true;
}
//------------------------------------------------------------------------------
#endif // __UIQUESTCOMMONFORWARD_H__