Merge branch 'main' into base-fnf-port-remake

This commit is contained in:
⍚~Nex
2024-09-14 16:19:13 +02:00
29 changed files with 129 additions and 96 deletions
+15 -2
View File
@@ -721,7 +721,7 @@ class CoolUtil
*/
@:noUsing public static inline function openURL(url:String) {
#if linux
Sys.command('/usr/bin/xdg-open', [url, "&"]);
Sys.command('/usr/bin/xdg-open', [url]);
#else
FlxG.openURL(url);
#end
@@ -906,6 +906,19 @@ class CoolUtil
return result.join(seperator);
}
public static function deepFlatten(arr:Array<Dynamic>, ?result:Array<Dynamic>):Array<Dynamic> {
if(arr == null) return [];
if(result == null) result = [];
for (e in arr) {
if (Std.isOfType(e, Array)) {
deepFlatten(e, result);
} else {
result.push(e);
}
}
return result;
}
}
/**
@@ -918,4 +931,4 @@ enum abstract CoolSfx(Int) from Int {
var CHECKED = 3;
var UNCHECKED = 4;
var WARNING = 5;
}
}
@@ -32,8 +32,8 @@ class FunkinParentDisabler extends FlxBasic {
FlxTimer.globalManager._timers = [];
// cameras
__cameras = [for(c in FlxG.cameras.list) if (c.active) c];
for(c in __cameras) c.active = false;
__cameras = [for(c in FlxG.cameras.list) if (!c.paused) c];
for(c in __cameras) c.paused = true;
// sounds
__sounds = [for(s in FlxG.sound.list) if (s.playing) s];
@@ -41,9 +41,6 @@ class FunkinParentDisabler extends FlxBasic {
}
}
public override function update(elapsed:Float) {
@:privateAccess for(c in __cameras) c.updateFlashSpritePosition();
}
public override function draw() {}
public function reset() {
@@ -63,7 +60,7 @@ class FunkinParentDisabler extends FlxBasic {
for(t in __tweens) FlxTween.globalManager._tweens.push(t);
for(t in __timers) FlxTimer.globalManager._timers.push(t);
}
for(c in __cameras) c.active = true;
for(c in __cameras) c.paused = false;
for(s in __sounds) s.play();
}
}
+11 -8
View File
@@ -4,6 +4,7 @@ import flixel.util.FlxColor;
import flixel.util.typeLimit.OneOfTwo;
import funkin.backend.FunkinSprite.XMLAnimType;
import funkin.backend.FunkinSprite;
import funkin.game.Character;
import funkin.backend.system.ErrorCode;
import funkin.backend.system.interfaces.IOffsetCompatible;
import haxe.xml.Access;
@@ -172,8 +173,7 @@ class XMLUtil {
animType: spr.spriteAnimType,
x: 0,
y: 0,
indices: [for(i in 0...spr.frames.frames.length) i],
forced: (node.has.forced && node.att.forced == "true") || (!node.has.forced && spr.spriteAnimType == BEAT)
indices: [for(i in 0...spr.frames.frames.length) i]
});
}
}
@@ -199,8 +199,7 @@ class XMLUtil {
animType: animType,
x: 0,
y: 0,
indices: [],
forced: false,
indices: []
};
if (anim.has.name) animData.name = anim.att.name;
@@ -256,24 +255,28 @@ class XMLUtil {
if (sprite is FunkinSprite) {
var xmlSpr = cast(sprite, FunkinSprite);
var name = animData.name;
switch(animData.animType) {
case BEAT:
xmlSpr.beatAnims.push({
name: animData.name,
forced: animData.forced.getDefault(false)
name: name,
forced: animData.forced.getDefault(defaultForcedCheck(name, xmlSpr))
});
case LOOP:
xmlSpr.playAnim(animData.name, animData.forced.getDefault(false));
xmlSpr.playAnim(name, animData.forced.getDefault(defaultForcedCheck(name, xmlSpr)));
default:
// nothing
}
xmlSpr.animDatas.set(animData.name, animData);
xmlSpr.animDatas.set(name, animData);
}
return OK;
}
return MISSING_PROPERTY;
}
public static inline function defaultForcedCheck(animName:String, sprite:FunkinSprite):Bool
return sprite is Character && (animName.startsWith("idle") || animName.startsWith("danceLeft") || animName.startsWith("danceRight")) ? false : sprite.spriteAnimType == BEAT;
public static inline function fixXMLText(text:String) {
var v:String;
return [for(l in text.split("\n")) if ((v = l.trim()) != "") v].join("\n");