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

91 lines
1.7 KiB
C++

#pragma once
#include "solardialog.h"
#include "LimitedMapPortParser.h"
class NPCPortalDialog : public SolarDialog
{
public:
NPCPortalDialog(void);
virtual ~NPCPortalDialog(void);
// 񃧯 enum
enum ePORTAL_POS
{
PORTAL_TITLE = 0,
PORTAL_LIST,
PORTAL_BTN_EXIT,
PORTAL_BTN_OK,
PORTAL_BTN_CANCEL,
Dialog_Max
};
enum ePACKET_STATUS
{
NONE = 0,
eMOVE_VILLAGE = 1,
};
// 񃧯 virtual methods
VOID Init( CDrawBase * pDrawBase );
virtual VOID Release();
virtual VOID MessageProc( SI_MESSAGE * pMessage );
virtual VOID OnShowWindow(BOOL val);
//virtual void UpdatePosition();
public:
VOID SetCurVillageCode( CODETYPE NPCCode, MAPCODE MapCode );
VOID RegisterPoralList();
VOID SEND_CG_ZONE_VILLAGE_MOVE_SYN(MAPCODE MapCode, MONEY Fare);
MONEY GetPendingMoney();
void ClearPendingMoney();
// 񃧯 proected methods
protected:
CControlWZ * getControl( POSTYPE AtPos );
POSTYPE getCtrlIDToPos( WzID wzId );
protected:
VOID BtnClick( POSTYPE pos );
VOID RefreshPortalList();
VOID popupAskPortal(MAPCODE MapCode, MONEY Fare);
private:
CCtrlListWZ * m_pListCtrl;
CCtrlStaticWZ * m_pTitleCtrl;
const sMAPINFO * m_pVillageMapInfo;
std::vector<_sVILLAGEPORT> m_vecPoralList;
MAPCODE m_PendingMapCode;
MONEY m_PendingFare;
// 񃧯 attributes
private:
static WzID m_wzId[Dialog_Max];
};
//------------------------------------------------------------------------------
/**
*/
inline
MONEY
NPCPortalDialog::GetPendingMoney()
{
return m_PendingFare;
}
//------------------------------------------------------------------------------
/**
*/
inline
void
NPCPortalDialog::ClearPendingMoney()
{
m_PendingFare = 0;
}