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

📄 rankbonusinfo.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : RankBonusInfo.cpp// Written By  : beowulf// Description : //////////////////////////////////////////////////////////////////////////////#include "RankBonusInfo.h"#include "Assert.h"#include "DB.h"#include <algo.h>//////////////////////////////////////////////////////////////////////////////// class RankBonusInfo member methods//////////////////////////////////////////////////////////////////////////////RankBonusInfo::RankBonusInfo(){	__BEGIN_TRY	__END_CATCH}RankBonusInfo::~RankBonusInfo(){	__BEGIN_TRY	__END_CATCH}string RankBonusInfo::toString() const{	__BEGIN_TRY		StringStream msg;	msg << "RankBonusInfo ("		<< "Type:"			<< (int)m_Type		<< ",Name:"			<< m_Name		<< ",Rank:"			<< m_Rank		<< ",Point:"		<< m_Point		<< ")";	return msg.toString();	__END_CATCH}//////////////////////////////////////////////////////////////////////////////// class RankBonusInfoManager member methods//////////////////////////////////////////////////////////////////////////////RankBonusInfoManager::RankBonusInfoManager()	throw(){	__BEGIN_TRY	m_Count = 0;	m_RankBonusInfoList = NULL;	__END_CATCH}RankBonusInfoManager::~RankBonusInfoManager()	throw(){	__BEGIN_TRY	SAFE_DELETE_ARRAY(m_RankBonusInfoList);	__END_CATCH}void RankBonusInfoManager::init()	throw(Error){	__BEGIN_TRY	load();	__END_CATCH}void RankBonusInfoManager::clear()	throw(){	__BEGIN_TRY		if ( m_RankBonusInfoList != NULL )	{		for ( uint i = 0; i < m_Count; i++ )		{			if ( m_RankBonusInfoList[i] != NULL )				SAFE_DELETE( m_RankBonusInfoList[i] );		}	}	SAFE_DELETE_ARRAY( m_RankBonusInfoList );	__END_CATCH}void RankBonusInfoManager::load()	throw(Error){	__BEGIN_TRY	__BEGIN_DEBUG	clear();	Statement* pStmt    = NULL;	Result*    pResult  = NULL;		BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		pResult = pStmt->executeQuery("SELECT MAX(Type) FROM RankBonusInfo");		if (pResult->getRowCount() == 0)		{			SAFE_DELETE(pStmt);			throw Error ("There is no data in RankBonusInfo Table");		}		pResult->next();		m_Count = pResult->getInt(1) + 1;		Assert (m_Count > 0);		m_RankBonusInfoList = new RankBonusInfo* [m_Count];		for (uint i=0 ; i < m_Count; i++)			m_RankBonusInfoList[i] = NULL;		pResult = pStmt->executeQuery("SELECT Type, Name, Rank, Point, Race FROM RankBonusInfo");		while (pResult->next()) 		{			RankBonusInfo* pRankBonusInfo = new RankBonusInfo();			int i = 0;			pRankBonusInfo->setType( pResult->getInt(++i) );			pRankBonusInfo->setName( pResult->getString(++i) );			pRankBonusInfo->setRank( pResult->getInt(++i) );			pRankBonusInfo->setPoint( pResult->getInt(++i) );			pRankBonusInfo->setRace( pResult->getInt(++i) );			addRankBonusInfo(pRankBonusInfo);		}				SAFE_DELETE(pStmt);	}	END_DB(pStmt)	__END_DEBUG	__END_CATCH}void RankBonusInfoManager::save()	throw(Error){	__BEGIN_TRY	throw UnsupportedError ();		__END_CATCH}RankBonusInfo* RankBonusInfoManager::getRankBonusInfo( DWORD rankBonusType ) const	throw( NoSuchElementException, OutOfBoundException, Error ){	__BEGIN_TRY	if ( rankBonusType >= m_Count )	{		cerr << "RankBonusInfoManager::getRankBonusInfo() : out of bound" << endl;		throw OutOfBoundException();	}	if ( m_RankBonusInfoList[rankBonusType] == NULL )	{		cerr << "RankBonusInfoManager::getRankBonusInfo() : no such element" << endl;		throw NoSuchElementException();	}	return m_RankBonusInfoList[rankBonusType];	__END_CATCH}void RankBonusInfoManager::addRankBonusInfo(RankBonusInfo* pRankBonusInfo)	throw(DuplicatedException, Error){	__BEGIN_TRY  	Assert (pRankBonusInfo != NULL);	if (m_RankBonusInfoList[pRankBonusInfo->getType()] != NULL)		throw DuplicatedException ();	m_RankBonusInfoList[pRankBonusInfo->getType()] = pRankBonusInfo;	__END_CATCH}string RankBonusInfoManager::toString() const	throw(){	__BEGIN_TRY	StringStream msg;	msg << "RankBonusInfoManager(\n";	for (int i = 0 ; i < (int)m_Count ; i ++)	{		msg << "RankBonusInfos[" << i << "] == ";		msg	<< (m_RankBonusInfoList[i] == NULL ? "NULL" : m_RankBonusInfoList[i]->getName());		msg << "\n";		if (m_RankBonusInfoList[i] != NULL) {			msg << m_RankBonusInfoList[i]->toString() << "\n";		}	}	return msg.toString();	__END_CATCH}// Global Variable definitionRankBonusInfoManager* g_pRankBonusInfoManager = NULL;

⌨️ 快捷键说明

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