aboutsummaryrefslogtreecommitdiffstats
path: root/engine/warp_menu.asm (unfollow)
Commit message (Collapse)AuthorFilesLines
8 daysmenu: SL0P MENU scaffolding with WARP as a submenuAsh Ketchum1-110/+0
Refactor the flat warp menu into a table-driven top-level SL0P MENU opened by SELECT. Each entry = a name in SlopMenuText + a routine in SlopMenuHandlers; handlers return carry set (a warp was started, exit) or clear (back to the menu). Ships two entries: WARP -> WarpSubmenu (the 13-destination town list) HEAL -> SlopHealParty (restore party HP + clear status), demoing an action Shared open/close display handling (hide sprites, single-space flags, wTileMap push, restore). Add an entry by appending a name+handler and bumping SLOP_MENU_COUNT. (renamed engine/warp_menu.asm -> engine/slop_menu.asm)
8 dayswarp: center the menu box and add a SECRET SL0P WARP MENU bannerAsh Ketchum1-4/+18
Two centered title lines above a horizontally-centered box (moved to col 3, row 2; cursor/items shifted to match). Cursor alignment verified.
8 dayswarp: polish menu (clear bg + hide sprites), 13 destinations, kill the birdAsh Ketchum1-18/+39
- Hide the overworld behind the menu: wUpdateSpritesEnabled=$ff + ClearSprites + ClearScreen so no map tiles or NPCs bleed through. - Single-space the list via BIT_SINGLE_SPACED_LINES + BIT_DOUBLE_SPACED_MENU (restored on exit) so all 13 fly destinations fit: the 11 towns + Route 4 + Route 10 (every map with FlyWarpData coords). - No more bird: don't set BIT_USED_FLY (teleport-in instead of fly-in), and redirect _LeaveMapAnim's .flyAnimation to the plain warp-pad fade. Verified 0 sprites active through the warp transition.
8 dayswarp: full quick-warp menu (B2)Ash Ketchum1-6/+64
SELECT in the overworld now opens a drawn town list (Pallet..Indigo) with a moving cursor; A warps to the highlighted town via the fly-warp machinery, B cancels. WarpMenu draws its box into wTileMap then replicates the tail of DisplayTextIDInit (CopyScreenTileBufferToVRAM + hWY=0 + LoadFontTilePatterns + hAutoBGTransferEnabled) so the menu is actually pushed to the screen - without it the box drew into the shadow buffer but the overworld's direct-to-VRAM scrolled map left it invisible. HandleMenuInput drives selection; the chosen index maps through WarpMapTable to a map id.
8 dayswarp: SELECT opens quick-warp (B1) + relocate intro-skip to PlayIntroAsh Ketchum1-0/+17
- home/overworld.asm: SELECT in the overworld farcalls WarpMenu, then restarts the overworld loop so the fly-warp flags get processed. - engine/warp_menu.asm (new): WarpMenu reuses the fly-warp machinery (wDestinationMap + BIT_FLY_WARP/BIT_USED_FLY). B1 warps to Pallet unconditionally to validate the hook; the real destination menu is next. - Moved the fastboot intro-skip out of home/init.asm into PlayIntro (bank 10) to reclaim ~10 bytes of home ROM0 for the overworld hook. Net boot behavior is unchanged; new-game path still shows the intro.