www.pudn.com > Mir2Game.rar > InventoryWnd.cpp
/******************************************************************************************************************
¸ðµâ¸í:
ÀÛ¼ºÀÚ:
ÀÛ¼ºÀÏ:
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤ ³»¿ë
*******************************************************************************************************************/
#include "StdAfx.h"
/******************************************************************************************************************
CInventoryWnd Class
*******************************************************************************************************************/
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::CInventoryWnd()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
Ãâ·Â :
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
CInventoryWnd::CInventoryWnd()
{
Init();
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::~CInventoryWnd()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
Ãâ·Â :
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
CInventoryWnd::~CInventoryWnd()
{
Destroy();
}
VOID CInventoryWnd::Init()
{
INT nCnt;
CGameWnd::Init();
m_nStartLineNum = 0;
ZeroMemory(m_rcInvenCell, sizeof(RECT) *_INVEN_MAX_CELL);
ZeroMemory(m_rcBeltCell, sizeof(RECT) *_BELT_MAX_CELL );
ZeroMemory(m_stInventoryItem, sizeof(ITEMSET)*_MAX_INVEN_ITEM);
ZeroMemory(m_stBeltItem, sizeof(ITEMSET)*_MAX_BELT_ITEM );
m_xInvenScrlBar.Init();
for ( nCnt = 0; nCnt < _MAX_INVEN_BTN; nCnt++ )
{
m_xInventoryBtn[nCnt].Init();
}
}
VOID CInventoryWnd::Destroy()
{
INT nCnt;
CGameWnd::Destroy();
for ( nCnt = 0; nCnt < _MAX_INVEN_BTN; nCnt++ )
{
m_xInventoryBtn[nCnt].Destroy();
}
Init();
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::CreateInventoryWnd()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
ÀÔ·Â : INT nID
CWHWilImageData* pxWndImage
INT nFrameImgIdx
INT nStartX
INT nStartY
INT nWidth
INT nHeight
BOOL bCanMove
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::CreateInventoryWnd(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_xInventoryBtn[_BTN_ID_INVENCLOSE ].CreateGameBtn(pxWndImage, 280, 281, nStartX+255, nStartY+291);
// m_xInventoryBtn[_BTN_ID_INVENSCRLUP ].CreateGameBtn(pxWndImage, 74, 75, nStartX+247, nStartY+ 20);
// m_xInventoryBtn[_BTN_ID_INVENSCRLDOWN].CreateGameBtn(pxWndImage, 74, 75, nStartX+247, nStartY+167);
m_xInvenScrlBar.CreateScrlBar(pxWndImage, 270, _INVEN_MAX_CELL_YCNT, 10, 218, 10);
// Àκ¥Å丮 ¼¿¿µ¿ªÀÇ Set.
for ( INT nYCnt = 0; nYCnt < _INVEN_CELL_YCNT; nYCnt++ )
{
for ( INT nXCnt = 0; nXCnt < _INVEN_CELL_XCNT; nXCnt++ )
{
SetRect(&m_rcInvenCell[nXCnt+nYCnt*_INVEN_CELL_XCNT],
_INVEN_CELL_XSTART+(nXCnt*_INVENTORY_CELL_WIDTH),
_INVEN_CELL_YSTART+(nYCnt*_INVENTORY_CELL_HEIGHT),
_INVEN_CELL_XSTART+(nXCnt*_INVENTORY_CELL_WIDTH) +_INVENTORY_CELL_WIDTH,
_INVEN_CELL_YSTART+(nYCnt*_INVENTORY_CELL_HEIGHT)+_INVENTORY_CELL_HEIGHT);
}
}
// º§Æ® ¼¿¿µ¿ªÀÇ Set.
for ( INT nCnt = 0; nCnt < _MAX_BELT_ITEM; nCnt++ )
{
SetRect(&m_rcBeltCell[nCnt],
_BELT_CELL_XSTART+(nCnt*_BELT_CELL_XGAP),
_BELT_CELL_YSTART,
_BELT_CELL_XSTART+(nCnt*_BELT_CELL_XGAP)+_INVENTORY_CELL_WIDTH,
_BELT_CELL_YSTART+_INVENTORY_CELL_HEIGHT);
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::SetInvenBtnInit()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::SetInvenBtnInit()
{
for( INT nCnt = 0; nCnt < _MAX_INVEN_BTN; nCnt++ )
{
m_xInventoryBtn[nCnt].SetBtnState(_BTN_STATE_NORMAL);
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::ShowInventoryWnd()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::ShowInventoryWnd()
{
INT nCnt;
// À©µµ¿ì ¹ÙÅÁ±×¸®±â.
ShowGameWnd();
RECT rcTitle = {m_rcWnd.left+31, m_rcWnd.top+27, m_rcWnd.left+133, m_rcWnd.top+43};
g_xMainWnd.PutsHan(NULL, rcTitle, RGB(200, 200, 255), RGB(0, 0, 0), "[°¡¹æÃ¢]", g_xMainWnd.CreateGameFont("±Ã¼Ã¼", 10, 0, FW_BOLD));
// ½ºÅ©·Ñ¹Ù.
m_xInvenScrlBar.ShowScrlBar(m_rcWnd.left+254, m_rcWnd.top-165, m_nStartLineNum, 12);
// Àκ¥Å丮 ¾ÆÀÌÅÛ ±×¸®±â.
for ( nCnt = 0; nCnt < _MAX_INVEN_ITEM; nCnt++ )
{
if ( m_stInventoryItem[nCnt].bSetted )
{
INT nStartX, nStartY;
if ( nCnt >= m_nStartLineNum*_INVEN_CELL_XCNT && nCnt < (m_nStartLineNum+_INVEN_CELL_YCNT)*_INVEN_CELL_XCNT )
{
nStartX = m_rcWnd.left+m_rcInvenCell[nCnt-(m_nStartLineNum*_INVEN_CELL_XCNT)].left;
nStartY = m_rcWnd.top +m_rcInvenCell[nCnt-(m_nStartLineNum*_INVEN_CELL_XCNT)].top;
// m_stInventoryItem[nCnt].xItem.m_stItemInfo.stStdItem.wLooks = 4;
m_stInventoryItem[nCnt].xItem.DrawItem(nStartX, nStartY);
// RECT rc = {nStartX, nStartY, nStartX+_INVENTORY_CELL_WIDTH, nStartY+_INVENTORY_CELL_HEIGHT};
// g_xMainWnd.DrawWithGDI(rc, NULL, RGB(255, 0, 255), 1);
}
}
}
// º§Æ® ¾ÆÀÌÅÛ ±×¸®±â.
for ( nCnt = 0; nCnt < _MAX_BELT_ITEM; nCnt++ )
{
if ( m_stBeltItem[nCnt].bSetted )
{
INT nStartX, nStartY;
nStartX = m_rcWnd.left+m_rcBeltCell[nCnt].left;
nStartY = m_rcWnd.top+m_rcBeltCell[nCnt].top;
m_stBeltItem[nCnt].xItem.DrawItem(nStartX, nStartY);
}
}
// Àκ¥Å丮 À©µµ¿ì ¹öư ±×¸®±â.
for ( nCnt = 0; nCnt < _MAX_INVEN_BTN; nCnt++ )
{
m_xInventoryBtn[nCnt].ShowGameBtn();
}
// ¾ÆÀÌÅÛÀÇ »óÅÂÄ¡ º¸¿©ÁÖ±â.
ShowInvenItemState();
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::ShowInvenItemState()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::ShowInvenItemState()
{
/* INT nInventoryNum = GetInvenNum(g_xGameProc.m_ptMousePos);
if ( nInventoryNum != -1 )
{
if ( m_stInventoryItem[nInventoryNum].bSetted )
{
m_stInventoryItem[nInventoryNum].xItem.ShowItemStatus(m_rcWnd.left+95, m_rcWnd.top+250);
}
}
*/
INT nInventoryNum = GetInvenNum(g_xGameProc.m_ptMousePos);
if ( nInventoryNum != -1 )
{
if ( m_stInventoryItem[nInventoryNum].bSetted )
{
INT nStartX, nStartY;
if ( nInventoryNum >= m_nStartLineNum*_INVEN_CELL_XCNT && nInventoryNum < (m_nStartLineNum+_INVEN_CELL_YCNT)*_INVEN_CELL_XCNT )
{
nStartX = m_rcWnd.left+m_rcInvenCell[nInventoryNum-(m_nStartLineNum*_INVEN_CELL_XCNT)].left;
nStartY = m_rcWnd.top +m_rcInvenCell[nInventoryNum-(m_nStartLineNum*_INVEN_CELL_XCNT)].top;
m_stInventoryItem[nInventoryNum].xItem.ShowItemStatus(nStartX+15, nStartY+15);
}
}
}
INT nBeltInventoryNum = GetBeltNum(g_xGameProc.m_ptMousePos);
if ( nBeltInventoryNum != -1 )
{
if ( m_stBeltItem[nBeltInventoryNum].bSetted )
{
m_stBeltItem[nBeltInventoryNum].xItem.ShowItemStatus(m_rcWnd.left+95, m_rcWnd.top+250);
}
}
}
/******************************************************************************************************************
¾ÆÀÌÅÛ ³Ö°í»©±â °ü·Ã, Àκ¥Å丮À§Ä¡ ÀúÀåÆÄÀÏ ¼¼À̺ê¹× ·Îµå.(Àκ¥Å丮 ¹× º§Æ®)
*******************************************************************************************************************/
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::CheckItemPos()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
ÀÔ·Â : CHAR* szName
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInventoryWnd::CheckItemPos(CHAR* szName)
{
HANDLE hFile;
CHAR szItemFile[MAX_PATH];
INT nCnt1, nCnt2;
ITEMSET stInvenItem[_MAX_INVEN_ITEM]; // Àӽõ¥ÀÌŸ ·Îµå¿ëº¯¼ö.
ITEMSET stBeltItem[_MAX_BELT_ITEM];
ITEMSET stCheckedInvenItem[_MAX_INVEN_ITEM]; // °Ë»çµÈ µ¥ÀÌŸ º¸°ü¿ëº¯¼ö.
ITEMSET stCehckedBeltItem[_MAX_BELT_ITEM];
ZeroMemory(szItemFile, MAX_PATH);
g_xMainWnd.StringPlus(szItemFile, ".\\Data\\", szName, ".itm", "");
hFile = CreateFile(szItemFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
ZeroMemory(stInvenItem, sizeof(ITEMSET)*_MAX_INVEN_ITEM);
ZeroMemory(stCheckedInvenItem, sizeof(ITEMSET)*_MAX_INVEN_ITEM);
ZeroMemory(stBeltItem , sizeof(ITEMSET)*_MAX_BELT_ITEM );
ZeroMemory(stCehckedBeltItem, sizeof(ITEMSET)*_MAX_BELT_ITEM);
if ( hFile != INVALID_HANDLE_VALUE )
{
DWORD dwReadLen;
ReadFile(hFile, &stInvenItem, sizeof(ITEMSET)*_MAX_INVEN_ITEM, &dwReadLen, NULL);
ReadFile(hFile, &stBeltItem , sizeof(ITEMSET)*_MAX_BELT_ITEM , &dwReadLen, NULL);
// ¼¹ö¿¡¼ ¹ÞÀº Àκ¥Å丮µ¥ÀÌŸ¿Í Ŭ¶óÀÌ¾ðÆ®¿¡¼ ¸¶Áö¸·¿¡ ÀúÀå½ÃŲ º§Æ®Ã¢µ¥ÀÌŸ¸¦ ºñ±³ÇÏ¸é¼ ¸Â´Â À§Ä¡¿¡ ¹èÁ¤½ÃŲ´Ù.
for ( nCnt1 = 0; nCnt1 < _MAX_BELT_ITEM; nCnt1++ )
{
if ( stBeltItem[nCnt1].bSetted )
{
for ( nCnt2 = 0; nCnt2 < _MAX_INVEN_ITEM; nCnt2++ )
{
if ( m_stInventoryItem[nCnt2].bSetted )
{
// °°Àº¾ÆÀÌÅÛÀÎÁö¸¦ »Ì¾Æ³½´Ù.
if ( stBeltItem[nCnt1].xItem.m_stItemInfo.nMakeIndex != m_stInventoryItem[nCnt2].xItem.m_stItemInfo.nMakeIndex &&
!strcmp(stBeltItem[nCnt1].xItem.m_stItemInfo.stStdItem.szName, m_stInventoryItem[nCnt2].xItem.m_stItemInfo.stStdItem.szName) &&
(stBeltItem[nCnt1].xItem.m_stItemInfo.nDura == m_stInventoryItem[nCnt2].xItem.m_stItemInfo.nDura ) &&
(stBeltItem[nCnt1].xItem.m_stItemInfo.nDuraMax == m_stInventoryItem[nCnt2].xItem.m_stItemInfo.nDuraMax) )
{
stCehckedBeltItem[nCnt1] = m_stInventoryItem[nCnt2];
ZeroMemory(&stBeltItem[nCnt1], sizeof(ITEMSET));
DeleteInvenItem(nCnt2);
break;
}
}
}
}
}
memcpy(m_stBeltItem, stCehckedBeltItem, sizeof(ITEMSET)*_MAX_BELT_ITEM);
// Àκ¥Å丮.
for ( nCnt1 = 0; nCnt1 < _MAX_INVEN_ITEM; nCnt1++ )
{
if ( stInvenItem[nCnt1].bSetted )
{
for ( nCnt2 = 0; nCnt2 < _MAX_INVEN_ITEM; nCnt2++ )
{
if ( m_stInventoryItem[nCnt2].bSetted )
{
// °°Àº¾ÆÀÌÅÛÀÎÁö¸¦ »Ì¾Æ³½´Ù.
if ( stInvenItem[nCnt1].xItem.m_stItemInfo.nMakeIndex != m_stInventoryItem[nCnt2].xItem.m_stItemInfo.nMakeIndex &&
!strcmp(stInvenItem[nCnt1].xItem.m_stItemInfo.stStdItem.szName, m_stInventoryItem[nCnt2].xItem.m_stItemInfo.stStdItem.szName) &&
(stInvenItem[nCnt1].xItem.m_stItemInfo.nDura == m_stInventoryItem[nCnt2].xItem.m_stItemInfo.nDura ) &&
(stInvenItem[nCnt1].xItem.m_stItemInfo.nDuraMax == m_stInventoryItem[nCnt2].xItem.m_stItemInfo.nDuraMax ) )
{
stCheckedInvenItem[nCnt1] = m_stInventoryItem[nCnt2];
ZeroMemory(&stInvenItem[nCnt1], sizeof(ITEMSET));
DeleteInvenItem(nCnt2);
break;
}
}
}
}
}
for ( nCnt1 = 0; nCnt1 < _MAX_INVEN_ITEM; nCnt1++ )
{
if ( m_stInventoryItem[nCnt1].bSetted )
{
for ( nCnt2 = 0; nCnt2 < _MAX_INVEN_ITEM; nCnt2++ )
{
if ( !stCheckedInvenItem[nCnt2].bSetted )
{
stCheckedInvenItem[nCnt2] = m_stInventoryItem[nCnt1];
break;
}
}
}
}
memcpy(m_stInventoryItem, stCheckedInvenItem, sizeof(ITEMSET)*_MAX_INVEN_ITEM);
CloseHandle(hFile);
return TRUE;
}
return FALSE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::SaveItemPos()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
ÀÔ·Â : CHAR* szName
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInventoryWnd::SaveItemPos(CHAR* szName)
{
HANDLE hFile;
CHAR szItemFile[MAX_PATH];
ZeroMemory(szItemFile, MAX_PATH);
g_xMainWnd.StringPlus(szItemFile, ".\\Data\\", szName, ".itm", "");
hFile = CreateFile(szItemFile, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if ( hFile != INVALID_HANDLE_VALUE )
{
DWORD dwWriteLen;
WriteFile(hFile, m_stInventoryItem, sizeof(ITEMSET)*_MAX_INVEN_ITEM, &dwWriteLen, NULL);
WriteFile(hFile, m_stBeltItem, sizeof(ITEMSET)*_MAX_BELT_ITEM , &dwWriteLen, NULL);
CloseHandle(hFile);
return TRUE;
}
return FALSE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::GetInvenNum()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : ¸¶¿ì½º À§Ä¡¿¡¼ ÇöÀç Àκ¥Å丮ÀÇ ¼¿¹øÈ£¸¦ ¾ò¾î¿Â´Ù.
ÀÔ·Â : POINT ptMouse
Ãâ·Â : INT
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
INT CInventoryWnd::GetInvenNum(POINT ptMouse)
{
RECT rc;
for ( INT nCnt = 0; nCnt < _INVEN_MAX_CELL; nCnt++ )
{
SetRect(&rc, m_rcWnd.left+m_rcInvenCell[nCnt].left, m_rcWnd.top+m_rcInvenCell[nCnt].top,
m_rcWnd.left+m_rcInvenCell[nCnt].left+_INVENTORY_CELL_WIDTH, m_rcWnd.top+m_rcInvenCell[nCnt].top+_INVENTORY_CELL_HEIGHT);
if ( PtInRect(&rc, ptMouse) )
{
return (nCnt+m_nStartLineNum*_INVEN_CELL_XCNT);
}
}
return -1;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::GetBeltNum()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : ¸¶¿ì½º À§Ä¡¿¡¼ ÇöÀç º§Æ®ÀÇ ¼¿¹øÈ£¸¦ ¾ò¾î¿Â´Ù.
ÀÔ·Â : POINT ptMouse
Ãâ·Â : INT
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
INT CInventoryWnd::GetBeltNum(POINT ptMouse)
{
RECT rc;
for ( INT nCnt = 0; nCnt < _MAX_BELT_ITEM; nCnt++ )
{
SetRect(&rc, m_rcWnd.left+m_rcBeltCell[nCnt].left, m_rcWnd.top+m_rcBeltCell[nCnt].top,
m_rcWnd.left+m_rcBeltCell[nCnt].left+_INVENTORY_CELL_WIDTH, m_rcWnd.top+m_rcBeltCell[nCnt].top+_INVENTORY_CELL_HEIGHT);
if ( PtInRect(&rc, ptMouse) )
{
return (nCnt);
}
}
return -1;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::DeleteInventoryCurrItem()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : Àκ¥Å丮ÀÇ ÇØ´ç¼¿ ¾ÆÀÌÅÛÀ» Áö¿î´Ù.
ÀÔ·Â : INT nInventoryNum
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::DeleteInvenItem(INT nInventoryNum)
{
ZeroMemory(&m_stInventoryItem[nInventoryNum], sizeof(ITEMSET));
}
VOID CInventoryWnd::DeleteInvenItem(INT nMakeIndex, CHAR* szName)
{
for ( INT nCnt = 0; nCnt < _MAX_INVEN_ITEM; nCnt++ )
{
if ( m_stInventoryItem[nCnt].bSetted )
{
if ( m_stInventoryItem[nCnt].xItem.m_stItemInfo.nMakeIndex == nMakeIndex )
{
if ( !strcmp(m_stInventoryItem[nCnt].xItem.m_stItemInfo.stStdItem.szName, szName) )
{
DeleteInvenItem(nCnt);
break;
}
}
}
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::DeleteInventoryAllItem()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : Àκ¥Å丮ÀÇ ¸ðµç ¾ÆÀÌÅÛÀ» Áö¿î´Ù.
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::DeleteAllInvenItem()
{
for ( INT nCnt = 0; nCnt < _MAX_INVEN_ITEM; nCnt++ )
{
ZeroMemory(&m_stInventoryItem[nCnt], sizeof(ITEMSET));
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::DeleteCurrBeltItemList()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : º§Æ®ÀÇ ÇØ´ç¼¿ ¾ÆÀÌÅÛÀ» Áö¿î´Ù.
ÀÔ·Â : INT nBeltInventoryNum
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::DeleteBeltItem(INT nBeltInventoryNum)
{
ZeroMemory(&m_stBeltItem[nBeltInventoryNum], sizeof(ITEMSET));
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::DeleteAllBeltItemList()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : º§Æ®ÀÇ ¸ðµç ¾ÆÀÌÅÛÀ» Áö¿î´Ù.
ÀÔ·Â : INT nBeltInventoryNum
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::DeleteAllBeltItem()
{
for ( INT nCnt = 0; nCnt < _MAX_BELT_ITEM; nCnt++ )
{
ZeroMemory(&m_stBeltItem[nCnt], sizeof(ITEMSET));
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::AddInvenItem()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : Àκ¥Å丮¿¡ ¾ÆÀÌÅÛÀ» ³Ö´Â´Ù.
ÀÔ·Â : CItem xItem
INT nInvenNum
BOOL bUseInvenNum
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInventoryWnd::AddInvenItem(CItem xItem, INT nInvenNum, BOOL bUseInvenNum)
{
if ( bUseInvenNum )
{
if ( !m_stInventoryItem[nInvenNum].bSetted )
{
m_stInventoryItem[nInvenNum].bSetted = TRUE;
m_stInventoryItem[nInvenNum].xItem = xItem;
return TRUE;
}
}
for ( INT nCnt = 0; nCnt < _MAX_INVEN_ITEM; nCnt++ )
{
if ( !m_stInventoryItem[nCnt].bSetted )
{
m_stInventoryItem[nCnt].bSetted = TRUE;
m_stInventoryItem[nCnt].xItem = xItem;
return TRUE;
}
}
return FALSE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::AddBeltItem()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : º§Æ®¿¡ ¾ÆÀÌÅÛÀ» ³Ö´Â´Ù.
ÀÔ·Â : CItem xItem
INT nBeltNum
BOOL bUseBeltNum
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInventoryWnd::AddBeltItem(CItem xItem, INT nBeltNum, BOOL bUseBeltNum)
{
if ( bUseBeltNum )
{
if ( !m_stBeltItem[nBeltNum].bSetted )
{
m_stBeltItem[nBeltNum].bSetted = TRUE;
m_stBeltItem[nBeltNum].xItem = xItem;
return TRUE;
}
}
for ( INT nCnt = 0; nCnt < _MAX_BELT_ITEM; nCnt++ )
{
if ( !m_stBeltItem[nCnt].bSetted )
{
m_stBeltItem[nCnt].bSetted = TRUE;
m_stBeltItem[nCnt].xItem = xItem;
return TRUE;
}
}
return FALSE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::ExtractInvenItem()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : Àκ¥Å丮¿¡¼ ÇöÀç ¹øÈ£ÀÇ ¾ÆÀÌÅÛÀ» »Ì¾Æ¿Â´Ù.
ÀÔ·Â : CItem* pxItem
INT nInventoryNum
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInventoryWnd::ExtractInvenItem(CItem* pxItem, INT nInventoryNum)
{
if ( m_stInventoryItem[nInventoryNum].bSetted )
{
memcpy(pxItem, &m_stInventoryItem[nInventoryNum].xItem, sizeof(CItem));
DeleteInvenItem(nInventoryNum);
return TRUE;
}
return FALSE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::ExtractBeltItem()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : °¡¹æÃ¢¿¡¼ ÇöÀç ¹øÈ£ÀÇ ¾ÆÀÌÅÛÀ» »Ì¾Æ¿Â´Ù.
ÀÔ·Â : CItem* pxItem
INT nBeltInventoryNum
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInventoryWnd::ExtractBeltItem(CItem* pxItem, INT nBeltInventoryNum)
{
if ( m_stBeltItem[nBeltInventoryNum].bSetted )
{
memcpy(pxItem, &m_stBeltItem[nBeltInventoryNum].xItem, sizeof(CItem));
DeleteBeltItem(nBeltInventoryNum);
return TRUE;
}
return FALSE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::ChangeInvenWithCommon()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : Àκ¥Å丮ÀÇ ¾ÆÀÌÅÛ°ú °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛÀ» ¹Ù²Û´Ù.
ÀÔ·Â : INT nInventoryNum
LPCOMMONITEMSET pstCommonItemSet
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::ChangeInvenWithCommon(INT nInventoryNum, LPCOMMONITEMSET pstCommonItemSet)
{
if ( pstCommonItemSet->bSetted )
{
CItem xInvenItem;
if ( ExtractInvenItem(&xInvenItem, nInventoryNum) )
{
AddInvenItem(pstCommonItemSet->xItem, nInventoryNum, TRUE);
pstCommonItemSet->bSetted = TRUE;
pstCommonItemSet->xItem = xInvenItem;
pstCommonItemSet->bWaitResponse = FALSE;
pstCommonItemSet->bIsEquipItem = FALSE;
pstCommonItemSet->bIsHideItem = FALSE;
pstCommonItemSet->bIsBeltItem = FALSE;
pstCommonItemSet->xItem.m_shCellNum = nInventoryNum;
}
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::ChangeBeltWithCommon()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : º§Æ®ÀÇ ¾ÆÀÌÅÛ°ú °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛÀ» ¹Ù²Û´Ù.
ÀÔ·Â : INT nBeltInventoryNum
LPCOMMONITEMSET pstCommonItemSet
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::ChangeBeltWithCommon(INT nBeltInventoryNum, LPCOMMONITEMSET pstCommonItemSet)
{
if ( pstCommonItemSet->bSetted )
{
CItem xBeltItem;
if ( ExtractBeltItem(&xBeltItem, nBeltInventoryNum) )
{
AddBeltItem(pstCommonItemSet->xItem, nBeltInventoryNum, TRUE);
pstCommonItemSet->bSetted = TRUE;
pstCommonItemSet->xItem = xBeltItem;
pstCommonItemSet->bWaitResponse = FALSE;
pstCommonItemSet->bIsEquipItem = FALSE;
pstCommonItemSet->bIsHideItem = FALSE;
pstCommonItemSet->bIsBeltItem = TRUE;
pstCommonItemSet->xItem.m_shCellNum = nBeltInventoryNum;
}
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::SetCommonFromInven()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : Àκ¥Å丮ÀÇ ÇØ´ç¹øÈ£ ¾ÆÀÌÅÛÀ» °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛÀ¸·Î ¼¼ÆÃÇÑ´Ù.
ÀÔ·Â : INT nInventoryNum
LPCOMMONITEMSET pstCommonItemSet
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::SetCommonFromInven(INT nInventoryNum, LPCOMMONITEMSET pstCommonItemSet)
{
CItem xInvenItem;
if ( ExtractInvenItem(&xInvenItem, nInventoryNum) )
{
pstCommonItemSet->bSetted = TRUE;
pstCommonItemSet->xItem = xInvenItem;
pstCommonItemSet->bWaitResponse = FALSE;
pstCommonItemSet->bIsEquipItem = FALSE;
pstCommonItemSet->bIsHideItem = FALSE;
pstCommonItemSet->bIsBeltItem = FALSE;
pstCommonItemSet->xItem.m_shCellNum = nInventoryNum;
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::SetCommonFromBelt()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : º§Æ®Ã¢ÀÇ ÇØ´ç¹øÈ£ ¾ÆÀÌÅÛÀ» °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛÀ¸·Î ¼¼ÆÃÇÑ´Ù.
ÀÔ·Â : INT nBeltInventoryNum
LPCOMMONITEMSET pstCommonItemSet
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::SetCommonFromBelt(INT nBeltInventoryNum, LPCOMMONITEMSET pstCommonItemSet)
{
CItem xBeltItem;
if ( ExtractBeltItem(&xBeltItem, nBeltInventoryNum) )
{
pstCommonItemSet->bSetted = TRUE;
pstCommonItemSet->xItem = xBeltItem;
pstCommonItemSet->bWaitResponse = FALSE;
pstCommonItemSet->bIsEquipItem = FALSE;
pstCommonItemSet->bIsHideItem = FALSE;
pstCommonItemSet->bIsBeltItem = TRUE;
pstCommonItemSet->xItem.m_shCellNum = nBeltInventoryNum;
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::SetInvenFromCommon()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛÀ» Àκ¥Å丮ÀÇ ÇØ´ç¹øÈ£·Î ¼¼ÆÃÇÑ´Ù.
ÀÔ·Â : INT nInventoryNum
LPCOMMONITEMSET pstCommonItemSet
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::SetInvenFromCommon(INT nInventoryNum, LPCOMMONITEMSET pstCommonItemSet)
{
if ( pstCommonItemSet->bSetted )
{
pstCommonItemSet->xItem.m_shCellNum = nInventoryNum;
AddInvenItem(pstCommonItemSet->xItem, nInventoryNum, TRUE);
ZeroMemory(pstCommonItemSet, sizeof(COMMONITEMSET));
}
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::SetBeltFromCommon()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû : °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛÀ» º§Æ®Ã¢ÀÇ ÇØ´ç¹øÈ£·Î ¼¼ÆÃÇÑ´Ù.
ÀÔ·Â : INT nBeltInventoryNum
LPCOMMONITEMSET pstCommonItemSet
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::SetBeltFromCommon(INT nBeltInventoryNum, LPCOMMONITEMSET pstCommonItemSet)
{
if ( pstCommonItemSet->bSetted )
{
pstCommonItemSet->xItem.m_shCellNum = nBeltInventoryNum;
AddBeltItem(pstCommonItemSet->xItem, nBeltInventoryNum);
ZeroMemory(pstCommonItemSet, sizeof(LPCOMMONITEMSET));
}
}
VOID CInventoryWnd::AddNewBeltItem(LPCOMMONITEMSET pstCommonItemSet)
{
INT nCnt;
if ( pstCommonItemSet->bSetted && pstCommonItemSet->bIsBeltItem )
{
if ( /*pstCommonItemSet->xItem.m_stItemInfo.szMakeIndex[0] == 'G' && */
(pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bStdMode == 0 || pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bStdMode == 3) )
{
for ( nCnt = 0; nCnt < _MAX_INVEN_ITEM; nCnt++ )
{
if ( m_stInventoryItem[nCnt].bSetted &&
m_stInventoryItem[nCnt].xItem.m_stItemInfo.stStdItem.bStdMode == pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bStdMode &&
m_stInventoryItem[nCnt].xItem.m_stItemInfo.stStdItem.bShape == pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bShape &&
m_stInventoryItem[nCnt].xItem.m_stItemInfo.nDura == pstCommonItemSet->xItem.m_stItemInfo.nDura &&
m_stInventoryItem[nCnt].xItem.m_stItemInfo.nDuraMax == pstCommonItemSet->xItem.m_stItemInfo.nDuraMax )
{
if ( !m_stBeltItem[pstCommonItemSet->xItem.m_shCellNum].bSetted )
{
m_stBeltItem[pstCommonItemSet->xItem.m_shCellNum].xItem = m_stInventoryItem[nCnt].xItem;
m_stBeltItem[pstCommonItemSet->xItem.m_shCellNum].bSetted = TRUE;
DeleteInvenItem(nCnt);
}
break;
}
}
}
}
}
/******************************************************************************************************************
Message Function.(¸¶¿ì½ºÀÔ·Â)
*******************************************************************************************************************/
BOOL CInventoryWnd::OnKeyUp(LPCOMMONITEMSET pstCommonItemSet, WPARAM wParam, LPARAM lParam)
{
INT nBeltInventoryNum;
nBeltInventoryNum = -1;
switch ( wParam )
{
case '1': nBeltInventoryNum = 0; break;
case '2': nBeltInventoryNum = 1; break;
case '3': nBeltInventoryNum = 2; break;
case '4': nBeltInventoryNum = 3; break;
case '5': nBeltInventoryNum = 4; break;
case '6': nBeltInventoryNum = 5; break;
}
if ( nBeltInventoryNum != -1 )
{
if ( m_stBeltItem[nBeltInventoryNum].bSetted )
{
if ( !pstCommonItemSet->bSetted )
{
SetCommonFromBelt(nBeltInventoryNum, pstCommonItemSet);
}
else if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse && !pstCommonItemSet->bIsEquipItem )
{
if ( /*pstCommonItemSet->xItem.m_stItemInfo.szMakeIndex[0] == 'G' && */
(pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bStdMode == 0 || pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bStdMode == 3) )
ChangeBeltWithCommon(nBeltInventoryNum, pstCommonItemSet);
}
}
else
{
if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse && !pstCommonItemSet->bIsEquipItem )
{
if ( /*pstCommonItemSet->xItem.m_stItemInfo.szMakeIndex[0] == 'G' && */
(pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bStdMode == 0 || pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bStdMode == 3) )
SetBeltFromCommon(nBeltInventoryNum, pstCommonItemSet);
}
}
if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse && !pstCommonItemSet->bIsEquipItem )
{
pstCommonItemSet->bWaitResponse = TRUE;
pstCommonItemSet->bIsHideItem = TRUE;
g_xClientSocket.SendItemIndex(CM_EAT, pstCommonItemSet->xItem.m_stItemInfo.nMakeIndex, pstCommonItemSet->xItem.m_stItemInfo.stStdItem.szName);
return TRUE;
}
}
return FALSE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::OnLButtonDown()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
ÀÔ·Â : POINT ptMouse
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInventoryWnd::OnLButtonDown(LPCOMMONITEMSET pstCommonItemSet, POINT ptMouse)
{
INT nCnt, nInventoryNum, nBeltInventoryNum;
m_xInventoryBtn[_BTN_ID_INVENCLOSE ].ChangeRect(m_rcWnd.left+255, m_rcWnd.top+291);
// m_xInventoryBtn[_BTN_ID_INVENSCRLUP ].ChangeRect(m_rcWnd.left+247, m_rcWnd.top+ 20);
// m_xInventoryBtn[_BTN_ID_INVENSCRLDOWN].ChangeRect(m_rcWnd.left+247, m_rcWnd.top+167);
if ( m_xInvenScrlBar.OnLButtonDown(ptMouse) )
{
FLOAT fScrlRate;
fScrlRate = m_xInvenScrlBar.GetScrlRate();
m_nStartLineNum = 11*fScrlRate;
return FALSE;
}
for( nCnt = 0; nCnt < _MAX_INVEN_BTN; nCnt++ )
{
if ( m_xInventoryBtn[nCnt].OnLButtonDown(ptMouse) )
return TRUE;
}
nInventoryNum = GetInvenNum(ptMouse);
nBeltInventoryNum = GetBeltNum(ptMouse);
if ( (nInventoryNum == -1 && nBeltInventoryNum == -1) ) m_bCanMove = TRUE;
else
{
if ( nInventoryNum != -1 )
{
if ( m_stInventoryItem[nInventoryNum].bSetted ) m_bCanMove = FALSE;
else m_bCanMove = TRUE;
}
else if ( nBeltInventoryNum != -1 )
{
if ( m_stBeltItem[nInventoryNum].bSetted ) m_bCanMove = FALSE;
else m_bCanMove = TRUE;
}
}
return FALSE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::OnLButtonUp()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
ÀÔ·Â : LPCOMMONITEMSET pstCommonItemSet
POINT ptMouse
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInventoryWnd::OnLButtonUp(LPCOMMONITEMSET pstCommonItemSet, POINT ptMouse)
{
INT nInventoryNum, nBeltInventoryNum;
m_xInventoryBtn[_BTN_ID_INVENCLOSE ].ChangeRect(m_rcWnd.left+255, m_rcWnd.top+291);
// m_xInventoryBtn[_BTN_ID_INVENSCRLUP ].ChangeRect(m_rcWnd.left+247, m_rcWnd.top+ 20);
// m_xInventoryBtn[_BTN_ID_INVENSCRLDOWN].ChangeRect(m_rcWnd.left+247, m_rcWnd.top+167);
if ( m_xInvenScrlBar.OnLButtonUp(ptMouse) )
{
return TRUE;
}
// Àκ¥Å丮 À©µµ¿ì¸¦ ´Ù´Â´Ù.
if ( m_xInventoryBtn[_BTN_ID_INVENCLOSE].OnLButtonUp(ptMouse) )
return TRUE;
// ½ºÅ©·Ñ Up, Downó¸®.
// m_xInventoryBtn[_BTN_ID_INVENSCRLUP ].OnLButtonUp(ptMouse);
// m_xInventoryBtn[_BTN_ID_INVENSCRLDOWN].OnLButtonUp(ptMouse);
nInventoryNum = GetInvenNum(ptMouse);
nBeltInventoryNum = GetBeltNum(ptMouse);
// °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛ¿¡ ÀåÂøÃ¢¿¡¼ ¿Â ¾ÆÀÌÅÛÀÌ ÀÖ°í, ¼¹ö·ÎºÎÅÍ ÀÀ´ä½ÅÈ£¸¦ ±â´Ù¸®´Â ÁßÀÌ ¾Æ´Ï¶ó¸é, ¾ÆÀÌÅÛ Âø¿ëÀ» Off½ÃŲ´Ù.
if ( pstCommonItemSet->bSetted && pstCommonItemSet->bIsEquipItem && !pstCommonItemSet->bWaitResponse )
{
nInventoryNum = GetInvenNum(ptMouse);
if ( nInventoryNum != -1 )
{
g_xClientSocket.SendTakeOnOffItem(CM_TAKEOFFITEM, pstCommonItemSet->xItem.m_shCellNum, pstCommonItemSet->xItem.m_stItemInfo.stStdItem.szName, pstCommonItemSet->xItem.m_stItemInfo.nMakeIndex);
pstCommonItemSet->bWaitResponse = TRUE;
return FALSE;
}
}
// Àκ¥Å丮 ¼¿¿µ¿ª¿¡¼ Ŭ¸¯ÇѰæ¿ì.
if ( nInventoryNum != -1 )
{
// Ŭ¸¯ÇÑÀκ¥Å丮¿¡ ¾ÆÀÌÅÛÀÌ ÀÖÀ»°æ¿ì.
if ( m_stInventoryItem[nInventoryNum].bSetted )
{
// °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛ¼ÂÀÌ ºñ¾îÀÖÀ¸¸é,
if ( !pstCommonItemSet->bSetted )
{
// ¸¶¿ì½º¿¡ ¾ÆÀÌÅÛÀ» ºÙÀδÙ.
SetCommonFromInven(nInventoryNum, pstCommonItemSet);
}
// °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛ¼ÂÀº ÀÖ°í, ¼¹ö·ÎºÎÅÍ ÀÀ´ä½ÅÈ£¸¦ ±â´Ù¸®´Â ÁßÀÌ ¾Æ´Ï¸ç, ÀåÂø¾ÆÀÌÅÛÀÌ ¾Æ´Ò¶§¿¡.
else if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse && !pstCommonItemSet->bIsEquipItem )
{
ChangeInvenWithCommon(nInventoryNum, pstCommonItemSet);
}
}
// Ŭ¸¯ÇÑ Àκ¥Å丮¿¡ ¾ÆÀÌÅÛÀÌ ¾øÀ»°æ¿ì.
else
{
// °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛ¼ÂÀº ÀÖ°í, ¼¹ö·ÎºÎÅÍ ÀÀ´ä½ÅÈ£¸¦ ±â´Ù¸®´Â ÁßÀÌ ¾Æ´Ï¸é,
if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse && !pstCommonItemSet->bIsEquipItem )
{
SetInvenFromCommon(nInventoryNum, pstCommonItemSet);
}
}
}
if ( nBeltInventoryNum != -1 )
{
if ( m_stBeltItem[nBeltInventoryNum].bSetted )
{
if ( !pstCommonItemSet->bSetted )
{
SetCommonFromBelt(nBeltInventoryNum, pstCommonItemSet);
}
else if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse && !pstCommonItemSet->bIsEquipItem )
{
if ( /*pstCommonItemSet->xItem.m_stItemInfo.szMakeIndex[0] == 'G' && */
(pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bStdMode == 0 || pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bStdMode == 3) )
ChangeBeltWithCommon(nBeltInventoryNum, pstCommonItemSet);
}
}
else
{
if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse && !pstCommonItemSet->bIsEquipItem )
{
if ( /*pstCommonItemSet->xItem.m_stItemInfo.szMakeIndex[0] == 'G' && */
(pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bStdMode == 0 || pstCommonItemSet->xItem.m_stItemInfo.stStdItem.bStdMode == 3) )
SetBeltFromCommon(nBeltInventoryNum, pstCommonItemSet);
}
}
}
return FALSE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::OnLButtonDoubleClick()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
ÀÔ·Â : LPCOMMONITEMSET pstCommonItemSet
POINT ptMouse
Ãâ·Â : BOOL
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
BOOL CInventoryWnd::OnLButtonDoubleClick(LPCOMMONITEMSET pstCommonItemSet, POINT ptMouse)
{
INT nInventoryNum = GetInvenNum(ptMouse);
INT nBeltInventoryNum = GetBeltNum(ptMouse);
if ( nInventoryNum != -1 )
{
// Ŭ¸¯ÇÑÀκ¥Å丮¿¡ ¾ÆÀÌÅÛÀÌ ÀÖÀ»°æ¿ì.
if ( m_stInventoryItem[nInventoryNum].bSetted )
{
// °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛ¼ÂÀÌ ºñ¾îÀÖÀ¸¸é,
if ( !pstCommonItemSet->bSetted )
{
// ¸¶¿ì½º¿¡ ¾ÆÀÌÅÛÀ» ºÙÀδÙ.
SetCommonFromInven(nInventoryNum, pstCommonItemSet);
}
// °øÅë(¸¶¿ì½º)¾ÆÀÌÅÛ¼ÂÀº ÀÖ°í, ¼¹ö·ÎºÎÅÍ ÀÀ´ä½ÅÈ£¸¦ ±â´Ù¸®´Â ÁßÀÌ ¾Æ´Ï¸é,
else if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse && !pstCommonItemSet->bIsEquipItem )
{
ChangeInvenWithCommon(nInventoryNum, pstCommonItemSet);
}
}
}
if ( nBeltInventoryNum != -1 )
{
if ( m_stBeltItem[nBeltInventoryNum].bSetted )
{
if ( !pstCommonItemSet->bSetted )
{
SetCommonFromBelt(nBeltInventoryNum, pstCommonItemSet);
}
else if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse && !pstCommonItemSet->bIsEquipItem )
{
ChangeBeltWithCommon(nBeltInventoryNum, pstCommonItemSet);
}
}
}
if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse && !pstCommonItemSet->bIsEquipItem )
{
pstCommonItemSet->bWaitResponse = TRUE;
g_xClientSocket.SendItemIndex(CM_EAT, pstCommonItemSet->xItem.m_stItemInfo.nMakeIndex, pstCommonItemSet->xItem.m_stItemInfo.stStdItem.szName);
}
return TRUE;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::OnMouseMove()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
ÀÔ·Â : POINT ptMouse
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::OnMouseMove(POINT ptMouse)
{
m_xInventoryBtn[_BTN_ID_INVENCLOSE ].ChangeRect(m_rcWnd.left+255, m_rcWnd.top+291);
// m_xInventoryBtn[_BTN_ID_INVENSCRLUP ].ChangeRect(m_rcWnd.left+247, m_rcWnd.top+ 20);
// m_xInventoryBtn[_BTN_ID_INVENSCRLDOWN].ChangeRect(m_rcWnd.left+247, m_rcWnd.top+167);
for( INT nCnt = 0; nCnt < _MAX_INVEN_BTN; nCnt++ )
m_xInventoryBtn[nCnt].OnMouseMove(ptMouse);
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::OnScrollDown()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::OnScrollDown()
{
if ( m_nStartLineNum > 0 ) m_nStartLineNum--;
}
/******************************************************************************************************************
ÇÔ¼ö¸í : CInventoryWnd::OnScrollUp()
ÀÛ¼ºÀÚ :
ÀÛ¼ºÀÏ :
¸ñÀû :
Ãâ·Â : VOID
[ÀÏÀÚ][¼öÁ¤ÀÚ] : ¼öÁ¤³»¿ë
*******************************************************************************************************************/
VOID CInventoryWnd::OnScrollUp()
{
// if ( m_nStartLineNum < _INVEN_MAX_CELL_YCNT - _INVEN_CELL_YCNT ) m_nStartLineNum++;
if ( m_nStartLineNum < (_INVEN_MAX_CELL_YCNT-1) )
{
m_nStartLineNum++;
}
}