📄 wantnpcdialog.cpp
字号:
// WantNpcDialog.cpp: implementation of the CWantNpcDialog class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "WantNpcDialog.h"
#include "WindowIDEnum.h"
#include "./Interface/cButton.h"
#include "./Interface/cComboBox.h"
#include "./Interface/cStatic.h"
#include "./Interface/cListCtrl.h"
#include "./Interface/cPushupButton.h"
#include "cRitemEx.h"
#include "ChatManager.h"
#include "ObjectStateManager.h"
#include "ObjectManager.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CWantNpcDialog::CWantNpcDialog()
{
m_type = WT_WANTNPCDIALOG;
m_WantedOrderType = eWan_Date;
m_CurPage = 0;
m_PastPage = 0;
m_Mode = -1;
memset(&m_WantedIDX, 0, sizeof(WANTEDTYPE)*WANTUNIT_PER_PAGE);
}
CWantNpcDialog::~CWantNpcDialog()
{
}
void CWantNpcDialog::Linking()
{
//Çö»ó¼ö¹è¹ü ¸ñ·Ï
m_pMyWantNpcBtn = (cButton*)GetWindowForID(WANTNPC_MYWANTBTN);
m_WantNpcCtlListArray[eWantNpcMode_Npc].AddTail(m_pMyWantNpcBtn);
for(int i=0; i<WANTUNIT_PER_PAGE; ++i)
{
m_BuyBtn[i] = (cButton*)GetWindowForID(WANTNPC_BUY1BTN+i);
m_WantNpcCtlListArray[eWantNpcMode_Npc].AddTail(m_BuyBtn[i]);
}
for(i=0; i<MAX_WANTNPC_PAGEBTN; ++i)
{
m_WantPageBtn[i] = (cPushupButton*)GetWindowForID(WANTNPC_FRONTLISTBTN+i);
m_WantNpcCtlListArray[eWantNpcMode_Npc].AddTail(m_WantPageBtn[i]);
}
m_pOrderWantNpcCombo = (cComboBox *)GetWindowForID(WANTNPC_LISTORDERCOMBOBOX);
m_WantNpcCtlListArray[eWantNpcMode_Npc].AddTail(m_pOrderWantNpcCombo);
m_WantNpcCtlListArray[eWantNpcMode_Npc].AddTail((cStatic *)GetWindowForID(WANTNPC_BUYPRICE));
//³ªÀÇ Çö»ó ¼ö¹è¹ü ¸ñ·Ï
m_pWantBtn = (cButton*)GetWindowForID(WANTNPC_WANTBTN);
m_WantNpcCtlListArray[eWantNpcMode_My].AddTail(m_pWantBtn);
for(i=0; i<WANTUNIT_PER_PAGE; ++i)
{
m_GiveUpBtn[i] = (cButton*)GetWindowForID(WANTNPC_GIVEUP1BTN+i);
m_WantNpcCtlListArray[eWantNpcMode_My].AddTail(m_GiveUpBtn[i]);
}
for(i=0; i<MAX_WANTNPC_PAGEBTN; ++i)
{
m_MyWantPageBtn[i] = (cPushupButton*)GetWindowForID(WANTNPC_MYFRONTLISTBTN+i);
m_WantNpcCtlListArray[eWantNpcMode_My].AddTail(m_MyWantPageBtn[i]);
}
//°øÅë
for(i=0; i<WANTUNIT_PER_PAGE; ++i)
{
m_WantChrName[i] = (cStatic*)GetWindowForID(WANTNPC_WANTCHRNAMESTC1+i);
m_Prize[i] = (cStatic*)GetWindowForID(WANTNPC_PRIZESTC1+i);
m_VolunteerNum[i] = (cStatic*)GetWindowForID(WANTNPC_VOLUNTEERNUMSTC1+i);
}
}
BYTE CWantNpcDialog::GetOrderType()
{
return m_WantedOrderType;
}
void CWantNpcDialog::SetOrderType(BYTE OrderType)
{
if(OrderType < eWan_Date && OrderType >= eWan_OrderTypeMax)
{
ASSERTMSG(0, "Çö»ó¹ü Á¤·Ä ŸÀÔÀÌ ¾ø½À´Ï´Ù. No Sort Type in Wanted List");
return;
}
m_WantedOrderType = OrderType;
}
void CWantNpcDialog::SetWantedList(SEND_WANTNPCLIST* pInfo)
{
cButton* pBuyGiveUp[WANTUNIT_PER_PAGE];
memset(&m_WantedIDX, 0, sizeof(WANTEDTYPE)*WANTUNIT_PER_PAGE);
if(GetMode() == eWantNpcMode_Npc)
{
ShowWantPageBtn(pInfo->TotalPage, m_WantPageBtn);
memcpy(pBuyGiveUp, m_BuyBtn, sizeof(cButton*)*WANTUNIT_PER_PAGE);
}
else
{
ShowWantPageBtn(pInfo->TotalPage, m_MyWantPageBtn);
memcpy(pBuyGiveUp, m_GiveUpBtn, sizeof(cButton*)*WANTUNIT_PER_PAGE);
}
char Name[64] = {0,};
char Prize[64] = {0,};
char VolunNum[64] = {0,};
char temp1[64] = {0,};
char temp2[64] = {0,};
for(int i=0; i<WANTUNIT_PER_PAGE; ++i)
{
m_WantChrName[i]->SetActive(FALSE);
m_Prize[i]->SetActive(FALSE);
m_VolunteerNum[i]->SetActive(FALSE);
pBuyGiveUp[i]->SetActive(FALSE);
}
for(i=0; i<WANTUNIT_PER_PAGE; ++i)
{
if(pInfo->WantNpcList[i].WantedIDX == 0)
break;
sprintf(Name, CHATMGR->GetChatMsg(547), pInfo->WantNpcList[i].WantedName);
m_WantChrName[i]->SetStaticText(Name);
m_WantChrName[i]->SetActive(TRUE);
sprintf(Prize, CHATMGR->GetChatMsg(548), AddComma(pInfo->WantNpcList[i].Prize));
m_Prize[i]->SetStaticText(Prize);
m_Prize[i]->SetActive(TRUE);
if(pInfo->WantNpcList[i].VolunteerNum > MAX_WANTED_VOLUNTEER)
pInfo->WantNpcList[i].VolunteerNum = 100;
sprintf(VolunNum, CHATMGR->GetChatMsg(549), pInfo->WantNpcList[i].VolunteerNum);
m_VolunteerNum[i]->SetStaticText(VolunNum);
m_VolunteerNum[i]->SetActive(TRUE);
m_WantedIDX[i] = pInfo->WantNpcList[i].WantedIDX;
pBuyGiveUp[i]->SetActive(TRUE);
}
}
void CWantNpcDialog::ShowWantPageBtn(WORD TotalPage, cPushupButton* pPUBtnArray[])
{
if(TotalPage == 0)
{
for(DWORD i=0; i<MAX_WANTNPC_PAGEBTN; ++i)
pPUBtnArray[i]->SetActive(FALSE);
SetCurPage(0);
return;
}
DWORD MaxUnit = (TotalPage-1) / MAX_WANTNPC_PAGEUNIT;
DWORD CurUnit = (GetCurPage()-1) / MAX_WANTNPC_PAGEUNIT;
int num = GetCurPage()%MAX_WANTNPC_PAGEUNIT;
if(num == 0)
num = MAX_WANTNPC_PAGEUNIT;
SetPushUpBtn(pPUBtnArray, num);
char buf[3] = {0,};
DWORD page;
pPUBtnArray[0]->SetActive(CurUnit != 0);
for(int i=1; i<=MAX_WANTNPC_PAGEUNIT; ++i)
{
page = CurUnit*MAX_WANTNPC_PAGEUNIT + i;
wsprintf(buf, "%d", page);
pPUBtnArray[i]->SetText(buf, RGBA_MAKE(255,255,255,255));
pPUBtnArray[i]->SetActive(page <= TotalPage);
}
pPUBtnArray[6]->SetActive(MaxUnit > CurUnit);
}
WANTEDTYPE CWantNpcDialog::GetSelectedWantedIDX(BYTE num)
{
ASSERT(num >= 0 && num < WANTUNIT_PER_PAGE);
return m_WantedIDX[num];
}
void CWantNpcDialog::ShowWantMode(int mode)
{
if(m_Mode == mode)
return;
if(m_Mode != -1)
SetActiveWantMode(m_Mode,FALSE);
SetActiveWantMode(mode,TRUE);
m_Mode = mode;
}
void CWantNpcDialog::SetActiveWantMode(int mode,BOOL bActive)
{
PTRLISTSEARCHSTART(m_WantNpcCtlListArray[mode],cWindow*,pWin)
pWin->SetActive(bActive);
PTRLISTSEARCHEND
}
void CWantNpcDialog::SetActive( BOOL val )
{
if( m_bDisable ) return;
if(val == FALSE)
{
if( HERO )
if( HERO->GetState() == eObjectState_Deal )
OBJECTSTATEMGR->EndObjectState(HERO, eObjectState_Deal);
}
cDialog::SetActive(val);
}
void CWantNpcDialog::SetPushUpBtn(cPushupButton* pArray[], int num)
{
for(int i=0; i<MAX_WANTNPC_PAGEBTN; ++i)
{
if(i == num)
pArray[i]->SetPush(TRUE);
else
pArray[i]->SetPush(FALSE);
}
}
void CWantNpcDialog::SetCurPage(WORD page)
{
m_CurPage = page;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -