diff options
| author | Ash Ketchum <no-reply@sl0p.foo> | 2026-07-15 16:30:21 +0200 |
|---|---|---|
| committer | Ash Ketchum <no-reply@sl0p.foo> | 2026-07-15 16:30:21 +0200 |
| commit | b6ed7736b92e9772626e6c457b2cb28c9d63411c (patch) | |
| tree | ae5d5a29aba79ffdc8fe1dbf1ab02de3ea6a1da3 | |
| parent | docs: custom SL0P EDITION README with screenshots (diff) | |
| download | pokeyellow-b6ed7736b92e9772626e6c457b2cb28c9d63411c.tar.gz pokeyellow-b6ed7736b92e9772626e6c457b2cb28c9d63411c.tar.xz pokeyellow-b6ed7736b92e9772626e6c457b2cb28c9d63411c.zip | |
SL0P menu: confirmation feedback for single-shot cheats
The instant cheats (MONEY/HEAL/COINS/BADGES/DEX/MAXTEAM/TEACH/HMS/REPEL,
NOWILD, and ITEMS-give) dropped you straight back to the menu with no sign
anything happened. Add SlopConfirm: play the item jingle and flash a centred
message box for ~0.8s before returning. NOWILD reports WILD MONS ON/OFF to
match the new state.
| -rw-r--r-- | engine/slop_menu.asm | 79 |
1 files changed, 62 insertions, 17 deletions
diff --git a/engine/slop_menu.asm b/engine/slop_menu.asm index 4c93e2ed..5d14cfb1 100644 --- a/engine/slop_menu.asm +++ b/engine/slop_menu.asm @@ -1094,6 +1094,8 @@ GiveItemSubmenu: ld b, [hl] ld c, 99 call GiveItem + ld de, SlopMsgItem + jp SlopConfirm .back and a ret @@ -1157,8 +1159,8 @@ SlopHealParty: dec c jr nz, .loop .done - and a - ret + ld de, SlopMsgHeal + jp SlopConfirm ; TEACH: give every party member an OP coverage moveset + PP ; (Hyper Beam / Earthquake / Ice Beam / Thunderbolt) @@ -1198,8 +1200,8 @@ SlopTeach: dec c jr nz, .loop .done - and a - ret + ld de, SlopMsgTeach + jp SlopConfirm ; HMS: give all five HMs (Cut/Fly/Surf/Strength/Flash) SlopGiveHMs: @@ -1213,8 +1215,8 @@ SlopGiveHMs: ld a, b cp HM_FLASH + 1 jr nz, .loop - and a - ret + ld de, SlopMsgHMs + jp SlopConfirm ; MONEY: 999999 (BCD) SlopMaxCash: @@ -1222,16 +1224,16 @@ SlopMaxCash: ld [wPlayerMoney], a ld [wPlayerMoney + 1], a ld [wPlayerMoney + 2], a - and a - ret + ld de, SlopMsgMoney + jp SlopConfirm ; COINS: 9999 game-corner coins (BCD) SlopMaxCoins: ld a, $99 ld [wPlayerCoins], a ld [wPlayerCoins + 1], a - and a - ret + ld de, SlopMsgCoins + jp SlopConfirm ; NOWILD toggle: no wild encounters (hooked in TryDoWildEncounter) SlopToggleNoWild: @@ -1239,21 +1241,26 @@ SlopToggleNoWild: xor $01 ld [wUnusedFlag], a and a - ret + jr z, .wildOn ; flag off -> wild encounters back ON + ld de, SlopMsgWildOff ; flag on -> wild encounters OFF + jp SlopConfirm +.wildOn + ld de, SlopMsgWildOn + jp SlopConfirm ; REPEL: refill repel steps SlopRepel: ld a, 255 ld [wRepelRemainingSteps], a - and a - ret + ld de, SlopMsgRepel + jp SlopConfirm ; BADGES: all 8 SlopAllBadges: ld a, $ff ld [wObtainedBadges], a - and a - ret + ld de, SlopMsgBadges + jp SlopConfirm ; DEX: mark every Pokemon owned + seen (19-byte flag arrays; last byte = 7 bits) SlopDex: @@ -1261,8 +1268,8 @@ SlopDex: call .fill ld hl, wPokedexSeen call .fill - and a - ret + ld de, SlopMsgDex + jp SlopConfirm .fill ld c, 18 .floop @@ -1330,5 +1337,43 @@ SlopMaxTeam: dec c jr nz, .loop .done + ld de, SlopMsgTeam + jp SlopConfirm + +; =========================================================================== +; Single-shot feedback: a one-shot cheat plays the item jingle and flashes a +; centred message box for a beat, so you can tell it actually did something. +; de = @-terminated message. Returns carry clear -> the dispatcher redraws menu. +; =========================================================================== +SlopConfirm: + push de + ld a, SFX_GET_ITEM_1 + call PlaySound + call ClearScreen + hlcoord 1, 7 + lb bc, 2, 16 + call TextBoxBorder + hlcoord 3, 8 + pop de + call PlaceString + call SlopMenuShow + ld c, 48 +.wait + call DelayFrame + dec c + jr nz, .wait and a ret + +SlopMsgHeal: db "PARTY HEALED!@" +SlopMsgMoney: db "MONEY MAXED!@" +SlopMsgCoins: db "COINS MAXED!@" +SlopMsgBadges: db "ALL 8 BADGES!@" +SlopMsgDex: db "DEX COMPLETE!@" +SlopMsgTeam: db "TEAM MAXED!@" +SlopMsgTeach: db "MOVES TAUGHT!@" +SlopMsgHMs: db "GOT ALL HMS!@" +SlopMsgRepel: db "REPEL FILLED!@" +SlopMsgItem: db "GOT 99 ITEMS!@" +SlopMsgWildOff: db "WILD MONS OFF@" +SlopMsgWildOn: db "WILD MONS ON@" |
