From 5b963fb7f814c4d5fb089fead6e9f49a732700e9 Mon Sep 17 00:00:00 2001 From: Yoshman29 <81191621+YoshiCrafter29@users.noreply.github.com> Date: Mon, 20 Feb 2023 18:00:38 +0100 Subject: [PATCH] fixes --- assets/data/scripts/pixel.hx | 23 +++++++++---------- assets/data/scripts/week6-pause.hx | 2 +- assets/sounds/pixel/clickText.ogg | Bin 0 -> 7054 bytes buildnumber.txt | 2 +- source/funkin/game/Character.hx | 1 + source/funkin/game/PlayState.hx | 9 ++++++-- source/funkin/game/Stage.hx | 22 ++++++++++++------ source/funkin/game/StrumLine.hx | 4 ++++ source/funkin/system/FunkinGame.hx | 12 ++++++++++ source/funkin/system/framerate/SystemInfo.hx | 2 ++ 10 files changed, 54 insertions(+), 23 deletions(-) create mode 100644 assets/sounds/pixel/clickText.ogg diff --git a/assets/data/scripts/pixel.hx b/assets/data/scripts/pixel.hx index e829b49e..66530b0a 100644 --- a/assets/data/scripts/pixel.hx +++ b/assets/data/scripts/pixel.hx @@ -16,8 +16,8 @@ static var daPixelZoom = 6; * UI */ function onNoteCreation(event) { - if (event.note.mustPress && !pixelNotesForBF) return; - if (!event.note.mustPress && !pixelNotesForDad) return; + if (event.note.strumLine == playerStrums && !pixelNotesForBF) return; + if (event.note.strumLine == cpuStrums && !pixelNotesForDad) return; event.cancel(); @@ -105,14 +105,12 @@ function onStartCountdown() { FlxG.cameras.add(newNoteCamera, false); var pixelSwagWidth = Note.swagWidth + (daPixelZoom - (Note.swagWidth % daPixelZoom)); - // TODO: multikey support?? - for(s in 0...4) { + + for(p in players) { var i = 0; - for(str in [cpuStrums.members[s], playerStrums.members[s]]) { - // TODO: middlescroll??? - str.x = (FlxG.width * (0.25 + (0.5 * i))) + (pixelSwagWidth * (s - 2)); + for(str in p.members) { + str.x = (FlxG.width * strumOffset) + (pixelSwagWidth * (i - 2)); str.x -= str.x % daPixelZoom; - str.cameras = [newNoteCamera]; i++; } } @@ -153,10 +151,11 @@ function postUpdate(elapsed) { e.downscroll = camHUD.downscroll; } if (enableCameraHacks) { - notes.forEach(function(n) { - n.y -= n.y % daPixelZoom; - n.x -= n.x % daPixelZoom; - }); + for(p in players) + p.notes.forEach(function(n) { + n.y -= n.y % daPixelZoom; + n.x -= n.x % daPixelZoom; + }); } for(e in pixellyCameras) { diff --git a/assets/data/scripts/week6-pause.hx b/assets/data/scripts/week6-pause.hx index 2303b509..7a6b58af 100644 --- a/assets/data/scripts/week6-pause.hx +++ b/assets/data/scripts/week6-pause.hx @@ -11,7 +11,7 @@ var hand:FlxSprite; var texts:Array = []; -var isThorns = PlayState.SONG.song.toLowerCase() == "thorns"; +var isThorns = PlayState.SONG.meta.name.toLowerCase() == "thorns"; function create(event) { // cancel default pause menu!! diff --git a/assets/sounds/pixel/clickText.ogg b/assets/sounds/pixel/clickText.ogg new file mode 100644 index 0000000000000000000000000000000000000000..78776cef987460a077a69ebeb0015f1967734ded GIT binary patch literal 7054 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 literal 0 HcmV?d00001 diff --git a/buildnumber.txt b/buildnumber.txt index 9e7afa3a..37b9a3fb 100644 --- a/buildnumber.txt +++ b/buildnumber.txt @@ -1 +1 @@ -2313 \ No newline at end of file +2319 \ No newline at end of file diff --git a/source/funkin/game/Character.hx b/source/funkin/game/Character.hx index 89b10831..adbb088a 100644 --- a/source/funkin/game/Character.hx +++ b/source/funkin/game/Character.hx @@ -30,6 +30,7 @@ using StringTools; @:allow(funkin.desktop.editors.CharacterEditor) @:allow(funkin.game.StrumLine) +@:allow(funkin.game.PlayState) class Character extends FunkinSprite implements IBeatReceiver implements IOffsetCompatible { private var __stunnedTime:Float = 0; diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx index 86dd34e4..7834baf2 100644 --- a/source/funkin/game/PlayState.hx +++ b/source/funkin/game/PlayState.hx @@ -590,11 +590,10 @@ class PlayState extends MusicBeatState var strOffset:Float = strumLine.strumLinePos == null ? (strumLine.opponent ? 0.25 : 0.75) : strumLine.strumLinePos; var strLine = new StrumLine(chars, strOffset, !coopMode && (strumLine.opponent != opponentMode), strumLine.opponent, coopMode ? (strumLine.opponent ? controlsP2 : controlsP1) : controls); strLine.cameras = [camHUD]; + strLine.data = strumLine; players.push(strLine); if (strumLine.visible != false) add(strLine); - - strLine.generate(strumLine); } splashHandler = new SplashHandler(); @@ -606,6 +605,9 @@ class PlayState extends MusicBeatState // CAMERA & HUD INITIALISATION #if REGION + for(str in players) + str.generate(str.data); + camFollow = new FlxObject(0, 0, 2, 2); camFollow.setPosition(camPos.x, camPos.y); add(camFollow); @@ -1304,6 +1306,9 @@ class PlayState extends MusicBeatState var notePerStrum = [for(_ in 0...4) null]; if (__justPressed.contains(true)) { + for(c in p.characters) + c.__lockAnimThisFrame = true; + __funcsToExec.push(function(note:Note) { if (__justPressed[note.strumID] && !note.isSustainNote && !note.wasGoodHit && note.canBeHit) { if (notePerStrum[note.strumID] == null) notePerStrum[note.strumID] = note; diff --git a/source/funkin/game/Stage.hx b/source/funkin/game/Stage.hx index 8f0ed9ef..753d0f62 100644 --- a/source/funkin/game/Stage.hx +++ b/source/funkin/game/Stage.hx @@ -92,13 +92,22 @@ class Stage extends FlxBasic implements IBeatReceiver { state.add(spr); spr; case "boyfriend" | "bf": - addCharPos("boyfriend", node); + addCharPos("boyfriend", node, { + x: 770, + y: 100 + }); null; case "girlfriend" | "gf": - addCharPos("girlfriend", node); + addCharPos("girlfriend", node, { + x: 400, + y: 130 + }); null; case "dad" | "opponent": - addCharPos("dad", node); + addCharPos("dad", node, { + x: 100, + y: 100 + }); null; case "character": if (!node.has.name) continue; @@ -165,11 +174,10 @@ class Stage extends FlxBasic implements IBeatReceiver { state.add(char); else { var charPos = characterPoses[posName]; - if (charPos.node != null) { - doCharNodeShit(char, charPos.node); - } else if (charPos.nonXMLInfo != null) { + if (charPos.nonXMLInfo != null) char.setPosition(charPos.nonXMLInfo.x, charPos.nonXMLInfo.y); - } + if (charPos.node != null) + doCharNodeShit(char, charPos.node); state.insert(state.members.indexOf(charPos.dummy), char); } } diff --git a/source/funkin/game/StrumLine.hx b/source/funkin/game/StrumLine.hx index 4a745720..5a5e26b0 100644 --- a/source/funkin/game/StrumLine.hx +++ b/source/funkin/game/StrumLine.hx @@ -27,6 +27,10 @@ class StrumLine extends FlxTypedGroup { * Controls assigned to this strumline. */ public var controls:Controls = null; + /** + * Chart JSON data assigned to this StrumLine (Codename format) + */ + public var data:ChartStrumLine = null; /** * Whenever Ghost Tapping is enabled. */ diff --git a/source/funkin/system/FunkinGame.hx b/source/funkin/system/FunkinGame.hx index 0268c4e0..5f127090 100644 --- a/source/funkin/system/FunkinGame.hx +++ b/source/funkin/system/FunkinGame.hx @@ -17,4 +17,16 @@ class FunkinGame extends FlxGame { _total = ticks = getTicks(); super.onEnterFrame(t); } + + public override function draw() { + MemoryUtil.askDisable(); + super.draw(); + MemoryUtil.askEnable(); + } + + public override function update() { + MemoryUtil.askDisable(); + super.update(); + MemoryUtil.askEnable(); + } } \ No newline at end of file diff --git a/source/funkin/system/framerate/SystemInfo.hx b/source/funkin/system/framerate/SystemInfo.hx index 172ff1d4..7379382b 100644 --- a/source/funkin/system/framerate/SystemInfo.hx +++ b/source/funkin/system/framerate/SystemInfo.hx @@ -2,6 +2,7 @@ package funkin.system.framerate; import flixel.FlxG; import flixel.math.FlxMath; +import funkin.utils.MemoryUtil; class SystemInfo extends FramerateCategory { public function new() { @@ -14,6 +15,7 @@ class SystemInfo extends FramerateCategory { _text += '\nObjs in state: ${FlxG.state.members.length}'; _text += '\nNb cameras: ${FlxG.cameras.list.length}'; _text += '\nCurrent state: ${Type.getClassName(Type.getClass(FlxG.state))}'; + _text += '\nGarbage Collector: ${MemoryUtil.disableCount > 0 ? "OFF" : "ON"} (${MemoryUtil.disableCount})'; this.text.text = _text; super.__enterFrame(t);