📄 gcgoodslist.cpp
字号:
//////////////////////////////////////////////////////////////////////////////// Filename : GCGoodsList.cpp // Written By : 辫己刮// Description : //////////////////////////////////////////////////////////////////////////////#include "GCGoodsList.h"#include "Assert.h"#ifdef __GAME_SERVER__ #include "Item.h" #include "ItemInfoManager.h" #include "Inventory.h" #include "AR.h" #include "SR.h" #include "SG.h" #include "SMG.h" #include "Belt.h"#endif//////////////////////////////////////////////////////////////////////////////// constructor//////////////////////////////////////////////////////////////////////////////GCGoodsList::GCGoodsList() throw (){ __BEGIN_TRY m_GoodsList.clear(); __END_CATCH}//////////////////////////////////////////////////////////////////////////////// destructor//////////////////////////////////////////////////////////////////////////////GCGoodsList::~GCGoodsList() throw (){ __BEGIN_TRY list<GoodsInfo*>::iterator itr = m_GoodsList.begin(); list<GoodsInfo*>::iterator endItr = m_GoodsList.end(); for ( ; itr != endItr ; ++itr ) { if ( *itr != NULL ) SAFE_DELETE(*itr); } m_GoodsList.clear(); __END_CATCH}//////////////////////////////////////////////////////////////////////////////// 涝仿胶飘覆(滚欺)栏肺何磐 单捞鸥甫 佬绢辑 菩哦阑 檬扁拳茄促.//////////////////////////////////////////////////////////////////////////////void GCGoodsList::read ( SocketInputStream & iStream ) throw ( ProtocolException , Error ){ __BEGIN_TRY BYTE totalNum; iStream.read( totalNum ); if ( totalNum > MAX_GOODS_LIST ) throw DisconnectException("GCGoodsList : 拱扒 俺荐啊 力茄阑 檬苞沁嚼聪促."); for ( int i=0; i < totalNum ; ++i ) { GoodsInfo* pGI = new GoodsInfo; iStream.read( pGI->objectID ); iStream.read( pGI->itemClass ); iStream.read( pGI->itemType ); iStream.read( pGI->grade ); BYTE optionNum; iStream.read( optionNum ); pGI->optionType.clear(); for ( int j=0; j < optionNum ; ++j ) { OptionType_t optionType; iStream.read( optionType ); pGI->optionType.push_back( optionType ); } iStream.read( pGI->num ); iStream.read( pGI->timeLimit ); addGoodsInfo( pGI ); } __END_CATCH} //////////////////////////////////////////////////////////////////////////////// 免仿胶飘覆(滚欺)栏肺 菩哦狼 官捞呈府 捞固瘤甫 焊辰促.//////////////////////////////////////////////////////////////////////////////void GCGoodsList::write ( SocketOutputStream & oStream ) const throw ( ProtocolException , Error ){ __BEGIN_TRY __BEGIN_DEBUG BYTE totalNum = m_GoodsList.size(); if ( totalNum > MAX_GOODS_LIST ) throw DisconnectException("GCGoodsList : 酒捞袍 俺荐啊 撇妨冈菌嚼聪促."); oStream.write( totalNum ); list<GoodsInfo*>::const_iterator itr = m_GoodsList.begin(); list<GoodsInfo*>::const_iterator endItr = m_GoodsList.end(); for ( ; itr != endItr ; ++itr ) { GoodsInfo* pGI = *itr; Assert( pGI != NULL ); oStream.write( pGI->objectID ); oStream.write( pGI->itemClass ); oStream.write( pGI->itemType ); oStream.write( pGI->grade ); BYTE optionNum = pGI->optionType.size(); oStream.write( optionNum ); list<OptionType_t>::const_iterator oitr = pGI->optionType.begin(); list<OptionType_t>::const_iterator endoItr = pGI->optionType.end(); for ( ; oitr != endoItr ; ++oitr ) { oStream.write( *oitr ); } oStream.write( pGI->num ); oStream.write( pGI->timeLimit ); } __END_DEBUG __END_CATCH}//////////////////////////////////////////////////////////////////////////////// execute packet's handler//////////////////////////////////////////////////////////////////////////////void GCGoodsList::execute ( Player * pPlayer ) throw ( ProtocolException , Error ){ __BEGIN_TRY __BEGIN_DEBUG GCGoodsListHandler::execute( this , pPlayer ); __END_DEBUG __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////PacketSize_t GCGoodsList::getPacketSize () const throw (){ __BEGIN_TRY __BEGIN_DEBUG PacketSize_t size = szBYTE; list<GoodsInfo*>::const_iterator itr = m_GoodsList.begin(); list<GoodsInfo*>::const_iterator endItr = m_GoodsList.end(); for ( ; itr != endItr ; ++itr ) { size += (*itr)->getPacketSize(); } return size; __END_DEBUG __END_CATCH}//////////////////////////////////////////////////////////////////////////////// get packet's debug string//////////////////////////////////////////////////////////////////////////////string GCGoodsList::toString () const throw (){ __BEGIN_TRY StringStream msg; msg << "GCGoodsList("; list<GoodsInfo*>::const_iterator itr = m_GoodsList.begin(); list<GoodsInfo*>::const_iterator endItr = m_GoodsList.end(); for ( ; itr != endItr ; ++itr ) { msg << (*itr)->toString(); } msg << ")"; return msg.toString(); __END_CATCH}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -