158 lines
3.7 KiB
C++
158 lines
3.7 KiB
C++
#pragma once
|
|
#include "uibase.h"
|
|
#include <SCItemSlotContainer.h>
|
|
class uiPetMan;
|
|
#define MAX_LOTTO_SLOT 1 //壇瀝으몸鑒
|
|
|
|
struct LOTTO_BASE_INFO
|
|
{
|
|
DWORD wDrawNum;
|
|
BYTE arLuckyNum[LOTTO_NUM_PICKS]; //櫓쉽뵀쯤
|
|
MONEY LottoHeim; //꽈튿샘쏜
|
|
DWORD dwWinnerNum; //寧된쉽삿쉽諒
|
|
MONEY WinnerHeim; //寧된쉽쉽쏜
|
|
};
|
|
|
|
struct LOTTO_APPLY_DATA
|
|
{
|
|
LOTTO_APPLY_DATA( void )
|
|
{
|
|
memset(this, 0, sizeof(*this));
|
|
}
|
|
|
|
DWORD wDrawNum;
|
|
BYTE byEntryCnt;
|
|
BYTE arNumInfo[LOTTO_MAX_TICKETS][LOTTO_NUM_PICKS];
|
|
};
|
|
|
|
class uiLottoWindow : public uiBase,public SCItemSlotContainer
|
|
{
|
|
enum eLotto_POS
|
|
{
|
|
LOTTO_BTN_SLOT =0, //꿨꾼객큐(壇瀝코휭苟)
|
|
LOTTO_BTN_EXIT, //밑균객큐
|
|
LOTTO_BTN_APPLY, //瓊슥객큐
|
|
|
|
LOTTO_TXT_INFO,
|
|
LOTTO_TXT_DRAWNUM,
|
|
LOTTO_TXT_WINNUM,
|
|
LOTTO_TXT_HEIM_TURN,
|
|
LOTTO_TXT_WINNER_TURN,
|
|
LOTTO_TXT_WINHEIM_TURN,
|
|
LOTTO_TXT_HEIM,
|
|
LOTTO_TXT_WINNER,
|
|
LOTTO_TXT_WINHEIM,
|
|
|
|
LOTTO_LIST_TEXT,
|
|
|
|
#ifdef _NA_20101011_HEIM_LOTTO_CASH_TICKET
|
|
LOTTO_SCROLL, //스크롤바
|
|
#endif//_NA_20101011_HEIM_LOTTO_CASH_TICKET
|
|
LOTTO_MAX
|
|
|
|
};
|
|
|
|
enum
|
|
{
|
|
LOTTO_BTN_MAX = LOTTO_BTN_APPLY - LOTTO_BTN_SLOT + 1,
|
|
LOTTO_TEXT_MAX = LOTTO_TXT_WINHEIM - LOTTO_TXT_INFO + 1,
|
|
};
|
|
|
|
enum
|
|
{
|
|
IDX_LOTTO_INFO=0,
|
|
IDX_LOTTO_DRAWNUM,
|
|
IDX_LOTTO_WINNUM,
|
|
IDX_LOTTO_HEIM_TURN,
|
|
IDX_LOTTO_WINNER_TURN,
|
|
IDX_LOTTO_WINHEIM_TURN,
|
|
IDX_LOTTO_HEIM,
|
|
IDX_LOTTO_WINNER,
|
|
IDX_LOTTO_WINHEIM,
|
|
};
|
|
|
|
|
|
public:
|
|
|
|
uiLottoWindow(InterfaceManager *pUIMan);
|
|
virtual ~uiLottoWindow(void);
|
|
|
|
virtual VOID Init( CDrawBase * pDrawBase );
|
|
virtual VOID Release();
|
|
virtual void OnUpdateSolarDialog();
|
|
virtual void OnRenderSolarDialog();
|
|
|
|
virtual VOID MessageProc( SI_MESSAGE * pMessage );
|
|
virtual VOID MouseOver_MsgProc( SI_MESSAGE * pMessage );
|
|
virtual void OnShowWindow( BOOL val );
|
|
void SetItemNum(int iNum=0);
|
|
void RefreshLottoSlot();
|
|
|
|
void SetEnableWindow(bool bFlag);
|
|
|
|
void SetApplyInfo();
|
|
void InsertLastApply(WORD wDrawNum,BYTE *arApplyNum);
|
|
void InsertApplyInfo(LOTTO_APPLY_DATA& Data,BOOL bTail=FALSE);
|
|
|
|
void SetLottoBaseInfo(LOTTO_BASE_INFO &rInfo);
|
|
|
|
private:
|
|
void InsertNewApply(WORD wDrawNum,BYTE *arApplyNum);
|
|
void ClearAllInLottoInfo();
|
|
void renderToolTip();
|
|
CControlWZ * getControl( POSTYPE AtPos );
|
|
POSTYPE getCtrlIDToPos( WzID wzId );
|
|
|
|
void LottoErrorMsg(int iStringCode);
|
|
void InitControls();
|
|
void InitUnitRenderer();
|
|
|
|
virtual RC::eSLOT_INSERT_RESULT InsertSlot( POSTYPE AtPos, SCSlot & IN rSlot );
|
|
virtual BOOL DeleteSlot( POSTYPE AtPos, SCSlot * pSlotOut );
|
|
|
|
#ifdef _NA_20101011_HEIM_LOTTO_CASH_TICKET
|
|
void DownScroll(int nRange);
|
|
void UpScroll(int nRange);
|
|
#endif//_NA_20101011_HEIM_LOTTO_CASH_TICKET
|
|
private:
|
|
static WzID m_wzId[LOTTO_MAX];
|
|
|
|
CCtrlButtonWZ* m_pLottoBtn[LOTTO_BTN_MAX];
|
|
CCtrlStaticWZ* m_pTxtCtrl[LOTTO_TEXT_MAX];
|
|
|
|
CCtrlListWZ* m_pList; //응모내역 리스트
|
|
CCtrlVScrollWZ* m_pScroll; //응모내용 스크롤
|
|
|
|
ItemUnitRenderer * m_pItemUnitRenderer;
|
|
SCItemSlot * m_pItemToolTip;
|
|
|
|
std::list<LOTTO_APPLY_DATA> m_listApplyContainer;
|
|
#ifdef _NA_20101011_HEIM_LOTTO_CASH_TICKET
|
|
BYTE offset_list_;
|
|
#endif//_NA_20101011_HEIM_LOTTO_CASH_TICKET
|
|
};
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
inline POSTYPE uiLottoWindow::getCtrlIDToPos( WzID wzId )
|
|
{
|
|
for( POSTYPE i = 0 ; i < LOTTO_MAX ; ++i )
|
|
{
|
|
if( m_wzId[i] == wzId )
|
|
{
|
|
return i;
|
|
}
|
|
}
|
|
return LOTTO_MAX;
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
/**
|
|
*/
|
|
inline CControlWZ *uiLottoWindow::getControl( POSTYPE AtPos )
|
|
{
|
|
ASSERT( AtPos < LOTTO_MAX );
|
|
|
|
return GetControlWZ( m_wzId[AtPos] );
|
|
}
|