📄 statuswnd.cpp
字号:
/******************************************************************************************************************
葛碘疙:
累己磊:
累己老:
[老磊][荐沥磊] : 荐沥 郴侩
*******************************************************************************************************************/
#include "StdAfx.h"
/******************************************************************************************************************
CStatusWnd Class
*******************************************************************************************************************/
/******************************************************************************************************************
窃荐疙 : CStatusWnd::CStatusWnd()
累己磊 :
累己老 :
格利 :
免仿 :
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
CStatusWnd::CStatusWnd()
{
Init();
}
/******************************************************************************************************************
窃荐疙 : CStatusWnd::~CStatusWnd()
累己磊 :
累己老 :
格利 :
免仿 :
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
CStatusWnd::~CStatusWnd()
{
Destory();
}
VOID CStatusWnd::Init()
{
INT nCnt;
CGameWnd::Init();
m_bType = _TYPE_EQUIP;
m_nStartLineNum = 0;
m_pstMyMagic = NULL;
m_bMyMagicCnt = 0;
ZeroMemory(&m_bMagicIdxTable, _MAX_MAGIC_SKILL);
ZeroMemory(&m_rcCell, sizeof(RECT)*_EQUIP_MAX_CELL);
ZeroMemory(&m_rcMagicCell, sizeof(RECT)*_MAGIC_MAX_CELL);
ZeroMemory(&m_stEquipItem, sizeof(ITEMSET)*_EQUIP_MAX_CELL);
ZeroMemory(&m_stTakeOnItemSet, sizeof(CItem));
ZeroMemory(&m_szEquipItemIdx, sizeof(m_szEquipItemIdx));
for ( nCnt = 0; nCnt < _MAX_STAUTS_BTN; nCnt ++ )
{
m_xStatusBtn[nCnt].Init();
}
for ( nCnt = 0; nCnt < 2; nCnt ++ )
{
m_xMagicScrlBtn[nCnt].Init();
}
}
VOID CStatusWnd::Destory()
{
CGameWnd::Destroy();
SAFE_DELETE(m_pstMyMagic);
Init();
}
/******************************************************************************************************************
窃荐疙 : CStatusWnd::CreateStatusWnd()
累己磊 :
累己老 :
格利 :
涝仿 : INT nID
CWHWilImageData* pxWndImage
INT nFrameImgIdx
INT nStartX
INT nStartY
INT nWidth
INT nHeight
BOOL bCanMove
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CStatusWnd::CreateStatusWnd(INT nID, CWHWilImageData* pxWndImage, INT nFrameImgIdx, INT nStartX, INT nStartY, INT nWidth, INT nHeight, BOOL bCanMove)
{
CreateGameWnd(nID, pxWndImage, nFrameImgIdx, bCanMove, nStartX, nStartY, nWidth, nHeight);
// 滚瓢檬扁拳.
m_xStatusBtn[_BTN_ID_STATUSCLOSE].CreateGameBtn(pxWndImage, 214, 215, nStartX+222, nStartY+298);
m_xStatusBtn[_BTN_ID_STATUS].CreateGameBtn(pxWndImage, 212, 213, nStartX+_BTN_ID_STATUS_X, nStartY+_BTN_ID_STATUS_Y);
m_xStatusBtn[_BTN_ID_STATUSMAGIC].CreateGameBtn(pxWndImage, 99, 100, nStartX+_BTN_ID_STATUSMAGIC_X, nStartY+_BTN_ID_STATUSMAGIC_Y);
// 厘馒芒 檬扁拳.
SetRect(&m_rcCell[_U_NECKLACE], 187, 70, 190+_INVENTORY_CELL_WIDTH, 70+_INVENTORY_CELL_HEIGHT);
SetRect(&m_rcCell[_U_RIGHTHAND], 37, 264, 37+_INVENTORY_CELL_WIDTH, 264+_INVENTORY_CELL_HEIGHT);
SetRect(&m_rcCell[_U_CHARM], 74, 264, 74+_INVENTORY_CELL_WIDTH, 264+_INVENTORY_CELL_HEIGHT);
SetRect(&m_rcCell[_U_ARMRINGL], 37, 186, 37+_INVENTORY_CELL_WIDTH, 186+_INVENTORY_CELL_HEIGHT);
SetRect(&m_rcCell[_U_ARMRINGR], 185, 186, 185+_INVENTORY_CELL_WIDTH, 186+_INVENTORY_CELL_HEIGHT);
SetRect(&m_rcCell[_U_RINGL], 37, 227, 37+_INVENTORY_CELL_WIDTH, 227+_INVENTORY_CELL_HEIGHT);
SetRect(&m_rcCell[_U_RINGR], 185, 227,185+_INVENTORY_CELL_WIDTH, 227+_INVENTORY_CELL_HEIGHT);
SetRect(&m_rcCell[_U_HELMET], 104, 71, 143, 104);
SetRect(&m_rcCell[_U_DRESS], 96, 114, 146, 204);
SetRect(&m_rcCell[_U_WEAPON], 48, 70, 91, 154);
// 付过滚瓢檬扁拳.
m_xMagicScrlBtn[0].CreateGameBtn(pxWndImage, 74, 75, nStartX+232, nStartY+147);
m_xMagicScrlBtn[1].CreateGameBtn(pxWndImage, 74, 75, nStartX+232, nStartY+253);
// 付过芒檬扁拳.
SetRect(&m_rcMagicCell[0], 39, 77, 74, 112);
SetRect(&m_rcMagicCell[1], 39, 115, 74, 149);
SetRect(&m_rcMagicCell[2], 39, 152, 74, 186);
SetRect(&m_rcMagicCell[3], 39, 188, 74, 223);
SetRect(&m_rcMagicCell[4], 39, 225, 74, 260);
// 付过 函荐 檬扁拳.
m_pstMyMagic = NULL;
m_bMyMagicCnt = 0;
}
/******************************************************************************************************************
窃荐疙 : CStatusWnd::ShowStatusWnd()
累己磊 :
累己老 :
格利 :
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CStatusWnd::ShowStatusWnd()
{
RECT rcID;
switch ( m_bType )
{
case _TYPE_EQUIP:
ShowCharEquipWnd();
SetRect(&rcID, m_rcWnd.left+81, m_rcWnd.top+38, m_rcWnd.left+173, m_rcWnd.top+50);
g_xMainWnd.PutsHan(NULL, rcID, RGB(255, 250, 180), RGB(0, 0, 0), g_xGameProc.m_xMyHero.m_szName, NULL);
rcID.top += 15;
rcID.bottom += 15;
g_xMainWnd.PutsHan(NULL, rcID, RGB(255, 250, 180), RGB(0, 0, 0), g_xGameProc.m_xMyHero.m_szGuildName, NULL);
if ( g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].NewSetIndex(204) )
{
g_xMainWnd.DrawWithImageForComp(
m_rcWnd.left+187,
m_rcWnd.top+266,
g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_lpstNewCurrWilImageInfo->shWidth,
g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)(g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_pbCurrImage));
}
// g_xMainWnd.DrawWithGDI(m_rcWnd, NULL, RGB(255, 250, 180), 1);
break;
case _TYPE_STATUS:
ShowCharEquipWnd();
SetRect(&rcID, m_rcWnd.left+81, m_rcWnd.top+38, m_rcWnd.left+173, m_rcWnd.top+50);
g_xMainWnd.PutsHan(NULL, rcID, RGB(255, 250, 180), RGB(0, 0, 0), g_xGameProc.m_xMyHero.m_szName, g_xMainWnd.CreateGameFont("泵辑眉", 10, 0, FW_BOLD));
ShowCharStatus();
if ( g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].NewSetIndex(203) )
{
g_xMainWnd.DrawWithImageForComp(
m_rcWnd.left+187,
m_rcWnd.top+266,
g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_lpstNewCurrWilImageInfo->shWidth,
g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)(g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_pbCurrImage));
}
// g_xMainWnd.DrawWithGDI(m_rcWnd, NULL, RGB(255, 250, 180), 1);
break;
case _TYPE_SETMAGIC:
ShowCharSetMagicWnd();
SetRect(&rcID, m_rcWnd.left+81, m_rcWnd.top+38, m_rcWnd.left+173, m_rcWnd.top+50);
g_xMainWnd.PutsHan(NULL, rcID, RGB(255, 250, 180), RGB(0, 0, 0), g_xGameProc.m_xMyHero.m_szName, g_xMainWnd.CreateGameFont("泵辑眉", 10, 0, FW_BOLD));
break;
}
m_xStatusBtn[_BTN_ID_STATUSCLOSE].ShowGameBtn();
m_xStatusBtn[_BTN_ID_STATUS].ShowGameBtn();
m_xStatusBtn[_BTN_ID_STATUSMAGIC].ShowGameBtn();
}
/******************************************************************************************************************
窃荐疙 : CStatusWnd::SetStatusBtnInit()
累己磊 :
累己老 :
格利 :
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CStatusWnd::SetStatusBtnInit()
{
m_xStatusBtn[_BTN_ID_STATUSCLOSE].SetBtnState(_BTN_STATE_NORMAL);
m_xStatusBtn[_BTN_ID_STATUS].SetBtnState(_BTN_STATE_NORMAL);
m_xStatusBtn[_BTN_ID_STATUSMAGIC].SetBtnState(_BTN_STATE_NORMAL);
}
/******************************************************************************************************************
某腐磐 厘馒芒包访.
*******************************************************************************************************************/
/******************************************************************************************************************
窃荐疙 : CStatusWnd::ShowCharEquipWnd()
累己磊 :
累己老 :
格利 :
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CStatusWnd::ShowCharEquipWnd()
{
INT nStartX, nStartY;
ShowGameWnd();
// 巢磊牢瘤, 咯磊牢瘤备盒.
if ( g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].NewSetIndex(g_xGameProc.m_xMyHero.m_stFeature.bGender) )
{
g_xMainWnd.DrawWithImageForComp(
m_rcWnd.left+_EQUIP_CHAR_X+g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].m_lpstNewCurrWilImageInfo->shPX,
m_rcWnd.top+_EQUIP_CHAR_Y+g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].m_lpstNewCurrWilImageInfo->shPY,
g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].m_lpstNewCurrWilImageInfo->shWidth,
g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)(g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].m_pbCurrImage));
}
// 酒捞袍 弊府扁.
for ( INT nCnt = 0; nCnt < _EQUIP_MAX_CELL; nCnt++ )
{
if ( m_stEquipItem[nCnt].bSetted )
{
// m_stEquipItem[nCnt].xItem.m_stItemInfo.stStdItem.wLooks = 1;
if ( nCnt!=_U_HELMET && nCnt!=_U_WEAPON && nCnt!=_U_DRESS )
{
nStartX = m_rcWnd.left+m_rcCell[nCnt].left;
nStartY = m_rcWnd.top+m_rcCell[nCnt].top;
m_stEquipItem[nCnt].xItem.DrawItem(nStartX, nStartY);
}
else
{
nStartX = m_rcWnd.left+_EQUIP_CHAR_X;
nStartY = m_rcWnd.top+_EQUIP_CHAR_Y;
m_stEquipItem[nCnt].xItem.DrawItem(nStartX, nStartY, _ITEM_TYPE_EQUIP);
}
}
}
ShowEquipItemState();
}
/******************************************************************************************************************
窃荐疙 : CStatusWnd::ShowEquipItemState()
累己磊 :
累己老 :
格利 :
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CStatusWnd::ShowEquipItemState()
{
INT nEquipNum = GetEquipNum(g_xGameProc.m_ptMousePos);
if ( nEquipNum != -1 )
{
if ( m_stEquipItem[nEquipNum].bSetted )
{
m_stEquipItem[nEquipNum].xItem.ShowItemStatus(m_rcWnd.left+37, m_rcWnd.top+288);
}
}
}
/******************************************************************************************************************
窃荐疙 : CStatusWnd::GetEquipNum()
累己磊 :
累己老 :
格利 :
涝仿 : POINT ptMouse
免仿 : INT
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
INT CStatusWnd::GetEquipNum(POINT ptMouse)
{
RECT rc;
for ( INT nCnt = 0; nCnt < _EQUIP_MAX_CELL; nCnt++ )
{
SetRect(&rc, m_rcWnd.left+m_rcCell[nCnt].left, m_rcWnd.top+m_rcCell[nCnt].top,
m_rcWnd.left+m_rcCell[nCnt].left+(m_rcCell[nCnt].right-m_rcCell[nCnt].left), m_rcWnd.top+m_rcCell[nCnt].top+(m_rcCell[nCnt].bottom-m_rcCell[nCnt].top));
if ( PtInRect(&rc, ptMouse) )
{
return nCnt;
}
}
return -1;
}
/******************************************************************************************************************
窃荐疙 : CStatusWnd::CheckEquipItem()
累己磊 :
累己老 :
格利 :
涝仿 : CItem* pxItem
BYTE bEquipCell
POINT ptMouse
免仿 : BOOL
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
BOOL CStatusWnd::CheckEquipItem(CItem* pxItem, BYTE bEquipCell, POINT ptMouse)
{
RECT rc;
for ( INT nCnt = 0; nCnt < _EQUIP_MAX_CELL; nCnt++ )
{
SetRect(&rc, m_rcWnd.left+m_rcCell[nCnt].left, m_rcWnd.top+m_rcCell[nCnt].top,
m_rcWnd.left+m_rcCell[nCnt].left+(m_rcCell[nCnt].right-m_rcCell[nCnt].left), m_rcWnd.top+m_rcCell[nCnt].top+(m_rcCell[nCnt].bottom-m_rcCell[nCnt].top));
if ( PtInRect(&rc, ptMouse) )
{
if ( pxItem->m_bAttr == _U_ARMRINGL || pxItem->m_bAttr == _U_ARMRINGR )
{
if ( pxItem->m_stItemInfo.stStdItem.bStdMode == 25 )
{
if ( _U_ARMRINGL == bEquipCell )
return TRUE;
}
else
{
if ( _U_ARMRINGL == bEquipCell || _U_ARMRINGR == bEquipCell ) return TRUE;
}
}
else if ( pxItem->m_bAttr == _U_RINGL || pxItem->m_bAttr == _U_RINGR )
{
if ( _U_RINGL == bEquipCell || _U_RINGR == bEquipCell ) return TRUE;
}
else if ( pxItem->m_bAttr == bEquipCell )
{
return TRUE;
}
}
}
return FALSE;
}
/******************************************************************************************************************
窃荐疙 : CStatusWnd::DeleteEquipItem()
累己磊 :
累己老 :
格利 :
涝仿 : INT nEquipNum
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CStatusWnd::DeleteEquipItem(INT nEquipNum)
{
ZeroMemory(&m_stEquipItem[nEquipNum], sizeof(ITEMSET));
}
VOID CStatusWnd::DeleteEquipItem(INT nMakeIndex, CHAR* szName)
{
for ( INT nCnt = 0; nCnt < _EQUIP_MAX_CELL; nCnt++ )
{
if ( m_stEquipItem[nCnt].bSetted )
{
if ( m_stEquipItem[nCnt].xItem.m_stItemInfo.nMakeIndex == nMakeIndex )
{
if ( !strcmp(m_stEquipItem[nCnt].xItem.m_stItemInfo.stStdItem.szName, szName) )
{
DeleteEquipItem(nCnt);
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -