ridemotorcycleinfo.cpp

来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 159 行

CPP
159
字号
//////////////////////////////////////////////////////////////////////////////// Filename    : RideMotorcycleInfo.cpp // Written By  : elca@ewestsoft.com// Description : //////////////////////////////////////////////////////////////////////////////#include "RideMotorcycleInfo.h"#include "SocketInputStream.h"#include "SocketOutputStream.h"//////////////////////////////////////////////////////////////////////////////// constructor//////////////////////////////////////////////////////////////////////////////RideMotorcycleInfo::RideMotorcycleInfo ()      throw (){	__BEGIN_TRY	m_ObjectID   = 0;	m_ItemType   = 0;	m_ListNum    = 0;	__END_CATCH}	//////////////////////////////////////////////////////////////////////////////// destructor//////////////////////////////////////////////////////////////////////////////RideMotorcycleInfo::~RideMotorcycleInfo ()     throw (){	__BEGIN_TRY	while ( !m_RideMotorcycleSlotInfoList.empty() ) 	{		RideMotorcycleSlotInfo * pRideMotorcycleSlotInfo = m_RideMotorcycleSlotInfoList.front();		SAFE_DELETE(pRideMotorcycleSlotInfo);		m_RideMotorcycleSlotInfoList.pop_front();	}	__END_CATCH}//////////////////////////////////////////////////////////////////////////////// 涝仿胶飘覆(滚欺)栏肺何磐 单捞鸥甫 佬绢辑 菩哦阑 檬扁拳茄促.//////////////////////////////////////////////////////////////////////////////void RideMotorcycleInfo::read ( SocketInputStream & iStream ) 	 throw ( ProtocolException , Error ){	__BEGIN_TRY		iStream.read( m_ObjectID );	iStream.read( m_ItemType );	BYTE optionSize;	iStream.read( optionSize );	for( int i = 0; i < optionSize; i++ ) 	{		OptionType_t optionType;		iStream.read( optionType );		addOptionType( optionType );	}	iStream.read( m_ListNum );	for( int i = 0; i < m_ListNum; i++ ) 	{		RideMotorcycleSlotInfo * pRideMotorcycleSlotInfo = new RideMotorcycleSlotInfo();		pRideMotorcycleSlotInfo->read( iStream );		m_RideMotorcycleSlotInfoList.push_back( pRideMotorcycleSlotInfo );	}	__END_CATCH}		    //////////////////////////////////////////////////////////////////////////////// 免仿胶飘覆(滚欺)栏肺 菩哦狼 官捞呈府 捞固瘤甫 焊辰促.//////////////////////////////////////////////////////////////////////////////void RideMotorcycleInfo::write ( SocketOutputStream & oStream )      const throw ( ProtocolException , Error ){	__BEGIN_TRY			oStream.write( m_ObjectID );	oStream.write( m_ItemType );	BYTE optionSize = m_OptionType.size();	oStream.write( optionSize );	list<OptionType_t>:: const_iterator iOption = m_OptionType.begin();    for (; iOption!= m_OptionType.end();iOption++) 	{		OptionType_t optionType = *iOption;		oStream.write( optionType );	}	oStream.write( m_ListNum );	list<RideMotorcycleSlotInfo*>:: const_iterator itr = m_RideMotorcycleSlotInfoList.begin();    for (;itr!= m_RideMotorcycleSlotInfoList.end(); itr++) 	{		(*itr)->write( oStream );	}	__END_CATCH}//////////////////////////////////////////////////////////////////////////////// getSize//////////////////////////////////////////////////////////////////////////////PacketSize_t RideMotorcycleInfo::getSize()	throw(){	PacketSize_t PacketSize = 0;	PacketSize += szObjectID;   // motorcycle object id	PacketSize += szItemType;   // motorcycle type	PacketSize += szBYTE + m_OptionType.size(); // motorcycle option type	PacketSize += szBYTE;       // number of item in motorcycle inventory	list<RideMotorcycleSlotInfo*>::const_iterator itr = m_RideMotorcycleSlotInfoList.begin();	for (; itr != m_RideMotorcycleSlotInfoList.end(); itr ++) 	{		PacketSize += (*itr)->getSize();	}	return PacketSize;}//////////////////////////////////////////////////////////////////////////////// get packet's debug string//////////////////////////////////////////////////////////////////////////////string RideMotorcycleInfo::toString () 	const throw (){	__BEGIN_TRY	StringStream msg;	msg << "RideMotorcycleInfo( "		<< "ObjectID : "    << (int)m_ObjectID		<< ",ItemType : "   << (int)m_ItemType		<< ",OptionTypeSize : " << (int)m_OptionType.size()		<< ",ListNum :"     << (int)m_ListNum 		<< ",ListSet( ";	list<RideMotorcycleSlotInfo*>::const_iterator itr = m_RideMotorcycleSlotInfoList.begin();	for (; itr!= m_RideMotorcycleSlotInfoList.end() ; itr++) 	{		msg << (*itr)->toString() << ",";	}	msg << ")";	return msg.toString();	__END_CATCH}

⌨️ 快捷键说明

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