RemotePlayer

This commit is contained in:
MarcEricMartel
2023-10-27 14:37:53 -04:00
parent 8970bc33a1
commit 61629b3c8e
6 changed files with 30 additions and 11 deletions

View File

@@ -68,9 +68,10 @@ int Connector::Connect(const char* srv_addr, std::string name) {
delete[] buf;
buf = new char[150] {0};
buflen = 150;
int rpack = 0;
bool ready = false;
int errors = 0;
while (rpack < 2) {
netprot::PlayerInfo pinfo{};
while (!ready) {
recv(m_sock_tcp, buf, buflen, 0);
switch (netprot::getType(buf, buflen)) {
@@ -79,17 +80,26 @@ int Connector::Connect(const char* srv_addr, std::string name) {
std::cout << "Packet LoginInfo invalide." << std::endl;
return 2;
}
++rpack;
break;
case netprot::PACKET_TYPE::GAMEINFO:
if (!netprot::Deserialize(&m_gameinfo, buf, buflen)) {
std::cout << "Packet GameInfo invalide." << std::endl;
return 3;
}
++rpack;
break;
case netprot::PACKET_TYPE::PLAYINF:
// TODO: Populer un remotePlayer avec <20>a.
if (!netprot::Deserialize(&pinfo, buf, buflen)) {
std::cout << "Packet PlayerInfo invalide." << std::endl;
return 3;
}
m_players[pinfo.id] = pinfo;
break;
case netprot::PACKET_TYPE::SYNC:
if (!netprot::Deserialize(&m_origin, buf, buflen)) {
std::cout << "Packet Sync invalide." << std::endl;
return 3;
}
ready = true;
break;
default:
++errors;
@@ -105,3 +115,5 @@ int Connector::Connect(const char* srv_addr, std::string name) {
uint64_t Connector::getId() const { return m_loginfo.sid; }
unsigned int Connector::getSeed() const { return m_gameinfo.seed; }
netprot::Sync Connector::getOrigin() const { return m_origin; }