www.pudn.com > Mir2Game.rar > 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();
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInterface::ShowBeltItem()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInterface::ShowBeltItem()
{
INT nX, nY;
if ( m_bBeltState == _BELT_STATE_UP )
{
m_shBeltHeight += 10;
if ( m_shBeltHeight >= 46 )
{
m_shBeltHeight = 46;
}
}
else if ( m_bBeltState == _BELT_STATE_DOWN )
{
m_shBeltHeight -= 10;
if ( m_shBeltHeight <= 0 )
{
m_shBeltHeight = 0;
m_bBeltState = _BELT_STATE_STAY;
}
}
if ( m_bBeltState != _BELT_STATE_STAY )
{
if ( m_pxInterImg->NewSetIndex(_IMGIDX_BELT) )
{
g_xMainWnd.DrawWithImageForCompClipRgn(275, 457-m_shBeltHeight,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage, _CLIP_WIDTH, 600);
// º§Æ® ¾ÆÀÌÅÛ ±×¸®±â.
for ( INT nCnt = 0; nCnt < _MAX_BELT_ITEM; nCnt++ )
{
if ( m_xInventoryWnd.m_stBeltItem[nCnt].bSetted )
{
nX = 275 + 8 + nCnt*40;
nY = 411 + 6 + 46 - m_shBeltHeight;
m_xInventoryWnd.m_stBeltItem[nCnt].xItem.DrawItem(nX, nY);
}
}
}
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInterface::ShowGameStatus()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInterface::ShowGameStatus()
{
FLOAT fMyHPRate;
FLOAT fMyMPRate;
FLOAT fMyWetRate;
FLOAT fMyExpRate;
WORD wJobIcon;
WORD wImgNum;
CHAR pszBuff[MAX_PATH];
RECT rcStats;
DWORD dwFntClr;
BYTE bMyJob = g_xGameProc.m_xMyHero.m_bJob;
BYTE bMyLevel= g_xGameProc.m_xMyHero.m_stAbility.bLevel;
WORD wMyAC = g_xGameProc.m_xMyHero.m_stAbility.wAC;
WORD wMyDC = g_xGameProc.m_xMyHero.m_stAbility.wDC;
WORD wMyMC = g_xGameProc.m_xMyHero.m_stAbility.wMC;
WORD wMySC = g_xGameProc.m_xMyHero.m_stAbility.wSC;
BYTE bDay = g_xGameProc.m_bDayState;
WORD wHP = g_xGameProc.m_xMyHero.m_stAbility.wHP;
WORD wMP = g_xGameProc.m_xMyHero.m_stAbility.wMP;
WORD wWet = g_xGameProc.m_xMyHero.m_stAbility.wWeight;
DWORD dwExp = g_xGameProc.m_xMyHero.m_stAbility.dwExp;
BYTE bJob = g_xGameProc.m_xMyHero.m_bJob;
// ÇÏ·çÀÇ »óÅÂÄ¡(¹ã, ³·, Àú³á, »õº®)
switch ( bDay )
{
case _DAYSTATE_DAY:
wImgNum = 130;
break;
case _DAYSTATE_DUSK:
wImgNum = 131;
break;
case _DAYSTATE_NIGHT:
wImgNum = 132;
break;
case _DAYSTATE_DAWN:
wImgNum = 133;
break;
}
if ( m_pxInterImg->NewSetIndex(wImgNum) )
{
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+684, m_rcMain.top+70,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage, _CLIP_WIDTH, 600);
}
// HP, MPÂï±â.
// ºñÀ²°Ë»ç.
if ( wHP )
{
fMyHPRate = (FLOAT)((FLOAT)wHP/(FLOAT)g_xGameProc.m_xMyHero.m_stAbility.wMaxHP);
if ( fMyHPRate > 1.0f )
{
fMyHPRate = 1.0f;
}
}
else
{
fMyHPRate = 0;
}
if ( wMP )
{
fMyMPRate = (FLOAT)((FLOAT)wMP/(FLOAT)g_xGameProc.m_xMyHero.m_stAbility.wMaxMP);
if ( fMyMPRate > 1.0f )
{
fMyMPRate = 1.0f;
}
}
else
{
fMyMPRate = 0;
}
if ( dwExp )
{
fMyExpRate = (FLOAT)((FLOAT)dwExp/(FLOAT)g_xGameProc.m_xMyHero.m_stAbility.dwMaxExp);
if ( fMyExpRate > 1.0f )
{
fMyExpRate = 1.0f;
}
}
else
{
fMyExpRate = 0;
}
if ( wWet )
{
fMyWetRate = (FLOAT)((FLOAT)wWet /(FLOAT)g_xGameProc.m_xMyHero.m_stAbility.wMaxWeight);
if ( fMyWetRate > 1.0f )
{
fMyWetRate = 1.0f;
}
}
else
{
fMyWetRate = 0;
}
if ( m_pxInterImg->NewSetIndex(60) )
{
RECT rcHP = { 0, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight-(m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight*fMyHPRate),
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight };
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+46, m_rcMain.top+34, rcHP, (WORD*)m_pxInterImg->m_pbCurrImage);
}
if ( m_pxInterImg->NewSetIndex(61) )
{
RECT rcMP = { 0, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight-(m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight*fMyMPRate),
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight };
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+104, m_rcMain.top+34, rcMP, (WORD*)m_pxInterImg->m_pbCurrImage);
}
// EXP, WET Âï±â.
if ( m_pxInterImg->NewSetIndex(63) )
{
RECT rcEXP = { 0, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight-(m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight*fMyExpRate),
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight };
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+76, m_rcMain.top+35, rcEXP, (WORD*)m_pxInterImg->m_pbCurrImage);
}
if ( m_pxInterImg->NewSetIndex(67) )
{
RECT rcWET = { 0, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight-(m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight*fMyWetRate),
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight };
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+211, m_rcMain.top+35, rcWET, (WORD*)m_pxInterImg->m_pbCurrImage);
}
dwFntClr = RGB(225, 225, 0);
// ·¹º§Âï6±â.
sprintf(pszBuff, "%d", g_xGameProc.m_xMyHero.m_stAbility.bLevel);
SetRect(&rcStats, 693, 528, 709, 544);
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff, g_xMainWnd.CreateGameFont("±Ã¼Ã¼", 10, 0, FW_BOLD));
dwFntClr = RGB(255, 255, 200);
// ¸ÊÀ̸§ ¹× ÁÂÇ¥Âï±â.
sprintf(pszBuff, "%s : [%d,%d]", g_xGameProc.m_szMapName, g_xGameProc.m_xMyHero.m_wPosX, g_xGameProc.m_xMyHero.m_wPosY);
SetRect(&rcStats, 219, 584, 379, 599);
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff);
dwFntClr = RGB(255, 200, 50);
// Á÷¾÷º° ¾ÆÀÌÄÜ¹× Æ¯¼ºÄ¡ Âï±â.
sprintf(pszBuff, "%d-%d", LOBYTE(wMyAC), HIBYTE(wMyAC));
SetRect(&rcStats, 422, 584, 483, 599);
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff);
SetRect(&rcStats, 520, 584, 581, 599);
switch ( bJob )
{
case _JOB_DOSA:
{
wJobIcon = 66;
wImgNum = 123;
sprintf(pszBuff, "%d-%d", LOBYTE(wMySC), HIBYTE(wMySC));
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff);
}
break;
case _JOB_SULSA:
{
wJobIcon = 65;
wImgNum = 124;
sprintf(pszBuff, "%d-%d", LOBYTE(wMyMC), HIBYTE(wMyMC));
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff);
}
break;
case _JOB_JUNSA:
{
wJobIcon = 64;
wImgNum = 122;
sprintf(pszBuff, "%d-%d", LOBYTE(wMyDC), HIBYTE(wMyDC));
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff);
}
break;
}
if ( m_pxInterImg->NewSetIndex(wJobIcon) )
{
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+82, m_rcMain.top+71,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage);
}
// ACÂï±â.
if ( m_pxInterImg->NewSetIndex(120) )
{
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+391, m_rcMain.top+136,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage);
}
// DC, MC, SC
if ( m_pxInterImg->NewSetIndex(wImgNum) )
{
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+487, m_rcMain.top+136,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage);
}
}
VOID CInterface::ShowMagicKey()
{
if ( m_bShowKey )
{
INT nCnt;
for ( nCnt = 0; nCnt < 8; nCnt++ )
{
if ( m_pxInterImg->NewSetIndex(70+nCnt) )
{
g_xMainWnd.DrawWithABlendCompDataWithBackBuffer(nCnt*m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth, 0,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage, _CLIP_WIDTH, 600);
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// À©µµ¿ì °ü¸®ºÎºÐ/////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/******************************************************************************************************************
ÇÔ¼ö¸í : CInterface::GetWindowInMousePos()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : ¸¶¿ì½º Æ÷ÀÎÅ͸¦ ¿µ¿ª¾È¿¡ °¡Áö°í ÀÖ´Â À©µµ¿ì¸®½ºÆ®Áß ¸ÇóÀ½ À©µµ¿ìÀÇ ID¸¦ ¸®ÅÏÇÑ´Ù.
ÀÔ·Â : POINT ptMouse
Ãâ·Â :
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
INT CInterface::GetWindowInMousePos(POINT ptMouse)
{
if ( m_xWndOrderList.GetCounter() != 0 )
{
RECT rcWnd;
INT* pnCurrID;
m_xWndOrderList.MoveCurrentToTail();
for ( INT nCnt = m_xWndOrderList.GetCounter()-1; nCnt >= 0 ; nCnt-- )
{
pnCurrID = m_xWndOrderList.GetCurrentData();
switch ( *pnCurrID )
{
case _WND_ID_INVENTORY:
rcWnd = m_xInventoryWnd.GetGameWndRect();
break;
case _WND_ID_STATUS:
rcWnd = m_xStatusWnd.GetGameWndRect();
break;
case _WND_ID_STORE:
rcWnd = m_xStoreWnd.GetGameWndRect();
break;
case _WND_ID_EXCHANGE:
rcWnd = m_xExchangeWnd.GetGameWndRect();
break;
case _WND_ID_GUILDMASTER:
rcWnd = m_xGuildMasterWnd.GetGameWndRect();
break;
case _WND_ID_GUILD:
rcWnd = m_xGuildWnd.GetGameWndRect();
break;
case _WND_ID_GROUP:
rcWnd = m_xGroupWnd.GetGameWndRect();
break;
case _WND_ID_GROUPPOP:
rcWnd = m_xGroupPopWnd.GetGameWndRect();
break;
case _WND_ID_CHATPOP:
rcWnd = m_xChatPopWnd.GetGameWndRect();
break;
case _WND_ID_NPCCHAT: // ¿ë±â
rcWnd = m_xNPCWnd.GetGameWndRect();
break;
case _WND_ID_QUEST:
rcWnd = m_xQuestWnd.GetGameWndRect();
break;
case _WND_ID_OPTION:
rcWnd = m_xOptionWnd.GetGameWndRect();
break;
case _WND_ID_HORSE:
rcWnd = m_xHorseWnd.GetGameWndRect();
break;
}
if ( PtInRect(&rcWnd, ptMouse) )
{
return *pnCurrID;
}
m_xWndOrderList.MovePreviousNode();
}
}
return -1;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInterface::AddWindowToList()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : À©µµ¿ì¸®½ºÆ®ÀÇ ¸Ç ¸¶Áö¸·¿¡ ÇöÀç ÀԷ¹ÞÀº ¾ÆÀ̵𰡠nIDÀÎ À©µµ¿ì¸¦ Ãß°¡ÇÑ´Ù.
ÀÔ·Â : INT nID
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInterface::AddWindowToList(INT nID)
{
m_xWndOrderList.AddNode(nID);
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInterface::DeleteWindowToList()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : nIDÀÇ ¾ÆÀ̵𸦠°¡Áø À©µµ¿ì¸¦ ¸®½ºÆ®»ó¿¡¼ »èÁ¦ÇÑ´Ù.
ÀÔ·Â : INT nID
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInterface::DeleteWindowToList(INT nID)
{
if ( m_xWndOrderList.GetCounter() != 0 )
{
m_xWndOrderList.MoveCurrentToTop();
INT* pnCurrID;
for ( INT nCnt = 0; nCnt < m_xWndOrderList.GetCounter(); nCnt++ )
{
pnCurrID = m_xWndOrderList.GetCurrentData();
if ( *pnCurrID == nID )
{
m_xWndOrderList.DeleteCurrentNode();
break;
}
m_xWndOrderList.MoveNextNode();
}
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInterface::WindowActivate()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : nIDÀÎ À©µµ¿ì¸¦ À©µµ¿ì¸®½ºÆ®¿¡ Ãß°¡½ÃŰ°Å³ª »èÁ¦½Ã۸ç, Ãß°¡ÀÇ °æ¿ì, À©µµ¿ìÀÇ »óŸ¦ ÃÖ»óÀ§ »óÅ·Π¼¼ÆÃÇÑ´Ù.
À©µµ¿ì°¡ ŰÀÔ·ÂÀ» ¹Þ¾Æ¼ ȸ鿡 ³ª¿Ã¶§ È£ÃâÇÏ´Â ÇÔ¼öÀÌ´Ù.
ÀÔ·Â : INT nID
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInterface::WindowActivate(INT nID)
{
// »õ·Î¿î À©µµ¿ì¿¡ Æ÷Ä¿½º¸¦ ÁÖ±âÀ§Çؼ ¸ðµç À©µµ¿ìÀÇ Æ÷Ä¿½º¸¦ FALSE½ÃÄÑÁØ´Ù.
BOOL bRet = FALSE;
AllWindowsFocusOff();
switch ( nID )
{
case _WND_ID_INVENTORY:
{
if ( m_xInventoryWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_INVENTORY);
m_xInventoryWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_INVENTORY);
m_xInventoryWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_STATUS:
{
if ( m_xStatusWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_STATUS);
m_xStatusWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_STATUS);
m_xStatusWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_STORE:
{
if ( m_xStoreWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_STORE);
m_xStoreWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_STORE);
m_xStoreWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_EXCHANGE:
{
if ( m_xExchangeWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_EXCHANGE);
m_xExchangeWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_EXCHANGE);
m_xExchangeWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_QUEST:
{
if ( m_xQuestWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_QUEST);
m_xQuestWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_QUEST);
m_xQuestWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_OPTION:
{
if ( m_xOptionWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_OPTION);
m_xOptionWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_OPTION);
m_xOptionWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_HORSE:
{
if ( m_xHorseWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_HORSE);
m_xHorseWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_HORSE);
m_xHorseWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_GUILDMASTER:
{
if ( m_xGuildMasterWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_GUILDMASTER);
m_xGuildMasterWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_GUILDMASTER);
m_xGuildMasterWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_GUILD:
{
if ( m_xGuildWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_GUILD);
m_xGuildWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_GUILD);
m_xGuildWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_GROUP:
{
if ( m_xGroupWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_GROUP);
m_xGroupWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_GROUP);
m_xGroupWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_GROUPPOP:
{
if ( m_xGroupPopWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_GROUPPOP);
m_xGroupPopWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_GROUPPOP);
m_xGroupPopWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_CHATPOP:
{
if ( m_xChatPopWnd.GetGameWndActive() )
{
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);
DeleteWindowToList(_WND_ID_CHATPOP);
m_xChatPopWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
MoveWindow(g_xChatEditBox.GetSafehWnd(), g_xMainWnd.m_rcWindow.left + m_xChatPopWnd.m_rcWnd.left + m_xChatPopWnd.m_rcEditBoxFrame.left,
g_xMainWnd.m_rcWindow.top + m_xChatPopWnd.m_rcWnd.top + m_xChatPopWnd.m_rcEditBoxFrame.top,
m_xChatPopWnd.m_rcEditBoxFrame.right - m_xChatPopWnd.m_rcEditBoxFrame.left,
m_xChatPopWnd.m_rcEditBoxFrame.bottom - m_xChatPopWnd.m_rcEditBoxFrame.top, TRUE);
SetFocus(g_xChatEditBox.GetSafehWnd());
AddWindowToList(_WND_ID_CHATPOP);
m_xChatPopWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
case _WND_ID_NPCCHAT: // ¿ë±â
{
if ( m_xNPCWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_NPCCHAT);
// m_xNPCWnd.CloseWnd();
m_xNPCWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
// ÀÓ½Ã
AddWindowToList(_WND_ID_NPCCHAT);
// m_xNPCWnd.SetNPCStr("ÇÏ´ÃÀ» ¿ì·¯·¯ ÇÑÁ¡ ºÎ²ô·³ ¾ø±â¸¦ ÀÙ¼¼¿¡ÀÌ´Â ¹Ù¶÷¿¡µµ ³ª´Â ±«·Î¿ö Çß´Ù <º°/@STAR>À» ³ë·¡ÇÏ´Â ¸¶À½À¸·Î ¸ðµç Á×¾î °¡´Â°ÍÀ» <»ç¶û/@LOVE>ÇØ¾ßÁö ±×¸®°í ¶Ç ³ª¿¡°Ô ÁÖ¿ö Áø±æÀ» °É¾î °¡¾ß °Ú´Ù. ¿À´Ã ¹ã¿¡µµ º°ÀÌ ¹Ù¶÷¿¡ ½ºÄ¡¿î´Ù. µ¿Çع°°ú ¹éµÎ»êÀÌ ¸¶¸£°í ´ßÅä·Ï ÇÏ´À´ÔÀÌ º¸¿ìÇÏ»ç ¿ì¸®³ª¶ó ¸¸¼¼ ¹«±ÃÈ »ïõ¸® È·Á°»ê ´ëÇÑ»ç¶÷ ´ëÇÑÀ¸·Î ±æÀÌ º¸ÀüÇϼ¼. ½Ã¸ó ³Ê´Â ¾Æ´À³Ä ±è¹ä ¿·±¸¸® ±Ü´Â ¼Ò¸®´Â ½Ã¸ó ³Ê´Â ¾Æ´À³Ä ±Ü´ø ¿·±¸¸® ÅÍÁö´Â ¼Ò¸®¸¦ ³Ê¹«³ªµµ ¾Æ¸§´Ù¿î ±×¼Ò¸®¸¦ Á¤³Í ³Ê´Â ¸ð¸£´Â °ÍÀ̳Ä\n <¹®ÆÄ¸¦ »ý¼ºÇغ¼±î?/@@buildguildnow> \n <Á¾·á/@end>",0);
m_xNPCWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
}
break;
}
return bRet;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInterface::MoveTopWindow()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : ¸ÇÀ§ÀÇ À©µµ¿ì¸¦ ¸¶¿ì½º ÁÂÇ¥·Î À̵¿½ÃŲ´Ù.
ÀÔ·Â : POINT ptMouse
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInterface::MoveTopWindow(POINT ptMouse)
{
if ( m_xWndOrderList.GetCounter() != 0 )
{
INT* pnCurrID;
m_xWndOrderList.MoveCurrentToTail();
pnCurrID = m_xWndOrderList.GetCurrentData();
if ( m_bMoveFocusedWnd )
{
switch ( *pnCurrID )
{
case _WND_ID_INVENTORY:
m_xInventoryWnd.MoveGameWnd(ptMouse);
break;
case _WND_ID_STATUS:
m_xStatusWnd.MoveGameWnd(ptMouse);
break;
case _WND_ID_STORE:
m_xStoreWnd.MoveGameWnd(ptMouse);
break;
case _WND_ID_EXCHANGE:
m_xExchangeWnd.MoveGameWnd(ptMouse);
break;
case _WND_ID_GUILDMASTER:
m_xGuildMasterWnd.MoveGameWnd(ptMouse);
break;
case _WND_ID_GUILD:
m_xGuildWnd.MoveGameWnd(ptMouse);
break;
case _WND_ID_GROUP:
m_xGroupWnd.MoveGameWnd(ptMouse);
break;
case _WND_ID_GROUPPOP:
m_xGroupPopWnd.MoveGameWnd(ptMouse);
break;
case _WND_ID_CHATPOP:
m_xChatPopWnd.MoveGameWnd(ptMouse);
ShowWindow(g_xChatEditBox.GetSafehWnd(), SW_HIDE);
break;
case _WND_ID_NPCCHAT: // ¿ë±â
m_xNPCWnd.MoveGameWnd(ptMouse);
break;
case _WND_ID_QUEST:
m_xQuestWnd.MoveGameWnd(ptMouse);
break;
case _WND_ID_OPTION:
m_xOptionWnd.MoveGameWnd(ptMouse);
break;
case _WND_ID_HORSE:
m_xHorseWnd.MoveGameWnd(ptMouse);
break;
}
}
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInterface::WindowFocusChanged()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : À©µµ¿ì ¿µ¿ªÀ¸·Î ¸¶¿ì½º Ŭ¸¯ÀÌ µÇ¸é ÇöÀç Top À©µµ¿ì¸¦ ¸¶¿ì½º Ŭ¸¯ À©µµ¿ì·Î ¹Ù²ãÁÖ°í ±×À©µµ¿ì·Î Æ÷Ä¿½º¸¦ ¸ÂÃçÁØ´Ù.
ÀÔ·Â : INT nID
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInterface::WindowFocusChangedAndSetReadyMove(INT nID, POINT ptMouse)
{
if ( m_xWndOrderList.GetCounter() != 0 )
{
AllWindowsFocusOff();
DeleteWindowToList(nID);
AddWindowToList(nID);
// ¸¶¿ì½º Ŭ¸¯ÀÌ µÈ»óÅÂÀ̸é À̵¿½Ãų Áغñ°¡ µÈ»óÅÂÀÌ´Ù.
m_bMoveFocusedWnd = TRUE;
switch ( nID )
{
case _WND_ID_INVENTORY:
m_xInventoryWnd.SetGameWndFocused(TRUE);
m_xInventoryWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_STATUS:
m_xStatusWnd.SetGameWndFocused(TRUE);
m_xStatusWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_STORE:
m_xStoreWnd.SetGameWndFocused(TRUE);
m_xStoreWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_EXCHANGE:
m_xExchangeWnd.SetGameWndFocused(TRUE);
m_xExchangeWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_GUILDMASTER:
m_xGuildMasterWnd.SetGameWndFocused(TRUE);
m_xGuildMasterWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_GUILD:
m_xGuildWnd.SetGameWndFocused(TRUE);
m_xGuildWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_GROUP:
m_xGroupWnd.SetGameWndFocused(TRUE);
m_xGroupWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_GROUPPOP:
m_xGroupPopWnd.SetGameWndFocused(TRUE);
m_xGroupPopWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_CHATPOP:
m_xChatPopWnd.SetGameWndFocused(TRUE);
m_xChatPopWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_NPCCHAT: // ¿ë±â
m_xNPCWnd.SetGameWndFocused(TRUE);
m_xNPCWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_QUEST:
m_xQuestWnd.SetGameWndFocused(TRUE);
m_xQuestWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_OPTION:
m_xOptionWnd.SetGameWndFocused(TRUE);
m_xOptionWnd.SetReadyMove(ptMouse);
break;
case _WND_ID_HORSE:
m_xHorseWnd.SetGameWndFocused(TRUE);
m_xHorseWnd.SetReadyMove(ptMouse);
break;
}
}
}
VOID CInterface::AllWindowsFocusOff()
{
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.SetGameWndFocused(FALSE);
break;
case _WND_ID_STATUS:
m_xStatusWnd.SetGameWndFocused(FALSE);
break;
case _WND_ID_STORE:
m_xStoreWnd.SetGameWndFocused(FALSE);
break;
case _WND_ID_EXCHANGE:
m_xExchangeWnd.SetGameWndFocused(FALSE);
break;
case _WND_ID_GUILDMASTER:
m_xGuildMasterWnd.SetGameWndFocused(FALSE);
break;
case _WND_ID_GUILD:
m_xGuildWnd.SetGameWndFocused(FALSE);
break;
case _WND_ID_GROUP:
m_xGroupWnd.SetGameWndFocused(FALSE);
break;
case _WND_ID_GROUPPOP:
m_xGroupPopWnd.SetGameWndFocused(FALSE);
break;
case _WND_ID_CHATPOP:
m_xChatPopWnd.SetGameWndFocused(FALSE);
break;
case _WND_ID_NPCCHAT: // ¿ë±â
m_xNPCWnd.SetGameWndFocused(FALSE);
break;
case _WND_ID_QUEST:
m_xQuestWnd.SetGameWndFocused(FALSE);
break;
case _WND_ID_OPTION:
m_xOptionWnd.SetGameWndFocused(FALSE);
break;
case _WND_ID_HORSE:
m_xHorseWnd.SetGameWndFocused(FALSE);
break;
}
m_xWndOrderList.MoveNextNode();
}
}
}
BOOL CInterface::IsTopWindow(INT nID)
{
if ( m_xWndOrderList.GetCounter() != 0 )
{
INT* pnCurrID;
m_xWndOrderList.MoveCurrentToTail();
pnCurrID = m_xWndOrderList.GetCurrentData();
if ( nID == *pnCurrID )
return TRUE;
}
return FALSE;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ¸Þ½ÃÁö ÀԷ°ü·ÃºÎºÐ/////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/******************************************************************************************************************
ÇÔ¼ö¸í : CInterface::OnLButtonDown()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : Mouse LButtonDownÀÌ ÀϾÀ»¶§ ÀÎÅÍÆäÀ̽º¿¡¼ ÇÒÀÏÀ» Á¤ÀÇÇÑ´Ù.
ÀÔ·Â : POINT ptMouse
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInterface::OnLButtonDown(POINT ptMouse)
{
if(m_xMsgBox.IsActive()) // ¿ë±â
{
m_xMsgBox.OnButtonDown(ptMouse);
return TRUE;
}
else
{
if ( m_xScrlBar.OnLButtonDown(ptMouse) )
{
FLOAT fScrlRate;
fScrlRate = m_xScrlBar.GetScrlRate();
m_nFstLine = (m_xChat.GetCounter()-1)*fScrlRate;
return TRUE;
}
for( INT nCnt = 0; nCnt < _MAX_INTER_BTN; nCnt++ )
{
if ( m_xInterBtn[nCnt].OnLButtonDown(ptMouse) )
return TRUE;
}
INT nInterfaceWndInRect;
nInterfaceWndInRect = GetWindowInMousePos(ptMouse);
if ( nInterfaceWndInRect != -1 )
{
switch ( nInterfaceWndInRect )
{
case _WND_ID_INVENTORY:
if ( !m_xInventoryWnd.OnLButtonDown(&m_stCommonItem, ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_STATUS:
if ( !m_xStatusWnd.OnLButtonDown(&m_stCommonItem, ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_STORE:
if ( !m_xStoreWnd.OnLButtonDown(ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_EXCHANGE:
if ( !m_xExchangeWnd.OnLButtonDown(ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_GUILDMASTER:
if ( !m_xGuildMasterWnd.OnLButtonDown(ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_GUILD:
if ( !m_xGuildWnd.OnLButtonDown(ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_GROUP:
if ( !m_xGroupWnd.OnLButtonDown(ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_GROUPPOP:
if ( !m_xGroupPopWnd.OnLButtonDown(ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_CHATPOP:
if ( !m_xChatPopWnd.OnLButtonDown(ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_NPCCHAT: // ¿ë±â
if ( !m_xNPCWnd.OnLButtonDown(ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_QUEST:
if ( !m_xQuestWnd.OnLButtonDown(ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_OPTION:
if ( !m_xOptionWnd.OnLButtonDown(ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
case _WND_ID_HORSE:
if ( !m_xHorseWnd.OnLButtonDown(ptMouse) )
WindowFocusChangedAndSetReadyMove(nInterfaceWndInRect, ptMouse);
break;
}
return TRUE;
}
else
AllWindowsFocusOff();
}
return FALSE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInterface::OnLButtonUp()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : Mouse LButtonUpÀÌ ÀϾÀ»¶§ ÀÎÅÍÆäÀ̽º¿¡¼ ÇÒÀÏÀ» Á¤ÀÇÇÑ´Ù.
ÀÔ·Â : POINT ptMouse
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInterface::OnLButtonUp(POINT ptMouse)
{
m_bMoveFocusedWnd = FALSE;
if ( m_xMsgBox.IsActive() ) // ¿ë±â
{
HRESULT hResult;
hResult = m_xMsgBox.OnButtonUp(ptMouse);
if ( hResult != 0 )
{
switch ( m_nIdxMsgBox )
{
case 12:
{
switch ( hResult ) // ¿¡µðÆ® ¹Ú½º°¡ ¾øÀ½.
{
case 2:
{
DWORD dwCurrTick = timeGetTime();
if ( (dwCurrTick - g_xGameProc.m_xMyHero.m_dwLastPKStruckTime> 10000) &&
(dwCurrTick - g_xGameProc.m_xMyHero.m_dwLastMagicTime > 10000) &&
(dwCurrTick - g_xGameProc.m_xMyHero.m_dwLastHitTime > 10000) ||
(g_xGameProc.m_xMyHero.m_bCurrMtn == _MT_DIE ) )
SendMessage(g_xMainWnd.GetSafehWnd(), WM_DESTROY, NULL, NULL);
else
{
DWORD dwFont, dwBack;
dwFont = GetChatColor(3);
dwBack = GetChatColor(2);
MsgAdd(dwFont, dwBack, "ÀüÅõÁß¿¡´Â Á¢¼ÓÀ» ²÷À» ¼ö ¾ø½À´Ï´Ù.");
}
}
break;
case 4:
m_xMsgBox.HideMessageBox();
break;
}
}
break;
}
}
}
else
{
if ( m_xScrlBar.OnLButtonUp(ptMouse) )
{
return TRUE;
}
for( INT nCnt = 0; nCnt < _MAX_INTER_BTN; nCnt++ )
{
if ( m_xInterBtn[nCnt].OnLButtonUp(ptMouse) )
{
switch ( nCnt )
{
case _BTN_ID_QUEST: WindowActivate(_WND_ID_QUEST); break;
case _BTN_ID_OPTION: WindowActivate(_WND_ID_OPTION); break;
case _BTN_ID_HORSE: WindowActivate(_WND_ID_HORSE); break;
case _BTN_ID_CHANGE: WindowActivate(_WND_ID_EXCHANGE); break;
case _BTN_ID_GUILD:
g_xClientSocket.SendGuildHome();
break;
case _BTN_ID_GROUP: WindowActivate(_WND_ID_GROUP); break;
case _BTN_ID_POPUP: WindowActivate(_WND_ID_CHATPOP); break;
case _BTN_ID_BAG: WindowActivate(_WND_ID_INVENTORY); break;
case _BTN_ID_MUGONG: m_bShowKey = !m_bShowKey; break;
case _BTN_ID_BELT:
{
if ( m_shBeltHeight >= 46 )
{
m_shBeltHeight = 46;
}
else if ( m_shBeltHeight <= 0 )
{
m_shBeltHeight = 0;
}
if ( m_shBeltHeight == 46 )
{
m_bBeltState = _BELT_STATE_DOWN;
}
else if ( m_shBeltHeight == 0 )
{
m_bBeltState = _BELT_STATE_UP;
}
}
break;
case _BTN_ID_EXIT:
{
CHAR szMsg[MAX_PATH];
HINSTANCE hLib;
m_nIdxMsgBox = 12;
hLib = LoadLibrary("Ats.dll"); // Load Dll
LoadString(hLib,m_nIdxMsgBox,szMsg, MAX_PATH);
FreeLibrary(hLib);
m_xMsgBox.ShowMessageBox(szMsg, 2); // YES/No ?
}
break;
case _BTN_ID_MAGIC:
if ( m_xStatusWnd.GetStatusWndType() != _TYPE_SETMAGIC )
{
if ( !WindowActivate(_WND_ID_STATUS) ) WindowActivate(_WND_ID_STATUS);
}
else
WindowActivate(_WND_ID_STATUS);
m_xStatusWnd.SetStatusWndType(_TYPE_SETMAGIC);
break;
case _BTN_ID_CHAR:
if ( m_xStatusWnd.GetStatusWndType() != _TYPE_EQUIP )
{
if ( !WindowActivate(_WND_ID_STATUS) ) WindowActivate(_WND_ID_STATUS);
}
else
WindowActivate(_WND_ID_STATUS);
m_xStatusWnd.SetStatusWndType(_TYPE_EQUIP);
break;
}
}
}
INT nInterfaceWndInRect;
nInterfaceWndInRect = GetWindowInMousePos(ptMouse);
// °¢ À©µµ¿ìÀÇ OnLButtonUpÀÇ ¸®ÅϰªÀÌ TRUEÀ̸é À©µµ¿ìÁî´Â CloseµÈ´Ù.
if ( nInterfaceWndInRect != -1 )
{
switch ( nInterfaceWndInRect )
{
case _WND_ID_INVENTORY: if ( m_xInventoryWnd.OnLButtonUp(&m_stCommonItem, ptMouse) ) WindowActivate(_WND_ID_INVENTORY); break;
case _WND_ID_STATUS: if ( m_xStatusWnd.OnLButtonUp(&m_stCommonItem, ptMouse) ) WindowActivate(_WND_ID_STATUS); break;
case _WND_ID_STORE: if ( m_xStoreWnd.OnLButtonUp(ptMouse) ) WindowActivate(_WND_ID_STORE); break;
case _WND_ID_EXCHANGE: if ( m_xExchangeWnd.OnLButtonUp(ptMouse) ) WindowActivate(_WND_ID_EXCHANGE); break;
case _WND_ID_GUILDMASTER:
{
if ( m_xGuildMasterWnd.OnLButtonUp(ptMouse) )
WindowActivate(_WND_ID_EXCHANGE);
break;
}
case _WND_ID_GUILD: if ( m_xGuildWnd.OnLButtonUp(ptMouse) ) WindowActivate(_WND_ID_GUILD); break;
case _WND_ID_GROUP: if ( m_xGroupWnd.OnLButtonUp(ptMouse) ) WindowActivate(_WND_ID_GROUP); break;
case _WND_ID_GROUPPOP: if ( m_xGroupPopWnd.OnLButtonUp(ptMouse) ) WindowActivate(_WND_ID_GROUPPOP); break;
case _WND_ID_CHATPOP: if ( m_xChatPopWnd.OnLButtonUp(ptMouse) ) WindowActivate(_WND_ID_CHATPOP); break;
case _WND_ID_QUEST: if ( m_xQuestWnd.OnLButtonUp(ptMouse) ) WindowActivate(_WND_ID_QUEST); break;
case _WND_ID_OPTION: if ( m_xOptionWnd.OnLButtonUp(ptMouse) ) WindowActivate(_WND_ID_OPTION); break;
case _WND_ID_HORSE: if ( m_xHorseWnd.OnLButtonUp(ptMouse) ) WindowActivate(_WND_ID_HORSE); break;
case _WND_ID_NPCCHAT: if ( m_xNPCWnd.OnLButtonUp(ptMouse) ) WindowActivate(_WND_ID_NPCCHAT); break; // ¿ë±â
}
return TRUE;
}
}
return FALSE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInterface::OnMouseMove()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : Mouse Move°¡ ÀϾÀ»¶§ ÀÎÅÍÆäÀ̽º¿¡¼ ÇÒÀÏÀ» Á¤ÀÇÇÑ´Ù.
ÀÔ·Â : POINT ptMouse
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInterface::OnMouseMove(POINT ptMouse)
{
MoveTopWindow(ptMouse);
if ( m_xScrlBar.OnMouseMove(ptMouse) )
{
FLOAT fScrlRate;
fScrlRate = m_xScrlBar.GetScrlRate();
m_nFstLine = (m_xChat.GetCounter()-1)*fScrlRate;
return TRUE;
}
for( INT nCnt = 0; nCnt < _MAX_INTER_BTN; nCnt++ )
m_xInterBtn[nCnt].OnMouseMove(ptMouse);
INT nInterfaceWndInRect;
nInterfaceWndInRect = GetWindowInMousePos(ptMouse);
if ( nInterfaceWndInRect != -1 )
{
switch ( nInterfaceWndInRect )
{
case _WND_ID_INVENTORY:
m_xInventoryWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_STATUS:
m_xStatusWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_STORE:
m_xStoreWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_EXCHANGE:
m_xExchangeWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_GUILDMASTER:
m_xGuildMasterWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_GUILD:
m_xGuildWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_GROUP:
m_xGroupWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_GROUPPOP:
m_xGroupPopWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_CHATPOP:
m_xChatPopWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_QUEST:
m_xQuestWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_OPTION:
m_xOptionWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_HORSE:
m_xHorseWnd.OnMouseMove(ptMouse);
break;
case _WND_ID_NPCCHAT: // ¿ë±â
m_xNPCWnd.OnMouseMove(ptMouse);
break;
}
return TRUE;
}
else
{
m_xStatusWnd.SetStatusBtnInit();
m_xInventoryWnd.SetInvenBtnInit();
m_xChatPopWnd.SetStatusBtnInit();
m_xGuildMasterWnd.SetStatusBtnInit();
m_xOptionWnd.SetStatusBtnInit();
m_xQuestWnd.SetStatusBtnInit();
m_xHorseWnd.SetStatusBtnInit();
m_xExchangeWnd.SetStatusBtnInit();
}
return FALSE;
}
BOOL CInterface::OnScrollDown()
{
if ( IsTopWindow(m_xInventoryWnd.m_nID) )
{
m_xInventoryWnd.OnScrollDown();
}
else if ( IsTopWindow(m_xStatusWnd.m_nID) )
{
m_xStatusWnd.OnScrollDown();
}
else if (IsTopWindow(m_xNPCWnd.m_nID)) // ¿ë±â
{
m_xNPCWnd.OnScrollDown();
}
else
{
if ( !m_xChatPopWnd.m_bActive )
{
if ( m_nFstLine > 0 )
{
m_nFstLine--;
}
}
else
{
m_xChatPopWnd.OnScrollDown();
}
}
return TRUE;
}
BOOL CInterface::OnScrollUp()
{
if ( IsTopWindow(m_xInventoryWnd.m_nID) )
{
m_xInventoryWnd.OnScrollUp();
}
else if ( IsTopWindow(m_xStatusWnd.m_nID) )
{
m_xStatusWnd.OnScrollUp();
}
else if (IsTopWindow(m_xNPCWnd.m_nID)) // ¿ë±â
{
m_xNPCWnd.OnScrollUp();
}
else
{
if ( !m_xChatPopWnd.m_bActive )
{
if ( m_nFstLine < (m_xChat.GetCounter()-1) )
{
m_nFstLine++;
}
}
else
{
m_xChatPopWnd.OnScrollUp();
}
}
return TRUE;
}
BOOL CInterface::OnLButtonDoubleClick(POINT ptMouse)
{
if ( IsTopWindow(m_xInventoryWnd.m_nID) )
m_xInventoryWnd.OnLButtonDoubleClick(&m_stCommonItem, ptMouse);
return TRUE;
}
BOOL CInterface::OnKeyUp(WPARAM wParam, LPARAM lParam)
{
if ( m_xInventoryWnd.OnKeyUp(&m_stCommonItem, wParam, lParam) )
{
return TRUE;
}
return FALSE;
}
BOOL CInterface::OnKeyDown(WPARAM wParam, LPARAM lParam)
{
switch ( wParam )
{
case VK_RETURN:
break;
case VK_F9:
WindowActivate(_WND_ID_INVENTORY);
break;
case VK_F11:
if ( m_xStatusWnd.GetStatusWndType() != _TYPE_SETMAGIC )
{
if ( !WindowActivate(_WND_ID_STATUS) )
WindowActivate(_WND_ID_STATUS);
}
else
WindowActivate(_WND_ID_STATUS);
m_xStatusWnd.SetStatusWndType(_TYPE_SETMAGIC);
break;
}
INT nInterfaceWndInRect;
nInterfaceWndInRect = GetWindowInMousePos(g_xGameProc.m_ptMousePos);
if ( nInterfaceWndInRect != -1 )
{
if ( nInterfaceWndInRect == _WND_ID_STATUS )
{
if ( m_xStatusWnd.OnKeyDown(wParam, lParam, g_xGameProc.m_ptMousePos) )
return TRUE;
}
}
return FALSE;
}
VOID CInterface::OnSysKeyDown()
{
// F10 Key ´·ÈÀ»¶§.
if ( m_xStatusWnd.GetStatusWndType() != _TYPE_EQUIP )
{
if ( !WindowActivate(_WND_ID_STATUS) )
WindowActivate(_WND_ID_STATUS);
}
else
WindowActivate(_WND_ID_STATUS);
m_xStatusWnd.SetStatusWndType(_TYPE_EQUIP);
}
LRESULT CInterface::OnMsgInputted(WPARAM wParam, LPARAM lParam)
{
if ( m_xNPCWnd.OnMsgInputted() )
return TRUE;
return 0L;
}