From 78f4c30c2c88f5066e1bb84fd19ee5687551a866 Mon Sep 17 00:00:00 2001 From: Kiri Date: Sat, 1 Apr 2023 13:03:24 -0700 Subject: [PATCH] Moved initialization code into first tick. --- zscript.zs | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/zscript.zs b/zscript.zs index 910162b..0adb64a 100644 --- a/zscript.zs +++ b/zscript.zs @@ -9,6 +9,7 @@ class JumperCablesMapLoader : EventHandler { Map originalLinedefSpecials2; Array deployedCables; + bool worldScanCompleted; static JumperCablesMapLoader Get() { @@ -17,21 +18,44 @@ class JumperCablesMapLoader : EventHandler return loader; } - override void WorldLoaded(WorldEvent e) + override void WorldUnloaded(WorldEvent e) { JumperCablesMapLoader loader = Get(); // Clear out anything from the last level. deployedCables.Clear(); loader.originalLinedefSpecials2.Clear(); + worldScanCompleted = false; + } - // Go through all the linedefs and make note of what they're - // supposed to do. - for(int k = 0; k < level.Lines.size(); k++) { - Line line = level.Lines[k]; - if(line.special != 0) { - loader.originalLinedefSpecials2.Insert(line.index(), line.special); + override void WorldLoaded(WorldEvent e) + { + // JumperCablesMapLoader loader = Get(); + + // // Clear out anything from the last level. + // deployedCables.Clear(); + // loader.originalLinedefSpecials2.Clear(); + // worldScanCompleted = false; + } + + override void WorldTick() + { + JumperCablesMapLoader loader = Get(); + + if(!loader.worldScanCompleted) { + + // Go through all the linedefs and make note of what they're + // supposed to do. + for(int k = 0; k < level.Lines.size(); k++) { + Line line = level.Lines[k]; + if(line.special != 0) { + loader.originalLinedefSpecials2.Insert(line.index(), line.special); + } } + + loader.worldScanCompleted = true; + + Console.printf("JMP: World scan completed."); } } @@ -57,7 +81,7 @@ class JumperCablesMapLoader : EventHandler deployedCables.Push(cableActor); // FIXME: Remove this. - Console.printf("Cables registered %d\n", deployedCables.size()); + // Console.printf("Cables registered %d\n", deployedCables.size()); } }