disasm of some party menu related functions

hg-commit-id: 1205936f3eab
This commit is contained in:
YamaArashi 2012-02-09 15:23:12 -08:00
parent efbd362f97
commit 6a90847eb6

877
main.asm
View file

@ -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
UnnamedText_12e7f: ; 0x12e7f
TX_FAR _UnnamedText_12e7f
; [$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
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
; 0x12e7f + 5 bytes
UnnamedText_12e84: ; 0x12e84
TX_FAR _UnnamedText_12e84
PartyMenuItemUseText: ; 0x12e84
TX_FAR _PartyMenuItemUseText
db $50
; 0x12e84 + 5 bytes
UnnamedText_12e89: ; 0x12e89
TX_FAR _UnnamedText_12e89
PartyMenuBattleText: ; 0x12e89
TX_FAR _PartyMenuBattleText
db $50
; 0x12e89 + 5 bytes
UnnamedText_12e8e: ; 0x12e8e
TX_FAR _UnnamedText_12e8e
PartyMenuUseTMText: ; 0x12e8e
TX_FAR _PartyMenuUseTMText
db $50
; 0x12e8e + 5 bytes
UnnamedText_12e93: ; 0x12e93
TX_FAR _UnnamedText_12e93
PartyMenuSwapMonText: ; 0x12e93
TX_FAR _PartyMenuSwapMonText
db $50
; 0x12e93 + 5 bytes
UnnamedText_12e98: ; 0x12e98
TX_FAR _UnnamedText_12e98
PotionText: ; 0x12e98
TX_FAR _PotionText
db $50
; 0x12e98 + 5 bytes
UnnamedText_12e9d: ; 0x12e9d
TX_FAR _UnnamedText_12e9d
AntidoteText: ; 0x12e9d
TX_FAR _AntidoteText
db $50
; 0x12e9d + 5 bytes
UnnamedText_12ea2: ; 0x12ea2
TX_FAR _UnnamedText_12ea2
ParlyzHealText: ; 0x12ea2
TX_FAR _ParlyzHealText
db $50
; 0x12ea2 + 5 bytes
UnnamedText_12ea7: ; 0x12ea7
TX_FAR _UnnamedText_12ea7
BurnHealText: ; 0x12ea7
TX_FAR _BurnHealText
db $50
; 0x12ea7 + 5 bytes
UnnamedText_12eac: ; 0x12eac
TX_FAR _UnnamedText_12eac
IceHealText: ; 0x12eac
TX_FAR _IceHealText
db $50
; 0x12eac + 5 bytes
UnnamedText_12eb1: ; 0x12eb1
TX_FAR _UnnamedText_12eb1
AwakeningText: ; 0x12eb1
TX_FAR _AwakeningText
db $50
; 0x12eb1 + 5 bytes
UnnamedText_12eb6: ; 0x12eb6
TX_FAR _UnnamedText_12eb6
FullHealText: ; 0x12eb6
TX_FAR _FullHealText
db $50
; 0x12eb6 + 5 bytes
UnnamedText_12ebb: ; 0x12ebb
TX_FAR _UnnamedText_12ebb
ReviveText: ; 0x12ebb
TX_FAR _ReviveText
db $50
; 0x12ebb + 5 bytes
INCBIN "baserom.gbc",$12ec0,$1e
RareCandyText: ; 0x12ec0
TX_FAR _RareCandyText
db $0B
db $06
db $50
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 @"