📄 interface.cpp
字号:
/******************************************************************************************************************
葛碘疙:
累己磊:
累己老:
[老磊][荐沥磊] : 荐沥 郴侩
*******************************************************************************************************************/
#include "StdAfx.h"
/******************************************************************************************************************
窃荐疙 : CInterface::CInterface()
累己磊 :
累己老 :
格利 :
免仿 :
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
CInterface::CInterface()
{
Init();
}
/******************************************************************************************************************
窃荐疙 : CInterface::~CInterface()
累己磊 :
累己老 :
格利 :
免仿 :
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
CInterface::~CInterface()
{
Destroy();
}
/******************************************************************************************************************
窃荐疙 : CInterface::Init()
累己磊 :
累己老 :
格利 : 牢磐其捞胶包访 函荐棺, 按眉檬扁拳.
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CInterface::Init()
{
m_nIdxMsgBox = 0;
m_nFstLine = 0;
m_shBeltHeight = 0;
m_bShowKey = FALSE;
m_bMoveFocusedWnd = FALSE;
m_bBeltState = _BELT_STATE_STAY;
SetRect(&m_rcMain, 0, 0, 0, 0);
SetRect(&m_rcChat, 0, 0, 0, 0);
ZeroMemory(&m_stCommonItem, sizeof(ITEMSET));
m_xClientSysMsg.Init();
m_pxInterImg = NULL;
m_xInterImgEx.Init();
m_xStatusWnd.Init();
m_xStoreWnd.Init();
m_xGuildWnd.Init();
m_xGroupWnd.Init();
m_xChatPopWnd.Init();
m_xExchangeWnd.Init();
m_xGroupPopWnd.Init();
m_xInventoryWnd.Init();
m_xGuildMasterWnd.Init();
for ( INT nCnt = 0; nCnt < _MAX_INTER_BTN; nCnt++ )
{
m_xInterBtn[nCnt].Init();
}
m_xScrlBar.Init();
m_xChat.ClearAllNodes();
m_xWndOrderList.ClearAllNodes();
}
/******************************************************************************************************************
窃荐疙 : CInterface::Destroy()
累己磊 :
累己老 :
格利 : 牢磐其捞胶包访 函荐, 按眉狼 家戈棺, 檬扁拳.
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CInterface::Destroy()
{
m_xClientSysMsg.Destroy();
m_xInterImgEx.Destroy();
m_pxInterImg = NULL;
m_xInventoryWnd.Destroy();
m_xStoreWnd.Destroy();
m_xStatusWnd.Destroy();
m_xGuildWnd.Destroy();
m_xGroupWnd.Destroy();
m_xExchangeWnd.Destroy();
m_xGuildMasterWnd.Destroy();
m_xGroupPopWnd.Destroy();
m_xChatPopWnd.Destroy();
for ( INT nCnt = 0; nCnt < _MAX_INTER_BTN; nCnt++ )
{
m_xInterBtn[nCnt].Destroy();
}
m_xChat.ClearAllNodes();
m_xWndOrderList.ClearAllNodes();
Init();
}
VOID CInterface::CreateInterface(CImageHandler* pxImgHandler)
{
m_pxInterImg = &(pxImgHandler->m_xImageList[_IMAGE_INTER]);
//------------------------------------------------------------------------------------------------------------
// 盲泼俊叼飘 扩档快 困摹瘤沥.
MoveWindow(g_xChatEditBox.GetSafehWnd(),
g_xMainWnd.m_rcWindow.left+_INPUT_EDITWND_XPOS, g_xMainWnd.m_rcWindow.top+_INPUT_EDITWND_YPOS,
_INPUT_EDITWND_WIDTH, _INPUT_EDITWND_HEIGHT, TRUE);
//------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------
// 牢磐其捞胶 捞固瘤 肺靛.
m_pxInterImg->NewLoad(".\\Data\\gameinter.wil");
m_xInterImgEx.NewLoad(".\\Data\\interfacec2.wil");
//------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------
// 皋牢牢磐其捞胶 康开汲沥.
if ( m_pxInterImg->NewSetIndex(_WNDIMGIDX_MAIN) )
{
SetRect(&m_rcMain,
0, (600-m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight),
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth, 600);
}
//------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------
// 盲泼 康开汲沥.
SetRect(&m_rcChat, 224, 471, 578, 545);
//------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------
// 扩档快甸 积己.
m_xInventoryWnd.CreateInventoryWnd(_WND_ID_INVENTORY, m_pxInterImg, _WNDIMGIDX_INVENTORY, 0, 0, 0, 0, TRUE);
m_xStatusWnd.CreateStatusWnd(_WND_ID_STATUS, m_pxInterImg, _WNDIMGIDX_ITEMSET, 510, 0, 0, 0, TRUE);
m_xStoreWnd.CreateStoreWnd(_WND_ID_STORE, m_pxInterImg, _WNDIMGIDX_STORE, 0, 0, 0, 0, TRUE);
m_xExchangeWnd.CreateExchangeWnd(_WND_ID_EXCHANGE, m_pxInterImg, _WNDIMGIDX_EXCHANGE, 0, 0, 0, 0, TRUE);
m_xGuildMasterWnd.CreateGuildMasterWnd(_WND_ID_GUILDMASTER, m_pxInterImg, _WNDIMGIDX_GUILDMASTER, 0, 0, 0, 0, TRUE);
m_xGuildWnd.CreateGuildWnd(_WND_ID_GUILD, &m_xInterImgEx, _WNDIMGIDX_GUILD, 0, 0, 540, 442, TRUE);
m_xGroupWnd.CreateGroupWnd(_WND_ID_GROUP, m_pxInterImg, _WNDIMGIDX_GROUP, 0, 0, 0, 0, TRUE);
m_xGroupPopWnd.CreateGroupPopWnd(_WND_ID_GROUPPOP, &m_xInterImgEx, _WNDIMGIDX_GROUPPOP, 0, 0, 260, 114, TRUE);
m_xChatPopWnd.CreateChatPopWnd(_WND_ID_CHATPOP, m_pxInterImg, _WNDIMGIDX_CHATPOP, 0, 0, 0, 0, TRUE);
m_xOptionWnd.CreateOptionWnd(_WND_ID_OPTION, m_pxInterImg, _WNDIMGIDX_OPTION, 0, 0, 0, 0, TRUE);
m_xQuestWnd.CreateQuestWnd(_WND_ID_QUEST, m_pxInterImg, _WNDIMGIDX_QUEST, 0, 0, 0, 0, TRUE);
m_xHorseWnd.CreateHorseWnd(_WND_ID_HORSE, m_pxInterImg, _WNDIMGIDX_HORSE, 0, 0, 0, 0, TRUE);
m_xNPCWnd.CreateNPCChatWnd(_WND_ID_NPCCHAT, m_pxInterImg, _WNDIMGIDX_NPCCHAT, 0, 0, 0, 0, TRUE); // 侩扁
//------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------
// 滚瓢 檬扁拳.
m_xInterBtn[ 0].CreateGameBtn(m_pxInterImg, 80, 81, m_rcMain.left+204, m_rcMain.top+0); // 背券芒.
m_xInterBtn[ 1].CreateGameBtn(m_pxInterImg, 82, 83, m_rcMain.left+228, m_rcMain.top+0); // 固聪甘.
m_xInterBtn[ 2].CreateGameBtn(m_pxInterImg, 84, 85, m_rcMain.left+252, m_rcMain.top+0); // 公傍芒.
m_xInterBtn[ 3].CreateGameBtn(m_pxInterImg, 90, 91, m_rcMain.left+161, m_rcMain.top+65); // 霸烙辆丰.
m_xInterBtn[ 4].CreateGameBtn(m_pxInterImg, 92, 93, m_rcMain.left+161, m_rcMain.top+101); // 肺弊酒眶.
m_xInterBtn[ 5].CreateGameBtn(m_pxInterImg, 94, 95, m_rcMain.left+616, m_rcMain.top+66); // 弊缝.
m_xInterBtn[ 6].CreateGameBtn(m_pxInterImg, 96, 97, m_rcMain.left+616, m_rcMain.top+102); // 巩颇.
m_xInterBtn[ 7].CreateGameBtn(m_pxInterImg, 52, 53, m_rcMain.left+397, m_rcMain.top+13); // 骇飘 UP, DOWN.
m_xInterBtn[ 8].CreateGameBtn(m_pxInterImg,100, 101, m_rcMain.left+703, m_rcMain.top+34); // 胶懦芒.
m_xInterBtn[ 9].CreateGameBtn(m_pxInterImg,102, 103, m_rcMain.left+718, m_rcMain.top+50); // 盲泼扑诀.
m_xInterBtn[10].CreateGameBtn(m_pxInterImg,104, 105, m_rcMain.left+718, m_rcMain.top+88); // 涅胶飘.
m_xInterBtn[11].CreateGameBtn(m_pxInterImg,106, 107, m_rcMain.left+703, m_rcMain.top+103); // 可记.
m_xInterBtn[12].CreateGameBtn(m_pxInterImg,108, 109, m_rcMain.left+664, m_rcMain.top+104); // 档框富.
m_xInterBtn[13].CreateGameBtn(m_pxInterImg,110, 111, m_rcMain.left+648, m_rcMain.top+88); // 富芒.
m_xInterBtn[14].CreateGameBtn(m_pxInterImg,112, 113, m_rcMain.left+648, m_rcMain.top+50); // 啊规芒.
m_xInterBtn[15].CreateGameBtn(m_pxInterImg,114, 115, m_rcMain.left+665, m_rcMain.top+34); // 惑怕芒.
//------------------------------------------------------------------------------------------------------------
m_xScrlBar.CreateScrlBar(m_pxInterImg, 68, _MAX_CHATLINE, 12, 84, 12);
m_xMsgBox.Load(&m_xInterImgEx); // 侩扁
}
/******************************************************************************************************************
窃荐疙 : CInterface::MsgAdd()
累己磊 :
累己老 :
格利 :
涝仿 : DWORD dwFontColor
DWORD dwFontBackColor
CHAR* pszMsg
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CInterface::MsgAdd(DWORD dwFontColor, DWORD dwFontBackColor, CHAR* pszMsg)
{
if ( pszMsg )
{
if ( pszMsg[0] != NULL )
{
INT nCnt;
CHAT stChat;
INT nLineCnt;
CHAR pszDivied[MAX_PATH*2];
CHAR pszArg[5][MAX_PATH];
m_xChatPopWnd.MsgAdd(dwFontColor, dwFontBackColor, pszMsg);
ZeroMemory(pszDivied, MAX_PATH*2);
ZeroMemory(pszArg, MAX_PATH*5);
g_xMainWnd.StringDivide(m_rcChat.right-m_rcChat.left, nLineCnt, pszMsg, pszDivied);
sscanf(pszDivied, "%[^`]%*c %[^`]%*c %[^`]%*c %[^`]%*c %[^`]%*c", pszArg[0], pszArg[1], pszArg[2], pszArg[3], pszArg[4]);
if ( nLineCnt > 5 )
{
nLineCnt = 5;
}
// 巩磊凯 火涝.
for ( nCnt = 0; nCnt < nLineCnt; nCnt++ )
{
// 沫捞 促澜栏肺 哎炼扒.
if ( m_xChat.GetCounter() - m_nFstLine == _MAX_CHATLINE )
{
m_nFstLine++;
}
stChat.dwFontColor = dwFontColor;
stChat.dwBackColor = dwFontBackColor;
strcpy(stChat.pszChat, pszArg[nCnt]);
m_xChat.AddNode(stChat);
}
// 弥措历厘扼牢 八荤秦辑 弊捞惑捞搁 昏力茄促.
while ( m_xChat.GetCounter() >= 50 )
{
m_xChat.MoveCurrentToTop();
m_xChat.DeleteCurrentNode();
if ( m_nFstLine > 0 )
m_nFstLine--;
}
}
}
}
/******************************************************************************************************************
窃荐疙 : CInterface::ShowWndList()
累己磊 :
累己老 :
格利 : Active登绢乐绰 扩档快狼 府胶飘甫 焊咯霖促.
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CInterface::ShowWndList()
{
if ( m_xWndOrderList.GetCounter() != 0 )
{
m_xWndOrderList.MoveCurrentToTop();
INT* pnCurrID;
for ( INT nCnt = 0; nCnt < m_xWndOrderList.GetCounter(); nCnt++ )
{
pnCurrID = m_xWndOrderList.GetCurrentData();
switch ( *pnCurrID )
{
case _WND_ID_INVENTORY:
m_xInventoryWnd.ShowInventoryWnd();
break;
case _WND_ID_STATUS:
m_xStatusWnd.ShowStatusWnd();
break;
case _WND_ID_STORE:
m_xStoreWnd.ShowStoreWnd();
break;
case _WND_ID_EXCHANGE:
m_xExchangeWnd.ShowExchangeWnd();
break;
case _WND_ID_GUILDMASTER:
m_xGuildMasterWnd.ShowGuildMasterWnd();
break;
case _WND_ID_GUILD:
m_xGuildWnd.ShowGuildWnd();
break;
case _WND_ID_GROUP:
m_xGroupWnd.ShowGroupWnd();
break;
case _WND_ID_GROUPPOP:
m_xGroupPopWnd.ShowGroupPopWnd();
break;
case _WND_ID_CHATPOP:
m_xChatPopWnd.ShowChatPopWnd();
break;
case _WND_ID_NPCCHAT: // 侩扁
m_xNPCWnd.ShowNPCChatWnd();
break;
case _WND_ID_QUEST:
m_xQuestWnd.ShowQuestWnd();
break;
case _WND_ID_OPTION:
m_xOptionWnd.ShowOptionWnd();
break;
case _WND_ID_HORSE:
m_xHorseWnd.ShowHorseWnd();
break;
}
m_xWndOrderList.MoveNextNode();
}
}
}
/******************************************************************************************************************
窃荐疙 : CInterface::ShowChatList()
累己磊 :
累己老 :
格利 : 盲泼 府胶飘甫 焊咯霖促.
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CInterface::ShowChatList()
{
if ( !m_xChat.CheckEmpty() )
{
INT nCnt, nShowLine;
LPCHAT pstChat;
m_xChat.MoveCurrentToTop();
m_xChat.MoveNode(m_nFstLine);
nShowLine = ((m_xChat.GetCounter() - m_nFstLine ) >= _MAX_CHATLINE) ? _MAX_CHATLINE : m_xChat.GetCounter() - m_nFstLine;
for ( nCnt = 0; nCnt < nShowLine; nCnt++ )
{
pstChat = m_xChat.GetCurrentData();
g_xMainWnd.PutsHan(g_xMainWnd.GetBackBuffer(),
m_rcChat.left, m_rcChat.top+nCnt*15,
pstChat->dwBackColor, pstChat->dwFontColor, pstChat->pszChat);
m_xChat.MoveNextNode();
}
}
}
/******************************************************************************************************************
窃荐疙 : CInterface::RenderInterface()
累己磊 :
累己老 :
格利 :
涝仿 : INT nLoopTime
POINT ptMousePos
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CInterface::RenderInterface(INT nLoopTime, POINT ptMousePos)
{
INT nX, nY, nCnt;
// 扩档快.
ShowWndList();
// 付快胶 酒捞袍.
if ( m_stCommonItem.bSetted && !m_stCommonItem.bIsHideItem )
{
nX = ptMousePos.x - _INVENTORY_CELL_WIDTH /2;
nY = ptMousePos.y - _INVENTORY_CELL_HEIGHT/2;
m_stCommonItem.xItem.DrawItem(nX, nY);
}
// 骇飘酒捞袍.
ShowBeltItem();
// 皋牢牢磐其捞胶.
if ( m_pxInterImg->NewSetIndex(_WNDIMGIDX_MAIN) )
{
g_xMainWnd.DrawWithImageForCompClipRgn(m_rcMain.left, m_rcMain.top, m_rcMain.right-m_rcMain.left, m_rcMain.bottom-m_rcMain.top,
(WORD*)m_pxInterImg->m_pbCurrImage, _CLIP_WIDTH, 600);
}
// 盲泼府胶飘.
ShowChatList();
// 惑怕摹.
ShowGameStatus();
// 滚瓢.
for ( nCnt = 0; nCnt < _MAX_INTER_BTN; nCnt++)
{
m_xInterBtn[nCnt].ShowGameBtn();
}
// 胶农费官.
m_xScrlBar.ShowScrlBar(584, 404, m_nFstLine, m_xChat.GetCounter());
// 努扼捞攫飘皋矫瘤(哭率惑窜).
m_xClientSysMsg.ShowSysMsg(nLoopTime, 30, 30);
// 侩扁
m_xMsgBox.RenderMessageBox(0);
ShowMagicKey();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -