⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changemanager.cpp

📁 墨香最新私服
💻 CPP
字号:
#include "stdafx.h"
#include "ChangeValue.h"
#include "ChangeManager.h"
#include "BaseDoc.h"

CChangeManager::CChangeManager()
{	
	m_pChangeEditInfo	= NULL;
	m_pChangeBtnInfo	= NULL;

	m_pDocument			= NULL;
}

CChangeManager::~CChangeManager()
{
	DeleteAll();
	SAFE_DELETE(m_pChangeEditInfo);
	SAFE_DELETE(m_pChangeBtnInfo);
}

void CChangeManager::Init(CBaseDoc* pDoc)
{
	m_pChangeEditInfo = new CYHHashTable<CChangeValue>;
	m_pChangeEditInfo->Initialize(2000);

	m_pChangeBtnInfo = new CYHHashTable<CChangeValue>;
	m_pChangeBtnInfo->Initialize(2000);

	m_ChangePosition.Initialize( 1000 );

	m_pDocument = pDoc;
}

/* ID´Â ¼öÁ¤ ÄÁÆ®·Ñ ¾ÆÀ̵𸦠»ç¿ëÇÑ´Ù. */
void CChangeManager::Add(CChangeValue* info, DWORD Idx, BOOL bEdit)
{
	if( bEdit ) // Control ID
		m_pChangeEditInfo->Add( info, Idx );
	else // 
		m_pChangeBtnInfo->Add( info, Idx );
}

void CChangeManager::AddPositionTable( CChangeValue* pInfo, DWORD dwItemDBIdx )
{
	m_ChangePosition.Add( pInfo, dwItemDBIdx );
}

void CChangeManager::Delete(DWORD Idx, BOOL bEdit)
{
	CChangeValue* pValue;

	if(bEdit)
	{
		pValue = m_pChangeEditInfo->GetData(Idx);

		SAFE_DELETE(pValue);
		m_pChangeEditInfo->Remove(Idx);
	}
	else
	{
		pValue = m_pChangeBtnInfo->GetData(Idx);

		SAFE_DELETE(pValue);
		m_pChangeBtnInfo->Remove(Idx);
	}
}


void CChangeManager::DeleteAll()
{
	CChangeValue* pValue;

	m_pChangeEditInfo->SetPositionHead();
	while( pValue = m_pChangeEditInfo->GetData() )
		delete pValue;
	m_pChangeEditInfo->RemoveAll();

	m_pChangeBtnInfo->SetPositionHead();
	while( pValue = m_pChangeBtnInfo->GetData() )
		delete pValue;
	m_pChangeBtnInfo->RemoveAll();

	m_ChangePosition.SetPositionHead();
	while( pValue = m_ChangePosition.GetData() )
		delete pValue;
	m_ChangePosition.RemoveAll();
}

CChangeValue* CChangeManager::ExistChangeInfo(DWORD Idx, BOOL bEdit)
{
	if( bEdit )
		return m_pChangeEditInfo->GetData( Idx );
	else
		return m_pChangeBtnInfo->GetData( Idx );
}


void CChangeManager::ProcessList()
{
	CChangeValue* pValue;

	m_pChangeEditInfo->SetPositionHead();
	while( pValue = m_pChangeEditInfo->GetData() )
	{
		// º¯°æ »çÇ×À» Àû¿ëÇÑ´Ù.
		m_pDocument->UpdateData( MAKEWPARAM(pValue->GetTableKind(), pValue->GetDataPos()) );
		pValue->ApplyChangeValue(m_pDocument);
	}

	m_pChangeBtnInfo->SetPositionHead();
	while( pValue = m_pChangeBtnInfo->GetData() )
	{
		// º¯°æ »çÇ×À» Àû¿ëÇÑ´Ù.
		pValue->ApplyChangeValue(m_pDocument);
	}

	m_ChangePosition.SetPositionHead();
	while( pValue = m_ChangePosition.GetData() )
	{
		pValue->ApplyChangeValue( m_pDocument );
	}

	DeleteAll();
	
	m_pDocument->SaveData();
}

TABLE_KIND CChangeManager::GetTableKind_ByField(INFOFIELD field)
{
	switch(field)
	{
	case eIF_INVENTORY:
	case eIF_WEAR:
		return eTK_InventoryItem;
	case eIF_PHYOGUK:
		return eTK_PyogukItem;
	case eIF_MUGONG:
	case eIF_JINBUB:
		return eTK_MugongInfo;
	case eIF_MUNPA:
		return eTK_MunpaItem;
	}
	return eTK_None;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -