change replay exit paths

This commit is contained in:
RandomityGuy 2025-02-07 22:49:32 +05:30
parent 6a1f869777
commit 3b74555830
4 changed files with 11 additions and 11 deletions

View file

@ -1,5 +1,6 @@
package src; package src;
import gui.GuiControl;
import haxe.io.Path; import haxe.io.Path;
import gui.MultiplayerGui; import gui.MultiplayerGui;
import net.MasterServerClient; import net.MasterServerClient;
@ -66,6 +67,8 @@ class MarbleGame {
var limitingFps:Bool = false; var limitingFps:Bool = false;
var fpsLimitAccum:Float = 0.0; var fpsLimitAccum:Float = 0.0;
var replayExitGui:Class<GuiControl>;
public function new(scene2d:h2d.Scene, scene:h3d.scene.Scene) { public function new(scene2d:h2d.Scene, scene:h3d.scene.Scene) {
Console.log("Initializing the game..."); Console.log("Initializing the game...");
canvas = new Canvas(scene2d, cast this); canvas = new Canvas(scene2d, cast this);
@ -349,11 +352,7 @@ class MarbleGame {
world = null; world = null;
paused = false; paused = false;
if (watching) { if (watching) {
#if !js canvas.setContent(Type.createInstance(replayExitGui, []));
canvas.setContent(new ReplayCenterGui());
#else
canvas.setContent(new MainMenuGui());
#end
} else { } else {
if (Net.isMP) { if (Net.isMP) {
if (weDisconnecting) { if (weDisconnecting) {
@ -389,7 +388,7 @@ class MarbleGame {
world.init(); world.init();
} }
public function watchMissionReplay(mission:Mission, replay:Replay) { public function watchMissionReplay(mission:Mission, replay:Replay, replayExitGui:Class<GuiControl>) {
canvas.clearContent(); canvas.clearContent();
destroyPreviewWorld(); destroyPreviewWorld();
Analytics.trackSingle("replay-watch"); Analytics.trackSingle("replay-watch");
@ -397,6 +396,7 @@ class MarbleGame {
world.replay = replay; world.replay = replay;
world.isWatching = true; world.isWatching = true;
world.init(); world.init();
this.replayExitGui = replayExitGui;
} }
public function startPreviewWorld(onFinish:() -> Void) { public function startPreviewWorld(onFinish:() -> Void) {

View file

@ -259,7 +259,7 @@ class LeaderboardsGui extends GuiImage {
mi = MissionList.missions.get(repmis); mi = MissionList.missions.get(repmis);
} }
MarbleGame.instance.watchMissionReplay(mi, replayF); MarbleGame.instance.watchMissionReplay(mi, replayF, DifficultySelectGui);
} else { } else {
MarbleGame.canvas.pushDialog(new MessageBoxOkDlg("Could not load replay for this level.")); MarbleGame.canvas.pushDialog(new MessageBoxOkDlg("Could not load replay for this level."));
} }

View file

@ -109,11 +109,11 @@ class MainMenuGui extends GuiImage {
var mi = replay.customId == 0 ? MissionList.missions.get(repmis) : Marbleland.missions.get(replay.customId); var mi = replay.customId == 0 ? MissionList.missions.get(repmis) : Marbleland.missions.get(replay.customId);
if (mi.isClaMission) { if (mi.isClaMission) {
mi.download(() -> { mi.download(() -> {
MarbleGame.instance.watchMissionReplay(mi, replay); MarbleGame.instance.watchMissionReplay(mi, replay, MainMenuGui);
}); });
} else { } else {
if (mi != null) { if (mi != null) {
cast(this.parent, Canvas).marbleGame.watchMissionReplay(mi, replay); cast(this.parent, Canvas).marbleGame.watchMissionReplay(mi, replay, MainMenuGui);
} else { } else {
cast(this.parent, Canvas).pushDialog(new MessageBoxOkDlg("Cannot load replay.")); cast(this.parent, Canvas).pushDialog(new MessageBoxOkDlg("Cannot load replay."));
} }

View file

@ -142,10 +142,10 @@ class ReplayCenterGui extends GuiImage {
var mi = repl.customId == 0 ? MissionList.missions.get(repmis) : Marbleland.missions.get(repl.customId); var mi = repl.customId == 0 ? MissionList.missions.get(repmis) : Marbleland.missions.get(repl.customId);
if (mi.isClaMission) { if (mi.isClaMission) {
mi.download(() -> { mi.download(() -> {
MarbleGame.instance.watchMissionReplay(mi, repl); MarbleGame.instance.watchMissionReplay(mi, repl, ReplayCenterGui);
}); });
} else { } else {
MarbleGame.instance.watchMissionReplay(mi, repl); MarbleGame.instance.watchMissionReplay(mi, repl, ReplayCenterGui);
} }
} }
} }