splice when removing things

This commit is contained in:
2023-05-26 17:34:07 -06:00
parent e06269073a
commit 9634d53aa1
3 changed files with 19 additions and 20 deletions

View File

@@ -1,4 +1,4 @@
# @install: lix --silent download "gh://github.com/kiss-lang/kiss-flixel#e0547ea7784dcb06ee8be8ae4b35cbc179fbf60f" into kiss-flixel/0.0.0/github/e0547ea7784dcb06ee8be8ae4b35cbc179fbf60f # @install: lix --silent download "gh://github.com/kiss-lang/kiss-flixel#1afb61a1ecbf3a2ba14138bbf2c2ebd44bb99a9c" into kiss-flixel/0.0.0/github/1afb61a1ecbf3a2ba14138bbf2c2ebd44bb99a9c
-lib flixel -lib flixel
-lib flixel-addons -lib flixel-addons
-lib flixel-ui -lib flixel-ui
@@ -6,5 +6,5 @@
-lib kiss-tools -lib kiss-tools
-lib lime -lib lime
-lib openfl -lib openfl
-cp ${HAXE_LIBCACHE}/kiss-flixel/0.0.0/github/e0547ea7784dcb06ee8be8ae4b35cbc179fbf60f/src/ -cp ${HAXE_LIBCACHE}/kiss-flixel/0.0.0/github/1afb61a1ecbf3a2ba14138bbf2c2ebd44bb99a9c/src/
-D kiss-flixel=0.0.0 -D kiss-flixel=0.0.0

View File

