// TempInventoryPage.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "CharTempInvenPage.h" #include "PacketManager.h" #include "GlobalFunctions.h" #include #include // CCharTempInvenPage ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CCharTempInvenPage, CPropertyPage) CCharTempInvenPage::CCharTempInvenPage() : CPropertyPage(CCharTempInvenPage::IDD) { } CCharTempInvenPage::~CCharTempInvenPage() { } void CCharTempInvenPage::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); DDX_Control(pDX, IDC_TEMPINVEN_LIST, m_ctrlTempInvenList); } BEGIN_MESSAGE_MAP(CCharTempInvenPage, CPropertyPage) ON_NOTIFY(NM_CLICK, IDC_TEMPINVEN_LIST, OnNMClickTempinvenList) ON_BN_CLICKED(IDC_TEMPINVENCLEAR_BTN, OnBnClickedTempinvenclearBtn) ON_BN_CLICKED(IDC_TEMPINVENLIST_TO_CLIP_BTN, OnBnClickedTempinvenlistToClipBtn) END_MESSAGE_MAP() // CCharTempInvenPage ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CCharTempInvenPage::OnInitDialog() { CPropertyPage::OnInitDialog(); m_ctrlTempInvenList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlTempInvenList.InsertColumn(0, GetLocalString("SERIAL"), LVCFMT_LEFT, 130); m_ctrlTempInvenList.InsertColumn(1, GetLocalString("ITEM_NAME"), LVCFMT_LEFT, 130); m_ctrlTempInvenList.InsertColumn(2, GetLocalString("ITEM_TYPE"), LVCFMT_LEFT, 85); m_ctrlTempInvenList.InsertColumn(3, GetLocalString("STACK_ORDER"), LVCFMT_LEFT, 50); m_ctrlTempInvenList.InsertColumn(4, GetLocalString("QTY"), LVCFMT_LEFT, 50); SetUIString(this->m_hWnd, IDC_TEMPINVENPAGE_01, "IDC_TEMPINVENPAGE_01"); SetUIString(this->m_hWnd, IDC_TEMPINVENCLEAR_BTN, "IDC_TEMPINVENCLEAR_BTN"); SetUIString(this->m_hWnd, IDC_TEMPINVENLIST_TO_CLIP_BTN, "IDC_TEMPINVENLIST_TO_CLIP_BTN"); return TRUE; } bool CCharTempInvenPage::SetTempInvenPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter) { if((0 != dwDocKey) && (NULL != lpModifyCharacter)) { m_dwDocKey = dwDocKey; m_lpTempInvenPageInfo = lpModifyCharacter; GetDlgItem(IDC_TEMPINVENCLEAR_BTN)->EnableWindow(true); return true; } else { ERRLOG0(g_Log, "Àӽà Àκ¥ ÆäÀÌÁö µ¥ÀÌÅÍ ¼ÂÆÃ ½ÇÆÐ"); return false; } } void CCharTempInvenPage::SetTempInvenPage(CModifyCharacter* lpModifyCharacter) { if(NULL == lpModifyCharacter) { ERRLOG0(g_Log, "ij¸¯ÅÍ ¼¼¼Ç ¾ò±â ½ÇÆÐ"); return; } m_ctrlTempInvenList.DeleteAllItems(); Item::CTempInvenContainer& lpTempInventory = lpModifyCharacter->GetTempInven(); Item::CTempInvenContainer::iterator itrCursor = lpTempInventory.begin(); Item::CTempInvenContainer::iterator itrEnd = lpTempInventory.end(); Item::CItem* lpItem = NULL; unsigned int nStackOrder = 1; while(itrEnd != itrCursor) { lpItem = (*itrCursor); if(NULL != lpItem) { CString strFormat; const Item::ItemInfo& ItemInfo = lpItem->GetItemInfo(); strFormat.Format(_T("0x%016I64X"), lpItem->GetUID()); m_ctrlTempInvenList.InsertItem(0, strFormat); strFormat.Format(_T("%s"), ItemInfo.m_SpriteData.m_szName); m_ctrlTempInvenList.SetItemText(0, 1, strFormat); strFormat.Format(_T("%s"), lpItem->GetItemTypeName()); m_ctrlTempInvenList.SetItemText(0, 2, strFormat); strFormat.Format(_T("%d"), nStackOrder); m_ctrlTempInvenList.SetItemText(0, 3, strFormat); strFormat.Format(_T("%d"), lpItem->GetNumOrDurability()); m_ctrlTempInvenList.SetItemText(0, 4, strFormat); // Áߺ¹ ½Ã¸®¾ó ¾ÆÀÌÅÛ °Ë»ç std::pair returnPair = lpModifyCharacter->m_ModifyCharItemSerialInfo.insert(lpItem->GetUID()); if(!returnPair.second) { lpModifyCharacter->m_OverlapSerialInfo.push_back(lpItem->GetUID()); lpModifyCharacter->SetOwnCopyItemState(true); } } ++itrCursor; ++nStackOrder; } } void CCharTempInvenPage::OnNMClickTempinvenList(NMHDR *pNMHDR, LRESULT *pResult) { if(g_bItemGrab) { g_stMyItemInfo.m_stItemInfo.m_cTakePos = TakeType::TS_TEMPINVEN; g_stMyItemInfo.m_stItemInfo.m_cXPos = 0; g_stMyItemInfo.m_stItemInfo.m_cYPos = 0; g_stMyItemInfo.m_stItemInfo.m_cZPos = 0; CPacketMgr::GetInstance()->SendCreateItem(m_lpTempInvenPageInfo->GetServerGroup(), m_lpTempInvenPageInfo->GetCID(), m_lpTempInvenPageInfo->GetUID(), m_dwDocKey, g_stMyItemInfo.m_stItemInfo); if(g_stMyItemInfo.m_nModeIndex == MyItemInfo::CREATE_SINGLE) { g_bItemGrab = FALSE; } } *pResult = 0; } void CCharTempInvenPage::OnBnClickedTempinvenclearBtn() { CPacketMgr::GetInstance()->SendItemContainerReset(m_lpTempInvenPageInfo->GetServerGroup(), m_lpTempInvenPageInfo->GetUID(), m_lpTempInvenPageInfo->GetCID(), m_dwDocKey, TakeType::TS_TEMPINVEN); } void CCharTempInvenPage::OnBnClickedTempinvenlistToClipBtn() { ClippingListCtrl(m_ctrlTempInvenList, 5, true); }