2.10.8: fewer hitches

- Sending on a background thread (the game thread blocked whenever the TCP
  buffer was full, e.g. while uploading the save); small frames are batched
- Server save requests: routine saves wait for a calm moment (not while driving
  fast) and are announced; urgent flag from server 2.10.5
- Dynamic built-in font for all MSCO GUI (Unity logged hundreds of
  "Font size and style overrides" warnings with stutters)
- Admin VEHICLE tab rescans every 30 s / after actions instead of every 5 s;
  time/weather FSM search less often
- Reused buffers for Build/Frame/Poll (less garbage, fewer GC pauses)
- Hitch log: GC and save detection, count of hitches between reports
- Show Bolt Size 1.0.1: finds the FPSCamera (Camera.main may be missing), uses
  MSCO's shared FSM list instead of FindObjectsOfType every 2 s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-04 00:08:36 +02:00
co-authored by Claude Opus 5.5
parent e32ddadbc8
commit d195a484d8
9 changed files with 277 additions and 57 deletions
+2
View File
@@ -1178,6 +1178,7 @@ namespace MSCO
static GUIStyle Label(int size, Color color, FontStyle font)
{
var s = new GUIStyle(GUI.skin.label);
if (UiTheme.DynamicFont != null) s.font = UiTheme.DynamicFont;
s.fontSize = size;
s.fontStyle = font;
s.normal.textColor = color;
@@ -1188,6 +1189,7 @@ namespace MSCO
static GUIStyle Button(Color normal, Color hover, Color text, int size, FontStyle font, int radius = UiTheme.Radius, Color border = default(Color))
{
var s = new GUIStyle(GUI.skin.button);
if (UiTheme.DynamicFont != null) s.font = UiTheme.DynamicFont;
bool withBorder = border.a > 0f;
int h = radius * 2 + 4;
Texture2D n = UiTheme.RoundedEx(normal, normal, border, withBorder, radius, h);