#include "SunClientPrecompiledHeader.h" #ifdef _NA_003923_20120130_GUILD_RENEWAL_MOD_WAREHOUSE_SLOT_NUM #else #include "inputnumbankdialog.h" #include "BankDialog.h" #include "ChatDialog.h" #include "interfacemanager.h" #include "globalfunc.h" #include "Hero.h" #include "uiGuildWareHouse/uiGuildWareHouse.h" //---------------------------------------------------------------------------- /** */ InputNumBankDialog::InputNumBankDialog(void) { } //---------------------------------------------------------------------------- /** */ InputNumBankDialog::~InputNumBankDialog(void) { } //------------------------------------------------------------------------------ /** */ void InputNumBankDialog::Init( CDrawBase * pDrawBase ) { InputNumDialog::Init(pDrawBase); m_CurMoney = 0; m_eWareHouseType = eWAREHOUSE_TYPE_MAX; m_GuildWareHouseMoneySyn.m_byType = MSG_CG_GUILD_WAREHOUSE_MONEY_SYN::PUTMONEY; m_WarehouseMoneySyn.m_byType = MSG_CG_WAREHOUSE_MONEY_SYN::PUTMONEY; m_dwPacketStatus = NONE; TCHAR szMessage[INTERFACE_STRING_LENGTH]; const int c_iInputMoney = 566; // ÀÔ±Ý g_InterfaceManager.GetInterfaceString( c_iInputMoney, szMessage, INTERFACE_STRING_LENGTH ); GlobalFunc::SetCaption( (CCtrlStaticWZ *)getControl(INPUTNUM_BTN_OK), szMessage ); const int c_iOutputMoney = 567; // Ãâ±Ý g_InterfaceManager.GetInterfaceString( c_iOutputMoney, szMessage, INTERFACE_STRING_LENGTH ); GlobalFunc::SetCaption( (CCtrlStaticWZ *)getControl(INPUTNUM_BTN_INIT), szMessage ); const int c_iCancel = 101; // Ãë¼Ò g_InterfaceManager.GetInterfaceString( c_iCancel, szMessage, INTERFACE_STRING_LENGTH ); GlobalFunc::SetCaption( (CCtrlStaticWZ *)getControl(INPUTNUM_BTN_CANCEL), szMessage ); } //------------------------------------------------------------------------------ /** */ void InputNumBankDialog::Release() { InputNumDialog::Release(); } //------------------------------------------------------------------------------ /** */ void InputNumBankDialog::OnShowWindow( BOOL val ) { InputNumDialog::OnShowWindow(val); if (val) { RECT rcDlgSize; this->GetDialogWZ()->GetDlgSize(&rcDlgSize); int x = 512 - (rcDlgSize.right / 2); MoveWindowWZ( (float)x, 15.0f ); keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType=eDoType_dialog_num_bank; msg.wParam=InterfaceManager::DIALOG_INPUT_NUM; msg.DoSomething=GlobalFunc::DoInputNumBank; g_KeyQueueManager.PushBack(msg); } else { g_KeyQueueManager.DeleteMsg(eDoType_dialog_num_bank); m_dwPacketStatus = 0; } } //------------------------------------------------------------------------------ /** */ void InputNumBankDialog::MoneyProcess() { TCHAR szMessage[MAX_MESSAGE_LENGTH] = {0,}; TCHAR pszInputMoney[128] = {0,}; // ±Ý¾×ÀÇ ÃÖ´ë »çÀÌÁî(128 byte)¸¦ ³Ñ¾ú½À´Ï´Ù. if(!GlobalFunc::CompareLimitText(m_pCtrlEditInput, pszInputMoney, 128, 5794)) return; if (lstrlen(pszInputMoney)==0) { // ±Ý¾×À» ÀÔ·ÂÇØÁÖ¼¼¿ä!! g_InterfaceManager.GetInterfaceString( eST_INPUT_MONEY, szMessage, MAX_MESSAGE_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage ); } else { TCHAR szTemp[128] = {0,}; int iLen = strlen(pszInputMoney); int j = 0; for(int i = 0; i < iLen; ++i, ++j) { if(',' != pszInputMoney[j]) { szTemp[i] = pszInputMoney[j]; } else { ++j; szTemp[i] = pszInputMoney[j]; } } if(this->checkDigit(szTemp)) { m_CurMoney = (MONEY)_ttoi64(szTemp); SolarDialog::ShowWindow(FALSE); } else { // ±Ý¾×Àº ¼ýÀڷθ¸ ÀÔ·ÂÇϽʽÿÀ g_InterfaceManager.GetInterfaceString( eST_INPUT_MONEY_IN_FIGURES, szMessage, MAX_MESSAGE_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage ); } } } //------------------------------------------------------------------------------ /** */ bool InputNumBankDialog::checkDigit(const TCHAR *str) { int len = lstrlen(str); int i; for (i=0; i_T('9')) { return false; } } return true; } //------------------------------------------------------------------------------ /** */ void InputNumBankDialog::MessageProc( SI_MESSAGE * pMessage ) { switch( pMessage->eResultMsg ) { case RT_MSG_EDIT_ENTERKEYDOWN: { this->m_status = INPUTNUM_STATUS_OK; this->MoneyProcess(); } break; case RT_MSG_LBUTTONCLICK: { switch( getCtrlIDToPos( pMessage->dwCtrlID ) ) { case INPUTNUM_BTN_OK: { // ÀÔ±Ý this->m_status = INPUTNUM_STATUS_OK; this->MoneyProcess(); if (m_CurMoney <= 0) { TCHAR szMessage[MAX_MESSAGE_LENGTH + 1] = {0,}; // ±Ý¾×À» ÀÔ·ÂÇØÁÖ¼¼¿ä!! g_InterfaceManager.GetInterfaceString( eST_INPUT_MONEY, szMessage, MAX_MESSAGE_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage ); return; } if(m_CurMoney > g_pHero->GetMoney()) { TCHAR szMessage[MAX_MESSAGE_LENGTH + 1] = {0,}; // ÇÏÀÓÀÌ ºÎÁ·ÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString( eST_NOT_ENOUGH_MONEY, szMessage, MAX_MESSAGE_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage ); return; } if(eWAREHOUSE_TYPE_BANK == m_eWareHouseType) { if (BIT_CHECK(m_dwPacketStatus, WAREHOUSEMONEY_SEND)) { return; } BIT_ADD( m_dwPacketStatus, WAREHOUSEMONEY_SEND ); this->m_WarehouseMoneySyn.m_byType = MSG_CG_WAREHOUSE_MONEY_SYN::PUTMONEY; this->m_WarehouseMoneySyn.m_Money = m_CurMoney; GlobalFunc::SendPacket( CI_GAMESERVERIDX, &m_WarehouseMoneySyn, sizeof(m_WarehouseMoneySyn)); } else if(eWAREHOUSE_TYPE_GUILD == m_eWareHouseType) { if (BIT_CHECK(m_dwPacketStatus, GUILDWAREHOUSEMONEY_SEND)) { return; } BIT_ADD( m_dwPacketStatus, GUILDWAREHOUSEMONEY_SEND ); this->m_GuildWareHouseMoneySyn.m_byType = MSG_CG_GUILD_WAREHOUSE_MONEY_SYN::PUTMONEY; this->m_GuildWareHouseMoneySyn.m_Money = m_CurMoney; GlobalFunc::SendPacket( CI_GAMESERVERIDX, &m_GuildWareHouseMoneySyn, sizeof(m_GuildWareHouseMoneySyn)); } else { assert(!"InputNumBankDialog::MessageProc"); } } break; case INPUTNUM_BTN_INIT: { this->MoneyProcess(); if (m_CurMoney <= 0) { TCHAR szMessage[MAX_MESSAGE_LENGTH]; // ±Ý¾×À» ÀÔ·ÂÇØÁÖ¼¼¿ä!! g_InterfaceManager.GetInterfaceString( eST_INPUT_MONEY, szMessage, MAX_MESSAGE_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage ); return; } if(eWAREHOUSE_TYPE_BANK == m_eWareHouseType) { if (BIT_CHECK(m_dwPacketStatus, WAREHOUSEMONEY_SEND)) { return; } BIT_ADD( m_dwPacketStatus, WAREHOUSEMONEY_SEND ); // Ãâ±Ý this->m_status = INPUTNUM_STATUS_INIT; this->m_WarehouseMoneySyn.m_byType = MSG_CG_WAREHOUSE_MONEY_SYN::GETMONEY; this->m_WarehouseMoneySyn.m_Money = m_CurMoney; GlobalFunc::SendPacket( CI_GAMESERVERIDX, &m_WarehouseMoneySyn, sizeof(m_WarehouseMoneySyn)); } else if(eWAREHOUSE_TYPE_GUILD == m_eWareHouseType) { uiGuildWareHouse * pDlg = GET_CAST_DIALOG( uiGuildWareHouse, IM_GUILD_MANAGER::GUILD_WAREHOUSE ); if(pDlg) { if(m_CurMoney > pDlg->GetMoney()) { TCHAR szMessage[MAX_MESSAGE_LENGTH + 1] = {0,}; // ÇÏÀÓÀÌ ºÎÁ·ÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString( eST_NOT_ENOUGH_MONEY, szMessage, MAX_MESSAGE_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage ); return; } } if (BIT_CHECK(m_dwPacketStatus, GUILDWAREHOUSEMONEY_SEND)) { return; } BIT_ADD( m_dwPacketStatus, GUILDWAREHOUSEMONEY_SEND ); // Ãâ±Ý this->m_status = INPUTNUM_STATUS_INIT; this->m_GuildWareHouseMoneySyn.m_byType = MSG_CG_GUILD_WAREHOUSE_MONEY_SYN::GETMONEY; this->m_GuildWareHouseMoneySyn.m_Money = m_CurMoney; GlobalFunc::SendPacket( CI_GAMESERVERIDX, &m_GuildWareHouseMoneySyn, sizeof(m_GuildWareHouseMoneySyn)); } else { assert(!"InputNumBankDialog::MessageProc"); } } break; case INPUTNUM_BTN_CANCEL: { this->m_status = INPUTNUM_STATUS_CANCEL; ShowWindow( FALSE ); } case INPUTNUM_BTN_EXIT: { Exit(); } break; } } break; default: { SolarDialog::MessageProc( pMessage ); } break; } } //---------------------------------------------------------------------------- /** */ void InputNumBankDialog::Exit() { this->m_status = INPUTNUM_STATUS_NORMAL; ClearPacketFlag(); ShowWindow( FALSE ); } //---------------------------------------------------------------------------- /** */ VOID InputNumBankDialog::ClearPacketFlag() { this->m_packetStatus = NONE; } //---------------------------------------------------------------------------- /** */ VOID InputNumBankDialog::SendWareHouseMoney(MONEY money) { } #endif //_NA_003923_20120130_GUILD_RENEWAL_MOD_WAREHOUSE_SLOT_NUM //------------------------------------------------------------------------------ // EOF //------------------------------------------------------------------------------