pokecrystal/engine/pack.asm

1729 lines
28 KiB
NASM
Raw Normal View History

2015-02-11 21:27:15 +00:00
Pack: ; 10000
ld hl, Options
2015-11-23 21:04:53 +00:00
set NO_TEXT_SCROLL, [hl]
2015-02-11 21:27:15 +00:00
call Function1068a
.loop
call JoyTextDelay
2015-10-24 23:49:19 +00:00
ld a, [wJumptableIndex]
2015-02-11 21:27:15 +00:00
bit 7, a
jr nz, .done
call Function10026
call DelayFrame
jr .loop
.done
ld a, [wcf65]
2015-11-23 21:04:53 +00:00
ld [wLastPocket], a
2015-02-11 21:27:15 +00:00
ld hl, Options
2015-11-23 21:04:53 +00:00
res NO_TEXT_SCROLL, [hl]
2015-02-11 21:27:15 +00:00
ret
; 10026
Function10026: ; 10026
2015-10-24 23:49:19 +00:00
ld a, [wJumptableIndex]
2015-02-11 21:27:15 +00:00
ld hl, Jumptable_10030
call Function1086b
jp [hl]
; 10030
Jumptable_10030: ; 10030 (4:4030)
dw Function10046
dw Function10056
dw Function10067
dw Function10186
dw Function10198
dw Function10094
dw Function100a6
dw Function100d3
dw Function100e8
dw Function10874
dw Function1087e
Function10046: ; 10046 (4:4046)
xor a
ld [hBGMapMode], a
2015-02-11 21:27:15 +00:00
call Function10955
ld a, [wcf64]
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-02-11 21:27:15 +00:00
call Function10a40
ret
Function10056: ; 10056 (4:4056)
xor a
ld [wcf65], a
2015-10-24 14:34:19 +00:00
call ClearPocketList
call DrawPocketName
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
call Function10866
ret
Function10067: ; 10067 (4:4067)
ld hl, MenuDataHeader_0x10a4f
call CopyMenuDataHeader
2015-10-24 23:49:19 +00:00
ld a, [wItemsPocketCursor]
2015-11-01 17:44:30 +00:00
ld [wMenuCursorBuffer], a
2015-11-23 21:04:53 +00:00
ld a, [wItemsPocketScrollPosition]
ld [wMenuScrollPosition], a
2015-11-11 19:12:46 +00:00
call HandleScrollingMenu
2015-11-23 21:04:53 +00:00
ld a, [wMenuScrollPosition]
ld [wItemsPocketScrollPosition], a
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-10-24 23:49:19 +00:00
ld [wItemsPocketCursor], a
2015-02-11 21:27:15 +00:00
ld b, $7
ld c, $3
call Function108d4
ret c
call Function101c5
ret
Function10094: ; 10094 (4:4094)
ld a, $2
ld [wcf65], a
2015-10-24 14:34:19 +00:00
call ClearPocketList
call DrawPocketName
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
call Function10866
ret
Function100a6: ; 100a6 (4:40a6)
ld hl, MenuDataHeader_0x10a7f
call CopyMenuDataHeader
2015-10-24 23:49:19 +00:00
ld a, [wKeyItemsPocketCursor]
2015-11-01 17:44:30 +00:00
ld [wMenuCursorBuffer], a
2015-11-23 21:04:53 +00:00
ld a, [wKeyItemsPocketScrollPosition]
ld [wMenuScrollPosition], a
2015-11-11 19:12:46 +00:00
call HandleScrollingMenu
2015-11-23 21:04:53 +00:00
ld a, [wMenuScrollPosition]
ld [wKeyItemsPocketScrollPosition], a
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-10-24 23:49:19 +00:00
ld [wKeyItemsPocketCursor], a
2015-02-11 21:27:15 +00:00
ld b, $3
ld c, $7
call Function108d4
ret c
call Function101c5
ret
Function100d3: ; 100d3 (4:40d3)
ld a, $3
ld [wcf65], a
2015-10-24 14:34:19 +00:00
call ClearPocketList
call DrawPocketName
2015-02-11 21:27:15 +00:00
xor a
ld [hBGMapMode], a
2015-10-24 14:34:19 +00:00
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
call Function10866
ret
Function100e8: ; 100e8 (4:40e8)
callba Function2c76f
ld b, $5
ld c, $1
call Function108d4
ret c
callba _CheckTossableItem
2015-10-24 14:34:19 +00:00
ld a, [wItemAttributeParamBuffer]
2015-02-11 21:27:15 +00:00
and a
jr nz, .asm_1010a
ld hl, MenuDataHeader_0x1013b
ld de, Jumptable_10153
jr .asm_10110
.asm_1010a
ld hl, MenuDataHeader_0x10124
ld de, Jumptable_10137
.asm_10110
push de
call LoadMenuDataHeader
call InterpretMenu2
call ExitMenu
2015-02-11 21:27:15 +00:00
pop hl
ret c
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-02-11 21:27:15 +00:00
dec a
call Function1086b
jp [hl]
; 10124 (4:4124)
MenuDataHeader_0x10124: ; 0x10124
db $40 ; flags
db 07, 13 ; start coords
db 11, 19 ; end coords
dw MenuData2_0x1012c
db 1 ; default option
; 0x1012c
MenuData2_0x1012c: ; 0x1012c
db $c0 ; flags
db 2 ; items
db "USE@"
db "QUIT@"
; 0x10137
Jumptable_10137: ; 10137
dw Function10159
2015-11-23 21:04:53 +00:00
dw QuitItemSubmenu
2015-02-11 21:27:15 +00:00
; 1013b
MenuDataHeader_0x1013b: ; 0x1013b
db $40 ; flags
db 05, 13 ; start coords
db 11, 19 ; end coords
dw MenuData2_0x10143
db 1 ; default option
; 0x10143
MenuData2_0x10143: ; 0x10143
db $c0 ; flags
db 3 ; items
db "USE@"
db "GIVE@"
db "QUIT@"
; 0x10153
Jumptable_10153: ; 10153
dw Function10159
2015-11-23 21:04:53 +00:00
dw GiveItem
dw QuitItemSubmenu
2015-02-11 21:27:15 +00:00
; 10159
Function10159: ; 10159
callba Function2c7bf
ret c
callba Function2c7fb
jr c, .asm_10179
ld hl, Options
ld a, [hl]
push af
res 4, [hl]
callba Function2c867
pop af
ld [Options], a
.asm_10179
xor a
ld [hBGMapMode], a
2015-02-11 21:27:15 +00:00
call Function10955
2015-10-24 14:34:19 +00:00
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
call Function10a40
ret
Function10186: ; 10186 (4:4186)
ld a, $1
ld [wcf65], a
2015-10-24 14:34:19 +00:00
call ClearPocketList
call DrawPocketName
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
call Function10866
ret
Function10198: ; 10198 (4:4198)
ld hl, MenuDataHeader_0x10aaf
call CopyMenuDataHeader
2015-10-24 23:49:19 +00:00
ld a, [wBallsPocketCursor]
2015-11-01 17:44:30 +00:00
ld [wMenuCursorBuffer], a
2015-11-23 21:04:53 +00:00
ld a, [wBallsPocketScrollPosition]
ld [wMenuScrollPosition], a
2015-11-11 19:12:46 +00:00
call HandleScrollingMenu
2015-11-23 21:04:53 +00:00
ld a, [wMenuScrollPosition]
ld [wBallsPocketScrollPosition], a
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-10-24 23:49:19 +00:00
ld [wBallsPocketCursor], a
2015-02-11 21:27:15 +00:00
ld b, $1
ld c, $5
call Function108d4
ret c
call Function101c5
ret
Function101c5: ; 101c5 (4:41c5)
callba _CheckTossableItem
2015-10-24 14:34:19 +00:00
ld a, [wItemAttributeParamBuffer]
2015-02-11 21:27:15 +00:00
and a
2015-10-24 14:34:19 +00:00
jr nz, .tossable
2015-02-11 21:27:15 +00:00
callba CheckSelectableItem
2015-10-24 14:34:19 +00:00
ld a, [wItemAttributeParamBuffer]
2015-02-11 21:27:15 +00:00
and a
2015-10-24 14:34:19 +00:00
jr nz, .selectable
2015-02-11 21:27:15 +00:00
callba CheckItemMenu
2015-10-24 14:34:19 +00:00
ld a, [wItemAttributeParamBuffer]
2015-02-11 21:27:15 +00:00
and a
2015-10-24 14:34:19 +00:00
jr nz, .usable
jr .unusable
.selectable
2015-02-11 21:27:15 +00:00
callba CheckItemMenu
2015-10-24 14:34:19 +00:00
ld a, [wItemAttributeParamBuffer]
2015-02-11 21:27:15 +00:00
and a
2015-10-24 14:34:19 +00:00
jr nz, .selectable_usable
jr .selectable_unusable
.tossable
2015-02-11 21:27:15 +00:00
callba CheckSelectableItem
2015-10-24 14:34:19 +00:00
ld a, [wItemAttributeParamBuffer]
2015-02-11 21:27:15 +00:00
and a
2015-10-24 14:34:19 +00:00
jr nz, .tossable_selectable
jr .tossable_unselectable
.usable
2015-11-23 21:04:53 +00:00
ld hl, MenuDataHeader_UsableKeyItem
2015-02-11 21:27:15 +00:00
ld de, Jumptable_1026a
2015-10-24 14:34:19 +00:00
jr .build_menu
.selectable_usable
2015-11-23 21:04:53 +00:00
ld hl, MenuDataHeader_UsableItem
2015-02-11 21:27:15 +00:00
ld de, Jumptable_10291
2015-10-24 14:34:19 +00:00
jr .build_menu
.tossable_selectable
2015-11-23 21:04:53 +00:00
ld hl, MenuDataHeader_UnusableItem
2015-02-11 21:27:15 +00:00
ld de, Jumptable_102ac
2015-10-24 14:34:19 +00:00
jr .build_menu
.tossable_unselectable
2015-11-23 21:04:53 +00:00
ld hl, MenuDataHeader_UnusableKeyItem
2015-02-11 21:27:15 +00:00
ld de, Jumptable_102c7
2015-10-24 14:34:19 +00:00
jr .build_menu
.unusable
2015-11-23 21:04:53 +00:00
ld hl, MenuDataHeader_HoldableKeyItem
2015-02-11 21:27:15 +00:00
ld de, Jumptable_102ea
2015-10-24 14:34:19 +00:00
jr .build_menu
.selectable_unusable
2015-11-23 21:04:53 +00:00
ld hl, MenuDataHeader_HoldableItem
2015-02-11 21:27:15 +00:00
ld de, Jumptable_1030b
2015-10-24 14:34:19 +00:00
.build_menu
2015-02-11 21:27:15 +00:00
push de
call LoadMenuDataHeader
call InterpretMenu2
call ExitMenu
2015-02-11 21:27:15 +00:00
pop hl
ret c
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-02-11 21:27:15 +00:00
dec a
call Function1086b
jp [hl]
; 10249 (4:4249)
2015-11-23 21:04:53 +00:00
MenuDataHeader_UsableKeyItem: ; 0x10249
2015-02-11 21:27:15 +00:00
db $40 ; flags
db 01, 13 ; start coords
db 11, 19 ; end coords
2015-11-23 21:04:53 +00:00
dw .MenuData2
2015-02-11 21:27:15 +00:00
db 1 ; default option
; 0x10251
2015-11-23 21:04:53 +00:00
.MenuData2: ; 0x10251
2015-02-11 21:27:15 +00:00
db $c0 ; flags
db 5 ; items
db "USE@"
db "GIVE@"
db "TOSS@"
db "SEL@"
db "QUIT@"
; 0x1026a
Jumptable_1026a: ; 1026a
2015-11-23 21:04:53 +00:00
dw UseItem
dw GiveItem
dw TossMenu
dw RegisterItem
dw QuitItemSubmenu
2015-02-11 21:27:15 +00:00
; 10274
2015-11-23 21:04:53 +00:00
MenuDataHeader_UsableItem: ; 0x10274
2015-02-11 21:27:15 +00:00
db $40 ; flags
db 03, 13 ; start coords
db 11, 19 ; end coords
2015-11-23 21:04:53 +00:00
dw .MenuData2
2015-02-11 21:27:15 +00:00
db 1 ; default option
; 0x1027c
2015-11-23 21:04:53 +00:00
.MenuData2: ; 0x1027c
2015-02-11 21:27:15 +00:00
db $c0 ; flags
db 4 ; items
db "USE@"
db "GIVE@"
db "TOSS@"
db "QUIT@"
; 0x10291
Jumptable_10291: ; 10291
2015-11-23 21:04:53 +00:00
dw UseItem
dw GiveItem
dw TossMenu
dw QuitItemSubmenu
2015-02-11 21:27:15 +00:00
; 10299
2015-11-23 21:04:53 +00:00
MenuDataHeader_UnusableItem: ; 0x10299
2015-10-24 14:34:19 +00:00
db %01000000 ; flags
2015-02-11 21:27:15 +00:00
db 07, 13 ; start coords
db 11, 19 ; end coords
2015-11-23 21:04:53 +00:00
dw .MenuData2
2015-02-11 21:27:15 +00:00
db 1 ; default option
; 0x102a1
2015-11-23 21:04:53 +00:00
.MenuData2: ; 0x102a1
2015-02-11 21:27:15 +00:00
db $c0 ; flags
db 2 ; items
db "USE@"
db "QUIT@"
; 0x102ac
Jumptable_102ac: ; 102ac
2015-11-23 21:04:53 +00:00
dw UseItem
dw QuitItemSubmenu
2015-02-11 21:27:15 +00:00
; 102b0
2015-11-23 21:04:53 +00:00
MenuDataHeader_UnusableKeyItem: ; 0x102b0
2015-10-24 14:34:19 +00:00
db %01000000 ; flags
2015-02-11 21:27:15 +00:00
db 05, 13 ; start coords
db 11, 19 ; end coords
2015-11-23 21:04:53 +00:00
dw .MenuData2
2015-02-11 21:27:15 +00:00
db 1 ; default option
; 0x102b8
2015-11-23 21:04:53 +00:00
.MenuData2: ; 0x102b8
2015-02-11 21:27:15 +00:00
db $c0 ; flags
db 3 ; items
db "USE@"
db "SEL@"
db "QUIT@"
; 0x102c7
Jumptable_102c7: ; 102c7
2015-11-23 21:04:53 +00:00
dw UseItem
dw RegisterItem
dw QuitItemSubmenu
2015-02-11 21:27:15 +00:00
; 102cd
2015-11-23 21:04:53 +00:00
MenuDataHeader_HoldableKeyItem: ; 0x102cd
2015-02-11 21:27:15 +00:00
db $40 ; flags
db 03, 13 ; start coords
db 11, 19 ; end coords
2015-11-23 21:04:53 +00:00
dw .MenuData2
2015-02-11 21:27:15 +00:00
db 1 ; default option
; 0x102d5
2015-11-23 21:04:53 +00:00
.MenuData2: ; 0x102d5
2015-02-11 21:27:15 +00:00
db $c0 ; flags
db 4 ; items
db "GIVE@"
db "TOSS@"
db "SEL@"
db "QUIT@"
; 0x102ea
Jumptable_102ea: ; 102ea
2015-11-23 21:04:53 +00:00
dw GiveItem
dw TossMenu
dw RegisterItem
dw QuitItemSubmenu
2015-02-11 21:27:15 +00:00
; 102f2
2015-11-23 21:04:53 +00:00
MenuDataHeader_HoldableItem: ; 0x102f2
2015-02-11 21:27:15 +00:00
db $40 ; flags
db 05, 13 ; start coords
db 11, 19 ; end coords
2015-11-23 21:04:53 +00:00
dw .MenuData2
2015-02-11 21:27:15 +00:00
db 1 ; default option
; 0x102fa
2015-11-23 21:04:53 +00:00
.MenuData2: ; 0x102fa
2015-02-11 21:27:15 +00:00
db $c0 ; flags
db 3 ; items
db "GIVE@"
db "TOSS@"
db "QUIT@"
; 0x1030b
Jumptable_1030b: ; 1030b
2015-11-23 21:04:53 +00:00
dw GiveItem
dw TossMenu
dw QuitItemSubmenu
2015-02-11 21:27:15 +00:00
; 10311
2015-11-23 21:04:53 +00:00
UseItem: ; 10311
2015-02-11 21:27:15 +00:00
callba CheckItemMenu
2015-10-24 14:34:19 +00:00
ld a, [wItemAttributeParamBuffer]
ld hl, .jumptable
2015-02-11 21:27:15 +00:00
rst JumpTable
ret
; 1031f
2015-10-24 14:34:19 +00:00
.jumptable: ; 1031f (4:431f)
dw .Oak
dw .Oak
dw .Oak
dw .Oak
dw .Current
dw .Party
dw .Field
2015-02-11 21:27:15 +00:00
; 1035c
2015-10-24 14:34:19 +00:00
.Oak: ; 1032d (4:432d)
2015-11-23 21:04:53 +00:00
ld hl, Text_ThisIsntTheTime
2015-02-11 21:27:15 +00:00
call Function10889
ret
2015-10-24 14:34:19 +00:00
.Current: ; 10334 (4:4334)
2015-02-11 21:27:15 +00:00
call DoItemEffect
ret
2015-10-24 14:34:19 +00:00
.Party: ; 10338 (4:4338)
2015-02-11 21:27:15 +00:00
ld a, [PartyCount]
and a
2015-10-24 14:34:19 +00:00
jr z, .NoPokemon
2015-02-11 21:27:15 +00:00
call DoItemEffect
xor a
ld [hBGMapMode], a
2015-02-11 21:27:15 +00:00
call Function10955
2015-10-24 14:34:19 +00:00
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
call Function10a40
ret
2015-10-24 14:34:19 +00:00
.NoPokemon
ld hl, TextJump_YouDontHaveAPkmn
2015-02-11 21:27:15 +00:00
call Function10889
ret
2015-10-24 14:34:19 +00:00
.Field: ; 10355 (4:4355)
2015-02-11 21:27:15 +00:00
call DoItemEffect
ld a, [wd0ec]
and a
2015-10-24 14:34:19 +00:00
jr z, .Oak
2015-02-11 21:27:15 +00:00
ld a, $a
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-02-11 21:27:15 +00:00
ret
; 10364 (4:4364)
2015-11-23 21:04:53 +00:00
TossMenu: ; 10364
ld hl, Text_ThrowAwayHowMany
2015-02-11 21:27:15 +00:00
call Function10889
callba Function24fbf
push af
call ExitMenu
2015-02-11 21:27:15 +00:00
pop af
2015-11-23 21:04:53 +00:00
jr c, .finish
call Pack_GetItemName
ld hl, Text_ConfirmThrowAway
call MenuTextBox
2015-02-11 21:27:15 +00:00
call YesNoBox
push af
call ExitMenu
2015-02-11 21:27:15 +00:00
pop af
2015-11-23 21:04:53 +00:00
jr c, .finish
2015-02-11 21:27:15 +00:00
ld hl, NumItems
2015-11-23 21:04:53 +00:00
ld a, [ItemCountBuffer]
2015-02-11 21:27:15 +00:00
call TossItem
2015-11-23 21:04:53 +00:00
call Pack_GetItemName
ld hl, Text_ThrewAway
2015-02-11 21:27:15 +00:00
call Function10889
2015-11-23 21:04:53 +00:00
.finish
2015-02-11 21:27:15 +00:00
ret
; 1039d
Function1039d: ; 1039d
ld a, [wcf65]
and a
jr z, .asm_103b2
dec a
jr z, .asm_103aa
dec a
jr z, .asm_103ba
ret
.asm_103aa
xor a
2015-10-24 23:49:19 +00:00
ld [wBallsPocketCursor], a
2015-11-23 21:04:53 +00:00
ld [wBallsPocketScrollPosition], a
2015-02-11 21:27:15 +00:00
ret
.asm_103b2
xor a
2015-10-24 23:49:19 +00:00
ld [wItemsPocketCursor], a
2015-11-23 21:04:53 +00:00
ld [wItemsPocketScrollPosition], a
2015-02-11 21:27:15 +00:00
ret
.asm_103ba
xor a
2015-10-24 23:49:19 +00:00
ld [wKeyItemsPocketCursor], a
2015-11-23 21:04:53 +00:00
ld [wKeyItemsPocketScrollPosition], a
2015-02-11 21:27:15 +00:00
ret
; 103c2
2015-11-23 21:04:53 +00:00
RegisterItem: ; 103c2
2015-02-11 21:27:15 +00:00
callba CheckSelectableItem
2015-10-24 14:34:19 +00:00
ld a, [wItemAttributeParamBuffer]
2015-02-11 21:27:15 +00:00
and a
jr nz, .asm_103f6
ld a, [wcf65]
rrca
rrca
and $c0
ld b, a
2015-11-23 21:04:53 +00:00
ld a, [ItemCountBuffer]
2015-02-11 21:27:15 +00:00
inc a
and $3f
or b
ld [WhichRegisteredItem], a
ld a, [CurItem]
ld [RegisteredItem], a
2015-11-23 21:04:53 +00:00
call Pack_GetItemName
2015-02-11 21:27:15 +00:00
ld de, SFX_FULL_HEAL
call WaitPlaySFX
2015-11-23 21:04:53 +00:00
ld hl, Text_RegisteredItem
2015-02-11 21:27:15 +00:00
call Function10889
ret
.asm_103f6
2015-11-23 21:04:53 +00:00
ld hl, Text_CantRegister
2015-02-11 21:27:15 +00:00
call Function10889
ret
; 103fd
2015-11-23 21:04:53 +00:00
GiveItem: ; 103fd
2015-02-11 21:27:15 +00:00
ld a, [PartyCount]
and a
jp z, Function10486
ld a, [Options]
push af
res 4, a
ld [Options], a
ld a, $8
ld [PartyMenuActionText], a
2015-11-12 04:38:57 +00:00
call ClearBGPalettes
2015-11-19 04:16:25 +00:00
callba LoadPartyMenuGFX
callba InitPartyMenuWithCancel
callba InitPartyMenuGFX
2015-02-11 21:27:15 +00:00
.asm_10427
callba WritePartyMenuTilemap
callba PrintPartyMenuText
call WaitBGMap
2015-09-09 23:27:07 +00:00
call SetPalettes
2015-02-11 21:27:15 +00:00
call DelayFrame
callba PartyMenuSelect
jr c, .asm_10475
2015-02-11 21:27:15 +00:00
ld a, [CurPartySpecies]
cp EGG
jr nz, .asm_10453
ld hl, TextJump_AnEGGCantHoldAnItem
2015-02-11 21:27:15 +00:00
call PrintText
jr .asm_10427
2015-02-11 21:27:15 +00:00
.asm_10453
2015-10-24 23:49:19 +00:00
ld a, [wJumptableIndex]
2015-02-11 21:27:15 +00:00
push af
ld a, [wcf64]
push af
call GetCurNick
ld hl, StringBuffer1
ld de, wd050
ld bc, PKMN_NAME_LENGTH
call CopyBytes
call Function12bd9
pop af
ld [wcf64], a
pop af
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-02-11 21:27:15 +00:00
.asm_10475
pop af
ld [Options], a
xor a
ld [hBGMapMode], a
2015-02-11 21:27:15 +00:00
call Function10955
2015-10-24 14:34:19 +00:00
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
call Function10a40
ret
Function10486: ; 10486 (4:4486)
ld hl, TextJump_YouDontHaveAPkmn
2015-02-11 21:27:15 +00:00
call Function10889
ret
; 1048d (4:448d)
TextJump_AnEGGCantHoldAnItem: ; 0x1048d
2015-02-11 21:27:15 +00:00
; An EGG can't hold an item.
text_jump Text_AnEGGCantHoldAnItem
2015-02-11 21:27:15 +00:00
db "@"
; 0x10492
2015-11-23 21:04:53 +00:00
QuitItemSubmenu: ; 10492
2015-02-11 21:27:15 +00:00
ret
; 10493
BattlePack: ; 10493
ld hl, Options
set 4, [hl]
call Function1068a
2015-11-23 21:04:53 +00:00
.loop
call JoyTextDelay
2015-10-24 23:49:19 +00:00
ld a, [wJumptableIndex]
2015-02-11 21:27:15 +00:00
bit 7, a
2015-11-23 21:04:53 +00:00
jr nz, .end
2015-02-11 21:27:15 +00:00
call Function104b9
call DelayFrame
2015-11-23 21:04:53 +00:00
jr .loop
2015-02-11 21:27:15 +00:00
2015-11-23 21:04:53 +00:00
.end
2015-02-11 21:27:15 +00:00
ld a, [wcf65]
2015-11-23 21:04:53 +00:00
ld [wLastPocket], a
2015-02-11 21:27:15 +00:00
ld hl, Options
res 4, [hl]
ret
; 104b9
Function104b9: ; 104b9
2015-10-24 23:49:19 +00:00
ld a, [wJumptableIndex]
2015-02-11 21:27:15 +00:00
ld hl, Jumptable_104c3
call Function1086b
jp [hl]
; 104c3
Jumptable_104c3: ; 104c3 (4:44c3)
dw Function104d9
dw Function104e9
dw Function104fa
dw Function10594
dw Function105a6
dw Function10527
dw Function10539
dw Function10566
dw Function10581
dw Function10874
dw Function1087e
Function104d9: ; 104d9 (4:44d9)
xor a
ld [hBGMapMode], a
2015-02-11 21:27:15 +00:00
call Function10955
ld a, [wcf64]
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-02-11 21:27:15 +00:00
call Function10a40
ret
Function104e9: ; 104e9 (4:44e9)
xor a
ld [wcf65], a
2015-10-24 14:34:19 +00:00
call ClearPocketList
call DrawPocketName
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
call Function10866
ret
Function104fa: ; 104fa (4:44fa)
ld hl, MenuDataHeader_0x10a4f
call CopyMenuDataHeader
2015-10-24 23:49:19 +00:00
ld a, [wItemsPocketCursor]
2015-11-01 17:44:30 +00:00
ld [wMenuCursorBuffer], a
2015-11-23 21:04:53 +00:00
ld a, [wItemsPocketScrollPosition]
ld [wMenuScrollPosition], a
2015-11-11 19:12:46 +00:00
call HandleScrollingMenu
2015-11-23 21:04:53 +00:00
ld a, [wMenuScrollPosition]
ld [wItemsPocketScrollPosition], a
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-10-24 23:49:19 +00:00
ld [wItemsPocketCursor], a
2015-02-11 21:27:15 +00:00
ld b, $7
ld c, $3
call Function108d4
ret c
call Function105d3
ret
Function10527: ; 10527 (4:4527)
ld a, $2
ld [wcf65], a
2015-10-24 14:34:19 +00:00
call ClearPocketList
call DrawPocketName
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
call Function10866
ret
Function10539: ; 10539 (4:4539)
ld hl, MenuDataHeader_0x10a7f
call CopyMenuDataHeader
2015-10-24 23:49:19 +00:00
ld a, [wKeyItemsPocketCursor]
2015-11-01 17:44:30 +00:00
ld [wMenuCursorBuffer], a
2015-11-23 21:04:53 +00:00
ld a, [wKeyItemsPocketScrollPosition]
ld [wMenuScrollPosition], a
2015-11-11 19:12:46 +00:00
call HandleScrollingMenu
2015-11-23 21:04:53 +00:00
ld a, [wMenuScrollPosition]
ld [wKeyItemsPocketScrollPosition], a
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-10-24 23:49:19 +00:00
ld [wKeyItemsPocketCursor], a
2015-02-11 21:27:15 +00:00
ld b, $3
ld c, $7
call Function108d4
ret c
call Function105d3
ret
Function10566: ; 10566 (4:4566)
ld a, $3
ld [wcf65], a
2015-10-24 14:34:19 +00:00
call ClearPocketList
call DrawPocketName
2015-02-11 21:27:15 +00:00
xor a
ld [hBGMapMode], a
2015-10-24 14:34:19 +00:00
call WaitBGMap_DrawPackGFX
2015-11-23 21:04:53 +00:00
ld hl, Text_PackEmptyString
2015-02-11 21:27:15 +00:00
call Function10889
call Function10866
ret
Function10581: ; 10581 (4:4581)
callba Function2c76f
ld b, $5
ld c, $1
call Function108d4
ret c
xor a
call Function105dc
ret
Function10594: ; 10594 (4:4594)
ld a, $1
ld [wcf65], a
2015-10-24 14:34:19 +00:00
call ClearPocketList
call DrawPocketName
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
call Function10866
ret
Function105a6: ; 105a6 (4:45a6)
ld hl, MenuDataHeader_0x10aaf
call CopyMenuDataHeader
2015-10-24 23:49:19 +00:00
ld a, [wBallsPocketCursor]
2015-11-01 17:44:30 +00:00
ld [wMenuCursorBuffer], a
2015-11-23 21:04:53 +00:00
ld a, [wBallsPocketScrollPosition]
ld [wMenuScrollPosition], a
2015-11-11 19:12:46 +00:00
call HandleScrollingMenu
2015-11-23 21:04:53 +00:00
ld a, [wMenuScrollPosition]
ld [wBallsPocketScrollPosition], a
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-10-24 23:49:19 +00:00
ld [wBallsPocketCursor], a
2015-02-11 21:27:15 +00:00
ld b, $1
ld c, $5
call Function108d4
ret c
call Function105d3
ret
Function105d3: ; 105d3 (4:45d3)
callba CheckItemContext
2015-10-24 14:34:19 +00:00
ld a, [wItemAttributeParamBuffer]
2015-02-11 21:27:15 +00:00
Function105dc: ; 105dc (4:45dc)
and a
2015-10-24 14:34:19 +00:00
jr z, .NoUse
ld hl, .UsableMenuDataHeader
ld de, .UsableJumptable
jr .proceed
.NoUse
ld hl, .UnusableMenuDataHeader
ld de, .UnusableJumptable
.proceed
2015-02-11 21:27:15 +00:00
push de
call LoadMenuDataHeader
call InterpretMenu2
call ExitMenu
2015-02-11 21:27:15 +00:00
pop hl
ret c
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-02-11 21:27:15 +00:00
dec a
call Function1086b
jp [hl]
; 10601 (4:4601)
2015-10-24 14:34:19 +00:00
.UsableMenuDataHeader: ; 0x10601
2015-02-11 21:27:15 +00:00
db $40 ; flags
db 07, 13 ; start coords
db 11, 19 ; end coords
2015-10-24 14:34:19 +00:00
dw .UsableMenuData2
2015-02-11 21:27:15 +00:00
db 1 ; default option
; 0x10609
2015-10-24 14:34:19 +00:00
.UsableMenuData2: ; 0x10609
2015-02-11 21:27:15 +00:00
db $c0 ; flags
db 2 ; items
db "USE@"
db "QUIT@"
; 0x10614
2015-10-24 14:34:19 +00:00
.UsableJumptable: ; 10614
dw .Use
dw .Quit
2015-02-11 21:27:15 +00:00
; 10618
2015-10-24 14:34:19 +00:00
.UnusableMenuDataHeader: ; 0x10618
2015-02-11 21:27:15 +00:00
db $40 ; flags
db 09, 13 ; start coords
db 11, 19 ; end coords
2015-10-24 14:34:19 +00:00
dw .UnusableMenuData2
2015-02-11 21:27:15 +00:00
db 1 ; default option
; 0x10620
2015-10-24 14:34:19 +00:00
.UnusableMenuData2: ; 0x10620
2015-02-11 21:27:15 +00:00
db $c0 ; flags
db 1 ; items
db "QUIT@"
; 0x10627
2015-10-24 14:34:19 +00:00
.UnusableJumptable: ; 10627
dw .Quit
2015-02-11 21:27:15 +00:00
; 10629
2015-10-24 14:34:19 +00:00
.Use: ; 10629
2015-02-11 21:27:15 +00:00
callba CheckItemContext
2015-10-24 14:34:19 +00:00
ld a, [wItemAttributeParamBuffer]
ld hl, .ItemFunctionJumptable
2015-02-11 21:27:15 +00:00
rst JumpTable
ret
2015-10-24 14:34:19 +00:00
.ItemFunctionJumptable: ; 10637 (4:4637)
dw .Oak
dw .Oak
dw .Oak
dw .Oak
dw .Unused
dw .BattleField
dw .BattleOnly
2015-02-11 21:27:15 +00:00
2015-10-24 14:34:19 +00:00
.Oak: ; 10645 (4:4645)
2015-11-23 21:04:53 +00:00
ld hl, Text_ThisIsntTheTime
2015-02-11 21:27:15 +00:00
call Function10889
ret
2015-10-24 14:34:19 +00:00
.Unused: ; 1064c (4:464c)
2015-02-11 21:27:15 +00:00
call DoItemEffect
ld a, [wd0ec]
and a
2015-10-24 14:34:19 +00:00
jr nz, .asm_1066c
2015-02-11 21:27:15 +00:00
ret
2015-10-24 14:34:19 +00:00
.BattleField: ; 10656 (4:4656)
2015-02-11 21:27:15 +00:00
call DoItemEffect
ld a, [wd0ec]
and a
2015-10-24 14:34:19 +00:00
jr nz, .asm_1067e
2015-02-11 21:27:15 +00:00
xor a
ld [hBGMapMode], a
2015-02-11 21:27:15 +00:00
call Function10955
2015-10-24 14:34:19 +00:00
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
call Function10a40
ret
2015-10-24 14:34:19 +00:00
.asm_1066c: ; 1066c (4:466c)
2015-11-12 04:38:57 +00:00
call ClearBGPalettes
2015-10-24 14:34:19 +00:00
jr .asm_1067e
2015-02-11 21:27:15 +00:00
2015-10-24 14:34:19 +00:00
.BattleOnly: ; 10671 (4:4671)
2015-02-11 21:27:15 +00:00
call DoItemEffect
ld a, [wd0ec]
and a
2015-10-24 14:34:19 +00:00
jr z, .Oak
2015-02-11 21:27:15 +00:00
cp $2
2015-10-24 14:34:19 +00:00
jr z, .asm_10684
.asm_1067e: ; 1067e (4:467e)
2015-02-11 21:27:15 +00:00
ld a, $a
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-02-11 21:27:15 +00:00
ret
2015-10-24 14:34:19 +00:00
.asm_10684: ; 10684 (4:4684)
2015-02-11 21:27:15 +00:00
xor a
ld [wd0ec], a
ret
; 10689 (4:4689)
2015-10-24 14:34:19 +00:00
.Quit: ; 10689
2015-02-11 21:27:15 +00:00
ret
; 1068a
Function1068a: ; 1068a
xor a
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-11-23 21:04:53 +00:00
ld a, [wLastPocket]
2015-02-11 21:27:15 +00:00
and $3
ld [wcf65], a
inc a
add a
dec a
ld [wcf64], a
xor a
ld [wcf66], a
xor a
ld [wd0e3], a
ret
; 106a5
Function106a5: ; 106a5
xor a
ld [hBGMapMode], a
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-02-11 21:27:15 +00:00
ld [wcf64], a
ld [wcf65], a
ld [wcf66], a
ld [wd0e3], a
call Function10955
call Function10a40
ret
; 106be
Function106be: ; 106be
.asm_106be
call Function106c7
call Function1076f
jr c, .asm_106be
ret
; 106c7
Function106c7: ; 106c7
2015-10-24 23:49:19 +00:00
ld a, [wJumptableIndex]
2015-02-11 21:27:15 +00:00
ld hl, Jumptable_106d1
call Function1086b
jp [hl]
; 106d1
Jumptable_106d1: ; 106d1 (4:46d1)
2015-10-24 14:34:19 +00:00
dw .ItemsPocket
dw .BallsPocket
dw .KeyItemsPocket
dw .TMHMPocket
2015-02-11 21:27:15 +00:00
2015-10-24 14:34:19 +00:00
.ItemsPocket: ; 106d9 (4:46d9)
2015-02-11 21:27:15 +00:00
xor a
2015-10-24 14:34:19 +00:00
call InitPocket
2015-02-11 21:27:15 +00:00
ld hl, MenuDataHeader_0x10a67
call CopyMenuDataHeader
2015-10-24 23:49:19 +00:00
ld a, [wItemsPocketCursor]
2015-11-01 17:44:30 +00:00
ld [wMenuCursorBuffer], a
2015-11-23 21:04:53 +00:00
ld a, [wItemsPocketScrollPosition]
ld [wMenuScrollPosition], a
2015-11-11 19:12:46 +00:00
call HandleScrollingMenu
2015-11-23 21:04:53 +00:00
ld a, [wMenuScrollPosition]
ld [wItemsPocketScrollPosition], a
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-10-24 23:49:19 +00:00
ld [wItemsPocketCursor], a
2015-02-11 21:27:15 +00:00
ret
2015-10-24 14:34:19 +00:00
.KeyItemsPocket: ; 106ff (4:46ff)
2015-11-23 21:04:53 +00:00
ld a, 2
2015-10-24 14:34:19 +00:00
call InitPocket
2015-02-11 21:27:15 +00:00
ld hl, MenuDataHeader_0x10a97
call CopyMenuDataHeader
2015-10-24 23:49:19 +00:00
ld a, [wKeyItemsPocketCursor]
2015-11-01 17:44:30 +00:00
ld [wMenuCursorBuffer], a
2015-11-23 21:04:53 +00:00
ld a, [wKeyItemsPocketScrollPosition]
ld [wMenuScrollPosition], a
2015-11-11 19:12:46 +00:00
call HandleScrollingMenu
2015-11-23 21:04:53 +00:00
ld a, [wMenuScrollPosition]
ld [wKeyItemsPocketScrollPosition], a
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-10-24 23:49:19 +00:00
ld [wKeyItemsPocketCursor], a
2015-02-11 21:27:15 +00:00
ret
2015-10-24 14:34:19 +00:00
.TMHMPocket: ; 10726 (4:4726)
2015-11-23 21:04:53 +00:00
ld a, 3
2015-10-24 14:34:19 +00:00
call InitPocket
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
callba Function2c76f
ld a, [CurItem]
ld [CurItem], a
ret
2015-10-24 14:34:19 +00:00
.BallsPocket: ; 1073b (4:473b)
2015-11-23 21:04:53 +00:00
ld a, 1
2015-10-24 14:34:19 +00:00
call InitPocket
2015-02-11 21:27:15 +00:00
ld hl, MenuDataHeader_0x10ac7
call CopyMenuDataHeader
2015-10-24 23:49:19 +00:00
ld a, [wBallsPocketCursor]
2015-11-01 17:44:30 +00:00
ld [wMenuCursorBuffer], a
2015-11-23 21:04:53 +00:00
ld a, [wBallsPocketScrollPosition]
ld [wMenuScrollPosition], a
2015-11-11 19:12:46 +00:00
call HandleScrollingMenu
2015-11-23 21:04:53 +00:00
ld a, [wMenuScrollPosition]
ld [wBallsPocketScrollPosition], a
2015-11-04 19:02:11 +00:00
ld a, [MenuSelection2]
2015-10-24 23:49:19 +00:00
ld [wBallsPocketCursor], a
2015-02-11 21:27:15 +00:00
ret
2015-10-24 14:34:19 +00:00
InitPocket: ; 10762 (4:4762)
2015-02-11 21:27:15 +00:00
ld [wcf65], a
2015-10-24 14:34:19 +00:00
call ClearPocketList
call DrawPocketName
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
ret
Function1076f: ; 1076f
ld hl, wcf73
ld a, [hl]
and $1
jr nz, .asm_10788
ld a, [hl]
and $2
jr nz, .asm_1078f
ld a, [hl]
and $20
jr nz, .asm_10795
ld a, [hl]
and $10
jr nz, .asm_107a8
scf
ret
.asm_10788
ld a, $1
ld [wcf66], a
and a
ret
.asm_1078f
xor a
ld [wcf66], a
and a
ret
.asm_10795
2015-10-24 23:49:19 +00:00
ld a, [wJumptableIndex]
2015-02-11 21:27:15 +00:00
dec a
and $3
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-02-11 21:27:15 +00:00
push de
ld de, SFX_UNKNOWN_62
call PlaySFX
pop de
scf
ret
.asm_107a8
2015-10-24 23:49:19 +00:00
ld a, [wJumptableIndex]
2015-02-11 21:27:15 +00:00
inc a
and $3
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-02-11 21:27:15 +00:00
push de
ld de, SFX_UNKNOWN_62
call PlaySFX
pop de
scf
ret
; 107bb
2015-11-23 21:04:53 +00:00
TutorialPack: ; 107bb
2015-02-11 21:27:15 +00:00
call Function106a5
ld a, [InputType]
or a
2015-11-23 21:04:53 +00:00
jr z, .loop
callba _DudeAutoInput_RightA
2015-02-11 21:27:15 +00:00
2015-11-23 21:04:53 +00:00
.loop
2015-02-11 21:27:15 +00:00
call Function107d7
call Function1076f
2015-11-23 21:04:53 +00:00
jr c, .loop
2015-02-11 21:27:15 +00:00
xor a
ld [wcf66], a
ret
; 107d7
Function107d7: ; 107d7
2015-10-24 23:49:19 +00:00
ld a, [wJumptableIndex]
2015-11-23 21:04:53 +00:00
ld hl, .jumptable
2015-02-11 21:27:15 +00:00
call Function1086b
jp [hl]
; 107e1
2015-11-23 21:04:53 +00:00
.jumptable: ; 107e1 (4:47e1)
2015-02-11 21:27:15 +00:00
dw Function107e9
dw Function1083b
dw Function10807
dw Function10826
Function107e9: ; 107e9 (4:47e9)
xor a
ld hl, MenuDataHeader_0x107ef
jr Function1085a
; 107ef (4:47ef)
MenuDataHeader_0x107ef: ; 0x107ef
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
2015-11-23 21:04:53 +00:00
dw .MenuData2
2015-02-11 21:27:15 +00:00
db 1 ; default option
; 0x107f7
2015-11-23 21:04:53 +00:00
.MenuData2: ; 0x107f7
2015-02-11 21:27:15 +00:00
db $ae ; flags
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, OTPartyMons
2015-11-04 00:43:47 +00:00
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
2015-11-23 21:04:53 +00:00
dba UpdateItemDescription
2015-02-11 21:27:15 +00:00
; 10807
Function10807: ; 10807 (4:4807)
2015-11-23 21:04:53 +00:00
ld a, 2
2015-02-11 21:27:15 +00:00
ld hl, MenuDataHeader_0x1080e
jr Function1085a
; 1080e (4:480e)
MenuDataHeader_0x1080e: ; 0x1080e
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
2015-11-23 21:04:53 +00:00
dw .MenuData2
2015-02-11 21:27:15 +00:00
db 1 ; default option
; 0x10816
2015-11-23 21:04:53 +00:00
.MenuData2: ; 0x10816
2015-02-11 21:27:15 +00:00
db $ae ; flags
db 5, 8 ; rows, columns
db 1 ; horizontal spacing
dbw 0, OTPartyMon1Exp + 2
2015-11-04 00:43:47 +00:00
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
2015-11-23 21:04:53 +00:00
dba UpdateItemDescription
2015-02-11 21:27:15 +00:00
; 10826
Function10826: ; 10826 (4:4826)
2015-11-23 21:04:53 +00:00
ld a, 3
2015-10-24 14:34:19 +00:00
call InitPocket
call WaitBGMap_DrawPackGFX
2015-02-11 21:27:15 +00:00
callba Function2c76f
ld a, [CurItem]
ld [CurItem], a
ret
Function1083b: ; 1083b (4:483b)
2015-11-23 21:04:53 +00:00
ld a, 1
2015-02-11 21:27:15 +00:00
ld hl, MenuDataHeader_0x10842
jr Function1085a
; 10842 (4:4842)
MenuDataHeader_0x10842: ; 0x10842
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
2015-11-23 21:04:53 +00:00
dw .MenuData2
2015-02-11 21:27:15 +00:00
db 1 ; default option
; 0x1084a
2015-11-23 21:04:53 +00:00
.MenuData2: ; 0x1084a
2015-02-11 21:27:15 +00:00
db $ae ; flags
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, OTPartyMon1CaughtGender
2015-11-04 00:43:47 +00:00
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
2015-11-23 21:04:53 +00:00
dba UpdateItemDescription
2015-02-11 21:27:15 +00:00
; 1085a
Function1085a: ; 1085a (4:485a)
push hl
2015-10-24 14:34:19 +00:00
call InitPocket
2015-02-11 21:27:15 +00:00
pop hl
call CopyMenuDataHeader
2015-11-11 19:12:46 +00:00
call HandleScrollingMenu
2015-02-11 21:27:15 +00:00
ret
Function10866: ; 10866 (4:4866)
2015-10-24 23:49:19 +00:00
ld hl, wJumptableIndex
2015-02-11 21:27:15 +00:00
inc [hl]
ret
Function1086b: ; 1086b
ld e, a
ld d, 0
2015-07-21 02:18:18 +00:00
rept 2
2015-02-11 21:27:15 +00:00
add hl, de
2015-07-21 02:18:18 +00:00
endr
2015-02-11 21:27:15 +00:00
ld a, [hli]
ld h, [hl]
ld l, a
ret
; 10874
Function10874: ; 10874 (4:4874)
2015-10-24 23:49:19 +00:00
ld hl, wJumptableIndex
2015-02-11 21:27:15 +00:00
set 7, [hl]
xor a
ld [wcf66], a
ret
Function1087e: ; 1087e (4:487e)
2015-10-24 23:49:19 +00:00
ld hl, wJumptableIndex
2015-02-11 21:27:15 +00:00
set 7, [hl]
ld a, $1
ld [wcf66], a
ret
Function10889: ; 10889 (4:4889)
ld a, [Options]
push af
set 4, a
ld [Options], a
call PrintText
pop af
ld [Options], a
ret
2015-10-24 14:34:19 +00:00
WaitBGMap_DrawPackGFX: ; 1089a (4:489a)
2015-02-11 21:27:15 +00:00
call WaitBGMap
2015-10-24 14:34:19 +00:00
DrawPackGFX: ; 1089d
2015-02-11 21:27:15 +00:00
ld a, [wcf65]
and $3
ld e, a
ld d, $0
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
2015-10-24 14:34:19 +00:00
jr z, .male_dude
2015-02-11 21:27:15 +00:00
ld a, [PlayerGender]
bit 0, a
2015-10-24 14:34:19 +00:00
jr nz, .female
2015-02-11 21:27:15 +00:00
2015-10-24 14:34:19 +00:00
.male_dude
2015-02-11 21:27:15 +00:00
ld hl, PackGFXPointers
2015-07-21 02:18:18 +00:00
rept 2
2015-02-11 21:27:15 +00:00
add hl, de
2015-07-21 02:18:18 +00:00
endr
2015-02-11 21:27:15 +00:00
ld a, [hli]
ld e, a
ld d, [hl]
ld hl, VTiles2 tile $50
2015-02-11 21:27:15 +00:00
lb bc, BANK(PackGFX), 15
call Request2bpp
ret
2015-10-24 14:34:19 +00:00
.female
callba DrawKrisPackGFX
2015-02-11 21:27:15 +00:00
ret
; 108cc
PackGFXPointers: ; 108cc
dw PackGFX + $f0 * 1
dw PackGFX + $f0 * 3
dw PackGFX + $f0 * 0
dw PackGFX + $f0 * 2
; 108d4
Function108d4: ; 108d4 (4:48d4)
ld hl, wcf73
ld a, [wd0e3]
and a
jr nz, .asm_10931
ld a, [hl]
and $1
jr nz, .asm_108f8
ld a, [hl]
and $2
jr nz, .asm_108fa
ld a, [hl]
and $20
jr nz, .asm_10901
ld a, [hl]
and $10
jr nz, .asm_10912
ld a, [hl]
and $4
jr nz, .asm_10923
scf
ret
.asm_108f8
and a
ret
.asm_108fa
ld a, $9
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-02-11 21:27:15 +00:00
scf
ret
.asm_10901
ld a, b
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-02-11 21:27:15 +00:00
ld [wcf64], a
push de
ld de, SFX_UNKNOWN_62
call PlaySFX
pop de
scf
ret
.asm_10912
ld a, c
2015-10-24 23:49:19 +00:00
ld [wJumptableIndex], a
2015-02-11 21:27:15 +00:00
ld [wcf64], a
push de
ld de, SFX_UNKNOWN_62
call PlaySFX
pop de
scf
ret
.asm_10923
callba Function2490c
2015-11-23 21:04:53 +00:00
ld hl, Text_MoveItemWhere
2015-02-11 21:27:15 +00:00
call Function10889
scf
ret
.asm_10931
ld a, [hl]
and $5
jr nz, .asm_1093d
ld a, [hl]
and $2
jr nz, .asm_1094f
scf
ret
.asm_1093d
callba Function2490c
ld de, SFX_SWITCH_POKEMON
call WaitPlaySFX
ld de, SFX_SWITCH_POKEMON
call WaitPlaySFX
.asm_1094f
xor a
ld [wd0e3], a
scf
ret
Function10955: ; 10955
2015-11-12 04:38:57 +00:00
call ClearBGPalettes
2015-02-11 21:27:15 +00:00
call ClearTileMap
call ClearSprites
call DisableLCD
ld hl, PackMenuGFX
ld de, VTiles2
2015-11-03 17:36:33 +00:00
ld bc, $60 tiles
2015-02-11 21:27:15 +00:00
ld a, BANK(PackMenuGFX)
call FarCopyBytes
2015-11-23 21:04:53 +00:00
; Background (blue if male, pink if female)
2015-02-11 21:27:15 +00:00
hlcoord 0, 1
2015-11-03 17:36:33 +00:00
ld bc, 11 * SCREEN_WIDTH
2015-02-11 21:27:15 +00:00
ld a, $24
call ByteFill
2015-11-23 21:04:53 +00:00
; This is where the items themselves will be listed.
2015-02-11 21:27:15 +00:00
hlcoord 5, 1
lb bc, 11, 15
call ClearBox
2015-11-23 21:04:53 +00:00
; ◀▶ POCKET ▼▲ ITEMS
hlcoord 0, 0
2015-02-11 21:27:15 +00:00
ld a, $28
2015-11-03 17:36:33 +00:00
ld c, SCREEN_WIDTH
.loop
2015-02-11 21:27:15 +00:00
ld [hli], a
inc a
dec c
2015-11-03 17:36:33 +00:00
jr nz, .loop
2015-11-23 21:04:53 +00:00
2015-10-24 14:34:19 +00:00
call DrawPocketName
2015-11-23 21:04:53 +00:00
call PlacePackGFX
; Place the textbox for displaying the item description
hlcoord 0, SCREEN_HEIGHT - 4 - 2
lb bc, 4, SCREEN_WIDTH - 2
2015-02-11 21:27:15 +00:00
call TextBox
call EnableLCD
2015-10-24 14:34:19 +00:00
call DrawPackGFX
2015-02-11 21:27:15 +00:00
ret
; 109a5
2015-11-23 21:04:53 +00:00
PlacePackGFX: ; 109a5
2015-02-11 21:27:15 +00:00
hlcoord 0, 3
ld a, $50
2015-11-23 21:04:53 +00:00
ld de, SCREEN_WIDTH - 5
2015-02-11 21:27:15 +00:00
ld b, 3
2015-11-23 21:04:53 +00:00
.row
2015-02-11 21:27:15 +00:00
ld c, 5
2015-11-23 21:04:53 +00:00
.column
2015-02-11 21:27:15 +00:00
ld [hli], a
inc a
dec c
2015-11-23 21:04:53 +00:00
jr nz, .column
2015-02-11 21:27:15 +00:00
add hl, de
dec b
2015-11-23 21:04:53 +00:00
jr nz, .row
2015-02-11 21:27:15 +00:00
ret
; 109bb
2015-10-24 14:34:19 +00:00
DrawPocketName: ; 109bb
2015-02-11 21:27:15 +00:00
ld a, [wcf65]
; * 15
ld d, a
swap a
sub d
ld d, 0
ld e, a
2015-10-24 14:34:19 +00:00
ld hl, .tilemap
2015-02-11 21:27:15 +00:00
add hl, de
ld d, h
ld e, l
hlcoord 0, 7
ld c, 3
2015-10-24 14:34:19 +00:00
.row
2015-02-11 21:27:15 +00:00
ld b, 5
2015-10-24 14:34:19 +00:00
.col
2015-02-11 21:27:15 +00:00
ld a, [de]
inc de
ld [hli], a
dec b
2015-10-24 14:34:19 +00:00
jr nz, .col
2015-02-11 21:27:15 +00:00
ld a, c
2015-10-24 14:34:19 +00:00
ld c, SCREEN_WIDTH - 5
2015-02-11 21:27:15 +00:00
add hl, bc
ld c, a
dec c
2015-10-24 14:34:19 +00:00
jr nz, .row
2015-02-11 21:27:15 +00:00
ret
; 109e1
2015-10-24 14:34:19 +00:00
.tilemap: ; 109e1
2015-11-23 21:04:53 +00:00
db $00, $04, $04, $04, $01 ; top border
db $06, $07, $08, $09, $0a ; Items
db $02, $05, $05, $05, $03 ; bottom border
db $00, $04, $04, $04, $01 ; top border
db $15, $16, $17, $18, $19 ; Balls
db $02, $05, $05, $05, $03 ; bottom border
db $00, $04, $04, $04, $01 ; top border
db $0b, $0c, $0d, $0e, $0f ; Key Items
db $02, $05, $05, $05, $03 ; bottom border
db $00, $04, $04, $04, $01 ; top border
db $10, $11, $12, $13, $14 ; TM/HM
db $02, $05, $05, $05, $03 ; bottom border
2015-02-11 21:27:15 +00:00
; 10a1d
2015-11-23 21:04:53 +00:00
Pack_GetItemName: ; 10a1d
2015-02-11 21:27:15 +00:00
ld a, [CurItem]
2015-11-23 21:04:53 +00:00
ld [wNamedObjectIndexBuffer], a
2015-02-11 21:27:15 +00:00
call GetItemName
call CopyName1
ret
; 10a2a
2015-11-23 21:04:53 +00:00
Pack_ClearTilemap: ; 10a2a
; unreferenced
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
2015-10-24 14:34:19 +00:00
ld a, " "
2015-02-11 21:27:15 +00:00
call ByteFill
ret
; 10a36
2015-10-24 14:34:19 +00:00
ClearPocketList: ; 10a36 (4:4a36)
2015-02-11 21:27:15 +00:00
hlcoord 5, 2
2015-10-24 14:34:19 +00:00
lb bc, 10, SCREEN_WIDTH - 5
2015-02-11 21:27:15 +00:00
call ClearBox
ret
Function10a40: ; 10a40
call WaitBGMap
2015-10-24 14:34:19 +00:00
ld b, SCREEN_WIDTH
2015-02-11 21:27:15 +00:00
call GetSGBLayout
2015-09-09 23:27:07 +00:00
call SetPalettes
2015-02-11 21:27:15 +00:00
call DelayFrame
ret
; 10a4f
MenuDataHeader_0x10a4f: ; 0x10a4f
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
dw MenuData2_0x10a57
db 1 ; default option
; 0x10a57
MenuData2_0x10a57: ; 0x10a57
db $ae ; flags
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumItems
2015-11-04 00:43:47 +00:00
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
2015-11-23 21:04:53 +00:00
dba UpdateItemDescription
2015-02-11 21:27:15 +00:00
; 10a67
MenuDataHeader_0x10a67: ; 0x10a67
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
dw MenuData2_0x10a6f
db 1 ; default option
; 0x10a6f
MenuData2_0x10a6f: ; 0x10a6f
db $2e ; flags
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumItems
2015-11-04 00:43:47 +00:00
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
2015-11-23 21:04:53 +00:00
dba UpdateItemDescription
2015-02-11 21:27:15 +00:00
; 10a7f
MenuDataHeader_0x10a7f: ; 0x10a7f
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
dw MenuData2_0x10a87
db 1 ; default option
; 0x10a87
MenuData2_0x10a87: ; 0x10a87
db $ae ; flags
db 5, 8 ; rows, columns
db 1 ; horizontal spacing
dbw 0, NumKeyItems
2015-11-04 00:43:47 +00:00
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
2015-11-23 21:04:53 +00:00
dba UpdateItemDescription
2015-02-11 21:27:15 +00:00
; 10a97
MenuDataHeader_0x10a97: ; 0x10a97
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
dw MenuData2_0x10a9f
db 1 ; default option
; 0x10a9f
MenuData2_0x10a9f: ; 0x10a9f
db $2e ; flags
db 5, 8 ; rows, columns
db 1 ; horizontal spacing
dbw 0, NumKeyItems
2015-11-04 00:43:47 +00:00
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
2015-11-23 21:04:53 +00:00
dba UpdateItemDescription
2015-02-11 21:27:15 +00:00
; 10aaf
MenuDataHeader_0x10aaf: ; 0x10aaf
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
dw MenuData2_0x10ab7
db 1 ; default option
; 0x10ab7
MenuData2_0x10ab7: ; 0x10ab7
db $ae ; flags
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumBalls
2015-11-04 00:43:47 +00:00
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
2015-11-23 21:04:53 +00:00
dba UpdateItemDescription
2015-02-11 21:27:15 +00:00
; 10ac7
MenuDataHeader_0x10ac7: ; 0x10ac7
db $40 ; flags
db 01, 07 ; start coords
db 11, 19 ; end coords
dw MenuData2_0x10acf
db 1 ; default option
; 0x10acf
MenuData2_0x10acf: ; 0x10acf
db $2e ; flags
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumBalls
2015-11-04 00:43:47 +00:00
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
2015-11-23 21:04:53 +00:00
dba UpdateItemDescription
2015-02-11 21:27:15 +00:00
; 10adf
2015-11-23 21:04:53 +00:00
Text_PackNoItems: ; 0x10adf
2015-02-11 21:27:15 +00:00
; No items.
text_jump UnknownText_0x1c0b9a
db "@"
; 0x10ae4
2015-11-23 21:04:53 +00:00
Text_ThrowAwayHowMany: ; 0x10ae4
2015-02-11 21:27:15 +00:00
; Throw away how many?
text_jump UnknownText_0x1c0ba5
db "@"
; 0x10ae9
2015-11-23 21:04:53 +00:00
Text_ConfirmThrowAway: ; 0x10ae9
2015-02-11 21:27:15 +00:00
; Throw away @ @ (S)?
text_jump UnknownText_0x1c0bbb
db "@"
; 0x10aee
2015-11-23 21:04:53 +00:00
Text_ThrewAway: ; 0x10aee
2015-02-11 21:27:15 +00:00
; Threw away @ (S).
text_jump UnknownText_0x1c0bd8
db "@"
; 0x10af3
2015-11-23 21:04:53 +00:00
Text_ThisIsntTheTime: ; 0x10af3
2015-02-11 21:27:15 +00:00
; OAK: ! This isn't the time to use that!
text_jump UnknownText_0x1c0bee
db "@"
; 0x10af8
TextJump_YouDontHaveAPkmn: ; 0x10af8
2015-02-11 21:27:15 +00:00
; You don't have a #MON!
text_jump Text_YouDontHaveAPkmn
2015-02-11 21:27:15 +00:00
db "@"
; 0x10afd
2015-11-23 21:04:53 +00:00
Text_RegisteredItem: ; 0x10afd
2015-02-11 21:27:15 +00:00
; Registered the @ .
text_jump UnknownText_0x1c0c2e
db "@"
; 0x10b02
2015-11-23 21:04:53 +00:00
Text_CantRegister: ; 0x10b02
2015-02-11 21:27:15 +00:00
; You can't register that item.
text_jump UnknownText_0x1c0c45
db "@"
; 0x10b07
2015-11-23 21:04:53 +00:00
Text_MoveItemWhere: ; 0x10b07
2015-02-11 21:27:15 +00:00
; Where should this be moved to?
text_jump UnknownText_0x1c0c63
db "@"
; 0x10b0c
2015-11-23 21:04:53 +00:00
Text_PackEmptyString: ; 0x10b0c
;
2015-02-11 21:27:15 +00:00
text_jump UnknownText_0x1c0c83
db "@"
; 0x10b11
TextJump_YouCantUseItInABattle: ; 0x10b11
; Doesn't seem to be used anywhere
; "You can't use it in a battle."
text_jump Text_YouCantUseItInABattle
2015-02-11 21:27:15 +00:00
db "@"
; 0x10b16
PackMenuGFX:
INCBIN "gfx/misc/pack_menu.2bpp"
PackGFX:
2015-07-19 05:01:59 +00:00
INCBIN "gfx/misc/pack.2bpp"