Server new game: start a fresh world when the server says so

StartGame carries a second flag (new game); the client then starts MSC's new
game instead of loading the (empty) received save.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 17:36:14 +02:00
co-authored by Claude Opus 5.5
parent 52b1219934
commit 5f8062c649
2 changed files with 13 additions and 0 deletions
+4
View File
@@ -23,6 +23,10 @@
- Geht jetzt auch, **wenn noch niemand fährt** (Sitzposition kommt aus dem Fahrersitz des Spiels); fährt danach jemand - Geht jetzt auch, **wenn noch niemand fährt** (Sitzposition kommt aus dem Fahrersitz des Spiels); fährt danach jemand
los, fährt man mit. Setzt man sich selbst ans Steuer, endet der Beifahrer-Modus los, fährt man mit. Setzt man sich selbst ans Steuer, endet der Beifahrer-Modus
**Server mit neuem Spiel**
- Im Server-Panel (Welt & Backups) gibt es „Neues Spiel starten“: statt eines hochgeladenen Spielstands startet der
erste Spieler ein frisches My-Summer-Car-Spiel, der Server übernimmt danach dessen Spielstand (braucht Server 2.9.3)
**Launcher einklappen** **Launcher einklappen**
- Knopf **–** oben rechts im Launcher: er klappt zu einer kleinen MSCO-Leiste oben zusammen, das Startmenü des Spiels - Knopf **–** oben rechts im Launcher: er klappt zu einer kleinen MSCO-Leiste oben zusammen, das Startmenü des Spiels
(Optionen, Farbe, Musik ...) ist wieder sichtbar und bedienbar, die Menü-Musik läuft wieder. Klick auf die Leiste (Optionen, Farbe, Musik ...) ist wieder sichtbar und bedienbar, die Menü-Musik läuft wieder. Klick auf die Leiste
+9
View File
@@ -1596,6 +1596,15 @@ namespace MSCO
receivingSave = false; receivingSave = false;
// Später beigetreten: nach dem Laden neben den Host setzen // Später beigetreten: nach dem Laden neben den Host setzen
teleportToHost = r.BaseStream.Length > 0 && r.ReadBoolean(); teleportToHost = r.BaseStream.Length > 0 && r.ReadBoolean();
// Server mit "neues Spiel" (Panel): kein Spielstand - hier ein neues Spiel starten (Server ab 2.9.3)
bool serverNewGame = r.BaseStream.Length - r.BaseStream.Position >= 1 && r.ReadBoolean();
if (serverNewGame)
{
SetStatus("The server starts a new game - creating a fresh world...");
MscoLog.Info("[MSCO] Server has a new game - starting a fresh world");
MenuHelper.StartNewGame();
break;
}
SetStatus(dedicated ? "Loading server world..." : "Loading host's game..."); SetStatus(dedicated ? "Loading server world..." : "Loading host's game...");
MenuHelper.StartGame(); MenuHelper.StartGame();
break; break;