Create a new BasePacket that PlayerPacket inherits from

pull/78/head
David Cernat 8 years ago
parent b8f4cb94fb
commit fcc793a0af

@ -148,8 +148,8 @@ add_component_dir (version
add_component_dir (openmw-mp
Log
PacketsController
Packets/PlayerPacket Packets/PacketBaseInfo Packets/PacketPosition Packets/PacketEquipment Packets/PacketAttack
Packets/PacketDynamicStats Packets/PacketCell Packets/PacketDrawState Packets/PacketChatMessage
Packets/BasePacket Packets/PlayerPacket Packets/PacketBaseInfo Packets/PacketPosition Packets/PacketEquipment
Packets/PacketAttack Packets/PacketDynamicStats Packets/PacketCell Packets/PacketDrawState Packets/PacketChatMessage
Packets/PacketCharGen Packets/PacketAttribute Packets/PacketSkill Packets/PacketLevel Packets/PacketHandshake
Packets/PacketGUIBoxes Packets/PacketClass Packets/PacketTime)

@ -0,0 +1,37 @@
#include <components/openmw-mp/NetworkMessages.hpp>
#include <PacketPriority.h>
#include <RakPeer.h>
#include "BasePacket.hpp"
using namespace mwmp;
BasePacket::BasePacket(RakNet::RakPeerInterface *peer)
{
packetID = 0;
priority = HIGH_PRIORITY;
reliability = RELIABLE_ORDERED;
this->peer = peer;
}
BasePacket::~BasePacket()
{
}
void BasePacket::SetReadStream(RakNet::BitStream *bitStream)
{
bsRead = bitStream;
}
void BasePacket::SetSendStream(RakNet::BitStream *bitStream)
{
bsSend = bitStream;
}
void BasePacket::SetStreams(RakNet::BitStream *inStream, RakNet::BitStream *outStream)
{
if (inStream != 0)
bsRead = inStream;
if (outStream != 0)
bsSend = outStream;
}

@ -0,0 +1,93 @@
#ifndef OPENMW_BASEPACKET_HPP
#define OPENMW_BASEPACKET_HPP
#include <string>
#include <RakNetTypes.h>
#include <BitStream.h>
#include <PacketPriority.h>
#include <components/openmw-mp/Base/BasePlayer.hpp>
namespace mwmp
{
class BasePacket
{
public:
BasePacket(RakNet::RakPeerInterface *peer);
~BasePacket();
void SetReadStream(RakNet::BitStream *bitStream);
void SetSendStream(RakNet::BitStream *bitStream);
void SetStreams(RakNet::BitStream *inStream, RakNet::BitStream *outStream);
static size_t headerSize()
{
return (size_t)(1 + RakNet::RakNetGUID::size()); // packetID + RakNetGUID (uint64_t)
}
unsigned char GetPacketID()
{
return packetID;
}
protected:
template<class templateType>
void RW(templateType &data, unsigned int size, bool write)
{
if (write)
bs->Write(data, size);
else
bs->Read(data, size);
}
template<class templateType>
void RW(templateType &data, bool write)
{
if (write)
bs->Write(data);
else
bs->Read(data);
}
void RW(bool &data, bool write)
{
char _data;
if (write)
{
_data = data;
bs->Write(_data);
}
else
{
bs->Read(_data);
data = _data;
}
}
void RW(std::string &str, bool write)
{
if (write)
{
RakNet::RakString rstr(str.c_str());
bs->Write(rstr);
}
else
{
RakNet::RakString rstr;
bs->Read(rstr);
str = rstr.C_String();
}
}
protected:
unsigned char packetID;
PacketReliability reliability;
PacketPriority priority;
RakNet::BitStream *bsRead, *bsSend, *bs;
RakNet::RakPeerInterface *peer;
};
}
#endif //OPENMW_BASEPACKET_HPP

@ -17,7 +17,7 @@ void PlayerPacket::Packet(RakNet::BitStream *bs, BasePlayer *player, bool send)
}
}
PlayerPacket::PlayerPacket(RakNet::RakPeerInterface *peer)
PlayerPacket::PlayerPacket(RakNet::RakPeerInterface *peer) : BasePacket(peer)
{
packetID = 0;
priority = HIGH_PRIORITY;
@ -49,16 +49,6 @@ void PlayerPacket::Read(BasePlayer *player)
Packet(bsRead, player, false);
}
void PlayerPacket::SetReadStream(RakNet::BitStream *bitStream)
{
bsRead = bitStream;
}
void PlayerPacket::SetSendStream(RakNet::BitStream *bitStream)
{
bsSend = bitStream;
}
void PlayerPacket::RequestData(RakNet::RakNetGUID player)
{
bsSend->ResetWritePointer();
@ -66,11 +56,3 @@ void PlayerPacket::RequestData(RakNet::RakNetGUID player)
bsSend->Write(player);
peer->Send(bsSend, HIGH_PRIORITY, RELIABLE_ORDERED, 0, player, false);
}
void PlayerPacket::SetStreams(RakNet::BitStream *inStream, RakNet::BitStream *outStream)
{
if (inStream != 0)
bsRead = inStream;
if (outStream != 0)
bsSend = outStream;
}

@ -7,10 +7,12 @@
#include <PacketPriority.h>
#include <components/openmw-mp/Base/BasePlayer.hpp>
#include "BasePacket.hpp"
namespace mwmp
{
class PlayerPacket
class PlayerPacket : public BasePacket
{
public:
PlayerPacket(RakNet::RakPeerInterface *peer);
@ -25,10 +27,6 @@ namespace mwmp
virtual void RequestData(RakNet::RakNetGUID player);
void SetReadStream(RakNet::BitStream *bitStream);
void SetSendStream(RakNet::BitStream *bitStream);
void SetStreams(RakNet::BitStream *inStream, RakNet::BitStream *outStream);
static size_t headerSize()
{
return (size_t)(1 + RakNet::RakNetGUID::size()); // packetID + RakNetGUID (uint64_t)
@ -39,65 +37,8 @@ namespace mwmp
return packetID;
}
protected:
template<class templateType>
void RW(templateType &data, unsigned int size, bool write)
{
if (write)
bs->Write(data, size);
else
bs->Read(data, size);
}
template<class templateType>
void RW(templateType &data, bool write)
{
if (write)
bs->Write(data);
else
bs->Read(data);
}
void RW(bool &data, bool write)
{
char _data;
if (write)
{
_data = data;
bs->Write(_data);
}
else
{
bs->Read(_data);
data = _data;
}
}
void RW(std::string &str, bool write)
{
if (write)
{
RakNet::RakString rstr(str.c_str());
bs->Write(rstr);
}
else
{
RakNet::RakString rstr;
bs->Read(rstr);
str = rstr.C_String();
}
}
protected:
BasePlayer *player;
unsigned char packetID;
PacketReliability reliability;
PacketPriority priority;
private:
RakNet::BitStream *bsRead, *bsSend, *bs;
RakNet::RakPeerInterface *peer;
};
}

@ -9,7 +9,7 @@
#include "Packets/PacketClass.hpp"
#include "Packets/PacketPosition.hpp"
#include "Packets/PacketBaseInfo.hpp"
#include "components/openmw-mp/Packets/PacketEquipment.hpp"
#include "Packets/PacketEquipment.hpp"
#include "Packets/PacketAttack.hpp"
#include "Packets/PacketDynamicStats.hpp"
#include "Packets/PacketResurrect.hpp"

Loading…
Cancel
Save