more optimization

This commit is contained in:
Yoshman29
2023-01-09 17:36:27 +01:00
parent 3d89c13b1b
commit 4e5a316001
6 changed files with 32 additions and 7 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
<project>
<!-- _________________________ Application Settings _________________________ -->
<app title="Friday Night Funkin' - Codename Engine" file="CodenameEngine" packageName="com.yoshman29.codenameengine" package="com.yoshman29.codenameengine" main="funkin.system.Main" version="0.1.0" company="yoshman29" />
<app title="Friday Night Funkin' - Codename Engine" file="CodenameEngine" packageName="com.yoshman29.codenameengine" package="com.yoshman29.codenameengine" main="funkin.system.Main" version="0.1.0" company="Yoshman29" />
<!--Switch Export with Unique ApplicationID and Icon-->
<set name="APP_ID" value="0x0100f6c013bbc000" />
+1 -1
View File
@@ -1 +1 @@
1965
1967
+5 -2
View File
@@ -1273,8 +1273,10 @@ class PlayState extends MusicBeatState
if (health <= 0 && canDie)
gameOver();
if (generatedMusic)
if (generatedMusic) {
__updateNote_event = EventManager.get(NoteUpdateEvent);
notes.forEachAlive(updateNote);
}
if (!inCutscene)
keyShit();
@@ -1288,6 +1290,7 @@ class PlayState extends MusicBeatState
}
var __updateNote_strum:Strum = null;
var __updateNote_event:NoteUpdateEvent = null;
function updateNote(daNote:Note)
{
for(e in (daNote.mustPress ? playerStrums : cpuStrums).members) {
@@ -1297,7 +1300,7 @@ class PlayState extends MusicBeatState
}
}
var event = PlayState.instance.scripts.event("onNoteUpdate", EventManager.get(NoteUpdateEvent).recycle(daNote, FlxG.elapsed, __updateNote_strum));
var event = PlayState.instance.scripts.event("onNoteUpdate", __updateNote_event.recycle(daNote, FlxG.elapsed, __updateNote_strum));
if (!event.cancelled) {
if (event.__updateHitWindow) {
if (daNote.mustPress)
+17
View File
@@ -1,5 +1,7 @@
package funkin.scripting;
import flixel.FlxG;
import flixel.FlxState;
import funkin.scripting.events.*;
class EventManager {
@@ -19,4 +21,19 @@ class EventManager {
return cast eventValues[index];
}
public static function reset() {
for(v in eventValues)
v.destroy();
eventValues = [];
eventKeys = [];
}
public static function init() {
FlxG.signals.preStateCreate.add(onStateSwitch);
}
private static inline function onStateSwitch(newState:FlxState)
reset();
}
@@ -1,10 +1,10 @@
package funkin.scripting.events;
import funkin.scripting.ScriptPack;
import flixel.util.FlxDestroyUtil.IFlxDestroyable;
@:allow(ScriptPack)
@:autoBuild(funkin.macros.EventMacro.build())
class CancellableEvent {
class CancellableEvent implements IFlxDestroyable {
@:dox(hide) public var cancelled:Bool = false;
@:dox(hide) private var __continueCalls:Bool = true;
@@ -49,4 +49,8 @@ class CancellableEvent {
var rep = '[${claName[claName.length-1]}${cancelled ? " (Cancelled)" : ""}]';
return rep;
}
public function destroy() {
data = null;
}
}
+2 -1
View File
@@ -185,7 +185,7 @@ class Main extends Sprite
Assets.registerLibrary('default', lib);
funkin.options.PlayerSettings.init();
FlxG.save.bind('Save');
FlxG.save.bind('Codename Engine');
Options.load();
Highscore.load();
@@ -206,6 +206,7 @@ class Main extends Sprite
});
#end
EventManager.init();
FlxG.signals.preStateCreate.add(onStateSwitch);
initTransition();