// HumanStreetStall.cpp: implementation of the CHumanStreetStall class. // ////////////////////////////////////////////////////////////////////// #include "ClientMain.h" #include "WinInput.h" #include "Item\ItemMgr.h" #include "HumanStreetStall.h" #include "GUIMessageBox.h" #include "GUIMessageBoxManager.h" #include "GUITextEdit.h" #include "StringFilter.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CHumanStreetStall::CHumanStreetStall() { m_dwNameResult = 0; m_dwRegistItemResult = 0; m_dwRegistItemValue = 0; m_dwBuyResult = 0; m_lpBuyItem = NULL; m_dwItemNumber = 0; strcpy(m_strMarketName, ""); strcpy(m_strOwner, ""); } CHumanStreetStall::~CHumanStreetStall() { DeleteTradeItem(); } BOOL CHumanStreetStall::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[48]); m_lstSprite.push_back(lpSprite); lpSprite = new CSprite; lpSprite->Create(x, y + 256, 0, 0, 222, 224, g_ClientMain.m_lpInterface->m_lstTexture[49]); 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[251]); lpButton->SetMove(x, y); m_ButtonManager.AddButton(lpButton); CGUIScroll *lpScroll; lpScroll = new CGUIScroll; lpScroll->m_lpBarButton = new CGUIButton; lpScroll->m_lpBarButton->m_nMethod = BUTTON_SIMPLE; lpScroll->m_lpBarButton->m_lpNormalButton = new CSprite; lpScroll->m_lpBarButton->m_lpNormalButton->Create(206, 302, 228, 0, 239, 20, g_ClientMain.m_lpInterface->m_lstTexture[8]); lpScroll->m_lpBarButton->m_lpClickMouseButton = new CSprite; lpScroll->m_lpBarButton->m_lpClickMouseButton->Create(206, 302, 228, 0, 239, 20, g_ClientMain.m_lpInterface->m_lstTexture[8]); lpScroll->m_lpUpArrowButton = new CGUIButton; lpScroll->m_lpUpArrowButton->m_nMethod = BUTTON_SIMPLE; lpScroll->m_lpUpArrowButton->m_lpNormalButton = new CSprite; lpScroll->m_lpUpArrowButton->m_lpNormalButton->Create(206, 291, 243, 2, 254, 12, g_ClientMain.m_lpInterface->m_lstTexture[8]); lpScroll->m_lpUpArrowButton->m_lpClickMouseButton = new CSprite; lpScroll->m_lpUpArrowButton->m_lpClickMouseButton->Create(206, 291, 243, 14, 254, 24, g_ClientMain.m_lpInterface->m_lstTexture[8]); lpScroll->m_lpDownArrowButton = new CGUIButton; lpScroll->m_lpDownArrowButton->m_nMethod = BUTTON_SIMPLE; lpScroll->m_lpDownArrowButton->m_lpNormalButton = new CSprite; lpScroll->m_lpDownArrowButton->m_lpNormalButton->Create(206, 439, 243, 26, 254, 36, g_ClientMain.m_lpInterface->m_lstTexture[8]); lpScroll->m_lpDownArrowButton->m_lpClickMouseButton = new CSprite; lpScroll->m_lpDownArrowButton->m_lpClickMouseButton->Create(206, 439, 243, 40, 254, 50, g_ClientMain.m_lpInterface->m_lstTexture[8]); lpScroll->m_lValue = (long *)&g_TextEdit.m_dwStartStall; lpScroll->SetMove(x, y); lpScroll->SetPosition(206, 302); lpScroll->SetEdge(0, 0, 10, 116); lpScroll->SetRange(0, 0); m_lstScroll.push_back(lpScroll); InitValue(); 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 + 222; m_rcMoveEdge.bottom = y + 20; return TRUE; } void CHumanStreetStall::InitValue(void) { m_dwNameResult = 0; m_dwRegistItemResult = 0; m_dwRegistItemValue = 0; m_dwBuyResult = 0; m_lpBuyItem = NULL; m_dwItemNumber = 0; strcpy(m_strMarketName, ""); strcpy(m_strOwner, ""); } BOOL CHumanStreetStall::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; } } m_ButtonManager.Update(); m_TooltipManager.Update(); if(m_dwNameResult & MB_CONFIRM) { // »óÁ¡ °³¼³ ÆÐŶ Àü¼Û m_strMarketName[31] = 0; g_ClientMain.m_Network.m_pSocket->CharStallOpen(g_ClientMain.m_dwMyChrID, m_strMarketName); strcpy(m_strMarketName, ""); m_dwNameResult = 0; return TRUE; } else if(m_dwNameResult & MB_CANCEL || m_dwNameResult & MB_EXIT) { strcpy(m_strMarketName, ""); m_dwNameResult = 0; ShowWindow(FALSE); return TRUE; } if(m_dwRegistItemResult & MB_YES) { // »óÁ¡ ¾ÆÀÌÅÛ ¿Ã·Á³õ±â TakeType pTakeType; pTakeType.m_srcPos = g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos(); pTakeType.m_dstPos.m_cPos = ClientSocket::ItemPos_Stall; pTakeType.m_dstPos.m_cIndex = m_wItemIndex; if(g_ClientMain.m_lpPickItem->GetIsEnableStack()) { pTakeType.m_cNum = g_ClientMain.m_lpPickItem->GetNowDurability(); } else { pTakeType.m_cNum = 1; } if(m_dwRegistItemValue < 1) m_dwRegistItemValue = 1; g_ClientMain.m_Network.m_nsNetworkState = NS_STALLREGISTERITEM; g_ClientMain.m_Network.m_pSocket->CharStallRegisterItem(g_ClientMain.m_dwMyChrID, pTakeType, m_dwRegistItemValue, ClientSocket::StallCmd_Register); m_wItemIndex = 0; m_dwRegistItemResult = 0; m_dwRegistItemValue = 0; return TRUE; } else if(m_dwRegistItemResult & MB_NO || m_dwRegistItemResult & MB_EXIT) { m_wItemIndex = 0; m_dwRegistItemResult = 0; m_dwRegistItemValue = 0; return TRUE; } if(m_dwBuyResult & MB_YES) { // »ê´Ù. ÆÐŶ Àü¼Û Item::ItemPos pItemIndex; FieldInstance pTradeItem; pTradeItem.m_dwInstanceID = 0; pTradeItem.m_dwOID = 0; pTradeItem.m_dwTypeID = m_lpBuyItem->GetProtoTypeID(); if(m_lpBuyItem->GetIsEnableStack()) { if(m_dwItemNumber > m_lpBuyItem->GetNowDurability()) m_dwItemNumber = m_lpBuyItem->GetNowDurability(); pTradeItem.m_cNum = m_dwItemNumber; } else pTradeItem.m_cNum = 1; if(pTradeItem.m_cNum) { BOOL bPass = FALSE; if(g_ClientMain.m_csStatus.m_Info.Gold < (pTradeItem.m_cNum * m_lpBuyItem->m_lpItemBase->GetBuyPrice())) bPass = TRUE; if(bPass) { CGUIMessageBox *lpMessageBox; lpMessageBox = new CGUIMessageBox; lpMessageBox->Create(g_StringTable.m_strString[252]); m_dwBuyResult = 0; m_lpBuyItem = NULL; return TRUE; } unsigned long dwNum = g_ClientMain.m_csStatus.GetAbleInven(&pTradeItem, pItemIndex, FALSE); if(dwNum) { Item::ItemPos pPos = m_lpBuyItem->m_lpItemBase->GetPos(); g_ClientMain.m_Network.SendTradeItem(m_dwMarketOwnerID, m_lpBuyItem->GetProtoTypeID(), dwNum, pPos, pItemIndex); } } m_dwItemNumber = 0; m_dwBuyResult = 0; m_lpBuyItem = NULL; return TRUE; } else if(m_dwBuyResult & MB_NO || m_dwBuyResult & MB_EXIT) { m_dwItemNumber = 0; m_dwBuyResult = 0; m_lpBuyItem = NULL; return TRUE; } POINT *ptMousePos = g_DeviceInput.GetMousePosition(); unsigned long dwInvenX = (ptMousePos->x - (m_rcWindowSize.left + 8)) / 26; unsigned long dwInvenY = (ptMousePos->y - (m_rcWindowSize.top + 73)) / 26; // ¹°°Ç ¼¿·ºÆ® if(m_dwMarketOwnerID == g_ClientMain.m_dwMyChrID) { if(SelectItem()) { TakeType pTakeType; pTakeType.m_srcPos.m_cPos = ClientSocket::ItemPos_Stall; pTakeType.m_srcPos.m_cIndex = 0; pTakeType.m_dstPos = g_ClientMain.m_lpPickItem->m_lpItemBase->GetPos(); if(g_ClientMain.m_lpPickItem->GetIsEnableStack()) { pTakeType.m_cNum = g_ClientMain.m_lpPickItem->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); return TRUE; } __int64 ddItem; if(g_DeviceInput.GetIsLeftMouseDown() && g_ClientMain.m_lpPickItem && g_ClientMain.m_lpPickItem->GetItemPos() == ClientSocket::ItemPos_Inven) { if(g_DeviceInput.InRect(m_rcWindowSize.left + 8, m_rcWindowSize.top + 73, m_rcWindowSize.left + 215, m_rcWindowSize.top + 280)) // ±³È¯Ã¢ { if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 5, dwInvenX, dwInvenY, 0)) != ITEM_FAILED) { Item::ItemPos pItemIndex; pItemIndex.SetPos(dwInvenX, dwInvenY, 0); pItemIndex.m_cPos = ClientSocket::ItemPos_Stall; 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()) { return TRUE; } } // ¾ÆÀÌÅÛ À̵¿ // g_ClientMain.m_Network.SendTakeItem(g_ClientMain.m_lpPickItem, &pItemIndex, 1); CGUIMessageBox *lpMessageBox; lpMessageBox = new CGUIMessageBox; lpMessageBox->Create(g_StringTable.m_strString[590], MB_NUMBER | MB_YES | MB_NO | MB_EXIT); lpMessageBox->SetResult(&m_dwRegistItemResult); lpMessageBox->SetValue(&m_dwRegistItemValue); lpMessageBox->SetEnableEnter(FALSE); m_wItemIndex = pItemIndex.m_cIndex; m_dwRegistItemResult = 0; m_dwRegistItemValue = 0; } return TRUE; } } } } else { list::iterator it; for(it = g_ClientMain.m_csStatus.m_lstStreetTrade.begin(); it != g_ClientMain.m_csStatus.m_lstStreetTrade.end(); it++) { if(!g_ClientMain.m_lpPickItem && (g_DeviceInput.GetIsLeftMouseDown() || g_DeviceInput.GetIsRightMouseDown()) && (*it)->IsOverMouse()) { BOOL bPass = FALSE; if(g_ClientMain.m_csStatus.m_Info.Gold >= (*it)->m_lpItemBase->GetBuyPrice()) bPass = TRUE; if(bPass) { unsigned long dwNum; Item::ItemPos pItemIndex; FieldInstance pTradeItem; pTradeItem.m_dwInstanceID = 0; pTradeItem.m_dwOID = 0; pTradeItem.m_dwTypeID = (*it)->GetProtoTypeID(); pTradeItem.m_cNum = 1; dwNum = g_ClientMain.m_csStatus.GetAbleInven(&pTradeItem, pItemIndex, FALSE); if(dwNum) { if(g_DeviceInput.GetIsLeftMouseDown()) { CGUIMessageBox *lpMessageBox; char strMessage[MAX_PATH]; lpMessageBox = new CGUIMessageBox; m_dwBuyResult = 0; m_lpBuyItem = (*it); m_dwItemNumber = 0; if(m_lpBuyItem->GetIsEnableStack()) { strcpy(strMessage, g_StringTable.m_strString[254]); lpMessageBox->Create(strMessage, MB_NUMBER | MB_YES | MB_NO | MB_EXIT); lpMessageBox->SetValue(&m_dwItemNumber); } else { sprintf(strMessage, g_StringTable.m_strString[255], (*it)->m_lpItemBase->GetBuyPrice()); lpMessageBox->Create(strMessage, MB_YES | MB_NO | MB_EXIT); } lpMessageBox->SetResult(&m_dwBuyResult); } else if(g_DeviceInput.GetIsRightMouseDown()) { m_dwBuyResult = MB_YES; m_lpBuyItem = (*it); if(m_lpBuyItem->GetIsEnableStack()) { m_dwItemNumber = m_lpBuyItem->GetNowDurability(); } } } else { CGUIMessageBox *lpMessageBox; lpMessageBox = new CGUIMessageBox; lpMessageBox->Create(g_StringTable.m_strString[256]); } } else { CGUIMessageBox *lpMessageBox; lpMessageBox = new CGUIMessageBox; lpMessageBox->Create(g_StringTable.m_strString[252]); } return TRUE; } } } /////////////// ½ºÅ©·Ñ ºÎºÐ if(g_TextEdit.m_deqStallMessage.size() <= MAX_DRAWSTALLCHAT) m_lstScroll[0]->SetRange(0, 0); else m_lstScroll[0]->SetRange(0, g_TextEdit.m_deqStallMessage.size() - MAX_DRAWSTALLCHAT); m_lstScroll[0]->Update(); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// // äÆÃ if(g_TextEdit.m_dwEditMode == EDITMODE_STALL && GetAsyncKeyState(VK_RETURN)) { if(strcmp(g_TextEdit.GetMessage(), "")) { char strChat[MAX_PATH]; unsigned long dwTotalLength; strcpy(strChat, g_TextEdit.GetMessage()); dwTotalLength = strlen(strChat); if(g_ClientMain.m_dwInternationalCode || g_StringFilter.Filter(g_TextEdit.GetMessage())) { g_ClientMain.m_Network.SendChatMessage(NULL, g_TextEdit.GetMessage(), ClientSocket::ChatType_Stall); } else { g_ClientMain.m_Network.SendClientLog(1, g_TextEdit.GetMessage(), g_StringFilter.m_lpSearched); g_TextEdit.AddStallChatMessage(g_StringTable.m_strString[570], g_ClientMain.m_dwMyChrID, 129); } g_TextEdit.InitMessage(); } } if(!g_TextEdit.IsFocus()) { g_TextEdit.SetFocus(); g_TextEdit.m_dwEditMode = EDITMODE_STALL; g_TextEdit.InitMessage(); } if(m_ButtonManager.m_lstButton[0]->m_nState == BUTTON_CLICK) { m_ButtonManager.m_lstButton[0]->m_nState = BUTTON_NONE; ShowWindow(FALSE); } return TRUE; } void CHumanStreetStall::ShowWindow(BOOL bShow) { m_bShow = bShow; if(m_bShow) { InitValue(); } else { if(m_dwMarketOwnerID == g_ClientMain.m_dwMyChrID) { if(strcmp(m_strOwner, "")) { g_ClientMain.m_Network.m_pSocket->CharStallOpen(g_ClientMain.m_dwMyChrID, ""); } } else { if(strcmp(m_strOwner, "")) { g_ClientMain.m_Network.SendStallLeave(); } } strcpy(m_strMarketName, ""); strcpy(m_strOwner, ""); m_dwMarketOwnerID = 0; DeleteTradeItem(); g_TextEdit.DeleteStallMessage(); g_TextEdit.InitMessage(); g_TextEdit.m_dwEditMode = EDITMODE_CHAT; g_ClientMain.SetFocus(); } } void CHumanStreetStall::Render(LPDIRECT3DDEVICE8 lpD3DDevice) { m_lstSprite[0]->Render(lpD3DDevice, m_cAlpha); m_lstSprite[1]->Render(lpD3DDevice, m_cAlpha); list::iterator it; const Item::ItemInfo *lpItemInfo; for(it = g_ClientMain.m_csStatus.m_lstStreetTrade.begin(); it != g_ClientMain.m_csStatus.m_lstStreetTrade.end(); it++) { lpItemInfo = &(*it)->GetItemInfo(); (*it)->m_wPutX = m_rcWindowSize.left + 8 + 26 * (*it)->m_lpItemBase->GetPos().GetXIndex() + (((lpItemInfo->m_DetailData.m_cXSize * 26 - 1) - (*it)->m_lpSprite->GetSizeX()) / 2); (*it)->m_wPutY = m_rcWindowSize.top + 73 + 26 * (*it)->m_lpItemBase->GetPos().GetYIndex() + (((lpItemInfo->m_DetailData.m_cYSize * 26 - 1) - (*it)->m_lpSprite->GetSizeY()) / 2); (*it)->Render(lpD3DDevice); } if(g_ClientMain.m_lpPickItem && g_MessageBoxManager.m_lstMessageBox.empty()) { if(g_DeviceInput.InRect(m_rcWindowSize.left + 8, m_rcWindowSize.top + 73, m_rcWindowSize.left + 215, m_rcWindowSize.top + 280)) { Item::ItemPos pItemIndex; POINT *ptMousePos = g_DeviceInput.GetMousePosition(); pItemIndex.SetPos((ptMousePos->x - (m_rcWindowSize.left + 8)) / 26, (ptMousePos->y - (m_rcWindowSize.top + 73)) / 26, 0); __int64 ddItem; if((ddItem = g_ClientMain.m_csStatus.IsCheckItem(g_ClientMain.m_lpPickItem, 5, pItemIndex.GetXIndex(), pItemIndex.GetYIndex(), 0)) != ITEM_FAILED) { g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 8 + pItemIndex.GetXIndex() * 26, m_rcWindowSize.top + 73 + pItemIndex.GetYIndex() * 26, m_rcWindowSize.left + 8 + g_ClientMain.m_lpPickItem->GetItemInfo().m_DetailData.m_cXSize * 26 + pItemIndex.GetXIndex() * 26, m_rcWindowSize.top + 73 + 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() < 8 && g_ClientMain.m_lpPickItem->GetItemInfo().m_DetailData.m_cYSize + pItemIndex.GetYIndex() < 8) { g_ClientMain.m_lpCommonInterface->RenderRect(lpD3DDevice, m_rcWindowSize.left + 8 + pItemIndex.GetXIndex() * 26, m_rcWindowSize.top + 73 + pItemIndex.GetYIndex() * 26, m_rcWindowSize.left + 8 + g_ClientMain.m_lpPickItem->GetItemInfo().m_DetailData.m_cXSize * 26 + pItemIndex.GetXIndex() * 26, m_rcWindowSize.top + 73 + g_ClientMain.m_lpPickItem->GetItemInfo().m_DetailData.m_cYSize * 26 + pItemIndex.GetYIndex() * 26, 0xFFFF0000, 0x80); } } } } m_lstScroll[0]->Render(lpD3DDevice, m_cAlpha); RECT rcRect; if(strcmp(m_strOwner, "")) { // »óÁ¡ ÁÖÀÎ À̸§ SetRect(&rcRect, m_rcWindowSize.left + 66, m_rcWindowSize.top + 51, m_rcWindowSize.left + 213, m_rcWindowSize.top + 63); g_TextEdit.DrawText(m_strOwner, &rcRect, DT_VCENTER | DT_CENTER, D3DCOLOR_RGBA(255, 255, 255, 255)); } SetRect(&rcRect, m_rcWindowSize.left + 10, m_rcWindowSize.top + 295, m_rcWindowSize.left + 201, m_rcWindowSize.top + 295 + 15); for(int i = 0; i < MAX_DRAWSTALLCHAT; i++) { if(g_TextEdit.m_deqStallMessage.size() < i + 1) break; g_TextEdit.DrawText(g_TextEdit.m_deqStallMessage[i + g_TextEdit.m_dwStartStall]->strMessage, &rcRect, DT_LEFT | DT_VCENTER, g_TextEdit.m_deqStallMessage[i + g_TextEdit.m_dwStartStall]->dwColor); rcRect.top += 15; rcRect.bottom = rcRect.top + 15; } if(g_TextEdit.IsFocus() && g_TextEdit.m_dwEditMode == EDITMODE_STALL) { SetRect(&rcRect, m_rcWindowSize.left + 10, m_rcWindowSize.top + 456, m_rcWindowSize.left + 209, m_rcWindowSize.top + 468); if(g_ClientMain.m_bCursorToggle) { char strChat[MAX_PATH]; sprintf(strChat, "%s_", g_TextEdit.GetMessage()); g_TextEdit.DrawText(strChat, &rcRect, DT_LEFT | DT_VCENTER, D3DCOLOR_RGBA(255, 255, 255, 255)); } else { g_TextEdit.DrawText(g_TextEdit.GetMessage(), &rcRect, DT_LEFT | DT_VCENTER, D3DCOLOR_RGBA(255, 255, 255, 255)); } } m_ButtonManager.Render(lpD3DDevice); } void CHumanStreetStall::DeleteTradeItem() { for(int j = 0; j < 8; j++) { for(int i = 0; i < 8; i++) { g_ClientMain.m_csStatus.m_aryStreetTrade[j][i] = ITEM_EMPTY; } } list::iterator it; CItemInstance *lpDelete; for(it = g_ClientMain.m_csStatus.m_lstStreetTrade.begin(); it != g_ClientMain.m_csStatus.m_lstStreetTrade.end();) { lpDelete = (*it); it = g_ClientMain.m_csStatus.m_lstStreetTrade.erase(it); delete lpDelete; } g_ClientMain.m_csStatus.m_lstStreetTrade.clear(); } void CHumanStreetStall::InitStreetStall(unsigned long dwChrID, char *lpstrStreetName) { m_dwMarketOwnerID = dwChrID; if(m_dwMarketOwnerID == g_ClientMain.m_dwMyChrID) { if(!lpstrStreetName) { CGUIMessageBox *lpMessageBox = new CGUIMessageBox; lpMessageBox->Create(g_StringTable.m_strString[591], MB_STRING | MB_CONFIRM | MB_CANCEL | MB_EXIT); lpMessageBox->SetResult(&m_dwNameResult); lpMessageBox->SetValue((char *)&m_strMarketName); lpMessageBox->SetEnableEnter(FALSE); } else { strcpy(m_strOwner, lpstrStreetName); g_TextEdit.AddStallChatMessage(g_StringTable.m_strString[592], g_ClientMain.m_dwMyChrID, 128); g_TextEdit.AddStallChatMessage(g_StringTable.m_strString[593], g_ClientMain.m_dwMyChrID, 0); } } else { strcpy(m_strOwner, lpstrStreetName); char strText[MAX_PATH]; sprintf(strText, g_StringTable.m_strString[594], m_strOwner); g_TextEdit.AddStallChatMessage(strText, g_ClientMain.m_dwMyChrID, 128); g_TextEdit.AddStallChatMessage(g_StringTable.m_strString[595], g_ClientMain.m_dwMyChrID, 0); } if(lpstrStreetName) { if(strcmp(lpstrStreetName, "")) { g_TextEdit.m_dwEditMode = EDITMODE_STALL; g_TextEdit.InitMessage(); g_TextEdit.SetFocus(); } } } BOOL CHumanStreetStall::SelectItem() { BOOL bPickItem = FALSE; const Item::ItemInfo *lpItemInfo; ///// â°í ¾ÆÀÌÅÛ ¾÷µ¥ÀÌÆ® ¹× ¼±Åà list::iterator it; for(it = g_ClientMain.m_csStatus.m_lstStreetTrade.begin(); it != g_ClientMain.m_csStatus.m_lstStreetTrade.end();) { lpItemInfo = &(*it)->GetItemInfo(); (*it)->m_wPutX = m_rcWindowSize.left + 8 + 26 * (*it)->m_lpItemBase->GetPos().GetXIndex() + (((lpItemInfo->m_DetailData.m_cXSize * 26 - 1) - (*it)->m_lpSprite->GetSizeX()) / 2); (*it)->m_wPutY = m_rcWindowSize.top + 73 + 26 * (*it)->m_lpItemBase->GetPos().GetYIndex() + (((lpItemInfo->m_DetailData.m_cYSize * 26 - 1) - (*it)->m_lpSprite->GetSizeY()) / 2); if(!g_ClientMain.m_lpPickItem && g_DeviceInput.GetIsLeftMouseDown() && (*it)->IsOverMouse()) { g_ClientMain.SetPickItem((*it)); g_ClientMain.m_csStatus.CheckStreetTradeField(0, g_ClientMain.m_lpPickItem); it = g_ClientMain.m_csStatus.m_lstStreetTrade.erase(it); bPickItem = TRUE; } else { it++; } } if(bPickItem) { return TRUE; } return FALSE; }