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++; 
	} 
}