mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40: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
|
||||
; 0x3cba1 + 5 bytes
|
||||
|
||||
INCBIN "baserom.gbc",$3cba6,$3d0c5 - $3cba6
|
||||
INCBIN "baserom.gbc",$3cba6,$3ceb3 - $3cba6
|
||||
|
||||
UnnamedText_3d0c5: ; 0x3d0c5
|
||||
TX_FAR _UnnamedText_3d0c5
|
||||
InitBattleMenu: ; 0x3ceb3 F:4EB3
|
||||
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
|
||||
; 0x3d0c5 + 5 bytes
|
||||
; 0x3d0c5 + 5 bytes = 0x3d0ca
|
||||
|
||||
INCBIN "baserom.gbc",$3d0ca,$3d1f5 - $3d0ca
|
||||
|
||||
|
@ -80330,7 +80592,7 @@ _UnnamedText_3cba1: ; 0x8981f
|
|||
db $0, "Got away safely!", $58
|
||||
; 0x8981f + 18 bytes
|
||||
|
||||
_UnnamedText_3d0c5: ; 0x89831
|
||||
ItemsCantBeUsedHere_: ; 0x89831
|
||||
db $0, "Items can't be", $4f
|
||||
db "used here.", $58
|
||||
; 0x89831 + 26 bytes
|
||||
|
|
Loading…
Reference in a new issue