Receiving 📦

This commit is contained in:
MarcEricMartel 2023-11-07 07:46:11 -05:00
parent bc1f4f750b
commit 8bd46ba831

View File

@ -1127,18 +1127,28 @@ void Engine::Render(float elapsedTime) {
sendPackTo<Input>(m_conn.m_sock_udp, &input, &m_bufout, &m_conn.m_srvsockaddr); sendPackTo<Input>(m_conn.m_sock_udp, &input, &m_bufout, &m_conn.m_srvsockaddr);
lsPck = recvPacks(m_conn.m_sock_udp, &m_buf); lsPck = recvPacks(m_conn.m_sock_udp, &m_buf);
char* prevptr = nullptr;
for (auto& pck : lsPck) { for (auto& pck : lsPck) { // We could make a few threads out of this.
uint32_t bsize = m_buf.len - (pck - m_buf.ptr); Sync sync;
netprot::Sync sync; Output out;
netprot::Output out; if (!prevptr)
switch (netprot::getType(pck, 1)) { prevptr = m_buf.ptr;
using enum netprot::PACKET_TYPE; uint32_t bsize = m_buf.len - (pck - prevptr);
prevptr = pck;
switch (getType(pck, 1)) {
using enum PACKET_TYPE;
case SYNC: case SYNC:
if (!netprot::Deserialize(&sync, pck, &bsize)) {} if (Deserialize(&sync, pck, &bsize)) {
if (sync.sid != m_conn.getId())
break;
// TODO: Vérifier si les positions concordent.
}
break; break;
case OUTPUT: case OUTPUT:
if (!netprot::Deserialize(&out, pck, &bsize)) {} if (Deserialize(&out, pck, &bsize)) {
RemotePlayer* r = (RemotePlayer*)m_players[out.id];
r->Feed(out);
}
break; break;
default: default:
break; break;