File Name: | Better Lava tile |
Submitted: | by Thiago678 |
Authors: | Thiago678 |
Act As: | 0 |
Includes GFX: | Yes |
Description: | This is a block that kills the player when touched and kills sprites too.Make it act 0 to support podoboos. |
Screenshots: |
The first issue is that there's no vertical position check, so Mario is killed as soon as his hitbox overlap's with the block's and makes it seem like he dies above the lava rather than in it.
The second issue is the way some sprites interact with the block. Kicked shells disappear completely without sinking into the lava. Also, some carryable sprites such as Baby Yoshi, Keys and Springboards show glitched graphics when sinking. This is because these sprites were never supposed to be in the "killed by lava" state, and the block does no checks to accommodate for this. A clip of the issue is shown here.
Finally, as per block submission rule 6, blocks made with blockreator need to be optimized, which this block isn't. There's a lot of duplicate code, and labels/branches which are completely unnecessary. One instance is here:
Code
Label_0000: LDA !9E,x CMP #$33 BNE Label_0001 Label_0001: RTL
What is the purpose of BNE Label_0001 here? Label_0001 is directly underneath that branch, so the code will always go to there regardless of if the BNE condition is met or not. Also, there's no code under Label_0001 anyway, so in both cases there will be no effect.
If you are new to ASM then I recommend Ersanio's Assembly for SMW tutorial and lion's Custom Block programming tutorial, they cover the basics and should give you an idea of how to code simple blocks from scratch.
Tested with:
• Lunar Magic 3.11
• SA-1 Pack v1.32
• GPS V1.4.1
• Snes9x v1.60