INNER CODE UNIT · Python
udp_frame_index
TheXTech/TheXTech · resources/_dev_scripts/xserver.py:232
udp_frame_index = -1
for i in range(0, len(msg), 4):
message = msg[i : i + 4]
if message[0] == MESSAGE_FRAME_BEGIN or message[0] == MESSAGE_FRAME_END:
udp_frame_index = message[1] * 256 * 256 + message[2] * 256 + message[3]
# FIXME: figure out whether this is a good idea
# bad idea because game transmits UDP starting from the first un-acked frame with inputs, but doesn't clarify which frame this is
# reject UDP packets that start after acked_frame, as premature.
# if i == 0 and udp_frame_index > self.acked_frame + 1:
# print(f"Ignoring premature UDP packet (starts {udp_frame_index}, last seen {self.acked_frame})")
# return
if message[0] == MESSAGE_FRAME_END and udp_frame_index > self.acked_frame:
self.acked_frame = udp_frame_index
elif udp_frame_index - 1 > self.acked_frame:
self.acked_frame = udp_frame_index - 1