diff options
author | YamaArashi <shadow962@live.com> | 2012-02-09 15:23:12 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2012-02-09 15:23:12 -0800 |
commit | 6a90847eb661828d24b39be0f42932337884e80a (patch) | |
tree | 5f06e32aa2b6ef30fd15f1c3e939568c3e0c81df /main.asm | |
parent | efbd362f97a5f77d9423e286fca6757e6e3e9a86 (diff) |
disasm of some party menu related functions
hg-commit-id: 1205936f3eab
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 877 |
1 files changed, 819 insertions, 58 deletions
@@ -2846,7 +2846,443 @@ SwitchToMapRomBank: ; 12BC pop hl ret -INCBIN "baserom.gbc",$12DA,$15B4 - $12DA +INCBIN "baserom.gbc",$12DA,$12F8 - $12DA + +; this is used to check if the player wants to interrupt the opening sequence at several points +; XXX is this used anywhere else? +; INPUT: +; c = number of frames to wait +; sets carry if Up+Select+B, Start, or A is pressed within c frames +; unsets carry otherwise +CheckForUserInterruption: ; 12F8 + call DelayFrame + push bc + call GetJoypadStateLowSensitivity + pop bc + ld a,[$ffb4] ; currently pressed buttons + cp a,%01000110 ; Up, Select button, B button + jr z,.setCarry\@ ; if all three keys are pressed + ld a,[$ffb5] ; either newly pressed buttons or currently pressed buttons at low sampling rate + and a,%00001001 ; Start button, A button + jr nz,.setCarry\@ ; if either key is pressed + dec c + jr nz,CheckForUserInterruption +.unsetCarry\@ + and a + ret +.setCarry\@ + scf + ret + +; function to load position data for destination warp when switching maps +; INPUT: +; a = ID of destination warp within destination map +LoadDestinationWarpPosition: ; 1313 + ld b,a + ld a,[$ffb8] + push af + ld a,[$cf12] + ld [$ffb8],a + ld [$2000],a + ld a,b + add a + add a + ld c,a + ld b,0 + add hl,bc + ld bc,4 + ld de,$d35f + call CopyData + pop af + ld [$ffb8],a + ld [$2000],a + ret + +; INPUT: +; c: if nonzero, show at least a sliver of health +; d = number of HP bar sections (normally 6) +; e = health (in eighths of bar sections) (normally out of 48) +DrawHPBar: ; 1336 + push hl + push de + push bc + ld a,$71 ; left of HP bar tile 1 + ld [hli],a + ld a,$62 ; left of HP bar tile 2 + ld [hli],a + push hl + ld a,$63 ; empty bar section tile +.drawEmptyBarLoop\@ + ld [hli],a + dec d + jr nz,.drawEmptyBarLoop\@ + ld a,[$cf94] + dec a ; what should the right of HP bar tile be? + ld a,$6d ; right of HP bar tile, in status screen and battles + jr z,.writeTile\@ + dec a ; right of HP bar tile, in pokemon menu +.writeTile\@ + ld [hl],a + pop hl + ld a,e + and a ; is there enough health to show up on the HP bar? + jr nz,.loop\@ ; if so, draw the HP bar + ld a,c + and a ; should a sliver of health be shown no matter what? + jr z,.done\@ + ld e,1 ; if so, fill one eighth of a bar section +; loop to draw every full bar section +.loop\@ + ld a,e + sub a,8 + jr c,.drawPartialBarSection\@ + ld e,a + ld a,$6b ; filled bar section tile + ld [hli],a + ld a,e + and a + jr z,.done\@ + jr .loop\@ +; draws a partial bar section at the end (if necessary) +; there are 7 possible partial bar sections from 1/8 to 7/8 full +.drawPartialBarSection\@ + ld a,$63 ; empty bar section tile + add e ; add e to get the appropriate partial bar section tile + ld [hl],a ; write the tile +.done\@ + pop bc + pop de + pop hl + ret + +; loads pokemon data from one of multiple sources to $cf98 +; loads base stats to $d0b8 +; INPUT: +; [$cf92] = index of pokemon within party/box +; [$cc49] = source +; 00: player's party +; 01: enemy's party +; 02: current box +; 03: daycare +; OUTPUT: +; [$cf91] = pokemon ID +; $cf98 = base address of pokemon data +; $d0b8 = base address of base stats +LoadMonData: ; 1372 + ld hl,LoadMonData_ + ld b,BANK(LoadMonData_) + jp Bankswitch + +INCBIN "baserom.gbc",$137A,$13D0 - $137A + +; plays the cry of a pokemon +; INPUT: +; a = pokemon ID +PlayCry: ; 13D0 + call GetCryData + call $23b1 ; play cry + jp $3748 ; wait for sound to be done playing + +; gets a pokemon's cry data +; INPUT: +; a = pokemon ID +GetCryData: ; 13D9 + dec a + ld c,a + ld b,0 + ld hl,$5446 + add hl,bc + add hl,bc + add hl,bc + ld a,$0e + call BankswitchHome + ld a,[hli] + ld b,a + ld a,[hli] + ld [$c0f1],a + ld a,[hl] + ld [$c0f2],a + call BankswitchBack + ld a,b ; a = cryID + ld c,$14 ; base sound ID for pokemon cries + rlca + add b ; a = cryID * 3 + add c ; a = $14 + cryID * 3 + ret + +DisplayPartyMenu: ; 13FC + ld a,[$ffd7] + push af + xor a + ld [$ffd7],a + call GBPalWhiteOutWithDelay3 + call CleanLCD_OAM + call PartyMenuInit + call DrawPartyMenu + jp HandlePartyMenuInput + +GoBackToPartyMenu: ; 1411 + ld a,[$ffd7] + push af + xor a + ld [$ffd7],a + call PartyMenuInit + call RedrawPartyMenu + jp HandlePartyMenuInput + +PartyMenuInit: ; 1420 + ld a,$01 + call BankswitchHome + call LoadHpBarAndStatusTilePatterns + ld hl,$d730 + set 6,[hl] ; turn off letter printing delay + xor a + ld [$cc49],a + ld [$cc37],a + ld hl,W_TOPMENUITEMY + inc a + ld [hli],a ; top menu item Y + xor a + ld [hli],a ; top menu item X + ld a,[$cc2b] + push af + ld [hli],a ; current menu item ID + inc hl + ld a,[W_NUMINPARTY] + and a ; are there more than 0 pokemon in the party? + jr z,.storeMaxMenuItemID\@ + dec a +; if party is not empty, the max menu item ID is ([W_NUMINPARTY] - 1) +; otherwise, it is 0 +.storeMaxMenuItemID\@ + ld [hli],a ; max menu item ID + ld a,[$d11f] + and a + ld a,%00000011 ; A button and B button + jr z,.next\@ + xor a + ld [$d11f],a + inc a +.next\@ + ld [hli],a ; menu watched keys + pop af + ld [hl],a ; old menu item ID + ret + +HandlePartyMenuInput: ; 145A + ld a,1 + ld [$cc4a],a + ld a,$40 + ld [$d09b],a + call HandleMenuInputPokemonSelection + call PlaceUnfilledArrowMenuCursor + ld b,a + xor a + ld [$d09b],a + ld a,[W_CURMENUITEMID] + ld [$cc2b],a + ld hl,$d730 + res 6,[hl] ; turn on letter printing delay + ld a,[$cc35] + and a + jp nz,.swappingPokemon\@ + pop af + ld [$ffd7],a + bit 1,b + jr nz,.noPokemonChosen\@ + ld a,[W_NUMINPARTY] + and a + jr z,.noPokemonChosen\@ + ld a,[W_CURMENUITEMID] + ld [$cf92],a + ld hl,W_PARTYMON1 + ld b,0 + ld c,a + add hl,bc + ld a,[hl] + ld [$cf91],a + ld [$cfd9],a + call BankswitchBack + and a + ret +.noPokemonChosen\@ + call BankswitchBack + scf + ret +.swappingPokemon\@ + bit 1,b ; was the B button pressed? + jr z,.handleSwap\@ ; if not, handle swapping the pokemon +.cancelSwap\@ ; if the B button was pressed + ld b,BANK(ErasePartyMenuCursors) + ld hl,ErasePartyMenuCursors + call Bankswitch + xor a + ld [$cc35],a + ld [$d07d],a + call RedrawPartyMenu + jr HandlePartyMenuInput +.handleSwap\@ + ld a,[W_CURMENUITEMID] + ld [$cf92],a + ld b,$04 + ld hl,$7613 + call Bankswitch + jr HandlePartyMenuInput + +DrawPartyMenu: ; 14D4 + ld hl,$6cd2 + jr DrawPartyMenuCommon + +RedrawPartyMenu: ; 14D9 + ld hl,$6ce3 + +DrawPartyMenuCommon: ; 14DC + ld b,$04 + jp Bankswitch + +; prints a pokemon's status condition +; INPUT: +; de = address of status condition +; hl = destination address +PrintStatusCondition: ; 14E1 + push de + dec de + dec de ; de = address of current HP + ld a,[de] + ld b,a + dec de + ld a,[de] + or b ; is the pokemon's HP zero? + pop de + jr nz,.notFainted\@ +; if the pokemon's HP is 0, print "FNT" + ld a,"F" + ld [hli],a + ld a,"N" + ld [hli],a + ld [hl],"T" + and a + ret +.notFainted\@ + ld a,[$ffb8] + push af + ld a,$1d + ld [$ffb8],a + ld [$2000],a + call $47de ; print status condition + pop bc + ld a,b + ld [$ffb8],a + ld [$2000],a + ret + +; function to print pokemon level, leaving off the ":L" if the level is at least 100 +; INPUT: +; hl = destination address +; [$cfb9] = level +PrintLevel: ; 150B + ld a,$6e ; ":L" tile ID + ld [hli],a + ld c,2 ; number of digits + ld a,[$cfb9] ; level + cp a,100 + jr c,PrintLevelCommon +; if level at least 100, write over the ":L" tile + dec hl + inc c ; increment number of digits to 3 + jr PrintLevelCommon + +; prints the level without leaving off ":L" regardless of level +; INPUT: +; hl = destination address +; [$cfb9] = level +PrintLevelFull: ; 151B + ld a,$6e ; ":L" tile ID + ld [hli],a + ld c,3 ; number of digits + ld a,[$cfb9] ; level + +PrintLevelCommon: ; 1523 + ld [$d11e],a + ld de,$d11e + ld b,$41 ; no leading zeroes, left-aligned, one byte + jp PrintNumber + +; XXX does anything call this? +Unknown152E: ; 152E + ld hl,$d0dc + ld c,a + ld b,0 + add hl,bc + ld a,[hl] + ret + +; copies the base stat data of a pokemon to $D0B8 +; INPUT: +; [$D0B5] = pokemon ID +GetBaseStats: ; 1537 + ld a,[$ffb8] + push af + ld a,$0e + ld [$ffb8],a + ld [$2000],a + push bc + push de + push hl + ld a,[$d11e] + push af + ld a,[$d0b5] + ld [$d11e],a + ld de,FossilKabutopsPic + ld b,$66 ; size of Kabutops fossil and Ghost sprites + cp a,$b6 ; Kabutops fossil + jr z,.specialID\@ + ld de,GhostPic + cp a,$b8 ; Ghost + jr z,.specialID\@ + ld de,FossilAerodactylPic + ld b,$77 ; size of Aerodactyl fossil sprite + cp a,$b7 ; Aerodactyl fossil + jr z,.specialID\@ + cp a,MEW + jr z,.mew\@ + ld a,$3a + call Predef ; convert pokemon ID in [$D11E] to pokedex number + ld a,[$d11e] + dec a + ld bc,28 + ld hl,BulbasaurBaseStats + call AddNTimes + ld de,$d0b8 + ld bc,28 + call CopyData + jr .done\@ +.specialID\@ + ld hl,$d0c2 + ld [hl],b + inc hl + ld [hl],e + inc hl + ld [hl],d + jr .done\@ +.mew\@ + ld hl,$425b + ld de,$d0b8 + ld bc,28 + ld a,$01 + call FarCopyData +.done\@ + ld a,[$d0b5] + ld [$d0b8],a + pop af + ld [$d11e],a + pop hl + pop de + pop bc + pop af + ld [$ffb8],a + ld [$2000],a + ret ; copy party pokemon's name to $CD6D GetPartyMonName2: ; 15B4 @@ -7537,7 +7973,62 @@ IF _BLUE db $61,$62,$63,$64,$65,$66,$67,$68,$50 ENDC -INCBIN "baserom.gbc",$45AA,$472B-$45AA +NintenText: ; 45AA + db "NINTEN@" + +SonyText: ; 45B1 + db "SONY@" + +; loads pokemon data from one of multiple sources to $cf98 +; loads base stats to $d0b8 +; INPUT: +; [$cf92] = index of pokemon within party/box +; [$cc49] = source +; 00: player's party +; 01: enemy's party +; 02: current box +; 03: daycare +; OUTPUT: +; [$cf91] = pokemon ID +; $cf98 = base address of pokemon data +; $d0b8 = base address of base stats +LoadMonData_: ; 45B6 + ld a,[$da5f] ; daycare pokemon ID + ld [$cf91],a + ld a,[$cc49] + cp a,$03 + jr z,.getBaseStats\@ + ld a,[$cf92] + ld e,a + ld hl,$5c37 + ld b,$0e + call Bankswitch ; get pokemon ID +.getBaseStats\@ + ld a,[$cf91] + ld [$d0b5],a ; input for GetBaseStats + call GetBaseStats ; load base stats to $d0b8 + ld hl,W_PARTYMON1DATA + ld bc,44 + ld a,[$cc49] + cp a,$01 + jr c,.getMonEntry\@ + ld hl,$d8a4 ; enemy pokemon 1 data + jr z,.getMonEntry\@ + cp a,$02 + ld hl,$da96 ; box pokemon 1 data + ld bc,33 + jr z,.getMonEntry\@ + ld hl,$da5f ; daycare pokemon data + jr .copyMonData\@ +.getMonEntry\@ ; add the product of the index and the size of each entry + ld a,[$cf92] + call AddNTimes +.copyMonData\@ + ld de,$cf98 + ld bc,44 + jp CopyData + +INCBIN "baserom.gbc",$4608,$472B-$4608 ItemNames: ; 472B db "MASTER BALL@" @@ -15628,74 +16119,331 @@ OldAmberSprite: ; 0x11300 LyingOldManSprite: ; 0x11340 INCBIN "gfx/sprites/lying_old_man.2bpp" ; was $11340 -INCBIN "baserom.gbc",$11380,$12e7f - $11380 +INCBIN "baserom.gbc",$11380,$12cd2 - $11380 + +; [$D07D] = menu type / message ID +; if less than $F0, it is a menu type +; menu types: +; 00: normal pokemon menu (e.g. Start menu) +; 01: use healing item on pokemon menu +; 02: in-battle switch pokemon menu +; 03: learn TM/HM menu +; 04: swap pokemon positions menu +; 05: use evolution stone on pokemon menu +; otherwise, it is a message ID +; f0: poison healed +; f1: burn healed +; f2: freeze healed +; f3: sleep healed +; f4: paralysis healed +; f5: HP healed +; f6: health returned +; f7: revitalized +; f8: leveled up +DrawPartyMenu_: ; 6CD2 + xor a + ld [H_AUTOBGTRANSFERENABLED],a + call ClearScreen + call $2429 ; move sprites + ld b,$1C + ld hl,$5791 + call Bankswitch ; load pokemon icon graphics -UnnamedText_12e7f: ; 0x12e7f - TX_FAR _UnnamedText_12e7f +RedrawPartyMenu_: ; 6CE3 + ld a,[$D07D] + cp a,$04 + jp z,.printMessage\@ + call ErasePartyMenuCursors + ld b,$1C + ld hl,$5FB6 + call Bankswitch ; loads some data to $cf2e + FuncCoord 3,0 + ld hl,Coord + ld de,W_PARTYMON1 + xor a + ld c,a + ld [$FF8C],a ; loop counter + ld [$CF2D],a +.loop\@ + ld a,[de] + cp a,$FF ; reached the terminator? + jp z,.afterDrawingMonEntries\@ + push bc + push de + push hl + ld a,c + push hl + ld hl,W_PARTYMON1NAME + call GetPartyMonName + pop hl + call PlaceString ; print the pokemon's name + ld b,$1C + ld hl,$5868 + call Bankswitch ; place the appropriate pokemon icon + ld a,[$FF8C] ; loop counter + ld [$CF92],a + inc a + ld [$FF8C],a + call LoadMonData + pop hl + push hl + ld a,[$CC35] + and a ; is the player swapping pokemon positions? + jr z,.skipUnfilledRightArrow\@ +; if the player is swapping pokemon positions + dec a + ld b,a + ld a,[$CF92] + cp b ; is the player swapping the current pokemon in the list? + jr nz,.skipUnfilledRightArrow\@ +; the player is swapping the current pokemon in the list + dec hl + dec hl + dec hl + ld a,$EC ; unfilled right arrow menu cursor + ld [hli],a ; place the cursor + inc hl + inc hl +.skipUnfilledRightArrow\@ + ld a,[$D07D] ; menu type + cp a,$03 + jr z,.teachMoveMenu\@ + cp a,$05 + jr z,.evolutionStoneMenu\@ + push hl + ld bc,14 ; 14 columns to the right + add hl,bc + ld de,$CF9C + call PrintStatusCondition + pop hl + push hl + ld bc,20 + 1 ; down 1 row and right 1 column + ld a,[$FFF6] + set 0,a + ld [$FFF6],a + add hl,bc + ld a,$60 + call Predef ; draw HP bar and prints current / max HP + ld a,[$FFF6] + res 0,a + ld [$FFF6],a + call $6EC7 ; color the HP bar (on SGB) + pop hl + jr .printLevel\@ +.teachMoveMenu\@ + push hl + ld a,$43 + call Predef ; check if the pokemon can learn the move + pop hl + ld de,.ableToLearnMoveText\@ + ld a,c + and a + jr nz,.placeMoveLearnabilityString\@ + ld de,.notAbleToLearnMoveText\@ +.placeMoveLearnabilityString\@ + ld bc,20 + 9 ; down 1 row and right 9 columns + push hl + add hl,bc + call PlaceString + pop hl +.printLevel\@ + ld bc,10 ; move 10 columns to the right + add hl,bc + call PrintLevel + pop hl + pop de + inc de + ld bc,2 * 20 + add hl,bc + pop bc + inc c + jp .loop\@ +.ableToLearnMoveText\@ + db "ABLE@" +.notAbleToLearnMoveText\@ + db "NOT ABLE@" +.evolutionStoneMenu\@ + push hl + ld hl,EvosMovesPointerTable + ld b,0 + ld a,[$CF98] ; pokemon ID + dec a + add a + rl b + ld c,a + add hl,bc + ld de,$CD6D + ld a,BANK(EvosMovesPointerTable) + ld bc,2 + call FarCopyData + ld hl,$CD6D + ld a,[hli] + ld h,[hl] + ld l,a + ld de,$CD6D + ld a,BANK(EvosMovesPointerTable) + ld bc,13 + call FarCopyData + ld hl,$CD6D + ld de,.notAbleToEvolveText\@ +; loop through the pokemon's evolution entries +.checkEvolutionsLoop\@ + ld a,[hli] + and a ; reached terminator? + jr z,.placeEvolutionStoneString\@ ; if so, place the "NOT ABLE" string + inc hl + inc hl + cp a,EV_ITEM + jr nz,.checkEvolutionsLoop\@ +; if it's a stone evolution entry + dec hl + dec hl + ld b,[hl] + ld a,[$D156] ; evolution stone item ID + inc hl + inc hl + inc hl + cp b ; does the player's stone match this evolution entry's stone? + jr nz,.checkEvolutionsLoop\@ +; if it does match + ld de,.ableToEvolveText\@ +.placeEvolutionStoneString\@ + ld bc,20 + 9 ; down 1 row and right 9 columns + pop hl + push hl + add hl,bc + call PlaceString + pop hl + jr .printLevel\@ +.ableToEvolveText\@ + db "ABLE@" +.notAbleToEvolveText\@ + db "NOT ABLE@" +.afterDrawingMonEntries\@ + ld b,$0A + call GoPAL_SET +.printMessage\@ + ld hl,$D730 + ld a,[hl] + push af + push hl + set 6,[hl] ; turn off letter printing delay + ld a,[$D07D] ; message ID + cp a,$F0 + jr nc,.printItemUseMessage\@ + add a + ld hl,PartyMenuMessagePointers + ld b,0 + ld c,a + add hl,bc + ld a,[hli] + ld h,[hl] + ld l,a + call PrintText +.done\@ + pop hl + pop af + ld [hl],a + ld a,1 + ld [H_AUTOBGTRANSFERENABLED],a + call Delay3 + jp GBPalNormal +.printItemUseMessage\@ + and a,$0F + ld hl,PartyMenuItemUseMessagePointers + add a + ld c,a + ld b,0 + add hl,bc + ld a,[hli] + ld h,[hl] + ld l,a + push hl + ld a,[$CF06] + ld hl,W_PARTYMON1NAME + call GetPartyMonName + pop hl + call PrintText + jr .done\@ + +PartyMenuItemUseMessagePointers: ; 6E61 + dw AntidoteText + dw BurnHealText + dw IceHealText + dw AwakeningText + dw ParlyzHealText + dw PotionText + dw FullHealText + dw ReviveText + dw RareCandyText + +PartyMenuMessagePointers: ; 6E73 + dw PartyMenuNormalText + dw PartyMenuItemUseText + dw PartyMenuBattleText + dw PartyMenuUseTMText + dw PartyMenuSwapMonText + dw PartyMenuItemUseText + +PartyMenuNormalText: ; 0x12e7f + TX_FAR _PartyMenuNormalText + db $50 + +PartyMenuItemUseText: ; 0x12e84 + TX_FAR _PartyMenuItemUseText db $50 -; 0x12e7f + 5 bytes -UnnamedText_12e84: ; 0x12e84 - TX_FAR _UnnamedText_12e84 +PartyMenuBattleText: ; 0x12e89 + TX_FAR _PartyMenuBattleText db $50 -; 0x12e84 + 5 bytes -UnnamedText_12e89: ; 0x12e89 - TX_FAR _UnnamedText_12e89 +PartyMenuUseTMText: ; 0x12e8e + TX_FAR _PartyMenuUseTMText db $50 -; 0x12e89 + 5 bytes -UnnamedText_12e8e: ; 0x12e8e - TX_FAR _UnnamedText_12e8e +PartyMenuSwapMonText: ; 0x12e93 + TX_FAR _PartyMenuSwapMonText db $50 -; 0x12e8e + 5 bytes -UnnamedText_12e93: ; 0x12e93 - TX_FAR _UnnamedText_12e93 +PotionText: ; 0x12e98 + TX_FAR _PotionText db $50 -; 0x12e93 + 5 bytes -UnnamedText_12e98: ; 0x12e98 - TX_FAR _UnnamedText_12e98 +AntidoteText: ; 0x12e9d + TX_FAR _AntidoteText db $50 -; 0x12e98 + 5 bytes -UnnamedText_12e9d: ; 0x12e9d - TX_FAR _UnnamedText_12e9d +ParlyzHealText: ; 0x12ea2 + TX_FAR _ParlyzHealText db $50 -; 0x12e9d + 5 bytes -UnnamedText_12ea2: ; 0x12ea2 - TX_FAR _UnnamedText_12ea2 +BurnHealText: ; 0x12ea7 + TX_FAR _BurnHealText db $50 -; 0x12ea2 + 5 bytes -UnnamedText_12ea7: ; 0x12ea7 - TX_FAR _UnnamedText_12ea7 +IceHealText: ; 0x12eac + TX_FAR _IceHealText db $50 -; 0x12ea7 + 5 bytes -UnnamedText_12eac: ; 0x12eac - TX_FAR _UnnamedText_12eac +AwakeningText: ; 0x12eb1 + TX_FAR _AwakeningText db $50 -; 0x12eac + 5 bytes -UnnamedText_12eb1: ; 0x12eb1 - TX_FAR _UnnamedText_12eb1 +FullHealText: ; 0x12eb6 + TX_FAR _FullHealText db $50 -; 0x12eb1 + 5 bytes -UnnamedText_12eb6: ; 0x12eb6 - TX_FAR _UnnamedText_12eb6 +ReviveText: ; 0x12ebb + TX_FAR _ReviveText db $50 -; 0x12eb6 + 5 bytes -UnnamedText_12ebb: ; 0x12ebb - TX_FAR _UnnamedText_12ebb +RareCandyText: ; 0x12ec0 + TX_FAR _RareCandyText + db $0B + db $06 db $50 -; 0x12ebb + 5 bytes -INCBIN "baserom.gbc",$12ec0,$1e +INCBIN "baserom.gbc",$12ec7,$6ede - $6ec7 RedPicFront: INCBIN "pic/trainer/red.pic" @@ -15742,7 +16490,20 @@ UnnamedText_132e8: ; 0x132e8 db $50 ; 0x132e8 + 5 bytes -INCBIN "baserom.gbc",$132ed,$1342a - $132ed +; writes a blank tile to all possible menu cursor positions on the party menu +ErasePartyMenuCursors: ; 72ED + FuncCoord 0,1 + ld hl,Coord + ld bc,2 * 20 ; menu cursor positions are 2 rows apart + ld a,6 ; 6 menu cursor positions +.loop\@ + ld [hl],$7f + add hl,bc + dec a + jr nz,.loop\@ + ret + +INCBIN "baserom.gbc",$132fc,$1342a - $132fc UnnamedText_1342a: ; 0x1342a TX_FAR _UnnamedText_1342a @@ -72181,31 +72942,31 @@ _UnnamedText_1ca14: ; 0x89dad db "you want? ", $57 ; 0x89dad + 27 bytes -_UnnamedText_12e7f: ; 0x89dc8 +_PartyMenuNormalText: ; 0x89dc8 db $0, "Choose a #MON.", $57 ; 0x89dc8 + 16 bytes -_UnnamedText_12e84: ; 0x89dd8 +_PartyMenuItemUseText: ; 0x89dd8 db $0, "Use item on which", $4f db "#MON?", $57 ; 0x89dd8 + 25 bytes -_UnnamedText_12e89: ; 0x89df1 +_PartyMenuBattleText: ; 0x89df1 db $0, "Bring out which", $4f db "#MON?", $57 ; 0x89df1 + 23 bytes -_UnnamedText_12e8e: ; 0x89e08 +_PartyMenuUseTMText: ; 0x89e08 db $0, "Use TM on which", $4f db "#MON?", $57 ; 0x89e08 + 23 bytes -_UnnamedText_12e93: ; 0x89e1f +_PartyMenuSwapMonText: ; 0x89e1f db $0, "Move #MON", $4f db "where?", $57 ; 0x89e1f + 18 bytes -_UnnamedText_12e98: ; 0x89e31 +_PotionText: ; 0x89e31 TX_RAM $cd6d db $0, $4f db "recovered by @" @@ -72213,49 +72974,49 @@ _UnnamedText_12e98: ; 0x89e31 db $0, "!", $57 ; 0x89e31 + 26 bytes -_UnnamedText_12e9d: ; 0x89e4b +_AntidoteText: ; 0x89e4b TX_RAM $cd6d db $0, " was", $4f db "cured of poison!", $57 ; 0x89e4b + 26 bytes -_UnnamedText_12ea2: ; 0x89e65 +_ParlyzHealText: ; 0x89e65 TX_RAM $cd6d db $0, "'s", $4f db "rid of paralysis!", $57 ; 0x89e65 + 24 bytes -_UnnamedText_12ea7: ; 0x89e7d +_BurnHealText: ; 0x89e7d TX_RAM $cd6d db $0, "'s", $4f db "burn was healed!", $57 ; 0x89e7d + 23 bytes -_UnnamedText_12eac: ; 0x89e94 +_IceHealText: ; 0x89e94 TX_RAM $cd6d db $0, " was", $4f db "defrosted!", $57 ; 0x89e94 + 20 bytes -_UnnamedText_12eb1: ; 0x89ea8 +_AwakeningText: ; 0x89ea8 TX_RAM $cd6d db $0, $4f db "woke up!", $57 ; 0x89ea8 + 14 bytes -_UnnamedText_12eb6: ; 0x89eb6 +_FullHealText: ; 0x89eb6 TX_RAM $cd6d db $0, "'s", $4f db "health returned!", $57 ; 0x89eb6 + 23 bytes -_UnnamedText_12ebb: ; 0x89ecd +_ReviveText: ; 0x89ecd TX_RAM $cd6d db $0, $4f db "is revitalized!", $57 ; 0x89ecd + 21 bytes -LevelUpText: ; 0x89ee2 +_RareCandyText: ; 0x89ee2 TX_RAM $cd6d db $0, " grew", $4f db "to level @" |