//------------------------------------------------------------------------------ // uiVendorSell_dialogproc.cpp // (C) 2005 ckbang //------------------------------------------------------------------------------ #include "SunClientPrecompiledHeader.h" #include "uiVendorMan/uiVendorMan.h" #include "uiVendorSell.h" #include "SCItemSlot.h" #include "ItemInfoParser.h" #include "ItemFormula.h" #include "uiVendorBuy/uiVendorBuy.h" #include "ItemUnitRenderer.h" #include "MouseHandler.h" #include "Mouse.h" #include "ItemManager.h" #include "ChatDialog.h" #include "HeroActionInput.h" #include "slotkeygenerator.h" #include "CursorChangeTransact.h" #include "Application.h" #include "interfacemanager.h" #include "globalfunc.h" #include "uiToolTipMan/uiToolTipMan.h" #include "uiVendorTitlePopup/uiVendorTitlePopup.h" #include "Hero.h" //------------------------------------------------------------------------------ WzID uiVendorSell::m_wzId[DIALOG_MAX] = { #ifdef _NA_0_20101124_VENDOR_SLOT_COUNT_INCREASE StrToWzID("B005"), // DIALOG_SLOT00 StrToWzID("B006"), // DIALOG_SLOT01 StrToWzID("B007"), // DIALOG_SLOT02 StrToWzID("B008"), // DIALOG_SLOT03 StrToWzID("B009"), // DIALOG_SLOT04 StrToWzID("B010"), // DIALOG_SLOT05 StrToWzID("B011"), // DIALOG_SLOT06 StrToWzID("B012"), // DIALOG_SLOT07 StrToWzID("B020"), // DIALOG_SLOT10 StrToWzID("B019"), // DIALOG_SLOT11 StrToWzID("B018"), // DIALOG_SLOT12 StrToWzID("B017"), // DIALOG_SLOT13 StrToWzID("B013"), // DIALOG_SLOT14 StrToWzID("B014"), // DIALOG_SLOT15 StrToWzID("B015"), // DIALOG_SLOT16 StrToWzID("B016"), // DIALOG_SLOT17 StrToWzID("B029"), // DIALOG_SLOT20 StrToWzID("B030"), // DIALOG_SLOT21 StrToWzID("B031"), // DIALOG_SLOT22 StrToWzID("B032"), // DIALOG_SLOT23 StrToWzID("B033"), // DIALOG_SLOT24 StrToWzID("B034"), // DIALOG_SLOT25 StrToWzID("B035"), // DIALOG_SLOT26 StrToWzID("B036"), // DIALOG_SLOT27 StrToWzID("B028"), // DIALOG_SLOT30 StrToWzID("B027"), // DIALOG_SLOT31 StrToWzID("B026"), // DIALOG_SLOT32 StrToWzID("B025"), // DIALOG_SLOT33 StrToWzID("B021"), // DIALOG_SLOT34 StrToWzID("B022"), // DIALOG_SLOT35 StrToWzID("B023"), // DIALOG_SLOT36 StrToWzID("B024"), // DIALOG_SLOT37 StrToWzID("B037"), // DIALOG_SLOT30 StrToWzID("B038"), // DIALOG_SLOT31 StrToWzID("B039"), // DIALOG_SLOT32 StrToWzID("B040"), // DIALOG_SLOT33 StrToWzID("B041"), // DIALOG_SLOT34 StrToWzID("B042"), // DIALOG_SLOT35 StrToWzID("B043"), // DIALOG_SLOT46 StrToWzID("B044"), // DIALOG_SLOT47 #else StrToWzID("B005"), // DIALOG_SLOT00 StrToWzID("B006"), // DIALOG_SLOT01 StrToWzID("B007"), // DIALOG_SLOT02 StrToWzID("B008"), // DIALOG_SLOT03 StrToWzID("B009"), // DIALOG_SLOT04 StrToWzID("B010"), // DIALOG_SLOT05 StrToWzID("B011"), // DIALOG_SLOT10 StrToWzID("B012"), // DIALOG_SLOT11 StrToWzID("B013"), // DIALOG_SLOT12 StrToWzID("B014"), // DIALOG_SLOT13 StrToWzID("B015"), // DIALOG_SLOT14 StrToWzID("B016"), // DIALOG_SLOT15 StrToWzID("B017"), // DIALOG_SLOT20 StrToWzID("B018"), // DIALOG_SLOT21 StrToWzID("B019"), // DIALOG_SLOT22 StrToWzID("B020"), // DIALOG_SLOT23 StrToWzID("B021"), // DIALOG_SLOT24 StrToWzID("B022"), // DIALOG_SLOT25 StrToWzID("B023"), // DIALOG_SLOT30 StrToWzID("B024"), // DIALOG_SLOT31 StrToWzID("B025"), // DIALOG_SLOT32 StrToWzID("B026"), // DIALOG_SLOT33 StrToWzID("B027"), // DIALOG_SLOT34 StrToWzID("B028"), // DIALOG_SLOT35 #endif //_NA_0_20101124_VENDOR_SLOT_COUNT_INCREASE StrToWzID("T001"), // DIALOG_TXT_SELLITEM StrToWzID("T006"), // DIALOG_TXT_SELLMSG StrToWzID("E000"), // DIALOG_EDIT_SELLMSG, StrToWzID("T002"), // DIALOG_TXT_ITEMCOUNTS, StrToWzID("T004"), // DIALOG_TXT_ITEMVALUE, StrToWzID("T003"), // DIALOG_TXTVALUE_ITEMCOUNTS, StrToWzID("T005"), // DIALOG_TXTVALUE_ITEMVALUTE, #ifdef _JBH_ADD_VENDOR_COMMISION StrToWzID("T009"), StrToWzID("T007"), #endif StrToWzID("TI01"), // DIALOG_BTN_STARTEND, StrToWzID("TI02"), // DIALOG_BTN_MODIFY, StrToWzID("TI03"), // DIALOG_BTN_SUBITEM, StrToWzID("TI00"), // DIALOG_BTN_INPUTMODIFY, StrToWzID("TI04"), // DIALOG_BTN_PAUSE StrToWzID("B000"), // DIALOG_EXIT StrToWzID("S000"), // DIALOG_TXT_ITEM_UNIT_VALUE, StrToWzID("S001"), // DIALOG_TXTVALUE_ITEM_UNIT_VALUE, }; //------------------------------------------------------------------------------ /** called to show request */ void uiVendorSell::OnShowWindow( BOOL val ) { TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,}; if ( ! g_pHero ) return; if (val) { if( !EnableOpenVendorState()) return; // ÀÌ·¯ÇÑ °æ¿ì¿¡´Â °³ÀλóÁ¡ ±¸¸ÅâÀ» ´Ý¾Æ¹ö¸®°í °³ÀλóÁ¡À» °­Á¦·Î ¿­µµ·Ï ÇÑ´Ù. InitDataWhenShowWindow(); POINT pt = m_pVendorMan->GetWinPos(); GetDialogWZ()->MoveWindowWZ((float)pt.x, (float)pt.y); this->GetUIMan()->AttachFirstDialog(InterfaceManager::DIALOG_VENDOR_SELL); g_pHero->SetBeHaveState(PLAYER_BEHAVE_VENDOR_ESTABLISHER_STATE); uiVendorBuy* pVendorBuy = GET_CAST_DIALOG( uiVendorBuy, IM_VENDOR_MANAGER::VENDOR_BUY); if ( pVendorBuy->IsVisible() ) { pVendorBuy->Exit(); } keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType=eDoType_dialog_vendor_sell; msg.wParam=InterfaceManager::DIALOG_VENDOR_SELL; msg.DoSomething=GlobalFunc::DoVentorSell; g_KeyQueueManager.PushBack(msg); m_bShow = TRUE; g_pHero->StopMove(); g_pHero->ResetMoveFlag(); g_HeroInput.SetAutoRun(FALSE); g_HeroInput.SetFollowState(FALSE); g_HeroInput.SetAutoAttack(FALSE); } else { FlushUnitDraw(); CloseSubWindow(); g_pHero->SetBeHaveState(PLAYER_BEHAVE_IDLE_STATE); g_HeroInput.SetAckBeginVendor(FALSE); m_MouseOverObject.eMouseOverType = eMOUSE_OVER_MAX; g_KeyQueueManager.DeleteMsg(eDoType_dialog_vendor_sell); this->GetUIMan()->DeAttachFirstDialog(InterfaceManager::DIALOG_VENDOR_SELL); if(g_pHero->GetCurState() == STATE::SIT) g_HeroInput.OnSkill(eACTION_SIT_AND_STAND + eACTION_START_SKILL_CODE); EndVendorSyn(); m_bShow = FALSE; RECT rc; this->GetDialogWZ()->GetClientRect(&rc); POINT pt = { rc.left, rc.top }; this->m_pVendorMan->SetWinPos(pt); } this->GetUIMan()->ShowWindow(InterfaceManager::DIALOG_EQUIP, val); } //------------------------------------------------------------------------------ /** */ void uiVendorSell::Exit() { if (this->m_bStarted) { EndVendorSyn(); } else { this->ShowInterfaceWithSound(FALSE); } } //------------------------------------------------------------------------------ /** */ void uiVendorSell::MessageProc( SI_MESSAGE * pMessage ) { if (this->IsLock()) return; switch( pMessage->eResultMsg ) { case RT_MSG_EDIT_ENTERKEYDOWN: { } break; case RT_MSG_LBUTTONCLICK: { POSTYPE pos = getCtrlIDToPos( pMessage->dwCtrlID ); if( pos < POS_MAX_SLOT ) { CControlWZ * pControl = getControl(pos); if (pControl) { RECT rcSlot = pControl->GetSizeRect(); MouseHandler::Instance()->ItemTransaction(SI_VENDOR_SELL, pos, &rcSlot); } // ½½·Ô¿¡ ´ëÇÑ Ã³¸®°¡ ³¡³µÀ¸¹Ç·Î ´ÙÀ̾ó·Î±× ¸Þ½ÃÁö 󸮴 ¿©±â¼­ Break break; } switch( getCtrlIDToPos( pMessage->dwCtrlID ) ) { // ´Ý±â case DIALOG_EXIT: { Exit(); } break; case DIALOG_EDIT_SELLMSG: { } break; case DIALOG_BTN_INPUTMODIFY: { if (this->m_bStarted) { } else { GET_DIALOG(IM_VENDOR_MANAGER::VENDOR_TITLE_POPUP)->ShowWindow(TRUE); uiBase * vendorTitlePopup = GET_DIALOG( IM_VENDOR_MANAGER::VENDOR_TITLE_POPUP ); if ( vendorTitlePopup ) { vendorTitlePopup->ShowWindow(TRUE); } } } break; case DIALOG_BTN_STARTEND: { // - °ÔÀλóÁ¡À» ½ÃÀÛÇÒ ¼ö ÀÖ´Â Á¶°Ç // -- ¹Ýµå½Ã ÇѰ³ ÀÌ»óÀÇ ¾ÆÀÌÅÛÀÌ °Å·¡´ë»óÀ¸·Î ¿Ã·ÁÁ®¾ß¸¸ ÇÑ´Ù. if (this->GetSlotNum()) { this->VendingStartEnd(); } } break; case DIALOG_BTN_MODIFY: { if (! m_bStarted) { // ½ÃÀÛ Àü¿¡´Â ´Ü¼øÇÏ°Ô °¡°Ý¸¸ »õ·Î Ã¥Á¤ if (this->GetSlotNum()) { this->OpenItemModifyPopup(this->m_curPos); } } } break; case DIALOG_BTN_SUBITEM: { if (! m_bStarted) { if (this->GetSlotNum()) { this->ItemSub(this->m_curPos); } } } break; #ifdef _JBH_MOD_MONEY_OUTPUT case DIALOG_TXTVALUE_ITEMVALUTE: case DIALOG_TXT_COMMISION_VALUE: { m_bClickMoney = TRUE; } break; #endif case DIALOG_BTN_PAUSE: { PauseVendorSyn(); } break; } } break; default: { SolarDialog::MessageProc( pMessage ); } break; } } //---------------------------------------------------------------------------- /** */ void uiVendorSell::MouseOver_MsgProc( SI_MESSAGE * pMessage ) { switch( pMessage->eResultMsg ) { case RT_MSG_MOUSEOVER: { POSTYPE pos = getCtrlIDToPos( pMessage->dwCtrlID ); if ( pos >= POS_SLOT_BEGIN && pos < POS_SLOT_END ) { if (!IsEmpty( pos )) { SCSlot & rSlot = GetSlot( pos ); m_MouseOverObject.eMouseOverType = eMOUSE_OVER_SLOT; m_MouseOverObject.pSlot = &rSlot; } else { m_MouseOverObject.eMouseOverType = eMOUSE_OVER_MAX; } } else { m_MouseOverObject.eMouseOverType = eMOUSE_OVER_MAX; } } break; } } //------------------------------------------------------------------------------ /** */ void uiVendorSell::OnUpdateSolarDialog() { if (m_pItemUnitRenderer) m_pItemUnitRenderer->Update(); if (g_pHero) { if (g_pHero->GetBeHaveState() == PLAYER_BEHAVE_IDLE_STATE) { this->ShowInterface(FALSE); return; } } this->updateVendingMsgs(); this->updateVendingBtns(); this->updateVendingCurrentItemInfos(); #ifdef _JBH_MOD_MONEY_OUTPUT #if defined(__KR) || defined(_KOREA) this->updateTooltip(DIALOG_TXTVALUE_ITEMVALUTE , m_curMoney); this->updateTooltip(DIALOG_TXT_COMMISION_VALUE , m_curCommision); # endif //#if defined(__KR) || defined(_KOREA) #endif if (this->m_bStarted) { if (!this->GetSlotNum()) { this->VendingStartEnd(); } } PauseButtonShowNHide(); } //------------------------------------------------------------------------------ /** */ void uiVendorSell::updateVendingMsgs() { CCtrlStaticWZ * pControl; pControl = (CCtrlStaticWZ*)getControl(DIALOG_EDIT_SELLMSG); GlobalFunc::SetCaption( pControl, this->m_szVendorMsg ); pControl->SetTextColor(WzColor_RGBA( 152, 208, 142, 255 )); } //------------------------------------------------------------------------------ /** */ void uiVendorSell::updateVendingBtns() { TCHAR szMessage[INTERFACE_STRING_LENGTH]; POSTYPE pos; CCtrlStaticWZ * pControl; pos = getCtrlIDToPos( m_wzId[DIALOG_BTN_STARTEND] ); pControl = (CCtrlStaticWZ*)getControl(pos); if (this->m_bStarted) { // ³¡³»±â const int c_iEnd = 70402; g_InterfaceManager.GetInterfaceString( c_iEnd, szMessage, INTERFACE_STRING_LENGTH ); } else { // ½ÃÀÛÇϱâ const int c_iStart = 70401; g_InterfaceManager.GetInterfaceString( c_iStart, szMessage, INTERFACE_STRING_LENGTH ); } if (!this->GetSlotNum()) { pControl->SetTextColor(RGBA(100,100,100,255)); } else { pControl->ShowWindowWZ(WZ_SHOW); pControl->SetTextColor(RGBA(227,179,27,255)); } GlobalFunc::SetCaption( pControl, szMessage ); pos = getCtrlIDToPos( m_wzId[DIALOG_BTN_MODIFY] ); pControl = (CCtrlStaticWZ*)getControl(pos); // °¡°Ý ¼öÁ¤ g_InterfaceManager.GetInterfaceString( eST_CHANGE_MONEY, szMessage, INTERFACE_STRING_LENGTH ); if (!this->GetSlotNum() || this->m_bStarted) { pControl->SetTextColor(RGBA(100,100,100,255)); } else { pControl->ShowWindowWZ(WZ_SHOW); pControl->SetTextColor(RGBA(227,179,27,255)); } GlobalFunc::SetCaption( pControl, szMessage ); pos = getCtrlIDToPos( m_wzId[DIALOG_BTN_SUBITEM] ); pControl = (CCtrlStaticWZ*)getControl(pos); // ¾ÆÀÌÅÛ ³»¸®±â g_InterfaceManager.GetInterfaceString( eST_SUBITEM_BUY_CANCEL, szMessage, INTERFACE_STRING_LENGTH ); if (!this->GetSlotNum() || this->m_bStarted) { pControl->SetTextColor(RGBA(100,100,100,255)); } else { pControl->ShowWindowWZ(WZ_SHOW); pControl->SetTextColor(RGBA(227,179,27,255)); } GlobalFunc::SetCaption( pControl, szMessage ); pos = getCtrlIDToPos( m_wzId[DIALOG_BTN_INPUTMODIFY] ); pControl = (CCtrlStaticWZ*)getControl(pos); if (pControl) { if (this->m_bStarted) { pControl->SetTextColor(RGBA(100,100,100,255)); } else { pControl->SetTextColor(RGBA(227,179,27,255)); } // ÀÔ·Â g_InterfaceManager.GetInterfaceString( 4535, szMessage, INTERFACE_STRING_LENGTH ); GlobalFunc::SetCaption( pControl, szMessage ); } } //------------------------------------------------------------------------------ /** */ void uiVendorSell::updateVendingCurrentItemInfos() { TCHAR szMessage[INTERFACE_STRING_LENGTH]; POSTYPE pos; CCtrlStaticWZ * pControl; DWORD money_color; pos = getCtrlIDToPos( m_wzId[DIALOG_TXTVALUE_ITEMCOUNTS] ); pControl = (CCtrlStaticWZ*)getControl(pos); Sprintf (szMessage, _T("%d"), m_curAmouts); money_color = GlobalFunc::GetMoneyColor(m_curAmouts); pControl->SetTextColor(money_color); GlobalFunc::SetCaption( pControl, szMessage ); // ÃÑ ÆÇ¸Å ±Ý¾× pos = getCtrlIDToPos( m_wzId[DIALOG_TXTVALUE_ITEMVALUTE] ); pControl = (CCtrlStaticWZ*)getControl(pos); setFormatMoney(pControl, m_curMoney); CCtrlStaticWZ* text_control = static_cast(getControl(DIALOG_TXTVALUE_ITEM_UNIT_VALUE)); if (text_control) { MONEY unit_price = m_curAmouts != 0 ? (m_curMoney / m_curAmouts) : m_curMoney; money_color = GlobalFunc::GetMoneyColor(unit_price); text_control->SetTextColor(money_color); GlobalFunc::SetMoneyText(text_control, unit_price); } #ifdef _JBH_ADD_VENDOR_COMMISION // ¼ö¼ö·á »Ñ·ÁÁÖ±â pControl = (CCtrlStaticWZ *) getControl( DIALOG_TXT_COMMISION_VALUE); if( pControl ) { m_curCommision =(MONEY) ( m_curMoney * (float)TRADE_COMMISSION_RATE); setFormatMoney(pControl , m_curCommision); } #endif } //------------------------------------------------------------------------------ /** */ void uiVendorSell::OnRenderSolarDialog() { if (m_pItemUnitRenderer) m_pItemUnitRenderer->Render(); // ½½·Ô¿¡ ¼±ÅÃµÈ ¾ÆÀÌÅÛ Ç¥½ÃÇϱâ if(this->GetSlotNum() >0) { SCSlot& rSlot = this->GetSlot(m_curPos); if(rSlot.GetCode()) { CControlWZ* pControl = this->getControl(m_curPos); RECT rt = pControl->GetSizeRect(); g_InterfaceManager.RenderActivateMark( rt.left - 13, rt.top - 13); } } if ( this->m_MouseOverObject.eMouseOverType != eMOUSE_OVER_MAX) { if ( eMOUSE_OVER_SLOT == m_MouseOverObject.eMouseOverType ) { if (m_MouseOverObject.pSlot && m_MouseOverObject.pSlot->GetCode()) { uiToolTipMan* pUIMan = (uiToolTipMan*)g_InterfaceManager.GetUserInterfaceManager(UIMAN_TOOLTIP); if(pUIMan) { pUIMan->RegisterTooltipItem(m_MouseOverObject.pSlot, FALSE); pUIMan->SetTooltipDialogID(GetDialogKey()); } if( GetAsyncKeyState( VK_CONTROL ) & 0x8000 ) { uiToolTipMan* pUIMan2 = (uiToolTipMan*)g_InterfaceManager.GetUserInterfaceManager( UIMAN_TOOLTIP2 ); if( pUIMan2 ) { pUIMan2->RegisterHeroItemInfoTooltipFromSlot( m_MouseOverObject.pSlot ); } } } CursorChangeTransact::Instance()->ChangeTranaction( MouseCursor::eMouseCursor_Cursor_Cancle ); } } int iMouseX = Mouse::Instance()->GetMouseX(); int iMouseY = Mouse::Instance()->GetMouseY(); // ½ºÅµÃ³¸® // ÀÎÅÍÆäÀ̽º¿¡¼­ Dialog ¹ÙÅÁ¿¡¼­´Â Mouse Over°¡ ¿ÀÁö ¾Ê´Â´Ù. BOOL bMouseOver = FALSE; for (POSTYPE a = POS_SLOT_BEGIN; a < POS_SLOT_END; a++) { CControlWZ * pControl = getControl(a); RECT rc = pControl->GetSizeRect(); if (rc.left <= iMouseX && rc.right >= iMouseX) { if (rc.top <= iMouseY && rc.bottom >= iMouseY) { bMouseOver = TRUE; } } } if ( !bMouseOver ) { m_MouseOverObject.eMouseOverType = eMOUSE_OVER_MAX; } } //------------------------------------------------------------------------------ /** pSlot for not allocated in heap */ RC::eSLOT_INSERT_RESULT uiVendorSell::InsertSlot( POSTYPE AtPos, SCSlot & IN rSlot ) { RC::eSLOT_INSERT_RESULT eInsertSlotResult = SCSlotContainer::InsertSlot( AtPos, rSlot ); CControlWZ * pCtrl = getControl(AtPos); RECT rect = pCtrl->GetSizeRect(); // about locking ItemUp(rSlot.GetSlotIdx(), SI_VENDOR_SELL,rSlot.GetPos() ,AtPos, 0); SCItemSlot & rItemSlot = (SCItemSlot &)rSlot; rItemSlot.SetLock(TRUE); // Ŭ¶ó¿¡¼­ µû·Î ½Ã¸®¾óÀ» ¹ß±ÞÇÑ´Ù. DBSERIAL dwSerial = g_SlotKeyGenerator.GetKey(); SCSlot & rRealSlot = GetSlot(AtPos); rRealSlot.SetSerial(dwSerial); if(m_pItemUnitRenderer) { m_pItemUnitRenderer->AddItemUnit( rRealSlot.GetSerial(), rRealSlot.GetCode(), &rect, &rRealSlot ,pCtrl); } else { assert(!"m_pItemUnitRenderer == NULL"); } ReFreshRenderSlot(); return eInsertSlotResult; } //------------------------------------------------------------------------------ /** */ BOOL uiVendorSell::DeleteSlot( POSTYPE AtPos, SCSlot * pSlotOut ) { SCSlot& slot = this->GetSlot(AtPos); if (m_pItemUnitRenderer) { m_pItemUnitRenderer->RemoveItemUnit( slot.GetSerial() ); } else { assert(!"m_pItemUnitRenderer == NULL"); } g_SlotKeyGenerator.Restore( (DWORD)slot.GetSerial() ); SCSlot& toSlot = this->GetSlot(AtPos); uiSCItemSlot& rToItemSlot = (uiSCItemSlot&)toSlot; if ( !IsEmpty(AtPos) ) { SCSlotContainer * pInvenContainer = ItemManager::Instance()->GetContainer(SI_INVENTORY); assert(pInvenContainer); if(pInvenContainer) { SCItemSlot & rFromSlot = (SCItemSlot &)pInvenContainer->GetSlot( rToItemSlot.GetFromPos() ); rFromSlot.SetLock(FALSE); } } SCSlotContainer::DeleteSlot( AtPos, pSlotOut ); this->ReFreshRenderSlot(); return TRUE; } //------------------------------------------------------------------------------ /** */ void uiVendorSell::ReFreshRenderSlot() { ItemUnitRenderer::RenderUnit * pRender = NULL; RECT rcSlot; CControlWZ * pCtrl = NULL; for (int i = 0; i < GetMaxSlotNum(); ++i) { SCItemSlot & rSlot = (SCItemSlot &)SCSlotContainer::GetSlot(i); // º¸¿©Áà¾ßÇÒ ¸ñ·Ï if ( !IsEmpty(i) ) { if(!m_pItemUnitRenderer) continue; pRender = m_pItemUnitRenderer->GetItemUnit( rSlot.GetSerial() ); if (pRender == NULL) { pCtrl = getControl(i); rcSlot = pCtrl->GetSizeRect(); m_pItemUnitRenderer->AddItemUnit( rSlot.GetSerial(), rSlot.GetCode(), &rcSlot, &rSlot ,pCtrl); } if (pRender) { pRender->SetShow(TRUE); } } } } //------------------------------------------------------------------------------ // EOF //------------------------------------------------------------------------------ #ifdef _JBH_MOD_MONEY_OUTPUT void uiVendorSell::updateTooltip(POSTYPE atPos , MONEY money) { if( m_MouseOverPostype ) { if( m_MouseOverPostype != atPos) { return; } } int iMouseX = Mouse::Instance()->GetMouseX(); int iMouseY = Mouse::Instance()->GetMouseY(); // ½ºÅµÃ³¸® // ÀÎÅÍÆäÀ̽º¿¡¼­ Dialog ¹ÙÅÁ¿¡¼­´Â Mouse Over°¡ ¿ÀÁö ¾Ê´Â´Ù. BOOL bMouseOver = FALSE; // È¿À²À» À§ÇÏ¿© DIALOG_TXT_ITEMVALUE ÄÁÆ®·Ñ¸¸ °Ë»çÇÔ. CControlWZ * pControl = getControl(atPos); if(pControl) { RECT rc = pControl->GetSizeRect(); if (rc.left <= iMouseX && rc.right >= iMouseX) { if (rc.top <= iMouseY && rc.bottom >= iMouseY) { if( m_dwPendingTick == 0 ) { m_dwPendingTick = clock_function::GetTickCount(); } bMouseOver = TRUE; m_MouseOverPostype = atPos; } else { m_dwPendingTick = 0; m_bClickMoney = FALSE; m_MouseOverPostype = NULL; } } else { m_dwPendingTick = 0; m_bClickMoney = FALSE; m_MouseOverPostype = NULL; } } DWORD dwTick = 0; if( m_dwPendingTick > 0 ) { dwTick = clock_function::GetTickCount() - m_dwPendingTick; } if ( ( bMouseOver && dwTick > 2000) || (bMouseOver && m_bClickMoney) ) { if( money > 0 ) { TCHAR szMessage[INTERFACE_STRING_LENGTH]; memset(szMessage , 0 , sizeof( szMessage ) ); GlobalFunc::ChangeMoneyToStringMoney( money , szMessage ); uiToolTipMan* pUIMan = (uiToolTipMan*)g_InterfaceManager.GetUserInterfaceManager(UIMAN_TOOLTIP); if( pUIMan ) { pUIMan->InitTooltip(); pUIMan->RegisterTooltip(szMessage ,_tcslen(szMessage) , 25 ); pUIMan->SetTooltipDialogID( GetDialogKey() ); } } } } #endif