Language…
6 users online: 1392year, Anas, Firstnamebutt, kirito86, tOaO, Zavok - Guests: 183 - Bots: 319
Users: 64,795 (2,380 active)
Latest user: mathew

Removed HoppingFlame RNG by Maw

Summary: Removed HoppingFlame RNG
Description: This patch makes the stun time and the Y-speed of a HoppingFlame constant.
Tags: hoppingflame, rng
Code:
!Stuntime = $2F
!Yspeed = $D0

org $018F38                ;|\ If the stun timer is one, then make it hop.
LDA #!Stuntime          ;|| constant value Vanilla  The flame has just landed set the stun timer to a random number #$1F-#$3F.
NOP #6                    ;|/


org $018F50                ;|\ Y Speed
LDA #!Yspeed            ;|| constant RNG  Vanilla; Give it a random Y speed #$D0-#$DF.
NOP #6                    ;|/
Submitted: by Maw

I'm rejecting this for the same main reason as for the previous paragoomba submission -- namely that configurable values should be tweak parameters rather than defines.

But also just as important for this example is that you haven't completely removed the randomness in the flame's behavior. Immediately after setting the sprite's Y speed, the game uses the most recent RNG value to determine if it should face Mario. But since this value probably isn't being updated, it'll likely just be reusing the same value every hop, resulting in a flame that never turns, or always turns, depending on what was left in there.

Finally, while combining all the different RNG values for the sprite into a single tweak certainly feels logical, after talking it over with others, I think it would be better to submit this as separate tweaks for each RNG value instead. That will require some care to make sure the pause timer and face direction both work individually. You'd probably need to leave the RNG call in there, but just not use it in both cases. And for the face-player check, I'd assume that you want to give options for both "never face player" or "always face player".

One additional suggestion (not required certainly) is that it might be a little more user-friendly to let the user specify jump speed as a positive value, and simply negate it in the tweak code, so the user doesn't have to mess with that.

Edit: oh, and as before, it'll probably be helpful to include the original range of values in the description to help give some sense of what's appropriate to use.