#include "SunClientPrecompiledHeader.h" #include "uiDominationTowerApplyBettingDlg2.h" #ifdef _NA_006826_20130722_DOMINATION_RENEWAL #else #include "uiDominationTowerBettingListDlg/uiDominationTowerBettingListDlg.h" #include "interfacemanager.h" #include "globalfunc.h" #include "Hero.h" #include "Map.h" #include "DominationInfoParser.h" #include "SCItemSlotContainer.h" #include "ItemManager.h" const int kEdit_Max = 6; //------------------------------------------------------------------------------ WzID uiDominationTowerApplyBettingDlg2::controls_id_[DIALOG_MAX] = { StrToWzID("ST04"),// DLGPOS_BETTING_NOTICE_TEXT, StrToWzID("B003"),// DLGPOS_TOKEN_SLOT_BUTTON, StrToWzID("ED00"),// DLGPOS_BETTING_COST_EDIT, StrToWzID("BT00"),// DLGPOS_BETTING_APPLY_BUTTON, StrToWzID("BT04"),// DLGPOS_CANCEL_BUTTON, StrToWzID("B999"),// DLGPOS_CLOSE_BUTTON, }; //------------------------------------------------------------------------------ /** */ uiDominationTowerApplyBettingDlg2::uiDominationTowerApplyBettingDlg2(InterfaceManager *pUIMan) :uiBase(pUIMan) { notice_text_ = NULL; token_slot_button_ = NULL; betting_button_ = NULL; cancel_button_ = NULL; close_button_ = NULL; betting_edit_ = NULL; } //------------------------------------------------------------------------------ /** */ uiDominationTowerApplyBettingDlg2::~uiDominationTowerApplyBettingDlg2() { Release(); } //------------------------------------------------------------------------------ /** */ void uiDominationTowerApplyBettingDlg2::Init(CDrawBase* pDrawBase) { uiBase::Init(pDrawBase); notice_text_ = static_cast(GetControlWZ(controls_id_[DLGPOS_BETTING_NOTICE_TEXT])); assert(notice_text_); token_slot_button_ = static_cast(GetControlWZ(controls_id_[DLGPOS_TOKEN_SLOT_BUTTON])); assert(token_slot_button_); betting_edit_ = static_cast(GetControlWZ(controls_id_[DLGPOS_BETTING_COST_EDIT])); assert(betting_edit_); if (betting_edit_ != NULL) { betting_edit_->SetLimitText(kEdit_Max); } betting_button_ = static_cast(GetControlWZ(controls_id_[DLGPOS_BETTING_APPLY_BUTTON])); assert(betting_button_); cancel_button_ = static_cast(GetControlWZ(controls_id_[DLGPOS_CANCEL_BUTTON])); assert(cancel_button_); close_button_ = static_cast(GetControlWZ(controls_id_[DLGPOS_CLOSE_BUTTON])); assert(close_button_); } //------------------------------------------------------------------------------ /** */ void uiDominationTowerApplyBettingDlg2::OnShowWindow(BOOL val) { if (val) { MoveDefaultWindowPos(); if (betting_edit_ != NULL) { betting_edit_->ClearText(); GlobalFunc::SetFocus((SolarDialog*)this, betting_edit_); } g_InterfaceManager.AttachFirstDialog(GetDialogWZ()->GetDlgID()); //Űť¸Þ½ÃÁö»ðÀÔ keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType=eDoType_dialog_Domination_ApplyBetting; msg.wParam=IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_APPLY_BETTING_DIALOG2; msg.DoSomething=GlobalFunc::DoShowWindowEx; g_KeyQueueManager.PushBack(msg); } else { //Űť¸Þ½ÃÁö»èÁ¦ g_KeyQueueManager.DeleteMsg(eDoType_dialog_Domination_ApplyBetting); g_InterfaceManager.DeAttachFirstDialog(GetDialogWZ()->GetDlgID()); uiDominationTowerMan* pUIMan = (uiDominationTowerMan*)GetMan(); uiDominationTowerBettingListDlg* pDlg = GET_CAST_DIALOG(uiDominationTowerBettingListDlg, IM_DOMINATION_TOWER_MANAGER::DOMINATIONWAR_BETTING_LIST_DIALOG); if (pUIMan && pDlg && pDlg->IsVisible()) { pUIMan->SEND_DOMINATION_APPLY_SYN(); } } } //------------------------------------------------------------------------------ /** */ void uiDominationTowerApplyBettingDlg2::OnUpdateSolarDialog() { if (betting_edit_ != NULL) { memset(current_money, 0, INTERFACE_STRING_LENGTH); const BYTE c_btMaxEditNum = 19; betting_edit_->GetTextWZ(money_old, INTERFACE_STRING_LENGTH); int iLen = strlen(money_old); int j = 0; for(int i = 0; i < iLen; ++i, ++j) { if(',' != money_old[j]) { current_money[i] = money_old[j]; } else { ++j; current_money[i] = money_old[j]; } } if(isdigit(current_money[0])) { if(c_btMaxEditNum > strlen(current_money)) //¿¡µðÆ® ÄÁÆ®·Ñ ¹üÀ§ ³ÑÁö ¾Ê°Ô { NUMBERFMT nFmt = { 0, 0, 3, _T("."), _T(","), 1 }; ::GetNumberFormat( LOCALE_SYSTEM_DEFAULT, NULL, current_money, &nFmt, money_new, sizeof(money_new)); betting_edit_->SetTextWZ(money_new); } else { betting_edit_->SetTextWZ(""); } } else { betting_edit_->SetTextWZ(""); } } } //------------------------------------------------------------------------------ /** */ void uiDominationTowerApplyBettingDlg2::OnRenderSolarDialog() { } //------------------------------------------------------------------------------ /** */ void uiDominationTowerApplyBettingDlg2::MessageProc(SI_MESSAGE * pMessage) { switch (pMessage->eResultMsg) { case RT_MSG_LBUTTONCLICK: { POSTYPE pos = getCtrlIDToPos( pMessage->dwCtrlID ); CControlWZ * pControl = GetControlWZ(controls_id_[pos]); if (NULL == pControl) { return; } // ÆÐŶ Ææµù¼Â »óÅÂ¸é ¸®ÅÏ uiDominationTowerMan* pUIMan = (uiDominationTowerMan*)GetMan(); if (NULL == pUIMan || pUIMan->IsPKPending()) { return; } switch(pos) { case DLGPOS_BETTING_APPLY_BUTTON: { // º£ÆÃÇϱâ OnApplyButton(); } break; case DLGPOS_CANCEL_BUTTON: case DLGPOS_CLOSE_BUTTON: { // º£ÆÃ Ãë¼Ò â´Ý±â ShowInterface(FALSE); } break; default: { } } } } } void uiDominationTowerApplyBettingDlg2::OnApplyButton() { uiDominationTowerMan* ui_domination_manager = static_cast(GetMan()); if (ui_domination_manager == NULL) { return; } MAPCODE current_mapcode = ui_domination_manager->GetDominationManagedMapCode(); const sDOMINATION_INFO* domination_info = DominationInfoParser::Instance()->GetDominationInfo(current_mapcode); if ((domination_info != NULL) && (g_pHero != NULL)) { #ifdef _NA_20120511_WORK_TO_DOMINATION_ADDITIONAL_REQUEST if (domination_info->m_BattingGuildLevelLimit > g_pHero->GetGuildRenderInfo().m_GuildGrade) { TCHAR message[INTERFACE_STRING_LENGTH] = {'\0', }; TCHAR limit_level[INTERFACE_STRING_LENGTH] = {'\0', }; Snprintf(limit_level, INTERFACE_STRING_LENGTH, "%d", domination_info->m_BattingGuildLevelLimit); // 3268 ÇØ´ç Áö¿ªÀº %s·¹º§ ÀÌ»óÀÇ ±æµå¸¸ ÀÔÂû °¡´ÉÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceStringFormat(message, INTERFACE_STRING_LENGTH, 3268, limit_level); GlobalFunc::VerifyMessage(message, NULL, NULL, true); return; } #endif //_NA_20120511_WORK_TO_DOMINATION_ADDITIONAL_REQUEST bool is_valid_token = false; // Àκ¥¿¡ ÀԷ°¹¼ö ¸¸Å­ ÀÖ´ÂÁö üũ MONEY betting_cost = _ttoi64(current_money); WORD token_num = ItemManager::Instance()->GetItemCount(SI_INVENTORY, domination_info->m_BattingItemCode); if ((betting_cost > 0) && (token_num >= betting_cost)) { is_valid_token = true; } if (is_valid_token == true) { ui_domination_manager->SEND_DOMINATION_ACCEP_HEIM_SYN(betting_cost); ShowInterface(FALSE); } else { TCHAR message_string[INTERFACE_STRING_LENGTH] = {0, }; // 3384 ¿ÕÀÇ ÁõÇ¥ ¾ÆÀÌÅÛÀ» ÃÖ¼Ò 1°³ ÀÌ»ó µî·ÏÇÏ¼Å¾ß ½ÅûÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. g_InterfaceManager.GetInterfaceString(3384, message_string); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, message_string); } } } //------------------------------------------------------------------------------ /** */ #endif //_NA_006826_20130722_DOMINATION_RENEWAL