Merge with master

This commit is contained in:
DizzyEggg 2018-08-16 22:53:01 +02:00
commit 0bfe894566
72 changed files with 7418 additions and 11435 deletions

View File

@ -1244,7 +1244,7 @@ _0819AF1A:
movs r0, 0x1
adds r2, r6, 0
movs r3, 0x5
bl sub_81BF8EC
bl ShowPokemonSummaryScreen
_0819AF50:
add sp, 0x4
pop {r4-r6}
@ -4373,7 +4373,7 @@ _0819C9C4:
str r0, [sp]
movs r0, 0
movs r3, 0x2
bl sub_81BF8EC
bl ShowPokemonSummaryScreen
_0819C9F0:
add sp, 0x4
pop {r4-r6}
@ -11771,7 +11771,7 @@ sub_81A070C: @ 81A070C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081A0730
bl ProcessMenuInputNoWrapAround
bl Menu_ProcessInputNoWrapAround
b _081A0734
.pool
_081A0730:

File diff suppressed because it is too large Load Diff

View File

@ -55,8 +55,8 @@ _080DB8D0:
cmp r4, r0
beq _080DB8F4
adds r0, r4, 0
bl sub_81562C4
bl sub_8156324
bl ContestAI_ResetAI
bl ContestAI_GetActionToUse
lsls r0, 24
ldr r2, =gContestMons
lsrs r0, 23
@ -533,7 +533,7 @@ _080DBC3C:
ldr r0, [r3, 0x4]
adds r0, r4, r0
ldrh r0, [r0, 0x6]
bl sub_80DD9F0
bl Contest_GetMoveExcitement
ldr r1, [r5]
ldr r2, [r1]
ldrb r1, [r2, 0x1]
@ -3425,7 +3425,7 @@ _080DD334:
ldr r0, [r0, 0x4]
adds r0, r4, r0
ldrh r0, [r0, 0x6]
bl sub_80DD9F0
bl Contest_GetMoveExcitement
ldr r1, [r5]
ldr r1, [r1, 0x10]
strb r0, [r1]
@ -4213,8 +4213,8 @@ _080DD9C8:
.pool
thumb_func_end sub_80DD940
thumb_func_start sub_80DD9F0
sub_80DD9F0: @ 80DD9F0
thumb_func_start Contest_GetMoveExcitement
Contest_GetMoveExcitement: @ 80DD9F0
lsls r0, 16
ldr r3, =gUnknown_085899EC
ldr r1, =gContestMoves
@ -4233,7 +4233,7 @@ sub_80DD9F0: @ 80DD9F0
ldrsb r0, [r1, r0]
bx lr
.pool
thumb_func_end sub_80DD9F0
thumb_func_end Contest_GetMoveExcitement
thumb_func_start sub_80DDA20
sub_80DDA20: @ 80DDA20

File diff suppressed because it is too large Load Diff

View File

@ -369,7 +369,7 @@ _0811AF86:
thumb_func_start sub_811AF8C
sub_811AF8C: @ 811AF8C
push {lr}
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -418,7 +418,7 @@ _0811AFE6:
thumb_func_start sub_811AFEC
sub_811AFEC: @ 811AFEC
push {r4,lr}
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -461,7 +461,7 @@ _0811B03A:
thumb_func_start sub_811B040
sub_811B040: @ 811B040
push {lr}
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -566,7 +566,7 @@ sub_811B0E8: @ 811B0E8
thumb_func_start sub_811B0F8
sub_811B0F8: @ 811B0F8
push {r4,lr}
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0

File diff suppressed because it is too large Load Diff

View File

@ -2740,7 +2740,7 @@ sub_81B1708: @ 81B1708
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -4196,7 +4196,7 @@ sub_81B227C: @ 81B227C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -6692,7 +6692,7 @@ sub_81B3730: @ 81B3730
ldrb r0, [r0, 0x17]
cmp r0, 0x3
bhi _081B3774
bl ProcessMenuInputNoWrapAround_other
bl Menu_ProcessInputNoWrapAround_other
b _081B3778
.pool
_081B3774:
@ -6796,7 +6796,7 @@ sub_81B3828: @ 81B3828
ldr r0, =sub_81B3894
str r0, [sp]
movs r0, 0x1
bl sub_81BF8EC
bl ShowPokemonSummaryScreen
b _081B3880
.pool
_081B3868:
@ -6810,7 +6810,7 @@ _081B3868:
ldr r0, =sub_81B3894
str r0, [sp]
movs r0, 0
bl sub_81BF8EC
bl ShowPokemonSummaryScreen
_081B3880:
add sp, 0x4
pop {r4}
@ -8138,7 +8138,7 @@ sub_81B43DC: @ 81B43DC
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -8671,7 +8671,7 @@ sub_81B48DC: @ 81B48DC
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -8963,7 +8963,7 @@ sub_81B4BA0: @ 81B4BA0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -9069,7 +9069,7 @@ sub_81B4C94: @ 81B4C94
push {r7}
lsls r0, 24
lsrs r5, r0, 24
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -9877,7 +9877,7 @@ sub_81B5430: @ 81B5430
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -10171,7 +10171,7 @@ sub_81B56D8: @ 81B56D8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -13156,7 +13156,7 @@ sub_81B7028: @ 81B7028
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -13235,7 +13235,7 @@ sub_81B70B8: @ 81B70B8
ldr r3, =sub_81B70F0
ldrh r4, [r4, 0xE]
str r4, [sp]
bl sub_81BFA38
bl ShowSelectMovePokemonSummaryScreen
add sp, 0x4
pop {r4}
pop {r0}
@ -13458,7 +13458,7 @@ sub_81B72C8: @ 81B72C8
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r5, r0, 24
cmp r5, 0
@ -15240,7 +15240,7 @@ sub_81B82D4: @ 81B82D4
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -17663,7 +17663,7 @@ sub_81B968C: @ 81B968C
ldr r0, =CB2_ReturnToField
str r0, [sp]
movs r0, 0x3
bl sub_81BF8EC
bl ShowPokemonSummaryScreen
ldr r1, =gFieldCallback
ldr r0, =sub_80AF168
str r0, [r1]

View File

@ -1904,7 +1904,7 @@ _080C8F0C:
adds r0, 0x1
strb r0, [r1]
_080C8F22:
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -2628,7 +2628,7 @@ _080C9584:
b _080C9664
.pool
_080C95A4:
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -3422,7 +3422,7 @@ _080C9C78:
b _080C9CAA
.pool
_080C9C8C:
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -3553,7 +3553,7 @@ _080C9DAC:
b _080C9DE0
.pool
_080C9DC0:
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -3685,7 +3685,7 @@ _080C9EB4:
adds r1, r4, 0
adds r2, r7, 0
adds r3, r6, 0
bl sub_81BFA80
bl ShowPokemonSummaryScreenSet40EF
b _080C9F56
.pool
_080C9F04:
@ -3695,7 +3695,7 @@ _080C9F04:
adds r1, r4, 0
adds r2, r7, 0
adds r3, r6, 0
bl sub_81BF8EC
bl ShowPokemonSummaryScreen
b _080C9F56
.pool
_080C9F1C:

View File

@ -22585,7 +22585,7 @@ sub_81D2ACC: @ 81D2ACC
push {r7}
sub sp, 0xC
adds r4, r0, 0
bl sub_816137C
bl ShowHideHearts
movs r0, 0x1
movs r1, 0x11
bl FillWindowPixelBuffer

View File

@ -2920,7 +2920,7 @@ _080170E0:
negs r0, r0
b _08017110
_080170F2:
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
movs r2, 0x80
@ -6278,7 +6278,7 @@ _08018BD6:
b _08018C3E
.pool
_08018BE4:
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r6, r0, 24
movs r1, 0x80
@ -28890,7 +28890,7 @@ _0802426A:
bl sub_8197930
b _080242D0
_08024270:
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x2
@ -47811,7 +47811,7 @@ _0802DA84:
thumb_func_start sub_802DA8C
sub_802DA8C: @ 802DA8C
push {lr}
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r0, 24
pop {r1}

View File

@ -327,7 +327,7 @@ _080E2090:
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080E209E
bl ProcessMenuInputNoWrapAround
bl Menu_ProcessInputNoWrapAround
b _080E20A2
_080E209E:
bl ProcessMenuInput
@ -444,7 +444,7 @@ task_yes_no_maybe: @ 80E215C
b _080E21C4
.pool
_080E2180:
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x1

View File

@ -137,7 +137,7 @@ Task_ShopMenu: @ 80DFB88
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
bl ProcessMenuInputNoWrapAround
bl Menu_ProcessInputNoWrapAround
lsls r0, 24
asrs r2, r0, 24
movs r0, 0x2

View File

@ -5,9 +5,6 @@
.text
thumb_func_start sub_8102A64
sub_8102A64: @ 812BAFC
push {r4,r5,lr}

View File

@ -3349,7 +3349,7 @@ sub_8078EF8: @ 8078EF8
sub_8078F50: @ 8078F50
push {lr}
sub sp, 0x4
bl ProcessMenuInputNoWrapAround
bl Menu_ProcessInputNoWrapAround
lsls r0, 24
asrs r0, 24
movs r1, 0x1
@ -3499,7 +3499,7 @@ sub_807905C: @ 807905C
ldr r0, =sub_8077B74
str r0, [sp]
movs r0, 0x1
bl sub_81BF8EC
bl ShowPokemonSummaryScreen
b _080790C0
.pool
_080790A4:
@ -3515,7 +3515,7 @@ _080790A4:
ldr r0, =sub_8077B74
str r0, [sp]
movs r0, 0x1
bl sub_81BF8EC
bl ShowPokemonSummaryScreen
_080790C0:
bl FreeAllWindowBuffers
_080790C4:
@ -3695,7 +3695,7 @@ _0807920E:
thumb_func_start sub_8079218
sub_8079218: @ 8079218
push {lr}
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@ -3797,7 +3797,7 @@ _080792D8:
thumb_func_start sub_80792E4
sub_80792E4: @ 80792E4
push {lr}
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0

View File

@ -900,7 +900,7 @@ sub_8166D44: @ 8166D44
thumb_func_start sub_8166DE4
sub_8166DE4: @ 8166DE4
push {r4,lr}
bl ProcessMenuInputNoWrap_
bl Menu_ProcessInputNoWrap_
lsls r0, 24
lsrs r4, r0, 24
asrs r1, r0, 24

94
data/battle_pyramid.s Normal file
View File

@ -0,0 +1,94 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_0861F2B4:: @ 861F2B4
.4byte 0x000011f0, 0x000001e1, 0x000021de
.align 2
gUnknown_0861F2C0:: @ 861F2C0
.4byte 0x00000000, sub_81C5460, sub_81C5518, 0x00000000, 0x00080000, 0x07003021
.align 2
gUnknown_0861F2D8:: @ 861F2D8
.4byte gMenuText_Use, sub_81C61E0
.4byte gMenuText_Toss, sub_81C62C4
.4byte gMenuText_Give, sub_81C6648
.4byte gText_Cancel2, sub_81C6258
.4byte gMenuText_Use, sub_81C679C
.4byte gText_EmptyString2, NULL
gUnknown_0861F308:: @ 861F308
.byte 0x00, 0x02, 0x01, 0x03
gUnknown_0861F30C:: @ 861F30C
.byte 0x01, 0x03
gUnknown_0861F30E:: @ 861F30E
.byte 0x04, 0x03
gUnknown_0861F310:: @ 861F310
.byte 0x03, 0x00, 0x00, 0x00
gUnknown_0861F314:: @ 861F314
.4byte sub_81C654C
.4byte sub_81C63D0
gUnknown_0861F31C:: @ 861F31C
.byte 0x00, 0x02, 0x03, 0x00, 0x03, 0x01, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00
.align 2
gUnknown_0861F328:: @ 861F328
window_template 0x00, 0x0e, 0x02, 0x0f, 0x10, 0x0f, 0x001e
window_template 0x00, 0x00, 0x0d, 0x0e, 0x06, 0x0f, 0x010e
window_template 0x01, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x0162
window_template 0x01, 0x18, 0x11, 0x05, 0x02, 0x0f, 0x01ce
null_window_template
.align 2
gUnknown_0861F350:: @ 861F350
window_template 0x01, 0x16, 0x11, 0x07, 0x02, 0x0f, 0x01d8
window_template 0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01d8
window_template 0x01, 0x0f, 0x0f, 0x0e, 0x04, 0x0f, 0x01d8
window_template 0x01, 0x0f, 0x0d, 0x0e, 0x06, 0x0f, 0x01d8
.align 2
gUnknown_0861F370:: @ 861F370
window_template 0x01, 0x18, 0x0f, 0x05, 0x04, 0x0f, 0x01d8
.align 2
gOamData_861F378:: @ 861F378
.2byte 0x0100, 0xc000, 0x0400, 0x0000
.align 2
gSpriteAnim_861F380:: @ 861F380
.2byte 0x0000, 0x0004, 0xffff, 0x0000
.align 2
gSpriteAnimTable_861F388:: @ 861F388
.4byte gSpriteAnim_861F380
.align 2
gSpriteAffineAnim_861F38C:: @ 861F38C
.2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gSpriteAffineAnim_861F39C:: @ 861F39C
.2byte 0x0000, 0x0000, 0x02fe, 0x0000, 0x0000, 0x0000, 0x0402, 0x0000, 0x0000, 0x0000, 0x04fe, 0x0000, 0x0000, 0x0000, 0x0202, 0x0000
.2byte 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gSpriteAffineAnimTable_861F3C4:: @ 861F3C4
.4byte gSpriteAffineAnim_861F38C
.4byte gSpriteAffineAnim_861F39C
.align 2
gUnknown_0861F3CC:: @ 861F3CC
obj_tiles gBattleFrontierGfx_PyramidBag, 0x0800, 0x1024
.align 2
gUnknown_0861F3D4:: @ 861F3D4
spr_template 0x1024, 0x1024, gOamData_861F378, gSpriteAnimTable_861F388, NULL, gSpriteAffineAnimTable_861F3C4, SpriteCallbackDummy

View File

@ -1,144 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_085CDD00:: @ 85CDD00
.4byte sub_81564DC
.4byte sub_8156530
.4byte sub_8156550
.4byte sub_8156594
.4byte sub_81565D8
.4byte sub_815661C
.4byte sub_8156660
.4byte sub_8156684
.4byte sub_81566C8
.4byte sub_815670C
.4byte sub_8156750
.4byte sub_8156794
.4byte sub_81567BC
.4byte sub_8156800
.4byte sub_8156844
.4byte sub_8156888
.4byte sub_81568CC
.4byte sub_815690C
.4byte sub_8156950
.4byte sub_8156994
.4byte sub_81569D8
.4byte sub_8156A1C
.4byte sub_8156A48
.4byte sub_8156A98
.4byte sub_8156AE8
.4byte sub_8156B38
.4byte sub_8156B88
.4byte sub_8156BB4
.4byte sub_8156C04
.4byte sub_8156C54
.4byte sub_8156CA4
.4byte sub_8156CF4
.4byte sub_8156D18
.4byte sub_8156D5C
.4byte sub_8156DA0
.4byte sub_8156DE4
.4byte sub_8156E2C
.4byte sub_8156E74
.4byte sub_8156EBC
.4byte sub_8156F04
.4byte sub_8156F44
.4byte sub_8156F88
.4byte sub_8156FCC
.4byte sub_8157018
.4byte sub_815705C
.4byte sub_81570A0
.4byte sub_815712C
.4byte sub_8157174
.4byte sub_8157200
.4byte sub_8157248
.4byte sub_81572A4
.4byte sub_81572E8
.4byte sub_815732C
.4byte sub_8157370
.4byte sub_81573B4
.4byte sub_8157410
.4byte sub_8157454
.4byte sub_8157498
.4byte sub_81574DC
.4byte sub_8157520
.4byte sub_8157578
.4byte sub_81575BC
.4byte sub_8157600
.4byte sub_8157644
.4byte sub_8157688
.4byte sub_8157700
.4byte sub_8157748
.4byte sub_8157790
.4byte sub_8157808
.4byte sub_8157850
.4byte sub_8157898
.4byte sub_81578F8
.4byte sub_8157940
.4byte sub_8157988
.4byte sub_81579CC
.4byte sub_8157A10
.4byte sub_8157A54
.4byte sub_8157A98
.4byte sub_8157ADC
.4byte sub_8157B38
.4byte sub_8157B7C
.4byte sub_8157BC0
.4byte sub_8157C04
.4byte sub_8157C48
.4byte sub_8157C94
.4byte sub_8157CDC
.4byte sub_8157D24
.4byte sub_8157D60
.4byte sub_8157DA8
.4byte sub_8157DF0
.4byte sub_8157E3C
.4byte sub_8157E84
.4byte sub_8157ECC
.4byte sub_8157F14
.4byte sub_8157F5C
.4byte sub_8157FA0
.4byte sub_8157FE8
.4byte sub_8158030
.4byte sub_8158078
.4byte sub_81580C0
.4byte sub_8158108
.4byte sub_815814C
.4byte sub_8158190
.4byte sub_81581D4
.4byte sub_8158218
.4byte sub_8158254
.4byte sub_8158298
.4byte sub_81582DC
.4byte sub_8158320
.4byte sub_8158364
.4byte sub_81583B8
.4byte sub_81583FC
.4byte sub_8158440
.4byte sub_815846C
.4byte sub_815849C
.4byte sub_81584D4
.4byte sub_8158508
.4byte sub_815853C
.4byte sub_815858C
.4byte sub_81585DC
.4byte sub_815862C
.4byte sub_815867C
.4byte sub_81586D0
.4byte sub_8158724
.4byte sub_8158778
.4byte sub_81587CC
.4byte sub_815881C
.4byte sub_815886C
.4byte dp15_call
.4byte sub_81588BC
.4byte sub_8158948
.4byte sub_81589A4
.4byte sub_81589EC
.4byte sub_8158A34
.4byte sub_8158AA0
.4byte sub_8158AE8

View File

