#include "SunClientPrecompiledHeader.h" #include "uiLottoMan/uiLottoMan.h" #include "uiLottoNumInput.h" #include "interfacemanager.h" #include "interfacemanager.h" #include "globalfunc.h" #include "ItemManager.h" #include "Hero.h" #ifdef _NA_0_20100115_HEIM_LOTTO_TICKET_PURCHASE #include "AskBuyLottoTicket.h" #include "uiAssistMan/uiAssistMan.h" #endif//_NA_0_20100115_HEIM_LOTTO_TICKET_PURCHASE WzID uiLottoNumInput::m_wzId[LOTTO_MAX] = { StrToWzID("BT03"), //LOTTO_BTN_INPUT StrToWzID("B002"), //LOTTO_BTN_AUTO StrToWzID("B001"), //LOTTO_BTN_EXIT StrToWzID("BT04"), //LOTTO_BTN_UP1 StrToWzID("BT05"), //LOTTO_BTN_UP2 StrToWzID("BT06"), //LOTTO_BTN_UP3 StrToWzID("BT07"), //LOTTO_BTN_UP4 StrToWzID("BT08"), //LOTTO_BTN_DOWN1 StrToWzID("BT09"), //LOTTO_BTN_DOWN2 StrToWzID("BT10"), //LOTTO_BTN_DOWN3 StrToWzID("BT11"), //LOTTO_BTN_DOWN4 StrToWzID("ST01"), //LOTTO_TEXT1 StrToWzID("ST02"), //LOTTO_TEXT2 StrToWzID("ST03"), //LOTTO_TEXT3 StrToWzID("ST04"), //LOTTO_TEXT4 }; uiLottoNumInput::uiLottoNumInput(InterfaceManager *pUIMan) :uiBase(pUIMan) { } //------------------------------------------------------------------------------ /** */ uiLottoNumInput::~uiLottoNumInput(void) { Release(); } //------------------------------------------------------------------------------ /** */ VOID uiLottoNumInput::Init( CDrawBase * pDrawBase ) { uiBase::Init(pDrawBase); InitControls(); } //------------------------------------------------------------------------------ /** */ void uiLottoNumInput::InitControls() { int i=0; for(;i(getControl(i)); assert(m_pLottoBtn[i]); } for(i=0;i(getControl(LOTTO_TEXT1+i)); assert(m_pTxtCtrl[i]); } } //------------------------------------------------------------------------------ /** */ void uiLottoNumInput::OnShowWindow( BOOL val ) { if(val) { //uiBase::MoveCenter(); keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType = eDoType_Dialog_Lotto_NumInput_Dlg; msg.wParam = IM_LOTTO_MANAGER::LOTTO_NUMINPUT_DLG; msg.DoSomething = GlobalFunc::DoShowWindowEx; g_KeyQueueManager.PushBack(msg); initlottonumber(); refreshLottoNumber(); } else { g_KeyQueueManager.DeleteMsg(eDoType_Dialog_Lotto_NumInput_Dlg); } } //----------------------------------------------------------------------------- /** C-->S ·Î¶ÇÀÀ¸ðÆÐŶÀ» º¸³½´Ù. */ void uiLottoNumInput::SEND_LOTTO_ENTRY_SYN(BOOL bAuto) { if(!g_pHero) return; //³ªÀÇ ·Î¶ÇÀÀ¸ðÁ¤º¸¸¦ ¿äûÇÑ´Ù uiLottoMan* pLottoMan= GET_DIALOG_MANAGER(uiLottoMan, UIMAN_LOTTO_MAN); if(!pLottoMan) return; //ÆÐŶä¿î´Ù MSG_CW_LOTTO_ENTRY_SYN SendPacket; #ifdef _NA_20101011_HEIM_LOTTO_CASH_TICKET #else if (CheckInputNumber(bAuto) == false) { return; } #endif//_NA_20101011_HEIM_LOTTO_CASH_TICKET //³ªÀÇ ·Î¶ÇÀÀ¸ðÁ¤º¸¸¦ ¿äûÇÑ´Ù SendPacket.bAuto = bAuto; SendPacket.bPickedNum[0] = m_arLottoNum[0]; SendPacket.bPickedNum[1] = m_arLottoNum[1]; SendPacket.bPickedNum[2] = m_arLottoNum[2]; SendPacket.bPickedNum[3] = m_arLottoNum[3]; SendPacket.wDrawNum = pLottoMan->GetLottoInfo()->m_wLottoDrawNum; GlobalFunc::SendPacket(CI_CHATSERVERIDX, &SendPacket, sizeof(SendPacket) ); this->ShowInterface(FALSE); } //----------------------------------------------------------------------------- /** */ VOID uiLottoNumInput::MessageProc( SI_MESSAGE * pMessage ) { if(pMessage->eResultMsg!=RT_MSG_LBUTTONCLICK) return; POSTYPE pos = getCtrlIDToPos( pMessage->dwCtrlID ); switch( pos ) { #ifdef _NA_0_20100115_HEIM_LOTTO_TICKET_PURCHASE //Áß±¹ ÇöÁöÈ­ÀÛ¾÷ case LOTTO_BTN_INPUT: case LOTTO_BTN_AUTO: { uiAssistMan * pAssistMan = (uiAssistMan *) g_InterfaceManager.GetUserInterfaceManager(UIMAN_ASSIST); if( pAssistMan ) { this->ShowInterface(FALSE); pAssistMan->ShowAskBuyLottoTicket(pos==LOTTO_BTN_INPUT ? (FALSE):(TRUE)); } } break; #else case LOTTO_BTN_INPUT: { #ifdef _NA_20101011_HEIM_LOTTO_CASH_TICKET uiLottoMan* pLottoMan= GET_DIALOG_MANAGER(uiLottoMan, UIMAN_LOTTO_MAN); if(pLottoMan && pLottoMan->GetLottoInfo()->m_bNumTickets>0) { SEND_LOTTO_ENTRY_SYN(FALSE); } else { if (CheckInputNumber(FALSE) == true) { FindAndUseLotto(FALSE); } } #else SEND_LOTTO_ENTRY_SYN(FALSE); #endif//_NA_20101011_HEIM_LOTTO_CASH_TICKET } break; case LOTTO_BTN_AUTO: { #ifdef _NA_20101011_HEIM_LOTTO_CASH_TICKET uiLottoMan* pLottoMan= GET_DIALOG_MANAGER(uiLottoMan, UIMAN_LOTTO_MAN); if(pLottoMan && pLottoMan->GetLottoInfo()->m_bNumTickets>0) { SEND_LOTTO_ENTRY_SYN(TRUE); } else { FindAndUseLotto(TRUE); } #else SEND_LOTTO_ENTRY_SYN(TRUE); #endif//_NA_20101011_HEIM_LOTTO_CASH_TICKET } break; #endif//_NA_0_20100115_HEIM_LOTTO_TICKET_PURCHASE case LOTTO_BTN_EXIT: { this->ShowInterface(FALSE); } break; case LOTTO_BTN_DOWN1: case LOTTO_BTN_DOWN2: case LOTTO_BTN_DOWN3: case LOTTO_BTN_DOWN4: { int nIndex = pos-LOTTO_BTN_DOWN1; int nTemp = m_arLottoNum[nIndex]; //1º¸´ÙÀÛÀ¸¸é 25·Î ¼ÂÆÃ µ¹°íµ·´Ù m_arLottoNum[nIndex] = (--nTempLOTTO_MAX_NUMBER) ? (LOTTO_MIN_NUMBER):(++m_arLottoNum[nIndex]); refreshLottoNumber(); } break; } } //------------------------------------------------------------------------------ /** */ void uiLottoNumInput::initlottonumber() { for(int i=0;iSetTextWZ(_itoa(m_arLottoNum[i], szTemp, 10)); } } } //------------------------------------------------------------------------------ /** */ void uiLottoNumInput::OnUpdateSolarDialog() { uiLottoMan* pLottoMan= GET_DIALOG_MANAGER(uiLottoMan, UIMAN_LOTTO_MAN); if(pLottoMan && pLottoMan->CheckDistanceNPC()) { this->ShowInterface(FALSE); } } //------------------------------------------------------------------------------ /** */ VOID uiLottoNumInput::Release() { //no operation } //------------------------------------------------------------------------------ /** */ #ifdef _NA_20101011_HEIM_LOTTO_CASH_TICKET void uiLottoNumInput::FindAndUseLotto(BOOL auto_select) { //º¹±Ç¾ÆÀÌÅÛ(7293)ÀÌ ÀÖÀ¸¸é »ç¿ë POSTYPE use_item_position = 0; if (ItemManager::Instance()->FindFirstItem(7293, use_item_position) == TRUE) { auto_select_ = auto_select; ItemManager::Instance()->SendItemUseMsg(SI_INVENTORY, use_item_position); } else { uiLottoMan* lotto_manager_ptr= GET_DIALOG_MANAGER(uiLottoMan, UIMAN_LOTTO_MAN); //5289 ·Î¶Çº¹±ÇÀÌ ¾ø½À´Ï´Ù. TCHAR message[INTERFACE_STRING_LENGTH]; g_InterfaceManager.GetInterfaceString(5289,message); lotto_manager_ptr->LottoMessage(message); } } //------------------------------------------------------------------------------ /** */ void uiLottoNumInput::SendLottoEntrySyn() { SEND_LOTTO_ENTRY_SYN(auto_select_); } #endif//_NA_20101011_HEIM_LOTTO_CASH_TICKET //------------------------------------------------------------------------------ /** */ bool uiLottoNumInput::CheckInputNumber(BOOL bAuto) { if(!bAuto) { //¹øÈ£Áߺ¹ÀÎÁöüũ for(int i=0;iLottoMessage(szMessage); return false; } } } } return true; }