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

📄 skillparentinfo.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//----------------------------------------------------------------------//// Filename    : SkillParentInfo.cpp// Written By  : Reiot// Description :////----------------------------------------------------------------------#include "SkillParentInfo.h"#include "DB.h"#include "Assert.h"#include <algo.h>//----------------------------------------------------------------------//// constructor////----------------------------------------------------------------------SkillParentInfo::SkillParentInfo (SkillType_t SkillType) 	throw () : m_SkillType(SkillType){	__BEGIN_TRY	init();	__END_CATCH}//----------------------------------------------------------------------//// destructor////----------------------------------------------------------------------SkillParentInfo::~SkillParentInfo ()     throw (){	__BEGIN_TRY	__END_CATCH}//----------------------------------------------------------------------//// SkillParentInfo::init()////----------------------------------------------------------------------void SkillParentInfo::init ()	throw (Error){	__BEGIN_TRY	__END_CATCH}//----------------------------------------------------------------------//// SkillParentInfo::hasParent()//// 漂沥 鸥涝阑 啊瘤绰 何葛啊 乐绰瘤 犬牢茄促.////----------------------------------------------------------------------bool SkillParentInfo::hasParent (SkillType_t SkillType)	throw (NoSuchElementException , Error){	__BEGIN_TRY	try 	{		SkillType_t FirstType = m_Parents.front();		if (FirstType == 0) return true;		list<SkillType_t>::iterator itr = find(m_Parents.begin(), m_Parents.end() , SkillType);		if (itr == m_Parents.end()) return false;		return true;	}	catch(Throwable & t) 	{		//cerr << t.toString() << endl;	}	return false;	__END_CATCH}//----------------------------------------------------------------------// 利 府胶飘狼 漂沥 困摹狼 农府贸狼 酒捞叼甫 府畔茄促.//----------------------------------------------------------------------SkillType_t SkillParentInfo::getParents (SkillType_t SkillType) const	throw (NoSuchElementException , Error){	__BEGIN_TRY	for (list<SkillType_t>::const_iterator itr = m_Parents.begin() ; itr != m_Parents.end() ; itr ++) 	{		if (SkillType == (*itr)) return *itr;	}	cerr << "SkillParentInfo::getParents() : NoSuchElementException" << endl;	throw NoSuchElementException();	__END_CATCH}//----------------------------------------------------------------------// get debug string//----------------------------------------------------------------------string SkillParentInfo::toString () const	throw (){	__BEGIN_TRY	StringStream msg;	msg << "SkillParentInfo("			<< "SkillType:" << (int)m_SkillType			<< ",Parents(";	for (list<SkillType_t>::const_iterator i = m_Parents.begin(); i != m_Parents.end(); i++)	{		msg << (int)(*i) << " ";	}	msg << ")";	msg << ")";	return msg.toString();	__END_CATCH}//--------------------------------------------------------------------//// constructor////--------------------------------------------------------------------SkillParentInfoManager::SkillParentInfoManager()	throw(): m_SkillCount(0), m_SkillParentInfoList(NULL){	__BEGIN_TRY	__END_CATCH}//--------------------------------------------------------------------//// destructor////--------------------------------------------------------------------SkillParentInfoManager::~SkillParentInfoManager()	throw(){	__BEGIN_TRY	// 代 瘤奎澜嫡 -_-; by sigi	SAFE_DELETE_ARRAY(m_SkillParentInfoList);		__END_CATCH}//--------------------------------------------------------------------//// SkillParentInfoManager:: init()////--------------------------------------------------------------------void SkillParentInfoManager::init()	throw(Error){	__BEGIN_TRY	// Loading from DataBase and addSkillParentInfo	load();	__END_CATCH}//--------------------------------------------------------------------//// SkillParentInfoManager:: load()////--------------------------------------------------------------------void SkillParentInfoManager::load()	throw(Error){	__BEGIN_TRY	__BEGIN_DEBUG    Statement  * pStmt = NULL;	// by sigi    Result     * pResult;	BEGIN_DB	{		pStmt   = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		pResult = pStmt->executeQuery("SELECT MAX(SkillType) FROM SkillTreeInfo");		if (pResult -> getRowCount() == 0)		{			SAFE_DELETE(pStmt);			throw Error ("There is no data in SkillTreeInfo Table");		}		pResult->next();		m_SkillCount = pResult->getInt(1) +1;		Assert (m_SkillCount > 0);		m_SkillParentInfoList = new SkillParentInfo* [m_SkillCount];		for (uint i = 0 ; i < m_SkillCount ; i ++)			m_SkillParentInfoList[i] = NULL;				pResult = pStmt->executeQuery("SELECT SkillType, Parent FROM SkillTreeInfo ");		//cout<<"======= SkillParentInfo Manager ==========="<<endl;			SkillType_t tempSkillType = 0;		while (pResult->next()) 		{			int         i         = 0;			SkillType_t SkillType = pResult->getInt(++i);			if (tempSkillType != SkillType) 			{				SkillParentInfo* pSkillParentInfo = new SkillParentInfo (SkillType);				pSkillParentInfo->addParents(pResult->getInt(++i));				addSkillParentInfo(pSkillParentInfo);				tempSkillType = SkillType;			} 			else 			{				m_SkillParentInfoList[ SkillType ]->addParents(pResult->getInt(++i));			}		}		//for (uint i = 0; i < m_SkillCount; i++) 		//{		//	if (m_SkillParentInfoList[ i ] != NULL) 		//		//cout<< m_SkillParentInfoList[ i ]->toString()<<endl;		//}		SAFE_DELETE(pStmt);	}	END_DB(pStmt)	__END_DEBUG	__END_CATCH}//--------------------------------------------------------------------//// SkillParentInfoManager:: save()////--------------------------------------------------------------------void SkillParentInfoManager::save()	throw(Error){	__BEGIN_TRY	throw UnsupportedError ();		__END_CATCH}//--------------------------------------------------------------------//// SkillParentInfoManager:: addSkillParentInfo()////--------------------------------------------------------------------void SkillParentInfoManager::addSkillParentInfo(SkillParentInfo* pSkillParentInfo)	throw(DuplicatedException, Error){	__BEGIN_TRY  	Assert (pSkillParentInfo != NULL);	if (m_SkillParentInfoList[pSkillParentInfo->getSkillType()] != NULL)		throw DuplicatedException ();	m_SkillParentInfoList[pSkillParentInfo->getSkillType()] = pSkillParentInfo;		__END_CATCH}//--------------------------------------------------------------------//// SkillParentInfoManager:: getSkillParentInfo()////--------------------------------------------------------------------SkillParentInfo* SkillParentInfoManager::getSkillParentInfo(SkillType_t SkillType)	const throw(NoSuchElementException , OutOfBoundException, Error){	__BEGIN_TRY	if (SkillType >= m_SkillCount)	{		cerr << "SkillParentInfoManager::getSkillParentInfo() : out of bounds" << endl;		throw OutOfBoundException ();	}	if (m_SkillParentInfoList[SkillType] == NULL)	{		cerr << "SkillParentInfoManager::getSkillParentInfo() : NoSuchElementException" << endl;		throw NoSuchElementException ();	}	return m_SkillParentInfoList[SkillType];		__END_CATCH}//--------------------------------------------------------------------//// SkillParentInfoManager:: toString()////--------------------------------------------------------------------string SkillParentInfoManager::toString() const	throw(){	__BEGIN_TRY	StringStream msg;	msg << "SkillParentInfoManager(";	for (uint i = 0 ; i < m_SkillCount ; i ++) 	{		if (m_SkillParentInfoList[i] != NULL)		{			msg << m_SkillParentInfoList[i]->toString();		}		else 		{			msg << "NULL" ;		}	}	msg << ")";	return msg.toString();	__END_CATCH}// Global Variable definitionSkillParentInfoManager* g_pSkillParentInfoManager = NULL;

⌨️ 快捷键说明

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