diff --git a/assets/data/characters/gf.xml b/assets/data/characters/gf.xml index dbfcdc14..29802acd 100644 --- a/assets/data/characters/gf.xml +++ b/assets/data/characters/gf.xml @@ -1,5 +1,5 @@ - + diff --git a/buildnumber.txt b/buildnumber.txt index ca49f25a..73e7adfa 100644 --- a/buildnumber.txt +++ b/buildnumber.txt @@ -1 +1 @@ -1913 \ No newline at end of file +1916 \ No newline at end of file diff --git a/source/funkin/system/FunkinSprite.hx b/source/funkin/system/FunkinSprite.hx index 0f4a0274..7aafabea 100644 --- a/source/funkin/system/FunkinSprite.hx +++ b/source/funkin/system/FunkinSprite.hx @@ -1,5 +1,6 @@ package funkin.system; +import flixel.FlxG; import openfl.utils.Assets; import flxanimate.FlxAnimate; import haxe.io.Path; @@ -12,6 +13,7 @@ import flixel.FlxCamera; import flixel.math.FlxMath; import funkin.interfaces.IBeatReceiver; import flixel.FlxSprite; +import flixel.util.FlxDestroyUtil; @:enum abstract XMLAnimType(Int) { @@ -38,6 +40,7 @@ class FunkinSprite extends FlxSprite implements IBeatReceiver implements IOffset public var animateAtlas:FlxAnimate; @:noCompletion public var atlasPlayingAnim:String; + @:noCompletion public var atlasPath:String; public override function update(elapsed:Float) { super.update(elapsed); @@ -50,6 +53,7 @@ class FunkinSprite extends FlxSprite implements IBeatReceiver implements IOffset if (Assets.exists('$noExt/Animation.json') && Assets.exists('$noExt/spritemap1.json') && Assets.exists('$noExt/spritemap1.png')) { + atlasPath = noExt; animateAtlas = new FlxAnimate(x, y, noExt); } else { @@ -127,6 +131,17 @@ class FunkinSprite extends FlxSprite implements IBeatReceiver implements IOffset animateAtlas.antialiasing = antialiasing; } } + + public override function destroy() { + super.destroy(); + if (animateAtlas != null) { + for(f in animateAtlas.frames.frames) + FlxG.bitmap.remove(f.parent); + Assets.cache.clear(atlasPath); + animateAtlas = FlxDestroyUtil.destroy(animateAtlas); + } + + } #end // SCALING FUNCS