@ -1,93 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
gUnknown_085CE9F8:: @ 85CE9F8
.incbin "graphics/interface/ui_learn_move.gbapal"
gUnknown_085CEA18:: @ 85CEA18
.incbin "graphics/interface/ui_learn_move.4bpp"
gUnknown_085CEB98:: @ 85CEB98
.2byte 0
.2byte 0
.2byte 0
.2byte 0
.2byte 0x8000
.2byte 0
.2byte 0
.2byte 0
.2byte 0x4000
.2byte 0
.2byte 0
.2byte 0
gUnknown_085CEBB0:: @ 85CEBB0
obj_tiles gUnknown_085CEA18, 0x180, 0x1595
gUnknown_085CEBB8:: @ 85CEBB8
obj_pal gUnknown_085CE9F8, 0x1596
gUnknown_085CEBC0:: @ 85CEBC0
.byte 0
.byte 0x1B
.byte 16
.byte 1
.byte 0x75
.byte 16
.2byte 0xFFFF
.2byte 0xFFFF
.2byte 0x14CD
.2byte 0x14CD
.byte 0, 0
gUnknown_085CEBD0:: @ 85CEBD0
.byte 2
.byte 0xC0
.byte 8
.byte 3
.byte 0xC0
.byte 0x68
.2byte 0
.2byte 0
.2byte 0x1531
.2byte 0x1531
.byte 0, 0
gUnknown_085CEBE0:: @ 85CEBE0
.2byte 8
.2byte 5
.2byte 0xFFFF
.2byte 0
gUnknown_085CEBE8:: @ 85CEBE8
.2byte 9
.2byte 5
.2byte 0xFFFF
.2byte 0
gUnknown_085CEBF0:: @ 85CEBF0
.2byte 10
.2byte 5
.2byte 0xFFFF
.2byte 0
gUnknown_085CEBF8:: @ 85CEBF8
.2byte 11
.2byte 5
.2byte 0xFFFF
.2byte 0
gUnknown_085CEC00:: @ 85CEC00
.4byte gUnknown_085CEBE0
.4byte gUnknown_085CEBE8
.4byte gUnknown_085CEBF0
.4byte gUnknown_085CEBF8
gUnknown_085CEC10:: @ 85CEC10
spr_template 0x1595, 0x1596, gUnknown_085CEB98, gUnknown_085CEC00, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
gUnknown_085CEC28:: @ 85CEC28
.4byte 0x1F0
.4byte 0x11E1

View File

@ -38,7 +38,7 @@ FallarborTown_House2_EventScript_2013D6:: @ 82013D6
FallarborTown_House2_EventScript_20140C:: @ 820140C
msgbox FallarborTown_House2_Text_2015C3, 4
special sub_8160638
special TeachMoveTutorMove
waitstate
compare VAR_0x8004, 0
goto_eq FallarborTown_House2_EventScript_2013D6

View File

@ -1,507 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
@ 861CAAC
.include "data/text/nature_names.inc"
.align 2
gUnknown_0861CBB4:: @ 861CBB4
.4byte 0x000001f0, 0x000013b9, 0x0000239a, 0x000033db
.align 2
gUnknown_0861CBC4:: @ 861CBC4
.incbin "graphics/interface/unk_tilemap2.bin"
.align 2
gUnknown_0861CBEC:: @ 861CBEC
.4byte gUnknown_0861CBC4
.byte 0x01, 0x00, 0x0a, 0x02, 0x00, 0x12
.align 2
gUnknown_0861CBF8:: @ 861CBF8
.4byte gUnknown_0861CBC4
.byte 0x01, 0x00, 0x0a, 0x02, 0x00, 0x32
.align 2
gUnknown_0861CC04:: @ 861CC04
.4byte gSummaryScreenPowAcc_Tilemap
.byte 0x00
.byte 0x00
.byte 0x0A
.byte 0x07
.byte 0x00
.byte 0x2D
.align 2
gUnknown_0861CC10:: @ 861CC10
.4byte gUnknown_08DC3C34
.byte 0x00
.byte 0x00
.byte 0x0A
.byte 0x07
.byte 0x00
.byte 0x2D
.align 2
gUnknown_0861CC1C:: @ 861CC1C
.byte 0x00, 0x02, 0x03, 0x01, 0x04, 0x05, 0x00, 0x00
.align 2
gUnknown_0861CC24:: @ 861CC24
window_template 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0001
window_template 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0017
window_template 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x002d
window_template 0x00, 0x00, 0x00, 0x0b, 0x02, 0x06, 0x0043
window_template 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0059
window_template 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0069
window_template 0x00, 0x16, 0x00, 0x08, 0x02, 0x07, 0x0079
window_template 0x00, 0x0b, 0x04, 0x00, 0x02, 0x06, 0x0089
window_template 0x00, 0x0b, 0x04, 0x12, 0x02, 0x06, 0x0089
window_template 0x00, 0x0b, 0x06, 0x12, 0x02, 0x06, 0x00ad
window_template 0x00, 0x0a, 0x07, 0x06, 0x06, 0x06, 0x00d1
window_template 0x00, 0x16, 0x07, 0x05, 0x06, 0x06, 0x00f5
window_template 0x00, 0x0a, 0x0e, 0x0b, 0x04, 0x06, 0x0113
window_template 0x00, 0x00, 0x12, 0x06, 0x02, 0x06, 0x013f
window_template 0x00, 0x01, 0x0f, 0x09, 0x04, 0x06, 0x014b
window_template 0x00, 0x01, 0x0f, 0x05, 0x04, 0x06, 0x016f
window_template 0x00, 0x16, 0x04, 0x00, 0x02, 0x06, 0x0183
window_template 0x00, 0x01, 0x02, 0x04, 0x02, 0x07, 0x0183
window_template 0x00, 0x01, 0x0c, 0x09, 0x02, 0x06, 0x018b
window_template 0x00, 0x01, 0x0e, 0x09, 0x04, 0x06, 0x019d
null_window_template
.align 2
gUnknown_0861CCCC:: @ 861CCCC
window_template 0x00, 0x0b, 0x04, 0x0b, 0x02, 0x06, 0x01c1
window_template 0x00, 0x16, 0x04, 0x07, 0x02, 0x06, 0x01d7
window_template 0x00, 0x0b, 0x09, 0x12, 0x04, 0x06, 0x01e5
window_template 0x00, 0x0b, 0x0e, 0x12, 0x06, 0x06, 0x022d
.align 2
gUnknown_0861CCEC:: @ 861CCEC
window_template 0x00, 0x0a, 0x04, 0x0a, 0x02, 0x06, 0x01c1
window_template 0x00, 0x14, 0x04, 0x0a, 0x02, 0x06, 0x01d5
window_template 0x00, 0x10, 0x07, 0x06, 0x06, 0x06, 0x01e9
window_template 0x00, 0x1b, 0x07, 0x03, 0x06, 0x06, 0x020d
window_template 0x00, 0x18, 0x0e, 0x06, 0x04, 0x06, 0x021f
.align 2
gUnknown_0861CD14:: @ 861CD14
window_template 0x00, 0x0f, 0x04, 0x09, 0x0a, 0x06, 0x01c1
window_template 0x00, 0x18, 0x04, 0x06, 0x0a, 0x08, 0x021b
window_template 0x00, 0x0a, 0x0f, 0x14, 0x04, 0x06, 0x0257
gUnknown_0861CD2C:: @ 861CD2C
.byte 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x00, 0x05, 0x06, 0x00, 0x07, 0x08, 0x00, 0x09, 0x0a, 0x00, 0x0b, 0x0c, 0x00, 0x0d, 0x0e, 0x00, 0x07, 0x08, 0x0d, 0x0f, 0x0e, 0x00, 0x01, 0x02, 0x00, 0x03
.byte 0x04, 0x00, 0x05, 0x06, 0x00, 0x07, 0x08
gUnknown_0861CD53:: @ 861CD53
.incbin "graphics/interface/summary_a_button.4bpp"
gUnknown_0861CDD3:: @ 861CDD3
.incbin "graphics/interface/summary_b_button.4bpp"
.align 2
gUnknown_0861CE54:: @ 861CE54
.4byte sub_81C2E00
.4byte sub_81C3530
.4byte sub_81C3984
.4byte sub_81C3D08
.align 2
gUnknown_0861CE64:: @ 861CE64
.4byte sub_81C2E40
.4byte sub_81C3554
.4byte sub_81C39F0
.4byte sub_81C3D54
gUnknown_0861CE74:: @ 861CE74
.string "{COLOR LIGHT_RED}{SHADOW GREEN}$"
gUnknown_0861CE7B:: @ 861CE7B
.string "{COLOR WHITE}{SHADOW DARK_GREY}$"
gUnknown_0861CE82:: @ 861CE82
.string "{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n"
.string "{SPECIAL_F7 0x02}\n"
.string "{SPECIAL_F7 0x03}$"
gUnknown_0861CE8E:: @ 861CE8E
.string "{SPECIAL_F7 0x00}\n"
.string "{SPECIAL_F7 0x01}\n"
.string "{SPECIAL_F7 0x02}$"
gUnknown_0861CE97:: @ 861CE97
.string "{PP}{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}$"
.align 2
gOamData_861CEA0:: @ 861CEA0
.2byte 0x4000, 0x8000, 0x0400, 0x0000
.align 2
gSpriteAnim_861CEA8:: @ 861CEA8
.2byte 0x0000, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CEB0:: @ 861CEB0
.2byte 0x0008, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CEB8:: @ 861CEB8
.2byte 0x0010, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CEC0:: @ 861CEC0
.2byte 0x0018, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CEC8:: @ 861CEC8
.2byte 0x0020, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CED0:: @ 861CED0
.2byte 0x0028, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CED8:: @ 861CED8
.2byte 0x0030, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CEE0:: @ 861CEE0
.2byte 0x0038, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CEE8:: @ 861CEE8
.2byte 0x0040, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CEF0:: @ 861CEF0
.2byte 0x0048, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CEF8:: @ 861CEF8
.2byte 0x0050, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF00:: @ 861CF00
.2byte 0x0058, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF08:: @ 861CF08
.2byte 0x0060, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF10:: @ 861CF10
.2byte 0x0068, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF18:: @ 861CF18
.2byte 0x0070, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF20:: @ 861CF20
.2byte 0x0078, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF28:: @ 861CF28
.2byte 0x0080, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF30:: @ 861CF30
.2byte 0x0088, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF38:: @ 861CF38
.2byte 0x0090, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF40:: @ 861CF40
.2byte 0x0098, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF48:: @ 861CF48
.2byte 0x00a0, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF50:: @ 861CF50
.2byte 0x00a8, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861CF58:: @ 861CF58
.2byte 0x00b0, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnimTable_861CF60:: @ 861CF60
.4byte gSpriteAnim_861CEA8
.4byte gSpriteAnim_861CEB0
.4byte gSpriteAnim_861CEB8
.4byte gSpriteAnim_861CEC0
.4byte gSpriteAnim_861CEC8
.4byte gSpriteAnim_861CED0
.4byte gSpriteAnim_861CED8
.4byte gSpriteAnim_861CEE0
.4byte gSpriteAnim_861CEE8
.4byte gSpriteAnim_861CEF0
.4byte gSpriteAnim_861CEF8
.4byte gSpriteAnim_861CF00
.4byte gSpriteAnim_861CF08
.4byte gSpriteAnim_861CF10
.4byte gSpriteAnim_861CF18
.4byte gSpriteAnim_861CF20
.4byte gSpriteAnim_861CF28
.4byte gSpriteAnim_861CF30
.4byte gSpriteAnim_861CF38
.4byte gSpriteAnim_861CF40
.4byte gSpriteAnim_861CF48
.4byte gSpriteAnim_861CF50
.4byte gSpriteAnim_861CF58
.align 2
gUnknown_0861CFBC:: @ 861CFBC
obj_tiles gMoveTypes_Gfx, 0x1700, 0x7532
.align 2
gUnknown_0861CFC4:: @ 861CFC4
spr_template 0x7532, 0x7532, gOamData_861CEA0, gSpriteAnimTable_861CF60, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
gUnknown_0861CFDC:: @ 861CFDC
.byte 0x0d, 0x0d, 0x0e, 0x0e, 0x0d, 0x0d, 0x0f, 0x0e, 0x0d, 0x0f, 0x0d, 0x0e, 0x0f, 0x0d, 0x0e, 0x0e, 0x0f, 0x0d, 0x0d, 0x0e, 0x0e, 0x0f, 0x0d, 0x00
.align 2
gOamData_861CFF4:: @ 861CFF4
.2byte 0x0000, 0x4000, 0x0400, 0x0000
.align 2
gSpriteAnim_861CFFC:: @ 861CFFC
.2byte 0x0000, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D004:: @ 861D004
.2byte 0x0004, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D00C:: @ 861D00C
.2byte 0x0008, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D014:: @ 861D014
.2byte 0x000c, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D01C:: @ 861D01C
.2byte 0x0010, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D024:: @ 861D024
.2byte 0x0010, 0x0040, 0xffff, 0x0000
.align 2
gSpriteAnim_861D02C:: @ 861D02C
.2byte 0x0014, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D034:: @ 861D034
.2byte 0x0018, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D03C:: @ 861D03C
.2byte 0x0018, 0x0040, 0xffff, 0x0000
.align 2
gSpriteAnim_861D044:: @ 861D044
.2byte 0x001c, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnimTable_861D04C:: @ 861D04C
.4byte gSpriteAnim_861CFFC
.4byte gSpriteAnim_861D004
.4byte gSpriteAnim_861D00C
.4byte gSpriteAnim_861D014
.4byte gSpriteAnim_861D01C
.4byte gSpriteAnim_861D024
.4byte gSpriteAnim_861D02C
.4byte gSpriteAnim_861D034
.4byte gSpriteAnim_861D03C
.4byte gSpriteAnim_861D044
.align 2
gUnknown_0861D074:: @ 861D074
obj_tiles gUnknown_08D97BEC, 0x0400, 0x7530
.align 2
gUnknown_0861D07C:: @ 861D07C
obj_pal gUnknown_08D97CF4, 0x7530
.align 2
gUnknown_0861D084:: @ 861D084
spr_template 0x7530, 0x7530, gOamData_861CFF4, gSpriteAnimTable_861D04C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gOamData_861D09C:: @ 861D09C
.2byte 0x4000, 0x4000, 0x0c00, 0x0000
.align 2
gSpriteAnim_861D0A4:: @ 861D0A4
.2byte 0x0000, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D0AC:: @ 861D0AC
.2byte 0x0004, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D0B4:: @ 861D0B4
.2byte 0x0008, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D0BC:: @ 861D0BC
.2byte 0x000c, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D0C4:: @ 861D0C4
.2byte 0x0010, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D0CC:: @ 861D0CC
.2byte 0x0014, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnim_861D0D4:: @ 861D0D4
.2byte 0x0018, 0x0000, 0xffff, 0x0000
.align 2
gSpriteAnimTable_861D0DC:: @ 861D0DC
.4byte gSpriteAnim_861D0A4
.4byte gSpriteAnim_861D0AC
.4byte gSpriteAnim_861D0B4
.4byte gSpriteAnim_861D0BC
.4byte gSpriteAnim_861D0C4
.4byte gSpriteAnim_861D0CC
.4byte gSpriteAnim_861D0D4
.align 2
gUnknown_0861D0F8:: @ 861D0F8
obj_tiles gStatusGfx_Icons, 0x0380, 0x7531
.align 2
gUnknown_0861D100:: @ 861D100
obj_pal gStatusPal_Icons, 0x7531
.align 2
gUnknown_0861D108:: @ 861D108
spr_template 0x7531, 0x7531, gOamData_861D09C, gSpriteAnimTable_861D0DC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gUnknown_0861D120:: @ 861D120
.incbin "graphics/interface/summary_markings.gbapal"
.align 2
gUnknown_0861D140:: @ 861D140
.incbin "graphics/interface/region_map.gbapal"
.align 2
gUnknown_0861D1A0:: @ 861D1A0
.incbin "graphics/interface/region_map.8bpp.lz"
.align 2
gUnknown_0861DEF4:: @ 861DEF4
.incbin "graphics/interface/region_map.bin.lz"
.align 2
gUnknown_0861E208:: @ 861E208
.incbin "graphics/interface/region_map_affine.8bpp.lz"
.align 2
gUnknown_0861EF64:: @ 861EF64
.incbin "graphics/interface/region_map_affine.bin.lz"
.align 2
gUnknown_0861F2B4:: @ 861F2B4
.4byte 0x000011f0, 0x000001e1, 0x000021de
.align 2
gUnknown_0861F2C0:: @ 861F2C0
.4byte 0x00000000, sub_81C5460, sub_81C5518, 0x00000000, 0x00080000, 0x07003021
.align 2
gUnknown_0861F2D8:: @ 861F2D8
.4byte gMenuText_Use, sub_81C61E0
.4byte gMenuText_Toss, sub_81C62C4
.4byte gMenuText_Give, sub_81C6648
.4byte gText_Cancel2, sub_81C6258
.4byte gMenuText_Use, sub_81C679C
.4byte gText_EmptyString2, NULL
gUnknown_0861F308:: @ 861F308
.byte 0x00, 0x02, 0x01, 0x03
gUnknown_0861F30C:: @ 861F30C
.byte 0x01, 0x03
gUnknown_0861F30E:: @ 861F30E
.byte 0x04, 0x03
gUnknown_0861F310:: @ 861F310
.byte 0x03, 0x00, 0x00, 0x00
gUnknown_0861F314:: @ 861F314
.4byte sub_81C654C
.4byte sub_81C63D0
gUnknown_0861F31C:: @ 861F31C
.byte 0x00, 0x02, 0x03, 0x00, 0x03, 0x01, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00
.align 2
gUnknown_0861F328:: @ 861F328
window_template 0x00, 0x0e, 0x02, 0x0f, 0x10, 0x0f, 0x001e
window_template 0x00, 0x00, 0x0d, 0x0e, 0x06, 0x0f, 0x010e
window_template 0x01, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x0162
window_template 0x01, 0x18, 0x11, 0x05, 0x02, 0x0f, 0x01ce
null_window_template
.align 2
gUnknown_0861F350:: @ 861F350
window_template 0x01, 0x16, 0x11, 0x07, 0x02, 0x0f, 0x01d8
window_template 0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01d8
window_template 0x01, 0x0f, 0x0f, 0x0e, 0x04, 0x0f, 0x01d8
window_template 0x01, 0x0f, 0x0d, 0x0e, 0x06, 0x0f, 0x01d8
.align 2
gUnknown_0861F370:: @ 861F370
window_template 0x01, 0x18, 0x0f, 0x05, 0x04, 0x0f, 0x01d8
.align 2
gOamData_861F378:: @ 861F378
.2byte 0x0100, 0xc000, 0x0400, 0x0000
.align 2
gSpriteAnim_861F380:: @ 861F380
.2byte 0x0000, 0x0004, 0xffff, 0x0000
.align 2
gSpriteAnimTable_861F388:: @ 861F388
.4byte gSpriteAnim_861F380
.align 2
gSpriteAffineAnim_861F38C:: @ 861F38C
.2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gSpriteAffineAnim_861F39C:: @ 861F39C
.2byte 0x0000, 0x0000, 0x02fe, 0x0000, 0x0000, 0x0000, 0x0402, 0x0000, 0x0000, 0x0000, 0x04fe, 0x0000, 0x0000, 0x0000, 0x0202, 0x0000
.2byte 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gSpriteAffineAnimTable_861F3C4:: @ 861F3C4
.4byte gSpriteAffineAnim_861F38C
.4byte gSpriteAffineAnim_861F39C
.align 2
gUnknown_0861F3CC:: @ 861F3CC
obj_tiles gBattleFrontierGfx_PyramidBag, 0x0800, 0x1024
.align 2
gUnknown_0861F3D4:: @ 861F3D4
spr_template 0x1024, 0x1024, gOamData_861F378, gSpriteAnimTable_861F388, NULL, gSpriteAffineAnimTable_861F3C4, SpriteCallbackDummy

