ComsAddPlayerMessage.cpp

Go to the documentation of this file.
00001 ////////////////////////////////////////////////////////////////////////////////
00002 //    Scorched3D (c) 2000-2009
00003 //
00004 //    This file is part of Scorched3D.
00005 //
00006 //    Scorched3D is free software; you can redistribute it and/or modify
00007 //    it under the terms of the GNU General Public License as published by
00008 //    the Free Software Foundation; either version 2 of the License, or
00009 //    (at your option) any later version.
00010 //
00011 //    Scorched3D is distributed in the hope that it will be useful,
00012 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 //    GNU General Public License for more details.
00015 //
00016 //    You should have received a copy of the GNU General Public License
00017 //    along with Scorched3D; if not, write to the Free Software
00018 //    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 ////////////////////////////////////////////////////////////////////////////////
00020 
00021 #include <coms/ComsAddPlayerMessage.h>
00022 
00023 ComsAddPlayerMessage::ComsAddPlayerMessage() :
00024         ComsMessage("ComsAddPlayerMessage")
00025 {
00026 }
00027 
00028 ComsAddPlayerMessage::ComsAddPlayerMessage(
00029                 unsigned int playerId,
00030                 const LangString &playerName,
00031                 Vector playerColor,
00032                 const char *modelName,
00033                 const char *typeName,
00034                 unsigned int destinationId,
00035                 unsigned int playerTeam,
00036                 const char *playerType) :
00037         ComsMessage("ComsAddPlayerMessage"),
00038         playerId_(playerId),
00039         playerName_(playerName),
00040         playerType_(playerType),
00041         playerColor_(playerColor),
00042         modelName_(modelName),
00043         typeName_(typeName),
00044         destinationId_(destinationId),
00045         playerTeam_(playerTeam)
00046 {
00047 }
00048 
00049 ComsAddPlayerMessage::~ComsAddPlayerMessage()
00050 {
00051 }
00052 
00053 bool ComsAddPlayerMessage::writeMessage(NetBuffer &buffer)
00054 {
00055         buffer.addToBuffer(playerName_);
00056         buffer.addToBuffer(playerType_);
00057         buffer.addToBuffer(modelName_);
00058         buffer.addToBuffer(typeName_);
00059         buffer.addToBuffer(playerId_);
00060         buffer.addToBuffer(destinationId_);
00061         buffer.addToBuffer(playerTeam_);
00062         buffer.addToBuffer(playerColor_);
00063         buffer.addToBuffer(playerIcon_.getBufferUsed());
00064         if (playerIcon_.getBufferUsed() > 0)
00065         {
00066                 buffer.addToBuffer(playerIconName_);
00067                 buffer.addDataToBuffer(playerIcon_.getBuffer(), 
00068                         playerIcon_.getBufferUsed());
00069         }
00070         return true;
00071 }
00072 
00073 bool ComsAddPlayerMessage::readMessage(NetBufferReader &reader)
00074 {
00075         if (!reader.getFromBuffer(playerName_)) return false;
00076         if (!reader.getFromBuffer(playerType_)) return false;
00077         if (!reader.getFromBuffer(modelName_)) return false;
00078         if (!reader.getFromBuffer(typeName_)) return false;
00079         if (!reader.getFromBuffer(playerId_)) return false;
00080         if (!reader.getFromBuffer(destinationId_)) return false;
00081         if (!reader.getFromBuffer(playerTeam_)) return false;
00082         if (!reader.getFromBuffer(playerColor_)) return false;
00083         unsigned int used = 0;
00084         if (!reader.getFromBuffer(used)) return false;
00085         if (used > 0)
00086         {
00087                 if (!reader.getFromBuffer(playerIconName_)) return false;
00088                 playerIcon_.allocate(used);
00089                 playerIcon_.setBufferUsed(used);
00090                 if (!reader.getDataFromBuffer(playerIcon_.getBuffer(), 
00091                         used)) return false;
00092         }
00093         return true;
00094 }

Generated on Mon Feb 16 15:14:49 2009 for Scorched3D by  doxygen 1.5.3