diff --git a/art/flashFiles/RECOVER_GF_ass_sets.fla b/art/flashFiles/RECOVER_GF_ass_sets.fla new file mode 100644 index 00000000..9d77f305 Binary files /dev/null and b/art/flashFiles/RECOVER_GF_ass_sets.fla differ diff --git a/assets/images/characters/gf/spritemap1.json b/assets/images/characters/gf/spritemap1.json index 5ada4bf4..abdff4ab 100644 --- a/assets/images/characters/gf/spritemap1.json +++ b/assets/images/characters/gf/spritemap1.json @@ -1,57 +1,57 @@ {"ATLAS": {"SPRITES":[ -{"SPRITE" : {"name": "0000","x":1603,"y":590,"w":287,"h":360,"rotated": false}}, -{"SPRITE" : {"name": "0001","x":1294,"y":261,"w":309,"h":375,"rotated": false}}, -{"SPRITE" : {"name": "0002","x":0,"y":0,"w":420,"h":359,"rotated": false}}, -{"SPRITE" : {"name": "0003","x":420,"y":0,"w":406,"h":358,"rotated": false}}, -{"SPRITE" : {"name": "0004","x":0,"y":627,"w":336,"h":165,"rotated": false}}, -{"SPRITE" : {"name": "0005","x":1201,"y":501,"w":90,"h":103,"rotated": false}}, -{"SPRITE" : {"name": "0006","x":1799,"y":0,"w":215,"h":242,"rotated": false}}, -{"SPRITE" : {"name": "0007","x":1201,"y":636,"w":213,"h":240,"rotated": false}}, -{"SPRITE" : {"name": "0008","x":594,"y":648,"w":191,"h":120,"rotated": false}}, -{"SPRITE" : {"name": "0009","x":1890,"y":739,"w":90,"h":151,"rotated": false}}, -{"SPRITE" : {"name": "0010","x":336,"y":648,"w":258,"h":124,"rotated": false}}, -{"SPRITE" : {"name": "0011","x":221,"y":839,"w":122,"h":67,"rotated": false}}, -{"SPRITE" : {"name": "0012","x":1414,"y":733,"w":108,"h":126,"rotated": false}}, -{"SPRITE" : {"name": "0013","x":1890,"y":590,"w":103,"h":149,"rotated": false}}, -{"SPRITE" : {"name": "0014","x":594,"y":768,"w":95,"h":130,"rotated": false}}, -{"SPRITE" : {"name": "0015","x":2014,"y":0,"w":1,"h":4,"rotated": false}}, -{"SPRITE" : {"name": "0016","x":826,"y":245,"w":468,"h":256,"rotated": false}}, -{"SPRITE" : {"name": "0017","x":826,"y":0,"w":510,"h":245,"rotated": false}}, -{"SPRITE" : {"name": "0018","x":1336,"y":0,"w":463,"h":261,"rotated": false}}, -{"SPRITE" : {"name": "0019","x":0,"y":359,"w":418,"h":268,"rotated": false}}, -{"SPRITE" : {"name": "0020","x":814,"y":501,"w":387,"h":271,"rotated": false}}, -{"SPRITE" : {"name": "0021","x":420,"y":358,"w":394,"h":290,"rotated": false}}, -{"SPRITE" : {"name": "0022","x":1603,"y":261,"w":352,"h":329,"rotated": false}}, -{"SPRITE" : {"name": "0023","x":1522,"y":839,"w":67,"h":70,"rotated": false}}, -{"SPRITE" : {"name": "0024","x":471,"y":839,"w":122,"h":62,"rotated": false}}, -{"SPRITE" : {"name": "0025","x":1522,"y":733,"w":64,"h":106,"rotated": false}}, -{"SPRITE" : {"name": "0026","x":1993,"y":551,"w":55,"h":112,"rotated": false}}, -{"SPRITE" : {"name": "0027","x":689,"y":768,"w":98,"h":118,"rotated": false}}, -{"SPRITE" : {"name": "0028","x":1980,"y":739,"w":59,"h":105,"rotated": false}}, -{"SPRITE" : {"name": "0029","x":1955,"y":242,"w":87,"h":160,"rotated": false}}, -{"SPRITE" : {"name": "0030","x":1955,"y":402,"w":92,"h":149,"rotated": false}}, -{"SPRITE" : {"name": "0031","x":221,"y":792,"w":104,"h":42,"rotated": false}}, -{"SPRITE" : {"name": "0032","x":1871,"y":242,"w":73,"h":18,"rotated": false}}, -{"SPRITE" : {"name": "0033","x":1799,"y":242,"w":72,"h":19,"rotated": false}}, -{"SPRITE" : {"name": "0034","x":336,"y":627,"w":72,"h":18,"rotated": false}}, -{"SPRITE" : {"name": "0035","x":1201,"y":604,"w":73,"h":20,"rotated": false}}, -{"SPRITE" : {"name": "0036","x":336,"y":772,"w":179,"h":67,"rotated": false}}, -{"SPRITE" : {"name": "0037","x":0,"y":792,"w":118,"h":75,"rotated": false}}, -{"SPRITE" : {"name": "0038","x":343,"y":839,"w":128,"h":61,"rotated": false}}, -{"SPRITE" : {"name": "0039","x":787,"y":855,"w":124,"h":58,"rotated": false}}, -{"SPRITE" : {"name": "0040","x":787,"y":772,"w":117,"h":83,"rotated": false}}, -{"SPRITE" : {"name": "0041","x":904,"y":772,"w":117,"h":83,"rotated": false}}, -{"SPRITE" : {"name": "0042","x":118,"y":792,"w":103,"h":83,"rotated": false}}, -{"SPRITE" : {"name": "0043","x":1021,"y":772,"w":117,"h":83,"rotated": false}}, -{"SPRITE" : {"name": "0044","x":1414,"y":636,"w":174,"h":97,"rotated": false}}, -{"SPRITE" : {"name": "0045","x":911,"y":855,"w":82,"h":14,"rotated": false}} +{"SPRITE" : {"name": "0000","x":1623,"y":602,"w":287,"h":360,"rotated": false}}, +{"SPRITE" : {"name": "0001","x":1310,"y":269,"w":309,"h":375,"rotated": false}}, +{"SPRITE" : {"name": "0002","x":4,"y":4,"w":420,"h":359,"rotated": false}}, +{"SPRITE" : {"name": "0003","x":428,"y":4,"w":406,"h":358,"rotated": false}}, +{"SPRITE" : {"name": "0004","x":4,"y":639,"w":336,"h":165,"rotated": false}}, +{"SPRITE" : {"name": "0005","x":125,"y":808,"w":90,"h":103,"rotated": false}}, +{"SPRITE" : {"name": "0006","x":1819,"y":4,"w":215,"h":242,"rotated": false}}, +{"SPRITE" : {"name": "0007","x":1217,"y":648,"w":213,"h":240,"rotated": false}}, +{"SPRITE" : {"name": "0008","x":606,"y":660,"w":191,"h":120,"rotated": false}}, +{"SPRITE" : {"name": "0009","x":606,"y":784,"w":90,"h":151,"rotated": false}}, +{"SPRITE" : {"name": "0010","x":344,"y":660,"w":258,"h":124,"rotated": false}}, +{"SPRITE" : {"name": "0011","x":448,"y":859,"w":122,"h":67,"rotated": false}}, +{"SPRITE" : {"name": "0012","x":1914,"y":755,"w":108,"h":126,"rotated": false}}, +{"SPRITE" : {"name": "0013","x":1914,"y":602,"w":103,"h":149,"rotated": false}}, +{"SPRITE" : {"name": "0014","x":700,"y":784,"w":95,"h":130,"rotated": false}}, +{"SPRITE" : {"name": "0015","x":2038,"y":4,"w":1,"h":4,"rotated": false}}, +{"SPRITE" : {"name": "0016","x":838,"y":253,"w":468,"h":256,"rotated": false}}, +{"SPRITE" : {"name": "0017","x":838,"y":4,"w":510,"h":245,"rotated": false}}, +{"SPRITE" : {"name": "0018","x":1352,"y":4,"w":463,"h":261,"rotated": false}}, +{"SPRITE" : {"name": "0019","x":4,"y":367,"w":418,"h":268,"rotated": false}}, +{"SPRITE" : {"name": "0020","x":826,"y":513,"w":387,"h":271,"rotated": false}}, +{"SPRITE" : {"name": "0021","x":428,"y":366,"w":394,"h":290,"rotated": false}}, +{"SPRITE" : {"name": "0022","x":1623,"y":269,"w":352,"h":329,"rotated": false}}, +{"SPRITE" : {"name": "0023","x":1143,"y":788,"w":67,"h":70,"rotated": false}}, +{"SPRITE" : {"name": "0024","x":1033,"y":875,"w":122,"h":62,"rotated": false}}, +{"SPRITE" : {"name": "0025","x":1217,"y":513,"w":64,"h":106,"rotated": false}}, +{"SPRITE" : {"name": "0026","x":1979,"y":359,"w":55,"h":112,"rotated": false}}, +{"SPRITE" : {"name": "0027","x":799,"y":788,"w":98,"h":118,"rotated": false}}, +{"SPRITE" : {"name": "0028","x":1979,"y":250,"w":59,"h":105,"rotated": false}}, +{"SPRITE" : {"name": "0029","x":1434,"y":749,"w":87,"h":160,"rotated": false}}, +{"SPRITE" : {"name": "0030","x":1525,"y":749,"w":92,"h":149,"rotated": false}}, +{"SPRITE" : {"name": "0031","x":219,"y":887,"w":104,"h":42,"rotated": false}}, +{"SPRITE" : {"name": "0032","x":527,"y":811,"w":73,"h":18,"rotated": false}}, +{"SPRITE" : {"name": "0033","x":527,"y":788,"w":72,"h":19,"rotated": false}}, +{"SPRITE" : {"name": "0034","x":527,"y":833,"w":72,"h":18,"rotated": false}}, +{"SPRITE" : {"name": "0035","x":1217,"y":623,"w":73,"h":20,"rotated": false}}, +{"SPRITE" : {"name": "0036","x":344,"y":788,"w":179,"h":67,"rotated": false}}, +{"SPRITE" : {"name": "0037","x":219,"y":808,"w":118,"h":75,"rotated": false}}, +{"SPRITE" : {"name": "0038","x":901,"y":875,"w":128,"h":61,"rotated": false}}, +{"SPRITE" : {"name": "0039","x":1914,"y":885,"w":124,"h":58,"rotated": false}}, +{"SPRITE" : {"name": "0040","x":901,"y":788,"w":117,"h":83,"rotated": false}}, +{"SPRITE" : {"name": "0041","x":1022,"y":788,"w":117,"h":83,"rotated": false}}, +{"SPRITE" : {"name": "0042","x":341,"y":859,"w":103,"h":83,"rotated": false}}, +{"SPRITE" : {"name": "0043","x":4,"y":808,"w":117,"h":83,"rotated": false}}, +{"SPRITE" : {"name": "0044","x":1434,"y":648,"w":174,"h":97,"rotated": false}}, +{"SPRITE" : {"name": "0045","x":1819,"y":250,"w":82,"h":14,"rotated": false}} ]}, "meta": { "app": "Adobe Animate", "version": "21.0.1.37179", "image": "spritemap1.png", "format": "RGBA8888", -"size": {"w":2048,"h":950}, +"size": {"w":2043,"h":966}, "resolution": "1" } } diff --git a/assets/images/characters/gf/spritemap1.png b/assets/images/characters/gf/spritemap1.png index 5ea14bf0..2832787e 100644 Binary files a/assets/images/characters/gf/spritemap1.png and b/assets/images/characters/gf/spritemap1.png differ diff --git a/source/funkin/system/FlxAnimate.hx b/source/funkin/system/FlxAnimate.hx index b9e70574..2f226ed5 100644 --- a/source/funkin/system/FlxAnimate.hx +++ b/source/funkin/system/FlxAnimate.hx @@ -9,58 +9,63 @@ import flixel.graphics.frames.FlxFrame; import flixel.math.FlxPoint; class FlxAnimate extends flxanimate.FlxAnimate { + static var rMatrix = new FlxMatrix(); - override function drawLimb(limb:FlxFrame, _matrix:FlxMatrix, ?colorTransform:ColorTransform) + override function drawLimb(limb:FlxFrame, _rMatrix:FlxMatrix, ?colorTransform:ColorTransform) { if (alpha == 0 || colorTransform != null && (colorTransform.alphaMultiplier == 0 || colorTransform.alphaOffset == -255) || limb == null || limb.type == EMPTY) return; for (camera in cameras) { - var matrix = new FlxMatrix(); - matrix.concat(_matrix); - if (!camera.visible || !camera.exists || !limbOnScreen(limb, _matrix, camera)) + rMatrix.identity(); + rMatrix.translate(-limb.offset.x, -limb.offset.y); + rMatrix.concat(_rMatrix); + if (!camera.visible || !camera.exists || !limbOnScreen(limb, _rMatrix, camera)) return; getScreenPosition(_point, camera).subtractPoint(offset); - matrix.translate(-origin.x, -origin.y); + rMatrix.translate(-origin.x, -origin.y); if (limb.name != "pivot") { if (rotOffsetAngle != null && rotOffsetAngle != angle) { var angleOff = (-angle + rotOffsetAngle) * FlxAngle.TO_RAD; - matrix.rotate(-angleOff); + rMatrix.rotate(-angleOff); if (useOffsetAsRotOffset) - matrix.translate(-offset.x, -offset.y); + rMatrix.translate(-offset.x, -offset.y); else - matrix.translate(-rotOffset.x, -rotOffset.y); - matrix.rotate(angleOff); + rMatrix.translate(-rotOffset.x, -rotOffset.y); + rMatrix.rotate(angleOff); } else { if (useOffsetAsRotOffset) - matrix.translate(-offset.x, -offset.y); + rMatrix.translate(-offset.x, -offset.y); else - matrix.translate(-rotOffset.x, -rotOffset.y); + rMatrix.translate(-rotOffset.x, -rotOffset.y); } - matrix.scale(scale.x, scale.y); + rMatrix.scale(scale.x, scale.y); if (bakedRotationAngle <= 0) { updateTrig(); if (angle != 0) - matrix.rotateWithTrig(_cosAngle, _sinAngle); + rMatrix.rotateWithTrig(_cosAngle, _sinAngle); } } else - matrix.a = matrix.d = 0.7 / camera.zoom; + rMatrix.a = rMatrix.d = 0.7 / camera.zoom; + + //rMatrix.concat(_skewMatrix); + _point.addPoint(origin); if (isPixelPerfectRender(camera)) { _point.floor(); } - matrix.translate(_point.x, _point.y); - camera.drawPixels(limb, null, matrix, colorTransform, blend, antialiasing); + rMatrix.translate(_point.x, _point.y); + camera.drawPixels(limb, null, rMatrix, colorTransform, blend, antialiasing); #if FLX_DEBUG FlxBasic.visibleCount++; #end