00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef S3D_SERVER
00022 #include <client/ScorchedClient.h>
00023 #endif
00024 #include <server/ScorchedServer.h>
00025 #include <coms/ComsConnectAcceptMessage.h>
00026 #include <weapons/AccessoryStore.h>
00027 #include <common/OptionsScorched.h>
00028
00029 ComsConnectAcceptMessage::ComsConnectAcceptMessage(unsigned int destinationId,
00030 const char *serverName,
00031 const char *publishAddress,
00032 const char *uniqueId) :
00033 ComsMessage("ComsConnectAcceptMessage"),
00034 destinationId_(destinationId),
00035 serverName_(serverName),
00036 publishAddress_(publishAddress),
00037 uniqueId_(uniqueId)
00038 {
00039
00040 }
00041
00042 ComsConnectAcceptMessage::~ComsConnectAcceptMessage()
00043 {
00044
00045 }
00046
00047 bool ComsConnectAcceptMessage::writeMessage(NetBuffer &buffer)
00048 {
00049 buffer.addToBuffer(destinationId_);
00050 buffer.addToBuffer(serverName_);
00051 buffer.addToBuffer(publishAddress_);
00052 buffer.addToBuffer(uniqueId_);
00053 buffer.addToBuffer(serverPng_.getBufferUsed());
00054 buffer.addDataToBuffer(serverPng_.getBuffer(), serverPng_.getBufferUsed());
00055 if (!ScorchedServer::instance()->getOptionsGame().getMainOptions().
00056 writeToBuffer(buffer, false, false)) return false;
00057 return true;
00058 }
00059
00060 bool ComsConnectAcceptMessage::readMessage(NetBufferReader &reader)
00061 {
00062 if (!reader.getFromBuffer(destinationId_)) return false;
00063 if (!reader.getFromBuffer(serverName_)) return false;
00064 if (!reader.getFromBuffer(publishAddress_)) return false;
00065 if (!reader.getFromBuffer(uniqueId_)) return false;
00066 unsigned int used;
00067 if (!reader.getFromBuffer(used)) return false;
00068 serverPng_.allocate(used);
00069 serverPng_.reset();
00070 serverPng_.setBufferUsed(used);
00071 reader.getDataFromBuffer(serverPng_.getBuffer(), used);
00072 #ifndef S3D_SERVER
00073 if (!ScorchedClient::instance()->getOptionsGame().getMainOptions().
00074 readFromBuffer(reader, false, false)) return false;
00075 #endif // #ifndef S3D_SERVER
00076 return true;
00077 }