mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-16 18:30:50 +12:00
Disasm a large part of the in-battle menu routines.
This commit is contained in:
parent
66d70b9295
commit
17e8f21f46
272
main.asm
272
main.asm
|
@ -40344,12 +40344,274 @@ UnnamedText_3cba1: ; 0x3cba1
|
||||||
db $50
|
db $50
|
||||||
; 0x3cba1 + 5 bytes
|
; 0x3cba1 + 5 bytes
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$3cba6,$3d0c5 - $3cba6
|
INCBIN "baserom.gbc",$3cba6,$3ceb3 - $3cba6
|
||||||
|
|
||||||
UnnamedText_3d0c5: ; 0x3d0c5
|
InitBattleMenu: ; 0x3ceb3 F:4EB3
|
||||||
TX_FAR _UnnamedText_3d0c5
|
call $3725 ; restore saved screen
|
||||||
|
ld a, [W_BATTLETYPE]
|
||||||
|
and a
|
||||||
|
jr nz, .nonstandardbattle ; 0x3ceba $9
|
||||||
|
call $4d5a ; redraw names and HP bars?
|
||||||
|
call $6e94
|
||||||
|
call $3719 ; save screen
|
||||||
|
.nonstandardbattle
|
||||||
|
ld a, [W_BATTLETYPE]
|
||||||
|
cp $2 ; safari
|
||||||
|
ld a, $b ; safari menu id
|
||||||
|
jr nz, .menuselected ; 0x3cecc $2
|
||||||
|
ld a, $1b ; regular menu id
|
||||||
|
.menuselected
|
||||||
|
ld [$d125], a
|
||||||
|
call DisplayTextBoxID
|
||||||
|
ld a, [$d05a]
|
||||||
|
dec a
|
||||||
|
jp nz, RegularBattleMenu ; regular battle
|
||||||
|
; the following happens for the old man tutorial
|
||||||
|
ld hl, W_PLAYERNAME
|
||||||
|
ld de, W_GRASSRATE
|
||||||
|
ld bc, $000b
|
||||||
|
call CopyData ; temporary save the player name in unused space,
|
||||||
|
; which is supposed to get overwritten when entering a map
|
||||||
|
; with wild pokémon. due to an oversight, the data may not
|
||||||
|
; get overwritten (cinnabar) and the infamous missingno.
|
||||||
|
; glitch can show up.
|
||||||
|
ld hl, OldManName
|
||||||
|
ld de, W_PLAYERNAME
|
||||||
|
ld bc, $000b
|
||||||
|
call CopyData
|
||||||
|
; the following probably sets the keystrokes
|
||||||
|
ld hl, $c4c1
|
||||||
|
ld [hl], $ed
|
||||||
|
ld c, $50
|
||||||
|
call DelayFrames
|
||||||
|
ld [hl], $7f
|
||||||
|
ld hl, $c4e9
|
||||||
|
ld [hl], $ed
|
||||||
|
ld c, $32
|
||||||
|
call DelayFrames
|
||||||
|
ld [hl], $ec
|
||||||
|
ld a, $2
|
||||||
|
jp $4fe8
|
||||||
|
|
||||||
|
OldManName: ; 0x3cf12
|
||||||
|
db "OLD MAN@"
|
||||||
|
|
||||||
|
RegularBattleMenu: ; 0x3cf1a
|
||||||
|
ld a, [$cc2d]
|
||||||
|
ld [W_CURMENUITEMID], a
|
||||||
|
ld [W_OLDMENUITEMID], a
|
||||||
|
sub $2
|
||||||
|
jr c, .leftcolumn ; 0x3cf25 $8
|
||||||
|
ld [W_CURMENUITEMID], a
|
||||||
|
ld [W_OLDMENUITEMID], a
|
||||||
|
jr .rightcolumn ; 0x3cf2d $3f
|
||||||
|
.leftcolumn
|
||||||
|
ld a, [W_BATTLETYPE]
|
||||||
|
cp $2
|
||||||
|
ld a, $7f
|
||||||
|
jr z, .safaribattle ; 0x3cf36 $a
|
||||||
|
ld [$c4c7], a
|
||||||
|
ld [$c4ef], a
|
||||||
|
ld b, $9
|
||||||
|
jr .notsafari ; 0x3cf40 $14
|
||||||
|
.safaribattle ; 3cf42
|
||||||
|
ld [$c4c5], a
|
||||||
|
ld [$c4ed], a
|
||||||
|
FuncCoord 7,14
|
||||||
|
ld hl, Coord
|
||||||
|
ld de, W_NUMSAFARIBALLS
|
||||||
|
ld bc, $0102
|
||||||
|
call PrintNumber
|
||||||
|
ld b, $1
|
||||||
|
.notsafari ; 3cf56
|
||||||
|
ld hl, W_TOPMENUITEMY
|
||||||
|
ld a, $e
|
||||||
|
ld [hli], a
|
||||||
|
ld a, b
|
||||||
|
ld [hli], a
|
||||||
|
inc hl
|
||||||
|
inc hl
|
||||||
|
ld a, $1
|
||||||
|
ld [hli], a
|
||||||
|
ld [hl], $11
|
||||||
|
call HandleMenuInput
|
||||||
|
bit 4, a
|
||||||
|
jr nz, .rightcolumn ; 0x3cf6a $2
|
||||||
|
jr .selection ; 0x3cf6c $46
|
||||||
|
.rightcolumn ;3cf6e
|
||||||
|
ld a, [W_BATTLETYPE]
|
||||||
|
cp $2
|
||||||
|
ld a, $7f
|
||||||
|
jr z, .safarirightcolumn ; 0x3cf75 $a
|
||||||
|
ld [$c4c1], a
|
||||||
|
ld [$c4e9], a
|
||||||
|
ld b, $f
|
||||||
|
jr .notsafarirightcolumn ; 0x3cf7f $14
|
||||||
|
.safarirightcolumn ; 3cf81
|
||||||
|
ld [$c4b9], a
|
||||||
|
ld [$c4e1], a
|
||||||
|
FuncCoord 7,14
|
||||||
|
ld hl, Coord
|
||||||
|
ld de, W_NUMSAFARIBALLS
|
||||||
|
ld bc, $0102
|
||||||
|
call PrintNumber ; redraw
|
||||||
|
ld b, $d
|
||||||
|
.notsafarirightcolumn
|
||||||
|
ld hl, W_TOPMENUITEMY
|
||||||
|
ld a, $e
|
||||||
|
ld [hli], a
|
||||||
|
ld a, b
|
||||||
|
ld [hli], a
|
||||||
|
inc hl
|
||||||
|
inc hl
|
||||||
|
ld a, $1
|
||||||
|
ld [hli], a
|
||||||
|
ld a, $21
|
||||||
|
ld [hli], a
|
||||||
|
call HandleMenuInput
|
||||||
|
bit 5, a
|
||||||
|
jr nz, .leftcolumn ; 0x3cfaa $83
|
||||||
|
ld a, [W_CURMENUITEMID]
|
||||||
|
add $2 ; if we're in the right column, the actual id is +2
|
||||||
|
ld [W_CURMENUITEMID], a
|
||||||
|
.selection ; 3cfb4
|
||||||
|
call PlaceUnfilledArrowMenuCursor
|
||||||
|
ld a, [W_BATTLETYPE]
|
||||||
|
cp $2
|
||||||
|
ld a, [W_CURMENUITEMID]
|
||||||
|
ld [$cc2d], a
|
||||||
|
jr z, .asm_3cfd0 ; 0x3cfc2 $c
|
||||||
|
cp $1
|
||||||
|
jr nz, .asm_3cfcb ; 0x3cfc6 $3
|
||||||
|
inc a
|
||||||
|
jr .asm_3cfd0 ; 0x3cfc9 $5
|
||||||
|
.asm_3cfcb
|
||||||
|
cp $2 ; what
|
||||||
|
jr nz, .asm_3cfd0 ; 0x3cfcd $1
|
||||||
|
dec a
|
||||||
|
.asm_3cfd0
|
||||||
|
and a
|
||||||
|
jr nz, .asm_3cfe8 ; 0x3cfd1 $15
|
||||||
|
; first option was selected...
|
||||||
|
ld a, [W_BATTLETYPE]
|
||||||
|
cp $2
|
||||||
|
jr z, .safari1
|
||||||
|
xor a
|
||||||
|
ld [$d120], a
|
||||||
|
jp $3725 ; restore saved screen and return???
|
||||||
|
.safari1 ; safari first option??
|
||||||
|
ld a, $8
|
||||||
|
ld [$cf91], a
|
||||||
|
jr .asm_3d05f ; 0x3cfe6 $77
|
||||||
|
.asm_3cfe8
|
||||||
|
cp $2
|
||||||
|
jp nz, $50ca
|
||||||
|
ld a, [W_ISLINKBATTLE]
|
||||||
|
cp $4
|
||||||
|
jr nz, .asm_3cffd ; 0x3cff2 $9
|
||||||
|
ld hl, ItemsCantBeUsedHere
|
||||||
|
call PrintText
|
||||||
|
jp $4eb3
|
||||||
|
.asm_3cffd ; bag?
|
||||||
|
call $36f4 ; copy bg?
|
||||||
|
ld a, [W_BATTLETYPE]
|
||||||
|
cp $2
|
||||||
|
jr nz, .asm_3d00e ; 0x3d005 $7
|
||||||
|
ld a, $15
|
||||||
|
ld [$cf91], a
|
||||||
|
jr .asm_3d05f ; 0x3d00c $51
|
||||||
|
.asm_3d00e
|
||||||
|
call $3725
|
||||||
|
ld a, [W_BATTLETYPE]
|
||||||
|
and a
|
||||||
|
jr nz, .asm_3d01a ; 0x3d015 $3
|
||||||
|
call $4d5a
|
||||||
|
.asm_3d01a
|
||||||
|
ld a, [W_BATTLETYPE]
|
||||||
|
dec a
|
||||||
|
jr nz, .asm_3d031 ; 0x3d01e $11
|
||||||
|
ld hl, .list
|
||||||
|
ld a, l
|
||||||
|
ld [$cf8b], a
|
||||||
|
ld a, h
|
||||||
|
ld [$cf8c], a
|
||||||
|
jr .asm_3d03c ; 0x3d02b $f
|
||||||
|
.list
|
||||||
|
db $01, $04, $32, $ff
|
||||||
|
.asm_3d031
|
||||||
|
ld hl, W_NUMBAGITEMS
|
||||||
|
ld a, l
|
||||||
|
ld [$cf8b], a
|
||||||
|
ld a, h
|
||||||
|
ld [$cf8c], a
|
||||||
|
.asm_3d03c
|
||||||
|
xor a
|
||||||
|
ld [$cf93], a
|
||||||
|
ld a, $3
|
||||||
|
ld [$cf94], a
|
||||||
|
ld a, [$cc2c]
|
||||||
|
ld [W_CURMENUITEMID], a
|
||||||
|
call DisplayListMenuID
|
||||||
|
ld a, [$cc26]
|
||||||
|
ld [$cc2c], a
|
||||||
|
ld a, $0
|
||||||
|
ld [$cc37], a
|
||||||
|
ld [$cc35], a
|
||||||
|
jp c, $4eb3
|
||||||
|
.asm_3d05f
|
||||||
|
ld a, [$cf91]
|
||||||
|
ld [$d11e], a
|
||||||
|
call GetItemName
|
||||||
|
call $3826 ; copy name
|
||||||
|
xor a
|
||||||
|
ld [$d152], a
|
||||||
|
call UseItem
|
||||||
|
call $6e5b
|
||||||
|
call CleanLCD_OAM
|
||||||
|
xor a
|
||||||
|
ld [W_CURMENUITEMID], a
|
||||||
|
ld a, [W_BATTLETYPE]
|
||||||
|
cp $2 ; safari
|
||||||
|
jr z, .asm_3d09c ; 0x3d081 $19
|
||||||
|
ld a, [$cd6a]
|
||||||
|
and a
|
||||||
|
jp z, $500e
|
||||||
|
ld a, [W_PLAYERBATTSTATUS1]
|
||||||
|
bit 5, a
|
||||||
|
jr z, .asm_3d09c ; 0x3d08f $b
|
||||||
|
ld hl, $d06a
|
||||||
|
dec [hl]
|
||||||
|
jr nz, .asm_3d09c ; 0x3d095 $5
|
||||||
|
ld hl, W_PLAYERBATTSTATUS1
|
||||||
|
res 5, [hl]
|
||||||
|
.asm_3d09c
|
||||||
|
ld a, [$d11c]
|
||||||
|
and a
|
||||||
|
jr nz, .asm_3d0b7 ; 0x3d0a0 $15
|
||||||
|
ld a, [W_BATTLETYPE]
|
||||||
|
cp $2
|
||||||
|
jr z, .asm_3d0b2 ; 0x3d0a7 $9
|
||||||
|
call $3725
|
||||||
|
call $4d5a ; redraw name and hp bar?
|
||||||
|
call Delay3
|
||||||
|
.asm_3d0b2
|
||||||
|
call GBPalNormal
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
.asm_3d0b7
|
||||||
|
call GBPalNormal
|
||||||
|
xor a
|
||||||
|
ld [$d11c], a
|
||||||
|
ld a, $2
|
||||||
|
ld [$cf0b], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 0x3d0c5
|
||||||
|
|
||||||
|
ItemsCantBeUsedHere: ; 0x3d0c5
|
||||||
|
TX_FAR ItemsCantBeUsedHere_ ; 0x89831
|
||||||
db $50
|
db $50
|
||||||
; 0x3d0c5 + 5 bytes
|
; 0x3d0c5 + 5 bytes = 0x3d0ca
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$3d0ca,$3d1f5 - $3d0ca
|
INCBIN "baserom.gbc",$3d0ca,$3d1f5 - $3d0ca
|
||||||
|
|
||||||
|
@ -80330,7 +80592,7 @@ _UnnamedText_3cba1: ; 0x8981f
|
||||||
db $0, "Got away safely!", $58
|
db $0, "Got away safely!", $58
|
||||||
; 0x8981f + 18 bytes
|
; 0x8981f + 18 bytes
|
||||||
|
|
||||||
_UnnamedText_3d0c5: ; 0x89831
|
ItemsCantBeUsedHere_: ; 0x89831
|
||||||
db $0, "Items can't be", $4f
|
db $0, "Items can't be", $4f
|
||||||
db "used here.", $58
|
db "used here.", $58
|
||||||
; 0x89831 + 26 bytes
|
; 0x89831 + 26 bytes
|
||||||
|
|
Loading…
Reference in a new issue