00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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 }