diff --git a/source/funkin/backend/scripting/Script.hx b/source/funkin/backend/scripting/Script.hx index ca754082..773340d5 100644 --- a/source/funkin/backend/scripting/Script.hx +++ b/source/funkin/backend/scripting/Script.hx @@ -96,6 +96,18 @@ class Script extends FlxBasic implements IFlxDestroyable { "BitmapUtil" => funkin.backend.utils.BitmapUtil, ]; } + + /** + * Used internally to keep backwards compatability with old scripts. + * This gets set on `hscript.Interp.importRedirects`, + * if you wanna modify it, please edit `hscript.Interp.importRedirects` directly. + **/ + public static function getDefaultImportRedirects():Map { + return [ + "Meow" => "funkin.backend.utils.CoolUtil", + ]; + } + public static function getDefaultPreprocessors():Map { var defines = funkin.backend.system.macros.DefinesMacro.defines; defines.set("CODENAME_ENGINE", true); diff --git a/source/funkin/backend/system/Main.hx b/source/funkin/backend/system/Main.hx index e0fd7e07..a487f92a 100644 --- a/source/funkin/backend/system/Main.hx +++ b/source/funkin/backend/system/Main.hx @@ -117,6 +117,9 @@ class Main extends Sprite ShaderResizeFix.init(); Logs.init(); Paths.init(); + + hscript.Interp.importRedirects = funkin.backend.scripting.Script.getDefaultImportRedirects(); + #if GLOBAL_SCRIPT funkin.backend.scripting.GlobalScript.init(); #end diff --git a/source/funkin/game/cutscenes/VideoCutscene.hx b/source/funkin/game/cutscenes/VideoCutscene.hx index 8906dfa0..9216c340 100644 --- a/source/funkin/game/cutscenes/VideoCutscene.hx +++ b/source/funkin/game/cutscenes/VideoCutscene.hx @@ -159,7 +159,7 @@ class VideoCutscene extends Cutscene { public static function splitTime(str:String):Float { if (str == null || str.trim() == "") return -1; - var multipliers:Array = [1, 60, 3600, 86400]; // no way a cutscene will last longer than days + var multipliers:Array = [1, 60, 3600, 86400, 31536000]; // no way a cutscene will last longer than years var timeSplit:Array> = [for(e in str.split(":")) Std.parseFloat(e.replace(",", "."))]; var time:Float = 0; @@ -185,7 +185,13 @@ class VideoCutscene extends Cutscene { public override function update(elapsed:Float) { super.update(elapsed); - if(loadingBackdrop == null && curSubtitle < subtitles.length && haxe.Int64.toInt(video.bitmap.time) >= subtitles[curSubtitle].time) { + if(loadingBackdrop != null) return; + + @:privateAccess + var time:Int64 = video.bitmap.time; + var time:Float = FPHelper.i64ToDouble(time.low, time.high); + + if(curSubtitle < subtitles.length && subtitles[curSubtitle].time < time) { setSubtitle(subtitles[curSubtitle]); curSubtitle++; }