#include "SunClientPrecompiledHeader.h" #include "uiConvenienceStore_Purchase.h" #include "uiConvenienceStoreMan.h" #include "InterfaceManager.h" #include "uiConvenienceStore_Basket.h" #include "uiConvenienceStore_Confirm.h" #include "uiConvenienceStore_Ask.h" #include "GlobalFunc.h" #include "Application.h" #include "uiConvenienceStore_PopupPackage.h" #include "uiConvenienceStore_Counter.h" #include "Mouse.h" #include "PurchaseItem.h" #include "ProductInfo.h" #include "Hero.h" //------------------------------------------------------------------------------ const DWORD uiConvenienceStore_Purchase::kDialog_ID = StrToWzID("0476");; //------------------------------------------------------------------------------ uiConvenienceStore_Purchase::uiConvenienceStore_Purchase(InterfaceManager* ui_man) :uiConvenienceStore_Dialog(ui_man) { RegisterControlPosition(StrToWzID("B004"), kControl_Button_B004); RegisterControlPosition(StrToWzID("B001"), kControl_Button_B001); RegisterControlPosition(StrToWzID("B003"), kControl_Button_B003); RegisterControlPosition(StrToWzID("B006"), kControl_Button_B006); RegisterControlPosition(StrToWzID("B007"), kControl_Button_B007); RegisterControlPosition(StrToWzID("B008"), kControl_Button_B008); RegisterControlPosition(StrToWzID("B009"), kControl_Button_B009); //RegisterControlPosition(StrToWzID("B000"), kControl_Button_B000); //RegisterControlPosition(StrToWzID("B002"), kControl_Button_B002); //RegisterControlPosition(StrToWzID("B005"), kControl_Button_B005); //RegisterControlPosition(StrToWzID("B010"), kControl_Button_B010); //RegisterControlPosition(StrToWzID("B014"), kControl_Button_B014); RegisterControlPosition(StrToWzID("B011"), kControl_Button_B011); RegisterControlPosition(StrToWzID("B012"), kControl_Button_B012); RegisterControlPosition(StrToWzID("B013"), kControl_Button_B013); RegisterControlPosition(StrToWzID("B015"), kControl_Button_B015); RegisterControlPosition(StrToWzID("B016"), kControl_Button_B016); RegisterControlPosition(StrToWzID("B017"), kControl_Button_B017); RegisterControlPosition(StrToWzID("B024"), kControl_Button_B024); RegisterControlPosition(StrToWzID("B025"), kControl_Button_B025); RegisterControlPosition(StrToWzID("B026"), kControl_Button_B026); RegisterControlPosition(StrToWzID("B027"), kControl_Button_B027); RegisterControlPosition(StrToWzID("B018"), kControl_Button_B018); RegisterControlPosition(StrToWzID("B020"), kControl_Button_B020); RegisterControlPosition(StrToWzID("B021"), kControl_Button_B021); RegisterControlPosition(StrToWzID("B022"), kControl_Button_B022); RegisterControlPosition(StrToWzID("B023"), kControl_Button_B023); RegisterControlPosition(StrToWzID("B028"), kControl_Button_B028); RegisterControlPosition(StrToWzID("B029"), kControl_Button_B029); RegisterControlPosition(StrToWzID("ST05"), kControl_Text_ST05); RegisterControlPosition(StrToWzID("ST20"), kControl_Text_ST20); RegisterControlPosition(StrToWzID("ST12"), kControl_Text_ST12); RegisterControlPosition(StrToWzID("S000"), kControl_Text_S000); RegisterControlPosition(StrToWzID("S003"), kControl_Text_S003); RegisterControlPosition(StrToWzID("S004"), kControl_Text_S004); RegisterControlPosition(StrToWzID("S005"), kControl_Text_S005); RegisterControlPosition(StrToWzID("S006"), kControl_Text_S006); RegisterControlPosition(StrToWzID("S007"), kControl_Text_S007); #ifdef _NA_20111118_CASHSHOP_UI_RENEWAL RegisterControlPosition(StrToWzID("B000"), kControl_Button_B000); RegisterControlPosition(StrToWzID("B005"), kControl_Button_B005); RegisterControlPosition(StrToWzID("B010"), kControl_Button_B010); RegisterControlPosition(StrToWzID("B014"), kControl_Button_B014); RegisterControlPosition(StrToWzID("B019"), kControl_Button_B019); #else RegisterControlPosition(StrToWzID("S008"), kControl_Text_S008); RegisterControlPosition(StrToWzID("S009"), kControl_Text_S009); RegisterControlPosition(StrToWzID("S010"), kControl_Text_S010); RegisterControlPosition(StrToWzID("S011"), kControl_Text_S011); RegisterControlPosition(StrToWzID("S012"), kControl_Text_S012); #endif //_NA_20111118_CASHSHOP_UI_RENEWAL RegisterControlPosition(StrToWzID("S013"), kControl_Text_S013); RegisterControlPosition(StrToWzID("S014"), kControl_Text_S014); RegisterControlPosition(StrToWzID("S015"), kControl_Text_S015); RegisterControlPosition(StrToWzID("S016"), kControl_Text_S016); RegisterControlPosition(StrToWzID("S001"), kControl_Text_S001); RegisterControlPosition(StrToWzID("S002"), kControl_Text_S002); RegisterControlPosition(StrToWzID("S017"), kControl_Text_S017); RegisterControlPosition(StrToWzID("S018"), kControl_Text_S018); RegisterControlPosition(StrToWzID("S019"), kControl_Text_S019); RegisterControlPosition(StrToWzID("S020"), kControl_Text_S020); RegisterControlPosition(StrToWzID("L000"), kControl_List_L000); RegisterControlPosition(StrToWzID("L005"), kControl_List_L005); RegisterControlPosition(StrToWzID("L006"), kControl_List_L006); RegisterControlPosition(StrToWzID("L007"), kControl_List_L007); RegisterControlPosition(StrToWzID("L008"), kControl_List_L008); RegisterControlPosition(StrToWzID("V000"), kControl_VScroll_V000); RegisterControlPosition(StrToWzID("P002"), kControl_Picture_P002); RegisterControlPosition(StrToWzID("P005"), kControl_Picture_P005); RegisterControlPosition(StrToWzID("P007"), kControl_Picture_P007); RegisterControlPosition(StrToWzID("PI11"), kControl_Picture_PI11); RegisterControlPosition(StrToWzID("PI13"), kControl_Picture_PI13); RegisterControlPosition(StrToWzID("P001"), kControl_Picture_P001); RegisterControlPosition(StrToWzID("P006"), kControl_Picture_P006); RegisterControlPosition(StrToWzID("P008"), kControl_Picture_P008); RegisterControlPosition(StrToWzID("P010"), kControl_Picture_P010); RegisterControlPosition(StrToWzID("P011"), kControl_Picture_P011); RegisterControlPosition(StrToWzID("P012"), kControl_Picture_P012); RegisterControlPosition(StrToWzID("P013"), kControl_Picture_P013); cash_type_ = ConvenienceStore::Define::kCashType_Cash; purchase_type_ = kPurchase_Buy; purchase_list().clear(); } //------------------------------------------------------------------------------ uiConvenienceStore_Purchase::~uiConvenienceStore_Purchase( void ) { Release(); } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::Init(CDrawBase* drawbase) { bool is_result = true; for (int i = 0; i < kListPerCount; ++i) { if (is_result) { is_result = dropdown_price(i)->Init( #ifdef _NA_20111118_CASHSHOP_UI_RENEWAL GetControlWZ(GetControlID_byPosition(kControl_Button_B000 + i)), #else GetStaticControlWZ(GetControlID_byPosition(kControl_Text_S008 + i)), #endif //_NA_20111118_CASHSHOP_UI_RENEWAL GetButtonControlWZ(GetControlID_byPosition(kControl_Button_B017 + i)), GetListControlWZ(GetControlID_byPosition(kControl_List_L000 + i)), NULL, NULL); dropdown_price(i)->SetBlendImage(GetPictureControlWZ(GetControlID_byPosition(kControl_Picture_P008 +i))); dropdown_price(i)->set_simple_menu(true); dropdown_price(i)->list_control()->SetStartLineGapTop(10); dropdown_price(i)->list_control()->SetSellHeight(16); } } #ifdef _RUSSIA CCtrlStaticWZ* static_control_ptr = NULL; static_control_ptr = static_cast (GetControlWZ_byPosition(kControl_Text_S001)); if (static_control_ptr) { GlobalFunc::SetCaption(static_control_ptr, _T("")); } #endif // _RUSSIA ASSERT(true && "uiConvenienceStore_Purchase::Init false"); } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::Release(void) { for (int i = 0; i < kListPerCount; ++i) { dropdown_price(i)->Release(); } } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::OnShowWindow(BOOL val) { if (val == TRUE) { //------------------------------------------------------------------------------ keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType = uiConvenienceStore_Purchase::kDialog_ID; msg.wParam = uiConvenienceStore_Purchase::kDialog_ID; msg.DoSomething = GlobalFunc::DoShowWindowEx; g_KeyQueueManager.PushBack(msg); //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ if (purchase_type() == uiConvenienceStore_Purchase::kPurchase_Buy) { //2566 ±¸¸ÅÇϱâ if (GetControlID_byPosition(kControl_Text_S000)) GetStaticControlWZ(GetControlID_byPosition(kControl_Text_S000))->SetTextID(2566); ////155502 ÇÏ´ÜÀÇ ±¸ÀÔ ¹öưÀ» ´©¸£¸é À§ ¾ÆÀÌÅÛÀÌ ±¸ÀԵ˴ϴÙ.\nÀß È®ÀÎ ÈÄ °áÁ¦ ÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù. //GlobalFunc::SetTextFromStringTable(GetControlWZ_byPosition(kControl_Text_S001), 155502); //155530 ±¸ÀÔ GlobalFunc::SetTextFromStringTable(GetControlWZ_byPosition(kControl_Button_B001), ConvenienceStore::Define::kShopStringCode_Shop_Popup_Buy); } else { //155501 ¼±¹° Çϱâ if (GetControlID_byPosition(kControl_Text_S000)) GetStaticControlWZ(GetControlID_byPosition(kControl_Text_S000))->SetTextID(155501); ////155503 ÇÏ´ÜÀÇ ¼±¹° ¹öưÀ» ´©¸£¸é À§ ¾ÆÀÌÅÛÀÌ ±¸ÀԵ˴ϴÙ.\nÀß È®ÀÎ ÈÄ °áÁ¦ ÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù. //GlobalFunc::SetTextFromStringTable(GetControlWZ_byPosition(kControl_Text_S001), 155503); //155529 ¼±¹° GlobalFunc::SetTextFromStringTable(GetControlWZ_byPosition(kControl_Button_B001), ConvenienceStore::Define::kShopStringCode_Shop_Popup_Gift); } //------------------------------------------------------------------------------ g_InterfaceManager.LockDlgs(uiConvenienceStore_Purchase::kDialog_ID); } else { if (GetManager()->popup_package() ) { if (GetManager()->popup_package()->owner() == this) { GetManager()->popup_package()->uiConvenienceStore_PopupMenu::ShowInterface(FALSE); } } RemovePurchase(); g_KeyQueueManager.DeleteMsg(uiConvenienceStore_Purchase::kDialog_ID); #if WZENGINEVER >= 410 if (g_InterfaceManager.GetDialogManager()->GetLockDlgID() == uiConvenienceStore_Purchase::kDialog_ID) { g_InterfaceManager.UnLockDlgs(); } #endif //#if WZENGINEVER >= 410 } } //------------------------------------------------------------------------------ DropdownControl* uiConvenienceStore_Purchase::dropdown_price(int index) { if (index >= 0 && index < uiConvenienceStore_Purchase::kListPerCount) { return &(dropdown_price_[index]); } return NULL; } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::MessageProc(SI_MESSAGE* message) { if (IsLock()) { return; } if (GetManager() == NULL) { return; } //------------------------------------------------------------------------------ for (int i = 0; i < kListPerCount; ++i) { bool is_change = false; if (dropdown_price(i)->MessageProc(message, OUT is_change)) { if (is_change) { CCtrlButtonWZ* button_control = backslot_button(i); ConvenienceStore::PurchaseItem* basket = reinterpret_cast(button_control->GetUserData()); basket->SetPriceSequence( dropdown_price(i)->CurrentUserData() ); } return; } } //------------------------------------------------------------------------------ switch (message->eResultMsg) { case RT_MSG_LBUTTONCLICK: OnLButtonClick(message); break; default: uiConvenienceStore_Dialog::MessageProc(message); VScrollDialog::MessageProc(message); break; } } //------------------------------------------------------------------------------ CCtrlVScrollWZ* uiConvenienceStore_Purchase::vscroll_control() { return GetVScrollControlWZ(GetControlID_byPosition(kControl_VScroll_V000)); } //------------------------------------------------------------------------------ bool uiConvenienceStore_Purchase::GetScrollArea(RECT& area) { if ((GetManager()->popup_package()->IsVisible() == TRUE) && (GetManager()->popup_package()->InterSectRect(Mouse::Instance()->CheckMousePos()) == TRUE)) { return false; } for (int i = 0; i < kListPerCount; ++i) { if (dropdown_price(i) != NULL) { if (dropdown_price(i)->IsOpened() == true) { return false; } } } for (int i = 0; i < kListPerCount; ++i) { CCtrlButtonWZ* button_control = backslot_button(i); if ((button_control != NULL) && (IsOverControl(button_control) == true)) { area = button_control->GetSizeRect(); return true; } } return false; } //------------------------------------------------------------------------------ bool uiConvenienceStore_Purchase::OnVScrollThumb(SI_MESSAGE* msg) { if (vscroll_control() && VScrollDialog::OnVScrollThumb(msg) == true) { FillPurchase(vscroll_control()->GetScrollPosWZ()); GetManager()->popup_package()->uiConvenienceStore_PopupMenu::ShowInterface(FALSE); return true; } return false; } //------------------------------------------------------------------------------ bool uiConvenienceStore_Purchase::OnVScrollUp(SI_MESSAGE* msg) { if (vscroll_control() && VScrollDialog::OnVScrollUp(msg) == true) { FillPurchase(vscroll_control()->GetScrollPosWZ()); GetManager()->popup_package()->uiConvenienceStore_PopupMenu::ShowInterface(FALSE); return true; } return false; } //------------------------------------------------------------------------------ bool uiConvenienceStore_Purchase::OnVScrollDown(SI_MESSAGE* msg) { if (vscroll_control() && VScrollDialog::OnVScrollDown(msg) == true) { FillPurchase(vscroll_control()->GetScrollPosWZ()); GetManager()->popup_package()->uiConvenienceStore_PopupMenu::ShowInterface(FALSE); return true; } return false; } //------------------------------------------------------------------------------ bool uiConvenienceStore_Purchase::OnLButtonClick(SI_MESSAGE* message) { bool result = true; switch (GetControlPosition_byID(message->dwCtrlID)) { case kControl_Button_B004: case kControl_Button_B028: { uiBase::ShowInterface(FALSE); } break; case kControl_Button_B001: { // ±¸¸ÅÇϱâ uiConvenienceStore_Dialog::AskShowType ask_show_type = kAskShow_None; if (purchase_type() == kPurchase_Buy) { //155507 Á¤¸» ±¸ÀÔ ÇϽðڽÀ´Ï±î? //155454 ±¸¸Å ÈÄ 7ÀÏ À̳» ±¸¸Å öȸ°¡ °¡´ÉÇϸç, »ç¿ëµÈ ¾ÆÀÌÅÛ ¹×\n°Å·¡·Î ÁÖ°í ¹ÞÀº ¾ÆÀÌÅÛÀº ±¸¸Åöȸ°¡ ºÒ°¡´ÉÇÕ´Ï´Ù. //155570 ----------------------------------------------- GetManager()->ask()->OpenAsk( this, uiConvenienceStore_Dialog::kAskShow_Buy ); GetManager()->ask()->AppendFText( g_InterfaceManager.GetInterfaceString(155507) ); #ifndef _RUSSIA GetManager()->ask()->AppendFText( g_InterfaceManager.GetInterfaceString(155454) ); #endif // _RUSSIA GetManager()->ask()->AppendFText( g_InterfaceManager.GetInterfaceString(155570) ); for( size_t i=0;i!=purchase_list().size();++i) { GetManager()->ask()->AppendItemText( purchase_list().at(i) ); } } else if (purchase_type() == kPurchase_Gift) { //155508 Á¤¸» ¼±¹° ÇϽðڽÀ´Ï±î? //155455 ¼±¹°º¸³»±â·Î Àü¼ÛµÈ ¾ÆÀÌÅÛÀº ±¸¸Åöȸ°¡ ºÒ°¡´ÉÇÕ´Ï´Ù. //155570 ----------------------------------------------- GetManager()->ask()->OpenAsk( this, uiConvenienceStore_Dialog::kAskShow_Gift ); GetManager()->ask()->AppendFText( g_InterfaceManager.GetInterfaceString(155508) ); #ifndef _RUSSIA GetManager()->ask()->AppendFText( g_InterfaceManager.GetInterfaceString(155455) ); #endif // _RUSSIA GetManager()->ask()->AppendFText( g_InterfaceManager.GetInterfaceString(155570) ); for( size_t i=0;i!=purchase_list().size();++i) { GetManager()->ask()->AppendItemText( purchase_list().at(i) ); } } } break; case kControl_Button_B017: { } break; case kControl_Button_B018: case kControl_Button_B020: case kControl_Button_B021: case kControl_Button_B022: case kControl_Button_B023: { if (vscroll_control()) { int index = GetControlPosition_byID(message->dwCtrlID) - kControl_Button_B018; RemovePurchase(vscroll_control()->GetScrollPosWZ() + index); if (purchase_list().size() > 0) { int scroll_max_num = max(0, (int)purchase_list().size() - kListPerCount); ResizeingVScrollControl(scroll_max_num, vscroll_control()->GetScrollPosWZ()); FillPurchase(vscroll_control()->GetScrollPosWZ()); } else { uiBase::ShowInterface(FALSE); } } } break; case kControl_Button_B024: { } break; case kControl_Button_B025: { } break; case kControl_Button_B026: { } break; case kControl_Button_B027: { } break; case kControl_Button_B029: { #if defined(_GLOBAL) || defined(_CHINA) //! ij½Ã ÃæÀü //155566 http://www.sunonline.co.kr GlobalFunc::ExecWebSite(155566); #else // 6825 ÁغñÁßÀÔ´Ï´Ù. À¥ÆäÀÌÁö¿¡¼­ È®ÀÎÇØÁÖ¼¼¿ä. GetManager()->ask()->OpenAsk( this, uiConvenienceStore_Dialog::kAskShow_Message ); GetManager()->ask()->AppendFText(g_InterfaceManager.GetInterfaceString( 6825 )); GetManager()->ask()->EnableCloseButton(); #endif } break; case kControl_Text_ST05: { } break; case kControl_Text_ST20: { } break; case kControl_Text_ST12: { } break; case kControl_Text_S000: { } break; case kControl_Text_S003: { } break; case kControl_Text_S004: { } break; case kControl_Text_S005: { } break; case kControl_Text_S006: { } break; case kControl_Text_S007: { } break; #ifdef _NA_20111118_CASHSHOP_UI_RENEWAL #else case kControl_Text_S008: { } break; case kControl_Text_S009: { } break; case kControl_Text_S010: { } break; case kControl_Text_S011: { } break; case kControl_Text_S012: { } break; #endif //_NA_20111118_CASHSHOP_UI_RENEWAL case kControl_Text_S013: { } break; case kControl_Text_S014: { } break; case kControl_Text_S015: { } break; case kControl_Text_S016: { } break; case kControl_Text_S001: { } break; case kControl_Text_S002: { } break; case kControl_Text_S017: { } break; case kControl_Text_S018: { } break; //case kControl_Text_S019: // { // } // break; case kControl_Text_S020: { } break; //case kControl_List_L000: // { // } // break; //case kControl_List_L005: // { // } // break; //case kControl_List_L006: // { // } // break; //case kControl_List_L007: // { // } // break; //case kControl_List_L008: // { // } // break; //case kControl_VScroll_V000: // { // } // break; case kControl_Picture_P002: { } break; case kControl_Picture_P005: { } break; case kControl_Picture_P007: { } break; case kControl_Picture_PI11: { } break; case kControl_Picture_PI13: { } break; case kControl_Picture_P001: { } break; case kControl_Picture_P006: { } break; default: { } break; } return result; } void uiConvenienceStore_Purchase::OpenPurchase( PurchaseType _purchase_type ) { purchase_type_ = _purchase_type; uiConvenienceStore_Dialog::ShowInterface(TRUE); _UpdateControlState(); } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::_UpdateControlState() { if( purchase_type_ == kPurchase_Gift ) { if (GetControlWZ_byPosition(kControl_Text_S019)) GetControlWZ_byPosition(kControl_Text_S019)->SetTextWZ(gift_recv_name_.c_str()); } else { if (GetControlWZ_byPosition(kControl_Text_S019)) GetControlWZ_byPosition(kControl_Text_S019)->SetTextWZ(g_pHero->GetName()); } } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::SetGiftMessage( LPCTSTR target_name, LPCTSTR send_message ) { if (target_name != NULL) { gift_recv_name_ = target_name; } if (send_message != NULL) { gift_msg_ = send_message; } } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::UpdateUI(TCHAR* recv_character_name) { if (GetControlWZ_byPosition(kControl_Text_S019)) GetControlWZ_byPosition(kControl_Text_S019)->SetTextWZ(recv_character_name); } //------------------------------------------------------------------------------ bool uiConvenienceStore_Purchase::InsertPurchase(ConvenienceStore::ProductItem* product, int basket_product_index) { if (product == NULL) { return false; } if ((purchase_type() == kPurchase_Buy && product->is_possible_sales() == false) || (purchase_type() == kPurchase_Gift && product->is_possible_gift() == false)) { return false; } ConvenienceStore::PurchaseItem* basket = ConvenienceStore::PurchaseItem::CreatePurchase(product, basket_product_index); if (basket == NULL) { return false; } purchase_list().push_back(basket); //------------------------------------------------------------------------------ int scroll_max_num = max(0, (int)purchase_list().size() - kListPerCount); ResizeingVScrollControl(scroll_max_num, 0); FillPurchase(vscroll_control()->GetScrollPosWZ()); return true; } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::RemovePurchase() { std::vector::iterator begin = purchase_list().begin(); std::vector::iterator end = purchase_list().end(); for (; begin != end; ++ begin) { ConvenienceStore::PurchaseItem* basket = (*begin); SAFE_DELETE(basket) } purchase_list().clear(); } //------------------------------------------------------------------------------ bool uiConvenienceStore_Purchase::RemovePurchase(int purchase_index) { if (purchase_index < 0 || purchase_index >= static_cast(purchase_list().size())) { return false; } std::vector::iterator iter = purchase_list().begin() + purchase_index; if (iter != purchase_list().end()) { ConvenienceStore::PurchaseItem* basket = (*iter); SAFE_DELETE(basket); purchase_list().erase(iter); } return true; } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::OnUpdateSolarDialog() { #if WZENGINEVER >= 410 if ((g_InterfaceManager.GetDialogManager()->GetLockDlgID() != 0) && (g_InterfaceManager.GetDialogManager()->GetLockDlgID() != uiConvenienceStore_Purchase::kDialog_ID)) { return; } #endif //#if WZENGINEVER >= 410 //------------------------------------------------------------------------------ VScrollDialog::Update(); //------------------------------------------------------------------------------ //°¡°ÝÇ¥½Ã CASH purchase_price = GetPurchasePrice(); CASH my_price = (CASH)ConvenienceStore::CashShop::instance()->GetMyCash(); if( cash_type_ == ConvenienceStore::Define::kCashType_PPCard ) my_price = (CASH)ConvenienceStore::CashShop::instance()->GetMyPPCash(); else if( cash_type_ == ConvenienceStore::Define::kCashType_Mileage ) my_price = (CASH)ConvenienceStore::CashShop::instance()->GetMyMileage(); GlobalFunc::SetText_SignMoney(GetControlWZ_byPosition(kControl_Text_ST05), my_price); GlobalFunc::SetText_SignMoney(GetControlWZ_byPosition(kControl_Text_S015), purchase_price); GlobalFunc::SetText_SignMoney(GetControlWZ_byPosition(kControl_Text_S016), (INT64)my_price - (INT64)purchase_price); if (GetControlWZ_byPosition(kControl_Button_B001)) { ENUM_DRAWSTATE draw_state = GetControlWZ_byPosition(kControl_Button_B001)->GetDrawState(); if ((my_price < purchase_price) && (draw_state != E_DISABLE)) { GetControlWZ_byPosition(kControl_Button_B001)->EnableWindowWZ(false); } else if ((my_price >= purchase_price) && (draw_state == E_DISABLE)) { GetControlWZ_byPosition(kControl_Button_B001)->EnableWindowWZ(true); } } //155496 ÃÑ %s°³ÀÇ ¾ÆÀÌÅÛÀ» ¼±Åà Çϼ̽À´Ï´Ù. GlobalFunc::SetTextFromStringTable(GetControlWZ_byPosition(kControl_Text_ST20), 155496, (int)purchase_list().size()); //------------------------------------------------------------------------------ if (my_price < purchase_price) { //155504 ÇöÀç º¸À¯ÇϽмÒÁö±ÝÀÌ ºÎÁ·ÇÏ¿© Á¤»óÀûÀÎ ±¸ÀÔÀ»\nÇÏ½Ç ¼ö ¾ø½À´Ï´Ù. ij½Ã ÃæÀü ÈÄ¿¡ ±¸ÀÔ ÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù. if (GetControlID_byPosition(kControl_Text_S001)) GetStaticControlWZ(GetControlID_byPosition(kControl_Text_S001))->SetTextColor(RGBA(255, 0, 0, 255)); GlobalFunc::SetTextFromStringTable(GetControlWZ_byPosition(kControl_Text_S001), 155504); } else { #ifdef _RUSSIA CCtrlStaticWZ* static_control_ptr = NULL; static_control_ptr = static_cast (GetControlWZ_byPosition(kControl_Text_S001)); if (static_control_ptr) { GlobalFunc::SetCaption(static_control_ptr, _T("")); } #else if (GetControlID_byPosition(kControl_Text_S001)) GetStaticControlWZ(GetControlID_byPosition(kControl_Text_S001))->SetTextColor(RGBA(255, 255, 255, 255)); if (purchase_type() == uiConvenienceStore_Purchase::kPurchase_Buy) { //155502 ÇÏ´ÜÀÇ ±¸ÀÔ ¹öưÀ» ´©¸£¸é À§ ¾ÆÀÌÅÛÀÌ ±¸ÀԵ˴ϴÙ.\nÀß È®ÀÎ ÈÄ °áÁ¦ ÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù. GlobalFunc::SetTextFromStringTable(GetControlWZ_byPosition(kControl_Text_S001), 155502); } else { //155503 ÇÏ´ÜÀÇ ¼±¹° ¹öưÀ» ´©¸£¸é À§ ¾ÆÀÌÅÛÀÌ ±¸ÀԵ˴ϴÙ.\nÀß È®ÀÎ ÈÄ °áÁ¦ ÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù. GlobalFunc::SetTextFromStringTable(GetControlWZ_byPosition(kControl_Text_S001), 155503); } #endif // _RUSSIA } //------------------------------------------------------------------------------ for (int i = 0; i < kListPerCount; ++i) { if (dropdown_price(i) != NULL) { dropdown_price(i)->Update(); } } UpdateTooltip(); } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::OnRenderSolarDialog() { #if WZENGINEVER >= 410 if (g_InterfaceManager.GetDialogManager()->GetLockDlgID() == uiConvenienceStore_Purchase::kDialog_ID) { POINT pt = g_pApplication->Get2DModeMapping(); g_pSunRenderer->ColorFill(WzColor_RGBA(0,0,0,128), 0.0f, 0.0f, (float)pt.x,(float)pt.y); GetDialogWZ()->OnDraw(true); } #endif //#if WZENGINEVER >= 410 for (int i = 0; i < kListPerCount; ++i) { CCtrlButtonWZ* button_control = backslot_button(i); CControlWZ* image_control = GetControlWZ_byPosition(kControl_Button_B011 + i); if (button_control != NULL && image_control != NULL) { ConvenienceStore::PurchaseItem* basket = reinterpret_cast(button_control->GetUserData()); if (basket != NULL && basket->GetIconImage() != NULL) { basket->GetIconImage()->Render(&(image_control->GetSizeRect())); } } } } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::FillPurchase(int begin_purchase_index) { bool buy_mileage = cash_type_ == ConvenienceStore::Define::kCashType_Mileage; for (int i = 0; i < kListPerCount; ++i) { CCtrlStaticWZ* name_control = GetStaticControlWZ(GetControlID_byPosition(kControl_Text_S003 + i)); CCtrlButtonWZ* button_control = backslot_button(i); CControlWZ* close_control = GetControlWZ_byPosition(kControl_Button_B018 + i); dropdown_price(i)->DeleteItemAll(); dropdown_price(i)->SetEnable(false); int index = begin_purchase_index + i; if (index >= 0 && index < (int)purchase_list().size()) { std::vector::const_reference basket = purchase_list().at(index); close_control->EnableWindowWZ(true); name_control->SetTextWZ(basket->GetName()); button_control->SetUserData(reinterpret_cast(basket)); if (basket->is_lotto() || basket->is_package()) { TCHAR msg_text[INTERFACE_STRING_LENGTH] = {NULL, }; ConvenienceStore::GetDisplayPriceStringByProduct(msg_text, INTERFACE_STRING_LENGTH, basket); dropdown_price(i)->InsertItem(msg_text, (void*)(basket->GetPriceSequence()), StrToWzID("st10"), DT_VCENTER | DT_CENTER); dropdown_price(i)->ResetVScroll(); dropdown_price(i)->SelectByUserData(basket->GetPriceSequence()); } else { std::vector::iterator begin = basket->GetInfoVector().begin(); std::vector::iterator end = basket->GetInfoVector().end(); int sel_index = 0; for (; begin != end; ++begin, ++sel_index) { TCHAR msg_text[INTERFACE_STRING_LENGTH] = {NULL, }; ConvenienceStore::GetDisplayPriceStringByProductInfo(msg_text, INTERFACE_STRING_LENGTH, (ConvenienceStore::ProductInfo*)&(*begin), buy_mileage); dropdown_price(i)->InsertItem(msg_text, (void*)begin->GetPriceProperty().GetPriceSequence(), StrToWzID("st10"), DT_VCENTER | DT_CENTER); } dropdown_price(i)->SetEnable(true); dropdown_price(i)->ResetVScroll(); dropdown_price(i)->SelectByUserData(basket->GetPriceSequence()); } } else { close_control->EnableWindowWZ(false); name_control->SetTextWZ(""); button_control->SetUserData(NULL); } } } //------------------------------------------------------------------------------ CCtrlButtonWZ* uiConvenienceStore_Purchase::backslot_button(int slot_index) { return GetButtonControlWZ(GetControlID_byPosition(kControl_Button_B003 + slot_index)); } //------------------------------------------------------------------------------ CASH uiConvenienceStore_Purchase::GetPurchasePrice() { std::vector::iterator begin = purchase_list().begin(); std::vector::iterator end = purchase_list().end(); CASH total_price = 0;; for (; begin != end; ++begin) { total_price += (*begin)->GetPrice((*begin)->GetPriceSequence()); } return total_price; } //------------------------------------------------------------------------------ void uiConvenienceStore_Purchase::UpdateTooltip() { #if WZENGINEVER >= 410 if ((g_InterfaceManager.GetDialogManager()->GetLockDlgID() != 0) && (g_InterfaceManager.GetDialogManager()->GetLockDlgID() != uiConvenienceStore_Purchase::kDialog_ID)) { return; } #endif //#if WZENGINEVER >= 410 //! ¹­À½ »óǰ ÅøÆÁÀÌ ¶° ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. if (GetManager()->popup_package()->IsVisible() == TRUE) { if ((GetManager()->popup_package()->InterSectRect(Mouse::Instance()->CheckMousePos()) == TRUE) || (IsOverControl(GetManager()->popup_package()->owner_control()) == true)) { return; } } for (int i = 0; i < kListPerCount; ++i) { CCtrlButtonWZ* button_control = backslot_button(i); CControlWZ* picture_control = GetControlWZ_byPosition(kControl_Button_B011 + i); if ((IsOverControl(picture_control) == true) && (button_control->GetUserData() != NULL)) { ConvenienceStore::PurchaseItem* basket = reinterpret_cast(button_control->GetUserData()); if (basket->IsPurchase() == false) { continue; } if (basket->is_package() == true) { GetManager()->popup_package()->ShowInterface(TRUE, basket); GetManager()->popup_package()->Reset(); GetManager()->popup_package()->set_owner(this, picture_control); GetManager()->popup_package()->MoveWindowWZ(button_control->GetSizeRect().left, picture_control->GetSizeRect().bottom); return; } else { GetManager()->RegisterTooltip(basket); } break; } } GetManager()->popup_package()->uiConvenienceStore_PopupMenu::ShowInterface(FALSE); } //------------------------------------------------------------------------------ bool uiConvenienceStore_Purchase::OnClickAskDialog(uiConvenienceStore_Dialog::AskCommandType command_type, uiConvenienceStore_Dialog::AskShowType show_type, void* user_data) { switch( show_type ) { case uiConvenienceStore_Dialog::kAskShow_Buy: case uiConvenienceStore_Dialog::kAskShow_Gift: case uiConvenienceStore_Dialog::kAskShow_StorageBuy_OneRecv: case uiConvenienceStore_Dialog::kAskShow_StorageBuy_AllRecv: case uiConvenienceStore_Dialog::kAskShow_StorageBuy_AllRecv_Confirm: //!< ¹Þ°í ³ª¼­ È®ÀÎâ case uiConvenienceStore_Dialog::kAskShow_StorageGift_OneRecv: case uiConvenienceStore_Dialog::kAskShow_StorageGift_AllRecv: case uiConvenienceStore_Dialog::kAskShow_StorageGift_AllRecv_Confirm: //!< ¹Þ°í ³ª¼­ È®ÀÎâ // ±¸¸ÅÀÇ È®ÀÎ if (command_type == uiConvenienceStore_Dialog::kAskCommand_OK) { if( purchase_list().size() == 0 ) { return true; } // °áÁ¦ ¼ö´Ü ¼³Á¤ ConvenienceStore::Define::CashType cash_type = cash_type_; if (purchase_type() == uiConvenienceStore_Purchase::kPurchase_Buy) { ConvenienceStore::CashShop::instance()->SendBuyItem(purchase_list(), cash_type ); GetManager()->confirm()->SetRecvName(g_pHero->GetName()); } else if (purchase_type() == uiConvenienceStore_Purchase::kPurchase_Gift) { ConvenienceStore::CashShop::instance()->SendGiftItem(purchase_list(), cash_type, gift_recv_name_.c_str(), gift_msg_.c_str() ); GetManager()->confirm()->SetRecvName( gift_recv_name_.c_str() ); } //! basket ºñ¿î´Ù. std::vector::reverse_iterator rbegin = purchase_list().rbegin(); std::vector::reverse_iterator rend = purchase_list().rend(); for (; rbegin != rend; ++rbegin) { GetManager()->basket()->RemoveBasket((*rbegin)->GetBasketProduceIndex()); } uiConvenienceStore_Dialog::ShowInterface(FALSE); } break; case uiConvenienceStore_Dialog::kAskShow_Message: break; } return true; }