diff options
| author | Ash Ketchum <no-reply@sl0p.foo> | 2026-07-15 12:23:17 +0200 |
|---|---|---|
| committer | Ash Ketchum <no-reply@sl0p.foo> | 2026-07-15 12:23:17 +0200 |
| commit | bf910f66bafedf92be60b5457e6ea2621aaabab8 (patch) | |
| tree | 7e4de2126e77fbb4396a92d1ee927ed1a44a8a25 /engine/overworld | |
| parent | explore: pivot to noclip free-roam camera (diff) | |
| download | pokeyellow-bf910f66bafedf92be60b5457e6ea2621aaabab8.tar.gz pokeyellow-bf910f66bafedf92be60b5457e6ea2621aaabab8.tar.xz pokeyellow-bf910f66bafedf92be60b5457e6ea2621aaabab8.zip | |
explore: hide player (camera) + fix menu close
- UpdatePlayerSprite: when wSlopNoclip is set, jump to .disableSprite so the
player sprite is hidden -> true free-roam camera (bankable bank, no ROM0 cost).
- SlopExplore was returning carry-set into .exitProceed, which bare-returns and
assumes a warp will redraw the screen; since noclip doesn't warp, the menu
window lingered. Now it closes like the B path (SlopMenuRestoreFlags + push
bank + jp CloseTextDisplay) so the overworld is rebuilt cleanly.
- SL0P.md: document EXPLORE noclip camera + the hooks.
Verified A/B in Pallet: noclip on -> player gone, walls/seams passable; off ->
player back, collision restored, menu closes cleanly.
Diffstat (limited to 'engine/overworld')
| -rw-r--r-- | engine/overworld/movement.asm | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index 165208eb..e4ff3e05 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -1,6 +1,9 @@ DEF MAP_TILESET_SIZE EQU $60 UpdatePlayerSprite: + ld a, [wSlopNoclip] ; SL0P camera: hide the player sprite while noclipping + and a + jr nz, .disableSprite ld a, [wSpritePlayerStateData2WalkAnimationCounter] and a jr z, .checkIfTextBoxInFrontOfSprite |
