00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <coms/ComsPlayedMoveMessage.h>
00022
00023 ComsPlayedMoveMessage::ComsPlayedMoveMessage(unsigned int playerId, MoveType type) :
00024 ComsMessage("ComsPlayedMoveMessage"),
00025 moveType_(type),
00026 weaponId_(0),
00027 rotationXY_(0), rotationYZ_(0), power_(0), playerId_(playerId),
00028 selectPositionX_(0), selectPositionY_(0)
00029 {
00030 }
00031
00032 ComsPlayedMoveMessage::~ComsPlayedMoveMessage()
00033 {
00034 }
00035
00036 void ComsPlayedMoveMessage::setShot(unsigned int weaponId,
00037 fixed rotationXY,
00038 fixed rotationYZ,
00039 fixed power,
00040 int selectPositionX,
00041 int selectPositionY)
00042 {
00043 weaponId_ = weaponId;
00044 rotationXY_ = rotationXY;
00045 rotationYZ_ = rotationYZ;
00046 power_ = power;
00047 selectPositionX_ = selectPositionX;
00048 selectPositionY_ = selectPositionY;
00049 }
00050
00051 bool ComsPlayedMoveMessage::writeMessage(NetBuffer &buffer)
00052 {
00053 buffer.addToBuffer(playerId_);
00054 buffer.addToBuffer((int) moveType_);
00055 if (moveType_ == eShot)
00056 {
00057 buffer.addToBuffer(weaponId_);
00058 buffer.addToBuffer(rotationXY_);
00059 buffer.addToBuffer(rotationYZ_);
00060 buffer.addToBuffer(power_);
00061 buffer.addToBuffer(selectPositionX_);
00062 buffer.addToBuffer(selectPositionY_);
00063 }
00064 return true;
00065 }
00066
00067 bool ComsPlayedMoveMessage::readMessage(NetBufferReader &reader)
00068 {
00069 if (!reader.getFromBuffer(playerId_)) return false;
00070 int mt;
00071 if (!reader.getFromBuffer(mt)) return false;
00072 moveType_ = (MoveType) mt;
00073 if (moveType_ == eShot)
00074 {
00075 if (!reader.getFromBuffer(weaponId_)) return false;
00076 if (!reader.getFromBuffer(rotationXY_)) return false;
00077 if (!reader.getFromBuffer(rotationYZ_)) return false;
00078 if (!reader.getFromBuffer(power_)) return false;
00079 if (!reader.getFromBuffer(selectPositionX_)) return false;
00080 if (!reader.getFromBuffer(selectPositionY_)) return false;
00081 }
00082 return true;
00083 }
00084