View File

@ -235,7 +235,7 @@ gSpecials:: @ 81DBA64
def_special sub_81B9770
def_special sub_81B9718
def_special sub_81B96D0
def_special sub_8160638
def_special TeachMoveTutorMove
def_special GetRecordedCyclingRoadResults
def_special Special_BeginCyclingRoadChallenge
def_special GetPlayerAvatarBike

View File

@ -1,102 +0,0 @@
gHardyNatureName:: @ 861CAAC
.string "HARDY$"
gLonelyNatureName:: @ 861CAB2
.string "LONELY$"
gBraveNatureName:: @ 861CAB9
.string "BRAVE$"
gAdamantNatureName:: @ 861CABF
.string "ADAMANT$"
gNaughtyNatureName:: @ 861CAC7
.string "NAUGHTY$"
gBoldNatureName:: @ 861CACF
.string "BOLD$"
gDocileNatureName:: @ 861CAD4
.string "DOCILE$"
gRelaxedNatureName:: @ 861CADB
.string "RELAXED$"
gImpishNatureName:: @ 861CAE3
.string "IMPISH$"
gLaxNatureName:: @ 861CAEA
.string "LAX$"
gTimidNatureName:: @ 861CAEE
.string "TIMID$"
gHastyNatureName:: @ 861CAF4
.string "HASTY$"
gSeriousNatureName:: @ 861CAFA
.string "SERIOUS$"
gJollyNatureName:: @ 861CB02
.string "JOLLY$"
gNaiveNatureName:: @ 861CB08
.string "NAIVE$"
gModestNatureName:: @ 861CB0E
.string "MODEST$"
gMildNatureName:: @ 861CB15
.string "MILD$"
gQuietNatureName:: @ 861CB1A
.string "QUIET$"
gBashfulNatureName:: @ 861CB20
.string "BASHFUL$"
gRashNatureName:: @ 861CB28
.string "RASH$"
gCalmNatureName:: @ 861CB2D
.string "CALM$"
gGentleNatureName:: @ 861CB32
.string "GENTLE$"
gSassyNatureName:: @ 861CB39
.string "SASSY$"
gCarefulNatureName:: @ 861CB3F
.string "CAREFUL$"
gQuirkyNatureName:: @ 861CB47
.string "QUIRKY$"
.align 2
gNatureNamePointers:: @ 861CB50
.4byte gHardyNatureName
.4byte gLonelyNatureName
.4byte gBraveNatureName
.4byte gAdamantNatureName
.4byte gNaughtyNatureName
.4byte gBoldNatureName
.4byte gDocileNatureName
.4byte gRelaxedNatureName
.4byte gImpishNatureName
.4byte gLaxNatureName
.4byte gTimidNatureName
.4byte gHastyNatureName
.4byte gSeriousNatureName
.4byte gJollyNatureName
.4byte gNaiveNatureName
.4byte gModestNatureName
.4byte gMildNatureName
.4byte gQuietNatureName
.4byte gBashfulNatureName
.4byte gRashNatureName
.4byte gCalmNatureName
.4byte gGentleNatureName
.4byte gSassyNatureName
.4byte gCarefulNatureName
.4byte gQuirkyNatureName

BIN
graphics/pokedex/arrows.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

View File

