; ------------------------------ ;
; Carryable Cement Block ;
; ------------------------------ ;
!SpriteNum = $2D ; Custom sprite number. Set this to the number you use for the block sprite in PIXI's list.txt.
!Timer = $0 ; How long the carryable block will remain so until it turns back into a block. Remains carryable forever if set to 0 (excluding wall hits).
!BlockNumber = $0000 ; Map16 tile that the block sprite should change into. If $0000, it will revert back to the Map16 tile number of the block that
; spawned it (AKA the Map16 tile number you choose for this block).
When I pick up the block, I toss it and it behaves fine. The moment I cross the sub-screen boundary however, it no longer works. I am using it in a vertical level, and I've inserted the EF sprite to prevent horizontal scrolling, but I don't know if that's relevant. I've included a video of it happening. Note that the ground mario lands on at 10s is the sub-screen boundary, so anything below is sub-screen 01.
I see the problem, it's caused by weirdness in how vertical levels map16 data is handled. You can fix it in two ways:
- Turn the level into a tall horizontal level (LM3 allows for horizontal level to have custom heights so you can replicate the vanilla vertical level dimensions)
- Edit the code to fix this issue. You can do that by going to line 138 in the sprite asm file (right before "LDA !151C,x") and adding this code:
Awesome! I edited the code to fix it, since I'm not sure about how to customize level heights. Thanks so much, I literally would have never been able to solve this problem.
I'm not sure about how to customize level heights.
The same way you'd normally change the level mode, but through Horizontal Level Mode instead. Look for level height 1C, which replicates vertical levels like the one you're creating.
That feature's there since LM 3.00.
Follow Us On