diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index f7e7ef90..a8452f77 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -6,7 +6,7 @@ jobs:
build:
name: Linux Build
permissions: write-all
- runs-on: ubuntu-latest
+ runs-on: ubuntu-20.04
steps:
- name: Pulling the source
uses: actions/checkout@v2
diff --git a/libs.xml b/libs.xml
index 79f071fc..ad7ccd8d 100644
--- a/libs.xml
+++ b/libs.xml
@@ -12,7 +12,7 @@
-
+
diff --git a/source/funkin/game/cutscenes/VideoCutscene.hx b/source/funkin/game/cutscenes/VideoCutscene.hx
index 68a86b92..8e290631 100644
--- a/source/funkin/game/cutscenes/VideoCutscene.hx
+++ b/source/funkin/game/cutscenes/VideoCutscene.hx
@@ -7,7 +7,10 @@ import flixel.addons.display.FlxBackdrop;
import sys.io.File;
#end
import funkin.backend.FunkinText;
+import haxe.io.FPHelper;
import haxe.xml.Access;
+import haxe.Int64;
+import flixel.util.FlxTimer;
#if VIDEO_CUTSCENES
import hxvlc.flixel.FlxVideo;
#end
@@ -56,6 +59,11 @@ class VideoCutscene extends Cutscene {
video.onEndReached.add(video.dispose);
video.onEndReached.add(close);
+ //cover = new FlxSprite(0, FlxG.height * 0.85).makeSolid(FlxG.width + 50, FlxG.height + 50, 0xFF000000);
+ //cover.scrollFactor.set(0, 0);
+ //cover.screenCenter();
+ //add(cover);
+
bg = new FlxSprite(0, FlxG.height * 0.85).makeGraphic(1, 1, 0xFF000000);
bg.alpha = 0.5;
bg.visible = false;
@@ -85,7 +93,12 @@ class VideoCutscene extends Cutscene {
videoReady = true;
});
} else {
- video.play(localPath);
+ if (video.load(localPath))
+ new FlxTimer().start(0.001, function(tmr:FlxTimer) {
+ video.play();
+ });
+ else
+ close();
}
add(bg);
add(subtitle);
@@ -160,13 +173,28 @@ class VideoCutscene extends Cutscene {
#if VIDEO_CUTSCENES
if (videoReady) {
videoReady = false;
- video.play(localPath);
+
+ if (video.load(localPath))
+ new FlxTimer().start(0.001, function(tmr:FlxTimer) {
+ video.play();
+ });
+ else
+ {
+ close();
+
+ if (loadingBackdrop != null)
+ loadingBackdrop.visible = false;
+
+ return;
+ }
+
if (loadingBackdrop != null)
loadingBackdrop.visible = false;
}
@:privateAccess
- var time = video.time;
- while (subtitles.length > 0 && subtitles[0].time < time)
+ var time:Int64 = video.time;
+
+ while (subtitles.length > 0 && subtitles[0].time < Math.round(FPHelper.i64ToDouble(time.low, time.high)))
setSubtitle(subtitles.shift());
if (loadingBackdrop != null) {