Skip to content

Commit 0527624

Browse files
nykwonoHundrec
authored andcommitted
Preserve constructor arguments for scripted states after hot reloading
1 parent 8d1cea4 commit 0527624

4 files changed

Lines changed: 11 additions & 5 deletions

File tree

hmm.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@
205205
{
206206
"name": "polymod",
207207
"type": "git",
208-
"ref": "d426bdfdafd5e225b81956b217db5fe3a86a90b2",
208+
"ref": "af4d8ab44a76551a9fcc20f26ee191699ef8c7ff",
209209
"url": "https://github.com/FunkinCrew/polymod"
210210
},
211211
{

source/funkin/ui/MusicBeatState.hx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,9 @@ class MusicBeatState extends FlxTransitionableState implements IEventHandler
276276
var scriptedNextState:NextState = () ->
277277
{
278278
var path:String = _asc?.fullyQualifiedName ?? '';
279-
var newState:Null<MusicBeatState> = MusicBeatState.scriptInit(path);
279+
var constructorArgs:Array<Dynamic> = _asc?.getConstructorArgs() ?? [];
280+
281+
var newState:Null<MusicBeatState> = MusicBeatState.scriptInit(path, ...constructorArgs);
280282
if (newState == null) return new funkin.ui.mainmenu.MainMenuState();
281283
return newState;
282284
}

source/funkin/ui/MusicBeatSubState.hx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,9 @@ class MusicBeatSubState extends FlxSubState implements IEventHandler
203203
var scriptedNextState:NextState = () ->
204204
{
205205
var path:String = _asc?.fullyQualifiedName ?? '';
206-
var newState:Null<MusicBeatSubState> = MusicBeatSubState.scriptInit(path);
206+
var constructorArgs:Array<Dynamic> = _asc?.getConstructorArgs() ?? [];
207+
208+
var newState:Null<MusicBeatSubState> = MusicBeatSubState.scriptInit(path, ...constructorArgs);
207209
if (newState == null) return new funkin.ui.mainmenu.MainMenuState();
208210
return newState;
209211
}

source/funkin/util/plugins/ReloadAssetsDebugPlugin.hx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ class ReloadAssetsDebugPlugin extends FlxBasic
5656
{
5757
@:privateAccess
5858
var path:String = state._asc?.fullyQualifiedName ?? '';
59+
var constructorArgs:Array<Dynamic> = state._asc?.getConstructorArgs() ?? [];
60+
5961
trace('Hot-reloading scripted state: ' + path);
6062

6163
if (Std.isOfType(state, MusicBeatState) || Std.isOfType(state, MusicBeatSubState))
@@ -73,11 +75,11 @@ class ReloadAssetsDebugPlugin extends FlxBasic
7375
{
7476
if (Std.isOfType(state, FlxState))
7577
{
76-
newState = FlxState.scriptInit(path);
78+
newState = FlxState.scriptInit(path, ...constructorArgs);
7779
}
7880
else if (Std.isOfType(state, FlxSubState))
7981
{
80-
newState = FlxSubState.scriptInit(path);
82+
newState = FlxSubState.scriptInit(path, ...constructorArgs);
8183
}
8284
if (newState == null) return new funkin.ui.mainmenu.MainMenuState();
8385
return newState;

0 commit comments

Comments
 (0)