diff --git a/src/Replay.hx b/src/Replay.hx index 83fb6179..9e2be374 100644 --- a/src/Replay.hx +++ b/src/Replay.hx @@ -291,7 +291,9 @@ class Replay { public function endFrame() { // Do not record frames beyond par time/5 minutes to limit file size, if we aren't explicitly recording - if (!MarbleGame.instance.toRecord && currentRecordFrame.clockTime > Math.min(300, MarbleGame.instance.world.mission.qualifyTime)) { + if (!MarbleGame.instance.toRecord + && currentRecordFrame != null + && currentRecordFrame.clockTime > Math.min(300, MarbleGame.instance.world.mission.qualifyTime)) { currentRecordFrame = null; return; } diff --git a/src/gui/EndGameGui.hx b/src/gui/EndGameGui.hx index c280aa35..5b39eb65 100644 --- a/src/gui/EndGameGui.hx +++ b/src/gui/EndGameGui.hx @@ -218,14 +218,18 @@ class EndGameGui extends GuiImage { } else { Leaderboards.getScores(mission.path, All, lbscores -> { var foundScore = false; + var foundLBScore:Float = 0; for (lb in lbscores) { if (lb.name == Settings.highscoreName) { foundScore = true; + foundLBScore = lb.score; break; } } if (!foundScore) { submitScore(); + } else if (foundLBScore > score) { + submitScore(); } }); }