diff --git a/source/funkin/backend/system/Main.hx b/source/funkin/backend/system/Main.hx index b04addd5..50cfbf3f 100644 --- a/source/funkin/backend/system/Main.hx +++ b/source/funkin/backend/system/Main.hx @@ -12,7 +12,7 @@ import funkin.menus.TitleState; import flixel.FlxGame; import flixel.FlxState; import openfl.Assets; -import flash.Lib; +import openfl.Lib; import openfl.display.FPS; import openfl.display.Sprite; import openfl.events.Event; diff --git a/source/funkin/backend/utils/CoolUtil.hx b/source/funkin/backend/utils/CoolUtil.hx index 6e6e7708..ca4e1021 100644 --- a/source/funkin/backend/utils/CoolUtil.hx +++ b/source/funkin/backend/utils/CoolUtil.hx @@ -16,7 +16,7 @@ import flixel.util.FlxColor; import flixel.util.FlxAxes; import flixel.graphics.frames.FlxFrame; import flixel.graphics.frames.FlxFramesCollection; -import flash.geom.ColorTransform; +import openfl.geom.ColorTransform; import funkin.backend.chart.Chart; import haxe.CallStack; diff --git a/source/funkin/game/Character.hx b/source/funkin/game/Character.hx index 548315fd..67673047 100644 --- a/source/funkin/game/Character.hx +++ b/source/funkin/game/Character.hx @@ -16,7 +16,7 @@ import haxe.Exception; import haxe.io.Path; import funkin.backend.system.Conductor; -import flash.geom.ColorTransform; +import openfl.geom.ColorTransform; import funkin.backend.scripting.DummyScript; import funkin.backend.scripting.Script; diff --git a/source/funkin/game/HudCamera.hx b/source/funkin/game/HudCamera.hx index dea1ba06..452be12d 100644 --- a/source/funkin/game/HudCamera.hx +++ b/source/funkin/game/HudCamera.hx @@ -3,14 +3,14 @@ package funkin.game; import lime.app.Application; import flixel.graphics.tile.FlxGraphicsShader; -import flash.display.Bitmap; -import flash.display.BitmapData; -import flash.display.DisplayObject; -import flash.display.Graphics; -import flash.display.Sprite; -import flash.geom.ColorTransform; -import flash.geom.Point; -import flash.geom.Rectangle; +import openfl.display.Bitmap; +import openfl.display.BitmapData; +import openfl.display.DisplayObject; +import openfl.display.Graphics; +import openfl.display.Sprite; +import openfl.geom.ColorTransform; +import openfl.geom.Point; +import openfl.geom.Rectangle; import flixel.graphics.FlxGraphic; import flixel.graphics.frames.FlxFrame; import flixel.graphics.tile.FlxDrawBaseItem; @@ -31,17 +31,28 @@ class HudCamera extends FlxCamera { public var downscroll:Bool = false; public override function update(elapsed:Float) { super.update(elapsed); - flipY = downscroll; + // flipY = downscroll; } - public override function drawPixels(?frame:FlxFrame, ?pixels:BitmapData, matrix:FlxMatrix, ?transform:ColorTransform, ?blend:BlendMode, ?smoothing:Bool = false, - ?shader:FlxShader):Void - { + // public override function drawPixels(?frame:FlxFrame, ?pixels:BitmapData, matrix:FlxMatrix, ?transform:ColorTransform, ?blend:BlendMode, ?smoothing:Bool = false, + // ?shader:FlxShader):Void + // { + // if (downscroll) { + // matrix.scale(1, -1); + // matrix.translate(0, height); + // } + // super.drawPixels(frame, pixels, matrix, transform, blend, smoothing, shader); + // } + + + public override function alterScreenPosition(spr:FlxObject, pos:FlxPoint) { if (downscroll) { - matrix.scale(1, -1); - matrix.translate(0, height); + var oldPoint = FlxPoint.get(pos.x, pos.y); + pos.set(pos.x, height - pos.y - spr.height); + + oldPoint.put(); } - super.drawPixels(frame, pixels, matrix, transform, blend, smoothing, shader); + return pos; } } \ No newline at end of file diff --git a/source/funkin/game/Note.hx b/source/funkin/game/Note.hx index bbf058fb..38672c56 100644 --- a/source/funkin/game/Note.hx +++ b/source/funkin/game/Note.hx @@ -192,10 +192,18 @@ class Note extends FlxSprite public var strumRelativePos:Bool = true; override function drawComplex(camera:FlxCamera) { - flipY = (isSustainNote && flipSustain) && ((camera is HudCamera ? cast(camera, HudCamera).downscroll : false) != (__strum != null && __strum.getScrollSpeed(this) < 0)); - super.drawComplex(camera); + var downscrollCam = (camera is HudCamera ? cast(camera, HudCamera).downscroll : false); + flipY = (isSustainNote && flipSustain) && (downscrollCam != (__strum != null && __strum.getScrollSpeed(this) < 0)); + if (downscrollCam) { + frameOffset.y += __notePosFrameOffset.y * 2; + super.drawComplex(camera); + frameOffset.y -= __notePosFrameOffset.y * 2; + } else + super.drawComplex(camera); } + var __notePosFrameOffset:FlxPoint = FlxPoint.get(); + override function draw() { @:privateAccess var oldDefaultCameras = FlxCamera._defaultCameras; @:privateAccess if (__strumCameras != null) FlxCamera._defaultCameras = __strumCameras; @@ -208,8 +216,10 @@ class Note extends FlxSprite setPosition(__strum.x, __strum.y); - frameOffset.x -= pos.x / scale.x; - frameOffset.y -= pos.y / scale.y; + __notePosFrameOffset.set(pos.x / scale.x, pos.y / scale.y); + + frameOffset.x -= __notePosFrameOffset.x; + frameOffset.y -= __notePosFrameOffset.y; this.frameOffsetAngle = __noteAngle; @@ -217,12 +227,13 @@ class Note extends FlxSprite this.frameOffsetAngle = 0; - frameOffset.x += pos.x / scale.x; - frameOffset.y += pos.y / scale.y; + frameOffset.x += __notePosFrameOffset.x; + frameOffset.y += __notePosFrameOffset.y; setPosition(pos.x, pos.y); pos.put(); } else { + __notePosFrameOffset.set(0, 0); super.draw(); } @@ -274,4 +285,9 @@ class Note extends FlxSprite return rect; } + + public override function destroy() { + super.destroy(); + __notePosFrameOffset.put(); + } } diff --git a/source/funkin/menus/FreeplayState.hx b/source/funkin/menus/FreeplayState.hx index 3b2c78c2..50692a7e 100644 --- a/source/funkin/menus/FreeplayState.hx +++ b/source/funkin/menus/FreeplayState.hx @@ -3,7 +3,7 @@ package funkin.menus; import funkin.backend.chart.Chart; import funkin.backend.chart.ChartData; import haxe.io.Path; -import flash.text.TextField; +import openfl.text.TextField; import flixel.FlxState; import flixel.addons.display.FlxGridOverlay; import flixel.text.FlxText; diff --git a/source/lime/system/System.hx b/source/lime/system/System.hx index f14348be..9a54fbc3 100644 --- a/source/lime/system/System.hx +++ b/source/lime/system/System.hx @@ -10,12 +10,12 @@ import lime.utils.ArrayBuffer; import lime.utils.UInt8Array; import lime.utils.UInt16Array; #if flash -import flash.net.URLRequest; -import flash.system.Capabilities; -import flash.Lib; +import openfl.net.URLRequest; +import openfl.system.Capabilities; +import openfl.Lib; #end #if air -import flash.desktop.NativeApplication; +import openfl.desktop.NativeApplication; #end #if ((js && html5) || electron) import js.html.Element;