Files
Client/GameTools/NeoRylClient/AkhanInven.cpp
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

1366 lines
55 KiB
C++

// AkhanInven.cpp: implementation of the CAkhanInven class.
//
//////////////////////////////////////////////////////////////////////
//#include <crtdbg.h>
#include "ClientMain.h"
#include "AkhanInven.h"
#include "WinInput.h"
#include "GUITextEdit.h"
#include "GUITooltipItem.h"
#include "GUIMessageBox.h"
#include "GUIMessageBoxManager.h"
#include "Item\ItemMgr.h"
#include "Item\ItemFactory.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CAkhanInven::CAkhanInven()
{
}
CAkhanInven::~CAkhanInven()
{
}
void CAkhanInven::InitValue(void)
{
m_dwBackInven = 0;
m_dwRepairResult = 0;
m_lpRepairItem = NULL;
m_lpSplitItem = NULL;
m_dwSplitResult = 0;
m_dwSplitValue = 0;
}
BOOL CAkhanInven::Init(unsigned short x, unsigned short y)
{
CSprite *lpSprite;
lpSprite = new CSprite;
lpSprite->Create(x, y, 0, 0, 222, 256, g_ClientMain.m_lpInterface->m_lstTexture[9]);
m_lstSprite.push_back(lpSprite);
lpSprite = new CSprite;
lpSprite->Create(x, y + 256, 0, 0, 222, 224, g_ClientMain.m_lpInterface->m_lstTexture[10]);
m_lstSprite.push_back(lpSprite);
// ¹éÆÑ 1
lpSprite = new CSprite;
lpSprite->Create(x + 176, y + 283, 0, 0, 34, 160, g_ClientMain.m_lpInterface->m_lstTexture[12]);
m_lstSprite.push_back(lpSprite);
// ¹éÆÑ 2
lpSprite = new CSprite;
lpSprite->Create(x + 176, y + 283, 38, 0,76, 160, g_ClientMain.m_lpInterface->m_lstTexture[12]);
m_lstSprite.push_back(lpSprite);
// ¹éÆÑ 3
lpSprite = new CSprite;
lpSprite->Create(x + 176, y + 283, 76, 0, 114, 160, g_ClientMain.m_lpInterface->m_lstTexture[12]);
m_lstSprite.push_back(lpSprite);
CGUIButton *lpButton;
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_SIMPLE;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(190, 1, 0, 0, 28, 28, g_ClientMain.m_lpInterface->m_lpCommonWindow);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(190, 1, 28, 0, 56, 28, g_ClientMain.m_lpInterface->m_lpCommonWindow);
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[160]);
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_SIMPLE;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(131, 30, 175, 164, 243, 186, g_ClientMain.m_lpInterface->m_lstTexture[11]);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(131, 30, 175, 186, 243, 208, g_ClientMain.m_lpInterface->m_lstTexture[11]);
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[171]);
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
m_bShow = FALSE;
m_dwWindowKind = WINDOW_FIX;
m_rcWindowSize.left = x; m_rcWindowSize.top = y;
m_rcWindowSize.right = x + 222; m_rcWindowSize.bottom = y + 480;
m_rcMoveEdge.left = x; m_rcMoveEdge.top = y;
m_rcMoveEdge.right = x + 150; m_rcMoveEdge.bottom = y + 20;
InitValue();
return TRUE;
}
BOOL CAkhanInven::Update(BOOL &bClick, BOOL &bEdge)
{
if(g_DeviceInput.InRect(m_rcWindowSize.left, m_rcWindowSize.top, m_rcWindowSize.right, m_rcWindowSize.bottom))
{
bEdge = TRUE;
if(g_DeviceInput.GetIsLeftMouseDown() || g_DeviceInput.GetIsMiddleMouseDown() || g_DeviceInput.GetIsRightMouseDown() ||
g_DeviceInput.GetIsLeftMousePress() || g_DeviceInput.GetIsMiddleMousePress() || g_DeviceInput.GetIsRightMousePress() ||
g_DeviceInput.GetIsLeftMouseUp() || g_DeviceInput.GetIsMiddleMouseUp() || g_DeviceInput.GetIsRightMouseUp())
{
bClick = TRUE;
}
}
POINT *ptMousePos = g_DeviceInput.GetMousePosition();
unsigned long dwMousePosX = ptMousePos->x - (m_rcWindowSize.left + 18);
unsigned long dwMousePosY = ptMousePos->y - (m_rcWindowSize.top + 286);
m_ButtonManager.Update();
m_TooltipManager.Update();
list<CItemInstance *>::iterator it;
// ¼ö¸®ÇÏ±â ÆÐŶ º¸³»±â
if(m_dwRepairResult & MB_YES)
{
g_ClientMain.m_Network.m_pSocket->CharRepairItem(g_ClientMain.m_dwTradingNpcID, &m_lpRepairItem->m_lpItemBase->GetPos(), m_lpRepairItem->m_lpItemBase->GetRepairPrice());
m_dwRepairResult = 0;
m_lpRepairItem = NULL;
return TRUE;
} else if(m_dwRepairResult & MB_NO || m_dwRepairResult & MB_EXIT)
{
m_dwRepairResult = 0;
m_lpRepairItem = NULL;
return TRUE;
}
// ³ª´©±â
if(m_dwSplitResult & MB_YES)
{
if(m_dwSplitValue)
{
if(m_dwSplitValue >= m_lpSplitItem->GetNowDurability())
{
g_ClientMain.SetPickItem(m_lpSplitItem, FALSE);
g_ClientMain.m_csStatus.DeleteInventoryItem(m_lpSplitItem);
} else
{
g_ClientMain.m_lpPickItem = new CItemInstance;
g_ClientMain.m_lpPickItem->m_lpItemBase = Item::CItemFactory::GetInstance().CreateItem(m_lpSplitItem->GetProtoTypeID());
g_ClientMain.m_lpPickItem->m_lpItemBase->MoveItem(m_lpSplitItem->m_lpItemBase->GetPos());
g_ClientMain.m_lpPickItem->SetNowDurability(m_dwSplitValue);
g_ClientMain.m_lpPickItem->SetItemPos(ClientSocket::ItemPos_Inven);
g_ClientMain.m_lpPickItem->m_dwItemUID = m_lpSplitItem->m_dwItemUID;
g_ClientMain.m_lpPickItem->m_lCoolDownTimeCount = m_lpSplitItem->m_lCoolDownTimeCount;
// g_ClientMain.m_lpPickItem->m_lpProtoTypeInfo = g_ItemMgr.GetProtoTypeInfo(g_ClientMain.m_lpPickItem->GetProtoTypeID());
g_ClientMain.m_lpPickItem->m_lpSprite = new CSprite;
g_ClientMain.m_lpPickItem->m_lpSprite->Create(0, 0, g_ClientMain.m_lpPickItem->GetItemInfo().m_SpriteData.m_nSpriteMinX,
g_ClientMain.m_lpPickItem->GetItemInfo().m_SpriteData.m_nSpriteMinY,
g_ClientMain.m_lpPickItem->GetItemInfo().m_SpriteData.m_nSpriteMaxX,
g_ClientMain.m_lpPickItem->GetItemInfo().m_SpriteData.m_nSpriteMaxY, NULL);
g_ClientMain.m_lpPickItem->m_lpTooltip = new CGUITooltipItem;
((CGUITooltipItem *)g_ClientMain.m_lpPickItem->m_lpTooltip)->SetItem(g_ClientMain.m_lpPickItem);
unsigned long dwSplitValue = m_lpSplitItem->GetNowDurability() - m_dwSplitValue;
m_lpSplitItem->SetNowDurability(dwSplitValue);
g_ClientMain.m_csStatus.SetQuickSlot(m_lpSplitItem);
}
}
m_dwSplitResult = 0;
m_dwSplitValue = 0;
m_lpSplitItem = NULL;
g_TextEdit.m_dwEditMode = EDITMODE_CHAT;
g_ClientMain.SetFocus();
return TRUE;
} else if(m_dwSplitResult & MB_NO || m_dwSplitResult & MB_EXIT)
{
m_dwSplitResult = 0;
m_dwSplitValue = 0;
m_lpSplitItem = NULL;
g_TextEdit.m_dwEditMode = EDITMODE_CHAT;
g_ClientMain.SetFocus();
return TRUE;
}
if(g_ClientMain.m_lpInterface->GetIsTrade())
{
if(g_ClientMain.m_dwKindCursor == CURSOR_REPAIR && g_DeviceInput.GetIsLeftMouseDown())
{
// ¼ö¸®
for(int i = 0; i < 15; i++)
{
if(g_ClientMain.m_csStatus.m_lstEquipment[i])
{
if(g_ClientMain.m_csStatus.m_lstEquipment[i]->IsOverMouse() && g_ClientMain.m_csStatus.m_lstEquipment[i]->GetIsEnableRepair() &&
g_ClientMain.m_csStatus.m_lstEquipment[i]->GetNowDurability() < g_ClientMain.m_csStatus.m_lstEquipment[i]->GetMaxDurability())
{
if(g_ClientMain.m_csStatus.m_Info.Gold > g_ClientMain.m_csStatus.m_lstEquipment[i]->m_lpItemBase->GetRepairPrice())
{
char strString[200];
sprintf(strString, g_StringTable.m_strString[161],
g_ClientMain.m_csStatus.m_lstEquipment[i]->m_lpItemBase->GetRepairPrice());
CGUIMessageBox *lpMessageBox;
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(strString, MB_YES | MB_NO | MB_EXIT);
lpMessageBox->SetResult(&m_dwRepairResult);
m_lpRepairItem = g_ClientMain.m_csStatus.m_lstEquipment[i];
m_dwRepairResult = 0;
} else
{
CGUIMessageBox *lpMessageBox;
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[162]);
}
return TRUE;
}
}
}
for(it = g_ClientMain.m_csStatus.m_lstInventory.begin(); it != g_ClientMain.m_csStatus.m_lstInventory.end(); it++)
{
if((*it)->m_lpItemBase->GetPos().GetZIndex() != m_dwBackInven)
{
continue;
}
if( (*it)->GetIsEnableRepair() && // ÀåºñÀ̰í
(*it)->IsOverMouse() && // ¸¶¿ì½º·Î ¼±ÅÃ
(*it)->GetNowDurability() < (*it)->GetMaxDurability()) // ³»±¸µµ°¡ ÀûÀ»¶§
{
if(g_ClientMain.m_csStatus.m_Info.Gold > (*it)->m_lpItemBase->GetRepairPrice())
{
char strString[200];
sprintf(strString, g_StringTable.m_strString[161], (*it)->m_lpItemBase->GetRepairPrice());
CGUIMessageBox *lpMessageBox;
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(strString, MB_YES | MB_NO | MB_EXIT);
lpMessageBox->SetResult(&m_dwRepairResult);
m_lpRepairItem = (*it);
m_dwRepairResult = 0;
} else
{
CGUIMessageBox *lpMessageBox;
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[162]);
}
return TRUE;
}
}
}
} else
{
if(g_DeviceInput.GetIsRightMouseDown())
{
for(it = g_ClientMain.m_csStatus.m_lstInventory.begin(); it != g_ClientMain.m_csStatus.m_lstInventory.end(); it++)
{
if((*it)->m_lpItemBase->GetPos().GetZIndex() != m_dwBackInven)
{
continue;
}
if((*it)->IsOverMouse())
{
switch((*it)->GetItemType())
{
case Item::CItemType::SKILLBOOK:
UseSkillBook((*it));
break;
case Item::CItemType::POTION:
UsePotion((*it));
break;
}
return TRUE;
}
}
}
}
// Àåºñ ¹× Àκ¥Å丮 ¾ÆÀÌÅÛ ¼±ÅÃ
if(SelectItem()) return TRUE;
if(g_DeviceInput.GetIsLeftMouseDown())
{
if(g_DeviceInput.InRect(m_rcWindowSize.left + 177, m_rcWindowSize.top + 284, m_rcWindowSize.left + 207, m_rcWindowSize.top + 328))
{
m_dwBackInven = 0;
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 177, m_rcWindowSize.top + 335, m_rcWindowSize.left + 207, m_rcWindowSize.top + 379))
{
m_dwBackInven = 1;
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 177, m_rcWindowSize.top + 386, m_rcWindowSize.left + 207, m_rcWindowSize.top + 430))
{
m_dwBackInven = 2;
}
if(g_ClientMain.m_lpPickItem &&
g_ClientMain.m_lpPickItem->GetItemPos() != ClientSocket::ItemPos_Stall &&
g_ClientMain.m_lpPickItem->GetItemPos() != ClientSocket::ItemPos_QSlot &&
g_ClientMain.m_lpPickItem->GetItemPos() != ClientSocket::ItemPos_SSlot) // ¼Õ¿¡ ÀÖ´Â ¾ÆÀÌÅÛ Ã³¸®
{
unsigned long dwInvenX = dwMousePosX / 26;
unsigned long dwInvenY = dwMousePosY / 26;
__int64 ddItem;
if(g_DeviceInput.InRect(m_rcWindowSize.left + 187, m_rcWindowSize.top + 60, m_rcWindowSize.left + 212, m_rcWindowSize.top + 85)) // ¹ÝÁö 1
{
Item::ItemPos pItemIndex;
pItemIndex.m_cIndex = Item::EquipmentPos::RINGL;
pItemIndex.m_cPos = ClientSocket::ItemPos_Equip;
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::RINGL)) != ITEM_FAILED)
{
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
{
g_ClientMain.m_csStatus.AddEquipItem(pItemIndex.m_cIndex, g_ClientMain.m_lpPickItem);
g_ClientMain.SetPickItem(NULL);
g_ClientMain.m_Network.SendCharShape();
g_ClientMain.m_csStatus.StatusUpdate();
return TRUE;
}
if(ddItem == ITEM_EMPTY)
{
// ¾ÆÀÌÅÛ À̵¿
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1);
} else
{
// ½º¿ÒÇϱâ
g_ClientMain.m_Network.SendSwapItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]);
}
return TRUE;
} else
{
if(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex])
{
// ¼ÒÄÏ ¹Ú±â
if(g_ClientMain.m_csStatus.GetIsInstallSocket(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex], g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_Network.m_pSocket->CharInstallSocket(g_ClientMain.m_dwMyChrID,
&g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]->m_lpItemBase->GetPos(),
&g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
return TRUE;
}
}
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 161, m_rcWindowSize.top + 60, m_rcWindowSize.left + 186, m_rcWindowSize.top + 85)) // ¹ÝÁö 2
{
Item::ItemPos pItemIndex;
pItemIndex.m_cIndex = Item::EquipmentPos::RINGR;
pItemIndex.m_cPos = ClientSocket::ItemPos_Equip;
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::RINGR)) != ITEM_FAILED)
{
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
{
g_ClientMain.m_csStatus.AddEquipItem(pItemIndex.m_cIndex, g_ClientMain.m_lpPickItem);
g_ClientMain.SetPickItem(NULL);
g_ClientMain.m_Network.SendCharShape();
g_ClientMain.m_csStatus.StatusUpdate();
return TRUE;
}
if(ddItem == ITEM_EMPTY)
{
// ¾ÆÀÌÅÛ À̵¿
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1);
} else
{
// ½º¿ÒÇϱâ
g_ClientMain.m_Network.SendSwapItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]);
}
return TRUE;
} else
{
if(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex])
{
// ¼ÒÄÏ ¹Ú±â
if(g_ClientMain.m_csStatus.GetIsInstallSocket(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex], g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_Network.m_pSocket->CharInstallSocket(g_ClientMain.m_dwMyChrID,
&g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]->m_lpItemBase->GetPos(),
&g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
return TRUE;
}
}
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 72, m_rcWindowSize.top + 33, m_rcWindowSize.left + 123, m_rcWindowSize.top + 84)) // Çï¸ä
{
Item::ItemPos pItemIndex;
pItemIndex.m_cIndex = Item::EquipmentPos::HELM;
pItemIndex.m_cPos = ClientSocket::ItemPos_Equip;
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::HELM)) != ITEM_FAILED)
{
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
{
g_ClientMain.m_csStatus.AddEquipItem(pItemIndex.m_cIndex, g_ClientMain.m_lpPickItem);
g_ClientMain.SetPickItem(NULL);
g_ClientMain.m_Network.SendCharShape();
g_ClientMain.m_csStatus.StatusUpdate();
return TRUE;
}
if(ddItem == ITEM_EMPTY)
{
// ¾ÆÀÌÅÛ À̵¿
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1);
} else
{
// ½º¿ÒÇϱâ
g_ClientMain.m_Network.SendSwapItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]);
}
return TRUE;
} else
{
if(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex])
{
// ¼ÒÄÏ ¹Ú±â
if(g_ClientMain.m_csStatus.GetIsInstallSocket(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex], g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_Network.m_pSocket->CharInstallSocket(g_ClientMain.m_dwMyChrID,
&g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]->m_lpItemBase->GetPos(),
&g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
return TRUE;
}
}
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 135, m_rcWindowSize.top + 60, m_rcWindowSize.left + 160, m_rcWindowSize.top + 85)) // ¸ñ°ÉÀÌ
{
Item::ItemPos pItemIndex;
pItemIndex.m_cIndex = Item::EquipmentPos::NECKLACE;
pItemIndex.m_cPos = ClientSocket::ItemPos_Equip;
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::NECKLACE)) != ITEM_FAILED)
{
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
{
g_ClientMain.m_csStatus.AddEquipItem(pItemIndex.m_cIndex, g_ClientMain.m_lpPickItem);
g_ClientMain.SetPickItem(NULL);
g_ClientMain.m_Network.SendCharShape();
g_ClientMain.m_csStatus.StatusUpdate();
return TRUE;
}
if(ddItem == ITEM_EMPTY)
{
// ¾ÆÀÌÅÛ À̵¿
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1);
} else
{
// ½º¿ÒÇϱâ
g_ClientMain.m_Network.SendSwapItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]);
}
return TRUE;
} else
{
if(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex])
{
// ¼ÒÄÏ ¹Ú±â
if(g_ClientMain.m_csStatus.GetIsInstallSocket(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex], g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_Network.m_pSocket->CharInstallSocket(g_ClientMain.m_dwMyChrID,
&g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]->m_lpItemBase->GetPos(),
&g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
return TRUE;
}
}
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 10, m_rcWindowSize.top + 170, m_rcWindowSize.left + 61, m_rcWindowSize.top + 273)) // ¹«±â 1
{
Item::ItemPos pItemIndex;
pItemIndex.m_cIndex = Item::EquipmentPos::WEAPON_HAND1;
pItemIndex.m_cPos = ClientSocket::ItemPos_Equip;
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::WEAPON_HAND1)) != ITEM_FAILED)
{
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
{
g_ClientMain.m_csStatus.AddEquipItem(pItemIndex.m_cIndex, g_ClientMain.m_lpPickItem);
g_ClientMain.SetPickItem(NULL);
g_ClientMain.m_Network.SendCharShape();
g_ClientMain.m_csStatus.StatusUpdate();
return TRUE;
}
if(ddItem == ITEM_EMPTY)
{
// ¾ÆÀÌÅÛ À̵¿
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1);
} else
{
// ½º¿ÒÇϱâ
g_ClientMain.m_Network.SendSwapItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]);
}
return TRUE;
} else
{
if(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex])
{
// ¼ÒÄÏ ¹Ú±â
if(g_ClientMain.m_csStatus.GetIsInstallSocket(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex], g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_Network.m_pSocket->CharInstallSocket(g_ClientMain.m_dwMyChrID,
&g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]->m_lpItemBase->GetPos(),
&g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
return TRUE;
}
}
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 72, m_rcWindowSize.top + 101, m_rcWindowSize.left + 149, m_rcWindowSize.top + 204)) // ¸öÅë
{
Item::ItemPos pItemIndex;
pItemIndex.m_cIndex = Item::EquipmentPos::ARMOUR;
pItemIndex.m_cPos = ClientSocket::ItemPos_Equip;
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::ARMOUR)) != ITEM_FAILED)
{
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
{
g_ClientMain.m_csStatus.AddEquipItem(pItemIndex.m_cIndex, g_ClientMain.m_lpPickItem);
g_ClientMain.SetPickItem(NULL);
g_ClientMain.m_Network.SendCharShape();
g_ClientMain.m_csStatus.StatusUpdate();
return TRUE;
}
if(ddItem == ITEM_EMPTY)
{
// ¾ÆÀÌÅÛ À̵¿
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1);
} else
{
// ½º¿ÒÇϱâ
g_ClientMain.m_Network.SendSwapItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]);
}
return TRUE;
} else
{
if(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex])
{
// ¼ÒÄÏ ¹Ú±â
if(g_ClientMain.m_csStatus.GetIsInstallSocket(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex], g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_Network.m_pSocket->CharInstallSocket(g_ClientMain.m_dwMyChrID,
&g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]->m_lpItemBase->GetPos(),
&g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
return TRUE;
}
}
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 161, m_rcWindowSize.top + 101, m_rcWindowSize.left + 211, m_rcWindowSize.top + 204)) // ¹«±â 2
{
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::SHIELD_HAND1)) != ITEM_FAILED)
{
Item::ItemPos pItemIndex;
pItemIndex.m_cIndex = Item::EquipmentPos::SHIELD_HAND1;
pItemIndex.m_cPos = ClientSocket::ItemPos_Equip;
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
{
g_ClientMain.m_csStatus.AddEquipItem(pItemIndex.m_cIndex, g_ClientMain.m_lpPickItem);
g_ClientMain.SetPickItem(NULL);
g_ClientMain.m_Network.SendCharShape();
g_ClientMain.m_csStatus.StatusUpdate();
return TRUE;
}
if(ddItem == ITEM_EMPTY)
{
// ¾ÆÀÌÅÛ À̵¿
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1);
} else
{
// ½º¿ÒÇϱâ
g_ClientMain.m_Network.SendSwapItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]);
}
return TRUE;
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 10, m_rcWindowSize.top + 57, m_rcWindowSize.left + 61, m_rcWindowSize.top + 160)) // Àå°©
{
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::GLOVE)) != ITEM_FAILED)
{
Item::ItemPos pItemIndex;
pItemIndex.m_cIndex = Item::EquipmentPos::GLOVE;
pItemIndex.m_cPos = ClientSocket::ItemPos_Equip;
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
{
g_ClientMain.m_csStatus.AddEquipItem(pItemIndex.m_cIndex, g_ClientMain.m_lpPickItem);
g_ClientMain.SetPickItem(NULL);
g_ClientMain.m_Network.SendCharShape();
g_ClientMain.m_csStatus.StatusUpdate();
return TRUE;
}
if(ddItem == ITEM_EMPTY)
{
// ¾ÆÀÌÅÛ À̵¿
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1);
} else
{
// ½º¿ÒÇϱâ
g_ClientMain.m_Network.SendSwapItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]);
}
return TRUE;
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 160, m_rcWindowSize.top + 222, m_rcWindowSize.left + 211, m_rcWindowSize.top + 273)) // ¸ÁÅä
{
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::CLOAK)) != ITEM_FAILED)
{
Item::ItemPos pItemIndex;
pItemIndex.m_cIndex = Item::EquipmentPos::CLOAK;
pItemIndex.m_cPos = ClientSocket::ItemPos_Equip;
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
{
g_ClientMain.m_csStatus.AddEquipItem(pItemIndex.m_cIndex, g_ClientMain.m_lpPickItem);
g_ClientMain.SetPickItem(NULL);
g_ClientMain.m_Network.SendCharShape();
g_ClientMain.m_csStatus.StatusUpdate();
return TRUE;
}
if(ddItem == ITEM_EMPTY)
{
// ¾ÆÀÌÅÛ À̵¿
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1);
} else
{
// ½º¿ÒÇϱâ
g_ClientMain.m_Network.SendSwapItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]);
}
return TRUE;
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 86, m_rcWindowSize.top + 222, m_rcWindowSize.left + 137, m_rcWindowSize.top + 273)) // ½Å¹ß
{
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::BOOTS)) != ITEM_FAILED)
{
Item::ItemPos pItemIndex;
pItemIndex.m_cIndex = Item::EquipmentPos::BOOTS;
pItemIndex.m_cPos = ClientSocket::ItemPos_Equip;
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
{
g_ClientMain.m_csStatus.AddEquipItem(pItemIndex.m_cIndex, g_ClientMain.m_lpPickItem);
g_ClientMain.SetPickItem(NULL);
g_ClientMain.m_Network.SendCharShape();
g_ClientMain.m_csStatus.StatusUpdate();
return TRUE;
}
if(ddItem == ITEM_EMPTY)
{
// ¾ÆÀÌÅÛ À̵¿
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1);
} else
{
// ½º¿ÒÇϱâ
g_ClientMain.m_Network.SendSwapItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]);
}
return TRUE;
}/* else
{
if(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex])
{
// ¼ÒÄÏ ¹Ú±â
if(g_ClientMain.m_csStatus.GetIsInstallSocket(g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex], g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_Network.m_pSocket->CharInstallSocket(g_ClientMain.m_dwMyChrID,
g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]->m_dwItemPos,
&g_ClientMain.m_csStatus.m_lstEquipment[pItemIndex.m_cIndex]->m_lpItemBase->m_ItemInfo.m_nItemIndex,
g_ClientMain.m_lpPickItem->m_dwItemPos,
&g_ClientMain.m_lpPickItem->m_lpItemBase->m_ItemInfo.m_nItemIndex);
return TRUE;
}
}
}*/
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 18, m_rcWindowSize.top + 286, m_rcWindowSize.left + 172, m_rcWindowSize.top + 440)) // Àκ¥
{
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 0, dwInvenX, dwInvenY, m_dwBackInven)) != ITEM_FAILED)
{
Item::ItemPos pItemIndex;
pItemIndex.SetPos(dwInvenX, dwInvenY, m_dwBackInven);
pItemIndex.m_cPos = ClientSocket::ItemPos_Inven;
if(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos() == pItemIndex)
{
CItemInstance *lpExistItem = g_ClientMain.m_csStatus.GetInventoryItem(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
if(lpExistItem)
{
if(g_ClientMain.m_lpPickItem->GetIsEnableStack())
{
unsigned long dwDurability = lpExistItem->GetNowDurability() + g_ClientMain.m_lpPickItem->GetNowDurability();
lpExistItem->SetNowDurability(dwDurability);
g_ClientMain.m_csStatus.SetQuickSlot(lpExistItem);
delete g_ClientMain.m_lpPickItem;
g_ClientMain.SetPickItem(NULL);
}
} else
{
g_ClientMain.m_csStatus.AddInventoryItem(g_ClientMain.m_lpPickItem);
g_ClientMain.SetPickItem(NULL);
}
return TRUE;
}
if(ddItem == ITEM_EMPTY)
{
if(g_ClientMain.m_lpPickItem->GetIsEnableStack())
{
CItemInstance *lpExistItem = NULL;
switch(g_ClientMain.m_lpPickItem->GetItemPos())
{
case ClientSocket::ItemPos_Inven:
lpExistItem = g_ClientMain.m_csStatus.GetInventoryItem(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
break;
case ClientSocket::ItemPos_Upgrade:
lpExistItem = g_ClientMain.m_csStatus.m_lpUpgrade[g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos().m_cIndex];
break;
case ClientSocket::ItemPos_Exchange:
lpExistItem = g_ClientMain.m_csStatus.GetExchangeItem(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
break;
case ClientSocket::ItemPos_Deposit:
lpExistItem = g_ClientMain.m_csStatus.GetDepositItem(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
break;
}
if(lpExistItem && lpExistItem->GetProtoTypeID() == g_ClientMain.m_lpPickItem->GetProtoTypeID())
{
// ±âÁ¸ÀÇ ÀÚ¸®¿¡ ¾ÆÀÌÅÛÀÌ ³²¾ÆÀÖÀ¸¸é ¾ÆÀÌÅÛÀÌ ³ª´²Áø°É·Î »ý°¢, ¾ÆÀÌÅÛÀ» ½ºÅÃÇÑ´Ù.
g_ClientMain.m_Network.SendSplitItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_lpPickItem->GetNowDurability());
} else
{
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, g_ClientMain.m_lpPickItem->GetNowDurability());
}
} else
{
// ¾ÆÀÌÅÛ À̵¿
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1);
}
} else
{
CItemInstance *lpExistItem = g_ClientMain.m_csStatus.GetInventoryItem(ddItem);
if(g_ClientMain.m_lpPickItem->GetIsEnableStack() && lpExistItem)
{
CItemInstance *lpStallItem = g_ClientMain.m_csStatus.GetStreetTradeItem(lpExistItem->m_dwItemUID);
if(!lpStallItem)
{
// ¼ÒÄÏ ¹Ú±â
if(g_ClientMain.m_csStatus.GetIsInstallSocket(lpExistItem, g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_Network.m_pSocket->CharInstallSocket(g_ClientMain.m_dwMyChrID,
&lpExistItem->m_lpItemBase->GetPos(), &g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
return TRUE;
}
// ¾ÆÀÌÅÛ ½ºÅÃ
if(lpExistItem->GetProtoTypeID() == g_ClientMain.m_lpPickItem->GetProtoTypeID() &&
(pItemIndex.GetXIndex() == lpExistItem->m_lpItemBase->GetPos().GetXIndex() &&
pItemIndex.GetYIndex() == lpExistItem->m_lpItemBase->GetPos().GetYIndex()) &&
lpExistItem->GetNowDurability() < lpExistItem->GetMaxDurability())
{
// ¾ÆÀÌÅÛÀ» ½ºÅÃÇÑ´Ù.
unsigned char cNum;
if(lpExistItem->GetMaxDurability() - lpExistItem->GetNowDurability() < g_ClientMain.m_lpPickItem->GetNowDurability())
{
cNum = lpExistItem->GetMaxDurability() - lpExistItem->GetNowDurability();
} else
{
cNum = g_ClientMain.m_lpPickItem->GetNowDurability();
}
g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, cNum);
return TRUE;
}
}
}
// Àκ¥Å丮 ¸®½ºÆ®¿¡¼­ ¾ÆÀÌÅÛÀ» ã´Â´Ù.(¿Ï·á)
// ½º¿ÒÇϱâ
CItemInstance *lpInvenItem = NULL;
if(g_ClientMain.m_lpPickItem->GetIsEnableStack() && g_ClientMain.m_lpPickItem->GetItemPos() != ClientSocket::ItemPos_Temp)
lpInvenItem = g_ClientMain.m_csStatus.GetInventoryItem(g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos());
if(!lpInvenItem)
g_ClientMain.m_Network.SendSwapItem(g_ClientMain.m_lpPickItem, &pItemIndex, lpExistItem);
}
return TRUE;
}
}
}
}
if(m_ButtonManager.m_lstButton[0]->m_nState == BUTTON_CLICK)
{
m_ButtonManager.m_lstButton[0]->m_nState = BUTTON_NONE;
ShowWindow(FALSE);
} else if(m_ButtonManager.m_lstButton[1]->m_nState == BUTTON_CLICK)
{
if(!g_ClientMain.m_lpInterface->GetBusy())
{
g_ClientMain.m_lpInterface->InitStreetStall(g_ClientMain.m_dwMyChrID, NULL);
}
}
return TRUE;
}
void CAkhanInven::ShowWindow(BOOL bShow)
{
if(bShow == FALSE)
{
if(!g_ClientMain.m_lpInterface->GetIsExchange())
{
m_bShow = bShow;
g_ClientMain.m_lpInterface->m_lstWindow[8]->ShowWindow(bShow);
g_ClientMain.m_lpInterface->m_lstWindow[13]->ShowWindow(bShow);
g_ClientMain.m_lpInterface->m_lstWindow[19]->ShowWindow(bShow);
g_ClientMain.m_lpInterface->m_lstWindow[20]->ShowWindow(bShow);
}
} else
{
m_bShow = bShow;
}
}
void CAkhanInven::Render(LPDIRECT3DDEVICE8 lpD3DDevice)
{
m_lstSprite[0]->Render(lpD3DDevice, m_cAlpha);
m_lstSprite[1]->Render(lpD3DDevice, m_cAlpha);
switch(m_dwBackInven)
{
case 0:
m_lstSprite[2]->Render(lpD3DDevice, m_cAlpha);
break;
case 1:
m_lstSprite[3]->Render(lpD3DDevice, m_cAlpha);
break;
case 2:
m_lstSprite[4]->Render(lpD3DDevice, m_cAlpha);
break;
}
for(int i = 0; i < 15; i++)
{
if(g_ClientMain.m_csStatus.m_lstEquipment[i])
{
switch(i)
{
case Item::EquipmentPos::WEAPON_HAND1:
case Item::EquipmentPos::SHIELD_HAND1:
if(g_ClientMain.m_csStatus.m_cWeaponPos == 0)
{
if(i == Item::EquipmentPos::WEAPON_HAND1 && g_ClientMain.m_csStatus.m_lstEquipment[i]->GetTwoHandItem())
{
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_wPutX =
m_rcWindowSize.left + 10 + ((50 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_lpSprite->GetSizeX()) / 2);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_wPutY =
m_rcWindowSize.top + 170 + ((102 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_lpSprite->GetSizeY()) / 2);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->Render(lpD3DDevice);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_wPutX =
m_rcWindowSize.left + 161 + ((50 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_lpSprite->GetSizeX()) / 2);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_wPutY =
m_rcWindowSize.top + 101 + ((102 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_lpSprite->GetSizeY()) / 2);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->Render(lpD3DDevice);
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 160, m_rcWindowSize.top + 101, m_rcWindowSize.left + 211, m_rcWindowSize.top + 204, 0xFFFF0000, 0x80);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_wPutX =
m_rcWindowSize.left + 10 + ((50 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_lpSprite->GetSizeX()) / 2);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_wPutY =
m_rcWindowSize.top + 170 + ((102 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND1]->m_lpSprite->GetSizeY()) / 2);
} else
{
g_ClientMain.m_csStatus.m_lstEquipment[i]->Render(lpD3DDevice);
}
}
break;
case Item::EquipmentPos::WEAPON_HAND2:
case Item::EquipmentPos::SHIELD_HAND2:
if(g_ClientMain.m_csStatus.m_cWeaponPos == 1)
{
if(i == Item::EquipmentPos::WEAPON_HAND2 && g_ClientMain.m_csStatus.m_lstEquipment[i]->GetTwoHandItem())
{
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_wPutX =
m_rcWindowSize.left + 10 + ((50 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_lpSprite->GetSizeX()) / 2);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_wPutY =
m_rcWindowSize.top + 170 + ((102 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_lpSprite->GetSizeY()) / 2);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->Render(lpD3DDevice);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_wPutX =
m_rcWindowSize.left + 161 + ((50 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_lpSprite->GetSizeX()) / 2);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_wPutY =
m_rcWindowSize.top + 101 + ((102 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_lpSprite->GetSizeY()) / 2);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->Render(lpD3DDevice);
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 160, m_rcWindowSize.top + 101, m_rcWindowSize.left + 211, m_rcWindowSize.top + 204, 0xFFFF0000, 0x80);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_wPutX =
m_rcWindowSize.left + 10 + ((50 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_lpSprite->GetSizeX()) / 2);
g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_wPutY =
m_rcWindowSize.top + 170 + ((102 - g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::WEAPON_HAND2]->m_lpSprite->GetSizeY()) / 2);
} else
{
g_ClientMain.m_csStatus.m_lstEquipment[i]->Render(lpD3DDevice);
}
}
break;
default:
g_ClientMain.m_csStatus.m_lstEquipment[i]->Render(lpD3DDevice);
break;
}
}
}
list<CItemInstance *>::iterator it;
for(it = g_ClientMain.m_csStatus.m_lstInventory.begin(); it != g_ClientMain.m_csStatus.m_lstInventory.end(); it++)
{
if(m_dwBackInven == (*it)->m_lpItemBase->GetPos().GetZIndex()) (*it)->Render(lpD3DDevice);
}
if(g_ClientMain.m_lpPickItem && g_MessageBoxManager.m_lstMessageBox.empty())
{
__int64 ddItem;
if(g_DeviceInput.InRect(m_rcWindowSize.left + 187, m_rcWindowSize.top + 60, m_rcWindowSize.left + 212, m_rcWindowSize.top + 85)) // ¹ÝÁö 1
{
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::RINGL)) != ITEM_FAILED)
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 187, m_rcWindowSize.top + 60, m_rcWindowSize.left + 212, m_rcWindowSize.top + 85, 0xFF0000FF, 0x80);
} else
{
if(g_ClientMain.m_lpPickItem->GetIsSocketItem() && g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::RINGL]
&& g_ClientMain.m_csStatus.GetIsInstallSocket(g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::RINGL], g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 187, m_rcWindowSize.top + 60, m_rcWindowSize.left + 212, m_rcWindowSize.top + 85, 0xFFFFFFFF, 0x80);
} else
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 187, m_rcWindowSize.top + 60, m_rcWindowSize.left + 212, m_rcWindowSize.top + 85, 0xFFFF0000, 0x80);
}
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 161, m_rcWindowSize.top + 60, m_rcWindowSize.left + 186, m_rcWindowSize.top + 85)) // ¹ÝÁö 2
{
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::RINGR)) != ITEM_FAILED)
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 161, m_rcWindowSize.top + 60, m_rcWindowSize.left + 186, m_rcWindowSize.top + 85, 0xFF0000FF, 0x80);
} else
{
if(g_ClientMain.m_lpPickItem->GetIsSocketItem() && g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::RINGR]
&& g_ClientMain.m_csStatus.GetIsInstallSocket(g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::RINGR], g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 161, m_rcWindowSize.top + 60, m_rcWindowSize.left + 186, m_rcWindowSize.top + 85, 0xFFFFFFFF, 0x80);
} else
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 161, m_rcWindowSize.top + 60, m_rcWindowSize.left + 186, m_rcWindowSize.top + 85, 0xFFFF0000, 0x80);
}
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 72, m_rcWindowSize.top + 33, m_rcWindowSize.left + 123, m_rcWindowSize.top + 84)) // Çï¸ä
{
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::HELM)) != ITEM_FAILED)
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 72, m_rcWindowSize.top + 33, m_rcWindowSize.left + 123, m_rcWindowSize.top + 84, 0xFF0000FF, 0x80);
} else
{
if(g_ClientMain.m_lpPickItem->GetIsSocketItem() && g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::HELM]
&& g_ClientMain.m_csStatus.GetIsInstallSocket(g_ClientMain.m_csStatus.m_lstEquipment[Item::EquipmentPos::HELM], g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 72, m_rcWindowSize.top + 33, m_rcWindowSize.left + 123, m_rcWindowSize.top + 84, 0xFFFFFFFF, 0x80);
} else
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 72, m_BAAD$_Tree_nod@V?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@@2@I@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ?_Dec@const_iterator@?$_Tree@V?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@@std@@QAEXXZ
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ?_Inc@const_iterator@?$_Tree@V?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@@std@@QAEXXZ
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??0_Node@?$_Tree_nod@V?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@@std@@QAE@PAU012@00ABU?$pair@$$CBKPAVCTextureCacheObj@@@2@D@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??0out_of_range@std@@QAE@ABV01@@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ?allocate@?$allocator@D@std@@QAEPADI@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ?max_size@?$allocator@D@std@@QBEIXZ
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ?_Max@?$_Tree@V?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@@std@@KAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@@2@PAU342@@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ?_Min@?$_Tree@V?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@@std@@KAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@@2@PAU342@@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??0?$_Tree_nod@V?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@@std@@IAE@ABU?$less@K@1@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@1@@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ?construct@?$allocator@PAU_Node@?$_Tree_nod@V?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@@std@@@std@@QAEXPAPAU_Node@?$_Tree_nod@V?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@@2@ABQAU342@@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??0?$_Tmap_traits@KPAVCTextureCacheObj@@U?$less@K@std@@V?$allocator@U?$pair@$$CBKPAVCTextureCacheObj@@@std@@@3@$0A@@std@@QAE@U?$less@K@1@@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??$_Pow_int@N@@YANNH@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??$_Pow_int@H@@YAHHH@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??$_Pow_int@M@@YAMMH@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??$_Pow_int@O@@YAOOH@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??$use_facet@V?$ctype@D@std@@@std@@YAABV?$ctype@D@0@ABVlocale@0@@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??$use_facet@V?$ctype@_W@std@@@std@@YAABV?$ctype@_W@0@ABVlocale@0@@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??$copy@PAPAVCTextureNode@@PAPAV1@@std@@YAPAPAVCTextureNode@@PAPAV1@00@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??$_Destroy_range@PAVCTextureNode@@V?$allocator@PAVCTextureNode@@@std@@@std@@YAXPAPAVCTextureNode@@0AAV?$allocator@PAVCTextureNode@@@0@@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??$_Uninitialized_fill_n@PAPAVCTextureNode@@IPAV1@V?$allocator@PAVCTextureNode@@@std@@@std@@YAXPAPAVCTextureNode@@IABQAV1@AAV?$allocator@PAVCTextureNode@@@0@@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT ??$_Ucopy@PAPAVCTextureNode@@@?$vector@PAVCTextureNode@@V?$allocator@PAVCTextureNode@@@std@@@std@@IAEPAPAVCTextureNode@@PAPAV2@00@Z
_TEXT S+ 211, m_rcWindowSize.top + 204, 0xFF0000FF, 0x80);
} else
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 161, m_rcWindowSize.top + 101, m_rcWindowSize.left + 211, m_rcWindowSize.top + 204, 0xFFFF0000, 0x80);
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 10, m_rcWindowSize.top + 57, m_rcWindowSize.left + 61, m_rcWindowSize.top + 160)) // Àå°©
{
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::GLOVE)) != ITEM_FAILED)
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 10, m_rcWindowSize.top + 57, m_rcWindowSize.left + 61, m_rcWindowSize.top + 160, 0xFF0000FF, 0x80);
} else
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 10, m_rcWindowSize.top + 57, m_rcWindowSize.left + 61, m_rcWindowSize.top + 160, 0xFFFF0000, 0x80);
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 160, m_rcWindowSize.top + 222, m_rcWindowSize.left + 211, m_rcWindowSize.top + 273)) // ¸ÁÅä
{
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::CLOAK)) != ITEM_FAILED)
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 160, m_rcWindowSize.top + 222, m_rcWindowSize.left + 211, m_rcWindowSize.top + 273, 0xFF0000FF, 0x80);
} else
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 160, m_rcWindowSize.top + 222, m_rcWindowSize.left + 211, m_rcWindowSize.top + 273, 0xFFFF0000, 0x80);
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 86, m_rcWindowSize.top + 222, m_rcWindowSize.left + 137, m_rcWindowSize.top + 273)) // ½Å¹ß
{
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 1, Item::EquipmentPos::BOOTS)) != ITEM_FAILED)
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 86, m_rcWindowSize.top + 222, m_rcWindowSize.left + 137, m_rcWindowSize.top + 273, 0xFF0000FF, 0x80);
} else
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 86, m_rcWindowSize.top + 222, m_rcWindowSize.left + 137, m_rcWindowSize.top + 273, 0xFFFF0000, 0x80);
}
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 18, m_rcWindowSize.top + 286, m_rcWindowSize.left + 172, m_rcWindowSize.top + 440)) // Àκ¥
{
Item::ItemPos pItemIndex;
POINT *ptMousePos = g_DeviceInput.GetMousePosition();
pItemIndex.SetPos((ptMousePos->x - (m_rcWindowSize.left + 18)) / 26, (ptMousePos->y - (m_rcWindowSize.top + 286)) / 26, m_dwBackInven);
if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 0, pItemIndex.GetXIndex(), pItemIndex.GetYIndex(), m_dwBackInven)) != ITEM_FAILED)
{
CItemInstance *lpExistItem = g_ClientMain.m_csStatus.GetInventoryItem(ddItem);
CItemInstance *lpStallItem = NULL;
if(lpExistItem)
{
lpStallItem = g_ClientMain.m_csStatus.GetStreetTradeItem(lpExistItem->m_dwItemUID);
}
if(!lpStallItem && (g_ClientMain.m_lpPickItem->GetItemType() == Item::CItemType::GEM ||
g_ClientMain.m_lpPickItem->GetItemType() == Item::CItemType::RUNE) &&
lpExistItem && g_ClientMain.m_csStatus.GetIsInstallSocket(lpExistItem, g_ClientMain.m_lpPickItem))
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice,
m_rcWindowSize.left + 18 + lpExistItem->m_lpItemBase->GetPos().GetXIndex() * 26,
m_rcWindowSize.top + 286 + lpExistItem->m_lpItemBase->GetPos().GetYIndex() * 26,
m_rcWindowSize.left + 18 + lpExistItem->GetItemInfo().m_DetailData.m_cXSize * 26 + lpExistItem->m_lpItemBase->GetPos().GetXIndex() * 26,
m_rcWindowSize.top + 286 + lpExistItem->GetItemInfo().m_DetailData.m_cYSize * 26 + lpExistItem->m_lpItemBase->GetPos().GetYIndex() * 26,
0xFFFFFFFF, 0x80);
} else
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice,
m_rcWindowSize.left + 18 + pItemIndex.GetXIndex() * 26, m_rcWindowSize.top + 286 + pItemIndex.GetYIndex() * 26,
m_rcWindowSize.left + 18 + g_ClientMain.m_lpPickItem->GetItemInfo().m_DetailData.m_cXSize * 26 + pItemIndex.GetXIndex() * 26,
m_rcWindowSize.top + 286 + g_ClientMain.m_lpPickItem->GetItemInfo().m_DetailData.m_cYSize * 26 + pItemIndex.GetYIndex() * 26,
0xFF0000FF, 0x80);
}
} else
{
if(g_ClientMain.m_lpPickItem->GetItemInfo().m_DetailData.m_cXSize + pItemIndex.GetXIndex() < 6 &&
g_ClientMain.m_lpPickItem->GetItemInfo().m_DetailData.m_cYSize + pItemIndex.GetYIndex() < 6)
{
g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice,
m_rcWindowSize.left + 18 + pItemIndex.GetXIndex() * 26, m_rcWindowSize.top + 286 + pItemIndex.GetYIndex() * 26,
m_rcWindowSize.left + 18 + g_ClientMain.m_lpPickItem->GetItemInfo().m_DetailData.m_cXSize * 26 + pItemIndex.GetXIndex() * 26,
m_rcWindowSize.top + 286 + g_ClientMain.m_lpPickItem->GetItemInfo().m_DetailData.m_cYSize * 26 + pItemIndex.GetYIndex() * 26,
0xFFFF0000, 0x80);
}
}
}
}
RECT rcRect;
// Gold
SetRect(&rcRect, 62 + m_rcWindowSize.left, 455 + m_rcWindowSize.top, 177 + m_rcWindowSize.left, 470 + m_rcWindowSize.top);
g_TextEdit.DrawText(g_TextEdit.MakePrintGold(g_ClientMain.m_csStatus.m_Info.Gold), &rcRect, DT_RIGHT | DT_VCENTER, D3DCOLOR_RGBA(255, 255, 255, m_cAlpha));
m_ButtonManager.Render(lpD3DDevice);
}
BOOL CAkhanInven::UseSkillBook(CItemInstance *lpItem)
{
/* {
Item::UseItem *lpSkillBook = ((Item::UseItem *)lpItem->m_lpItemBase);
g_ClientMain.m_Network.m_nsNetworkState = NS_USEITEM;
g_ClientMain.m_Network.m_pSocket->CharUseItem(g_ClientMain.m_dwMyChrID, g_ClientMain.m_dwMyChrID, &lpSkillBook->m_ItemInfo.m_nItemIndex);
return TRUE;
}*/// º¸³ë Àü¿ë
if(!lpItem) return FALSE;
unsigned long dwResult = g_ClientMain.m_csStatus.CheckUseSkillBook(lpItem);
CGUIMessageBox *lpMessageBox;
switch(dwResult)
{
case 0:
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[163]);
break;
case 1:
{
CEffScript *test_script;
// _ASSERTE(_CrtCheckMemory());
test_script = new CEffScript;
test_script->SetInterfaceSet(true);
test_script->GetScriptBinData("inter_book.esf");
test_script->m_InterfacePos[0] = (lpItem->m_wPutX) + 26;
test_script->m_InterfacePos[1] = (lpItem->m_wPutY) + 26;
CSceneManager::m_EffectManager.AddInterfaceScript(test_script);
g_ClientMain.m_Network.m_nsNetworkState = NS_USEITEM;
g_ClientMain.m_Network.m_pSocket->CharUseItem(g_ClientMain.m_dwMyChrID, g_ClientMain.m_dwMyChrID, &lpItem->m_lpItemBase->GetPos());
}
break;
case 2:
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[164]);
break;
case 3:
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[165]);
break;
case 4:
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[163]);
break;
case 5:
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[166]);
break;
case 6:
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[167]);
break;
case 7:
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[163]);
break;
case 8:
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[168]);
break;
case 9:
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[169]);
break;
}
return TRUE;
}
BOOL CAkhanInven::SelectItem()
{
BOOL bPickItem = FALSE;
CItemInstance *lpInstance;
const Item::ItemInfo *lpItemInfo;
unsigned short wPosX[15] = { 72, 0, 0, 72, 10, 86, 135, 161, 187, 161, 0, 10, 0, 160, 0 };
unsigned short wPosY[15] = { 33, 0, 0, 101, 57, 222, 60, 60, 60, 101, 0, 170, 0, 222, 0 };
unsigned short wSizeX[15] = { 50, 0, 0, 76, 50, 50, 24, 24, 24, 50, 0, 50, 0, 50, 50 };
unsigned short wSizeY[15] = { 50, 0, 0, 102, 102, 50, 24, 24, 24, 102, 0, 102, 0, 50, 50 };
///// Àåºñ ¾ÆÀÌÅÛ ¾÷µ¥ÀÌÆ® ¹× ¼±ÅÃ
for(int i = 0; i < Item::EquipmentPos::MAX_EQUPMENT_POS; i++)
{
if(g_ClientMain.m_csStatus.m_lstEquipment[i])
{
lpInstance = g_ClientMain.m_csStatus.m_lstEquipment[i];
lpInstance->m_wPutX = m_rcWindowSize.left + wPosX[i] + ((wSizeX[i] - lpInstance->m_lpSprite->GetSizeX()) / 2);
lpInstance->m_wPutY = m_rcWindowSize.top + wPosY[i] + ((wSizeY[i] - lpInstance->m_lpSprite->GetSizeY()) / 2);
if(g_ClientMain.m_dwKindCursor == CURSOR_NORMAL && !g_ClientMain.m_lpPickItem && g_DeviceInput.GetIsLeftMouseDown() && lpInstance->IsOverMouse())
{
g_ClientMain.SetPickItem(lpInstance);
g_ClientMain.m_csStatus.m_lstEquipment[i] = NULL;
g_ClientMain.m_Network.SendCharShape();
g_ClientMain.m_csStatus.StatusUpdate();
bPickItem = TRUE;
}
if(bPickItem && (i == Item::EquipmentPos::WEAPON_HAND1 + g_ClientMain.m_csStatus.m_cWeaponPos ||
i == Item::EquipmentPos::SHIELD_HAND1 + g_ClientMain.m_csStatus.m_cWeaponPos))
{
g_CharacterData.m_bAutoTargetAttack = false;
g_CharacterData.m_dwAutoTargetID = 0xFFFFFFFF;
}
}
}
list<CItemInstance *>::iterator it;
///// Àκ¥ ¾ÆÀÌÅÛ ¾÷µ¥ÀÌÆ® ¹× ¼±ÅÃ
for(it = g_ClientMain.m_csStatus.m_lstInventory.begin(); it != g_ClientMain.m_csStatus.m_lstInventory.end();)
{
Item::ItemPos pItemIndex = (*it)->m_lpItemBase->GetPos();
lpItemInfo = &(*it)->GetItemInfo();
if(pItemIndex.GetZIndex() != m_dwBackInven)
{
it++;
continue;
}
(*it)->m_wPutX = m_rcWindowSize.left + 18 + 26 * pItemIndex.GetXIndex() + (((lpItemInfo->m_DetailData.m_cXSize * 26 - 1) - (*it)->m_lpSprite->GetSizeX()) / 2);
(*it)->m_wPutY = m_rcWindowSize.top + 286 + 26 * pItemIndex.GetYIndex() + (((lpItemInfo->m_DetailData.m_cYSize * 26 - 1) - (*it)->m_lpSprite->GetSizeY()) / 2);
if(g_ClientMain.m_dwKindCursor == CURSOR_NORMAL && !g_ClientMain.m_lpPickItem && g_DeviceInput.GetIsLeftMouseDown() && (*it)->IsOverMouse())
{
CItemInstance *lpStallItem = g_ClientMain.m_csStatus.GetStreetTradeItem((*it)->m_dwItemUID);
if(lpStallItem)
{
TakeType pTakeType;
pTakeType.m_srcPos.m_cPos = ClientSocket::ItemPos_Stall;
pTakeType.m_srcPos.m_cIndex = 0;
pTakeType.m_dstPos = lpStallItem->m_lpItemBase->GetPos();
if(lpStallItem->GetIsEnableStack())
{
pTakeType.m_cNum = lpStallItem->GetNowDurability();
} else
{
pTakeType.m_cNum = 1;
}
g_ClientMain.m_Network.m_nsNetworkState = NS_STALLREGISTERITEM;
g_ClientMain.m_Network.m_pSocket->CharStallRegisterItem(g_ClientMain.m_dwMyChrID, pTakeType, 0, ClientSocket::StallCmd_Cancel);
}
if((*it)->GetIsEnableStack() && g_DeviceInput.KeyHold(VK_SHIFT) && (*it)->GetNowDurability() > 1)
{
CGUIMessageBox *lpMessageBox;
lpMessageBox = new CGUIMessageBox;
lpMessageBox->Create(g_StringTable.m_strString[170], MB_NUMBER | MB_YES | MB_NO | MB_EXIT);
lpMessageBox->SetResult(&m_dwSplitResult);
lpMessageBox->SetValue(&m_dwSplitValue);
g_TextEdit.SetFocus();
m_lpSplitItem = (*it);
m_dwSplitResult = 0;
m_dwSplitValue = 0;
CSoundManager &sm = CSoundManager::GetInstance();
char Temp[MAX_PATH];
sprintf(Temp, "%s\\Sound\\Interface\\click.mnd", g_ClientMain.m_strClientPath);
ISoundObject &sb = sm.GetBuffer(Temp, false);
sb.Play(false);
it++;
} else
{
g_ClientMain.SetPickItem((*it));
g_ClientMain.m_csStatus.CheckInvenField(0, g_ClientMain.m_lpPickItem);
it = g_ClientMain.m_csStatus.m_lstInventory.erase(it);
g_ClientMain.m_csStatus.SetQuickSlot(g_ClientMain.m_lpPickItem);
bPickItem = TRUE;
}
} else
{
it++;
}
}
if(bPickItem)
{
return TRUE;
}
return FALSE;
}
BOOL CAkhanInven::UsePotion(CItemInstance *lpItem)
{
Item::CUseItem *lpPotion = Item::CUseItem::DowncastToUseItem(lpItem->m_lpItemBase);
if(!lpPotion) return FALSE;
unsigned long dwResult = g_ClientMain.m_csStatus.CheckUsePotion(lpItem);
if(dwResult == 1)
{
// Æ÷¼ÇÀ» ¾´´Ù.
g_ClientMain.m_Network.m_nsNetworkState = NS_USEITEM;
g_ClientMain.m_Network.m_pSocket->CharUseItem(g_ClientMain.m_dwMyChrID, g_ClientMain.m_dwMyChrID, &lpPotion->GetPos());
g_ClientMain.SetPotionCoolDown();
}
return TRUE;
}