diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/slop_menu.asm | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/engine/slop_menu.asm b/engine/slop_menu.asm index 5d14cfb1..b69bb353 100644 --- a/engine/slop_menu.asm +++ b/engine/slop_menu.asm @@ -420,24 +420,38 @@ SlopExploreShared: jp c, .moveRight jp z, .moveRight jp .edgeRight -; in-map page moves: smooth-scroll one screen, then just redraw the arrows -; (the scroll already left the destination view on screen in rotated VRAM). +; in-map page moves: smooth-scroll one screen, then .afterMove. .moveUp ld c, SLOP_PAGE_Y call SlopScrollUp - jp .renderArrows + jp .afterMove .moveDown ld c, SLOP_PAGE_Y call SlopScrollDown - jp .renderArrows + jp .afterMove .moveLeft ld c, SLOP_PAGE_X call SlopScrollLeft - jp .renderArrows + jp .afterMove .moveRight ld c, SLOP_PAGE_X call SlopScrollRight - jp .renderArrows + jp .afterMove +; After an in-map page (or an edge clamp): EXPLORE redraws its arrows and waits +; for input; the SCREENSAVER instead picks the next direction and dispatches it +; immediately -- no arrow redraw, no idle DelayFrame -- so pages chain into one +; another and the camera scrolls continuously. +.afterMove + ld a, [wSlopSaverDir] + and a + jp z, .renderArrows +.saverNext + call Joypad ; refresh hJoyHeld (updated by the scroll's vblanks) + ldh a, [hJoyHeld] + and a + jp nz, .exit ; any real button wakes the screensaver + call SlopSaverPickDir ; d = next auto-scroll direction + jp .dispatch ; ---- map-edge handling ---- ; A full page won't fit before the edge, so smooth-scroll the remaining (even) ; distance right up to the edge, then either cross into the connected map (one @@ -527,7 +541,7 @@ SlopExploreShared: call LoadMapData jp .renderView .clampArrows - jp .renderArrows + jp .afterMove ; ---- A: warp the player to the walkable tile nearest the screen centre ---- ; the centre tile is wTileMap(col 8,row 9) = coord (wYCoord,wXCoord); a coord ; offset (dy,dx) maps to wTileMap(8+2dx, 9+2dy). Scan outward for a passable tile. |
