49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
#include "game/client/ClientConnexion.h"
|
|
#include "render/WorldRenderer.h"
|
|
|
|
namespace td {
|
|
namespace client {
|
|
|
|
ClientConnexion::ClientConnexion() : Connexion(&m_Dispatcher), m_ServerTPS(0) {
|
|
RegisterHandlers();
|
|
}
|
|
|
|
void ClientConnexion::RegisterHandlers() {
|
|
GetDispatcher()->RegisterHandler(protocol::PacketType::KeepAlive, this);
|
|
GetDispatcher()->RegisterHandler(protocol::PacketType::ConnectionInfo, this);
|
|
GetDispatcher()->RegisterHandler(protocol::PacketType::Disconnect, this);
|
|
GetDispatcher()->RegisterHandler(protocol::PacketType::ServerTps, this);
|
|
}
|
|
|
|
void ClientConnexion::HandlePacket(const protocol::KeepAlivePacket* packet) {
|
|
protocol::KeepAlivePacket keepAlivePacket(packet->GetAliveID());
|
|
SendPacket(&keepAlivePacket);
|
|
}
|
|
|
|
void ClientConnexion::HandlePacket(const protocol::ConnexionInfoPacket* packet) {
|
|
m_ConnectionID = packet->GetConnectionID();
|
|
Login();
|
|
}
|
|
|
|
void ClientConnexion::HandlePacket(const protocol::ServerTpsPacket* packet) {
|
|
m_ServerTPS = packet->GetTPS();
|
|
m_Ping = utils::GetTime() - packet->GetPacketSendTime();
|
|
}
|
|
|
|
void ClientConnexion::Login() {
|
|
td::protocol::PlayerLoginPacket loginPacket("Persson" + std::to_string(m_ConnectionID));
|
|
SendPacket(&loginPacket);
|
|
}
|
|
|
|
bool ClientConnexion::UpdateSocket() {
|
|
return Connexion::UpdateSocket();
|
|
}
|
|
|
|
void ClientConnexion::HandlePacket(const protocol::DisconnectPacket* packet) {
|
|
m_DisconnectReason = packet->GetReason();
|
|
CloseConnection();
|
|
}
|
|
|
|
} // namespace client
|
|
} // namespace td
|