@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_CONTROLLERS_H
#define GUARD_BATTLE_CONTROLLERS_H
#include "battle.h"
enum
{
REQUEST_ALL_BATTLE,

View File

@ -11,5 +11,6 @@ void sub_81AA078(u16*, u8);
void sub_81A4C30(void);
void sub_819A4F8(void);
void sub_819DC00(void);
bool8 sub_81A6BF4(void);
#endif // GUARD_BATTLE_FRONTIER_2_H

6
include/battle_tent.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef GUARD_BATTLE_TENT_H
#define GUARD_BATTLE_TENT_H
bool8 sub_81B9E94(void);
#endif //GUARD_BATTLE_TENT_H

View File

@ -216,4 +216,8 @@
#define MAPSEC_TRAINER_HILL 0xD4
#define MAPSEC_NONE 0xD5
#define MAPSEC_SPECIAL_EGG 0xFD
#define MAPSEC_IN_GAME_TRADE 0xFE
#define MAPSEC_FATEFUL_ENCOUNTER 0xFF
#endif //GUARD_REGIONMAPSEC_H

View File

@ -447,4 +447,836 @@
#define NUM_SPECIES SPECIES_EGG
// National Dex Index Defines
#define NATIONAL_DEX_BULBASAUR 1
#define NATIONAL_DEX_IVYSAUR 2
#define NATIONAL_DEX_VENUSAUR 3
#define NATIONAL_DEX_CHARMANDER 4
#define NATIONAL_DEX_CHARMELEON 5
#define NATIONAL_DEX_CHARIZARD 6
#define NATIONAL_DEX_SQUIRTLE 7
#define NATIONAL_DEX_WARTORTLE 8
#define NATIONAL_DEX_BLASTOISE 9
#define NATIONAL_DEX_CATERPIE 10
#define NATIONAL_DEX_METAPOD 11
#define NATIONAL_DEX_BUTTERFREE 12
#define NATIONAL_DEX_WEEDLE 13
#define NATIONAL_DEX_KAKUNA 14
#define NATIONAL_DEX_BEEDRILL 15
#define NATIONAL_DEX_PIDGEY 16
#define NATIONAL_DEX_PIDGEOTTO 17
#define NATIONAL_DEX_PIDGEOT 18
#define NATIONAL_DEX_RATTATA 19
#define NATIONAL_DEX_RATICATE 20
#define NATIONAL_DEX_SPEAROW 21
#define NATIONAL_DEX_FEAROW 22
#define NATIONAL_DEX_EKANS 23
#define NATIONAL_DEX_ARBOK 24
#define NATIONAL_DEX_PIKACHU 25
#define NATIONAL_DEX_RAICHU 26
#define NATIONAL_DEX_SANDSHREW 27
#define NATIONAL_DEX_SANDSLASH 28
#define NATIONAL_DEX_NIDORAN_F 29
#define NATIONAL_DEX_NIDORINA 30
#define NATIONAL_DEX_NIDOQUEEN 31
#define NATIONAL_DEX_NIDORAN_M 32
#define NATIONAL_DEX_NIDORINO 33
#define NATIONAL_DEX_NIDOKING 34
#define NATIONAL_DEX_CLEFAIRY 35
#define NATIONAL_DEX_CLEFABLE 36
#define NATIONAL_DEX_VULPIX 37
#define NATIONAL_DEX_NINETALES 38
#define NATIONAL_DEX_JIGGLYPUFF 39
#define NATIONAL_DEX_WIGGLYTUFF 40
#define NATIONAL_DEX_ZUBAT 41
#define NATIONAL_DEX_GOLBAT 42
#define NATIONAL_DEX_ODDISH 43
#define NATIONAL_DEX_GLOOM 44
#define NATIONAL_DEX_VILEPLUME 45
#define NATIONAL_DEX_PARAS 46
#define NATIONAL_DEX_PARASECT 47
#define NATIONAL_DEX_VENONAT 48
#define NATIONAL_DEX_VENOMOTH 49
#define NATIONAL_DEX_DIGLETT 50
#define NATIONAL_DEX_DUGTRIO 51
#define NATIONAL_DEX_MEOWTH 52
#define NATIONAL_DEX_PERSIAN 53
#define NATIONAL_DEX_PSYDUCK 54
#define NATIONAL_DEX_GOLDUCK 55
#define NATIONAL_DEX_MANKEY 56
#define NATIONAL_DEX_PRIMEAPE 57
#define NATIONAL_DEX_GROWLITHE 58
#define NATIONAL_DEX_ARCANINE 59
#define NATIONAL_DEX_POLIWAG 60
#define NATIONAL_DEX_POLIWHIRL 61
#define NATIONAL_DEX_POLIWRATH 62
#define NATIONAL_DEX_ABRA 63
#define NATIONAL_DEX_KADABRA 64
#define NATIONAL_DEX_ALAKAZAM 65
#define NATIONAL_DEX_MACHOP 66
#define NATIONAL_DEX_MACHOKE 67
#define NATIONAL_DEX_MACHAMP 68
#define NATIONAL_DEX_BELLSPROUT 69
#define NATIONAL_DEX_WEEPINBELL 70
#define NATIONAL_DEX_VICTREEBEL 71
#define NATIONAL_DEX_TENTACOOL 72
#define NATIONAL_DEX_TENTACRUEL 73
#define NATIONAL_DEX_GEODUDE 74
#define NATIONAL_DEX_GRAVELER 75
#define NATIONAL_DEX_GOLEM 76
#define NATIONAL_DEX_PONYTA 77
#define NATIONAL_DEX_RAPIDASH 78
#define NATIONAL_DEX_SLOWPOKE 79
#define NATIONAL_DEX_SLOWBRO 80
#define NATIONAL_DEX_MAGNEMITE 81
#define NATIONAL_DEX_MAGNETON 82
#define NATIONAL_DEX_FARFETCHD 83
#define NATIONAL_DEX_DODUO 84
#define NATIONAL_DEX_DODRIO 85
#define NATIONAL_DEX_SEEL 86
#define NATIONAL_DEX_DEWGONG 87
#define NATIONAL_DEX_GRIMER 88
#define NATIONAL_DEX_MUK 89
#define NATIONAL_DEX_SHELLDER 90
#define NATIONAL_DEX_CLOYSTER 91
#define NATIONAL_DEX_GASTLY 92
#define NATIONAL_DEX_HAUNTER 93
#define NATIONAL_DEX_GENGAR 94
#define NATIONAL_DEX_ONIX 95
#define NATIONAL_DEX_DROWZEE 96
#define NATIONAL_DEX_HYPNO 97
#define NATIONAL_DEX_KRABBY 98
#define NATIONAL_DEX_KINGLER 99
#define NATIONAL_DEX_VOLTORB 100
#define NATIONAL_DEX_ELECTRODE 101
#define NATIONAL_DEX_EXEGGCUTE 102
#define NATIONAL_DEX_EXEGGUTOR 103
#define NATIONAL_DEX_CUBONE 104
#define NATIONAL_DEX_MAROWAK 105
#define NATIONAL_DEX_HITMONLEE 106
#define NATIONAL_DEX_HITMONCHAN 107
#define NATIONAL_DEX_LICKITUNG 108
#define NATIONAL_DEX_KOFFING 109
#define NATIONAL_DEX_WEEZING 110
#define NATIONAL_DEX_RHYHORN 111
#define NATIONAL_DEX_RHYDON 112
#define NATIONAL_DEX_CHANSEY 113
#define NATIONAL_DEX_TANGELA 114
#define NATIONAL_DEX_KANGASKHAN 115
#define NATIONAL_DEX_HORSEA 116
#define NATIONAL_DEX_SEADRA 117
#define NATIONAL_DEX_GOLDEEN 118
#define NATIONAL_DEX_SEAKING 119
#define NATIONAL_DEX_STARYU 120
#define NATIONAL_DEX_STARMIE 121
#define NATIONAL_DEX_MR_MIME 122
#define NATIONAL_DEX_SCYTHER 123
#define NATIONAL_DEX_JYNX 124
#define NATIONAL_DEX_ELECTABUZZ 125
#define NATIONAL_DEX_MAGMAR 126
#define NATIONAL_DEX_PINSIR 127
#define NATIONAL_DEX_TAUROS 128
#define NATIONAL_DEX_MAGIKARP 129
#define NATIONAL_DEX_GYARADOS 130
#define NATIONAL_DEX_LAPRAS 131
#define NATIONAL_DEX_DITTO 132
#define NATIONAL_DEX_EEVEE 133
#define NATIONAL_DEX_VAPOREON 134
#define NATIONAL_DEX_JOLTEON 135
#define NATIONAL_DEX_FLAREON 136
#define NATIONAL_DEX_PORYGON 137
#define NATIONAL_DEX_OMANYTE 138
#define NATIONAL_DEX_OMASTAR 139
#define NATIONAL_DEX_KABUTO 140
#define NATIONAL_DEX_KABUTOPS 141
#define NATIONAL_DEX_AERODACTYL 142
#define NATIONAL_DEX_SNORLAX 143
#define NATIONAL_DEX_ARTICUNO 144
#define NATIONAL_DEX_ZAPDOS 145
#define NATIONAL_DEX_MOLTRES 146
#define NATIONAL_DEX_DRATINI 147
#define NATIONAL_DEX_DRAGONAIR 148
#define NATIONAL_DEX_DRAGONITE 149
#define NATIONAL_DEX_MEWTWO 150
#define NATIONAL_DEX_MEW 151
#define NATIONAL_DEX_CHIKORITA 152
#define NATIONAL_DEX_BAYLEEF 153
#define NATIONAL_DEX_MEGANIUM 154
#define NATIONAL_DEX_CYNDAQUIL 155
#define NATIONAL_DEX_QUILAVA 156
#define NATIONAL_DEX_TYPHLOSION 157
#define NATIONAL_DEX_TOTODILE 158
#define NATIONAL_DEX_CROCONAW 159
#define NATIONAL_DEX_FERALIGATR 160
#define NATIONAL_DEX_SENTRET 161
#define NATIONAL_DEX_FURRET 162
#define NATIONAL_DEX_HOOTHOOT 163
#define NATIONAL_DEX_NOCTOWL 164
#define NATIONAL_DEX_LEDYBA 165
#define NATIONAL_DEX_LEDIAN 166
#define NATIONAL_DEX_SPINARAK 167
#define NATIONAL_DEX_ARIADOS 168
#define NATIONAL_DEX_CROBAT 169
#define NATIONAL_DEX_CHINCHOU 170
#define NATIONAL_DEX_LANTURN 171
#define NATIONAL_DEX_PICHU 172
#define NATIONAL_DEX_CLEFFA 173
#define NATIONAL_DEX_IGGLYBUFF 174
#define NATIONAL_DEX_TOGEPI 175
#define NATIONAL_DEX_TOGETIC 176
#define NATIONAL_DEX_NATU 177
#define NATIONAL_DEX_XATU 178
#define NATIONAL_DEX_MAREEP 179
#define NATIONAL_DEX_FLAAFFY 180
#define NATIONAL_DEX_AMPHAROS 181
#define NATIONAL_DEX_BELLOSSOM 182
#define NATIONAL_DEX_MARILL 183
#define NATIONAL_DEX_AZUMARILL 184
#define NATIONAL_DEX_SUDOWOODO 185
#define NATIONAL_DEX_POLITOED 186
#define NATIONAL_DEX_HOPPIP 187
#define NATIONAL_DEX_SKIPLOOM 188
#define NATIONAL_DEX_JUMPLUFF 189
#define NATIONAL_DEX_AIPOM 190
#define NATIONAL_DEX_SUNKERN 191
#define NATIONAL_DEX_SUNFLORA 192
#define NATIONAL_DEX_YANMA 193
#define NATIONAL_DEX_WOOPER 194
#define NATIONAL_DEX_QUAGSIRE 195
#define NATIONAL_DEX_ESPEON 196
#define NATIONAL_DEX_UMBREON 197
#define NATIONAL_DEX_MURKROW 198
#define NATIONAL_DEX_SLOWKING 199
#define NATIONAL_DEX_MISDREAVUS 200
#define NATIONAL_DEX_UNOWN 201
#define NATIONAL_DEX_WOBBUFFET 202
#define NATIONAL_DEX_GIRAFARIG 203
#define NATIONAL_DEX_PINECO 204
#define NATIONAL_DEX_FORRETRESS 205
#define NATIONAL_DEX_DUNSPARCE 206
#define NATIONAL_DEX_GLIGAR 207
#define NATIONAL_DEX_STEELIX 208
#define NATIONAL_DEX_SNUBBULL 209
#define NATIONAL_DEX_GRANBULL 210
#define NATIONAL_DEX_QWILFISH 211
#define NATIONAL_DEX_SCIZOR 212
#define NATIONAL_DEX_SHUCKLE 213
#define NATIONAL_DEX_HERACROSS 214
#define NATIONAL_DEX_SNEASEL 215
#define NATIONAL_DEX_TEDDIURSA 216
#define NATIONAL_DEX_URSARING 217
#define NATIONAL_DEX_SLUGMA 218
#define NATIONAL_DEX_MAGCARGO 219
#define NATIONAL_DEX_SWINUB 220
#define NATIONAL_DEX_PILOSWINE 221
#define NATIONAL_DEX_CORSOLA 222
#define NATIONAL_DEX_REMORAID 223
#define NATIONAL_DEX_OCTILLERY 224
#define NATIONAL_DEX_DELIBIRD 225
#define NATIONAL_DEX_MANTINE 226
#define NATIONAL_DEX_SKARMORY 227
#define NATIONAL_DEX_HOUNDOUR 228
#define NATIONAL_DEX_HOUNDOOM 229
#define NATIONAL_DEX_KINGDRA 230
#define NATIONAL_DEX_PHANPY 231
#define NATIONAL_DEX_DONPHAN 232
#define NATIONAL_DEX_PORYGON2 233
#define NATIONAL_DEX_STANTLER 234
#define NATIONAL_DEX_SMEARGLE 235
#define NATIONAL_DEX_TYROGUE 236
#define NATIONAL_DEX_HITMONTOP 237
#define NATIONAL_DEX_SMOOCHUM 238
#define NATIONAL_DEX_ELEKID 239
#define NATIONAL_DEX_MAGBY 240
#define NATIONAL_DEX_MILTANK 241
#define NATIONAL_DEX_BLISSEY 242
#define NATIONAL_DEX_RAIKOU 243
#define NATIONAL_DEX_ENTEI 244
#define NATIONAL_DEX_SUICUNE 245
#define NATIONAL_DEX_LARVITAR 246
#define NATIONAL_DEX_PUPITAR 247
#define NATIONAL_DEX_TYRANITAR 248
#define NATIONAL_DEX_LUGIA 249
#define NATIONAL_DEX_HO_OH 250
#define NATIONAL_DEX_CELEBI 251
#define NATIONAL_DEX_OLD_UNOWN_B 387
#define NATIONAL_DEX_OLD_UNOWN_C 388
#define NATIONAL_DEX_OLD_UNOWN_D 389
#define NATIONAL_DEX_OLD_UNOWN_E 390
#define NATIONAL_DEX_OLD_UNOWN_F 391
#define NATIONAL_DEX_OLD_UNOWN_G 392
#define NATIONAL_DEX_OLD_UNOWN_H 393
#define NATIONAL_DEX_OLD_UNOWN_I 394
#define NATIONAL_DEX_OLD_UNOWN_J 395
#define NATIONAL_DEX_OLD_UNOWN_K 396
#define NATIONAL_DEX_OLD_UNOWN_L 397
#define NATIONAL_DEX_OLD_UNOWN_M 398
#define NATIONAL_DEX_OLD_UNOWN_N 399
#define NATIONAL_DEX_OLD_UNOWN_O 400
#define NATIONAL_DEX_OLD_UNOWN_P 401
#define NATIONAL_DEX_OLD_UNOWN_Q 402
#define NATIONAL_DEX_OLD_UNOWN_R 403
#define NATIONAL_DEX_OLD_UNOWN_S 404
#define NATIONAL_DEX_OLD_UNOWN_T 405
#define NATIONAL_DEX_OLD_UNOWN_U 406
#define NATIONAL_DEX_OLD_UNOWN_V 407
#define NATIONAL_DEX_OLD_UNOWN_W 408
#define NATIONAL_DEX_OLD_UNOWN_X 409
#define NATIONAL_DEX_OLD_UNOWN_Y 410
#define NATIONAL_DEX_OLD_UNOWN_Z 411
#define NATIONAL_DEX_TREECKO 252
#define NATIONAL_DEX_GROVYLE 253
#define NATIONAL_DEX_SCEPTILE 254
#define NATIONAL_DEX_TORCHIC 255
#define NATIONAL_DEX_COMBUSKEN 256
#define NATIONAL_DEX_BLAZIKEN 257
#define NATIONAL_DEX_MUDKIP 258
#define NATIONAL_DEX_MARSHTOMP 259
#define NATIONAL_DEX_SWAMPERT 260
#define NATIONAL_DEX_POOCHYENA 261
#define NATIONAL_DEX_MIGHTYENA 262
#define NATIONAL_DEX_ZIGZAGOON 263
#define NATIONAL_DEX_LINOONE 264
#define NATIONAL_DEX_WURMPLE 265
#define NATIONAL_DEX_SILCOON 266
#define NATIONAL_DEX_BEAUTIFLY 267
#define NATIONAL_DEX_CASCOON 268
#define NATIONAL_DEX_DUSTOX 269
#define NATIONAL_DEX_LOTAD 270
#define NATIONAL_DEX_LOMBRE 271
#define NATIONAL_DEX_LUDICOLO 272
#define NATIONAL_DEX_SEEDOT 273
#define NATIONAL_DEX_NUZLEAF 274
#define NATIONAL_DEX_SHIFTRY 275
#define NATIONAL_DEX_NINCADA 290
#define NATIONAL_DEX_NINJASK 291
#define NATIONAL_DEX_SHEDINJA 292
#define NATIONAL_DEX_TAILLOW 276
#define NATIONAL_DEX_SWELLOW 277
#define NATIONAL_DEX_SHROOMISH 285
#define NATIONAL_DEX_BRELOOM 286
#define NATIONAL_DEX_SPINDA 327
#define NATIONAL_DEX_WINGULL 278
#define NATIONAL_DEX_PELIPPER 279
#define NATIONAL_DEX_SURSKIT 283
#define NATIONAL_DEX_MASQUERAIN 284
#define NATIONAL_DEX_WAILMER 320
#define NATIONAL_DEX_WAILORD 321
#define NATIONAL_DEX_SKITTY 300
#define NATIONAL_DEX_DELCATTY 301
#define NATIONAL_DEX_KECLEON 352
#define NATIONAL_DEX_BALTOY 343
#define NATIONAL_DEX_CLAYDOL 344
#define NATIONAL_DEX_NOSEPASS 299
#define NATIONAL_DEX_TORKOAL 324
#define NATIONAL_DEX_SABLEYE 302
#define NATIONAL_DEX_BARBOACH 339
#define NATIONAL_DEX_WHISCASH 340
#define NATIONAL_DEX_LUVDISC 370
#define NATIONAL_DEX_CORPHISH 341
#define NATIONAL_DEX_CRAWDAUNT 342
#define NATIONAL_DEX_FEEBAS 349
#define NATIONAL_DEX_MILOTIC 350
#define NATIONAL_DEX_CARVANHA 318
#define NATIONAL_DEX_SHARPEDO 319
#define NATIONAL_DEX_TRAPINCH 328
#define NATIONAL_DEX_VIBRAVA 329
#define NATIONAL_DEX_FLYGON 330
#define NATIONAL_DEX_MAKUHITA 296
#define NATIONAL_DEX_HARIYAMA 297
#define NATIONAL_DEX_ELECTRIKE 309
#define NATIONAL_DEX_MANECTRIC 310
#define NATIONAL_DEX_NUMEL 322
#define NATIONAL_DEX_CAMERUPT 323
#define NATIONAL_DEX_SPHEAL 363
#define NATIONAL_DEX_SEALEO 364
#define NATIONAL_DEX_WALREIN 365
#define NATIONAL_DEX_CACNEA 331
#define NATIONAL_DEX_CACTURNE 332
#define NATIONAL_DEX_SNORUNT 361
#define NATIONAL_DEX_GLALIE 362
#define NATIONAL_DEX_LUNATONE 337
#define NATIONAL_DEX_SOLROCK 338
#define NATIONAL_DEX_AZURILL 298
#define NATIONAL_DEX_SPOINK 325
#define NATIONAL_DEX_GRUMPIG 326
#define NATIONAL_DEX_PLUSLE 311
#define NATIONAL_DEX_MINUN 312
#define NATIONAL_DEX_MAWILE 303
#define NATIONAL_DEX_MEDITITE 307
#define NATIONAL_DEX_MEDICHAM 308
#define NATIONAL_DEX_SWABLU 333
#define NATIONAL_DEX_ALTARIA 334
#define NATIONAL_DEX_WYNAUT 360
#define NATIONAL_DEX_DUSKULL 355
#define NATIONAL_DEX_DUSCLOPS 356
#define NATIONAL_DEX_ROSELIA 315
#define NATIONAL_DEX_SLAKOTH 287
#define NATIONAL_DEX_VIGOROTH 288
#define NATIONAL_DEX_SLAKING 289
#define NATIONAL_DEX_GULPIN 316
#define NATIONAL_DEX_SWALOT 317
#define NATIONAL_DEX_TROPIUS 357
#define NATIONAL_DEX_WHISMUR 293
#define NATIONAL_DEX_LOUDRED 294
#define NATIONAL_DEX_EXPLOUD 295
#define NATIONAL_DEX_CLAMPERL 366
#define NATIONAL_DEX_HUNTAIL 367
#define NATIONAL_DEX_GOREBYSS 368
#define NATIONAL_DEX_ABSOL 359
#define NATIONAL_DEX_SHUPPET 353
#define NATIONAL_DEX_BANETTE 354
#define NATIONAL_DEX_SEVIPER 336
#define NATIONAL_DEX_ZANGOOSE 335
#define NATIONAL_DEX_RELICANTH 369
#define NATIONAL_DEX_ARON 304
#define NATIONAL_DEX_LAIRON 305
#define NATIONAL_DEX_AGGRON 306
#define NATIONAL_DEX_CASTFORM 351
#define NATIONAL_DEX_VOLBEAT 313
#define NATIONAL_DEX_ILLUMISE 314
#define NATIONAL_DEX_LILEEP 345
#define NATIONAL_DEX_CRADILY 346
#define NATIONAL_DEX_ANORITH 347
#define NATIONAL_DEX_ARMALDO 348
#define NATIONAL_DEX_RALTS 280
#define NATIONAL_DEX_KIRLIA 281
#define NATIONAL_DEX_GARDEVOIR 282
#define NATIONAL_DEX_BAGON 371
#define NATIONAL_DEX_SHELGON 372
#define NATIONAL_DEX_SALAMENCE 373
#define NATIONAL_DEX_BELDUM 374
#define NATIONAL_DEX_METANG 375
#define NATIONAL_DEX_METAGROSS 376
#define NATIONAL_DEX_REGIROCK 377
#define NATIONAL_DEX_REGICE 378
#define NATIONAL_DEX_REGISTEEL 379
#define NATIONAL_DEX_KYOGRE 382
#define NATIONAL_DEX_GROUDON 383
#define NATIONAL_DEX_RAYQUAZA 384
#define NATIONAL_DEX_LATIAS 380
#define NATIONAL_DEX_LATIOS 381
#define NATIONAL_DEX_JIRACHI 385
#define NATIONAL_DEX_DEOXYS 386
#define NATIONAL_DEX_CHIMECHO 358
// Hoenn Dex Index Defines
#define HOENN_DEX_BULBASAUR 203
#define HOENN_DEX_IVYSAUR 204
#define HOENN_DEX_VENUSAUR 205
#define HOENN_DEX_CHARMANDER 206
#define HOENN_DEX_CHARMELEON 207
#define HOENN_DEX_CHARIZARD 208
#define HOENN_DEX_SQUIRTLE 209
#define HOENN_DEX_WARTORTLE 210
#define HOENN_DEX_BLASTOISE 211
#define HOENN_DEX_CATERPIE 212
#define HOENN_DEX_METAPOD 213
#define HOENN_DEX_BUTTERFREE 214
#define HOENN_DEX_WEEDLE 215
#define HOENN_DEX_KAKUNA 216
#define HOENN_DEX_BEEDRILL 217
#define HOENN_DEX_PIDGEY 218
#define HOENN_DEX_PIDGEOTTO 219
#define HOENN_DEX_PIDGEOT 220
#define HOENN_DEX_RATTATA 221
#define HOENN_DEX_RATICATE 222
#define HOENN_DEX_SPEAROW 223
#define HOENN_DEX_FEAROW 224
#define HOENN_DEX_EKANS 225
#define HOENN_DEX_ARBOK 226
#define HOENN_DEX_PIKACHU 156
#define HOENN_DEX_RAICHU 157
#define HOENN_DEX_SANDSHREW 112
#define HOENN_DEX_SANDSLASH 113
#define HOENN_DEX_NIDORAN_F 227
#define HOENN_DEX_NIDORINA 228
#define HOENN_DEX_NIDOQUEEN 229
#define HOENN_DEX_NIDORAN_M 230
#define HOENN_DEX_NIDORINO 231
#define HOENN_DEX_NIDOKING 232
#define HOENN_DEX_CLEFAIRY 233
#define HOENN_DEX_CLEFABLE 234
#define HOENN_DEX_VULPIX 153
#define HOENN_DEX_NINETALES 154
#define HOENN_DEX_JIGGLYPUFF 138
#define HOENN_DEX_WIGGLYTUFF 139
#define HOENN_DEX_ZUBAT 63
#define HOENN_DEX_GOLBAT 64
#define HOENN_DEX_ODDISH 88
#define HOENN_DEX_GLOOM 89
#define HOENN_DEX_VILEPLUME 90
#define HOENN_DEX_PARAS 235
#define HOENN_DEX_PARASECT 236
#define HOENN_DEX_VENONAT 237
#define HOENN_DEX_VENOMOTH 238
#define HOENN_DEX_DIGLETT 239
#define HOENN_DEX_DUGTRIO 240
#define HOENN_DEX_MEOWTH 241
#define HOENN_DEX_PERSIAN 242
#define HOENN_DEX_PSYDUCK 158
#define HOENN_DEX_GOLDUCK 159
#define HOENN_DEX_MANKEY 243
#define HOENN_DEX_PRIMEAPE 244
#define HOENN_DEX_GROWLITHE 245
#define HOENN_DEX_ARCANINE 246
#define HOENN_DEX_POLIWAG 247
#define HOENN_DEX_POLIWHIRL 248
#define HOENN_DEX_POLIWRATH 249
#define HOENN_DEX_ABRA 39
#define HOENN_DEX_KADABRA 40
#define HOENN_DEX_ALAKAZAM 41
#define HOENN_DEX_MACHOP 73
#define HOENN_DEX_MACHOKE 74
#define HOENN_DEX_MACHAMP 75
#define HOENN_DEX_BELLSPROUT 250
#define HOENN_DEX_WEEPINBELL 251
#define HOENN_DEX_VICTREEBEL 252
#define HOENN_DEX_TENTACOOL 66
#define HOENN_DEX_TENTACRUEL 67
#define HOENN_DEX_GEODUDE 57
#define HOENN_DEX_GRAVELER 58
#define HOENN_DEX_GOLEM 59
#define HOENN_DEX_PONYTA 253
#define HOENN_DEX_RAPIDASH 254
#define HOENN_DEX_SLOWPOKE 255
#define HOENN_DEX_SLOWBRO 256
#define HOENN_DEX_MAGNEMITE 82
#define HOENN_DEX_MAGNETON 83
#define HOENN_DEX_FARFETCHD 257
#define HOENN_DEX_DODUO 92
#define HOENN_DEX_DODRIO 93
#define HOENN_DEX_SEEL 258
#define HOENN_DEX_DEWGONG 259
#define HOENN_DEX_GRIMER 106
#define HOENN_DEX_MUK 107
#define HOENN_DEX_SHELLDER 260
#define HOENN_DEX_CLOYSTER 261
#define HOENN_DEX_GASTLY 262
#define HOENN_DEX_HAUNTER 263
#define HOENN_DEX_GENGAR 264
#define HOENN_DEX_ONIX 265
#define HOENN_DEX_DROWZEE 266
#define HOENN_DEX_HYPNO 267
#define HOENN_DEX_KRABBY 268
#define HOENN_DEX_KINGLER 269
#define HOENN_DEX_VOLTORB 84
#define HOENN_DEX_ELECTRODE 85
#define HOENN_DEX_EXEGGCUTE 270
#define HOENN_DEX_EXEGGUTOR 271
#define HOENN_DEX_CUBONE 272
#define HOENN_DEX_MAROWAK 273
#define HOENN_DEX_HITMONLEE 274
#define HOENN_DEX_HITMONCHAN 275
#define HOENN_DEX_LICKITUNG 276
#define HOENN_DEX_KOFFING 108
#define HOENN_DEX_WEEZING 109
#define HOENN_DEX_RHYHORN 169
#define HOENN_DEX_RHYDON 170
#define HOENN_DEX_CHANSEY 277
#define HOENN_DEX_TANGELA 278
#define HOENN_DEX_KANGASKHAN 279
#define HOENN_DEX_HORSEA 184
#define HOENN_DEX_SEADRA 185
#define HOENN_DEX_GOLDEEN 50
#define HOENN_DEX_SEAKING 51
#define HOENN_DEX_STARYU 143
#define HOENN_DEX_STARMIE 144
#define HOENN_DEX_MR_MIME 280
#define HOENN_DEX_SCYTHER 281
#define HOENN_DEX_JYNX 282
#define HOENN_DEX_ELECTABUZZ 283
#define HOENN_DEX_MAGMAR 284
#define HOENN_DEX_PINSIR 167
#define HOENN_DEX_TAUROS 285
#define HOENN_DEX_MAGIKARP 52
#define HOENN_DEX_GYARADOS 53
#define HOENN_DEX_LAPRAS 286
#define HOENN_DEX_DITTO 287
#define HOENN_DEX_EEVEE 288
#define HOENN_DEX_VAPOREON 289
#define HOENN_DEX_JOLTEON 290
#define HOENN_DEX_FLAREON 291
#define HOENN_DEX_PORYGON 292
#define HOENN_DEX_OMANYTE 293
#define HOENN_DEX_OMASTAR 294
#define HOENN_DEX_KABUTO 295
#define HOENN_DEX_KABUTOPS 296
#define HOENN_DEX_AERODACTYL 297
#define HOENN_DEX_SNORLAX 298
#define HOENN_DEX_ARTICUNO 299
#define HOENN_DEX_ZAPDOS 300
#define HOENN_DEX_MOLTRES 301
#define HOENN_DEX_DRATINI 302
#define HOENN_DEX_DRAGONAIR 303
#define HOENN_DEX_DRAGONITE 304
#define HOENN_DEX_MEWTWO 305
#define HOENN_DEX_MEW 306
#define HOENN_DEX_CHIKORITA 307
#define HOENN_DEX_BAYLEEF 308
#define HOENN_DEX_MEGANIUM 309
#define HOENN_DEX_CYNDAQUIL 310
#define HOENN_DEX_QUILAVA 311
#define HOENN_DEX_TYPHLOSION 312
#define HOENN_DEX_TOTODILE 313
#define HOENN_DEX_CROCONAW 314
#define HOENN_DEX_FERALIGATR 315
#define HOENN_DEX_SENTRET 316
#define HOENN_DEX_FURRET 317
#define HOENN_DEX_HOOTHOOT 318
#define HOENN_DEX_NOCTOWL 319
#define HOENN_DEX_LEDYBA 320
#define HOENN_DEX_LEDIAN 321
#define HOENN_DEX_SPINARAK 322
#define HOENN_DEX_ARIADOS 323
#define HOENN_DEX_CROBAT 65
#define HOENN_DEX_CHINCHOU 181
#define HOENN_DEX_LANTURN 182
#define HOENN_DEX_PICHU 155
#define HOENN_DEX_CLEFFA 324
#define HOENN_DEX_IGGLYBUFF 137
#define HOENN_DEX_TOGEPI 325
#define HOENN_DEX_TOGETIC 326
#define HOENN_DEX_NATU 162
#define HOENN_DEX_XATU 163
#define HOENN_DEX_MAREEP 327
#define HOENN_DEX_FLAAFFY 328
#define HOENN_DEX_AMPHAROS 329
#define HOENN_DEX_BELLOSSOM 91
#define HOENN_DEX_MARILL 55
#define HOENN_DEX_AZUMARILL 56
#define HOENN_DEX_SUDOWOODO 330
#define HOENN_DEX_POLITOED 331
#define HOENN_DEX_HOPPIP 332
#define HOENN_DEX_SKIPLOOM 333
#define HOENN_DEX_JUMPLUFF 334
#define HOENN_DEX_AIPOM 335
#define HOENN_DEX_SUNKERN 336
#define HOENN_DEX_SUNFLORA 337
#define HOENN_DEX_YANMA 338
#define HOENN_DEX_WOOPER 339
#define HOENN_DEX_QUAGSIRE 340
#define HOENN_DEX_ESPEON 341
#define HOENN_DEX_UMBREON 342
#define HOENN_DEX_MURKROW 343
#define HOENN_DEX_SLOWKING 344
#define HOENN_DEX_MISDREAVUS 345
#define HOENN_DEX_UNOWN 346
#define HOENN_DEX_WOBBUFFET 161
#define HOENN_DEX_GIRAFARIG 164
#define HOENN_DEX_PINECO 347
#define HOENN_DEX_FORRETRESS 348
#define HOENN_DEX_DUNSPARCE 349
#define HOENN_DEX_GLIGAR 350
#define HOENN_DEX_STEELIX 351
#define HOENN_DEX_SNUBBULL 352
#define HOENN_DEX_GRANBULL 353
#define HOENN_DEX_QWILFISH 354
#define HOENN_DEX_SCIZOR 355
#define HOENN_DEX_SHUCKLE 356
#define HOENN_DEX_HERACROSS 168
#define HOENN_DEX_SNEASEL 357
#define HOENN_DEX_TEDDIURSA 358
#define HOENN_DEX_URSARING 359
#define HOENN_DEX_SLUGMA 103
#define HOENN_DEX_MAGCARGO 104
#define HOENN_DEX_SWINUB 360
#define HOENN_DEX_PILOSWINE 361
#define HOENN_DEX_CORSOLA 180
#define HOENN_DEX_REMORAID 362
#define HOENN_DEX_OCTILLERY 363
#define HOENN_DEX_DELIBIRD 364
#define HOENN_DEX_MANTINE 365
#define HOENN_DEX_SKARMORY 115
#define HOENN_DEX_HOUNDOUR 366
#define HOENN_DEX_HOUNDOOM 367
#define HOENN_DEX_KINGDRA 186
#define HOENN_DEX_PHANPY 165
#define HOENN_DEX_DONPHAN 166
#define HOENN_DEX_PORYGON2 368
#define HOENN_DEX_STANTLER 369
#define HOENN_DEX_SMEARGLE 370
#define HOENN_DEX_TYROGUE 371
#define HOENN_DEX_HITMONTOP 372
#define HOENN_DEX_SMOOCHUM 373
#define HOENN_DEX_ELEKID 374
#define HOENN_DEX_MAGBY 375
#define HOENN_DEX_MILTANK 376
#define HOENN_DEX_BLISSEY 377
#define HOENN_DEX_RAIKOU 378
#define HOENN_DEX_ENTEI 379
#define HOENN_DEX_SUICUNE 380
#define HOENN_DEX_LARVITAR 381
#define HOENN_DEX_PUPITAR 382
#define HOENN_DEX_TYRANITAR 383
#define HOENN_DEX_LUGIA 384
#define HOENN_DEX_HO_OH 385
#define HOENN_DEX_CELEBI 386
#define HOENN_DEX_OLD_UNOWN_B 387
#define HOENN_DEX_OLD_UNOWN_C 388
#define HOENN_DEX_OLD_UNOWN_D 389
#define HOENN_DEX_OLD_UNOWN_E 390
#define HOENN_DEX_OLD_UNOWN_F 391
#define HOENN_DEX_OLD_UNOWN_G 392
#define HOENN_DEX_OLD_UNOWN_H 393
#define HOENN_DEX_OLD_UNOWN_I 394
#define HOENN_DEX_OLD_UNOWN_J 395
#define HOENN_DEX_OLD_UNOWN_K 396
#define HOENN_DEX_OLD_UNOWN_L 397
#define HOENN_DEX_OLD_UNOWN_M 398
#define HOENN_DEX_OLD_UNOWN_N 399
#define HOENN_DEX_OLD_UNOWN_O 400
#define HOENN_DEX_OLD_UNOWN_P 401
#define HOENN_DEX_OLD_UNOWN_Q 402
#define HOENN_DEX_OLD_UNOWN_R 403
#define HOENN_DEX_OLD_UNOWN_S 404
#define HOENN_DEX_OLD_UNOWN_T 405
#define HOENN_DEX_OLD_UNOWN_U 406
#define HOENN_DEX_OLD_UNOWN_V 407
#define HOENN_DEX_OLD_UNOWN_W 408
#define HOENN_DEX_OLD_UNOWN_X 409
#define HOENN_DEX_OLD_UNOWN_Y 410
#define HOENN_DEX_OLD_UNOWN_Z 411
#define HOENN_DEX_TREECKO 1
#define HOENN_DEX_GROVYLE 2
#define HOENN_DEX_SCEPTILE 3
#define HOENN_DEX_TORCHIC 4
#define HOENN_DEX_COMBUSKEN 5
#define HOENN_DEX_BLAZIKEN 6
#define HOENN_DEX_MUDKIP 7
#define HOENN_DEX_MARSHTOMP 8
#define HOENN_DEX_SWAMPERT 9
#define HOENN_DEX_POOCHYENA 10
#define HOENN_DEX_MIGHTYENA 11
#define HOENN_DEX_ZIGZAGOON 12
#define HOENN_DEX_LINOONE 13
#define HOENN_DEX_WURMPLE 14
#define HOENN_DEX_SILCOON 15
#define HOENN_DEX_BEAUTIFLY 16
#define HOENN_DEX_CASCOON 17
#define HOENN_DEX_DUSTOX 18
#define HOENN_DEX_LOTAD 19
#define HOENN_DEX_LOMBRE 20
#define HOENN_DEX_LUDICOLO 21
#define HOENN_DEX_SEEDOT 22
#define HOENN_DEX_NUZLEAF 23
#define HOENN_DEX_SHIFTRY 24
#define HOENN_DEX_NINCADA 42
#define HOENN_DEX_NINJASK 43
#define HOENN_DEX_SHEDINJA 44
#define HOENN_DEX_TAILLOW 25
#define HOENN_DEX_SWELLOW 26
#define HOENN_DEX_SHROOMISH 34
#define HOENN_DEX_BRELOOM 35
#define HOENN_DEX_SPINDA 114
#define HOENN_DEX_WINGULL 27
#define HOENN_DEX_PELIPPER 28
#define HOENN_DEX_SURSKIT 32
#define HOENN_DEX_MASQUERAIN 33
#define HOENN_DEX_WAILMER 99
#define HOENN_DEX_WAILORD 100
#define HOENN_DEX_SKITTY 61
#define HOENN_DEX_DELCATTY 62
#define HOENN_DEX_KECLEON 145
#define HOENN_DEX_BALTOY 131
#define HOENN_DEX_CLAYDOL 132
#define HOENN_DEX_NOSEPASS 60
#define HOENN_DEX_TORKOAL 105
#define HOENN_DEX_SABLEYE 68
#define HOENN_DEX_BARBOACH 127
#define HOENN_DEX_WHISCASH 128
#define HOENN_DEX_LUVDISC 183
#define HOENN_DEX_CORPHISH 129
#define HOENN_DEX_CRAWDAUNT 130
#define HOENN_DEX_FEEBAS 140
#define HOENN_DEX_MILOTIC 141
#define HOENN_DEX_CARVANHA 97
#define HOENN_DEX_SHARPEDO 98
#define HOENN_DEX_TRAPINCH 116
#define HOENN_DEX_VIBRAVA 117
#define HOENN_DEX_FLYGON 118
#define HOENN_DEX_MAKUHITA 48
#define HOENN_DEX_HARIYAMA 49
#define HOENN_DEX_ELECTRIKE 78
#define HOENN_DEX_MANECTRIC 79
#define HOENN_DEX_NUMEL 101
#define HOENN_DEX_CAMERUPT 102
#define HOENN_DEX_SPHEAL 173
#define HOENN_DEX_SEALEO 174
#define HOENN_DEX_WALREIN 175
#define HOENN_DEX_CACNEA 119
#define HOENN_DEX_CACTURNE 120
#define HOENN_DEX_SNORUNT 171
#define HOENN_DEX_GLALIE 172
#define HOENN_DEX_LUNATONE 125
#define HOENN_DEX_SOLROCK 126
#define HOENN_DEX_AZURILL 54
#define HOENN_DEX_SPOINK 110
#define HOENN_DEX_GRUMPIG 111
#define HOENN_DEX_PLUSLE 80
#define HOENN_DEX_MINUN 81
#define HOENN_DEX_MAWILE 69
#define HOENN_DEX_MEDITITE 76
#define HOENN_DEX_MEDICHAM 77
#define HOENN_DEX_SWABLU 121
#define HOENN_DEX_ALTARIA 122
#define HOENN_DEX_WYNAUT 160
#define HOENN_DEX_DUSKULL 148
#define HOENN_DEX_DUSCLOPS 149
#define HOENN_DEX_ROSELIA 94
#define HOENN_DEX_SLAKOTH 36
#define HOENN_DEX_VIGOROTH 37
#define HOENN_DEX_SLAKING 38
#define HOENN_DEX_GULPIN 95
#define HOENN_DEX_SWALOT 96
#define HOENN_DEX_TROPIUS 150
#define HOENN_DEX_WHISMUR 45
#define HOENN_DEX_LOUDRED 46
#define HOENN_DEX_EXPLOUD 47
#define HOENN_DEX_CLAMPERL 176
#define HOENN_DEX_HUNTAIL 177
#define HOENN_DEX_GOREBYSS 178
#define HOENN_DEX_ABSOL 152
#define HOENN_DEX_SHUPPET 146
#define HOENN_DEX_BANETTE 147
#define HOENN_DEX_SEVIPER 124
#define HOENN_DEX_ZANGOOSE 123
#define HOENN_DEX_RELICANTH 179
#define HOENN_DEX_ARON 70
#define HOENN_DEX_LAIRON 71
#define HOENN_DEX_AGGRON 72
#define HOENN_DEX_CASTFORM 142
#define HOENN_DEX_VOLBEAT 86
#define HOENN_DEX_ILLUMISE 87
#define HOENN_DEX_LILEEP 133
#define HOENN_DEX_CRADILY 134
#define HOENN_DEX_ANORITH 135
#define HOENN_DEX_ARMALDO 136
#define HOENN_DEX_RALTS 29
#define HOENN_DEX_KIRLIA 30
#define HOENN_DEX_GARDEVOIR 31
#define HOENN_DEX_BAGON 187
#define HOENN_DEX_SHELGON 188
#define HOENN_DEX_SALAMENCE 189
#define HOENN_DEX_BELDUM 190
#define HOENN_DEX_METANG 191
#define HOENN_DEX_METAGROSS 192
#define HOENN_DEX_REGIROCK 193
#define HOENN_DEX_REGICE 194
#define HOENN_DEX_REGISTEEL 195
#define HOENN_DEX_KYOGRE 198
#define HOENN_DEX_GROUDON 199
#define HOENN_DEX_RAYQUAZA 200
#define HOENN_DEX_LATIAS 196
#define HOENN_DEX_LATIOS 197
#define HOENN_DEX_JIRACHI 201
#define HOENN_DEX_DEOXYS 202
#define HOENN_DEX_CHIMECHO 151
#endif // GUARD_CONSTANTS_SPECIES_H

View File

@ -341,7 +341,8 @@ struct UnknownContestStruct7
u8 contestant;
};
struct ContestAIInfo {
struct ContestAIInfo
{
/*0x00*/ u8 aiState;
/*0x02*/ u16 unk2;
/*0x04*/ u8 unk4;
@ -352,9 +353,9 @@ struct ContestAIInfo {
/*0x14*/ u32 flags;
/*0x18*/ s16 scriptResult;
/*0x1A*/ s16 scriptArr[3];
/*0x20*/ u32 stack[8];
/*0x40*/ u8 unk40;
/*0x41*/ u8 unk41;
/*0x20*/ const u8 *stack[8];
/*0x40*/ u8 stackSize;
/*0x41*/ u8 contestantId;
};
struct UnknownContestStruct5
@ -406,7 +407,7 @@ extern struct ContestResources *gContestResources;
#define sContest (*gContestResources->field_0)
#define sContestantStatus (gContestResources->field_4)
#define shared192D0 (*gContestResources->field_8)
#define eContestAI (*gContestResources->field_C)
#define eContestAI (gContestResources->field_C)
#define shared19328 (*gContestResources->field_10)
#define shared19338 (*gContestResources->field_14)
@ -424,5 +425,6 @@ void MakeContestantNervous(u8 p);
bool8 Contest_IsMonsTurnDisabled(u8 a);
bool8 sub_80DE1E8(u8 a);
void SetStartledString(u8 a, u8 b);
s8 Contest_GetMoveExcitement(u16);
#endif //GUARD_CONTEST_H

16
include/contest_ai.h Normal file
View File

@ -0,0 +1,16 @@
#ifndef GUARD_CONTESTAI_H
#define GUARD_CONTESTAI_H
// AI states
enum
{
CONTESTAI_SETTING_UP,
CONTESTAI_PROCESSING,
CONTESTAI_FINISHED,
CONTESTAI_DO_NOT_PROCESS
};
void ContestAI_ResetAI(u8);
u8 ContestAI_GetActionToUse(void);
#endif // GUARD_CONTESTAI_H

View File

@ -18,5 +18,8 @@ struct ContestEffect
extern const struct ContestMove gContestMoves[];
extern const struct ContestEffect gContestEffects[];
extern const u8 *const gContestEffectDescriptionPointers[];
bool8 AreMovesContestCombo(u16 lastMove, u16 nextMove);
#endif //GUARD_CONTEST_EFFECT_H

View File

@ -3382,4 +3382,24 @@ extern const u8 gCreditsCopyrightEnd_Gfx[];
extern const u8 gPokenavConditionMarker_Gfx[];
extern const u16 gPokenavConditionMarker_Pal[];
extern const u8 gUnknown_08D9862C[];
extern const u8 gUnknown_08D98CC8[];
extern const u8 gUnknown_08D987FC[];
extern const u8 gUnknown_08D9898C[];
extern const u8 gUnknown_08D98B28[];
extern const u8 gUnknown_08D9853C[];
extern const u8 gUnknown_08D85620[];
extern const u16 gSummaryScreenWindow_Tilemap[];
extern const u16 gMoveTypes_Pal[];
extern const u8 gUnknown_08D97D0C[];
extern const u16 gSummaryScreenPowAcc_Tilemap[];
extern const u16 gUnknown_08DC3C34[];
extern const u8 gMoveTypes_Gfx[];
extern const u8 gUnknown_08D97BEC[];
extern const u8 gUnknown_08D97CF4[];
extern const u8 gStatusGfx_Icons[];
extern const u8 gStatusPal_Icons[];
#endif //GUARD_GRAPHICS_H

7
include/learn_move.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef GUARD_LEARN_MOVE_H
#define GUARD_LEARN_MOVE_H
void TeachMoveTutorMove(void);
void ShowHideHearts(s32);
#endif //GUARD_LEARN_MOVE_H

View File

@ -1,6 +1,8 @@
#ifndef GUARD_LIST_MENU_H
#define GUARD_LIST_MENU_H
#include "window.h"
#define LIST_NOTHING_CHOSEN -1
#define LIST_B_PRESSED -2
#define LIST_HEADER -3

View File

@ -17,6 +17,7 @@ void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo);
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern struct MusicPlayerInfo gMPlayInfo_SE1;
extern struct MusicPlayerInfo gMPlayInfo_SE2;
extern struct MusicPlayerInfo gMPlayInfo_SE3;

View File

@ -46,7 +46,7 @@ void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs);
u8 InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 windowId, u8 numItems, u8 initialCursorPos);
u8 GetMenuCursorPos(void);
s8 ProcessMenuInput(void);
s8 ProcessMenuInputNoWrapAround(void);
s8 Menu_ProcessInputNoWrapAround(void);
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void reset_temp_tile_data_buffers(void);
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode);
@ -54,7 +54,7 @@ bool8 free_temp_tile_data_buffers_if_possible(void);
struct WindowTemplate CreateWindowTemplate(u8, u8, u8, u8, u8, u8, u16);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode);
s8 ProcessMenuInputNoWrap_(void);
s8 Menu_ProcessInputNoWrap_(void);
s8 ProcessMenuInput_other(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
@ -85,5 +85,7 @@ void RemoveMapNamePopUpWindow(void);
u8 GetMapNamePopUpWindowId(void);
u8 AddMapNamePopUpWindow(void);
void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing);
void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP);
#endif // GUARD_MENU_H

View File

@ -2,6 +2,7 @@
#define GUARD_MENU_HELPERS_H
#include "task.h"
#include "window.h"
// Exported type declarations

View File

@ -21,4 +21,6 @@ struct PokemonMarkMenu
/*0x10B4*/ u8 tileLoadState;
}; // 10b8
struct Sprite *sub_811FF94(u16 tileTag, u16 paletteTag, const u16 *palette);
#endif //POKEEMERALD_MON_MARKINGS_H

View File

@ -57,5 +57,8 @@ u8 sub_81B1360(void);
void sub_81B8904(u8 arg0, void (*callback)(void));
void OpenPartyMenuInBattle(u8 caseId);
u16 ItemIdToBattleMoveId(u16 itemId);
u8 sub_81B205C(struct Pokemon* a);
u8 sub_81B6D14(u16 a);
bool8 hm_add_c3_without_phase_2(void);
#endif // GUARD_PARTY_MENU_H

View File

@ -18,6 +18,8 @@ enum
POKEBALL_COUNT
};
extern const struct SpriteTemplate gBallSpriteTemplates[];
#define POKEBALL_PLAYER_SENDOUT 0xFF
#define POKEBALL_OPPONENT_SENDOUT 0xFE

View File

@ -83,5 +83,6 @@ void CompactPartySlots(void);
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
bool8 CheckFreePokemonStorageSpace(void);
u8 StorageGetCurrentBox(void);
u8 sub_80D214C(struct BoxPokemon *a, u8 b, u8 c, u8 d);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H

View File

@ -2,5 +2,24 @@
#define GUARD_POKEMON_SUMMARY_SCREEN_H
void sub_81C4F98(u8, void(*)(void));
void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16);
// The Pokemon Summary Screen can operate in different modes. Certain features,
// such as move re-ordering, are available in the different modes.
enum PokemonSummaryScreenMode
{
PSS_MODE_NORMAL,
PSS_MODE_UNK1,
PSS_MODE_UNK2,
PSS_MODE_SELECT_MOVE,
};
enum PokemonSummaryScreenPage
{
PSS_PAGE_INFO,
PSS_PAGE_SKILLS,
PSS_PAGE_BATTLE_MOVES,
PSS_PAGE_CONTEST_MOVES,
};
#endif // GUARD_POKEMON_SUMMARY_SCREEN_H

View File

@ -1,6 +1,7 @@
#ifndef GUARD_POKENAV_H
#define GUARD_POKENAV_H
#include "player_pc.h"
#include "list_menu.h"
bool8 sub_81D5C18(void);
bool8 sub_81D20BC(void *arg0);
@ -22,6 +23,10 @@ void sub_81D1D04(u8);
bool8 sub_81D1C44(u8);
void sub_81D5FB4(u16*);
bool8 sub_81D4A58(struct EventObject*);
void sub_81D2BF4(u8 *);
u16 sub_81D2C3C(void);
void sub_81D2C50(void);
u8 sub_81D28C8(const struct ListMenuItem *items, u16 numChoices);
void sub_81D2824(u16);
#endif //GUARD_POKENAV_H

View File

@ -94,5 +94,6 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag);
u8 *GetMapName(u8 *, u16, u16);
bool32 sub_8124668(u8 mapSecId);
u8 *sub_81245DC(u8 *dest, u16 mapSecId);
u8 *sub_8124610(u8 *dest, u16 mapSecId);
#endif //GUARD_REGION_MAP_H

View File

@ -766,4 +766,62 @@ extern const u8 gText_Winona[];
extern const u8 gText_Phoebe[];
extern const u8 gText_Glacia[];
extern const u8 gText_PkmnLearnedMove4[];
extern const u8 gText_PkmnTryingToLearnMove[];
extern const u8 gText_WhichMoveToForget2[];
extern const u8 gText_StopTryingToTeachMove[];
extern const u8 gText_12AndPoof[];
extern const u8 gText_PkmnForgotMoveAndLearnedNew[];
extern const u8 gText_TeachWhichMoveToPkmn[];
extern const u8 gText_GiveUpTeachingNewMove[];
extern const u8 gText_TeachX[];
extern const u8 gText_LevelSymbol[];
extern const u8 gText_PkmnInfo[];
extern const u8 gText_PkmnSkills[];
extern const u8 gText_BattleMoves[];
extern const u8 gText_ContestMoves[];
extern const u8 gText_HMMovesCantBeForgotten2[];
extern const u8 gText_Info[];
extern const u8 gText_Switch[];
extern const u8 gText_RentalPkmn[];
extern const u8 gText_TypeSlash[];
extern const u8 gText_HP4[];
extern const u8 gText_Attack3[];
extern const u8 gText_Defense3[];
extern const u8 gText_SpAtk4[];
extern const u8 gText_SpDef4[];
extern const u8 gText_Speed2[];
extern const u8 gText_ExpPoints[];
extern const u8 gText_NextLv[];
extern const u8 gText_Status[];
extern const u8 gText_Power[];
extern const u8 gText_Accuracy2[];
extern const u8 gText_Appeal[];
extern const u8 gText_Jam[];
extern const u8 gText_OTSlash[];
extern const u8 gText_UnkCtrlF907F908[];
extern const u8 gText_XNature[];
extern const u8 gText_XNatureHatchedAtYZ[];
extern const u8 gText_XNatureHatchedSomewhereAt[];
extern const u8 gText_XNatureMetAtYZ[];
extern const u8 gText_XNatureMetSomewhereAt[];
extern const u8 gText_XNatureFatefulEncounter[];
extern const u8 gText_XNatureProbablyMetAt[];
extern const u8 gText_XNatureObtainedInTrade[];
extern const u8 gText_EmptyString5[];
extern const u8 gText_EggWillTakeALongTime[];
extern const u8 gText_EggAboutToHatch[];
extern const u8 gText_EggWillHatchSoon[];
extern const u8 gText_EggWillTakeSomeTime[];
extern const u8 gText_PeculiarEggNicePlace[];
extern const u8 gText_PeculiarEggTrade[];
extern const u8 gText_EggFromTraveler[];
extern const u8 gText_EggFromHotSprings[];
extern const u8 gText_OddEggFoundByCouple[];
extern const u8 gText_None[];
extern const u8 gText_RibbonsVar1[];
extern const u8 gText_OneDash[];
extern const u8 gText_TwoDashes[];
#endif //GUARD_STRINGS_H

View File

@ -203,12 +203,12 @@ SECTIONS {
src/save.o(.text);
src/mystery_event_script.o(.text);
asm/field_effect_helpers.o(.text);
asm/contest_ai.o(.text);
src/contest_ai.o(.text);
src/battle_anim_sound_tasks.o(.text);
src/battle_controller_safari.o(.text);
src/fldeff_sweetscent.o(.text);
asm/battle_anim_815A0D4.o(.text);
asm/learn_move.o(.text);
src/learn_move.o(.text);
src/fldeff_softboiled.o(.text);
src/decoration_inventory.o(.text);
src/roamer.o(.text);
@ -262,7 +262,9 @@ SECTIONS {
asm/fossil_specials.o(.text);
src/berry_fix_program.o(.text);
src/pokemon_summary_screen.o(.text);
asm/pokemon_summary_screen.o(.text);
src/unk_pokedex_area_screen_helper.o(.text);
src/battle_pyramid.o(.text);
asm/battle_pyramid.o(.text);
asm/pokenav.o(.text);
src/match_call.o(.text);
asm/pokenav.o(.text.after.match.call);
@ -488,10 +490,10 @@ SECTIONS {
data/cable_car.o(.rodata);
src/save.o(.rodata);
data/field_effect_helpers.o(.rodata);
data/contest_ai.o(.rodata);
src/contest_ai.o(.rodata);
src/battle_controller_safari.o(.rodata);
data/battle_anim_815A0D4.o(.rodata);
data/learn_move.o(.rodata);
src/learn_move.o(.rodata);
src/roamer.o(.rodata);
data/battle_tower.o(.rodata);
src/use_pokeblock.o(.rodata);
@ -537,7 +539,8 @@ SECTIONS {
src/fldeff_groundshake.o(.rodata);
src/berry_fix_program.o(.rodata);
src/pokemon_summary_screen.o(.rodata);
data/pokemon_summary_screen.o(.rodata);
src/unk_pokedex_area_screen_helper.o(.rodata);
data/battle_pyramid.o(.rodata);
data/pokenav.o(.rodata);
src/match_call.o(.rodata);
data/pokenav.o(.rodata.after.match.call);

248
src/battle_pyramid.c Normal file
View File

@ -0,0 +1,248 @@
#include "global.h"
#include "main.h"
#include "battle_controllers.h"
#include "bg.h"
#include "field_effect.h"
#include "field_weather.h"
#include "gpu_regs.h"
#include "malloc.h"
#include "menu.h"
#include "menu_helpers.h"
#include "overworld.h"
#include "palette.h"
#include "party_menu.h"
#include "scanline_effect.h"
#include "script.h"
#include "task.h"
#include "constants/rgb.h"
EWRAM_DATA struct
{
u32 unk0;
u8 filler4[0x804 - 0x4];
u8 unk804[11];
u8 unk80F[5];
u8 unk814;
u8 filler815;
s8 unk816;
u8 filler817[0x984 - 0x817];
u16 unk984;
u8 filler986[0x98C - 0x986];
} *gUnknown_0203CF2C = NULL;
EWRAM_DATA struct
{
void (*callback)(void);
u8 unk4;
u16 unk6;
u16 unk8;
} gUnknown_0203CF30 = {0};
extern const struct BgTemplate gUnknown_0861F2B4[3];
void sub_81C4F98(u8 a0, void (*callback)(void));
void sub_81C4F44(u8 taskId);
void sub_81C504C(void);
bool8 sub_81C5078(void);
void sub_81C51DC(void);
bool8 sub_81C5238(void);
void sub_81C5314(void);
void sub_81C5674(void);
void sub_81C56F8(void);
void sub_81C5924(void);
void sub_81C59BC(void);
void sub_81C5A20(void);
void sub_81C6BD8(void);
void sub_81C6EF4(void);
void sub_81C700C(void);
void sub_81C4EEC(void)
{
gUnknown_0203CF30.unk6 = 0;
gUnknown_0203CF30.unk8 = 0;
}
void sub_81C4EFC(void)
{
sub_81C4F98(0, CB2_ReturnToFieldWithOpenMenu);
}
void sub_81C4F10(void)
{
sub_81C4F98(1, SetCB2ToReshowScreenAfterMenu2);
}
void sub_81C4F24(void)
{
ScriptContext2_Enable();
FadeScreen(1, 0);
CreateTask(sub_81C4F44, 10);
}
void sub_81C4F44(u8 taskId)
{
if (!gPaletteFade.active)
{
overworld_free_bg_tilemaps();
gFieldCallback2 = hm_add_c3_without_phase_2;
sub_81C4F98(3, CB2_ReturnToField);
DestroyTask(taskId);
}
}
void sub_81C4F84(void)
{
sub_81C4F98(4, gUnknown_0203CF30.callback);
}
void sub_81C4F98(u8 a0, void (*callback)(void))
{
gUnknown_0203CF2C = AllocZeroed(sizeof(*gUnknown_0203CF2C));
if (a0 != 4)
{
gUnknown_0203CF30.unk4 = a0;
}
if (callback != NULL)
{
gUnknown_0203CF30.callback = callback;
}
gUnknown_0203CF2C->unk0 = 0;
gUnknown_0203CF2C->unk814 = -1;
gUnknown_0203CF2C->unk816 = -1;
memset(gUnknown_0203CF2C->unk804, 0xFF, sizeof(gUnknown_0203CF2C->unk804));
memset(gUnknown_0203CF2C->unk80F, 0xFF, sizeof(gUnknown_0203CF2C->unk80F));
SetMainCallback2(sub_81C504C);
}
void sub_81C501C(void)
{
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
UpdatePaletteFade();
}
void sub_81C5038(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
void sub_81C504C(void)
{
while (sub_81221EC() != TRUE && sub_81C5078() != TRUE && sub_81221AC() != TRUE);
}
bool8 sub_81C5078(void)
{
switch (gMain.state)
{
case 0:
SetVBlankHBlankCallbacksToNull();
clear_scheduled_bg_copies_to_vram();
gMain.state++;
break;
case 1:
ScanlineEffect_Stop();
gMain.state++;
break;
case 2:
FreeAllSpritePalettes();
gMain.state++;
break;
case 3:
ResetPaletteFade();
gPaletteFade.bufferTransferDisabled = TRUE;
gMain.state++;
break;
case 4:
ResetSpriteData();
gMain.state++;
break;
case 5:
if (!sub_81221AC())
{
ResetTasks();
}
gMain.state++;
break;
case 6:
sub_81C51DC();
gUnknown_0203CF2C->unk984 = 0;
gMain.state++;
break;
case 7:
if (sub_81C5238())
{
gMain.state++;
}
break;
case 8:
sub_81C6BD8();
gMain.state++;
break;
case 9:
sub_81C5924();
sub_81C59BC();
sub_81C5A20();
gMain.state++;
break;
case 10:
sub_81C5314();
gMain.state++;
break;
case 11:
sub_81C56F8();
gMain.state++;
break;
case 12:
sub_81C6EF4();
gMain.state++;
break;
case 13:
sub_81C5674();
gMain.state++;
break;
case 14:
sub_81C700C();
gMain.state++;
break;
case 15:
BlendPalettes(0xFFFFFFFF, 0x10, 0);
gMain.state++;
break;
case 16:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
gPaletteFade.bufferTransferDisabled = FALSE;
gMain.state++;
break;
default:
SetVBlankCallback(sub_81C5038);
SetMainCallback2(sub_81C501C);
return TRUE;
}
return FALSE;
}
void sub_81C51DC(void)
{
ResetVramOamAndBgCntRegs();
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, gUnknown_0861F2B4, ARRAY_COUNT(gUnknown_0861F2B4));
SetBgTilemapBuffer(2, gUnknown_0203CF2C->filler4);
ResetAllBgsCoordinates();
schedule_bg_copy_tilemap_to_vram(2);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 |
DISPCNT_OBJ_1D_MAP |
DISPCNT_OBJ_ON);
ShowBg(0);
ShowBg(1);
ShowBg(2);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
}

View File

@ -55,7 +55,7 @@ extern const u8* const gBattleScriptsForMoveEffects[];
// functions
extern void sub_81A5718(u8 battlerId); // battle frontier 2
extern void sub_81A56B4(void); // battle frontier 2
extern void sub_81BFA38(struct Pokemon* party, u8 monPartyId, u8 monCount, void (*callback)(void), u16 move); // pokemon summary screen
extern void ShowSelectMovePokemonSummaryScreen(struct Pokemon* party, u8 monPartyId, u8 monCount, void (*callback)(void), u16 move); // pokemon summary screen
extern u8 sub_81C1B94(void); // pokemon summary screen
extern void sub_81D388C(struct Pokemon* mon, void* statStoreLocation); // pokenav.s
extern void sub_81D3640(u8 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); // pokenav.s
@ -5732,7 +5732,7 @@ static void atk5A_yesnoboxlearnmove(void)
if (!gPaletteFade.active)
{
FreeAllWindowBuffers();
sub_81BFA38(gPlayerParty, gBattleStruct->expGetterMonId, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn);
ShowSelectMovePokemonSummaryScreen(gPlayerParty, gBattleStruct->expGetterMonId, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn);
gBattleScripting.learnMoveState++;
}
break;

View File

@ -2436,7 +2436,7 @@ static void CB2_HandleBlenderEndGame(void)
sBerryBlenderData->gameEndState++;
break;
case 10:
switch (ProcessMenuInputNoWrap_())
switch (Menu_ProcessInputNoWrap_())
{
case 1:
case -1:

View File

@ -86,7 +86,7 @@ static void Task_DoClearSaveDataScreenYesNo(u8 taskId)
static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId)
{
switch(ProcessMenuInputNoWrap_())
switch(Menu_ProcessInputNoWrap_())
{
case 0:
FillWindowPixelBuffer(0, 17);

1756
src/contest_ai.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,54 @@
static const u8 sHardyNatureName[] = _("HARDY");
static const u8 sLonelyNatureName[] = _("LONELY");
static const u8 sBraveNatureName[] = _("BRAVE");
static const u8 sAdamantNatureName[] = _("ADAMANT");
static const u8 sNaughtyNatureName[] = _("NAUGHTY");
static const u8 sBoldNatureName[] = _("BOLD");
static const u8 sDocileNatureName[] = _("DOCILE");
static const u8 sRelaxedNatureName[] = _("RELAXED");
static const u8 sImpishNatureName[] = _("IMPISH");
static const u8 sLaxNatureName[] = _("LAX");
static const u8 sTimidNatureName[] = _("TIMID");
static const u8 sHastyNatureName[] = _("HASTY");
static const u8 sSeriousNatureName[] = _("SERIOUS");
static const u8 sJollyNatureName[] = _("JOLLY");
static const u8 sNaiveNatureName[] = _("NAIVE");
static const u8 sModestNatureName[] = _("MODEST");
static const u8 sMildNatureName[] = _("MILD");
static const u8 sQuietNatureName[] = _("QUIET");
static const u8 sBashfulNatureName[] = _("BASHFUL");
static const u8 sRashNatureName[] = _("RASH");
static const u8 sCalmNatureName[] = _("CALM");
static const u8 sGentleNatureName[] = _("GENTLE");
static const u8 sSassyNatureName[] = _("SASSY");
static const u8 sCarefulNatureName[] = _("CAREFUL");
static const u8 sQuirkyNatureName[] = _("QUIRKY");
const u8 *const gNatureNamePointers[] =
{
[NATURE_HARDY] = sHardyNatureName,
[NATURE_LONELY] = sLonelyNatureName,
[NATURE_BRAVE] = sBraveNatureName,
[NATURE_ADAMANT] = sAdamantNatureName,
[NATURE_NAUGHTY] = sNaughtyNatureName,
[NATURE_BOLD] = sBoldNatureName,
[NATURE_DOCILE] = sDocileNatureName,
[NATURE_RELAXED] = sRelaxedNatureName,
[NATURE_IMPISH] = sImpishNatureName,
[NATURE_LAX] = sLaxNatureName,
[NATURE_TIMID] = sTimidNatureName,
[NATURE_HASTY] = sHastyNatureName,
[NATURE_SERIOUS] = sSeriousNatureName,
[NATURE_JOLLY] = sJollyNatureName,
[NATURE_NAIVE] = sNaiveNatureName,
[NATURE_MODEST] = sModestNatureName,
[NATURE_MILD] = sMildNatureName,
[NATURE_QUIET] = sQuietNatureName,
[NATURE_BASHFUL] = sBashfulNatureName,
[NATURE_RASH] = sRashNatureName,
[NATURE_CALM] = sCalmNatureName,
[NATURE_GENTLE] = sGentleNatureName,
[NATURE_SASSY] = sSassyNatureName,
[NATURE_CAREFUL] = sCarefulNatureName,
[NATURE_QUIRKY] = sQuirkyNatureName,
};

View File

@ -659,7 +659,7 @@ static void CB2_EggHatch_1(void)
}
break;
case 10:
switch (ProcessMenuInputNoWrap_())
switch (Menu_ProcessInputNoWrap_())
{
case 0:
GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3);

View File

@ -168,8 +168,8 @@ u16 *GetVarPointer(u16 id)
return NULL;
else if (id < SPECIAL_VARS_START)
return &gSaveBlock1Ptr->vars[id - VARS_START];
else
return gSpecialVars[id - SPECIAL_VARS_START];
else
return gSpecialVars[id - SPECIAL_VARS_START];
}
u16 VarGet(u16 id)
@ -200,8 +200,8 @@ u8 *GetFlagPointer(u16 id)
return NULL;
else if (id < SPECIAL_FLAGS_START)
return &gSaveBlock1Ptr->flags[id / 8];
else
return &gUnknown_020375FC[(id - SPECIAL_FLAGS_START) / 8];
else
return &gUnknown_020375FC[(id - SPECIAL_FLAGS_START) / 8];
}
u8 FlagSet(u16 id)

View File

@ -66,7 +66,7 @@ extern void sub_807F19C(void);
extern void sub_807B140(void);
extern void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
extern void Overworld_PlaySpecialMapMusic(void);
extern void sub_81BFA38(struct Pokemon *party, u8 monId, u8 partyCount, void *CB2_ptr, u16 move);
extern void ShowSelectMovePokemonSummaryScreen(struct Pokemon *party, u8 monId, u8 partyCount, void *CB2_ptr, u16 move);
extern u8 sub_81C1B94(void);
extern void sub_807F1A8(u8 arg0, const u8 *arg1, u8 arg2);
extern void sub_800E084(void);
@ -918,7 +918,7 @@ static void Task_EvolutionScene(u8 taskID)
if (!gPaletteFade.active)
{
FreeAllWindowBuffers();
sub_81BFA38(gPlayerParty, gTasks[taskID].tPartyID,
ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID,
gPlayerPartyCount - 1, CB2_EvolutionSceneLoadGraphics,
gMoveToLearn);
gTasks[taskID].tLearnMoveState++;
@ -1222,7 +1222,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
}
break;
case 4:
switch (ProcessMenuInputNoWrap_())
switch (Menu_ProcessInputNoWrap_())
{
case 0:
sEvoCursorPos = 0;
@ -1252,7 +1252,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
Free(GetBgTilemapBuffer(0));
FreeAllWindowBuffers();
sub_81BFA38(gPlayerParty, gTasks[taskID].tPartyID,
ShowSelectMovePokemonSummaryScreen(gPlayerParty, gTasks[taskID].tPartyID,
gPlayerPartyCount - 1, CB2_TradeEvolutionSceneLoadGraphics,
gMoveToLearn);
gTasks[taskID].tLearnMoveState++;

View File

@ -63,32 +63,24 @@ s16 GetTruckBoxMovement(int a1) // for the box movement?
return 0;
}
// smh STILL BROKEN IN EMERALD
void Task_Truck1(u8 taskId)
{
s16 *data = gTasks[taskId].data;
s16 cameraYpan;
s16 box1 = 0;
s16 box2 = 0;
s16 box3 = 0;
u8 mapNum, mapGroup;
register s16 zero asm("r4");
s16 cameraXpan = 0, cameraYpan = 0;
s16 box1, box2, box3;
box1 = GetTruckBoxMovement(data[0] + 30) * 4; // top box.
sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3, box1 + 3);
sub_808E82C(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 3 - cameraXpan, box1 + 3);
box2 = GetTruckBoxMovement(data[0]) * 2; // bottom left box.
sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, 0, box2 - 3);
sub_808E82C(2, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -cameraXpan, box2 - 3);
box3 = GetTruckBoxMovement(data[0]) * 4; // bottom right box.
mapNum = gSaveBlock1Ptr->location.mapNum;
mapGroup = gSaveBlock1Ptr->location.mapGroup;
zero = 0;
sub_808E82C(3, mapNum, mapGroup, -3, box3);
sub_808E82C(3, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, -3 - cameraXpan, box3);
if (++data[0] == SECONDS(500)) // this will never run
data[0] = zero; // reset the timer if it gets stuck.
data[0] = 0; // reset the timer if it gets stuck.
cameraYpan = GetTruckCameraBobbingY(data[0]);
SetCameraPanning(0, cameraYpan);
SetCameraPanning(cameraXpan, cameraYpan);
}
void Task_Truck2(u8 taskId)

View File

@ -1369,7 +1369,7 @@ void Task_HandleInBattleItemMenuInput(u8 taskId)
{
if (sub_81221EC() != TRUE)
{
s8 r4 = ProcessMenuInputNoWrapAround();
s8 r4 = Menu_ProcessInputNoWrapAround();
switch (r4)
{
case -2:

833
src/learn_move.c Normal file
View File

@ -0,0 +1,833 @@
#include "global.h"
#include "main.h"
#include "battle.h"
#include "bg.h"
#include "contest_effect.h"
#include "data2.h"
#include "event_data.h"
#include "field_screen.h"
#include "gpu_regs.h"
#include "learn_move.h"
#include "list_menu.h"
#include "malloc.h"
#include "menu.h"
#include "menu_helpers.h"
#include "overworld.h"
#include "palette.h"
#include "pokemon_summary_screen.h"
#include "pokenav.h"
#include "script.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "constants/rgb.h"
#include "constants/songs.h"
static EWRAM_DATA struct
{
u8 state;
u8 spriteIds[16]; /*0x001*/
u16 movesToLearn[4]; /*0x012*/
u8 filler1A[0x44 - 0x1A]; /*0x01A*/
u8 partyMon; /*0x044*/
u8 moveSlot; /*0x045*/
struct ListMenuItem menuItems[20]; /*0x048*/
u8 fillerE8[0x110 - 0xE8]; /*0x0E8*/
u8 numMenuChoices; /*0x110*/
u8 numToShowAtOnce; /*0x111*/
u8 listMenuTask; /*0x112*/
u8 scrollArrowTaskId1; /*0x113*/
u8 scrollArrowTaskId2; /*0x114*/
u16 scrollOffset; /*0x116*/
} *sLearnMoveStruct = {0};
static EWRAM_DATA struct {
u16 listOffset;
u16 listRow;
u8 showContestInfo;
} sLearnMoveStruct2 = {0};
const u16 gUnknown_085CE9F8[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal");
const u8 gUnknown_085CEA18[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp");
const struct OamData gUnknown_085CEB98 =
{
.y = 0,
.affineMode = 0,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_SQUARE,
.x = 0,
.matrixNum = 0,
.size = 0,
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
.affineParam = 0,
};
const struct OamData gUnknown_085CEBA0 =
{
.y = 0,
.affineMode = 0,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_V_RECTANGLE,
.x = 0,
.matrixNum = 0,
.size = 0,
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
.affineParam = 0,
};
const struct OamData gUnknown_085CEBA8 =
{
.y = 0,
.affineMode = 0,
.objMode = ST_OAM_OBJ_NORMAL,
.mosaic = 0,
.bpp = ST_OAM_4BPP,
.shape = ST_OAM_H_RECTANGLE,
.x = 0,
.matrixNum = 0,
.size = 0,
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
.affineParam = 0,
};
const struct SpriteSheet gUnknown_085CEBB0 =
{
.data = gUnknown_085CEA18,
.size = 0x180,
.tag = 5525
};
const struct SpritePalette gUnknown_085CEBB8 =
{
.data = gUnknown_085CE9F8,
.tag = 5526
};
const struct ScrollArrowsTemplate gUnknown_085CEBC0 =
{
.firstArrowType = 0,
.firstX = 27,
.firstY = 16,
.secondArrowType = 1,
.secondX = 117,
.secondY = 16,
.fullyUpThreshold = -1,
.fullyDownThreshold = -1,
.tileTag = 5325,
.palTag = 5325,
.palNum = 0,
};
const struct ScrollArrowsTemplate gUnknown_085CEBD0 =
{
.firstArrowType = 2,
.firstX = 192,
.firstY = 8,
.secondArrowType = 3,
.secondX = 192,
.secondY = 104,
.fullyUpThreshold = 0,
.fullyDownThreshold = 0,
.tileTag = 5425,
.palTag = 5425,
.palNum = 0,
};
const union AnimCmd gUnknown_085CEBE0[] =
{
ANIMCMD_FRAME(8, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd gUnknown_085CEBE8[] =
{
ANIMCMD_FRAME(9, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd gUnknown_085CEBF0[] =
{
ANIMCMD_FRAME(10, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd gUnknown_085CEBF8[] =
{
ANIMCMD_FRAME(11, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd *const gUnknown_085CEC00[] =
{
gUnknown_085CEBE0,
gUnknown_085CEBE8,
gUnknown_085CEBF0,
gUnknown_085CEBF8,
};
const struct SpriteTemplate gUnknown_085CEC10 =
{
.tileTag = 5525,
.paletteTag = 5526,
.oam = &gUnknown_085CEB98,
.anims = gUnknown_085CEC00,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};
const struct BgTemplate gUnknown_085CEC28[] =
{
{
.bg = 0,
.charBaseIndex = 0,
.mapBaseIndex = 31,
.screenSize = 0,
.paletteMode = 0,
.priority = 0,
.baseTile = 0,
},
{
.bg = 1,
.charBaseIndex = 0,
.mapBaseIndex = 30,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0,
},
};
static void LearnMoveMain(void);
static void CreateMenuItemsList(void);
static void CreateHearts(void);
static void CB2_Main(void);
static void Task_WaitForFadeOut(u8 taskId);
static void CB2_InitLearnMove(void);
static void CB2_InitLearnMoveReturnFromSelectMove(void);
static void InitBGs(void);
static void AddScrollArrows(void);
static void HandleInput(u8);
static void ShowTeachMoveText(u8);
static s32 GetCurrentItemId(void);
static void FreeListMenuResources(void);
static void RemoveScrollArrows(void);
static void HideSpritesAndPrintTeachText(bool8);
static void VBlankCB_LearnMove(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
void TeachMoveTutorMove(void)
{
ScriptContext2_Enable();
CreateTask(Task_WaitForFadeOut, 0xA);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
}
static void Task_WaitForFadeOut(u8 taskId)
{
if (!gPaletteFade.active)
{
SetMainCallback2(CB2_InitLearnMove);
gFieldCallback = sub_80AF168;
DestroyTask(taskId);
}
}
static void CB2_InitLearnMove(void)
{
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
clear_scheduled_bg_copies_to_vram();
sLearnMoveStruct = AllocZeroed(sizeof(*sLearnMoveStruct));
sLearnMoveStruct->partyMon = gSpecialVar_0x8004;
SetVBlankCallback(VBlankCB_LearnMove);
InitBGs();
sub_81D2824(0);
sLearnMoveStruct2.listOffset = 0;
sLearnMoveStruct2.listRow = 0;
sLearnMoveStruct2.showContestInfo = FALSE;
CreateMenuItemsList();
LoadSpriteSheet(&gUnknown_085CEBB0);
LoadSpritePalette(&gUnknown_085CEBB8);
CreateHearts();
sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow);
FillPalette(RGB_BLACK, 0, 2);
SetMainCallback2(CB2_Main);
}
static void CB2_InitLearnMoveReturnFromSelectMove(void)
{
ResetSpriteData();
FreeAllSpritePalettes();
ResetTasks();
clear_scheduled_bg_copies_to_vram();
sLearnMoveStruct = AllocZeroed(sizeof(*sLearnMoveStruct));
sLearnMoveStruct->state = 28;
sLearnMoveStruct->partyMon = gSpecialVar_0x8004;
sLearnMoveStruct->moveSlot = gSpecialVar_0x8005;
SetVBlankCallback(VBlankCB_LearnMove);
InitBGs();
sub_81D2824(sLearnMoveStruct2.showContestInfo);
CreateMenuItemsList();
LoadSpriteSheet(&gUnknown_085CEBB0);
LoadSpritePalette(&gUnknown_085CEBB8);
CreateHearts();
sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow);
FillPalette(RGB_BLACK, 0, 2);
SetMainCallback2(CB2_Main);
}
static void InitBGs(void)
{
ResetVramOamAndBgCntRegs();
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, gUnknown_085CEC28, 2);
ResetAllBgsCoordinates();
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 |
DISPCNT_OBJ_1D_MAP |
DISPCNT_OBJ_ON);
ShowBg(0);
ShowBg(1);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
}
static void CB2_Main(void)
{
LearnMoveMain();
RunTasks();
AnimateSprites();
BuildOamBuffer();
do_scheduled_bg_tilemap_copies_to_vram();
UpdatePaletteFade();
}
static void sub_816084C(const u8 *src)
{
StringExpandPlaceholders(gStringVar4, src);
sub_81D2BF4(gStringVar4);
}
static void LearnMoveMain(void)
{
switch (sLearnMoveStruct->state)
{
case 0:
sLearnMoveStruct->state++;
HideSpritesAndPrintTeachText(FALSE);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
break;
case 1:
if (!gPaletteFade.active)
{
sLearnMoveStruct->state = 4;
}
break;
case 2:
sLearnMoveStruct->state++;
break;
case 3:
HideSpritesAndPrintTeachText(FALSE);
sLearnMoveStruct->state++;
AddScrollArrows();
break;
case 4:
HandleInput(FALSE);
return;
case 5:
ShowTeachMoveText(FALSE);
sLearnMoveStruct->state++;
AddScrollArrows();
break;
case 6:
HandleInput(TRUE);
break;
case 8:
if (!sub_81D2C3C())
{
sub_81D2C50();
sLearnMoveStruct->state++;
}
break;
case 9:
{
s8 selection = Menu_ProcessInputNoWrap_();
if (selection == 0)
{
if (GiveMoveToMon(&gPlayerParty[sLearnMoveStruct->partyMon], GetCurrentItemId()) != 0xFFFF)
{
sub_816084C(gText_PkmnLearnedMove4);
gSpecialVar_0x8004 = 1;
sLearnMoveStruct->state = 31;
}
else
{
sLearnMoveStruct->state = 16;
}
}
else if (selection == -1 || selection == 1)
{
if (sLearnMoveStruct2.showContestInfo == FALSE)
{
sLearnMoveStruct->state = 3;
}
else if (sLearnMoveStruct2.showContestInfo == TRUE)
{
sLearnMoveStruct->state = 5;
}
}
}
break;
case 12:
if (!sub_81D2C3C())
{
sub_81D2C50();
sLearnMoveStruct->state++;
}
break;
case 13:
{
s8 selection = Menu_ProcessInputNoWrap_();
if (selection == 0)
{
gSpecialVar_0x8004 = selection;
sLearnMoveStruct->state = 14;
}
else if (selection == -1 || selection == 1)
{
if (sLearnMoveStruct2.showContestInfo == FALSE)
{
sLearnMoveStruct->state = 3;
}
else if (sLearnMoveStruct2.showContestInfo == TRUE)
{
sLearnMoveStruct->state = 5;
}
}
}
break;
case 16:
sub_816084C(gText_PkmnTryingToLearnMove);
sLearnMoveStruct->state++;
break;
case 17:
if (!sub_81D2C3C())
{
sub_81D2C50();
sLearnMoveStruct->state = 18;
}
break;
case 18:
{
s8 var = Menu_ProcessInputNoWrap_();
if (var == 0)
{
sub_816084C(gText_WhichMoveToForget2);
sLearnMoveStruct->state = 19;
}
else if (var == -1 || var == 1)
{
sLearnMoveStruct->state = 24;
}
}
break;
case 24:
StringCopy(gStringVar2, gMoveNames[GetCurrentItemId()]);
sub_816084C(gText_StopTryingToTeachMove);
sLearnMoveStruct->state++;
break;
case 25:
if (!sub_81D2C3C())
{
sub_81D2C50();
sLearnMoveStruct->state++;
}
break;
case 26:
{
s8 var = Menu_ProcessInputNoWrap_();
if (var == 0)
{
sLearnMoveStruct->state = 27;
}
else if (var == -1 || var == 1)
{
// What's the point? It gets set to 16, anyway.
if (sLearnMoveStruct2.showContestInfo == FALSE)
{
sLearnMoveStruct->state = 3;
}
else if (sLearnMoveStruct2.showContestInfo == TRUE)
{
sLearnMoveStruct->state = 5;
}
sLearnMoveStruct->state = 16;
}
}
break;
case 27:
if (!sub_81D2C3C())
{
FillWindowPixelBuffer(3, 0x11);
if (sLearnMoveStruct2.showContestInfo == FALSE)
{
sLearnMoveStruct->state = 3;
}
else if (sLearnMoveStruct2.showContestInfo == TRUE)
{
sLearnMoveStruct->state = 5;
}
}
break;
case 19:
if (!sub_81D2C3C())
{
sLearnMoveStruct->state = 20;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
}
break;
case 20:
if (!gPaletteFade.active)
{
ShowSelectMovePokemonSummaryScreen(gPlayerParty, sLearnMoveStruct->partyMon, gPlayerPartyCount - 1, CB2_InitLearnMoveReturnFromSelectMove, GetCurrentItemId());
FreeListMenuResources();
}
break;
case 21:
if (!sub_81D2C3C())
{
sLearnMoveStruct->state = 14;
}
break;
case 22:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
break;
case 14:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
sLearnMoveStruct->state++;
break;
case 15:
if (!gPaletteFade.active)
{
FreeListMenuResources();
SetMainCallback2(CB2_ReturnToField);
}
break;
case 28:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
sLearnMoveStruct->state++;
if (sLearnMoveStruct2.showContestInfo == FALSE)
{
HideSpritesAndPrintTeachText(TRUE);
}
else if (sLearnMoveStruct2.showContestInfo == TRUE)
{
ShowTeachMoveText(TRUE);
}
RemoveScrollArrows();
CopyWindowToVram(3, 2);
break;
case 29:
if (!gPaletteFade.active)
{
if (sLearnMoveStruct->moveSlot == MAX_MON_MOVES)
{
sLearnMoveStruct->state = 24;
}
else
{
u16 moveId = GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_MOVE1 + sLearnMoveStruct->moveSlot);
StringCopy(gStringVar3, gMoveNames[moveId]);
RemoveMonPPBonus(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->moveSlot);
SetMonMoveSlot(&gPlayerParty[sLearnMoveStruct->partyMon], GetCurrentItemId(), sLearnMoveStruct->moveSlot);
StringCopy(gStringVar2, gMoveNames[GetCurrentItemId()]);
sub_816084C(gText_12AndPoof);
sLearnMoveStruct->state = 30;
gSpecialVar_0x8004 = 1;
}
}
break;
case 30:
if (!sub_81D2C3C())
{
sub_816084C(gText_PkmnForgotMoveAndLearnedNew);
sLearnMoveStruct->state = 31;
PlayFanfare(MUS_FANFA1);
}
break;
case 31:
if (!sub_81D2C3C())
{
PlayFanfare(MUS_FANFA1);
sLearnMoveStruct->state = 32;
}
break;
case 32:
if (IsFanfareTaskInactive())
{
sLearnMoveStruct->state = 33;
}
break;
case 33:
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
sLearnMoveStruct->state = 14;
}
break;
}
}
static void FreeListMenuResources(void)
{
RemoveScrollArrows();
DestroyListMenuTask(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow);
FreeAllWindowBuffers();
FREE_AND_SET_NULL(sLearnMoveStruct);
ResetSpriteData();
FreeAllSpritePalettes();
}
static void HideSpritesAndPrintTeachText(bool8 a)
{
s32 i;
for (i = 0; i < 16; i++)
{
gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE;
}
if (!a)
{
StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn);
FillWindowPixelBuffer(3, 0x11);
PrintTextOnWindow(3, 1, gStringVar4, 0, 1, 0, NULL);
}
}
static void HandleInput(bool8 showContest)
{
s32 itemId = ListMenuHandleInputGetItemId(sLearnMoveStruct->listMenuTask);
ListMenuGetScrollAndRow(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow);
switch (itemId)
{
case LIST_NOTHING_CHOSEN:
if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState())
{
break;
}
PlaySE(SE_SELECT);
if (showContest == FALSE)
{
PutWindowTilemap(1);
sLearnMoveStruct->state = 5;
sLearnMoveStruct2.showContestInfo = TRUE;
}
else
{
PutWindowTilemap(0);
sLearnMoveStruct->state = 3;
sLearnMoveStruct2.showContestInfo = FALSE;
}
schedule_bg_copy_tilemap_to_vram(1);
ShowHideHearts(GetCurrentItemId());
break;
case LIST_B_PRESSED:
PlaySE(SE_SELECT);
RemoveScrollArrows();
sLearnMoveStruct->state = 12;
StringExpandPlaceholders(gStringVar4, gText_GiveUpTeachingNewMove);
sub_81D2BF4(gStringVar4);
break;
default:
PlaySE(SE_SELECT);
RemoveScrollArrows();
sLearnMoveStruct->state = 8;
StringCopy(gStringVar2, gMoveNames[itemId]);
StringExpandPlaceholders(gStringVar4, gText_TeachX);
sub_81D2BF4(gStringVar4);
break;
}
}
static s32 GetCurrentItemId(void)
{
return sLearnMoveStruct->menuItems[sLearnMoveStruct2.listRow + sLearnMoveStruct2.listOffset].id;
}
static void ShowTeachMoveText(bool8 showContest)
{
if (showContest == FALSE)
{
StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn);
FillWindowPixelBuffer(3, 0x11);
PrintTextOnWindow(3, 1, gStringVar4, 0, 1, 0, NULL);
}
}
static void CreateHearts(void)
{
int i;
sLearnMoveStruct->scrollArrowTaskId2 = -1;
sLearnMoveStruct->scrollArrowTaskId1 = -1;
AddScrollArrows();
for (i = 0; i < 8; i++)
{
sLearnMoveStruct->spriteIds[i] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0);
}
for (i = 0; i < 8; i++)
{
sLearnMoveStruct->spriteIds[i + 8] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 52, 0);
StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 2);
}
for (i = 0; i < 16; i++)
{
gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE;
}
}
static void AddScrollArrows(void)
{
if (sLearnMoveStruct->scrollArrowTaskId2 == 0xFF)
{
sLearnMoveStruct->scrollArrowTaskId2 = AddScrollIndicatorArrowPair(&gUnknown_085CEBC0, &sLearnMoveStruct->scrollOffset);
}
if (sLearnMoveStruct->scrollArrowTaskId1 == 0xFF)
{
gTempScrollArrowTemplate = gUnknown_085CEBD0;
gTempScrollArrowTemplate.fullyDownThreshold = sLearnMoveStruct->numMenuChoices - sLearnMoveStruct->numToShowAtOnce;
sLearnMoveStruct->scrollArrowTaskId1 = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sLearnMoveStruct2.listOffset);
}
}
static void RemoveScrollArrows(void)
{
if (sLearnMoveStruct->scrollArrowTaskId2 != 0xFF)
{
RemoveScrollIndicatorArrowPair(sLearnMoveStruct->scrollArrowTaskId2);
sLearnMoveStruct->scrollArrowTaskId2 = 0xFF;
}
if (sLearnMoveStruct->scrollArrowTaskId1 != 0xFF)
{
RemoveScrollIndicatorArrowPair(sLearnMoveStruct->scrollArrowTaskId1);
sLearnMoveStruct->scrollArrowTaskId1 = 0xFF;
}
}
static void CreateMenuItemsList(void)
{
s32 i;
u8 nickname[POKEMON_NAME_LENGTH + 1];
sLearnMoveStruct->numMenuChoices = GetMoveRelearnerMoves(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->movesToLearn);
for (i = 0; i < sLearnMoveStruct->numMenuChoices; i++)
{
sLearnMoveStruct->menuItems[i].name = gMoveNames[sLearnMoveStruct->movesToLearn[i]];
sLearnMoveStruct->menuItems[i].id = sLearnMoveStruct->movesToLearn[i];
}
GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_NICKNAME, nickname);
StringCopy10(gStringVar1, nickname);
sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].name = gText_Cancel;
sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].id = LIST_B_PRESSED;
sLearnMoveStruct->numMenuChoices++;
sLearnMoveStruct->numToShowAtOnce = sub_81D28C8(sLearnMoveStruct->menuItems, sLearnMoveStruct->numMenuChoices);
}
void ShowHideHearts(s32 item)
{
u16 numHearts;
u16 i;
if (!sLearnMoveStruct2.showContestInfo || item == LIST_B_PRESSED)
{
for (i = 0; i < 16; i++)
{
gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE;
}
}
else
{
numHearts = (u8)(gContestEffects[gContestMoves[item].effect].appeal / 10);
if (numHearts == 0xFF)
{
numHearts = 0;
}
for (i = 0; i < 8; i++)
{
if (i < numHearts)
{
StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 1);
}
else
{
StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 0);
}
gSprites[sLearnMoveStruct->spriteIds[i]].invisible = FALSE;
}
numHearts = (u8)(gContestEffects[gContestMoves[item].effect].jam / 10);
if (numHearts == 0xFF)
{
numHearts = 0;
}
for (i = 0; i < 8; i++)
{
if (i < numHearts)
{
StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 3);
}
else
{
StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 2);
}
gSprites[sLearnMoveStruct->spriteIds[i + 8]].invisible = FALSE;
}
}
}

View File

@ -1362,7 +1362,7 @@ void task_new_game_prof_birch_speech_part2_3(u8 taskId)
void task_new_game_prof_birch_speech_part2_4(u8 taskId)
{
switch (ProcessMenuInputNoWrap_())
switch (Menu_ProcessInputNoWrap_())
{
case 0:
PlaySE(SE_SELECT);
@ -1802,7 +1802,7 @@ void sub_8031D74(void)
s8 sub_8031DB4(void)
{
return ProcessMenuInputNoWrapAround();
return Menu_ProcessInputNoWrapAround();
}
void set_default_player_name(u8 nameId)

View File

@ -986,7 +986,7 @@ s8 ProcessMenuInput(void)
return MENU_NOTHING_CHOSEN;
}
s8 ProcessMenuInputNoWrapAround(void)
s8 Menu_ProcessInputNoWrapAround(void)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
@ -1044,7 +1044,7 @@ s8 ProcessMenuInput_other(void)
return MENU_NOTHING_CHOSEN;
}
s8 ProcessMenuInputNoWrapAround_other(void)
s8 Menu_ProcessInputNoWrapAround_other(void)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
@ -1187,9 +1187,9 @@ void sub_8198C34(const struct WindowTemplate *window, u8 fontId, u16 baseTileNum
sub_8198AF8(window, fontId, 0, 1, baseTileNum, paletteNum, 0);
}
s8 ProcessMenuInputNoWrap_(void)
s8 Menu_ProcessInputNoWrap_(void)
{
s8 result = ProcessMenuInputNoWrapAround();
s8 result = Menu_ProcessInputNoWrapAround();
if (result != MENU_NOTHING_CHOSEN)
sub_8198C78();
return result;

View File

@ -169,7 +169,7 @@ void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *templa
static void Task_CallYesOrNoCallback(u8 taskId)
{
switch (ProcessMenuInputNoWrap_())
switch (Menu_ProcessInputNoWrap_())
{
case 0:
PlaySE(SE_SELECT);

View File

@ -272,7 +272,7 @@ static void PlayerPCProcessMenuInput(u8 taskId)
if(gPcItemMenuOptionsNum > 3)
inputOptionId = ProcessMenuInput();
else
inputOptionId = ProcessMenuInputNoWrapAround();
inputOptionId = Menu_ProcessInputNoWrapAround();
switch(inputOptionId)
{
@ -686,7 +686,7 @@ static void Mailbox_DrawYesNoBeforeMove(u8 taskId)
static void Mailbox_MoveToBagYesNoPrompt(u8 taskId)
{
switch(ProcessMenuInputNoWrap_())
switch(Menu_ProcessInputNoWrap_())
{
case 0:
Mailbox_DoMailMoveToBag(taskId);

View File

@ -1042,7 +1042,7 @@ static void Task_HandlePokeblockOptionsInput(u8 taskId)
if (sub_81221EC() == TRUE)
return;
itemId = ProcessMenuInputNoWrapAround();
itemId = Menu_ProcessInputNoWrapAround();
if (itemId == MENU_NOTHING_CHOSEN)
{
return;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -997,7 +997,7 @@ void sub_80E9FB0(u8 taskId)
{
s8 input;
input = ProcessMenuInputNoWrapAround();
input = Menu_ProcessInputNoWrapAround();
switch (input)
{
case -1:

View File

@ -975,7 +975,7 @@ bool8 sub_8102318(struct Task *task)
bool8 sub_8102344(struct Task *task)
{
s8 input = ProcessMenuInputNoWrap_();
s8 input = Menu_ProcessInputNoWrap_();
if (input == 0)
{
sub_8197434(0, TRUE);

View File

@ -985,7 +985,7 @@ static u8 SaveYesNoCallback(void)
static u8 SaveConfirmInputCallback(void)
{
switch (ProcessMenuInputNoWrap_())
switch (Menu_ProcessInputNoWrap_())
{
case 0: // Yes
switch (gSaveFileStatus)
@ -1045,7 +1045,7 @@ static u8 SaveConfirmOverwriteCallback(void)
static u8 SaveOverwriteInputCallback(void)
{
switch (ProcessMenuInputNoWrap_())
switch (Menu_ProcessInputNoWrap_())
{
case 0: // Yes
sSaveDialogCallback = SaveSavingMessageCallback;
@ -1169,7 +1169,7 @@ static u8 BattlePyramidRetireYesNoCallback(void)
static u8 BattlePyramidRetireInputCallback(void)
{
switch (ProcessMenuInputNoWrap_())
switch (Menu_ProcessInputNoWrap_())
{
case 0: // Yes
return SAVE_CANCELED;

View File

@ -258,7 +258,7 @@ static void Task_StarterChoose5(u8 taskId)
{
u8 spriteId;
switch (ProcessMenuInputNoWrap_())
switch (Menu_ProcessInputNoWrap_())
{
case 0: // YES
// Return the starter choice and exit.

View File

@ -0,0 +1,75 @@
#include "global.h"
#include "main.h"
#include "menu.h"
#include "bg.h"
#include "malloc.h"
#include "palette.h"
EWRAM_DATA u8 *gUnknown_0203CF28 = NULL;
static const u16 gUnknown_0861D140[] = INCBIN_U16("graphics/interface/region_map.gbapal");
static const u8 gUnknown_0861D1A0[] = INCBIN_U8("graphics/interface/region_map.8bpp.lz");
static const u8 gUnknown_0861DEF4[] = INCBIN_U8("graphics/interface/region_map.bin.lz");
static const u8 gUnknown_0861E208[] = INCBIN_U8("graphics/interface/region_map_affine.8bpp.lz");
static const u8 gUnknown_0861EF64[] = INCBIN_U8("graphics/interface/region_map_affine.bin.lz");
struct UnkStruct_1C4D70
{
u32 bg:2;
u32 unk2:8;
u32 unk10:2;
u32 unk12:20;
};
void sub_81C4D70(struct UnkStruct_1C4D70 *template)
{
u8 unk;
gUnknown_0203CF28 = Alloc(4);
unk = template->unk10;
if (unk == 0)
{
SetBgAttribute(template->bg, BG_CTRL_ATTR_WRAPAROUND, 0);
decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861D1A0, 0, template->unk2, unk);
sub_8199D3C(decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861DEF4, 0, 0, 1), template->unk2, 32, 32, unk);
}
else
{
SetBgAttribute(template->bg, BG_CTRL_ATTR_WRAPAROUND, 2);
SetBgAttribute(template->bg, 9, 1);
decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861E208, 0, template->unk2, 0);
sub_8199D3C(decompress_and_copy_tile_data_to_vram(template->bg, gUnknown_0861EF64, 0, 0, 1), template->unk2, 64, 64, 1);
}
ChangeBgX(template->bg, 0, 0);
ChangeBgY(template->bg, 0, 0);
SetBgAttribute(template->bg, BG_CTRL_ATTR_SCREENSIZE, 1);
CpuCopy32(gUnknown_0861D140, &gPlttBufferUnfaded[0x70], 0x60);
*gUnknown_0203CF28 = template->bg;
}
bool32 sub_81C4E90(void)
{
if (!free_temp_tile_data_buffers_if_possible())
{
ShowBg(*gUnknown_0203CF28);
return FALSE;
}
else
{
return TRUE;
}
}
void sub_81C4EB4(void)
{
if (gUnknown_0203CF28 != NULL)
{
FREE_AND_SET_NULL(gUnknown_0203CF28);
}
}
void sub_81C4ED0(u32 a0)
{
ChangeBgY(*gUnknown_0203CF28, a0 * 0x100, 0);
}

View File

@ -763,7 +763,7 @@ static void Task_SetClock3(u8 taskId)
static void Task_SetClock4(u8 taskId)
{
switch (ProcessMenuInputNoWrap_())
switch (Menu_ProcessInputNoWrap_())
{
case 0:
PlaySE(SE_SELECT);

View File

@ -603,19 +603,14 @@ gUnknown_0203ABB8: @ 203ABB8
.space 0x4
.include "src/save.o"
.space 0x4 /*unused var?*/
.include "src/mystery_event_script.o"
gUnknown_0203BC34: @ 203BC34
.space 0x4
gUnknown_0203BC38: @ 203BC38
.space 0x8
.include "src/learn_move.o"
.include "src/decoration_inventory.o"
.include "src/roamer.o"
.include "src/roamer.o"
gUnknown_0203BC88: @ 203BC88
.space 0x4
@ -744,30 +739,9 @@ gUnknown_0203CF00: @ 203CF00
.include "src/fossil_specials.o"
.include "src/fldeff_groundshake.o"
gUnknown_0203CF1C: @ 203CF1C
.space 0x4
gUnknown_0203CF20: @ 203CF20
.space 0x1
gUnknown_0203CF21: @ 203CF21
.space 0x3
gUnknown_0203CF24: @ 203CF24
.space 0x4
gUnknown_0203CF28: @ 203CF28
.space 0x4
gUnknown_0203CF2C: @ 203CF2C
.space 0x4
gUnknown_0203CF30: @ 203CF30
.space 0x8
gUnknown_0203CF38: @ 203CF38
.space 0x4
.include "src/pokemon_summary_screen.o"
.include "src/unk_pokedex_area_screen_helper.o"
.include "src/battle_pyramid.o"
gUnknown_0203CF3C: @ 203CF3C
.space 0x4