Files
Sun1602/Client/GameClient/Interface/uiLottoWindow/uiLottoWindow.h
T
2022-10-26 12:25:11 +08:00

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] );
}