Add ProcessPlayerPacket and ProcessWorldPacket to client's Networking

This commit is contained in:
David Cernat 2016-10-21 19:23:56 +03:00
parent ac666edebd
commit 36f218876a
2 changed files with 423 additions and 393 deletions

View file

@ -166,13 +166,9 @@ void Networking::Connect(const std::string &ip, unsigned short port)
} }
} }
void Networking::ReceiveMessage(RakNet::Packet *packet) void Networking::ProcessPlayerPacket(RakNet::Packet *packet)
{ {
RakNet::RakNetGUID id; RakNet::RakNetGUID id;
if (packet->length < 2)
return;
RakNet::BitStream bsIn(&packet->data[1], packet->length, false); RakNet::BitStream bsIn(&packet->data[1], packet->length, false);
bsIn.Read(id); bsIn.Read(id);
@ -617,7 +613,39 @@ void Networking::ReceiveMessage(RakNet::Packet *packet)
} }
} }
default: default:
LOG_MESSAGE_SIMPLE(Log::LOG_INFO, "Custom message with identifier %i has arrived in initialization.", packet->data[0]); LOG_MESSAGE_SIMPLE(Log::LOG_INFO, "Unhandled PlayerPacket with identifier %i has arrived",
packet->data[0]);
}
}
void Networking::ProcessWorldPacket(RakNet::Packet *packet)
{
WorldPacket *myPacket = worldController.GetPacket(packet->data[0]);
switch (packet->data[0])
{
case ID_WORLD_OBJECT_REMOVAL:
{
LOG_MESSAGE_SIMPLE(Log::LOG_WARN, "%s", "Received ID_WORLD_OBJECT_REMOVAL");
}
default:
LOG_MESSAGE_SIMPLE(Log::LOG_INFO, "Unhandled WorldPacket with identifier %i has arrived",
packet->data[0]);
}
}
void Networking::ReceiveMessage(RakNet::Packet *packet)
{
if (packet->length < 2)
return;
if (playerController.ContainsPacket(packet->data[0]))
{
ProcessPlayerPacket(packet);
}
else if (worldController.ContainsPacket(packet->data[0]))
{
ProcessWorldPacket(packet);
} }
} }

View file

@ -59,6 +59,8 @@ namespace mwmp
PlayerPacketController playerController; PlayerPacketController playerController;
WorldPacketController worldController; WorldPacketController worldController;
void ProcessPlayerPacket(RakNet::Packet *packet);
void ProcessWorldPacket(RakNet::Packet *packet);
void ReceiveMessage(RakNet::Packet *packet); void ReceiveMessage(RakNet::Packet *packet);
LocalPlayer *getLocalPlayer(); LocalPlayer *getLocalPlayer();
}; };