From 798895f8c442c272d3ccc1a81fa4532245653786 Mon Sep 17 00:00:00 2001
From: Yoshman29 <81191621+YoshiCrafter29@users.noreply.github.com>
Date: Sat, 1 Apr 2023 02:22:08 +0200
Subject: [PATCH] Dumb
---
Project.xml | 1 -
source/funkin/macros/SoftcodedClassMacro.hx | 33 +++++++++++++++++----
source/funkin/menus/PauseSubState.hx | 2 +-
source/funkin/utils/native/HiddenProcess.hx | 4 +--
4 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/Project.xml b/Project.xml
index bd6c8836..0a9c0559 100644
--- a/Project.xml
+++ b/Project.xml
@@ -172,7 +172,6 @@
-
diff --git a/source/funkin/macros/SoftcodedClassMacro.hx b/source/funkin/macros/SoftcodedClassMacro.hx
index dfb246a6..ede35660 100644
--- a/source/funkin/macros/SoftcodedClassMacro.hx
+++ b/source/funkin/macros/SoftcodedClassMacro.hx
@@ -3,9 +3,15 @@ package funkin.macros;
using StringTools;
class SoftcodedClassMacro {
#if macro
+ private static var nonAllowedSuffixes:Array = ["__Softcoded", "_HSC", "_HSX", "_Impl_"];
public static function init() {
- Compiler.addGlobalMetadata('funkin', '@:build(funkin.macros.SoftcodedClassMacro.build())');
- Compiler.addGlobalMetadata('flixel', '@:build(funkin.macros.SoftcodedClassMacro.build())');
+ Compiler.addGlobalMetadata('funkin.cutscenes', '@:build(funkin.macros.SoftcodedClassMacro.build())');
+ Compiler.addGlobalMetadata('funkin.game', '@:build(funkin.macros.SoftcodedClassMacro.build())');
+ Compiler.addGlobalMetadata('funkin.menus', '@:build(funkin.macros.SoftcodedClassMacro.build())');
+ Compiler.addGlobalMetadata('funkin.options', '@:build(funkin.macros.SoftcodedClassMacro.build())');
+ Compiler.addGlobalMetadata('funkin.scripting', '@:build(funkin.macros.SoftcodedClassMacro.build())');
+ Compiler.addGlobalMetadata('funkin.shaders', '@:build(funkin.macros.SoftcodedClassMacro.build())');
+ Compiler.addGlobalMetadata('flixel', '@:build(funkin.macros.SoftcodedClassMacro.build())', false);
}
public static function build():Array {
@@ -26,7 +32,18 @@ class SoftcodedClassMacro {
kind: FVar(scriptClassType, macro null)
});
var c = cl.get();
- if (c.name.endsWith('__Softcoded') || c.name.endsWith("_HSC") || c.name.endsWith("_Impl_")) return fields;
+ c.isPrivate = false;
+ switch(c.kind) {
+ case KNormal:
+ // do nothing
+ default:
+ return fields;
+ }
+ if (c.isPrivate || c.isInterface || c.isFinal || c.isExtern || c.isAbstract) return fields;
+
+ for(s in nonAllowedSuffixes)
+ if (c.name.endsWith(s))
+ return fields;
if (c.params.length > 0) return fields; // NOT SUPPORTED
if (c.isAbstract) return fields;
@@ -43,11 +60,14 @@ class SoftcodedClassMacro {
};
+
+ // var fixedPack = [for(p in c.pack) if (p.startsWith("_")) p.substr(1) else p];
+
shadowClass.name = '${c.name}__Softcoded';
shadowClass.fields = funcs;
- shadowClass.pack = c.pack;
+ shadowClass.pack = c.pack.copy();
shadowClass.kind = TDClass({
- pack: c.pack,
+ pack: c.pack.copy(),
name: c.name
}, [], false, false, false);
@@ -70,6 +90,7 @@ class SoftcodedClassMacro {
switch(f.kind) {
case FFun(fun):
+ if (fun.params != null && fun.params.length > 0) continue;
var funcExpr = macro {
${{
pos: Context.currentPos(),
@@ -200,7 +221,6 @@ class SoftcodedClassMacro {
}
#end
-
var imports = [for(i in Context.getLocalImports()) i];
imports.push({
path: [for(p in c.module.split(".")) {
@@ -217,6 +237,7 @@ class SoftcodedClassMacro {
mode: INormal
});
+
Context.defineModule(c.module + "__Softcoded", [shadowClass], imports);
}
return fields;
diff --git a/source/funkin/menus/PauseSubState.hx b/source/funkin/menus/PauseSubState.hx
index 5278a8da..94697b98 100644
--- a/source/funkin/menus/PauseSubState.hx
+++ b/source/funkin/menus/PauseSubState.hx
@@ -145,8 +145,8 @@ class PauseSubState extends MusicBeatSubstate
case "Options":
FlxG.switchState(new OptionsMenu());
case "Exit to menu":
- FlxG.switchState(PlayState.isStoryMode ? new StoryMenuState() : new FreeplayState());
CoolUtil.playMenuSong();
+ FlxG.switchState(PlayState.isStoryMode ? new StoryMenuState() : new FreeplayState());
}
}
override function destroy()
diff --git a/source/funkin/utils/native/HiddenProcess.hx b/source/funkin/utils/native/HiddenProcess.hx
index e47ceb7a..701f9e7f 100644
--- a/source/funkin/utils/native/HiddenProcess.hx
+++ b/source/funkin/utils/native/HiddenProcess.hx
@@ -25,7 +25,7 @@ package funkin.utils.native;
import cpp.NativeProcess;
-private class Stdin extends haxe.io.Output {
+class Stdin extends haxe.io.Output {
var p:Dynamic;
var buf:haxe.io.Bytes;
@@ -54,7 +54,7 @@ private class Stdin extends haxe.io.Output {
}
}
-private class Stdout extends haxe.io.Input {
+class Stdout extends haxe.io.Input {
var p:Dynamic;
var out:Bool;
var buf:haxe.io.Bytes;