From efd4f50e4edeec60b377ae3967db6244f65c0073 Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Wed, 5 Feb 2025 00:50:32 +0530 Subject: [PATCH] exit LB replays on pmg --- .gitignore | 4 ++++ src/MarbleGame.hx | 13 ++++++------- src/MarbleWorld.hx | 5 +---- src/Replay.hx | 2 -- src/gui/MainMenuGui.hx | 4 ++-- src/gui/PlayMissionGui.hx | 5 ++--- src/gui/ReplayCenterGui.hx | 4 ++-- 7 files changed, 17 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index 5d16b68b..8b5649e3 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,10 @@ node_modules fonts package.json package-lock.json +leaderboards +out +server +mpcustom macos-dist/MarbleBlast Platinum.app/ macos-dist/data/ diff --git a/src/MarbleGame.hx b/src/MarbleGame.hx index f096642f..45a7e04f 100644 --- a/src/MarbleGame.hx +++ b/src/MarbleGame.hx @@ -62,6 +62,8 @@ class MarbleGame { var _mouseWheelDelta:Float; + var replayEndClass:Class; + public function new(scene2d:h2d.Scene, scene:h3d.scene.Scene) { Console.log("Initializing the game..."); canvas = new Canvas(scene2d, cast this); @@ -369,12 +371,8 @@ class MarbleGame { Analytics.trackLevelQuit(world.mission.title, world.mission.path, Std.int(world.timeState.timeSinceLoad * 1000), stats.oobs, stats.respawns, Settings.optionsSettings.rewindEnabled); paused = false; - if (world.isWatching && !world.replay.isLBReplay) { - #if !js - canvas.setContent(new ReplayCenterGui()); - #else - canvas.setContent(new MainMenuGui()); - #end + if (world.isWatching) { + canvas.setContent(Type.createInstance(replayEndClass, [])); } else { if (Net.isMP) { var lobby = new MPPlayMissionGui(Net.isHost); @@ -405,8 +403,9 @@ class MarbleGame { world.init(); } - public function watchMissionReplay(mission:Mission, replay:Replay) { + public function watchMissionReplay(mission:Mission, replay:Replay, replayEndGui:Class) { canvas.clearContent(); + replayEndClass = replayEndGui; Analytics.trackSingle("replay-watch"); world = new MarbleWorld(scene, scene2d, mission); world.replay = replay; diff --git a/src/MarbleWorld.hx b/src/MarbleWorld.hx index 0ec90530..abcb70ac 100644 --- a/src/MarbleWorld.hx +++ b/src/MarbleWorld.hx @@ -1818,11 +1818,8 @@ class MarbleWorld extends Scheduler { } this.setCursorLock(false); this.dispose(); - #if !js - MarbleGame.canvas.setContent(new ReplayCenterGui()); - #end + MarbleGame.canvas.setContent(Type.createInstance(@:privateAccess MarbleGame.instance.replayEndClass, [])); #if js - MarbleGame.canvas.setContent(new MainMenuGui()); var pointercontainer = js.Browser.document.querySelector("#pointercontainer"); pointercontainer.hidden = false; #end diff --git a/src/Replay.hx b/src/Replay.hx index 2500f88f..a15d909e 100644 --- a/src/Replay.hx +++ b/src/Replay.hx @@ -265,7 +265,6 @@ class Replay { public var mission:String; public var name:String; public var customId:Int; - public var isLBReplay:Bool; var frames:Array; var initialState:ReplayInitialState; @@ -283,7 +282,6 @@ class Replay { this.mission = mission; this.customId = customId; this.initialState = new ReplayInitialState(); - this.isLBReplay = false; } public function startFrame() { diff --git a/src/gui/MainMenuGui.hx b/src/gui/MainMenuGui.hx index cc22e515..0d9998d0 100644 --- a/src/gui/MainMenuGui.hx +++ b/src/gui/MainMenuGui.hx @@ -144,11 +144,11 @@ class MainMenuGui extends GuiImage { var mi = replay.customId == 0 ? MissionList.missions.get(repmis) : Marbleland.missions.get(replay.customId); if (mi.isClaMission) { mi.download(() -> { - MarbleGame.instance.watchMissionReplay(mi, replay); + MarbleGame.instance.watchMissionReplay(mi, replay, MainMenuGui); }); } else { if (mi != null) { - cast(this.parent, Canvas).marbleGame.watchMissionReplay(mi, replay); + cast(this.parent, Canvas).marbleGame.watchMissionReplay(mi, replay, MainMenuGui); } else { cast(this.parent, Canvas).pushDialog(new MessageBoxOkDlg("Cannot load replay.")); } diff --git a/src/gui/PlayMissionGui.hx b/src/gui/PlayMissionGui.hx index b3f43140..bdfc2c47 100644 --- a/src/gui/PlayMissionGui.hx +++ b/src/gui/PlayMissionGui.hx @@ -835,7 +835,6 @@ class PlayMissionGui extends GuiImage { Leaderboards.watchTopReplay(lbPath, scoreView, (b) -> { if (b != null) { var replayF = new Replay(""); - replayF.isLBReplay = true; if (replayF.read(b)) { var repmis = replayF.mission; // Strip data/ from the mission name @@ -854,10 +853,10 @@ class PlayMissionGui extends GuiImage { if (mi.isClaMission) { mi.download(() -> { - MarbleGame.instance.watchMissionReplay(mi, replayF); + MarbleGame.instance.watchMissionReplay(mi, replayF, PlayMissionGui); }); } else { - MarbleGame.instance.watchMissionReplay(mi, replayF); + MarbleGame.instance.watchMissionReplay(mi, replayF, PlayMissionGui); } } else { MarbleGame.canvas.pushDialog(new MessageBoxOkDlg("Could not load replay for this level.")); diff --git a/src/gui/ReplayCenterGui.hx b/src/gui/ReplayCenterGui.hx index dc8139af..12d81f49 100644 --- a/src/gui/ReplayCenterGui.hx +++ b/src/gui/ReplayCenterGui.hx @@ -76,11 +76,11 @@ class ReplayCenterGui extends GuiImage { var mi = repl.customId == 0 ? MissionList.missions.get(repmis) : Marbleland.missions.get(repl.customId); if (mi.isClaMission) { mi.download(() -> { - MarbleGame.instance.watchMissionReplay(mi, repl); + MarbleGame.instance.watchMissionReplay(mi, repl, ReplayCenterGui); }); playButton.disabled = true; // Don't let us play anything else } else { - MarbleGame.instance.watchMissionReplay(mi, repl); + MarbleGame.instance.watchMissionReplay(mi, repl, ReplayCenterGui); } } }