// CharExtraItem.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "CharExtraItemPage.h" #include "PacketManager.h" #include "GlobalFunctions.h" #include #include // CCharExtraItemPage ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CCharExtraItemPage, CPropertyPage) CCharExtraItemPage::CCharExtraItemPage() : CPropertyPage(CCharExtraItemPage::IDD) { } CCharExtraItemPage::~CCharExtraItemPage() { } void CCharExtraItemPage::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); DDX_Control(pDX, IDC_EXTRAITEM_LIST, m_ctrlExtraItemList); } BEGIN_MESSAGE_MAP(CCharExtraItemPage, CPropertyPage) ON_BN_CLICKED(IDC_EXTRAITEM_DEFAULTING_BTN, OnBnClickedExtraitemDefaultingBtn) ON_BN_CLICKED(IDC_EXTRAPAGE_CLIPPING_BTN, OnBnClickedExtrapageClippingBtn) END_MESSAGE_MAP() // CCharExtraItemPage ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CCharExtraItemPage::OnInitDialog() { CPropertyPage::OnInitDialog(); m_ctrlExtraItemList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlExtraItemList.InsertColumn(0, GetLocalString("ADDED_STRING_070"), LVCFMT_LEFT, 130); m_ctrlExtraItemList.InsertColumn(1, GetLocalString("ITEM_NAME"), LVCFMT_LEFT, 140); m_ctrlExtraItemList.InsertColumn(2, GetLocalString("ITEM_TYPE"), LVCFMT_LEFT, 130); m_ctrlExtraItemList.InsertColumn(3, GetLocalString("POS"), LVCFMT_LEFT, 190); SetUIString(this->m_hWnd, IDC_EXTRAPAGE_01, "IDC_EXTRAPAGE_01"); SetUIString(this->m_hWnd, IDC_EXTRAITEM_DEFAULTING_BTN, "IDC_EXTRAITEM_DEFAULTING_BTN"); SetUIString(this->m_hWnd, IDC_EXTRAPAGE_CLIPPING_BTN, "IDC_EXTRAPAGE_CLIPPING_BTN"); return TRUE; } bool CCharExtraItemPage::SetExtraItemPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter) { if((0 != dwDocKey) && (NULL != lpModifyCharacter)) { m_lpModifyCharacter = lpModifyCharacter; m_dwDocKey = dwDocKey; GetDlgItem(IDC_EXTRAITEM_DEFAULTING_BTN)->EnableWindow(true); return true; } return false; } void CCharExtraItemPage::SetExtraItemPage(CModifyCharacter* lpModifyCharacter) { if(NULL == lpModifyCharacter) { return; } Item::CListContainer& Extra = lpModifyCharacter->GetExtra(); Item::CListContainer::iterator itrCursor = Extra.begin(); Item::CListContainer::iterator itrEnd = Extra.end(); m_ctrlExtraItemList.DeleteAllItems(); Item::CItem* lpItem = NULL; while(itrEnd != itrCursor) { lpItem = (*itrCursor); if(NULL != lpItem) { CString strFormat; const Item::ItemInfo& ItemInfo = lpItem->GetItemInfo(); strFormat.Format(_T("0x%016I64X"), lpItem->GetUID()); m_ctrlExtraItemList.InsertItem(0, strFormat); strFormat.Format(_T("%s"), lpItem->GetItemTypeName()); m_ctrlExtraItemList.SetItemText(0, 1, strFormat); strFormat.Format(_T("%s"), ItemInfo.m_SpriteData.m_szName); m_ctrlExtraItemList.SetItemText(0, 2, strFormat); m_ctrlExtraItemList.SetItemText(0, 3, GetExtraSpacePosString((unsigned char)lpItem->GetPos().m_cIndex)); // Áߺ¹ ½Ã¸®¾ó ¾ÆÀÌÅÛ °Ë»ç std::pair returnPair = lpModifyCharacter->m_ModifyCharItemSerialInfo.insert(lpItem->GetUID()); if(!returnPair.second) { lpModifyCharacter->m_OverlapSerialInfo.push_back(lpItem->GetUID()); lpModifyCharacter->SetOwnCopyItemState(true); } } ++itrCursor; } } void CCharExtraItemPage::OnBnClickedExtraitemDefaultingBtn() { CPacketMgr::GetInstance()->SendItemContainerReset(m_lpModifyCharacter->GetServerGroup(), m_lpModifyCharacter->GetUID(), m_lpModifyCharacter->GetCID(), m_dwDocKey, TakeType::TS_EXTRA); } void CCharExtraItemPage::OnBnClickedExtrapageClippingBtn() { ClippingListCtrl(m_ctrlExtraItemList, 4, true); }