From d70d418adc7a6d120e007f5973448efc02364a2a Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Fri, 4 Nov 2022 22:44:17 +0530 Subject: [PATCH] fix replay save for web --- src/MarbleWorld.hx | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/MarbleWorld.hx b/src/MarbleWorld.hx index 70c5a8c9..38eae513 100644 --- a/src/MarbleWorld.hx +++ b/src/MarbleWorld.hx @@ -1329,6 +1329,7 @@ class MarbleWorld extends Scheduler { public function saveReplay() { var replayBytes = this.replay.write(); + #if hl hxd.File.saveAs(replayBytes, { title: 'Save Replay', fileTypes: [ @@ -1339,6 +1340,25 @@ class MarbleWorld extends Scheduler { ], defaultPath: '${this.mission.title}${this.timeState.gameplayClock}.mbr' }); + #end + #if js + var blob = new js.html.Blob([replayBytes.getData()], { + type: 'application/octet-stream' + }); + var url = js.html.URL.createObjectURL(blob); + var fname = '${this.mission.title}${this.timeState.gameplayClock}.mbr'; + var element = js.Browser.document.createElement('a'); + element.setAttribute('href', url); + element.setAttribute('download', fname); + + element.style.display = 'none'; + js.Browser.document.body.appendChild(element); + + element.click(); + + js.Browser.document.body.removeChild(element); + js.html.URL.revokeObjectURL(url); + #end } public function dispose() {