diff options
Diffstat (limited to 'engine/pack.asm')
-rw-r--r-- | engine/pack.asm | 1692 |
1 files changed, 1692 insertions, 0 deletions
diff --git a/engine/pack.asm b/engine/pack.asm new file mode 100644 index 000000000..b83576148 --- /dev/null +++ b/engine/pack.asm @@ -0,0 +1,1692 @@ + +Pack: ; 10000 + ld hl, Options + set 4, [hl] + call Function1068a +.loop + call Functiona57 + ld a, [wcf63] + bit 7, a + jr nz, .done + call Function10026 + call DelayFrame + jr .loop + +.done + ld a, [wcf65] + ld [wd0d6], a + ld hl, Options + res 4, [hl] + ret +; 10026 + +Function10026: ; 10026 + ld a, [wcf63] + 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 ; $ff00+$d4 + call Function10955 + ld a, [wcf64] + ld [wcf63], a + call Function10a40 + ret + +Function10056: ; 10056 (4:4056) + xor a + ld [wcf65], a + call Function10a36 + call Function109bb + call Function1089a + call Function10866 + ret + +Function10067: ; 10067 (4:4067) + ld hl, MenuDataHeader_0x10a4f + call Function1d3c + ld a, [wd0d9] + ld [wcf88], a + ld a, [wd0df] + ld [wd0e4], a + call Function350c + ld a, [wd0e4] + ld [wd0df], a + ld a, [wcfa9] + ld [wd0d9], a + ld b, $7 + ld c, $3 + call Function108d4 + ret c + call Function101c5 + ret + +Function10094: ; 10094 (4:4094) + ld a, $2 + ld [wcf65], a + call Function10a36 + call Function109bb + call Function1089a + call Function10866 + ret + +Function100a6: ; 100a6 (4:40a6) + ld hl, MenuDataHeader_0x10a7f + call Function1d3c + ld a, [wd0da] + ld [wcf88], a + ld a, [wd0e0] + ld [wd0e4], a + call Function350c + ld a, [wd0e4] + ld [wd0e0], a + ld a, [wcfa9] + ld [wd0da], a + ld b, $3 + ld c, $7 + call Function108d4 + ret c + call Function101c5 + ret + +Function100d3: ; 100d3 (4:40d3) + ld a, $3 + ld [wcf65], a + call Function10a36 + call Function109bb + xor a + ld [hBGMapMode], a ; $ff00+$d4 + call Function1089a + call Function10866 + ret + +Function100e8: ; 100e8 (4:40e8) + callba Function2c76f + ld b, $5 + ld c, $1 + call Function108d4 + ret c + callba _CheckTossableItem + ld a, [wd142] + 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 Function1d81 + call Function1c07 + pop hl + ret c + ld a, [wcfa9] + 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 + dw Function10492 +; 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 + dw Function103fd + dw Function10492 +; 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 ; $ff00+$d4 + call Function10955 + call Function1089a + call Function10a40 + ret + +Function10186: ; 10186 (4:4186) + ld a, $1 + ld [wcf65], a + call Function10a36 + call Function109bb + call Function1089a + call Function10866 + ret + +Function10198: ; 10198 (4:4198) + ld hl, MenuDataHeader_0x10aaf + call Function1d3c + ld a, [wd0db] + ld [wcf88], a + ld a, [wd0e1] + ld [wd0e4], a + call Function350c + ld a, [wd0e4] + ld [wd0e1], a + ld a, [wcfa9] + ld [wd0db], a + ld b, $1 + ld c, $5 + call Function108d4 + ret c + call Function101c5 + ret + +Function101c5: ; 101c5 (4:41c5) + callba _CheckTossableItem + ld a, [wd142] + and a + jr nz, .asm_101f9 + callba CheckSelectableItem + ld a, [wd142] + and a + jr nz, .asm_101eb + callba CheckItemMenu + ld a, [wd142] + and a + jr nz, .asm_10207 + jr .asm_10227 +.asm_101eb + callba CheckItemMenu + ld a, [wd142] + and a + jr nz, .asm_1020f + jr .asm_1022f +.asm_101f9 + callba CheckSelectableItem + ld a, [wd142] + and a + jr nz, .asm_10217 + jr .asm_1021f +.asm_10207 + ld hl, MenuDataHeader_0x10249 + ld de, Jumptable_1026a + jr .asm_10235 +.asm_1020f + ld hl, MenuDataHeader_0x10274 + ld de, Jumptable_10291 + jr .asm_10235 +.asm_10217 + ld hl, MenuDataHeader_0x10299 + ld de, Jumptable_102ac + jr .asm_10235 +.asm_1021f + ld hl, MenuDataHeader_0x102b0 + ld de, Jumptable_102c7 + jr .asm_10235 +.asm_10227 + ld hl, MenuDataHeader_0x102cd + ld de, Jumptable_102ea + jr .asm_10235 +.asm_1022f + ld hl, MenuDataHeader_0x102f2 + ld de, Jumptable_1030b +.asm_10235 + push de + call LoadMenuDataHeader + call Function1d81 + call Function1c07 + pop hl + ret c + ld a, [wcfa9] + dec a + call Function1086b + jp [hl] +; 10249 (4:4249) + +MenuDataHeader_0x10249: ; 0x10249 + db $40 ; flags + db 01, 13 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x10251 + db 1 ; default option +; 0x10251 + +MenuData2_0x10251: ; 0x10251 + db $c0 ; flags + db 5 ; items + db "USE@" + db "GIVE@" + db "TOSS@" + db "SEL@" + db "QUIT@" +; 0x1026a + +Jumptable_1026a: ; 1026a + dw Function10311 + dw Function103fd + dw Function10364 + dw Function103c2 + dw Function10492 +; 10274 + +MenuDataHeader_0x10274: ; 0x10274 + db $40 ; flags + db 03, 13 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x1027c + db 1 ; default option +; 0x1027c + +MenuData2_0x1027c: ; 0x1027c + db $c0 ; flags + db 4 ; items + db "USE@" + db "GIVE@" + db "TOSS@" + db "QUIT@" +; 0x10291 + +Jumptable_10291: ; 10291 + dw Function10311 + dw Function103fd + dw Function10364 + dw Function10492 +; 10299 + +MenuDataHeader_0x10299: ; 0x10299 + db $40 ; flags + db 07, 13 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x102a1 + db 1 ; default option +; 0x102a1 + +MenuData2_0x102a1: ; 0x102a1 + db $c0 ; flags + db 2 ; items + db "USE@" + db "QUIT@" +; 0x102ac + +Jumptable_102ac: ; 102ac + dw Function10311 + dw Function10492 +; 102b0 + +MenuDataHeader_0x102b0: ; 0x102b0 + db $40 ; flags + db 05, 13 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x102b8 + db 1 ; default option +; 0x102b8 + +MenuData2_0x102b8: ; 0x102b8 + db $c0 ; flags + db 3 ; items + db "USE@" + db "SEL@" + db "QUIT@" +; 0x102c7 + +Jumptable_102c7: ; 102c7 + dw Function10311 + dw Function103c2 + dw Function10492 +; 102cd + +MenuDataHeader_0x102cd: ; 0x102cd + db $40 ; flags + db 03, 13 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x102d5 + db 1 ; default option +; 0x102d5 + +MenuData2_0x102d5: ; 0x102d5 + db $c0 ; flags + db 4 ; items + db "GIVE@" + db "TOSS@" + db "SEL@" + db "QUIT@" +; 0x102ea + +Jumptable_102ea: ; 102ea + dw Function103fd + dw Function10364 + dw Function103c2 + dw Function10492 +; 102f2 + +MenuDataHeader_0x102f2: ; 0x102f2 + db $40 ; flags + db 05, 13 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x102fa + db 1 ; default option +; 0x102fa + +MenuData2_0x102fa: ; 0x102fa + db $c0 ; flags + db 3 ; items + db "GIVE@" + db "TOSS@" + db "QUIT@" +; 0x1030b + +Jumptable_1030b: ; 1030b + dw Function103fd + dw Function10364 + dw Function10492 +; 10311 + +Function10311: ; 10311 + callba CheckItemMenu + ld a, [wd142] + ld hl, Jumptable_1031f + rst JumpTable + ret +; 1031f + +Jumptable_1031f: ; 1031f (4:431f) + dw Function1032d + dw Function1032d + dw Function1032d + dw Function1032d + dw Function10334 + dw Function10338 + dw Function10355 +; 1035c + +Function1032d: ; 1032d (4:432d) + ld hl, UnknownText_0x10af3 + call Function10889 + ret + +Function10334: ; 10334 (4:4334) + call DoItemEffect + ret + +Function10338: ; 10338 (4:4338) + ld a, [PartyCount] + and a + jr z, .asm_1034e + call DoItemEffect + xor a + ld [hBGMapMode], a ; $ff00+$d4 + call Function10955 + call Function1089a + call Function10a40 + ret +.asm_1034e + ld hl, UnknownText_0x10af8 + call Function10889 + ret + +Function10355: ; 10355 (4:4355) + call DoItemEffect + ld a, [wd0ec] + and a + jr z, Function1032d + ld a, $a + ld [wcf63], a + ret +; 10364 (4:4364) + +Function10364: ; 10364 + ld hl, UnknownText_0x10ae4 + call Function10889 + callba Function24fbf + push af + call Function1c07 + pop af + jr c, .asm_1039c + call Function10a1d + ld hl, UnknownText_0x10ae9 + call Function1d4f + call YesNoBox + push af + call Function1c07 + pop af + jr c, .asm_1039c + ld hl, NumItems + ld a, [wd107] + call TossItem + call Function10a1d + ld hl, UnknownText_0x10aee + call Function10889 + +.asm_1039c + 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 + ld [wd0db], a + ld [wd0e1], a + ret + +.asm_103b2 + xor a + ld [wd0d9], a + ld [wd0df], a + ret + +.asm_103ba + xor a + ld [wd0da], a + ld [wd0e0], a + ret +; 103c2 + +Function103c2: ; 103c2 + callba CheckSelectableItem + ld a, [wd142] + and a + jr nz, .asm_103f6 + ld a, [wcf65] + rrca + rrca + and $c0 + ld b, a + ld a, [wd107] + inc a + and $3f + or b + ld [WhichRegisteredItem], a + ld a, [CurItem] + ld [RegisteredItem], a + call Function10a1d + ld de, SFX_FULL_HEAL + call WaitPlaySFX + ld hl, UnknownText_0x10afd + call Function10889 + ret + +.asm_103f6 + ld hl, UnknownText_0x10b02 + call Function10889 + ret +; 103fd + +Function103fd: ; 103fd + 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 + call WhiteBGMap + callba Function5004f + callba Function50405 + callba Function503e0 +.asm_10427 + callba WritePartyMenuTilemap + callba PrintPartyMenuText + call WaitBGMap + call Function32f9 + call DelayFrame + callba PartyMenuSelect + jr c, .asm_10475 + ld a, [CurPartySpecies] + cp EGG + jr nz, .asm_10453 + ld hl, UnknownText_0x1048d + call PrintText + jr .asm_10427 +.asm_10453 + ld a, [wcf63] + 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 + ld [wcf63], a +.asm_10475 + pop af + ld [Options], a + xor a + ld [hBGMapMode], a ; $ff00+$d4 + call Function10955 + call Function1089a + call Function10a40 + ret + +Function10486: ; 10486 (4:4486) + ld hl, UnknownText_0x10af8 + call Function10889 + ret +; 1048d (4:448d) + +UnknownText_0x1048d: ; 0x1048d + ; An EGG can't hold an item. + text_jump UnknownText_0x1c0b7f + db "@" +; 0x10492 + +Function10492: ; 10492 + ret +; 10493 + + +BattlePack: ; 10493 + ld hl, Options + set 4, [hl] + call Function1068a +.asm_1049b + call Functiona57 + ld a, [wcf63] + bit 7, a + jr nz, .asm_104ad + call Function104b9 + call DelayFrame + jr .asm_1049b + +.asm_104ad + ld a, [wcf65] + ld [wd0d6], a + ld hl, Options + res 4, [hl] + ret +; 104b9 + +Function104b9: ; 104b9 + ld a, [wcf63] + 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 ; $ff00+$d4 + call Function10955 + ld a, [wcf64] + ld [wcf63], a + call Function10a40 + ret + +Function104e9: ; 104e9 (4:44e9) + xor a + ld [wcf65], a + call Function10a36 + call Function109bb + call Function1089a + call Function10866 + ret + +Function104fa: ; 104fa (4:44fa) + ld hl, MenuDataHeader_0x10a4f + call Function1d3c + ld a, [wd0d9] + ld [wcf88], a + ld a, [wd0df] + ld [wd0e4], a + call Function350c + ld a, [wd0e4] + ld [wd0df], a + ld a, [wcfa9] + ld [wd0d9], a + ld b, $7 + ld c, $3 + call Function108d4 + ret c + call Function105d3 + ret + +Function10527: ; 10527 (4:4527) + ld a, $2 + ld [wcf65], a + call Function10a36 + call Function109bb + call Function1089a + call Function10866 + ret + +Function10539: ; 10539 (4:4539) + ld hl, MenuDataHeader_0x10a7f + call Function1d3c + ld a, [wd0da] + ld [wcf88], a + ld a, [wd0e0] + ld [wd0e4], a + call Function350c + ld a, [wd0e4] + ld [wd0e0], a + ld a, [wcfa9] + ld [wd0da], a + ld b, $3 + ld c, $7 + call Function108d4 + ret c + call Function105d3 + ret + +Function10566: ; 10566 (4:4566) + ld a, $3 + ld [wcf65], a + call Function10a36 + call Function109bb + xor a + ld [hBGMapMode], a ; $ff00+$d4 + call Function1089a + ld hl, UnknownText_0x10b0c + 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 + call Function10a36 + call Function109bb + call Function1089a + call Function10866 + ret + +Function105a6: ; 105a6 (4:45a6) + ld hl, MenuDataHeader_0x10aaf + call Function1d3c + ld a, [wd0db] + ld [wcf88], a + ld a, [wd0e1] + ld [wd0e4], a + call Function350c + ld a, [wd0e4] + ld [wd0e1], a + ld a, [wcfa9] + ld [wd0db], a + ld b, $1 + ld c, $5 + call Function108d4 + ret c + call Function105d3 + ret + +Function105d3: ; 105d3 (4:45d3) + callba CheckItemContext + ld a, [wd142] + +Function105dc: ; 105dc (4:45dc) + and a + jr z, .asm_105e7 + ld hl, MenuDataHeader_0x10601 + ld de, Jumptable_10614 + jr .asm_105ed +.asm_105e7 + ld hl, MenuDataHeader_0x10618 + ld de, Jumptable_10627 +.asm_105ed + push de + call LoadMenuDataHeader + call Function1d81 + call Function1c07 + pop hl + ret c + ld a, [wcfa9] + dec a + call Function1086b + jp [hl] +; 10601 (4:4601) + +MenuDataHeader_0x10601: ; 0x10601 + db $40 ; flags + db 07, 13 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x10609 + db 1 ; default option +; 0x10609 + +MenuData2_0x10609: ; 0x10609 + db $c0 ; flags + db 2 ; items + db "USE@" + db "QUIT@" +; 0x10614 + +Jumptable_10614: ; 10614 + dw Function10629 + dw Function10689 +; 10618 + +MenuDataHeader_0x10618: ; 0x10618 + db $40 ; flags + db 09, 13 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x10620 + db 1 ; default option +; 0x10620 + +MenuData2_0x10620: ; 0x10620 + db $c0 ; flags + db 1 ; items + db "QUIT@" +; 0x10627 + +Jumptable_10627: ; 10627 + dw Function10689 +; 10629 + +Function10629: ; 10629 + callba CheckItemContext + ld a, [wd142] + ld hl, Jumptable_10637 + rst JumpTable + ret + +Jumptable_10637: ; 10637 (4:4637) + dw Function10645 + dw Function10645 + dw Function10645 + dw Function10645 + dw Function1064c + dw Function10656 + dw Function10671 + + +Function10645: ; 10645 (4:4645) + ld hl, UnknownText_0x10af3 + call Function10889 + ret + +Function1064c: ; 1064c (4:464c) + call DoItemEffect + ld a, [wd0ec] + and a + jr nz, asm_1066c + ret + +Function10656: ; 10656 (4:4656) + call DoItemEffect + ld a, [wd0ec] + and a + jr nz, asm_1067e + xor a + ld [hBGMapMode], a ; $ff00+$d4 + call Function10955 + call Function1089a + call Function10a40 + ret +asm_1066c: ; 1066c (4:466c) + call WhiteBGMap + jr asm_1067e + +Function10671: ; 10671 (4:4671) + call DoItemEffect + ld a, [wd0ec] + and a + jr z, Function10645 + cp $2 + jr z, asm_10684 +asm_1067e: ; 1067e (4:467e) + ld a, $a + ld [wcf63], a + ret +asm_10684: ; 10684 (4:4684) + xor a + ld [wd0ec], a + ret +; 10689 (4:4689) + +Function10689: ; 10689 + ret +; 1068a + + +Function1068a: ; 1068a + xor a + ld [wcf63], a + ld a, [wd0d6] + 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 + ld [wcf63], a + 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 + ld a, [wcf63] + ld hl, Jumptable_106d1 + call Function1086b + jp [hl] +; 106d1 + + +Jumptable_106d1: ; 106d1 (4:46d1) + dw Function106d9 + dw Function1073b + dw Function106ff + dw Function10726 + + +Function106d9: ; 106d9 (4:46d9) + xor a + call Function10762 + ld hl, MenuDataHeader_0x10a67 + call Function1d3c + ld a, [wd0d9] + ld [wcf88], a + ld a, [wd0df] + ld [wd0e4], a + call Function350c + ld a, [wd0e4] + ld [wd0df], a + ld a, [wcfa9] + ld [wd0d9], a + ret + +Function106ff: ; 106ff (4:46ff) + ld a, $2 + call Function10762 + ld hl, MenuDataHeader_0x10a97 + call Function1d3c + ld a, [wd0da] + ld [wcf88], a + ld a, [wd0e0] + ld [wd0e4], a + call Function350c + ld a, [wd0e4] + ld [wd0e0], a + ld a, [wcfa9] + ld [wd0da], a + ret + +Function10726: ; 10726 (4:4726) + ld a, $3 + call Function10762 + call Function1089a + callba Function2c76f + ld a, [CurItem] + ld [CurItem], a + ret + +Function1073b: ; 1073b (4:473b) + ld a, $1 + call Function10762 + ld hl, MenuDataHeader_0x10ac7 + call Function1d3c + ld a, [wd0db] + ld [wcf88], a + ld a, [wd0e1] + ld [wd0e4], a + call Function350c + ld a, [wd0e4] + ld [wd0e1], a + ld a, [wcfa9] + ld [wd0db], a + ret + +Function10762: ; 10762 (4:4762) + ld [wcf65], a + call Function10a36 + call Function109bb + call Function1089a + 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 + ld a, [wcf63] + dec a + and $3 + ld [wcf63], a + push de + ld de, SFX_UNKNOWN_62 + call PlaySFX + pop de + scf + ret + +.asm_107a8 + ld a, [wcf63] + inc a + and $3 + ld [wcf63], a + push de + ld de, SFX_UNKNOWN_62 + call PlaySFX + pop de + scf + ret +; 107bb + +Function107bb: ; 107bb + call Function106a5 + ld a, [InputType] + or a + jr z, .asm_107ca + callba Function1de28f + +.asm_107ca + call Function107d7 + call Function1076f + jr c, .asm_107ca + xor a + ld [wcf66], a + ret +; 107d7 + +Function107d7: ; 107d7 + ld a, [wcf63] + ld hl, Jumptable_107e1 + call Function1086b + jp [hl] +; 107e1 + + +Jumptable_107e1: ; 107e1 (4:47e1) + 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 + dw MenuData2_0x107f7 + db 1 ; default option +; 0x107f7 + +MenuData2_0x107f7: ; 0x107f7 + db $ae ; flags + db 5, 8 ; rows, columns + db 2 ; horizontal spacing + dbw 0, OTPartyMons + dbw BANK(Function24ab4), Function24ab4 + dbw BANK(Function24ac3), Function24ac3 + dbw BANK(Function244c3), Function244c3 +; 10807 + +Function10807: ; 10807 (4:4807) + ld a, $2 + 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 + dw MenuData2_0x10816 + db 1 ; default option +; 0x10816 + +MenuData2_0x10816: ; 0x10816 + db $ae ; flags + db 5, 8 ; rows, columns + db 1 ; horizontal spacing + dbw 0, OTPartyMon1Exp + 2 + dbw BANK(Function24ab4), Function24ab4 + dbw BANK(Function24ac3), Function24ac3 + dbw BANK(Function244c3), Function244c3 +; 10826 + +Function10826: ; 10826 (4:4826) + ld a, $3 + call Function10762 + call Function1089a + callba Function2c76f + ld a, [CurItem] + ld [CurItem], a + ret + +Function1083b: ; 1083b (4:483b) + ld a, $1 + 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 + dw MenuData2_0x1084a + db 1 ; default option +; 0x1084a + +MenuData2_0x1084a: ; 0x1084a + db $ae ; flags + db 5, 8 ; rows, columns + db 2 ; horizontal spacing + dbw 0, OTPartyMon1CaughtGender + dbw BANK(Function24ab4), Function24ab4 + dbw BANK(Function24ac3), Function24ac3 + dbw BANK(Function244c3), Function244c3 +; 1085a + +Function1085a: ; 1085a (4:485a) + push hl + call Function10762 + pop hl + call Function1d3c + call Function350c + ret + +Function10866: ; 10866 (4:4866) + ld hl, wcf63 + inc [hl] + ret + +Function1086b: ; 1086b + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 10874 + +Function10874: ; 10874 (4:4874) + ld hl, wcf63 + set 7, [hl] + xor a + ld [wcf66], a + ret + +Function1087e: ; 1087e (4:487e) + ld hl, wcf63 + 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 + +Function1089a: ; 1089a (4:489a) + call WaitBGMap + + +Function1089d: ; 1089d + ld a, [wcf65] + and $3 + ld e, a + ld d, $0 + ld a, [BattleType] + cp BATTLETYPE_TUTORIAL + jr z, .asm_108b3 + ld a, [PlayerGender] + bit 0, a + jr nz, .asm_108c5 + +.asm_108b3 + ld hl, PackGFXPointers + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, $9500 + lb bc, BANK(PackGFX), 15 + call Request2bpp + ret + +.asm_108c5 + callba Function48e81 + 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 + ld [wcf63], a + scf + ret +.asm_10901 + ld a, b + ld [wcf63], a + ld [wcf64], a + push de + ld de, SFX_UNKNOWN_62 + call PlaySFX + pop de + scf + ret +.asm_10912 + ld a, c + ld [wcf63], a + ld [wcf64], a + push de + ld de, SFX_UNKNOWN_62 + call PlaySFX + pop de + scf + ret +.asm_10923 + callba Function2490c + ld hl, UnknownText_0x10b07 + 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 + call WhiteBGMap + call ClearTileMap + call ClearSprites + call DisableLCD + ld hl, PackMenuGFX + ld de, VTiles2 + ld bc, $0600 + ld a, BANK(PackMenuGFX) + call FarCopyBytes + hlcoord 0, 1 + ld bc, $00dc + ld a, $24 + call ByteFill + hlcoord 5, 1 + lb bc, 11, 15 + call ClearBox + ld hl, TileMap + ld a, $28 + ld c, $14 +.asm_1098a + ld [hli], a + inc a + dec c + jr nz, .asm_1098a + call Function109bb + call Function109a5 + hlcoord 0, 12 + lb bc, 4, 18 + call TextBox + call EnableLCD + call Function1089d + ret +; 109a5 + +Function109a5: ; 109a5 + hlcoord 0, 3 + ld a, $50 + ld de, 15 + ld b, 3 +.asm_109af + ld c, 5 +.asm_109b1 + ld [hli], a + inc a + dec c + jr nz, .asm_109b1 + add hl, de + dec b + jr nz, .asm_109af + ret +; 109bb + +Function109bb: ; 109bb + ld a, [wcf65] + + ; * 15 + ld d, a + swap a + sub d + + ld d, 0 + ld e, a + ld hl, Tilemap_109e1 + add hl, de + ld d, h + ld e, l + hlcoord 0, 7 + ld c, 3 +.asm_109d0 + ld b, 5 +.asm_109d2 + ld a, [de] + inc de + ld [hli], a + dec b + jr nz, .asm_109d2 + ld a, c + ld c, 15 + add hl, bc + ld c, a + dec c + jr nz, .asm_109d0 + ret +; 109e1 + +Tilemap_109e1: ; 109e1 + db $00, $04, $04, $04, $01, $06, $07, $08, $09, $0a, $02, $05, $05, $05, $03 + db $00, $04, $04, $04, $01, $15, $16, $17, $18, $19, $02, $05, $05, $05, $03 + db $00, $04, $04, $04, $01, $0b, $0c, $0d, $0e, $0f, $02, $05, $05, $05, $03 + db $00, $04, $04, $04, $01, $10, $11, $12, $13, $14, $02, $05, $05, $05, $03 +; 10a1d + +Function10a1d: ; 10a1d + ld a, [CurItem] + ld [wd265], a + call GetItemName + call CopyName1 + ret +; 10a2a + +Function10a2a: ; 10a2a + ld hl, TileMap + ld bc, $0168 + ld a, $7f + call ByteFill + ret +; 10a36 + +Function10a36: ; 10a36 (4:4a36) + hlcoord 5, 2 + ld bc, $a0f + call ClearBox + ret + + +Function10a40: ; 10a40 + call WaitBGMap + ld b, $14 + call GetSGBLayout + call Function32f9 + 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 + dbw BANK(Function24ab4), Function24ab4 + dbw BANK(Function24ac3), Function24ac3 + dbw BANK(Function244c3), Function244c3 +; 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 + dbw BANK(Function24ab4), Function24ab4 + dbw BANK(Function24ac3), Function24ac3 + dbw BANK(Function244c3), Function244c3 +; 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 + dbw BANK(Function24ab4), Function24ab4 + dbw BANK(Function24ac3), Function24ac3 + dbw BANK(Function244c3), Function244c3 +; 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 + dbw BANK(Function24ab4), Function24ab4 + dbw BANK(Function24ac3), Function24ac3 + dbw BANK(Function244c3), Function244c3 +; 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 + dbw BANK(Function24ab4), Function24ab4 + dbw BANK(Function24ac3), Function24ac3 + dbw BANK(Function244c3), Function244c3 +; 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 + dbw BANK(Function24ab4), Function24ab4 + dbw BANK(Function24ac3), Function24ac3 + dbw BANK(Function244c3), Function244c3 +; 10adf + +UnknownText_0x10adf: ; 0x10adf + ; No items. + text_jump UnknownText_0x1c0b9a + db "@" +; 0x10ae4 + +UnknownText_0x10ae4: ; 0x10ae4 + ; Throw away how many? + text_jump UnknownText_0x1c0ba5 + db "@" +; 0x10ae9 + +UnknownText_0x10ae9: ; 0x10ae9 + ; Throw away @ @ (S)? + text_jump UnknownText_0x1c0bbb + db "@" +; 0x10aee + +UnknownText_0x10aee: ; 0x10aee + ; Threw away @ (S). + text_jump UnknownText_0x1c0bd8 + db "@" +; 0x10af3 + +UnknownText_0x10af3: ; 0x10af3 + ; OAK: ! This isn't the time to use that! + text_jump UnknownText_0x1c0bee + db "@" +; 0x10af8 + +UnknownText_0x10af8: ; 0x10af8 + ; You don't have a #MON! + text_jump UnknownText_0x1c0c17 + db "@" +; 0x10afd + +UnknownText_0x10afd: ; 0x10afd + ; Registered the @ . + text_jump UnknownText_0x1c0c2e + db "@" +; 0x10b02 + +UnknownText_0x10b02: ; 0x10b02 + ; You can't register that item. + text_jump UnknownText_0x1c0c45 + db "@" +; 0x10b07 + +UnknownText_0x10b07: ; 0x10b07 + ; Where should this be moved to? + text_jump UnknownText_0x1c0c63 + db "@" +; 0x10b0c + +UnknownText_0x10b0c: ; 0x10b0c + ; + text_jump UnknownText_0x1c0c83 + db "@" +; 0x10b11 + +UnknownText_0x10b11: ; 0x10b11 + ; You can't use it in a battle. + text_jump UnknownText_0x1c0c85 + db "@" +; 0x10b16 + +PackMenuGFX: +INCBIN "gfx/misc/pack_menu.2bpp" + +PackGFX: +INCBIN "gfx/misc/pack.w40.2bpp" + |