diff --git a/source/funkin/backend/scripting/GlobalScript.hx b/source/funkin/backend/scripting/GlobalScript.hx index 8bb1fa8b..cb589371 100644 --- a/source/funkin/backend/scripting/GlobalScript.hx +++ b/source/funkin/backend/scripting/GlobalScript.hx @@ -106,20 +106,8 @@ class GlobalScript { }); } - public static function event(name:String, event:T):T { - if (scripts != null) - scripts.event(name, event); - return event; - } - - public static function call(name:String, ?args:Array) { - if (scripts != null) - scripts.call(name, args); - } - public static function onModSwitch(newMod:String) { - call("destroy"); - scripts = FlxDestroyUtil.destroy(scripts); + destroy(); scripts = new ScriptPack("GlobalScript"); for (i in funkin.backend.assets.ModsFolder.getLoadedMods()) { var path = Paths.script('data/global/LIB_$i'); @@ -132,12 +120,24 @@ class GlobalScript { } } - public static function beatHit(curBeat:Int) { - call("beatHit", [curBeat]); + public static inline function event(name:String, event:T):T { + if (scripts != null) + scripts.event(name, event); + return event; } - public static function stepHit(curStep:Int) { + public static inline function call(name:String, ?args:Array) + if (scripts != null) scripts.call(name, args); + + public static inline function beatHit(curBeat:Int) + call("beatHit", [curBeat]); + + public static inline function stepHit(curStep:Int) call("stepHit", [curStep]); + + public static inline function destroy() if (scripts != null) { + call("destroy"); + scripts = FlxDestroyUtil.destroy(scripts); } } #end \ No newline at end of file diff --git a/source/funkin/backend/system/MainState.hx b/source/funkin/backend/system/MainState.hx index 6762652d..982152d5 100644 --- a/source/funkin/backend/system/MainState.hx +++ b/source/funkin/backend/system/MainState.hx @@ -92,6 +92,9 @@ class MainState extends FlxState { } #end + #if GLOBAL_SCRIPT + funkin.backend.scripting.GlobalScript.destroy(); + #end funkin.backend.scripting.Script.staticVariables.clear(); #if MOD_SUPPORT