mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-23 08:00:24 +02:00
The packet table had begin game, graceful exit and keep-alive each on its neighbor's field list (the Xbox game's table order is not their type order), so a keep-alive's short was encoded and decoded as a long: the host sent 2 bytes of stack past it, and a client wrote 2 bytes from the network past it on its stack. The field lists now sit under the messages whose wire they describe, and the keep-alive is a long. Not a byte on the wire moves: begin game still carries a short (16 bits of its long), exit and keep-alive a long, so OpenCE and earlier builds play as before; the keep-alive's 2 bytes that came off the stack are zero now. tools/test_network_messages.py encodes every message under AddressSanitizer and compares the bytes with upstream's table. (cherry picked from commit ee32bdad42615402053291344e3c89f8bcc04161)