TTT: Optimised streaming of end-of-round report (#1678)
* Optimised SCORE:StreamToClients implementation
- ``SCORE:StreamToClients`` now compresses its contents before sending it to the client
- Optimised sending the event payload in multiple parts, specifically by separating the part-splitting net message from the final arrival message. This introduces a new net message ``TTT_ReportStream_Part``.
- Event table sorting now happens after it's read on the client instead of before it's written on the server
- Raised the part separation limit to
65529 from
65500
Some additional small changes to the surrounding file:
- GetDamageType is no longer converted to a string in kill events as TableToJSON no longer as an issue encoding large integers
- CurTime is no longer rounded in events, causing events happening at near the same time to be ordered properly
- Changed pairs ``SCORE.Events`` loop to numeric-for
New net message specs:
- ``TTT_ReportStream``: UInt-16 length, BinaryString[length] data
- ``TTT_ReportStream_Part``: BinaryString[
65529] data