@@ -16,7 +16,6 @@
(FlxG.inputs.add actionManager) (FlxG.inputs.add actionManager)
(set actionManager.resetOnStateSwitch NONE) (set actionManager.resetOnStateSwitch NONE)
// TODO characters will be in front of every prop layer -- characters need their own group layer
(doFor i (range (+ 3 LAYER_MAX)) // LMAO (doFor i (range (+ 3 LAYER_MAX)) // LMAO
(let [g (new FlxTypedGroup<FlxSprite>)] (let [g (new FlxTypedGroup<FlxSprite>)]
(spriteLayers.push g) (spriteLayers.push g)
@@ -135,8 +134,8 @@
(method :Void hideSet [:FlxSprite set :FlxCamera camera :Continuation cc] (method :Void hideSet [:FlxSprite set :FlxCamera camera :Continuation cc]
(FlxG.cameras.remove camera false) (FlxG.cameras.remove camera false)
(.remove (first spriteLayers) skySprite) (.remove (first spriteLayers) skySprite true)
(.remove (first spriteLayers) set) (.remove (first spriteLayers) set true)
(cc)) (cc))
(method :FlxSprite drawLight [:FlxLightSource source] (method :FlxSprite drawLight [:FlxLightSource source]
@@ -187,7 +186,7 @@
(mm.add screen (mm.add screen
->screen { ->screen {
(mm.remove screen) (mm.remove screen)
(FlxG.state.remove screen) (FlxG.state.remove screen true)
(let [pos (FlxG.mouse.getScreenPosition FlxG.camera)] (let [pos (FlxG.mouse.getScreenPosition FlxG.camera)]
(doFor camera FlxG.cameras.list (set camera.zoom 1)) (doFor camera FlxG.cameras.list (set camera.zoom 1))
(submit pos)) (submit pos))
@@ -242,8 +241,8 @@
(FlxG.state.add lightSprite)) (FlxG.state.add lightSprite))
(method :Void hideLighting [] (method :Void hideLighting []
(FlxG.state.remove darkness) (FlxG.state.remove darkness true)
(FlxG.state.remove lightSprite)) (FlxG.state.remove lightSprite true))
(method :Void cleanup [] 0) (method :Void cleanup [] 0)
@@ -276,14 +275,14 @@
(let [layer (- LAYER_MAX (Std.int (/ character.stagePosition.z flxMovie.STAGE_BEHIND_DY)))] (let [layer (- LAYER_MAX (Std.int (/ character.stagePosition.z flxMovie.STAGE_BEHIND_DY)))]
(.add (nth spriteLayers layer) character.actor))) (.add (nth spriteLayers layer) character.actor)))
(true (true
(.add (nth spriteLayers (min LAYER_MAX (Std.int character.stagePosition.z))) character.actor))) (.add (nth spriteLayers ~(min LAYER_MAX (Std.int character.stagePosition.z))) character.actor)))
(cc)) (cc))
(method :Void hideCharacter [:Character<ActorFlxSprite> character :FlxCamera camera :Continuation cc] (method :Void hideCharacter [:Character<ActorFlxSprite> character :FlxCamera camera :Continuation cc]
(FlxG.state.remove character.actor) (FlxG.state.remove character.actor true)
(doFor layer spriteLayers (doFor layer spriteLayers
(layer.remove character.actor)) (layer.remove character.actor true))
(cc)) (cc))
(prop &mut :Null<Continuation> nextCC) (prop &mut :Null<Continuation> nextCC)
@@ -336,7 +335,7 @@
(unless MovieFlxState.focused (unless MovieFlxState.focused
(pause)) (pause))
(set FlxG.autoPause true) (set FlxG.autoPause true)
(FlxG.state.remove bar) (FlxG.state.remove bar true)
(cc) (cc)
}) 1)] }) 1)]
(haxe.Timer.delay ->:Void (loop.start) 1) (haxe.Timer.delay ->:Void (loop.start) 1)
@@ -348,7 +347,7 @@
(FlxG.state.add loop))) (FlxG.state.add loop)))
(method :Void hideTitleCard [] (method :Void hideTitleCard []
(FlxG.state.remove titleCard)) (FlxG.state.remove titleCard true))
// TODO these could be customizable to the Actor, wrylies, etc. // TODO these could be customizable to the Actor, wrylies, etc.
(var DIALOG_BOX_COLOR FlxColor.BLACK) (var DIALOG_BOX_COLOR FlxColor.BLACK)
@@ -369,7 +368,7 @@
(localVar &mut :Float speakerNameX -1) (localVar &mut :Float speakerNameX -1)
(case type (case type
(Super (Super
(when superText (FlxG.state.remove superText)) (when superText (FlxG.state.remove superText true))
(set superText (SpriteTools.textPlate text DIALOG_SIZE SUPER_MARGIN)) (set superText (SpriteTools.textPlate text DIALOG_SIZE SUPER_MARGIN))
// If supertext can be done in a single centered line, do so // If supertext can be done in a single centered line, do so
(when (<= superText.width FlxG.width) (when (<= superText.width FlxG.width)
@@ -436,7 +435,7 @@
(dialogText?.kill) (dialogText?.kill)
(speakerNameText?.kill) (speakerNameText?.kill)
(dialogBox?.kill) (dialogBox?.kill)
(when superText (FlxG.state.remove superText))) (when superText (FlxG.state.remove superText true)))
(savedVar :Float soundVolume 1.0) (savedVar :Float soundVolume 1.0)
@@ -549,13 +548,13 @@
(let [layerNum position.z] (let [layerNum position.z]
(assertEquals layerNum (Std.int layerNum)) (assertEquals layerNum (Std.int layerNum))
(.add (nth spriteLayers (+ 1 (Std.int layerNum))) prop))) (.add (nth spriteLayers ~(+ 1 (Std.int layerNum))) prop)))
(cc)) (cc))
(method :Void hideProp [:FlxSprite prop cc] (method :Void hideProp [:FlxSprite prop cc]
(FlxG.state.remove prop) (FlxG.state.remove prop true)
(doFor layer spriteLayers (doFor layer spriteLayers
(layer.remove prop)) (layer.remove prop true))
(cc)) (cc))
(prop :Array<FlxText> creditsText []) (prop :Array<FlxText> creditsText [])
@@ -571,7 +570,7 @@
(FlxG.state.add blackBG)) (FlxG.state.add blackBG))
(method :Void hideBlackScreen [] (method :Void hideBlackScreen []
(FlxG.state.remove blackBG)) (FlxG.state.remove blackBG true))
// TODO currently the bg will cover whatever the final scene was - making after credits scenes impossible // TODO currently the bg will cover whatever the final scene was - making after credits scenes impossible
(method :Void rollCredits [:Array<CreditsLine> credits cc] (method :Void rollCredits [:Array<CreditsLine> credits cc]

View File

@@ -108,7 +108,7 @@
plate))] plate))]
(delay delayLength (delay delayLength
(makeCC (makeCC
(doFor plate plates (FlxG.state.remove plate)) (doFor plate plates (FlxG.state.remove plate true))
(when delayWhileShown (cc))))) (when delayWhileShown (cc)))))
(unless delayWhileShown (cc))) (unless delayWhileShown (cc)))