diff --git a/src/frontend/qt_sdl/LAN.cpp b/src/frontend/qt_sdl/LAN.cpp index 1f570e8a..db4f3dc7 100644 --- a/src/frontend/qt_sdl/LAN.cpp +++ b/src/frontend/qt_sdl/LAN.cpp @@ -810,19 +810,21 @@ void ProcessHostEvent(ENetEvent& event) case 0x04: // player connected { - if (event.packet->dataLength != 2) break; - if (data[1] > 15) break; + if (event.packet->dataLength != 1) break; + Player* player = (Player*)event.peer->data; + if (!player) break; - ConnectedBitmask |= (1<ID); } break; case 0x05: // player disconnected { - if (event.packet->dataLength != 2) break; - if (data[1] > 15) break; + if (event.packet->dataLength != 1) break; + Player* player = (Player*)event.peer->data; + if (!player) break; - ConnectedBitmask &= ~(1<ID); } break; } @@ -862,6 +864,7 @@ void ProcessClientEvent(ENetEvent& event) } RemotePeers[playerid] = event.peer; + event.peer->data = &Players[playerid]; } break; @@ -919,19 +922,21 @@ void ProcessClientEvent(ENetEvent& event) case 0x04: // player connected { - if (event.packet->dataLength != 2) break; - if (data[1] > 15) break; + if (event.packet->dataLength != 1) break; + Player* player = (Player*)event.peer->data; + if (!player) break; - ConnectedBitmask |= (1<ID); } break; case 0x05: // player disconnected { - if (event.packet->dataLength != 2) break; - if (data[1] > 15) break; + if (event.packet->dataLength != 1) break; + Player* player = (Player*)event.peer->data; + if (!player) break; - ConnectedBitmask &= ~(1<ID); } break; } @@ -995,12 +1000,12 @@ void MPBegin() { if (!Host) return; - ConnectedBitmask |= (1<