Files
Sun1602/Client/GameClient/Interface/uiCashItemShopMileageDlg/uiCashItemShopMileageDlg.cpp
T
2022-10-26 12:25:11 +08:00

1219 lines
39 KiB
C++

#include "SunClientPrecompiledHeader.h"
//------------------------------------------------------------------------------
#ifndef _NA_0_20110613_GAME_SHOP_RENEWAL //#if'N'def
//------------------------------------------------------------------------------
#ifdef __NA_00387_20070605_SHOP_MILEAGE2
#include "uiCashItemShopMileageDlg.h"
#include "uiCashItemShopMan/uiCashItemShopMan.h"
#include "uiSystemMan/uiSystemMan.h"
#include "Hero.h"
#include "GlobalFunc.h"
#include "interfacemanager.h"
#include "GameFramework.h"
#include "ItemInfoParser.h"
#include "Mouse.h"
#include "uiToolTipMan/uiToolTipMan.h"
#include "GameFunc.h"
//------------------------------------------------------------------------------
WzID uiCashItemShopMileageDlg::m_wzId[eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_MAX] =
{
StrToWzID("B999"), // eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_EXIT = 0,
StrToWzID("C001"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_CASH_ITEM,
StrToWzID("C002"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_MY_PAGE,
StrToWzID("C003"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_PACKAGE,
StrToWzID("CT01"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_MILEAGE,
StrToWzID("C010"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL,
StrToWzID("C019"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_ARMOR,
StrToWzID("C016"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_SKIN,
StrToWzID("C000"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_CUSTOMIZE,
StrToWzID("C008"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_ITEM,
StrToWzID("C009"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_PET,
StrToWzID("C004"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_RIDER,
StrToWzID("CT03"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_PC,
StrToWzID("C020"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_EXTENSION, // 기간연장
StrToWzID("CT02"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_BUY_WCOIN,
StrToWzID("B016"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY1,
StrToWzID("BT02"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY2,
StrToWzID("B018"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY3,
StrToWzID("BT03"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY4,
StrToWzID("B020"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY5,
StrToWzID("BT04"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY6
StrToWzID("BT00"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY7,
StrToWzID("BT05"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY8,
StrToWzID("BT01"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY9,
StrToWzID("BT06"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY10,
StrToWzID("B001"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM1,
StrToWzID("TI02"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM2,
StrToWzID("B002"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM3,
StrToWzID("TI03"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM4,
StrToWzID("B003"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM5,
StrToWzID("TI04"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM6,
StrToWzID("TI00"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM7,
StrToWzID("TI05"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM8,
StrToWzID("TI01"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM9,
StrToWzID("TI06"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM10,
StrToWzID("BT07"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_MILEGE,
StrToWzID("LS00"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_ITEM1,
StrToWzID("LS09"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_ITEM2,
StrToWzID("LS01"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_ITEM3,
StrToWzID("LS08"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_ITEM4,
StrToWzID("LS02"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_ITEM5,
StrToWzID("LS07"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_ITEM6,
StrToWzID("LS03"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_ITEM7,
StrToWzID("LS05"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_ITEM8,
StrToWzID("LS04"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_ITEM9,
StrToWzID("LS06"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_ITEM10,
StrToWzID("LS10"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_MEMO_ITEM1,
StrToWzID("LS24"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_MEMO_ITEM2,
StrToWzID("LS11"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_MEMO_ITEM3,
StrToWzID("LS23"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_MEMO_ITEM4,
StrToWzID("LS12"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_MEMO_ITEM5,
StrToWzID("LS22"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_MEMO_ITEM6,
StrToWzID("LS13"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_MEMO_ITEM7,
StrToWzID("LS21"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_MEMO_ITEM8,
StrToWzID("LS14"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_MEMO_ITEM9,
StrToWzID("LS20"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_MEMO_ITEM10,
StrToWzID("T057"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TXT_MONEY,
StrToWzID("ST02"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TXT_MILEGE,
StrToWzID("BT13"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_PREV_PAGE,
StrToWzID("BT12"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_NEXT_PAGE,
StrToWzID("ST01"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TXT_CURR_PAGE,
StrToWzID("PI10"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_WCOIN_BACK,
StrToWzID("PI11"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_WCOINC_BACK,
StrToWzID("PI12"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_WCOINP_BACK,
StrToWzID("ST20"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_STXT_WCOINC,
StrToWzID("ST21"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_STXT_WCOINP,
StrToWzID("ST03"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_STXT_MILEAGE,
StrToWzID("ST05"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TXT_WCOINC,
StrToWzID("ST04"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TXT_WCOINP,
StrToWzID("CT02"), //eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_MILEGE,
StrToWzID("B000"), // eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_SORTCLASS,
StrToWzID("L001"), // eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SORTCLASS
StrToWzID("S000"), // eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TEXT_SORTCLASS
StrToWzID("C021"), // eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_PPCARD
StrToWzID("L000"), // eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SUBMENU,
};
//------------------------------------------------------------------------------
/**
*/
uiCashItemShopMileageDlg::uiCashItemShopMileageDlg(InterfaceManager *pUIMan) :
uiBase(pUIMan),
m_bControlsInitialized(false)
{
this->m_pCashItemShopMan =
static_cast<uiCashItemShopMan *>(this->GetUIMan()->GetUserInterfaceManager(UIMAN_CASH_ITEM_SHOP));
assert (m_pCashItemShopMan);
if (!this->m_pCashItemShopMan)
{
#ifdef _DEBUG
uiSystemMan * pSystemMan = (uiSystemMan *)g_InterfaceManager.GetUserInterfaceManager(UIMAN_SYSTEM);
if(pSystemMan)
pSystemMan->Sys_VerifyLock(_T("m_pCashItemShopMan이 없습니다."));
#endif
this->ShowInterface(FALSE);
return;
}
m_bShow = false;
ZeroMemory(&m_CashItemImg, sizeof(m_CashItemImg));
m_iCurMenu = -1;
m_iCurSubMenu = 0;
m_iCurPage = -1;
m_iCurIndex = -1;
ZeroMemory(&m_ItemCodeForTooltip, sizeof(m_ItemCodeForTooltip));
}
//------------------------------------------------------------------------------
/**
*/
uiCashItemShopMileageDlg::~uiCashItemShopMileageDlg()
{
this->Release();
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::Init(CDrawBase* pDrawBase)
{
uiBase::Init(pDrawBase);
this->InitControls();
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::Release()
{
_removeAllIconImage();
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::InitControls()
{
int i=0;
for(i=0; i<eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_MAX; ++i)
{
m_pBtnCheckTabs[i] = static_cast<CCtrlButtonCheckWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_CASH_ITEM+i));
assert(m_pBtnCheckTabs[i]);
}
#ifdef __CHINA_BLOCK_ITEM_SHOP_PRESENT
if(m_pBtnCheckTabs[eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_MY_PAGE])
{
m_pBtnCheckTabs[eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_MY_PAGE]->EnableWindowWZ(FALSE);
m_pBtnCheckTabs[eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_MY_PAGE]->SetCheckState(FALSE);
}
#endif //__CHINA_BLOCK_ITEM_SHOP_PRESENT
for(i=0; i<eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_MENU_MAX; ++i)
{
m_pBtnCheckMenu[i] = static_cast<CCtrlButtonCheckWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL+i));
assert(m_pBtnCheckMenu[i]);
}
for(i=0; i<eCASH_ITEM_SHOP_MILEAGE_DLG_ITEM_MAX; ++i)
{
m_pImgCtrl[i] = static_cast<CCtrlImageStaticWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM1+i));
assert(m_pImgCtrl[i]);
m_pListCtrlName[i] = static_cast<CCtrlListWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_ITEM1+i));
assert(m_pListCtrlName[i]);
m_pListCtrlMemo[i] = static_cast<CCtrlListWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_MEMO_ITEM1+i));
assert(m_pListCtrlMemo[i]);
}
m_pTxtCtrlCurPage = static_cast<CCtrlStaticWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TXT_CURR_PAGE));
assert(m_pTxtCtrlCurPage);
m_pTxtCtrlMoney = static_cast<CCtrlStaticWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TXT_MONEY));
assert(m_pTxtCtrlMoney);
m_pTxtCtrlMilege = static_cast<CCtrlStaticWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TXT_MILEGE));
assert(m_pTxtCtrlMilege);
m_pTxtCtrlPPCoin = static_cast<CCtrlStaticWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TXT_WCOINP));
SUN_ASSERT(m_pTxtCtrlPPCoin);
m_pTxtCtrlCCCoin = static_cast<CCtrlStaticWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TXT_WCOINC));
SUN_ASSERT(m_pTxtCtrlCCCoin);
#ifdef _NA00XXXX_090111_CASH_TYPE_SUBDIVIDE_
#else
if (m_pTxtCtrlCCCoin)
{
m_pTxtCtrlCCCoin->ShowWindowWZ(WZ_HIDE);
}
if (m_pTxtCtrlPPCoin)
{
m_pTxtCtrlPPCoin->ShowWindowWZ(WZ_HIDE);
}
CCtrlButtonWZ* button_of_to_buy_w_coin = static_cast<CCtrlButtonWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_WCOINBUY));
SUN_ASSERT(button_of_to_buy_w_coin);
if (button_of_to_buy_w_coin)
{
button_of_to_buy_w_coin->ShowWindowWZ(WZ_HIDE);
}
CCtrlStaticWZ* control_txt;
control_txt = static_cast<CCtrlStaticWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_STXT_WCOINC));
SUN_ASSERT(control_txt);
if (control_txt)
{
control_txt->ShowWindowWZ(WZ_HIDE);
}
control_txt = static_cast<CCtrlStaticWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_STXT_WCOINP));
SUN_ASSERT(control_txt);
if (control_txt)
{
control_txt->ShowWindowWZ(WZ_HIDE);
}
CCtrlPictureWZ* control_picture = static_cast<CCtrlPictureWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_WCOIN_BACK));
SUN_ASSERT(control_picture);
if (control_picture)
{
control_picture->ShowWindowWZ(WZ_HIDE);
}
control_picture = static_cast<CCtrlPictureWZ *>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_WCOINC_BACK));
SUN_ASSERT(control_picture);
if (control_picture)
{
control_picture->ShowWindowWZ(WZ_HIDE);
}
#endif//_NA00XXXX_090111_CASH_TYPE_SUBDIVIDE_
CControlWZ* ppcard_control = getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_PPCARD);
if (ppcard_control != NULL)
{
ppcard_control->ShowWindowWZ(WZ_HIDE);
}
CCtrlListWZ* list_control = static_cast<CCtrlListWZ*>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SORTCLASS));
GetManager()->FillSortCombo(list_control);
if (list_control != NULL)
{
list_control->SetCurSel(0);
OnSelectedCombo(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SORTCLASS,
eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TEXT_SORTCLASS,
list_control->GetCurSel());
}
this->m_bControlsInitialized = true;
}
//------------------------------------------------------------------------------
void uiCashItemShopMileageDlg::OnShowWindow( BOOL val )
{
if (val)
{
this->MoveDefaultWindowPos();
if (!this->m_bControlsInitialized)
{
this->ShowInterface(FALSE);
return;
}
keyMsg msg;
ZeroMemory(&msg,sizeof(msg));
msg.dwType = eDoType_dialog_cash_item_shop_mileage;
msg.wParam = InterfaceManager::DIALOG_CASH_ITEM_SHOP;
msg.DoSomething = GlobalFunc::DoShowWindow;
g_KeyQueueManager.PushBack(msg);
m_bShow = true;
_prepareShow();
}
else
{
g_KeyQueueManager.DeleteMsg(eDoType_dialog_cash_item_shop_mileage);
_removeAllIconImage();
getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SORTCLASS)->ShowWindowWZ(WZ_HIDE);
}
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_setMenu(int iMenu, int iSubMenu, bool force_change)
{
if ((m_iCurMenu == iMenu) && (m_iCurSubMenu == iSubMenu) && (force_change == false))
{
return;
}
BYTE byCategory = _getCategoryType(iMenu, iSubMenu);
CCtrlListWZ* list_control = static_cast<CCtrlListWZ*>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SUBMENU));
if (list_control != NULL)
{
list_control->SetCurSel(iSubMenu);
}
if(byCategory == SHOP_CATEGORY_PERIOD_EXTEND)
{
GetManager()->OnClickExtensionButton(m_iCurPage);
}
else
{
m_iCurMenu = iMenu;
m_iCurPage = 0;
m_iCurIndex = 0;
m_iCurSubMenu = 0;
CCtrlListWZ* sort_list_control = static_cast<CCtrlListWZ*>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SORTCLASS));
WORD filter = GetManager()->GetFilter(m_iCurMenu, m_iCurSubMenu, sort_list_control);
_updateMenu();
GetManager()->Send_CG_SHOP_ITEM_LIST_REQ_SYN(SHOP_PARTITION_MILEAGEITEM, byCategory, filter, m_iCurPage);
}
}
//------------------------------------------------------------------------------
/**
*/
BYTE uiCashItemShopMileageDlg::_getCategoryType(int iMenu, int iSubMenu)
{
switch(iMenu)
{
case eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL:
{
return SHOP_CATEGORY_ALL;
}
break;
case eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_ARMOR:
{
switch (iSubMenu)
{
case 0: return SHOP_CATEGORY_EQUIP_ALL;
case 1: return SHOP_CATEGORY_EQUIP_HELMET; // 헬멧
case 2: return SHOP_CATEGORY_EQUIP_ARMOR; // 갑옷
case 3: return SHOP_CATEGORY_EQUIP_GLOVES; // 장갑
case 4: return SHOP_CATEGORY_EQUIP_PANTS; // 바지
case 5: return SHOP_CATEGORY_EQUIP_BOOTS; // 부츠
case 6: return SHOP_CATEGORY_EQUIP_PROTECTOR; // 프로텍터
case 7: return SHOP_CATEGORY_EQUIP_BELT; // 벨트
case 8: return SHOP_CATEGORY_EQUIP_SHIRTS; // 셔츠
case 9: return SHOP_CATEGORY_EQUIP_WEAPON; // 무기
}
return SHOP_CATEGORY_EQUIP_ALL;
}
break;
case eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_SKIN:
{
switch (iSubMenu)
{
case 0: return SHOP_CATEGORY_SKIN_ALL;
case 1: return SHOP_CATEGORY_SKIN_HELMET; // 헬멧
case 2: return SHOP_CATEGORY_SKIN_ARMOR; // 갑옷
case 3: return SHOP_CATEGORY_SKIN_GLOVES; // 장갑
case 4: return SHOP_CATEGORY_SKIN_PENTS; // 바지
case 5: return SHOP_CATEGORY_SKIN_BOOTS; // 부츠
case 6: return SHOP_CATEGORY_SKIN_PROTECTOR; // 프로텍터
case 7: return SHOP_CATEGORY_SKIN_BELT; // 벨트
case 8: return SHOP_CATEGORY_SKIN_SHIRTS; // 셔츠
case 9: return SHOP_CATEGORY_SKIN_WEAPON; // 무기
}
return SHOP_CATEGORY_SKIN_ALL;
}
break;
case eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_CUSTOMIZE:
{
switch (iSubMenu)
{
case 0: return SHOP_CATEGORY_CUSTOMIZING_ALL;
case 1: return SHOP_CATEGORY_CUSTOMIZING_HAIR; // 머리
case 2: return SHOP_CATEGORY_CUSTOMIZING_FACE; // 얼굴
case 3: return SHOP_CATEGORY_CUSTOMIZING_ETC; // 기타
}
return SHOP_CATEGORY_CUSTOMIZING_ALL;
}
break;
case eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_ITEM:
{
switch (iSubMenu)
{
case 0: return SHOP_CATEGORY_ITEM_ALL;
case 1: return SHOP_CATEGORY_ITEM_LUCKY; // 행운류
case 2: return SHOP_CATEGORY_ITEM_MATERIAL; // 재료류
case 3: return SHOP_CATEGORY_ITEM_GUILD; // 길드류
case 4: return SHOP_CATEGORY_ITEM_TICKET; // 입장권류
case 5: return SHOP_CATEGORY_ITEM_STRENGTHEN; // 능력치 강화류
case 6: return SHOP_CATEGORY_ITEM_FUNCTIONALITY; // 기능성류
case 7: return SHOP_CATEGORY_ITEM_CONVENIENCE; // 편의성류
}
return SHOP_CATEGORY_ITEM_ALL;
}
break;
case eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_PET:
{
switch (iSubMenu)
{
case 0: return SHOP_CATEGORY_PET_ALL;
case 1: return SHOP_CATEGORY_PET; // 펫
case 2: return SHOP_CATEGORY_PET_FEED; // 사료
case 3: return SHOP_CATEGORY_PET_SKIN; // 스킨
//case 4: return SHOP_CATEGORY_PET_LEGS; // 다리파츠
}
return SHOP_CATEGORY_PET_ALL;
}
break;
case eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_RIDER:
{
switch (iSubMenu)
{
case 0: return SHOP_CATEGORY_VEHICLE_ALL;
case 1: return SHOP_CATEGORY_VEHICLE; // 펫
case 2: return SHOP_CATEGORY_VEHICLE_HEAD; // 사료
case 3: return SHOP_CATEGORY_VEHICLE_BODY; // 스킨
case 4: return SHOP_CATEGORY_VEHICLE_LEGS; // 다리파츠
}
return SHOP_CATEGORY_VEHICLE_ALL;
}
break;
case eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_PC:
{
return SHOP_CATEGORY_PCROOM;
}
break;
case eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_EXTENSION:
{
return SHOP_CATEGORY_PERIOD_EXTEND;
}
break;
}
return SHOP_CATEGORY_ALL;
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_updateMenu()
{
for(int i=0; i<eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_MENU_MAX; ++i)
m_pBtnCheckMenu[i]->SetCheckState(false);
if(m_pBtnCheckMenu[m_iCurMenu])
{
m_pBtnCheckMenu[m_iCurMenu]->SetCheckState(true);
}
int start_sub_menu = 0;
int end_sub_menu = -1;
if (m_iCurMenu == eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL - eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL)
{
start_sub_menu = uiCashItemShopMan::kShopStringCode_AllItem;
end_sub_menu = uiCashItemShopMan::kShopStringCode_Armor - 1;
}
else if (m_iCurMenu == eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_ARMOR - eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL)
{
//! 장비
start_sub_menu = uiCashItemShopMan::kShopStringCode_Armor;
end_sub_menu = uiCashItemShopMan::kShopStringCode_Skin - 1;
}
else if (m_iCurMenu == eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_SKIN - eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL)
{
//! 스킨
start_sub_menu = uiCashItemShopMan::kShopStringCode_Skin;
end_sub_menu = uiCashItemShopMan::kShopStringCode_Customize - 1;
}
else if (m_iCurMenu == eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_CUSTOMIZE - eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL)
{
//! 커스터마이징
start_sub_menu = uiCashItemShopMan::kShopStringCode_Customize;
end_sub_menu = uiCashItemShopMan::kShopStringCode_Item - 1;
}
else if (m_iCurMenu == eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_ITEM - eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL)
{
//! 아이템
start_sub_menu = uiCashItemShopMan::kShopStringCode_Item;
end_sub_menu = uiCashItemShopMan::kShopStringCode_Pet - 1;
}
else if (m_iCurMenu == eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_PET - eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL)
{
//! 펫
start_sub_menu = uiCashItemShopMan::kShopStringCode_Pet;
end_sub_menu = uiCashItemShopMan::kShopStringCode_Rider - 1;
}
else if (m_iCurMenu == eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_RIDER - eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL)
{
//! 탈것
start_sub_menu = uiCashItemShopMan::kShopStringCode_Rider;
end_sub_menu = uiCashItemShopMan::kShopStringCode_Filter_Cash - 1;
}
GetManager()->FillSubMenu(static_cast<CCtrlListWZ*>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SUBMENU)), start_sub_menu, end_sub_menu);
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_setIndex(int iIndex)
{
m_iCurIndex = iIndex;
// 해당 아이템 가격 정보가 있으면 Show, 없으면 프로토콜 요청
if(GetManager()->m_stCashItemInfo[m_iCurIndex].stPrice[0].priceGuid > 0)
GetManager()->ShowCashItemShopMileageBuy(m_iCurIndex);
else
GetManager()->Send_CG_SHOP_ITEM_REQ_SYN(m_iCurIndex);
}
//------------------------------------------------------------------------------
/** 아이템 페이지 변경 관련
*/
void uiCashItemShopMileageDlg::_setPage(int iPage)
{
if(m_iCurPage == iPage)
{
return;
}
//m_iCurPage = iPage;
m_iCurIndex = 0;
BYTE byCategory = _getCategoryType(m_iCurMenu, m_iCurSubMenu);
CCtrlListWZ* sort_list_control = static_cast<CCtrlListWZ*>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SORTCLASS));
WORD filter = GetManager()->GetFilter(m_iCurMenu, m_iCurSubMenu, sort_list_control);
GetManager()->Send_CG_SHOP_ITEM_LIST_REQ_SYN(SHOP_PARTITION_MILEAGEITEM, byCategory, filter, m_iCurPage);
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_prepareShow()
{
if (!_isEnable())
return;
GetManager()->PrepareShow(eCashItemShopDlgState_Mileage);
ZeroMemory(&m_ItemCodeForTooltip, sizeof(m_ItemCodeForTooltip));
_clearAllItem();
m_iCurMenu = -1;
m_iCurPage = -1;
m_iCurIndex = -1;
_setMenu(eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL);
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::SetCurMoney( void )
{
CASH normal_coin = GetManager()->GetMyCash(); // 일반캐시
CASH pp_card_coin = GetManager()->GetPPCash(); // PP캐시
MONEY total_coin = static_cast<MONEY>(normal_coin) + pp_card_coin; // 캐시총합
GlobalFunc::SetMoneyText(m_pTxtCtrlCCCoin, normal_coin, CASH_ITEM_SHOP_DEFAULT);
GlobalFunc::SetMoneyText(m_pTxtCtrlPPCoin, pp_card_coin, CASH_ITEM_SHOP_DEFAULT);
GlobalFunc::SetMoneyText(m_pTxtCtrlMilege, GetManager()->GetMyMileage(), CASH_ITEM_SHOP_MILEAGE);
if(LOGINPARAM->IsLiveTestServer()) //테섭실행모드
{
GlobalFunc::SetMoneyText(m_pTxtCtrlMoney, g_pHero->GetMoney(), CASH_ITEM_SHOP_HAIM);
}
else
{
GlobalFunc::SetMoneyText(m_pTxtCtrlMoney, total_coin, CASH_ITEM_SHOP_DEFAULT);
}
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::RefreshItemPrice()
{
#ifdef _DEBUG
TCHAR szDebug[INTERFACE_STRING_LENGTH] = {0,};
Snprintf(szDebug, INTERFACE_STRING_LENGTH-1, _T("Category[%d], Page[%d], Index[%d] \n"),
m_iCurMenu, m_iCurPage, m_iCurIndex);
OutputDebugString(szDebug);
#endif
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::RefreshSingleItemList()
{
#ifdef _DEBUG
TCHAR szDebug[INTERFACE_STRING_LENGTH] = {0,};
Snprintf(szDebug, INTERFACE_STRING_LENGTH-1, _T("RefreshMileageList[%d] %d Page\n"),
m_iCurMenu, m_iCurPage);
OutputDebugString(szDebug);
#endif
_clearAllItem();
SetCurPage();
SetCurMoney();
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_clearItem(int index)
{
this->_removeIconImage(index);
if(m_pListCtrlName[index])
{
m_pListCtrlName[index]->SetUseReport(false);
m_pListCtrlName[index]->DeleteItemAll();
}
if(m_pListCtrlMemo[index])
{
m_pListCtrlMemo[index]->SetUseReport(false);
m_pListCtrlMemo[index]->DeleteItemAll();
}
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_clearAllItem()
{
for(int i=0; i<eCASH_ITEM_SHOP_MILEAGE_DLG_ITEM_MAX; ++i)
{
_clearItem(i);
}
GlobalFunc::SetCaption(m_pTxtCtrlCurPage, _T("")); // 현재 페이지
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::SetItem(int index, CODETYPE itemCode)
{
_setItem(index, itemCode);
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::SetCurPage()
{
TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,};
TCHAR szTemp[INTERFACE_STRING_LENGTH] ={0,};
//5796 %d페이지
g_InterfaceManager.GetInterfaceString( 5796 , szTemp ,INTERFACE_STRING_LENGTH);
Snprintf(szMessage, INTERFACE_STRING_LENGTH-1, szTemp, m_iCurPage + 1);
GlobalFunc::SetCaption(m_pTxtCtrlCurPage, szMessage); // 현재 페이지
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_setItem(int index, CODETYPE itemCode)
{
BASE_ITEMINFO * pItemInfo = ItemInfoParser::Instance()->GetItemInfo( itemCode );
if ( !pItemInfo )
{
return;
}
m_CashItemImg[index].type = GetManager()->m_stCashItemInfo[index].byRank;
_addIconImage(index, pItemInfo->m_wVICode, itemCode);
TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,};
TCHAR szTemp[INTERFACE_STRING_LENGTH] = {0,};
TCHAR szTemp2[INTERFACE_STRING_LENGTH] = {0,};
TCHAR szTemp3[INTERFACE_STRING_LENGTH] = {0,};
// 아이템 이름
g_InterfaceManager.GetItemName(itemCode, szMessage, INTERFACE_STRING_LENGTH);
if(GetManager()->m_stCashItemInfo[index].byEnchant)
{
Snprintf(szTemp, INTERFACE_STRING_LENGTH-1, _T("+%d"), GetManager()->m_stCashItemInfo[index].byEnchant);
_tcscat(szMessage, szTemp);
}
// 캐시샵아이템의 Rank 값을 용도 변경하여 Rank를 출력 하지 않도록 수정
// 이전부터 Rank자체는 사용되고 있지 않았음.
//if( pItemInfo->CanRankUpItem() )
//{
// int iRankIndex = eST_RANK_E_STRING_INDEX + (GetManager()->m_stCashItemInfo[index].byRank);
// if (iRankIndex > eST_RANK_PS_STRING_INDEX)
// iRankIndex = eST_RANK_PS_STRING_INDEX;
// if (iRankIndex < eST_RANK_E_STRING_INDEX)
// iRankIndex = eST_RANK_E_STRING_INDEX;
// ZeroMemory(szTemp, sizeof(szTemp));
// ZeroMemory(szTemp2, sizeof(szTemp2));
// ZeroMemory(szTemp3, sizeof(szTemp3));
// g_InterfaceManager.GetInterfaceString(eST_RANK_STRING_INDEX,szTemp,INTERFACE_STRING_LENGTH);
// g_InterfaceManager.GetInterfaceString(iRankIndex,szTemp2,INTERFACE_STRING_LENGTH);
// Snprintf(szTemp3,INTERFACE_STRING_LENGTH-1, szTemp, szTemp2);
// _tcscat(szMessage, _T(" "));
// _tcscat(szMessage, szTemp3);
//}
m_pListCtrlName[index]->DeleteItemAll();
m_pListCtrlName[index]->SetColorSelBar(c_CashItemShopListSelBarColor);
m_pListCtrlName[index]->SetUseReport(false);
int idx = m_pListCtrlName[index]->InsertItemBack();
GlobalFunc::SetItem(
m_pListCtrlName[index],
idx, 0, szMessage,
c_wiCashItemShopFont,
DT_VCENTER | DT_LEFT,
c_CashItemShopListBKColor,
c_CashItemShopListNameColor,
c_CashItemShopListNameColor);
// 간단 설명
ZeroMemory(szMessage, sizeof(szMessage));
if(pItemInfo->m_TDNCode)
{
GameFunc::GetItemDescription(szMessage, NULL, pItemInfo);
if(m_pListCtrlMemo[index])
{
std::vector<util::_tstring> vstrMsg;
vstrMsg.clear();
if(!_tcslen(szMessage))
return;
RECT rc = m_pListCtrlMemo[index]->GetSizeRect();
#ifdef __LTJ_TEXT_OUTPUT_AT_LIST_MOD
int iListWidth = rc.right - rc.left - 20;
#else
int iListWidth = rc.right - rc.left - 10;
#endif
GlobalFunc::ProcessWordWrapByFontSize( &vstrMsg, szMessage, c_wiCashItemShopFont, _tcslen(szMessage), iListWidth );
m_pListCtrlMemo[index]->DeleteItemAll();
m_pListCtrlMemo[index]->SetColorSelBar(c_CashItemShopListSelBarColor);
m_pListCtrlMemo[index]->SetUseReport(false);
int iListIndex = -1;
for (size_t i=0; i<vstrMsg.size(); ++i)
{
iListIndex = m_pListCtrlMemo[index]->InsertItemBack();
TCHAR *pStr = const_cast<TCHAR *>(vstrMsg[i].c_str());
GlobalFunc::SetItem(
m_pListCtrlMemo[index],
iListIndex, 0, pStr,
c_wiCashItemShopFont,
DT_VCENTER | DT_LEFT,
c_CashItemShopListBKColor,
c_CashItemShopListTextColor,
c_CashItemShopListTextColor);
}
}
}
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_addIconImage(int iIndex, DWORD dwCode, CODETYPE itemCode)
{
m_CashItemImg[iIndex].dwIconCode = dwCode;
m_CashItemImg[iIndex].itemCode = itemCode;
_removeIconImage(iIndex);
if (dwCode != 0)
{
m_CashItemImg[iIndex].pImage = ICONMGR()->Add(dwCode);
}
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_removeIconImage(int iIndex)
{
if(m_CashItemImg[iIndex].pImage)
{
ICONMGR()->RemoveIcon(m_CashItemImg[iIndex].pImage);
ZeroMemory(&(m_CashItemImg[iIndex]), sizeof(m_CashItemImg[iIndex]));
}
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_removeAllIconImage()
{
for(int i=0; i<eCASH_ITEM_SHOP_MILEAGE_DLG_ITEM_MAX; ++i)
{
_removeIconImage(i);
}
}
//------------------------------------------------------------------------------
/**
*/
BOOL uiCashItemShopMileageDlg::_isEnable()
{
if(GENERALPARAM->IsNet())
{
if (this->IsLock())
return FALSE;
if(!g_pHero)
return FALSE;
if(g_pHero && g_pHero->IsShowFullMap())
return FALSE;
if(!GetManager())
return FALSE;
return TRUE;
}
else
{
return TRUE;
}
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::MessageProc( SI_MESSAGE * pMessage )
{
if (!_isEnable())
return;
switch( pMessage->eResultMsg )
{
case RT_MSG_LBUTTONCLICK:
{
int iCtrlID = getCtrlIDToPos( pMessage->dwCtrlID );
switch( iCtrlID )
{
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_EXIT:
{
m_bShow = false;
}
break;
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_MY_PAGE:
{
GetManager()->ShowCashItemShopPresentDlg(true);
}
break;
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_PACKAGE:
{
GetManager()->ShowCashItemShopPackageDlg(true);
}
break;
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_CASH_ITEM:
{
GetManager()->ShowCashItemShopDlg(true);
}
break;
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_PREV_PAGE:
{
int iPage = m_iCurPage;
if( iPage > 0)
{
iPage--;
_setPage(iPage);
}
}
break;
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_NEXT_PAGE:
{
_setPage(m_iCurPage + 1);
}
break;
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY1:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY2:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY3:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY4:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY5:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY6:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY7:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY8:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY9:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY10:
{
int iIndex = iCtrlID - eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_BUY1;
if(GetManager()->m_stCashItemInfo[iIndex].dwItemCode > 0)
_setIndex(iIndex);
}
break;
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SUBMENU:
{
CCtrlListWZ* list_control = static_cast<CCtrlListWZ*>(getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SUBMENU));
int index = list_control->GetCurSel();
if (index >= 0)
{
_setMenu(m_iCurMenu, index);
}
}
break;
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_ARMOR:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_SKIN:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_CUSTOMIZE:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_ITEM:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_PET:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_RIDER:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_PC:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_EXTENSION: // 기간연장
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_BUY_WCOIN:
{
int iMenu = iCtrlID - eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_CHK_TOTAL;
this->_setMenu(iMenu);
}
break;
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_SORTCLASS:
case eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SORTCLASS:
OnClickCombo(static_cast<eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG>(iCtrlID));
break;
}
}
break;
default:
{
SolarDialog::MessageProc( pMessage );
}
break;
}
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::OnUpdateSolarDialog()
{
if(!m_bShow)
this->ShowInterface(FALSE);
if (!_isEnable())
return;
if(m_pBtnCheckTabs[eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_MILEAGE])
m_pBtnCheckTabs[eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_MILEAGE]->SetCheckState(true);
if(m_pBtnCheckTabs[eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_CASH_ITEM])
m_pBtnCheckTabs[eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_CASH_ITEM]->SetCheckState(false);
if(m_pBtnCheckTabs[eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_MY_PAGE])
m_pBtnCheckTabs[eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_MY_PAGE]->SetCheckState(false);
if(m_pBtnCheckTabs[eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_PACKAGE])
m_pBtnCheckTabs[eCASH_ITEM_SHOP_MILEAGE_DLG_CHK_PACKAGE]->SetCheckState(false);
_updateMenu();
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::OnRenderSolarDialog()
{
if (!_isEnable())
return;
_renderIconImage();
_renderTooltip();
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_renderIconImage()
{
for(int iIndex=0; iIndex<eCASH_ITEM_SHOP_MILEAGE_DLG_ITEM_MAX; ++iIndex)
{
if(m_pImgCtrl[iIndex])
{
if (m_CashItemImg[iIndex].pImage && m_CashItemImg[iIndex].dwIconCode)
{
RECT rc = m_pImgCtrl[iIndex]->GetSizeRect();
m_CashItemImg[iIndex].pImage->Render(&rc);
GetManager()->renderCoverImage(m_CashItemImg[iIndex], rc);
}
}
}
}
//------------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::_renderTooltip()
{
uiToolTipMan* pUIMan = (uiToolTipMan*)g_InterfaceManager.GetUserInterfaceManager(UIMAN_TOOLTIP);
if(pUIMan)
{
// 155387 해방군의 훈장 // 일단 예외상황이 하나라서 일단 하드코딩 하나 더 늘어나면 모듈화 필요해연
if(this->m_ItemCodeForTooltip.dwItemCode == 155387)
{
pUIMan->RegisterTooltipWithStringCode(m_ItemCodeForTooltip.dwItemCode);
pUIMan->SetTooltipDialogID(GetDialogKey());
}
else if(this->m_ItemCodeForTooltip.dwItemCode > 0)
{
pUIMan->RegisterTooltipItemForCashShop(m_ItemCodeForTooltip.dwItemCode, m_ItemCodeForTooltip.dwCoolTime, m_ItemCodeForTooltip.SellEndDate,
m_ItemCodeForTooltip.byEnchant, m_ItemCodeForTooltip.byRank);
pUIMan->SetTooltipDialogID(GetDialogKey());
}
}
int iMouseX = Mouse::Instance()->GetMouseX();
int iMouseY = Mouse::Instance()->GetMouseY();
// 스킵처리
// 인터페이스에서 Dialog 바탕에서는 Mouse Over가 오지 않는다.
BOOL bMouseOver = FALSE;
for (POSTYPE a = eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM1; a <= eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_MILEGE; a++)
{
CControlWZ * pControl = getControl(a);
if(pControl)
{
RECT rc = pControl->GetSizeRect();
if (rc.left <= iMouseX && rc.right >= iMouseX)
{
if (rc.top <= iMouseY && rc.bottom >= iMouseY)
{
bMouseOver = TRUE;
}
}
}
}
if ( !bMouseOver )
{
ZeroMemory(&m_ItemCodeForTooltip, sizeof(m_ItemCodeForTooltip));
}
}
//----------------------------------------------------------------------------
/**
*/
void uiCashItemShopMileageDlg::MouseOver_MsgProc( SI_MESSAGE * pMessage )
{
if (!_isEnable())
return;
switch( pMessage->eResultMsg )
{
case RT_MSG_MOUSEOVER:
{
POSTYPE pos = getCtrlIDToPos( pMessage->dwCtrlID );
if (pos >= eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM1 && pos <= eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM10)
{
int iIndex = pos - eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_IMG_ITEM1;
if (m_CashItemImg[iIndex].pImage && m_CashItemImg[iIndex].dwIconCode)
{
m_ItemCodeForTooltip.dwItemCode = m_CashItemImg[iIndex].itemCode;
m_ItemCodeForTooltip.dwCoolTime = GetManager()->m_stCashItemInfo[iIndex].dwCoolTime;
m_ItemCodeForTooltip.SellEndDate = GetManager()->m_stCashItemInfo[iIndex].SellEndDate;
m_ItemCodeForTooltip.byEnchant = GetManager()->m_stCashItemInfo[iIndex].byEnchant;
m_ItemCodeForTooltip.byRank = GetManager()->m_stCashItemInfo[iIndex].byRank;
}
else
{
ZeroMemory(&m_ItemCodeForTooltip, sizeof(m_ItemCodeForTooltip));
}
}
else if(pos == eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_MILEGE)
{
// 155387 해방군의 훈장
m_ItemCodeForTooltip.dwItemCode = 155387;
}
else
{
ZeroMemory(&m_ItemCodeForTooltip, sizeof(m_ItemCodeForTooltip));
}
}
break;
}
}
//------------------------------------------------------------------------------
bool uiCashItemShopMileageDlg::OnSelectedCombo(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG list_control_index,
eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG static_control_index,
int selected_index)
{
CCtrlListWZ* list_control = static_cast<CCtrlListWZ*>(getControl(list_control_index));
CControlWZ* staticbox_control = getControl(static_control_index);
if (selected_index < 0)
{
return false;
}
if ((list_control != NULL) && (staticbox_control != NULL))
{
staticbox_control->SetTextWZ("");
const char* text = list_control->GetItemText(selected_index, 0);
if (text != NULL)
{
staticbox_control->SetTextWZ((char*)text);
}
list_control->ShowWindowWZ(WZ_HIDE);
}
return true;
}
//------------------------------------------------------------------------------
void uiCashItemShopMileageDlg::OnClickCombo(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG e)
{
if (e == eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_BTN_SORTCLASS)
{
CControlWZ* list_control = getControl(eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SORTCLASS);
if (list_control != NULL)
{
if (list_control->GetState() == WZ_SHOW)
{
list_control->ShowWindowWZ(WZ_HIDE);
}
else
{
list_control->ShowWindowWZ(WZ_SHOW);
}
}
}
else if (e == eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_LIST_SORTCLASS)
{
CCtrlListWZ* list_control = static_cast<CCtrlListWZ*>(getControl(e));
if (list_control != NULL)
{
if (OnSelectedCombo(e, eDIALOG_CASH_ITEM_SHOP_MILEAGE_DLG_TEXT_SORTCLASS, list_control->GetCurSel()) == true)
{
_setMenu(m_iCurMenu, m_iCurSubMenu, true);
}
}
}
}
#endif
//------------------------------------------------------------------------------
#endif //#ifndef _NA_0_20110613_GAME_SHOP_RENEWAL //#if'N'def
//------------------------------------------------------------------------------