when showing manually-scaled prop, make its default fit the screen

This commit is contained in:
2023-07-14 05:47:53 -06:00
parent 7a77e67c81
commit 98ba1a2d8d

View File

@@ -643,15 +643,23 @@
(prop &mut :Bool autoPlaceProps true)
(method scaleProp [:FlxSprite prop]
(let [propKey (_propKey prop)
:Float scale .value (flxMovie.propScales.get propKey)]
(when (StringTools.contains propKey "anonProp") (return))
(unless (flxMovie.propsInScene.exists flxMovie.sceneKey)
(dictSet flxMovie.propsInScene flxMovie.sceneKey []))
(unless !(= -1 (.indexOf (dictGet flxMovie.propsInScene flxMovie.sceneKey) propKey))
(.push (dictGet flxMovie.propsInScene flxMovie.sceneKey) propKey))
(prop.scale.set scale scale)
(prop.updateHitbox)))
(let [propKey (_propKey prop)]
(unless (flxMovie.propScales.exists propKey)
// Set the initial scale so the thing fits on the screen, at least
(prop.setGraphicSize FlxG.width)
(prop.updateHitbox)
(when (> prop.height FlxG.height)
(prop.setGraphicSize 0 FlxG.height))
(flxMovie.propScales.put propKey (new HFloat prop.scale.x)))
(let [:Float scale .value (flxMovie.propScales.get propKey)]
(when (StringTools.contains propKey "anonProp") (return))
(unless (flxMovie.propsInScene.exists flxMovie.sceneKey)
(dictSet flxMovie.propsInScene flxMovie.sceneKey []))
(unless !(= -1 (.indexOf (dictGet flxMovie.propsInScene flxMovie.sceneKey) propKey))
(.push (dictGet flxMovie.propsInScene flxMovie.sceneKey) propKey))
(prop.scale.set scale scale)
(prop.updateHitbox))))
(method :Void showProp [:FlxSprite prop :StagePosition position :Appearance appearance :FlxCamera camera :Continuation cc]
(set prop.cameras [camera])