mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2025-10-30 08:11:25 +00:00
Merge pull request #4 from thearst3rd/mbg-natural-recordings
MBG - More natural replay saving, and cleanups/linux
This commit is contained in:
commit
cb462f9dea
7 changed files with 42 additions and 9 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -5,6 +5,8 @@
|
|||
native
|
||||
*.exe
|
||||
*.obj
|
||||
marblegame.hl
|
||||
marblegame
|
||||
settings.json
|
||||
release
|
||||
Export
|
||||
|
|
|
|||
6
compile-linux.hxml
Normal file
6
compile-linux.hxml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
-cp src
|
||||
-lib heaps
|
||||
-lib hlsdl
|
||||
-D highDPI
|
||||
-hl native/marblegame.c
|
||||
--main Main
|
||||
6
compile-linux.sh
Executable file
6
compile-linux.sh
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
haxe compile-linux.hxml
|
||||
cd native
|
||||
gcc -o marblegame -g -I . -L /usr/local/lib marblegame.c /usr/local/lib/{ui.hdll,openal.hdll,fmt.hdll,sdl.hdll} -lSDL2 -lhl -lm
|
||||
cp marblegame ..
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
-cp src
|
||||
-lib heaps
|
||||
-lib hlsdl
|
||||
-lib zyheaps
|
||||
-hl marblegame.hl
|
||||
-D windowSize=1280x720
|
||||
-D keep-inline-positions
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
by16:font%2Farial.fntaoy3:veri1y4:timei1659272757y4:hashy40:dc7f069d72e0d1b6b7edfd5b9e6af9c22f9c641cy3:outy23:tmp%2Ffont%2Farial.bfntghy21:font%2FMarkerFelt.fntaoR1i1R2i1672239219R3y40:eb239790210478413cc111da54400b3d38aba041R5y28:tmp%2Ffont%2FMarkerFelt.bfntghy27:font%2FLucida%20Console.fntaoR1i1R2i1672239804R3y40:b56483df1b8f3d8472856b51459d5ce8f3cdfa09R5y34:tmp%2Ffont%2FLucida%20Console.bfntghy16:font%2FEXPON.fntaoR1i1R2i1659272757R3y40:ba8ecd55d9475ee0f9d20c9a5189fe6a9c9ff727R5y23:tmp%2Ffont%2FEXPON.bfntghy21:font%2FDomCasualD.fntaoR1i1R2i1659272757R3y40:ea40ffbf969a51d3e653a3d09b450143a814c7eeR5y28:tmp%2Ffont%2FDomCasualD.bfntghy23:font%2FArial%20Bold.fntaoR1i1R2i1659272757R3y40:dce4a5edf92262f9ea5540d55271f8423683d064R5y30:tmp%2Ffont%2FArial%20Bold.bfntghy23:data%2Ffont%2Farial.fntaoR1i1R2i1659272757R3R4R5y37:data%2Ftmp%2Fdata%2Ffont%2Farial.bfntghy28:data%2Ffont%2FMarkerFelt.fntaoR1i1R2i1672239219R3R8R5y42:data%2Ftmp%2Fdata%2Ffont%2FMarkerFelt.bfntghy34:data%2Ffont%2FLucida%20Console.fntaoR1i1R2i1672239804R3R11R5y48:data%2Ftmp%2Fdata%2Ffont%2FLucida%20Console.bfntghy23:data%2Ffont%2FEXPON.fntaoR1i1R2i1659272757R3R14R5y37:data%2Ftmp%2Fdata%2Ffont%2FEXPON.bfntghy28:data%2Ffont%2FDomCasualD.fntaoR1i1R2i1659272757R3R17R5y42:data%2Ftmp%2Fdata%2Ffont%2FDomCasualD.bfntghy30:data%2Ffont%2FArial%20Bold.fntaoR1i1R2i1659272757R3R20R5y44:data%2Ftmp%2Fdata%2Ffont%2FArial%20Bold.bfntghh
|
||||
by27:font%2FLucida%20Console.fntaoy3:outy34:tmp%2Ffont%2FLucida%20Console.bfnty3:veri1y4:hashy40:b56483df1b8f3d8472856b51459d5ce8f3cdfa09y4:timei1672239804ghy16:font%2FEXPON.fntaoR1y23:tmp%2Ffont%2FEXPON.bfntR3i1R4y40:ba8ecd55d9475ee0f9d20c9a5189fe6a9c9ff727R6i1659272757ghy21:font%2FDomCasualD.fntaoR1y28:tmp%2Ffont%2FDomCasualD.bfntR3i1R4y40:ea40ffbf969a51d3e653a3d09b450143a814c7eeR6i1659272757ghy30:data%2Ffont%2FArial%20Bold.fntaoR1y44:data%2Ftmp%2Fdata%2Ffont%2FArial%20Bold.bfntR3i1R4y40:dce4a5edf92262f9ea5540d55271f8423683d064R6i1670297462ghy23:font%2FArial%20Bold.fntaoR1y30:tmp%2Ffont%2FArial%20Bold.bfntR3i1R4R15R6i1659272757ghy28:data%2Ffont%2FMarkerFelt.fntaoR1y42:data%2Ftmp%2Fdata%2Ffont%2FMarkerFelt.bfntR3i1R4y40:eb239790210478413cc111da54400b3d38aba041R6i1672239219ghy16:font%2Farial.fntaoR1y23:tmp%2Ffont%2Farial.bfntR3i1R4y40:dc7f069d72e0d1b6b7edfd5b9e6af9c22f9c641cR6i1659272757ghy21:font%2FMarkerFelt.fntaoR1y28:tmp%2Ffont%2FMarkerFelt.bfntR3i1R4R20R6i1672239219ghy34:data%2Ffont%2FLucida%20Console.fntaoR1y48:data%2Ftmp%2Fdata%2Ffont%2FLucida%20Console.bfntR3i1R4R5R6i1672239804ghy28:data%2Ffont%2FDomCasualD.fntaoR1y42:data%2Ftmp%2Fdata%2Ffont%2FDomCasualD.bfntR3i1R4R12R6i1670297462ghy23:data%2Ffont%2Farial.fntaoR1y37:data%2Ftmp%2Fdata%2Ffont%2Farial.bfntR3i1R4R23R6i1670297462ghy23:data%2Ffont%2FEXPON.fntaoR1y37:data%2Ftmp%2Fdata%2Ffont%2FEXPON.bfntR3i1R4R9R6i1674008352ghh
|
||||
BIN
marblegame.hl
BIN
marblegame.hl
Binary file not shown.
|
|
@ -132,6 +132,7 @@ class MarbleWorld extends Scheduler {
|
|||
// Replay
|
||||
public var replay:Replay;
|
||||
public var isWatching:Bool = false;
|
||||
public var wasRecording:Bool = false;
|
||||
public var isRecording:Bool = false;
|
||||
|
||||
// Loading
|
||||
|
|
@ -155,7 +156,7 @@ class MarbleWorld extends Scheduler {
|
|||
this.scene2d = scene2d;
|
||||
this.mission = mission;
|
||||
this.replay = new Replay(mission.path);
|
||||
this.isRecording = record;
|
||||
this.isRecording = this.wasRecording = record;
|
||||
}
|
||||
|
||||
public function init() {
|
||||
|
|
@ -1231,7 +1232,8 @@ class MarbleWorld extends Scheduler {
|
|||
this.finishYaw = this.marble.camera.CameraYaw;
|
||||
this.finishPitch = this.marble.camera.CameraPitch;
|
||||
displayAlert("Congratulations! You've finished!");
|
||||
this.schedule(this.timeState.currentAttemptTime + 2, () -> cast showFinishScreen());
|
||||
if (!this.isWatching)
|
||||
this.schedule(this.timeState.currentAttemptTime + 2, () -> cast showFinishScreen());
|
||||
// Stop the ongoing sounds
|
||||
if (timeTravelSound != null) {
|
||||
timeTravelSound.stop();
|
||||
|
|
@ -1241,15 +1243,16 @@ class MarbleWorld extends Scheduler {
|
|||
}
|
||||
|
||||
function showFinishScreen() {
|
||||
if (this.isWatching)
|
||||
return 0;
|
||||
var egg:EndGameGui = null;
|
||||
#if js
|
||||
var pointercontainer = js.Browser.document.querySelector("#pointercontainer");
|
||||
pointercontainer.hidden = false;
|
||||
#end
|
||||
if (this.isRecording) {
|
||||
this.schedule(this.timeState.currentAttemptTime + 3, () -> {
|
||||
this.isRecording = false; // Stop recording here
|
||||
this.saveReplay();
|
||||
}
|
||||
}, "stopRecordingTimeout");
|
||||
if (Util.isTouchDevice()) {
|
||||
MarbleGame.instance.touchInput.setControlsEnabled(false);
|
||||
}
|
||||
|
|
@ -1257,6 +1260,13 @@ class MarbleWorld extends Scheduler {
|
|||
if (Util.isTouchDevice()) {
|
||||
MarbleGame.instance.touchInput.hideControls(@:privateAccess this.playGui.playGuiCtrl);
|
||||
}
|
||||
if (this.isRecording) {
|
||||
this.isRecording = false; // Stop recording here if we haven't already
|
||||
this.clearScheduleId("stopRecordingTimeout");
|
||||
}
|
||||
if (this.wasRecording) {
|
||||
this.saveReplay();
|
||||
}
|
||||
this.dispose();
|
||||
var pmg = new PlayMissionGui();
|
||||
PlayMissionGui.currentSelectionStatic = mission.index + 1;
|
||||
|
|
@ -1266,6 +1276,13 @@ class MarbleWorld extends Scheduler {
|
|||
#end
|
||||
}, (sender) -> {
|
||||
MarbleGame.canvas.popDialog(egg);
|
||||
if (this.isRecording) {
|
||||
this.clearScheduleId("stopRecordingTimeout");
|
||||
}
|
||||
if (this.wasRecording) {
|
||||
this.saveReplay();
|
||||
this.isRecording = true;
|
||||
}
|
||||
this.setCursorLock(true);
|
||||
this.restart();
|
||||
#if js
|
||||
|
|
@ -1386,6 +1403,9 @@ class MarbleWorld extends Scheduler {
|
|||
|
||||
public function saveReplay() {
|
||||
var replayBytes = this.replay.write();
|
||||
var defaultFilename = '${this.mission.title} ${
|
||||
this.finishTime == null ? "Unfinished Run" : Std.string(this.finishTime.gameplayClock)
|
||||
}.mbr';
|
||||
#if hl
|
||||
hxd.File.saveAs(replayBytes, {
|
||||
title: 'Save Replay',
|
||||
|
|
@ -1395,7 +1415,7 @@ class MarbleWorld extends Scheduler {
|
|||
extensions: ["mbr"]
|
||||
}
|
||||
],
|
||||
defaultPath: '${this.mission.title}${this.timeState.gameplayClock}.mbr'
|
||||
defaultPath: defaultFilename
|
||||
});
|
||||
#end
|
||||
#if js
|
||||
|
|
@ -1403,7 +1423,7 @@ class MarbleWorld extends Scheduler {
|
|||
type: 'application/octet-stream'
|
||||
});
|
||||
var url = js.html.URL.createObjectURL(blob);
|
||||
var fname = '${this.mission.title}${this.timeState.gameplayClock}.mbr';
|
||||
var fname = defaultFilename;
|
||||
var element = js.Browser.document.createElement('a');
|
||||
element.setAttribute('href', url);
|
||||
element.setAttribute('download', fname);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue