Receiving 📦
This commit is contained in:
parent
bc1f4f750b
commit
8bd46ba831
@ -1127,18 +1127,28 @@ void Engine::Render(float elapsedTime) {
|
||||
sendPackTo<Input>(m_conn.m_sock_udp, &input, &m_bufout, &m_conn.m_srvsockaddr);
|
||||
|
||||
lsPck = recvPacks(m_conn.m_sock_udp, &m_buf);
|
||||
|
||||
for (auto& pck : lsPck) {
|
||||
uint32_t bsize = m_buf.len - (pck - m_buf.ptr);
|
||||
netprot::Sync sync;
|
||||
netprot::Output out;
|
||||
switch (netprot::getType(pck, 1)) {
|
||||
using enum netprot::PACKET_TYPE;
|
||||
char* prevptr = nullptr;
|
||||
for (auto& pck : lsPck) { // We could make a few threads out of this.
|
||||
Sync sync;
|
||||
Output out;
|
||||
if (!prevptr)
|
||||
prevptr = m_buf.ptr;
|
||||
uint32_t bsize = m_buf.len - (pck - prevptr);
|
||||
prevptr = pck;
|
||||
switch (getType(pck, 1)) {
|
||||
using enum PACKET_TYPE;
|
||||
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;
|
||||
case OUTPUT:
|
||||
if (!netprot::Deserialize(&out, pck, &bsize)) {}
|
||||
if (Deserialize(&out, pck, &bsize)) {
|
||||
RemotePlayer* r = (RemotePlayer*)m_players[out.id];
|
||||
r->Feed(out);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user