Merge branch 'master' into pok_jump

This commit is contained in:
DizzyEggg 2019-08-04 00:02:13 +02:00
commit 1641579297
44 changed files with 6484 additions and 12643 deletions

File diff suppressed because it is too large Load Diff

View File

@ -943,7 +943,7 @@ sub_81CA0C8: @ 81CA0C8
lsls r2, r0, 3
subs r2, r0
lsls r2, 2
ldr r1, =gUnknown_08620244
ldr r1, =gUnknown_08620240+4
adds r0, r2, r1
subs r1, 0x4
adds r2, r1

View File

@ -1,666 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_082F449C:: @ 82F449C
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
.byte 0x08, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x03, 0x08
.byte 0x09, 0x00, 0x00, 0x01, 0x02, 0x05, 0x06, 0x03
.byte 0x04, 0x05, 0x08, 0x09, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
.byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x02, 0x09
.byte 0x00, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x02
.byte 0x03, 0x04, 0x09, 0x00, 0x00, 0x01, 0x06, 0x07
.byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x09, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02
.byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01, 0x00
.byte 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01
.byte 0x02, 0x03, 0x00, 0x00, 0x05, 0x06, 0x07, 0x08
.byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00, 0x07
.byte 0x08, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03
.byte 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x02
.byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00
.byte 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08
.byte 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
.byte 0x08, 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05
.byte 0x06, 0x07, 0x08
gUknnown_082F45AF::
.byte 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03
.byte 0x04, 0x05, 0x05, 0x06, 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x05
.byte 0x06, 0x06, 0x07, 0x02, 0x02, 0x03, 0x04, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x05
.byte 0x05, 0x06, 0x07, 0x07, 0x08, 0x01, 0x01, 0x02
.byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x05, 0x06, 0x06
.byte 0x07, 0x08, 0x08, 0x09, 0x00, 0x00, 0x01, 0x02
.byte 0x02, 0x03, 0x04, 0x01, 0x00, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02
.byte 0x03, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x04
.byte 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x03
.byte 0x02, 0x03, 0x04, 0x03, 0x04, 0x00, 0x00, 0x00
.byte 0x00, 0x09, 0x09, 0x09, 0x09, 0x01, 0x01, 0x01
.byte 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00
.byte 0x00, 0x01, 0x01, 0x00, 0x09, 0x09, 0x09, 0x09
.byte 0x09, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01
.byte 0x09, 0x09, 0x09, 0x03, 0x03, 0x00, 0x00, 0x01
.byte 0x01, 0x02, 0x02, 0x03, 0x09, 0x03, 0x03, 0x04
.byte 0x04, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x04, 0x06, 0x00
.byte 0x00, 0x00, 0x03, 0x05, 0x07, 0x00, 0x00, 0x02
.byte 0x04, 0x06, 0x08, 0x00, 0x01, 0x03, 0x05, 0x06
.byte 0x09
.align 2
gUnknown_082F7DF0_UnrefDupe:: @ 82F4698
.incbin "graphics/link_games/dodrioberry_bg1.gbapal"
.align 2
.incbin "graphics/link_games/dodrioberry_bg2.gbapal"
.align 2
gUnknown_082F7E30_UnrefDupe:: @ 82F46B8
.incbin "graphics/link_games/dodrioberry_pkmn.gbapal"
.align 2
gUnknown_082F7E50_UnrefDupe:: @ 82F46D8
.incbin "graphics/link_games/dodrioberry_shiny.gbapal"
.align 2
gUnknown_082F7E70_UnrefDupe:: @ 82F46F8
.incbin "graphics/link_games/dodrioberry_status.gbapal"
.align 2
gUnknown_082F7E90_UnrefDupe:: @ 82F4718
.incbin "graphics/link_games/dodrioberry_berrysprites.gbapal"
.align 2
gUnknown_082F7EB0_UnrefDupe:: @ 82F4738
.incbin "graphics/link_games/dodrioberry_berrysprites.4bpp.lz"
.align 2
gUnknown_082F8064_UnrefDupe:: @ 82F490C
.incbin "graphics/link_games/dodrioberry_platform.gbapal"
.align 2
gUnknown_082F8084_UnrefDupe:: @ 82F492C
.incbin "graphics/link_games/dodrioberry_bg1.4bpp.lz"
.align 2
gUnknown_082F8914_UnrefDupe:: @ 82F51BC
.incbin "graphics/link_games/dodrioberry_bg2.4bpp.lz"
.align 2
gUnknown_082F96E0_UnrefDupe:: @ 82F5F88
.incbin "graphics/link_games/dodrioberry_status.4bpp.lz"
.align 2
gUnknown_082F9774_UnrefDupe:: @ 82F601C
.incbin "graphics/link_games/dodrioberry_platform.4bpp.lz"
.align 2
gUnknown_082F98BC_UnrefDupe:: @ 82F6164
.incbin "graphics/link_games/dodrioberry_pkmn.4bpp.lz"
.align 2
gUnknown_082FAAD8_UnrefDupe:: @ 82F7380
.incbin "graphics/link_games/dodrioberry_bg1.bin.lz"
.align 2
gUnknown_082FAD44_UnrefDupe:: @ 82F75EC
.incbin "graphics/link_games/dodrioberry_bg2right.bin.lz"
.align 2
gUnknown_082FAF94_UnrefDupe:: @ 82F783C
.incbin "graphics/link_games/dodrioberry_bg2left.bin.lz"
.align 2
gUnknown_082F7A88:: @ 82F7A88
.byte 0x28, 0x18, 0x0d, 0x20, 0x13, 0x0a, 0x16, 0x0d
.byte 0x07, 0x00, 0x00, 0x00
.align 2
gUnknown_082F7A94:: @ 82F7A94
.byte 0x08, 0x05, 0x08, 0x0b, 0x0f, 0x00, 0x00, 0x00
.align 2
gUnknown_082F7A9C:: @ 82F7A9C
.byte 0x05, 0x0a, 0x14, 0x1e, 0x32, 0x46, 0x64, 0x00
.align 2
gUnknown_082F7AA4:: @ 82F7AA4
.byte 0x0f, 0x10, 0x11, 0x12, 0x13, 0x13, 0x12, 0x11
.byte 0x10, 0x0f, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19
.byte 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21
.byte 0x22, 0x22, 0x21, 0x20, 0x1f, 0x1e, 0x00, 0x00
.align 2
gUnknown_082F7AC4:: @ 82F7AC4
.4byte sub_8024DBC
.4byte sub_8024E00
.4byte sub_8024E38
.4byte sub_8024F10
.4byte sub_8024F38
.4byte sub_8025198
.4byte sub_8025324
.4byte sub_8025470
.4byte sub_8025644
.4byte sub_80256AC
.4byte sub_8025758
.4byte sub_80250D4
.align 2
gUnknown_082F7AF4:: @ 82F7AF4
.4byte sub_8024DBC
.4byte sub_8024E00
.4byte sub_8024E38
.4byte sub_8024F10
.4byte sub_8024FFC
.4byte sub_8025230
.4byte sub_8025324
.4byte sub_8025470
.4byte sub_8025644
.4byte sub_80256AC
.4byte sub_8025758
.4byte sub_8025158
.align 2
gUnknown_082F7B24:: @ 82F7B24
.2byte 0x000a, 0x001e, 0x0032, 0x0032
.align 2
gUnknown_082F7B2C:: @ 82F7B2C
.byte 0x00, 0x05, 0x01, 0x14, 0x0b, 0x0f, 0x01, 0x00
.align 2
gUnknown_082F7B34:: @ 82F7B34
.4byte gText_BerriesPicked
.4byte gText_BestScore
.4byte gText_BerriesInRowFivePlayers
.align 2
gUnknown_082F7B40:: @ 82F7B40
.byte 0x04, 0x07, 0x04, 0x00
.align 2
gUnknown_082F7B44:: @ 82F7B44
.2byte 0x0019, 0x0029, 0x0039
gUnknown_082F7B4A:: @ 82F7B4A
.2byte 0x0019, 0x0029, 0x0049
.align 2
gUnknown_082F7B50:: @ 82F7B50
.2byte 0x270f, 0x0000, 0x005a, 0x270f, 0x270f, 0x270f, 0x0046, 0x270f
.2byte 0x270f, 0x0000, 0x270f, 0x0000, 0x270f, 0x270f, 0x003c, 0x0000
.2byte 0x270f, 0x270f, 0x270f, 0x0000
.align 2
gUnknown_082F7B78:: @ 82F7B78
.string "ÀÁÂÇÈÉÊ$"
.align 2
gUnknown_082F7B80:: @ 82F7B80
.string "ABCDEFG$"
.align 2
gUnknown_082F7B88:: @ 82F7B88
.string "0123456$"
.align 2
gUnknown_082F7B90:: @ 82F7B90
.4byte gUnknown_082F7B78
.4byte gUnknown_082F7B78
.4byte gUnknown_082F7B78
.4byte gUnknown_082F7B80
.4byte gUnknown_082F7B88
.align 2
gUnknown_082F7BA4:: @ 82F7BA4 struct BgTemplate
.4byte 0x000001e0
.4byte 0x000012c9
.4byte 0x000012ea
.4byte 0x000021ff
.4byte 0x000000ff
.4byte 0x00000000
.align 2
gUnknown_082F7BBC:: @ 82F7BBC
window_template 0x00, 0x01, 0x01, 0x1c, 0x02, 0x0d, 0x0013
window_template 0x00, 0x01, 0x05, 0x1c, 0x0e, 0x0d, 0x004b
.align 2
gUnknown_082F7BCC:: @ 82F7BCC
window_template 0x00, 0x01, 0x05, 0x1c, 0x07, 0x0d, 0x004b
.align 2
gUnknown_082F7BD4:: @ 82F7BD4
window_template 0x00, 0x01, 0x08, 0x13, 0x03, 0x0d, 0x0013
window_template 0x00, 0x16, 0x07, 0x06, 0x04, 0x0d, 0x004c
.align 2
gUnknown_082F7BE4:: @ 82F7BE4
window_template 0x00, 0x04, 0x06, 0x16, 0x05, 0x0d, 0x0013
.align 2
gUnknown_082F7BEC:: @ 82F7BEC
window_template 0x00, 0x05, 0x08, 0x13, 0x03, 0x0d, 0x0013
.align 2
gUnknown_082F449C_UnrefDupe:: @ 82F7BF4
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
.byte 0x08, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x03, 0x08
.byte 0x09, 0x00, 0x00, 0x01, 0x02, 0x05, 0x06, 0x03
.byte 0x04, 0x05, 0x08, 0x09, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
.byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x02, 0x09
.byte 0x00, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x02
.byte 0x03, 0x04, 0x09, 0x00, 0x00, 0x01, 0x06, 0x07
.byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x09, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02
.byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01, 0x00
.byte 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01
.byte 0x02, 0x03, 0x00, 0x00, 0x05, 0x06, 0x07, 0x08
.byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00, 0x07
.byte 0x08, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03
.byte 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x02
.byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00
.byte 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08
.byte 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
.byte 0x08, 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05
.byte 0x06, 0x07, 0x08, 0x04, 0x05, 0x06, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x03, 0x04, 0x05, 0x05, 0x06, 0x03
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x04, 0x05, 0x06, 0x06, 0x07, 0x02, 0x02
.byte 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x04, 0x05, 0x05, 0x06, 0x07, 0x07, 0x08
.byte 0x01, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00, 0x04
.byte 0x05, 0x06, 0x06, 0x07, 0x08, 0x08, 0x09, 0x00
.byte 0x00, 0x01, 0x02, 0x02, 0x03, 0x04, 0x01, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00
.byte 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01
.byte 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00
.byte 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x02
.byte 0x01, 0x02, 0x03, 0x02, 0x03, 0x04, 0x03, 0x04
.byte 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09
.byte 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x09, 0x09
.byte 0x09, 0x09, 0x00, 0x00, 0x01, 0x01, 0x00, 0x09
.byte 0x09, 0x09, 0x09, 0x09, 0x02, 0x02, 0x00, 0x00
.byte 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x03, 0x03
.byte 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x09
.byte 0x03, 0x03, 0x04, 0x04, 0x00, 0x00, 0x01, 0x01
.byte 0x02, 0x02, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x06, 0x00, 0x00, 0x00, 0x03, 0x05, 0x07
.byte 0x00, 0x00, 0x02, 0x04, 0x06, 0x08, 0x00, 0x01
.byte 0x03, 0x05, 0x06, 0x09
.align 2
gDodrioBerryBgPal1:: @ 82F7DF0
.incbin "graphics/link_games/dodrioberry_bg1.gbapal"
.align 2
.incbin "graphics/link_games/dodrioberry_bg2.gbapal"
.align 2
gDodrioBerryPkmnPal:: @ 82F7E30
.incbin "graphics/link_games/dodrioberry_pkmn.gbapal"
.align 2
gDodrioBerryShinyPal:: @ 82F7E50
.incbin "graphics/link_games/dodrioberry_shiny.gbapal"
.align 2
gDodrioBerryStatusPal:: @ 82F7E70
.incbin "graphics/link_games/dodrioberry_status.gbapal"
.align 2
gDodrioBerrySpritesPal:: @ 82F7E90
.incbin "graphics/link_games/dodrioberry_berrysprites.gbapal"
.align 2
gDodrioBerrySpritesGfx:: @ 82F7EB0
.incbin "graphics/link_games/dodrioberry_berrysprites.4bpp.lz"
.align 2
gDodrioBerryPlatformPal:: @ 82F8064
.incbin "graphics/link_games/dodrioberry_platform.gbapal"
.align 2
gDodrioBerryBgGfx1:: @ 82F8084
.incbin "graphics/link_games/dodrioberry_bg1.4bpp.lz"
.align 2
gDodrioBerryBgGfx2:: @ 82F8914
.incbin "graphics/link_games/dodrioberry_bg2.4bpp.lz"
.align 2
gDodrioBerryStatusGfx:: @ 82F96E0
.incbin "graphics/link_games/dodrioberry_status.4bpp.lz"
.align 2
gDodrioBerryPlatformGfx:: @ 82F9774
.incbin "graphics/link_games/dodrioberry_platform.4bpp.lz"
.align 2
gDodrioBerryPkmnGfx:: @ 82F98BC
.incbin "graphics/link_games/dodrioberry_pkmn.4bpp.lz"
.align 2
gDodrioBerryBgTilemap1:: @ 82FAAD8
.incbin "graphics/link_games/dodrioberry_bg1.bin.lz"
.align 2
gDodrioBerryBgTilemap2Right:: @ 82FAD44
.incbin "graphics/link_games/dodrioberry_bg2right.bin.lz"
.align 2
gDodrioBerryBgTilemap2Left:: @ 82FAF94
.incbin "graphics/link_games/dodrioberry_bg2left.bin.lz"
.align 2
gUnknown_082FB1E0:: @ 82FB1E0
.byte 0x00, 0x00, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00
.align 2
gUnknown_082FB1E8:: @ 82FB1E8
.byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00
.align 2
gUnknown_082FB1F0:: @ 82FB1F0
.byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00
.align 2
gUnknown_082FB1F8:: @ 82FB1F8
.byte 0x00, 0x40, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00
.align 2
gUnknown_082FB200:: @ 82FB200
.2byte 0x0000, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB208:: @ 82FB208
.2byte 0x0040, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB210:: @ 82FB210
.2byte 0x0080, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB218:: @ 82FB218
.2byte 0x00c0, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB220:: @ 82FB220
.2byte 0x0100, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB228:: @ 82FB228
.4byte gUnknown_082FB200
.4byte gUnknown_082FB208
.4byte gUnknown_082FB210
.4byte gUnknown_082FB218
.4byte gUnknown_082FB220
.align 2
gUnknown_082FB23C:: @ 82FB23C
.2byte 0x0000, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB244:: @ 82FB244
.2byte 0x0004, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB24C:: @ 82FB24C
.2byte 0x0008, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB254:: @ 82FB254
.4byte gUnknown_082FB23C
.4byte gUnknown_082FB244
.4byte gUnknown_082FB24C
.align 2
gUnknown_082FB260:: @ 82FB260
.2byte 0x0000, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB268:: @ 82FB268
.2byte 0x0004, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB270:: @ 82FB270
.2byte 0x0008, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB278:: @ 82FB278
.2byte 0x000c, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB280:: @ 82FB280
.2byte 0x0010, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB288:: @ 82FB288
.2byte 0x0014, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB290:: @ 82FB290
.2byte 0x0018, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB298:: @ 82FB298
.2byte 0x001c, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB2A0:: @ 82FB2A0
.2byte 0x0020, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB2A8:: @ 82FB2A8
.4byte gUnknown_082FB260
.4byte gUnknown_082FB268
.4byte gUnknown_082FB270
.4byte gUnknown_082FB278
.4byte gUnknown_082FB280
.4byte gUnknown_082FB288
.4byte gUnknown_082FB290
.4byte gUnknown_082FB298
.4byte gUnknown_082FB2A0
.align 2
gUnknown_082FB2CC:: @ 82FB2CC
.2byte 0x0000, 0x0014
.2byte 0xfffe, 0x0000
.align 2
gUnknown_082FB2D4:: @ 82FB2D4
.4byte gUnknown_082FB2CC
.align 2
gUnknown_082FB2D8:: @ 82FB2D8
obj_pal gDodrioBerryPkmnPal, 0x0000
.align 2
gUnknown_082FB2E0:: @ 82FB2E0
obj_pal gDodrioBerryShinyPal, 0x0001
.align 2
gUnknown_082FB2E8:: @ 82FB2E8
obj_pal gDodrioBerryStatusPal, 0x0002
.align 2
gUnknown_082FB2F0:: @ 82FB2F0
spr_template 0x0001, 0x0002, gUnknown_082FB1E8, gUnknown_082FB254, NULL, gDummySpriteAffineAnimTable, nullsub_15
.align 2
.byte 0xD4, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44
.byte 0x45, 0xFB, 0x00, 0x00
.align 2
gUnknown_082FB314:: @ 82FB314
obj_pal gDodrioBerrySpritesPal, 0x0003
.align 2
gUnknown_082FB31C:: @ 82FB31C
.2byte 0x0058, 0x0080, 0x00a8, 0x00d0
.align 2
gUnknown_082FB324:: @ 82FB324
spr_template 0x0002, 0x0003, gUnknown_082FB1F0, gUnknown_082FB2A8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gUnknown_082FB33C:: @ 82FB33C
spr_template 0x0002, 0x0003, gUnknown_082FB1E8, gUnknown_082FB2A8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gUnknown_082FB354:: @ 82FB354
.byte 0x1E, 0x14
gUnknown_082FB356:: @ 82FB356
.byte 0xE6, 0x00
.align 2
gUnknown_082FB358:: @ 82FB358
.2byte 0x0037, 0x001e, 0x004a, 0x0000
.align 2
gUnknown_082FB360:: @ 82FB360
obj_pal gDodrioBerryPlatformPal, 0x0006
.align 2
gUnknown_082FB368:: @ 82FB368
spr_template 0x0005, 0x0006, gUnknown_082FB1F8, gUnknown_082FB2D4, NULL, gDummySpriteAffineAnimTable, sub_8028CF4
.align 2
gUnknown_082FB380:: @ 82FB380
.byte 0x01, 0x02, 0x03
gUnknown_082FB383:: @ 82FB383
.byte 0x01, 0x04, 0x05
.byte 0x01, 0x08, 0x09
.byte 0x01, 0x06, 0x07
.align 2
gUnknown_082FB38C:: @ 82FB38C
.byte 0x0c, 0x06, 0x00, 0x00
.align 2
gUnknown_082FB390:: @ 82FB390
.byte 0x09, 0x0a, 0x00, 0x00, 0x0f, 0x06, 0x00, 0x00
.align 2
gUnknown_082FB398:: @ 82FB398
.byte 0x0c, 0x06, 0x00, 0x00, 0x12, 0x0a, 0x00, 0x00
.byte 0x06, 0x0a, 0x00, 0x00
.align 2
gUnknown_082FB3A4:: @ 82FB3A4
.byte 0x09, 0x0a, 0x00, 0x00, 0x0f, 0x06, 0x00, 0x00
.byte 0x15, 0x0a, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00
.align 2
gUnknown_082FB3B4:: @ 82FB3B4
.byte 0x0c, 0x06, 0x00, 0x00, 0x12, 0x0a, 0x00, 0x00
.byte 0x17, 0x06, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00
.byte 0x06, 0x0a, 0x00, 0x00
.align 2
gUnknown_082FB3C8:: @ 82FB3C8
.4byte gUnknown_082FB38C
.4byte gUnknown_082FB390
.4byte gUnknown_082FB398
.4byte gUnknown_082FB3A4
.4byte gUnknown_082FB3B4
.align 2
gUnknown_082FB3DC:: @ 82FB3DC
.4byte gText_1Colon
.4byte gText_2Colon
.4byte gText_3Colon
.4byte gText_4Colon
.4byte gText_5Colon
.align 2
gUnknown_082FB3F0:: @ 82FB3F0
.2byte 0x005c, 0x0084, 0x00ac, 0x00d4
gUnknown_082FB3F8:: @ 82FB3F8
.2byte 0x0021, 0x0031, 0x0041, 0x0051, 0x0061
gUnknown_082FB402:: @ 82FB402
.2byte 0x0011, 0x0021, 0x0031, 0x0041, 0x0051
.align 2
gUnknown_082FB40C:: @ 82FB40C
.4byte 0x00000000, sub_8029338
.4byte 0x00000001, sub_8029440
.4byte 0x00000002, sub_802988C
.4byte 0x00000003, sub_802A010
.4byte 0x00000004, sub_802A380
.4byte 0x00000005, sub_802A454
.4byte 0x00000006, sub_802A534
.4byte 0x00000007, sub_802A588
.4byte 0x00000008, unused_0
.4byte 0x00000009, nullsub_16
.align 2
gUnknown_082FB45C:: @ 82FB45C
.byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00

File diff suppressed because it is too large Load Diff

View File

@ -1,207 +0,0 @@
gGiftRibbonDescriptionPart1_2003RegionalTourney:: @ 8623A74
.string "2003 REGIONAL TOURNEY$"
gGiftRibbonDescriptionPart2_Champion:: @ 8623A8A
.string "CHAMPION RIBBON$"
gGiftRibbonDescriptionPart1_2003NationalTourney:: @ 8623A9A
.string "2003 NATIONAL TOURNEY$"
gGiftRibbonDescriptionPart1_2003GlobalCup:: @ 8623AB0
.string "2003 GLOBAL CUP$"
gGiftRibbonDescriptionPart2_RunnerUp:: @ 8623AC0
.string "Runner-up RIBBON$"
gGiftRibbonDescriptionPart2_Semifinalist:: @ 8623AD1
.string "Semifinalist RIBBON$"
gGiftRibbonDescriptionPart1_2004RegionalTourney:: @ 8623AE5
.string "2004 REGIONAL TOURNEY$"
gGiftRibbonDescriptionPart1_2004NationalTourney:: @ 8623AFB
.string "2004 NATIONAL TOURNEY$"
gGiftRibbonDescriptionPart1_2004GlobalCup:: @ 8623B11
.string "2004 GLOBAL CUP$"
gGiftRibbonDescriptionPart1_2005RegionalTourney:: @ 8623B21
.string "2005 REGIONAL TOURNEY$"
gGiftRibbonDescriptionPart1_2005NationalTourney:: @ 8623B37
.string "2005 NATIONAL TOURNEY$"
gGiftRibbonDescriptionPart1_2005GlobalCup:: @ 8623B4D
.string "2005 GLOBAL CUP$"
gGiftRibbonDescriptionPart1_PokemonBattleCup:: @ 8623B5D
.string "POKéMON BATTLE CUP$"
gGiftRibbonDescriptionPart2_Participation:: @ 8623B70
.string "Participation RIBBON$"
gGiftRibbonDescriptionPart1_PokemonLeague:: @ 8623B85
.string "POKéMON LEAGUE$"
gGiftRibbonDescriptionPart1_AdvanceCup:: @ 8623B94
.string "ADVANCE CUP$"
gGiftRibbonDescriptionPart1_PokemonTournament:: @ 8623BA0
.string "POKéMON Tournament$"
gGiftRibbonDescriptionPart2_Participation2:: @ 8623BB3
.string "Participation RIBBON$"
gGiftRibbonDescriptionPart1_PokemonEvent:: @ 8623BC8
.string "POKéMON Event$"
gGiftRibbonDescriptionPart1_PokemonFestival:: @ 8623BD6
.string "POKéMON Festival$"
gGiftRibbonDescriptionPart1_DifficultyClearing:: @ 8623BE7
.string "Difficulty-clearing$"
gGiftRibbonDescriptionPart2_Commemorative:: @ 8623BFB
.string "Commemorative RIBBON$"
gGiftRibbonDescriptionPart1_ClearingAllChallenges:: @ 8623C10
.string "RIBBON awarded for$"
gGiftRibbonDescriptionPart2_ClearingAllChallenges:: @ 8623C23
.string "clearing all challenges.$"
gGiftRibbonDescriptionPart1_100StraightWin:: @ 8623C3C
.string "100-straight Win$"
gGiftRibbonDescriptionPart1_DarknessTower:: @ 8623C4D
.string "DARKNESS TOWER Clear$"
gGiftRibbonDescriptionPart1_RedTower:: @ 8623C62
.string "RED TOWER Clear$"
gGiftRibbonDescriptionPart1_BlackironTower:: @ 8623C72
.string "BLACKIRON TOWER Clear$"
gGiftRibbonDescriptionPart1_FinalTower:: @ 8623C88
.string "FINAL TOWER Clear$"
gGiftRibbonDescriptionPart1_LegendMaking:: @ 8623C9A
.string "Legend-making$"
gGiftRibbonDescriptionPart1_PokemonCenterTokyo:: @ 8623CA8
.string "POKéMON CENTER TOKYO$"
gGiftRibbonDescriptionPart1_PokemonCenterOsaka:: @ 8623CBD
.string "POKéMON CENTER OSAKA$"
gGiftRibbonDescriptionPart1_PokemonCenterNagoya:: @ 8623CD2
.string "POKéMON CENTER NAGOYA$"
gGiftRibbonDescriptionPart1_PokemonCenterNY:: @ 8623CE8
.string "POKéMON CENTER NY$"
gGiftRibbonDescriptionPart1_SummerHolidays:: @ 8623CFA
.string "Summer Holidays RIBBON$"
gGiftRibbonDescriptionPart2_EmptyString:: @ 8623D11
.string "$"
gGiftRibbonDescriptionPart1_WinterHolidays:: @ 8623D12
.string "Winter Holidays RIBBON$"
gGiftRibbonDescriptionPart1_SpringHolidays:: @ 8623D29
.string "Spring Holidays RIBBON$"
gGiftRibbonDescriptionPart1_Evergreen:: @ 8623D40
.string "Evergreen RIBBON$"
gGiftRibbonDescriptionPart1_SpecialHoliday:: @ 8623D51
.string "Special Holiday RIBBON$"
gGiftRibbonDescriptionPart1_HardWorker:: @ 8623D68
.string "Hard Worker RIBBON$"
gGiftRibbonDescriptionPart1_LotsOfFriends:: @ 8623D7B
.string "Lots of Friends RIBBON$"
gGiftRibbonDescriptionPart1_FullOfEnergy:: @ 8623D92
.string "Full of Energy RIBBON$"
gGiftRibbonDescriptionPart1_LovedPokemon:: @ 8623DA8
.string "A commemorative RIBBON$"
gGiftRibbonDescriptionPart2_LovedPokemon:: @ 8623DBF
.string "for a loved POKéMON.$"
gGiftRibbonDescriptionPart1_LoveForPokemon:: @ 8623DD4
.string "RIBBON that shows$"
gGiftRibbonDescriptionPart2_LoveForPokemon:: @ 8623DE6
.string "love for POKéMON.$"
.align 2
gGiftRibbonDescriptionPointers:: @ 8623DF8
.4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation
.4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation
.4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion
.4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp
.4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist
.4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation
.4byte gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2
.4byte gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2
.4byte gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2
.4byte gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative
.4byte gGiftRibbonDescriptionPart1_ClearingAllChallenges, gGiftRibbonDescriptionPart2_ClearingAllChallenges
.4byte gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative
.4byte gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative
.4byte gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative
.4byte gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative
.4byte gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative
.4byte gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative
.4byte gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative
.4byte gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative
.4byte gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative
.4byte gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative
.4byte gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString
.4byte gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString
.4byte gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString
.4byte gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString
.4byte gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString
.4byte gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString
.4byte gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString
.4byte gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString
.4byte gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon
.4byte gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon

View File

@ -1,84 +0,0 @@
gRibbonDescriptionPart1_Champion:: @ 862383C
.string "CHAMPION-beating, HALL$"
gRibbonDescriptionPart2_Champion:: @ 8623853
.string "OF FAME Member RIBBON$"
gRibbonDescriptionPart1_CoolContest:: @ 8623869
.string "COOL CONTEST$"
gRibbonDescriptionPart1_BeautyContest:: @ 8623876
.string "BEAUTY CONTEST$"
gRibbonDescriptionPart1_CuteContest:: @ 8623885
.string "CUTE CONTEST$"
gRibbonDescriptionPart1_SmartContest:: @ 8623892
.string "SMART CONTEST$"
gRibbonDescriptionPart1_ToughContest:: @ 86238A0
.string "TOUGH CONTEST$"
gRibbonDescriptionPart2_NormalRank:: @ 86238AE
.string "Normal Rank winner!$"
gRibbonDescriptionPart2_SuperRank:: @ 86238C2
.string "Super Rank winner!$"
gRibbonDescriptionPart2_HyperRank:: @ 86238D5
.string "Hyper Rank winner!$"
gRibbonDescriptionPart2_MasterRank:: @ 86238E8
.string "Master Rank winner!$"
gRibbonDescriptionPart1_Winning:: @ 86238FC
.string "For clearing LV50$"
gRibbonDescriptionPart2_Winning:: @ 862390E
.string "at the BATTLE TOWER.$"
gRibbonDescriptionPart1_Victory:: @ 8623923
.string "For clearing Open Level$"
gRibbonDescriptionPart2_Victory:: @ 862393B
.string "at the BATTLE TOWER.$"
gRibbonDescriptionPart1_Artist:: @ 8623950
.string "RIBBON for being chosen$"
gRibbonDescriptionPart2_Artist:: @ 8623968
.string "as a super sketch model.$"
gRibbonDescriptionPart1_Effort:: @ 8623981
.string "RIBBON awarded for$"
gRibbonDescriptionPart2_Effort:: @ 8623994
.string "being a hard worker.$"
.align 2
gRibbonDescriptionPointers:: @ 86239AC
.4byte gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion
.4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank
.4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank
.4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank
.4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank
.4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank
.4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank
.4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank
.4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank
.4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank
.4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank
.4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank
.4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank
.4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank
.4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank
.4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank
.4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank
.4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank
.4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank
.4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank
.4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank
.4byte gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning
.4byte gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory
.4byte gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist
.4byte gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort

View File

@ -1,113 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 4
gUnknown_085DFA60:: @ 85DFA60
.incbin "graphics/interface/85DFA60.bin"
gUnknown_085DFA80:: @ 85DFA80
.incbin "graphics/interface/85DFA80.4bpp"
gUnknown_085DFB60:: @ 85DFB60
.incbin "graphics/interface/85DFB60.bin"
gUnknown_085DFC0C:: @ 85DFC0C
.incbin "graphics/interface/85DFC0C.bin"
gUnknown_085DFCB0:: @ 85DFCB0
.4byte 22, 47, 33, 24, 23
gUnknown_085DFCC4:: @ 85DFCC4
.byte 0, 4, 3, 2, 1
gUnknown_085DFCC9:: @ 85DFCC9
.byte 0, 8, 1
gUnknown_085DFCCC:: @ 85DFCCC
.4byte 0x1F8
.4byte 0x31E1
.4byte 0x4021DF
.4byte 0x1172
gUnknown_085DFCDC:: @ 85DFCDC
window_template 0, 0xD, 1, 0xD, 4, 0xF, 1
window_template 0, 0, 0xE, 0xB, 2, 0xF, 0x35
window_template 0, 1, 0x11, 0x1C, 2, 0xF, 0x4B
null_window_template
sUsePokeblockYesNoWinTemplate:: @ 85DFCFC
window_template 0, 0x18, 0xB, 5, 4, 0xF, 0x83
sContestStatNames:: @ 85DFD04
.4byte gText_Coolness
.4byte gText_Toughness
.4byte gText_Smartness
.4byte gText_Cuteness
.4byte gText_Beauty3
gSpriteSheet_ConditionUpDown:: @ 85DFD18
obj_tiles gUsePokeblockUpDown_Gfx, 0x200, 0
gSpritePalette_ConditionUpDown:: @ 85DFD20
obj_pal gUsePokeblockUpDown_Pal, 0
gUnknown_085DFD28:: @ 85DFD28
.2byte 0x9c, 0x24
.2byte 0x75, 0x3b
.2byte 0x75, 0x76
.2byte 0xc5, 0x76
.2byte 0xc5, 0x3b
gUnknown_085DFD3C:: @ 85DFD3C
.2byte 0x4000
.2byte 0x8000
.2byte 0x400
.2byte 0
gUnknown_085DFD44:: @ 85DFD44
obj_image_anim_frame 0, 5
obj_image_anim_end
gUnknown_085DFD4C:: @ 85DFD4C
obj_image_anim_frame 8, 5
obj_image_anim_end
gUnknown_085DFD54:: @ 85DFD54
.4byte gUnknown_085DFD44
.4byte gUnknown_085DFD4C
gSpriteTemplate_085DFD5C:: @ 85DFD5C
spr_template 0, 0, gUnknown_085DFD3C, gUnknown_085DFD54, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
gUnknown_085DFD74:: @ 85DFD74
.2byte 0x4000
.2byte 0xC000
.2byte 0x400
.2byte 0
gUnknown_085DFD7C:: @ 85DFD7C
obj_image_anim_frame 0, 5
obj_image_anim_end
gUnknown_085DFD84:: @ 85DFD84
obj_image_anim_frame 32, 5
obj_image_anim_end
gUnknown_085DFD8C:: @ 85DFD8C
obj_image_anim_frame 64, 5
obj_image_anim_end
gUnknown_085DFD94:: @ 85DFD94
.4byte gUnknown_085DFD7C
.4byte gUnknown_085DFD84
.4byte gUnknown_085DFD8C
gUnknown_085DFDA0:: @ 85DFDA0
spr_template 1, 1, gUnknown_085DFD74, gUnknown_085DFD94, NULL, gDummySpriteAffineAnimTable, sub_8168374
gUnknown_085DFDB8:: @ 85DFDB8
.4byte gUsePokeblockCondition_Pal
.4byte 1

View File

@ -1 +1,3 @@
0000000000000000000000000000000 0 0000000000000000000 00000000000000000000 00000000000000000000000000000
00000000000000000000000000000000 0 0 0 0 00 000000000
0000 0 0 0 0 0 00 000000000
000000 0 0 0 00 0000000000000000000000

View File

@ -1,3 +1 @@
00000000000000000000000000000000 0 0 0 0 00 000000000
0000 0 0 0 0 0 00 000000000
000000 0 0 0 00 0000000000000000000000
0000000000000000000000000000000 0 0000000000000000000 00000000000000000000 00000000000000000000000000000

View File

@ -1,3 +1,3 @@
000000000000000000000000000000000000000000 00 00 0 000000
0000000000
00000000 0 00 00000000000000000000000000
000000000000000000000000000000000000
000000 000 00 0 000000
0000000000 0000000000000 0 00000000 00000000000000

View File

@ -1,3 +1,3 @@
000000000000000000000000000000000000
000000 000 00 0 000000
0000000000 0000000000000 0 00000000 00000000000000
000000000000000000000000000000000000000000 00 00 0 000000
0000000000
00000000 0 00 00000000000000000000000000

View File

@ -1 +1,3 @@
0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000
00000000000000000000000000 0 00000000
0000000000
000000000 000000000 000 0 00000000 0000000000000000000000000

View File

@ -1,3 +1 @@
00000000000000000000000000 0 00000000
0000000000
000000000 000000000 000 0 00000000 0000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000

View File

@ -1,6 +1,8 @@
#ifndef GUARD_BERRY_CRUSH_H
#define GUARD_BERRY_CRUSH_H
#include "main.h"
void sub_8020C70(MainCallback callback);
#endif // GUARD_BERRY_CRUSH_H

View File

@ -0,0 +1,8 @@
#ifndef GUARD_DODRIO_BERRY_PICKING_H
#define GUARD_DODRIO_BERRY_PICKING_H
void sub_802493C(u16 a0, void (*callback)(void));
void sub_8027A5C(void);
void sub_8027AAC(void);
#endif // GUARD_DODRIO_BERRY_PICKING_H

View File

@ -4939,6 +4939,9 @@ extern const u32 gLinkMiscMenu_Tilemap[];
// Use Pokeblock
extern const u8 gPokenavConditionCancel_Gfx[];
extern const u16 gPokenavConditionCancel_Pal[];
extern const u8 gUsePokeblockUpDown_Gfx[];
extern const u16 gUsePokeblockUpDown_Pal[];
extern const u16 gUsePokeblockCondition_Pal[];
// Berry Crush
extern const u32 gUnknown_08DE34B8[];

View File

@ -25,7 +25,7 @@ void InitStandardTextBoxWindows(void);
void sub_8197200(void);
u16 RunTextPrintersAndIsPrinter0Active(void);
void sub_81973A4(void);
void DrawDialogueFrame(u8, u8);
void DrawDialogueFrame(u8 windowId, bool8 copyToVram);
void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram);
u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
void PrintPlayerNameOnWindow(u8, const u8*, u16, u16);

View File

@ -107,7 +107,7 @@ void sub_81C8234(void);
// pokenav_match_call_data.c
bool32 sub_81D17E8(u32 idx);
u8 sub_81D16DC(u32 idx);
u8 MatchCallMapSecGetByIndex(u32 idx);
bool32 sub_81D1BF8(u32 idx);
bool32 MatchCallFlagGetByIndex(u32 idx);
u32 MatchCall_GetRematchTableIdx(u32 idx);

View File

@ -2708,6 +2708,28 @@ extern const u8 gText_Symbols[];
extern const u8 gText_Register2[];
extern const u8 gText_Exit2[];
// Dodrio Berry Picking
extern const u8 gText_BerryPickingRecords[];
extern const u8 gText_BerriesPicked[];
extern const u8 gText_BerriesInRowFivePlayers[];
extern const u8 gText_BestScore[];
extern const u8 gText_1Colon[];
extern const u8 gText_2Colon[];
extern const u8 gText_3Colon[];
extern const u8 gText_4Colon[];
extern const u8 gText_5Colon[];
extern const u8 gText_SpacePoints[];
extern const u8 gText_10P30P50P50P[];
extern const u8 gText_AnnouncingPrizes[];
extern const u8 gText_AnnouncingRankings[];
extern const u8 gText_FirstPlacePrize[];
extern const u8 gText_CantHoldAnyMore[];
extern const u8 gText_FilledStorageSpace[];
extern const u8 gText_BerryPickingResults[];
extern const u8 gText_WantToPlayAgain[];
extern const u8 gText_CommunicationStandby3[];
extern const u8 gText_SomeoneDroppedOut[];
// Pokemon jump
extern const u8 gText_WantToPlayAgain2[];
extern const u8 gText_SomeoneDroppedOut2[];
@ -2729,4 +2751,32 @@ extern const u8 gText_NumberOfBattles[];
extern const u8 gText_Unknown[];
extern const u8 gText_TrainerCloseBy[];
// pokenav_unk_2
extern const u8 gUnknown_085EBCC5[];
extern const u8 gUnknown_085EBCE8[];
extern const u8 gUnknown_085EBD01[];
extern const u8 gUnknown_085EBD1C[];
extern const u8 gUnknown_085EBD34[];
extern const u8 gUnknown_085EBD83[];
extern const u8 gUnknown_085EBDA2[];
extern const u8 gUnknown_085EBDBF[];
extern const u8 gUnknown_085EBDDB[];
extern const u8 gUnknown_085EBDEE[];
extern const u8 gUnknown_085EBE06[];
extern const u8 gUnknown_085EBE19[];
extern const u8 gUnknown_085EBE2D[];
extern const u8 gUnknown_085EBE41[];
// pokenav_unk_4
extern const u8 gUnknown_085EC017[];
extern const u8 gUnknown_085EC01C[];
extern const u8 gUnknown_085EC022[];
// use_pokeblock
extern const u8 gText_Coolness[];
extern const u8 gText_Toughness[];
extern const u8 gText_Smartness[];
extern const u8 gText_Cuteness[];
extern const u8 gText_Beauty3[];
#endif // GUARD_STRINGS_H

View File

@ -75,7 +75,6 @@ SECTIONS {
asm/berry_crush.o(.text*);
src/berry_powder.o(.text*);
src/dodrio_berry_picking.o(.text*);
asm/dodrio_berry_picking.o(.text*);
src/pokemon_jump.o(.text*);
src/rtc.o(.text*);
src/main_menu.o(.text*);
@ -447,7 +446,6 @@ SECTIONS {
data/berry_crush.o(.rodata);
data/berry_powder.o(.rodata);
src/dodrio_berry_picking.o(.rodata);
data/dodrio_berry_picking.o(.rodata);
src/pokemon_jump.o(.rodata);
src/rtc.o(.rodata);
src/main_menu.o(.rodata);
@ -599,7 +597,6 @@ SECTIONS {
src/roamer.o(.rodata);
src/battle_tower.o(.rodata);
src/use_pokeblock.o(.rodata);
data/use_pokeblock.o(.rodata);
src/battle_controller_wally.o(.rodata);
src/player_pc.o(.rodata);
src/intro.o(.rodata);
@ -657,10 +654,13 @@ SECTIONS {
src/pokenav_main_menu.o(.rodata);
src/pokenav_match_call_ui.o(.rodata);
src/pokenav_unk_1.o(.rodata);
data/pokenav.o(.rodata);
src/pokenav_unk_2.o(.rodata);
src/pokenav_unk_3.o(.rodata);
src/pokenav_unk_4.o(.rodata);
src/pokenav_unk_5.o(.rodata);
src/pokenav_unk_7.o(.rodata);
src/pokenav_unk_8.o(.rodata);
src/pokenav_unk_9.o(.rodata);
src/pokenav_unk_10.o(.rodata);
src/pokenav_match_call_data.o(.rodata);
src/menu_specialized.o(.rodata);

View File

@ -5315,21 +5315,19 @@ static void sub_8102D8C(s16 a, s16 b, s16* c, s16* d, s8 e)
static void sub_8102DE4(struct Sprite* sprite)
{
int b;
s16 a;
int c;
s16 y, yDelta;
u8 index;
sprite->data[0]++;
b = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8);
yDelta = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8);
sprite->data[4] += sprite->data[6];
sprite->data[5] += sprite->data[7];
sprite->pos1.x = sprite->data[4] >> 4;
sprite->pos1.y = sprite->data[5] >> 4;
sprite->pos2.y = Sin(b, 15);
a = (u16)sprite->pos1.y;
c = (u16)sprite->pos1.x;
sprite->pos2.y = Sin(yDelta, 15);
if ((u32)((c + 16) << 16) > (0x110) << 16 || a < -16 || a > 0x80)
y = sprite->pos1.y;
if (sprite->pos1.x < -16 || sprite->pos1.x > 256 || y < -16 || y > 128)
{
DestroySpriteAndMatrix(sprite);
}
@ -5350,12 +5348,8 @@ static void sub_8102DE4(struct Sprite* sprite)
void sub_8102EB0(struct Sprite* sprite)
{
int a;
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
{
a = gBattleAnimArgs[1];
*(u16 *)&gBattleAnimArgs[1] = -a;
}
gBattleAnimArgs[1] *= -1;
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1];
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2];
@ -5541,8 +5535,8 @@ static void sub_8103300(struct Sprite* sprite)
static void sub_8103320(struct Sprite* sprite)
{
s16 temp;
s16 temp2;
s16 x1, x2;
sprite->data[1] += 4;
if (sprite->data[1] > 254)
{
@ -5564,20 +5558,21 @@ static void sub_8103320(struct Sprite* sprite)
if (sprite->data[1] > 0x9F)
sprite->subpriority = sprite->data[2];
temp = gSineTable[sprite->data[1]];
sprite->pos2.x = (temp2 = temp >> 3) + (temp2 >> 1);
x1 = gSineTable[sprite->data[1]];
x2 = x1 >> 3;
sprite->pos2.x = (x1 >> 3) + (x2 >> 1);
}
void sub_8103390(struct Sprite* sprite)
{
u8 bank;
u8 battler;
if (gBattleAnimArgs[0] == 0)
bank = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
else
bank = gBattleAnimTarget;
battler = gBattleAnimTarget;
sub_810310C(bank, sprite);
if (GetBattlerSide(bank) == B_SIDE_PLAYER)
sub_810310C(battler, sprite);
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
StartSpriteAnim(sprite, 0);
sprite->data[0] = 2;

View File

@ -2504,13 +2504,10 @@ void sub_815BE04(struct Sprite *sprite)
static void sub_815BF44(struct Sprite *sprite)
{
int var0;
s8 var1;
var0 = (u16)sprite->data[2] + (u16)sprite->data[3];
var1 = var0 >> 8;
sprite->pos2.y -= var1;
sprite->data[3] = var0 & 0xFF;
s16 delta = sprite->data[3] + sprite->data[2];
sprite->pos2.y -= delta >> 8;
sprite->data[3] += sprite->data[2];
sprite->data[3] &= 0xFF;
if (sprite->data[4] == 0 && sprite->pos2.y < -8)
{
gSprites[sprite->data[6]].invisible = 0;
@ -2543,19 +2540,12 @@ static void sub_815BFF4(struct Sprite *sprite)
static void sub_815C050(struct Sprite *sprite)
{
u16 d2;
register u16 d3 asm("r1");
int var0;
s8 var1;
if (!sprite->invisible)
{
d2 = sprite->data[2];
d3 = sprite->data[3];
var0 = d2 + d3;
var1 = var0 >> 8;
sprite->pos2.y -= var1;
sprite->data[3] = var0 & 0xFF;
s16 delta = sprite->data[3] + sprite->data[2];
sprite->pos2.y -= delta >> 8;
sprite->data[3] += sprite->data[2];
sprite->data[3] &= 0xFF;
if (--sprite->data[1] == -1)
{
sprite->invisible = 1;
@ -4322,7 +4312,7 @@ static void AnimSmellingSaltExclamationStep(struct Sprite *sprite)
// Claps a hand several times.
// arg 0: which hand
// arg 1:
// arg 1:
void AnimHelpingHandClap(struct Sprite *sprite)
{
if (gBattleAnimArgs[0] == 0)

File diff suppressed because it is too large Load Diff

View File

@ -684,7 +684,7 @@ static void sub_8130760(u8 contestResult)
gUnknown_030061A0.var_16 = 2;
gUnknown_030061A0.var_0 = contestResult;
gUnknown_030061A0.var_10 = 0x6010000;
gUnknown_030061A0.var_10 = OBJ_VRAM0;
sub_8124F2C(&gUnknown_030061A0);
sub_81261A4(&gUnknown_030061A0);

View File

@ -0,0 +1,113 @@
const struct CityMapEntry gPokenavCityMaps[] =
{
{
.mapSecId = 0,
.index = 0,
.tilemap = gPokenavCityMap_Littleroot_0,
},
{
.mapSecId = 1,
.index = 0,
.tilemap = gPokenavCityMap_Oldale_0,
},
{
.mapSecId = 2,
.index = 0,
.tilemap = gPokenavCityMap_Dewford_0,
},
{
.mapSecId = 3,
.index = 0,
.tilemap = gPokenavCityMap_Lavarige_0,
},
{
.mapSecId = 4,
.index = 0,
.tilemap = gPokenavCityMap_Fallarbor_0,
},
{
.mapSecId = 5,
.index = 0,
.tilemap = gPokenavCityMap_Verdanturf_0,
},
{
.mapSecId = 6,
.index = 0,
.tilemap = gPokenavCityMap_Pacifidlog_0,
},
{
.mapSecId = 7,
.index = 0,
.tilemap = gPokenavCityMap_Petalburg_0,
},
{
.mapSecId = 8,
.index = 0,
.tilemap = gPokenavCityMap_Slateport_0,
},
{
.mapSecId = 8,
.index = 1,
.tilemap = gPokenavCityMap_Slateport_1,
},
{
.mapSecId = 9,
.index = 0,
.tilemap = gPokenavCityMap_Mauville_0,
},
{
.mapSecId = 9,
.index = 1,
.tilemap = gPokenavCityMap_Mauville_1,
},
{
.mapSecId = 10,
.index = 0,
.tilemap = gPokenavCityMap_Rustboro_0,
},
{
.mapSecId = 10,
.index = 1,
.tilemap = gPokenavCityMap_Rustboro_1,
},
{
.mapSecId = 11,
.index = 0,
.tilemap = gPokenavCityMap_Fortree_0,
},
{
.mapSecId = 12,
.index = 0,
.tilemap = gPokenavCityMap_Lilycove_0,
},
{
.mapSecId = 12,
.index = 1,
.tilemap = gPokenavCityMap_Lilycove_1,
},
{
.mapSecId = 13,
.index = 0,
.tilemap = gPokenavCityMap_Mossdeep_0,
},
{
.mapSecId = 13,
.index = 1,
.tilemap = gPokenavCityMap_Mossdeep_1,
},
{
.mapSecId = 14,
.index = 0,
.tilemap = gPokenavCityMap_Sootopolis_0,
},
{
.mapSecId = 15,
.index = 0,
.tilemap = gPokenavCityMap_EverGrande_0,
},
{
.mapSecId = 15,
.index = 1,
.tilemap = gPokenavCityMap_EverGrande_1,
},
};

View File

@ -0,0 +1,22 @@
const u32 gPokenavCityMap_Lavarige_0[] = INCBIN_U32("graphics/pokenav/city_maps/lavaridge_0.bin.lz");
const u32 gPokenavCityMap_Fallarbor_0[] = INCBIN_U32("graphics/pokenav/city_maps/fallarbor_0.bin.lz");
const u32 gPokenavCityMap_Fortree_0[] = INCBIN_U32("graphics/pokenav/city_maps/fortree_0.bin.lz");
const u32 gPokenavCityMap_Slateport_0[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_0.bin.lz");
const u32 gPokenavCityMap_Slateport_1[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_1.bin.lz");
const u32 gPokenavCityMap_Rustboro_0[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_0.bin.lz");
const u32 gPokenavCityMap_Rustboro_1[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_1.bin.lz");
const u32 gPokenavCityMap_Pacifidlog_0[] = INCBIN_U32("graphics/pokenav/city_maps/pacifidlog_0.bin.lz");
const u32 gPokenavCityMap_Mauville_1[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_1.bin.lz");
const u32 gPokenavCityMap_Mauville_0[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_0.bin.lz");
const u32 gPokenavCityMap_Oldale_0[] = INCBIN_U32("graphics/pokenav/city_maps/oldale_0.bin.lz");
const u32 gPokenavCityMap_Lilycove_1[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_1.bin.lz");
const u32 gPokenavCityMap_Lilycove_0[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_0.bin.lz");
const u32 gPokenavCityMap_Littleroot_0[] = INCBIN_U32("graphics/pokenav/city_maps/littleroot_0.bin.lz");
const u32 gPokenavCityMap_Dewford_0[] = INCBIN_U32("graphics/pokenav/city_maps/dewford_0.bin.lz");
const u32 gPokenavCityMap_Sootopolis_0[] = INCBIN_U32("graphics/pokenav/city_maps/sootopolis_0.bin.lz");
const u32 gPokenavCityMap_EverGrande_0[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_0.bin.lz");
const u32 gPokenavCityMap_EverGrande_1[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_1.bin.lz");
const u32 gPokenavCityMap_Verdanturf_0[] = INCBIN_U32("graphics/pokenav/city_maps/verdanturf_0.bin.lz");
const u32 gPokenavCityMap_Mossdeep_1[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_1.bin.lz");
const u32 gPokenavCityMap_Mossdeep_0[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_0.bin.lz");
const u32 gPokenavCityMap_Petalburg_0[] = INCBIN_U32("graphics/pokenav/city_maps/petalburg_0.bin.lz");

View File

@ -0,0 +1,115 @@
const u8 gGiftRibbonDescriptionPart1_2003RegionalTourney[] = _("2003 REGIONAL TOURNEY");
const u8 gGiftRibbonDescriptionPart2_Champion[] = _("CHAMPION RIBBON");
const u8 gGiftRibbonDescriptionPart1_2003NationalTourney[] = _("2003 NATIONAL TOURNEY");
const u8 gGiftRibbonDescriptionPart1_2003GlobalCup[] = _("2003 GLOBAL CUP");
const u8 gGiftRibbonDescriptionPart2_RunnerUp[] = _("Runner-up RIBBON");
const u8 gGiftRibbonDescriptionPart2_Semifinalist[] = _("Semifinalist RIBBON");
const u8 gGiftRibbonDescriptionPart1_2004RegionalTourney[] = _("2004 REGIONAL TOURNEY");
const u8 gGiftRibbonDescriptionPart1_2004NationalTourney[] = _("2004 NATIONAL TOURNEY");
const u8 gGiftRibbonDescriptionPart1_2004GlobalCup[] = _("2004 GLOBAL CUP");
const u8 gGiftRibbonDescriptionPart1_2005RegionalTourney[] = _("2005 REGIONAL TOURNEY");
const u8 gGiftRibbonDescriptionPart1_2005NationalTourney[] = _("2005 NATIONAL TOURNEY");
const u8 gGiftRibbonDescriptionPart1_2005GlobalCup[] = _("2005 GLOBAL CUP");
const u8 gGiftRibbonDescriptionPart1_PokemonBattleCup[] = _("POKéMON BATTLE CUP");
const u8 gGiftRibbonDescriptionPart2_Participation[] = _("Participation RIBBON");
const u8 gGiftRibbonDescriptionPart1_PokemonLeague[] = _("POKéMON LEAGUE");
const u8 gGiftRibbonDescriptionPart1_AdvanceCup[] = _("ADVANCE CUP");
const u8 gGiftRibbonDescriptionPart1_PokemonTournament[] = _("POKéMON Tournament");
const u8 gGiftRibbonDescriptionPart2_Participation2[] = _("Participation RIBBON");
const u8 gGiftRibbonDescriptionPart1_PokemonEvent[] = _("POKéMON Event");
const u8 gGiftRibbonDescriptionPart1_PokemonFestival[] = _("POKéMON Festival");
const u8 gGiftRibbonDescriptionPart1_DifficultyClearing[] = _("Difficulty-clearing");
const u8 gGiftRibbonDescriptionPart2_Commemorative[] = _("Commemorative RIBBON");
const u8 gGiftRibbonDescriptionPart1_ClearingAllChallenges[] = _("RIBBON awarded for");
const u8 gGiftRibbonDescriptionPart2_ClearingAllChallenges[] = _("clearing all challenges.");
const u8 gGiftRibbonDescriptionPart1_100StraightWin[] = _("100-straight Win");
const u8 gGiftRibbonDescriptionPart1_DarknessTower[] = _("DARKNESS TOWER Clear");
const u8 gGiftRibbonDescriptionPart1_RedTower[] = _("RED TOWER Clear");
const u8 gGiftRibbonDescriptionPart1_BlackironTower[] = _("BLACKIRON TOWER Clear");
const u8 gGiftRibbonDescriptionPart1_FinalTower[] = _("FINAL TOWER Clear");
const u8 gGiftRibbonDescriptionPart1_LegendMaking[] = _("Legend-making");
const u8 gGiftRibbonDescriptionPart1_PokemonCenterTokyo[] = _("POKéMON CENTER TOKYO");
const u8 gGiftRibbonDescriptionPart1_PokemonCenterOsaka[] = _("POKéMON CENTER OSAKA");
const u8 gGiftRibbonDescriptionPart1_PokemonCenterNagoya[] = _("POKéMON CENTER NAGOYA");
const u8 gGiftRibbonDescriptionPart1_PokemonCenterNY[] = _("POKéMON CENTER NY");
const u8 gGiftRibbonDescriptionPart1_SummerHolidays[] = _("Summer Holidays RIBBON");
const u8 gGiftRibbonDescriptionPart2_EmptyString[] = _("");
const u8 gGiftRibbonDescriptionPart1_WinterHolidays[] = _("Winter Holidays RIBBON");
const u8 gGiftRibbonDescriptionPart1_SpringHolidays[] = _("Spring Holidays RIBBON");
const u8 gGiftRibbonDescriptionPart1_Evergreen[] = _("Evergreen RIBBON");
const u8 gGiftRibbonDescriptionPart1_SpecialHoliday[] = _("Special Holiday RIBBON");
const u8 gGiftRibbonDescriptionPart1_HardWorker[] = _("Hard Worker RIBBON");
const u8 gGiftRibbonDescriptionPart1_LotsOfFriends[] = _("Lots of Friends RIBBON");
const u8 gGiftRibbonDescriptionPart1_FullOfEnergy[] = _("Full of Energy RIBBON");
const u8 gGiftRibbonDescriptionPart1_LovedPokemon[] = _("A commemorative RIBBON");
const u8 gGiftRibbonDescriptionPart2_LovedPokemon[] = _("for a loved POKéMON.");
const u8 gGiftRibbonDescriptionPart1_LoveForPokemon[] = _("RIBBON that shows");
const u8 gGiftRibbonDescriptionPart2_LoveForPokemon[] = _("love for POKéMON.");
const u8 *const gGiftRibbonDescriptionPointers[][2] =
{
{gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation},
{gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation},
{gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion},
{gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp},
{gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist},
{gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation},
{gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2},
{gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2},
{gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2},
{gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative},
{gGiftRibbonDescriptionPart1_ClearingAllChallenges, gGiftRibbonDescriptionPart2_ClearingAllChallenges},
{gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative},
{gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative},
{gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative},
{gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative},
{gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative},
{gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative},
{gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative},
{gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative},
{gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative},
{gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative},
{gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString},
{gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString},
{gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString},
{gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString},
{gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString},
{gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString},
{gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString},
{gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString},
{gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon},
{gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon}
};

View File

@ -0,0 +1,476 @@
#define MCFLAVOR(name) {gMatchCallFlavorText_##name##_Strategy, \
gMatchCallFlavorText_##name##_Pokemon, \
gMatchCallFlavorText_##name##_Intro1, \
gMatchCallFlavorText_##name##_Intro2}
const u8 gMatchCallFlavorText_AromaLady_Rose_Strategy[] = _("Becalm fighting emotions.");
const u8 gMatchCallFlavorText_AromaLady_Rose_Pokemon[] = _("Fragrant GRASS POKéMON.");
const u8 gMatchCallFlavorText_AromaLady_Rose_Intro1[] = _("Soothing aromas make the");
const u8 gMatchCallFlavorText_AromaLady_Rose_Intro2[] = _("body and mind healthy.");
const u8 gMatchCallFlavorText_RuinManiac_Andres_Strategy[] = _("I'm not very good at this.");
const u8 gMatchCallFlavorText_RuinManiac_Andres_Pokemon[] = _("Ruin-exploration partners.");
const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro1[] = _("I am searching for undersea");
const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro2[] = _("ruins and relics.");
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Strategy[] = _("Overwhelm with power!");
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Pokemon[] = _("Craggy ROCK POKéMON.");
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro1[] = _("In search of ancient lore,");
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro2[] = _("I travel the world.");
const u8 gMatchCallFlavorText_Tuber_Lola_Strategy[] = _("I'm going to try hard!");
const u8 gMatchCallFlavorText_Tuber_Lola_Pokemon[] = _("Good swimmer POKéMON.");
const u8 gMatchCallFlavorText_Tuber_Lola_Intro1[] = _("I wish I could swim without");
const u8 gMatchCallFlavorText_Tuber_Lola_Intro2[] = _("using an inner tube.");
const u8 gMatchCallFlavorText_Tuber_Ricky_Strategy[] = _("I don't know. I'll try hard.");
const u8 gMatchCallFlavorText_Tuber_Ricky_Pokemon[] = _("WATER POKéMON are buddies.");
const u8 gMatchCallFlavorText_Tuber_Ricky_Intro1[] = _("It's not like I can't swim.");
const u8 gMatchCallFlavorText_Tuber_Ricky_Intro2[] = _("I just like my inner tube.");
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Strategy[] = _("We split our duties.");
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Pokemon[] = _("We like friendly POKéMON.");
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro1[] = _("We enjoy POKéMON together");
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro2[] = _("as sister and brother.");
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Strategy[] = _("I finish with power moves!");
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Pokemon[] = _("A mix of different types.");
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro1[] = _("I aim to become the ultimate");
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro2[] = _("TRAINER!");
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Strategy[] = _("Exploit the foe's weakness.");
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Pokemon[] = _("Balance is crucial.");
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro1[] = _("My goal is to become the");
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro2[] = _("POKéMON CHAMPION.");
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Strategy[] = _("Upset the opponent.");
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Pokemon[] = _("Type doesn't matter.");
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro1[] = _("I'm a top student at the");
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro2[] = _("TRAINER'S SCHOOL.");
const u8 gMatchCallFlavorText_HexManiac_Valerie_Strategy[] = _("Slow, steady suffering.");
const u8 gMatchCallFlavorText_HexManiac_Valerie_Pokemon[] = _("Scary to meet at night.");
const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro1[] = _("I see things that others");
const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro2[] = _("can't see...");
const u8 gMatchCallFlavorText_Lady_Cindy_Strategy[] = _("Anything to win.");
const u8 gMatchCallFlavorText_Lady_Cindy_Pokemon[] = _("Gorgeous type!");
const u8 gMatchCallFlavorText_Lady_Cindy_Intro1[] = _("I have a pool specially for");
const u8 gMatchCallFlavorText_Lady_Cindy_Intro2[] = _("my POKéMON at home.");
const u8 gMatchCallFlavorText_Beauty_Thalia_Strategy[] = _("You'll fall under my spell!");
const u8 gMatchCallFlavorText_Beauty_Thalia_Pokemon[] = _("Mature WATER type.");
const u8 gMatchCallFlavorText_Beauty_Thalia_Intro1[] = _("I dream of cruising around");
const u8 gMatchCallFlavorText_Beauty_Thalia_Intro2[] = _("the world on a luxury liner.");
const u8 gMatchCallFlavorText_Beauty_Jessica_Strategy[] = _("I'll lead you astray.");
const u8 gMatchCallFlavorText_Beauty_Jessica_Pokemon[] = _("Cute, of course.");
const u8 gMatchCallFlavorText_Beauty_Jessica_Intro1[] = _("I love the SAFARI ZONE.");
const u8 gMatchCallFlavorText_Beauty_Jessica_Intro2[] = _("I seem to end up there.");
const u8 gMatchCallFlavorText_RichBoy_Winston_Strategy[] = _("Strategy? Who needs it?");
const u8 gMatchCallFlavorText_RichBoy_Winston_Pokemon[] = _("I spent big money on it!");
const u8 gMatchCallFlavorText_RichBoy_Winston_Intro1[] = _("I, being rich, sleep in a");
const u8 gMatchCallFlavorText_RichBoy_Winston_Intro2[] = _("custom POKéMON bed.");
const u8 gMatchCallFlavorText_PokeManiac_Steve_Strategy[] = _("Wrestle down with power.");
const u8 gMatchCallFlavorText_PokeManiac_Steve_Pokemon[] = _("Took all night to catch.");
const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro1[] = _("Big, burly, and buff");
const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro2[] = _("POKéMON are the best...");
const u8 gMatchCallFlavorText_Swimmer_Tony_Strategy[] = _("Ram at full speed!");
const u8 gMatchCallFlavorText_Swimmer_Tony_Pokemon[] = _("Funky WATER type!");
const u8 gMatchCallFlavorText_Swimmer_Tony_Intro1[] = _("If I can't be out swimming,");
const u8 gMatchCallFlavorText_Swimmer_Tony_Intro2[] = _("I'll be pumping weights.");
const u8 gMatchCallFlavorText_BlackBelt_Nob_Strategy[] = _("Grand slam pummeling!");
const u8 gMatchCallFlavorText_BlackBelt_Nob_Pokemon[] = _("FIGHTING type.");
const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro1[] = _("Not to brag, but I can bust");
const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro2[] = _("ten roof tiles!");
const u8 gMatchCallFlavorText_BlackBelt_Koji_Strategy[] = _("Witness karate power!");
const u8 gMatchCallFlavorText_BlackBelt_Koji_Pokemon[] = _("My partners in training!");
const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro1[] = _("Let us discuss matters of");
const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro2[] = _("the world with bare fists!");
const u8 gMatchCallFlavorText_Guitarist_Fernando_Strategy[] = _("Rock to stunning sounds!");
const u8 gMatchCallFlavorText_Guitarist_Fernando_Pokemon[] = _("Electric-and-sound combo!");
const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro1[] = _("My compositions will shock");
const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro2[] = _("you and stun you!");
const u8 gMatchCallFlavorText_Guitarist_Dalton_Strategy[] = _("I'll electrify you!");
const u8 gMatchCallFlavorText_Guitarist_Dalton_Pokemon[] = _("They're ELECTRIC!");
const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro1[] = _("I want to make people cry");
const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro2[] = _("with songs from my heart.");
const u8 gMatchCallFlavorText_Kindler_Bernie_Strategy[] = _("Burn it all down!");
const u8 gMatchCallFlavorText_Kindler_Bernie_Pokemon[] = _("Burn-inducing POKéMON.");
const u8 gMatchCallFlavorText_Kindler_Bernie_Intro1[] = _("When you light a campfire,");
const u8 gMatchCallFlavorText_Kindler_Bernie_Intro2[] = _("be sure there's some water.");
const u8 gMatchCallFlavorText_Camper_Ethan_Strategy[] = _("Hang in and be tenacious!");
const u8 gMatchCallFlavorText_Camper_Ethan_Pokemon[] = _("I'll raise any POKéMON.");
const u8 gMatchCallFlavorText_Camper_Ethan_Intro1[] = _("POKéMON raised in the wild");
const u8 gMatchCallFlavorText_Camper_Ethan_Intro2[] = _("grow strong!");
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Strategy[] = _("Our love lets us prevail.");
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Pokemon[] = _("We've had them for years.");
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro1[] = _("Married 50 years, we've");
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro2[] = _("devotedly raised POKéMON.");
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Strategy[] = _("Attack in waves!");
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Pokemon[] = _("BUG POKéMON are cool.");
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro1[] = _("I go into the forest every");
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro2[] = _("day to catch BUG POKéMON.");
const u8 gMatchCallFlavorText_Psychic_Cameron_Strategy[] = _("Daze and confuse!");
const u8 gMatchCallFlavorText_Psychic_Cameron_Pokemon[] = _("Ones with weird powers.");
const u8 gMatchCallFlavorText_Psychic_Cameron_Intro1[] = _("I can see through exactly");
const u8 gMatchCallFlavorText_Psychic_Cameron_Intro2[] = _("what you're thinking!");
const u8 gMatchCallFlavorText_Psychic_Jacki_Strategy[] = _("Battle at full power.");
const u8 gMatchCallFlavorText_Psychic_Jacki_Pokemon[] = _("POKéMON of many mysteries.");
const u8 gMatchCallFlavorText_Psychic_Jacki_Intro1[] = _("When we spoke, I was really");
const u8 gMatchCallFlavorText_Psychic_Jacki_Intro2[] = _("using telepathy.");
const u8 gMatchCallFlavorText_Gentleman_Walter_Strategy[] = _("Calm and collected.");
const u8 gMatchCallFlavorText_Gentleman_Walter_Pokemon[] = _("POKéMON of distinction.");
const u8 gMatchCallFlavorText_Gentleman_Walter_Intro1[] = _("We enjoy a spot of tea");
const u8 gMatchCallFlavorText_Gentleman_Walter_Intro2[] = _("every day. It's imported.");
const u8 gMatchCallFlavorText_SchoolKid_Karen_Strategy[] = _("I use my head to battle.");
const u8 gMatchCallFlavorText_SchoolKid_Karen_Pokemon[] = _("I love any kind of POKéMON!");
const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro1[] = _("My daddy gives me spending");
const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro2[] = _("money if I ace a test.");
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Strategy[] = _("My knowledge rules!");
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Pokemon[] = _("Any smart POKéMON!");
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro1[] = _("I want to be a POKéMON");
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro2[] = _("researcher in the future.");
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Strategy[] = _("We talk it over first.");
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Pokemon[] = _("POKéMON that we both like.");
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro1[] = _("We're senior and junior");
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro2[] = _("students into POKéMON!");
const u8 gMatchCallFlavorText_Pokefan_Isabel_Strategy[] = _("Go for it, my dears!");
const u8 gMatchCallFlavorText_Pokefan_Isabel_Pokemon[] = _("I have no likes or dislikes.");
const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro1[] = _("While out shopping for");
const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro2[] = _("supper, I battle too.");
const u8 gMatchCallFlavorText_Pokefan_Miguel_Strategy[] = _("I battle with love!");
const u8 gMatchCallFlavorText_Pokefan_Miguel_Pokemon[] = _("A POKéMON raised with love!");
const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro1[] = _("It's important to build");
const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro2[] = _("trust with your POKéMON.");
const u8 gMatchCallFlavorText_Expert_Timothy_Strategy[] = _("I see through your moves!");
const u8 gMatchCallFlavorText_Expert_Timothy_Pokemon[] = _("The essence of FIGHTING.");
const u8 gMatchCallFlavorText_Expert_Timothy_Intro1[] = _("I'm not ready to give way");
const u8 gMatchCallFlavorText_Expert_Timothy_Intro2[] = _("to the young yet!");
const u8 gMatchCallFlavorText_Expert_Shelby_Strategy[] = _("Attack while defending.");
const u8 gMatchCallFlavorText_Expert_Shelby_Pokemon[] = _("The FIGHTING type.");
const u8 gMatchCallFlavorText_Expert_Shelby_Intro1[] = _("Being old, I have my own");
const u8 gMatchCallFlavorText_Expert_Shelby_Intro2[] = _("style of battling.");
const u8 gMatchCallFlavorText_Youngster_Calvin_Strategy[] = _("I do what I can.");
const u8 gMatchCallFlavorText_Youngster_Calvin_Pokemon[] = _("I use different types.");
const u8 gMatchCallFlavorText_Youngster_Calvin_Intro1[] = _("I'm going to keep working");
const u8 gMatchCallFlavorText_Youngster_Calvin_Intro2[] = _("until I beat a GYM LEADER.");
const u8 gMatchCallFlavorText_Fisherman_Elliot_Strategy[] = _("I battle patiently.");
const u8 gMatchCallFlavorText_Fisherman_Elliot_Pokemon[] = _("WATER POKéMON to battle!");
const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro1[] = _("I'm the world's only guy to");
const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro2[] = _("catch a huge POKéMON!");
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Strategy[] = _("Exploit the environment!");
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Pokemon[] = _("All hail the WATER type!");
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro1[] = _("I won't be beaten by some");
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro2[] = _("beach bum SWIMMER!");
const u8 gMatchCallFlavorText_Triathlete_Maria_Strategy[] = _("Speed above all!");
const u8 gMatchCallFlavorText_Triathlete_Maria_Pokemon[] = _("I use a speedy POKéMON.");
const u8 gMatchCallFlavorText_Triathlete_Maria_Intro1[] = _("A marathon is a challenge");
const u8 gMatchCallFlavorText_Triathlete_Maria_Intro2[] = _("against your own self.");
const u8 gMatchCallFlavorText_Triathlete_Abigail_Strategy[] = _("Defense is crucial.");
const u8 gMatchCallFlavorText_Triathlete_Abigail_Pokemon[] = _("My POKéMON is solid.");
const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro1[] = _("I started this for dieting,");
const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro2[] = _("but I got right into it.");
const u8 gMatchCallFlavorText_Triathlete_Dylan_Strategy[] = _("Strike before stricken!");
const u8 gMatchCallFlavorText_Triathlete_Dylan_Pokemon[] = _("A fast-running POKéMON!");
const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro1[] = _("If you ran and ran, you'd");
const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro2[] = _("become one with the wind.");
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Strategy[] = _("All-out offensive!");
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Pokemon[] = _("WATER POKéMON rule!");
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro1[] = _("I must swim over 6 miles");
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro2[] = _("every day.");
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Strategy[] = _("Push and push again!");
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Pokemon[] = _("The strength of STEEL.");
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro1[] = _("If you're sweating, get");
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro2[] = _("fluids into you regularly.");
const u8 gMatchCallFlavorText_Triathlete_Pablo_Strategy[] = _("Draw the power of WATER.");
const u8 gMatchCallFlavorText_Triathlete_Pablo_Pokemon[] = _("Toughened WATER POKéMON.");
const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro1[] = _("Training POKéMON is good,");
const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro2[] = _("but don't neglect yourself.");
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Strategy[] = _("It's about POKéMON power!");
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Pokemon[] = _("See the power of DRAGONS!");
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro1[] = _("I'll become legendary as the");
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro2[] = _("strongest one day!");
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Strategy[] = _("I'll show you my technique!");
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Pokemon[] = _("Elegantly wheeling BIRDS.");
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro1[] = _("My BIRD POKéMON, deliver my");
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro2[] = _("love to that girl!");
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Strategy[] = _("You'll suffer from poison!");
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Pokemon[] = _("Poisonous POKéMON.");
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro1[] = _("I undertake training so");
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro2[] = _("that I may become a ninja.");
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Strategy[] = _("The first strike wins!");
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Pokemon[] = _("Speedy FIGHTING type.");
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro1[] = _("If my POKéMON lose,");
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro2[] = _("I'll carry on the fight!");
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Strategy[] = _("Go, go, my POKéMON!");
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Pokemon[] = _("I'll raise anything.");
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro1[] = _("UV rays are your skin's");
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro2[] = _("enemy. Get protected.");
const u8 gMatchCallFlavorText_Swimmer_Jenny_Strategy[] = _("No mercy!");
const u8 gMatchCallFlavorText_Swimmer_Jenny_Pokemon[] = _("Cute WATER POKéMON.");
const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro1[] = _("I have too many fans.");
const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro2[] = _("I was interviewed on TV.");
const u8 gMatchCallFlavorText_Picnicker_Diana_Strategy[] = _("I think about this & that.");
const u8 gMatchCallFlavorText_Picnicker_Diana_Pokemon[] = _("I like all POKéMON.");
const u8 gMatchCallFlavorText_Picnicker_Diana_Intro1[] = _("What lies beyond that");
const u8 gMatchCallFlavorText_Picnicker_Diana_Intro2[] = _("yonder hill?");
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Strategy[] = _("We battle together!");
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Pokemon[] = _("We train together!");
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro1[] = _("We like the same POKéMON,");
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro2[] = _("but different desserts.");
const u8 gMatchCallFlavorText_Sailor_Ernest_Strategy[] = _("I force things with power!");
const u8 gMatchCallFlavorText_Sailor_Ernest_Pokemon[] = _("WATER and FIGHTING types.");
const u8 gMatchCallFlavorText_Sailor_Ernest_Intro1[] = _("Seamen are rough spirits!");
const u8 gMatchCallFlavorText_Sailor_Ernest_Intro2[] = _("Any complaints?");
const u8 gMatchCallFlavorText_Sailor_Cory_Strategy[] = _("Up for a fight anytime!");
const u8 gMatchCallFlavorText_Sailor_Cory_Pokemon[] = _("WATER POKéMON are my faves!");
const u8 gMatchCallFlavorText_Sailor_Cory_Intro1[] = _("If you want to shout loud,");
const u8 gMatchCallFlavorText_Sailor_Cory_Intro2[] = _("suck in air with your belly!");
const u8 gMatchCallFlavorText_Collector_Edwin_Strategy[] = _("Protect POKéMON from harm.");
const u8 gMatchCallFlavorText_Collector_Edwin_Pokemon[] = _("I love rare POKéMON.");
const u8 gMatchCallFlavorText_Collector_Edwin_Intro1[] = _("I want to collect all the");
const u8 gMatchCallFlavorText_Collector_Edwin_Intro2[] = _("world's rare POKéMON.");
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Strategy[] = _("I count on power.");
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Pokemon[] = _("POKéMON are my children.");
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro1[] = _("It takes knowledge and");
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro2[] = _("love to raise POKéMON.");
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Strategy[] = _("Full-on attack!");
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Pokemon[] = _("Anything. I'll raise it.");
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro1[] = _("I give them {POKEBLOCK}S for");
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro2[] = _("going after CONTEST titles.");
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Strategy[] = _("I raise POKéMON with care.");
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Pokemon[] = _("Fun-to-raise POKéMON.");
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro1[] = _("Treat every POKéMON you");
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro2[] = _("meet with respect.");
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Strategy[] = _("I believe in my POKéMON.");
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Pokemon[] = _("I like strong POKéMON.");
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro1[] = _("I'm training for rescue");
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro2[] = _("work with my POKéMON.");
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Strategy[] = _("Attack in waves!");
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Pokemon[] = _("I use different types.");
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro1[] = _("Those who destroy nature");
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro2[] = _("must never be forgiven!");
const u8 gMatchCallFlavorText_Lass_Haley_Strategy[] = _("I'll show you some guts!");
const u8 gMatchCallFlavorText_Lass_Haley_Pokemon[] = _("Cute POKéMON are my faves!");
const u8 gMatchCallFlavorText_Lass_Haley_Intro1[] = _("After a battle, I always");
const u8 gMatchCallFlavorText_Lass_Haley_Intro2[] = _("bathe with my POKéMON.");
const u8 gMatchCallFlavorText_BugCatcher_James_Strategy[] = _("Lightning-fast attack!");
const u8 gMatchCallFlavorText_BugCatcher_James_Pokemon[] = _("BUG POKéMON are number 1!");
const u8 gMatchCallFlavorText_BugCatcher_James_Intro1[] = _("If you want to catch BUG");
const u8 gMatchCallFlavorText_BugCatcher_James_Intro2[] = _("POKéMON, wake up early.");
const u8 gMatchCallFlavorText_Hiker_Trent_Strategy[] = _("I battle with power.");
const u8 gMatchCallFlavorText_Hiker_Trent_Pokemon[] = _("Hard-bodied POKéMON.");
const u8 gMatchCallFlavorText_Hiker_Trent_Intro1[] = _("I've been planning a month");
const u8 gMatchCallFlavorText_Hiker_Trent_Intro2[] = _("for today's hike.");
const u8 gMatchCallFlavorText_Hiker_Sawyer_Strategy[] = _("I like it hot!");
const u8 gMatchCallFlavorText_Hiker_Sawyer_Pokemon[] = _("Hot POKéMON!");
const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro1[] = _("As much as I love POKéMON,");
const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro2[] = _("I surely like hiking!");
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Strategy[] = _("Lovey-dovey strategy!");
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Pokemon[] = _("Lovey-dovey POKéMON!");
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro1[] = _("We're lovey-dovey!");
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro2[] = _("Forever lovey-dovey!");
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Strategy[] = _("We let it all hang out.");
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Pokemon[] = _("The 1st POKéMON I caught.");
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro1[] = _("POKéMON and I have grown");
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro2[] = _("stronger together.");
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Strategy[] = _("ROCK-type power attack.");
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Pokemon[] = _("I prefer rock-hard POKéMON.");
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro1[] = _("A LEADER of a big GYM bears");
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro2[] = _("a lot of responsibility.");
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Strategy[] = _("Direct physical action!");
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Pokemon[] = _("FIGHTING POKéMON rule!");
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro1[] = _("The world awaits me as the");
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro2[] = _("next big wave!");
const u8 gMatchCallFlavorText_SwellShock_Wattson_Strategy[] = _("I choose to electrify.");
const u8 gMatchCallFlavorText_SwellShock_Wattson_Pokemon[] = _("Get shocked by electricity!");
const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro1[] = _("One must never throw a");
const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro2[] = _("match. Even I must not.");
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Strategy[] = _("Battle aggressively.");
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Pokemon[] = _("Burn with passion!");
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro1[] = _("Completely wash away daily");
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro2[] = _("fatigue in hot springs!");
const u8 gMatchCallFlavorText_ReliableOne_Dad_Strategy[] = _("I flexibly adapt my style.");
const u8 gMatchCallFlavorText_ReliableOne_Dad_Pokemon[] = _("Grown in a balanced manner.");
const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro1[] = _("I walk the 30 minutes from");
const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro2[] = _("home to here every day.");
const u8 gMatchCallFlavorText_SkyTamer_Winona_Strategy[] = _("I take advantage of speed.");
const u8 gMatchCallFlavorText_SkyTamer_Winona_Pokemon[] = _("Graceful sky dancers.");
const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro1[] = _("The ultimate would be to");
const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro2[] = _("live as one with nature.");
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Strategy[] = _("We battle in cooperation.");
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Pokemon[] = _("Always friendly POKéMON.");
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro1[] = _("Papa has trouble telling");
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro2[] = _("the two of us apart!");
const u8 gMatchCallFlavorText_DandyCharm_Juan_Strategy[] = _("I use splendid waterpower.");
const u8 gMatchCallFlavorText_DandyCharm_Juan_Pokemon[] = _("POKéMON of elegance!");
const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro1[] = _("The adulation of beautiful");
const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro2[] = _("ladies fills me with energy!");
const u8 gMatchCallFlavorText_EliteFour_Sidney_Strategy[] = _("Offense over defense!");
const u8 gMatchCallFlavorText_EliteFour_Sidney_Pokemon[] = _("The DARK side's beauties.");
const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro1[] = _("They said I was a punk, but");
const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro2[] = _("I'm one of the ELITE FOUR!");
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Strategy[] = _("Confuse and confound.");
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Pokemon[] = _("There's nothing definite.");
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro1[] = _("I wonder how my grandma at");
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro2[] = _("MT. PYRE is doing?");
const u8 gMatchCallFlavorText_EliteFour_Glacia_Strategy[] = _("I use items for help.");
const u8 gMatchCallFlavorText_EliteFour_Glacia_Pokemon[] = _("Flaming passion in icy cold!");
const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro1[] = _("The ICE type can be better");
const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro2[] = _("trained in this hot land.");
const u8 gMatchCallFlavorText_EliteFour_Drake_Strategy[] = _("Harness strong abilities.");
const u8 gMatchCallFlavorText_EliteFour_Drake_Pokemon[] = _("The raw power of DRAGONS!");
const u8 gMatchCallFlavorText_EliteFour_Drake_Intro1[] = _("I dedicate myself to the");
const u8 gMatchCallFlavorText_EliteFour_Drake_Intro2[] = _("POKéMON that saved me.");
const u8 gMatchCallFlavorText_Champion_Wallace_Strategy[] = _("Dignity and respect.");
const u8 gMatchCallFlavorText_Champion_Wallace_Pokemon[] = _("I prefer POKéMON of grace.");
const u8 gMatchCallFlavorText_Champion_Wallace_Intro1[] = _("I represent beauty as");
const u8 gMatchCallFlavorText_Champion_Wallace_Intro2[] = _("well as intelligence.");
const u8 *const gMatchCallMessages[][4] =
{
[REMATCH_ROSE] = MCFLAVOR(AromaLady_Rose),
[REMATCH_ANDRES] = MCFLAVOR(RuinManiac_Andres),
[REMATCH_DUSTY] = MCFLAVOR(RuinManiac_Dusty),
[REMATCH_LOLA] = MCFLAVOR(Tuber_Lola),
[REMATCH_RICKY] = MCFLAVOR(Tuber_Ricky),
[REMATCH_LILA_AND_ROY] = MCFLAVOR(SisAndBro_LilaAndRoy),
[REMATCH_CRISTIN] = MCFLAVOR(Cooltrainer_Cristin),
[REMATCH_BROOKE] = MCFLAVOR(Cooltrainer_Brooke),
[REMATCH_WILTON] = MCFLAVOR(Cooltrainer_Wilton),
[REMATCH_VALERIE] = MCFLAVOR(HexManiac_Valerie),
[REMATCH_CINDY] = MCFLAVOR(Lady_Cindy),
[REMATCH_THALIA] = MCFLAVOR(Beauty_Thalia),
[REMATCH_JESSICA] = MCFLAVOR(Beauty_Jessica),
[REMATCH_WINSTON] = MCFLAVOR(RichBoy_Winston),
[REMATCH_STEVE] = MCFLAVOR(PokeManiac_Steve),
[REMATCH_TONY] = MCFLAVOR(Swimmer_Tony),
[REMATCH_NOB] = MCFLAVOR(BlackBelt_Nob),
[REMATCH_KOJI] = MCFLAVOR(BlackBelt_Koji),
[REMATCH_FERNANDO] = MCFLAVOR(Guitarist_Fernando),
[REMATCH_DALTON] = MCFLAVOR(Guitarist_Dalton),
[REMATCH_BERNIE] = MCFLAVOR(Kindler_Bernie),
[REMATCH_ETHAN] = MCFLAVOR(Camper_Ethan),
[REMATCH_JOHN_AND_JAY] = MCFLAVOR(OldCouple_JohnAndJay),
[REMATCH_JEFFREY] = MCFLAVOR(BugManiac_Jeffrey),
[REMATCH_CAMERON] = MCFLAVOR(Psychic_Cameron),
[REMATCH_JACKI] = MCFLAVOR(Psychic_Jacki),
[REMATCH_WALTER] = MCFLAVOR(Gentleman_Walter),
[REMATCH_KAREN] = MCFLAVOR(SchoolKid_Karen),
[REMATCH_JERRY] = MCFLAVOR(SchoolKid_Jerry),
[REMATCH_ANNA_AND_MEG] = MCFLAVOR(SrAndJr_AnnaAndMeg),
[REMATCH_ISABEL] = MCFLAVOR(Pokefan_Isabel),
[REMATCH_MIGUEL] = MCFLAVOR(Pokefan_Miguel),
[REMATCH_TIMOTHY] = MCFLAVOR(Expert_Timothy),
[REMATCH_SHELBY] = MCFLAVOR(Expert_Shelby),
[REMATCH_CALVIN] = MCFLAVOR(Youngster_Calvin),
[REMATCH_ELLIOT] = MCFLAVOR(Fisherman_Elliot),
[REMATCH_ISAIAH] = MCFLAVOR(Triathlete_Isaiah),
[REMATCH_MARIA] = MCFLAVOR(Triathlete_Maria),
[REMATCH_ABIGAIL] = MCFLAVOR(Triathlete_Abigail),
[REMATCH_DYLAN] = MCFLAVOR(Triathlete_Dylan),
[REMATCH_KATELYN] = MCFLAVOR(Triathlete_Katelyn),
[REMATCH_BENJAMIN] = MCFLAVOR(Triathlete_Benjamin),
[REMATCH_PABLO] = MCFLAVOR(Triathlete_Pablo),
[REMATCH_NICOLAS] = MCFLAVOR(DragonTamer_Nicolas),
[REMATCH_ROBERT] = MCFLAVOR(BirdKeeper_Robert),
[REMATCH_LAO] = MCFLAVOR(NinjaBoy_Lao),
[REMATCH_CYNDY] = MCFLAVOR(BattleGirl_Cyndy),
[REMATCH_MADELINE] = MCFLAVOR(ParasolLady_Madeline),
[REMATCH_JENNY] = MCFLAVOR(Swimmer_Jenny),
[REMATCH_DIANA] = MCFLAVOR(Picnicker_Diana),
[REMATCH_AMY_AND_LIV] = MCFLAVOR(Twins_AmyAndLiv),
[REMATCH_ERNEST] = MCFLAVOR(Sailor_Ernest),
[REMATCH_CORY] = MCFLAVOR(Sailor_Cory),
[REMATCH_EDWIN] = MCFLAVOR(Collector_Edwin),
[REMATCH_LYDIA] = MCFLAVOR(PkmnBreeder_Lydia),
[REMATCH_ISAAC] = MCFLAVOR(PkmnBreeder_Isaac),
[REMATCH_GABRIELLE] = MCFLAVOR(PkmnBreeder_Gabrielle),
[REMATCH_CATHERINE] = MCFLAVOR(PkmnRanger_Catherine),
[REMATCH_JACKSON] = MCFLAVOR(PkmnRanger_Jackson),
[REMATCH_HALEY] = MCFLAVOR(Lass_Haley),
[REMATCH_JAMES] = MCFLAVOR(BugCatcher_James),
[REMATCH_TRENT] = MCFLAVOR(Hiker_Trent),
[REMATCH_SAWYER] = MCFLAVOR(Hiker_Sawyer),
[REMATCH_KIRA_AND_DAN] = MCFLAVOR(YoungCouple_LoisAndHal),
[REMATCH_WALLY_3] = MCFLAVOR(PkmnTrainer_Wally),
[REMATCH_ROXANNE] = MCFLAVOR(RockinWhiz_Roxanne),
[REMATCH_BRAWLY] = MCFLAVOR(TheBigHit_Brawly),
[REMATCH_WATTSON] = MCFLAVOR(SwellShock_Wattson),
[REMATCH_FLANNERY] = MCFLAVOR(PassionBurn_Flannery),
[REMATCH_NORMAN] = MCFLAVOR(ReliableOne_Dad),
[REMATCH_WINONA] = MCFLAVOR(SkyTamer_Winona),
[REMATCH_TATE_AND_LIZA] = MCFLAVOR(MysticDuo_TateAndLiza),
[REMATCH_JUAN] = MCFLAVOR(DandyCharm_Juan),
[REMATCH_SIDNEY] = MCFLAVOR(EliteFour_Sidney),
[REMATCH_PHOEBE] = MCFLAVOR(EliteFour_Phoebe),
[REMATCH_GLACIA] = MCFLAVOR(EliteFour_Glacia),
[REMATCH_DRAKE] = MCFLAVOR(EliteFour_Drake),
[REMATCH_WALLACE] = MCFLAVOR(Champion_Wallace),
};

View File

@ -0,0 +1,48 @@
const u8 gRibbonDescriptionPart1_Champion[] = _("CHAMPION-beating, HALL");
const u8 gRibbonDescriptionPart2_Champion[] = _("OF FAME Member RIBBON");
const u8 gRibbonDescriptionPart1_CoolContest[] = _("COOL CONTEST");
const u8 gRibbonDescriptionPart1_BeautyContest[] = _("BEAUTY CONTEST");
const u8 gRibbonDescriptionPart1_CuteContest[] = _("CUTE CONTEST");
const u8 gRibbonDescriptionPart1_SmartContest[] = _("SMART CONTEST");
const u8 gRibbonDescriptionPart1_ToughContest[] = _("TOUGH CONTEST");
const u8 gRibbonDescriptionPart2_NormalRank[] = _("Normal Rank winner!");
const u8 gRibbonDescriptionPart2_SuperRank[] = _("Super Rank winner!");
const u8 gRibbonDescriptionPart2_HyperRank[] = _("Hyper Rank winner!");
const u8 gRibbonDescriptionPart2_MasterRank[] = _("Master Rank winner!");
const u8 gRibbonDescriptionPart1_Winning[] = _("For clearing LV50");
const u8 gRibbonDescriptionPart2_Winning[] = _("at the BATTLE TOWER.");
const u8 gRibbonDescriptionPart1_Victory[] = _("For clearing Open Level");
const u8 gRibbonDescriptionPart2_Victory[] = _("at the BATTLE TOWER.");
const u8 gRibbonDescriptionPart1_Artist[] = _("RIBBON for being chosen");
const u8 gRibbonDescriptionPart2_Artist[] = _("as a super sketch model.");
const u8 gRibbonDescriptionPart1_Effort[] = _("RIBBON awarded for");
const u8 gRibbonDescriptionPart2_Effort[] = _("being a hard worker.");
const u8 *const gRibbonDescriptionPointers[][2] =
{
{gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion},
{gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank},
{gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank},
{gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank},
{gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank},
{gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank},
{gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank},
{gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank},
{gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank},
{gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank},
{gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank},
{gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank},
{gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank},
{gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank},
{gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank},
{gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank},
{gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank},
{gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank},
{gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank},
{gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank},
{gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank},
{gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning},
{gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory},
{gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist},
{gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort},
};

File diff suppressed because it is too large Load Diff

View File

@ -336,14 +336,9 @@ void player_step(u8 direction, u16 newKeys, u16 heldKeys)
static bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction)
{
#ifdef NONMATCHING
u8 r5 = direction;
u8 r6 = direction;
#else
u8 r5 = direction;
register u8 r6 asm("r6") = direction;
#endif
//a very bad HACK
u8 r5 = direction;
u8 r6 = direction;
r6++; r6--;
if (EventObjectIsMovementOverridden(playerEventObj)
&& !EventObjectClearHeldMovementIfFinished(playerEventObj))

View File

@ -219,8 +219,8 @@ static void sub_8137404(u8 taskId)
static void sub_8137420(u8 taskId)
{
SetGpuReg(REG_OFFSET_DISPCNT, 0);
LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000);
LZ77UnCompVram(gCaveTransitionTilemap, (void *)0x600F800);
LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000));
LZ77UnCompVram(gCaveTransitionTilemap, (void *)(VRAM + 0xF800));
LoadPalette(gCaveTransitionPalette_White, 0xE0, 0x20);
LoadPalette(gUnknown_085B28A0, 0xE0, 0x10);
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0
@ -304,8 +304,8 @@ static void sub_81375BC(u8 taskId)
static void sub_81375D8(u8 taskId)
{
SetGpuReg(REG_OFFSET_DISPCNT, 0);
LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000);
LZ77UnCompVram(gCaveTransitionTilemap, (void *)0x600F800);
LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000));
LZ77UnCompVram(gCaveTransitionTilemap, (void *)(VRAM + 0xF800));
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
SetGpuReg(REG_OFFSET_BLDY, 0);

View File

@ -6,6 +6,7 @@
#include "battle.h"
#include "gym_leader_rematch.h"
#include "match_call.h"
#include "constants/region_map_sections.h"
// Static type declarations
@ -17,13 +18,13 @@ typedef struct MatchCallTextDataStruct {
struct MatchCallStructCommon {
u8 type;
u8 v1;
u8 mapSec;
u16 flag;
};
struct MatchCallStruct0 {
u8 type;
u8 v1;
u8 mapSec;
u16 flag;
const u8 *desc;
const u8 *name;
@ -32,7 +33,7 @@ struct MatchCallStruct0 {
struct MatchCallStruct1 {
u8 type;
u8 v1;
u8 mapSec;
u16 flag;
u16 rematchTableIdx;
const u8 *desc;
@ -42,12 +43,12 @@ struct MatchCallStruct1 {
struct MatchCallSubstruct2 {
u16 flag;
u8 v2;
u8 mapSec;
};
struct MatchCallStruct2 {
u8 type;
u8 v1;
u8 mapSec;
u16 flag;
u16 rematchTableIdx;
const u8 *desc;
@ -57,7 +58,7 @@ struct MatchCallStruct2 {
struct MatchCallStruct3 {
u8 type;
u8 v1;
u8 mapSec;
u16 flag;
const u8 *desc;
const u8 *name;
@ -75,7 +76,7 @@ struct MatchCallStruct4 {
// Note: Type1 and Type5 have identical struct layouts.
struct MatchCallStruct5 {
u8 type;
u8 v1;
u8 mapSec;
u16 flag;
u16 rematchTableIdx;
const u8 *desc;
@ -110,11 +111,11 @@ static bool32 MatchCallGetFlag_Type2(match_call_t);
static bool32 MatchCallGetFlag_Type3(match_call_t);
static bool32 MatchCallGetFlag_Type4(match_call_t);
static u8 sub_81D1714(match_call_t);
static u8 sub_81D1718(match_call_t);
static u8 sub_81D171C(match_call_t);
static u8 sub_81D1750(match_call_t);
static u8 sub_81D1754(match_call_t);
static u8 MatchCallGetMapSec_Type0(match_call_t);
static u8 MatchCallGetMapSec_Type1(match_call_t);
static u8 MatchCallGetMapSec_Type2(match_call_t);
static u8 MatchCallGetMapSec_Type3(match_call_t);
static u8 MatchCallGetMapSec_Type4(match_call_t);
static bool32 MatchCall_IsRematchable_Type0(match_call_t);
static bool32 MatchCall_IsRematchable_Type1(match_call_t);
@ -325,7 +326,7 @@ static const match_call_text_data_t sMrStoneTextScripts[] = {
static const struct MatchCallStruct0 sMrStoneMatchCallHeader =
{
.type = 0,
.v1 = 10,
.mapSec = MAPSEC_RUSTBORO_CITY,
.flag = 0xFFFF,
.desc = gMrStoneMatchCallDesc,
.name = gMrStoneMatchCallName,
@ -348,7 +349,7 @@ static const match_call_text_data_t sNormanTextScripts[] = {
static const struct MatchCallStruct5 sNormanMatchCallHeader =
{
.type = 5,
.v1 = 7,
.mapSec = MAPSEC_PETALBURG_CITY,
.flag = FLAG_ENABLE_NORMAN_MATCH_CALL,
.rematchTableIdx = REMATCH_NORMAN,
.desc = gNormanMatchCallDesc,
@ -359,7 +360,7 @@ static const struct MatchCallStruct5 sNormanMatchCallHeader =
static const struct MatchCallStruct3 sProfBirchMatchCallHeader =
{
.type = 3,
.v1 = 0,
.mapSec = 0,
.flag = FLAG_ENABLE_PROF_BIRCH_MATCH_CALL,
.desc = gProfBirchMatchCallDesc,
.name = gProfBirchMatchCallName
@ -375,7 +376,7 @@ static const match_call_text_data_t sMomTextScripts[] = {
static const struct MatchCallStruct0 sMomMatchCallHeader =
{
.type = 0,
.v1 = 0,
.mapSec = MAPSEC_LITTLEROOT_TOWN,
.flag = FLAG_ENABLE_MOM_MATCH_CALL,
.desc = gMomMatchCallDesc,
.name = gMomMatchCallName,
@ -396,7 +397,7 @@ static const match_call_text_data_t sStevenTextScripts[] = {
static const struct MatchCallStruct0 sStevenMatchCallHeader =
{
.type = 0,
.v1 = 0xD5,
.mapSec = MAPSEC_NONE,
.flag = FLAG_REGISTERED_STEVEN_POKENAV,
.desc = gStevenMatchCallDesc,
.name = gStevenMatchCallName,
@ -473,16 +474,16 @@ static const match_call_text_data_t sWallyTextScripts[] = {
};
const struct MatchCallSubstruct2 sWallyAdditionalData[] = {
{ FLAG_HIDE_MAUVILLE_CITY_WALLY, 0x05 },
{ FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xD5 },
{ FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY, 0x46 },
{ 0xFFFF, 0xD5 }
{ FLAG_HIDE_MAUVILLE_CITY_WALLY, MAPSEC_VERDANTURF_TOWN },
{ FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, MAPSEC_NONE },
{ FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY, MAPSEC_VICTORY_ROAD },
{ 0xFFFF, MAPSEC_NONE }
};
static const struct MatchCallStruct2 sWallyMatchCallHeader =
{
.type = 2,
.v1 = 0,
.mapSec = 0,
.flag = FLAG_ENABLE_WALLY_MATCH_CALL,
.rematchTableIdx = REMATCH_WALLY_3,
.desc = gWallyMatchCallDesc,
@ -505,7 +506,7 @@ static const match_call_text_data_t sScottTextScripts[] = {
static const struct MatchCallStruct0 sScottMatchCallHeader =
{
.type = 0,
.v1 = 0xD5,
.mapSec = MAPSEC_NONE,
.flag = FLAG_ENABLE_SCOTT_MATCH_CALL,
.desc = gScottMatchCallDesc,
.name = gScottMatchCallName,
@ -523,7 +524,7 @@ static const match_call_text_data_t sRoxanneTextScripts[] = {
static const struct MatchCallStruct5 sRoxanneMatchCallHeader =
{
.type = 5,
.v1 = 10,
.mapSec = MAPSEC_RUSTBORO_CITY,
.flag = FLAG_ENABLE_ROXANNE_MATCH_CALL,
.rematchTableIdx = REMATCH_ROXANNE,
.desc = gRoxanneMatchCallDesc,
@ -542,7 +543,7 @@ static const match_call_text_data_t sBrawlyTextScripts[] = {
static const struct MatchCallStruct5 sBrawlyMatchCallHeader =
{
.type = 5,
.v1 = 2,
.mapSec = MAPSEC_DEWFORD_TOWN,
.flag = FLAG_ENABLE_BRAWLY_MATCH_CALL,
.rematchTableIdx = REMATCH_BRAWLY,
.desc = gBrawlyMatchCallDesc,
@ -561,7 +562,7 @@ static const match_call_text_data_t sWattsonTextScripts[] = {
static const struct MatchCallStruct5 sWattsonMatchCallHeader =
{
.type = 5,
.v1 = 9,
.mapSec = MAPSEC_MAUVILLE_CITY,
.flag = FLAG_ENABLE_WATTSON_MATCH_CALL,
.rematchTableIdx = REMATCH_WATTSON,
.desc = gWattsonMatchCallDesc,
@ -580,7 +581,7 @@ static const match_call_text_data_t sFlanneryTextScripts[] = {
static const struct MatchCallStruct5 sFlanneryMatchCallHeader =
{
.type = 5,
.v1 = 3,
.mapSec = MAPSEC_LAVARIDGE_TOWN,
.flag = FLAG_ENABLE_FLANNERY_MATCH_CALL,
.rematchTableIdx = REMATCH_FLANNERY,
.desc = gFlanneryMatchCallDesc,
@ -599,7 +600,7 @@ static const match_call_text_data_t sWinonaTextScripts[] = {
static const struct MatchCallStruct5 sWinonaMatchCallHeader =
{
.type = 5,
.v1 = 11,
.mapSec = MAPSEC_FORTREE_CITY,
.flag = FLAG_ENABLE_WINONA_MATCH_CALL,
.rematchTableIdx = REMATCH_WINONA,
.desc = gWinonaMatchCallDesc,
@ -618,7 +619,7 @@ static const match_call_text_data_t sTateLizaTextScripts[] = {
static const struct MatchCallStruct5 sTateLizaMatchCallHeader =
{
.type = 5,
.v1 = 13,
.mapSec = MAPSEC_MOSSDEEP_CITY,
.flag = FLAG_ENABLE_TATE_AND_LIZA_MATCH_CALL,
.rematchTableIdx = REMATCH_TATE_AND_LIZA,
.desc = gTateLizaMatchCallDesc,
@ -637,7 +638,7 @@ static const match_call_text_data_t sJuanTextScripts[] = {
static const struct MatchCallStruct5 sJuanMatchCallHeader =
{
.type = 5,
.v1 = 14,
.mapSec = MAPSEC_SOOTOPOLIS_CITY,
.flag = FLAG_ENABLE_JUAN_MATCH_CALL,
.rematchTableIdx = REMATCH_JUAN,
.desc = gJuanMatchCallDesc,
@ -653,7 +654,7 @@ static const match_call_text_data_t sSidneyTextScripts[] = {
static const struct MatchCallStruct5 sSidneyMatchCallHeader =
{
.type = 5,
.v1 = 15,
.mapSec = MAPSEC_EVER_GRANDE_CITY,
.flag = FLAG_REMATCH_SIDNEY,
.rematchTableIdx = REMATCH_SIDNEY,
.desc = gEliteFourMatchCallDesc,
@ -669,7 +670,7 @@ static const match_call_text_data_t sPhoebeTextScripts[] = {
static const struct MatchCallStruct5 sPhoebeMatchCallHeader =
{
.type = 5,
.v1 = 15,
.mapSec = MAPSEC_EVER_GRANDE_CITY,
.flag = FLAG_REMATCH_PHOEBE,
.rematchTableIdx = REMATCH_PHOEBE,
.desc = gEliteFourMatchCallDesc,
@ -685,7 +686,7 @@ static const match_call_text_data_t sGlaciaTextScripts[] = {
static const struct MatchCallStruct5 sGlaciaMatchCallHeader =
{
.type = 5,
.v1 = 15,
.mapSec = MAPSEC_EVER_GRANDE_CITY,
.flag = FLAG_REMATCH_GLACIA,
.rematchTableIdx = REMATCH_GLACIA,
.desc = gEliteFourMatchCallDesc,
@ -701,7 +702,7 @@ static const match_call_text_data_t sDrakeTextScripts[] = {
static const struct MatchCallStruct5 sDrakeMatchCallHeader =
{
.type = 5,
.v1 = 15,
.mapSec = MAPSEC_EVER_GRANDE_CITY,
.flag = FLAG_REMATCH_DRAKE,
.rematchTableIdx = REMATCH_DRAKE,
.desc = gEliteFourMatchCallDesc,
@ -717,7 +718,7 @@ static const match_call_text_data_t sWallaceTextScripts[] = {
static const struct MatchCallStruct5 sWallaceMatchCallHeader =
{
.type = 5,
.v1 = 15,
.mapSec = MAPSEC_EVER_GRANDE_CITY,
.flag = FLAG_REMATCH_WALLACE,
.rematchTableIdx = REMATCH_WALLACE,
.desc = gChampionMatchCallDesc,
@ -753,24 +754,24 @@ static bool32 (*const sMatchCallGetFlagFuncs[])(match_call_t) = {
MatchCallGetFlag_Type0,
MatchCallGetFlag_Type1,
MatchCallGetFlag_Type2,
MatchCallGetFlag_Type3,
MatchCallGetFlag_Type4
MatchCallGetFlag_Type4,
MatchCallGetFlag_Type3
};
static u8 (*const gUnknown_08625310[])(match_call_t) = {
sub_81D1714,
sub_81D1718,
sub_81D171C,
sub_81D1750,
sub_81D1754
static u8 (*const sMatchCallGetMapSecFuncs[])(match_call_t) = {
MatchCallGetMapSec_Type0,
MatchCallGetMapSec_Type1,
MatchCallGetMapSec_Type2,
MatchCallGetMapSec_Type4,
MatchCallGetMapSec_Type3
};
static bool32 (*const sMatchCall_IsRematchableFunctions[])(match_call_t) = {
MatchCall_IsRematchable_Type0,
MatchCall_IsRematchable_Type1,
MatchCall_IsRematchable_Type2,
MatchCall_IsRematchable_Type3,
MatchCall_IsRematchable_Type4
MatchCall_IsRematchable_Type4,
MatchCall_IsRematchable_Type3
};
static bool32 (*const gUnknown_08625338[])(match_call_t) = {
@ -785,24 +786,24 @@ static u32 (*const sMatchCall_GetRematchTableIdxFunctions[])(match_call_t) = {
MatchCall_GetRematchTableIdx_Type0,
MatchCall_GetRematchTableIdx_Type1,
MatchCall_GetRematchTableIdx_Type2,
MatchCall_GetRematchTableIdx_Type3,
MatchCall_GetRematchTableIdx_Type4
MatchCall_GetRematchTableIdx_Type4,
MatchCall_GetRematchTableIdx_Type3
};
static void (*const sMatchCall_GetMessageFunctions[])(match_call_t, u8 *) = {
MatchCall_GetMessage_Type0,
MatchCall_GetMessage_Type1,
MatchCall_GetMessage_Type2,
MatchCall_GetMessage_Type3,
MatchCall_GetMessage_Type4
MatchCall_GetMessage_Type4,
MatchCall_GetMessage_Type3
};
static void (*const sMatchCall_GetNameAndDescFunctions[])(match_call_t, const u8 **, const u8 **) = {
MatchCall_GetNameAndDesc_Type0,
MatchCall_GetNameAndDesc_Type1,
MatchCall_GetNameAndDesc_Type2,
MatchCall_GetNameAndDesc_Type3,
MatchCall_GetNameAndDesc_Type4
MatchCall_GetNameAndDesc_Type4,
MatchCall_GetNameAndDesc_Type3
};
static const struct UnkStruct_08625388 sMatchCallCheckPageOverrides[] = {
@ -883,7 +884,7 @@ static bool32 MatchCallGetFlag_Type2(match_call_t matchCall)
return FlagGet(matchCall.type2->flag);
}
static bool32 MatchCallGetFlag_Type3(match_call_t matchCall)
static bool32 MatchCallGetFlag_Type4(match_call_t matchCall)
{
if (matchCall.type4->gender != gSaveBlock2Ptr->playerGender)
return FALSE;
@ -892,12 +893,12 @@ static bool32 MatchCallGetFlag_Type3(match_call_t matchCall)
return FlagGet(matchCall.type4->flag);
}
static bool32 MatchCallGetFlag_Type4(match_call_t matchCall)
static bool32 MatchCallGetFlag_Type3(match_call_t matchCall)
{
return FlagGet(matchCall.type3->flag);
}
u8 sub_81D16DC(u32 idx)
u8 MatchCallMapSecGetByIndex(u32 idx)
{
match_call_t matchCall;
u32 i;
@ -906,20 +907,20 @@ u8 sub_81D16DC(u32 idx)
return 0;
matchCall = sMatchCallHeaders[idx];
i = MatchCallGetFunctionIndex(matchCall);
return gUnknown_08625310[i](matchCall);
return sMatchCallGetMapSecFuncs[i](matchCall);
}
static u8 sub_81D1714(match_call_t matchCall)
static u8 MatchCallGetMapSec_Type0(match_call_t matchCall)
{
return matchCall.type0->v1;
return matchCall.type0->mapSec;
}
static u8 sub_81D1718(match_call_t matchCall)
static u8 MatchCallGetMapSec_Type1(match_call_t matchCall)
{
return matchCall.type1->v1;
return matchCall.type1->mapSec;
}
static u8 sub_81D171C(match_call_t matchCall)
static u8 MatchCallGetMapSec_Type2(match_call_t matchCall)
{
s32 i;
@ -928,17 +929,17 @@ static u8 sub_81D171C(match_call_t matchCall)
if (!FlagGet(matchCall.type2->v10[i].flag))
break;
}
return matchCall.type2->v10[i].v2;
return matchCall.type2->v10[i].mapSec;
}
static u8 sub_81D1750(match_call_t matchCall)
static u8 MatchCallGetMapSec_Type4(match_call_t matchCall)
{
return 0xd5;
return MAPSEC_NONE;
}
static u8 sub_81D1754(match_call_t matchCall)
static u8 MatchCallGetMapSec_Type3(match_call_t matchCall)
{
return 0xd5;
return MAPSEC_NONE;
}
bool32 MatchCall_IsRematchable(u32 idx)
@ -970,12 +971,12 @@ static bool32 MatchCall_IsRematchable_Type2(match_call_t matchCall)
return gSaveBlock1Ptr->trainerRematches[matchCall.type2->rematchTableIdx] ? TRUE : FALSE;
}
static bool32 MatchCall_IsRematchable_Type3(match_call_t matchCall)
static bool32 MatchCall_IsRematchable_Type4(match_call_t matchCall)
{
return FALSE;
}
static bool32 MatchCall_IsRematchable_Type4(match_call_t matchCall)
static bool32 MatchCall_IsRematchable_Type3(match_call_t matchCall)
{
return FALSE;
}
@ -1051,12 +1052,12 @@ static u32 MatchCall_GetRematchTableIdx_Type2(match_call_t matchCall)
return matchCall.type2->rematchTableIdx;
}
static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t matchCall)
static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t matchCall)
{
return REMATCH_TABLE_ENTRIES;
}
static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t matchCall)
static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t matchCall)
{
return REMATCH_TABLE_ENTRIES;
}
@ -1091,12 +1092,12 @@ static void MatchCall_GetMessage_Type2(match_call_t matchCall, u8 *dest)
sub_81D1920(matchCall.type2->textData, dest);
}
static void MatchCall_GetMessage_Type3(match_call_t matchCall, u8 *dest)
static void MatchCall_GetMessage_Type4(match_call_t matchCall, u8 *dest)
{
sub_81D1920(matchCall.type4->textData, dest);
}
static void MatchCall_GetMessage_Type4(match_call_t matchCall, u8 *dest)
static void MatchCall_GetMessage_Type3(match_call_t matchCall, u8 *dest)
{
sub_8197080(dest);
}
@ -1190,13 +1191,13 @@ static void MatchCall_GetNameAndDesc_Type2(match_call_t matchCall, const u8 **de
*desc = matchCall.type2->desc;
}
static void MatchCall_GetNameAndDesc_Type3(match_call_t matchCall, const u8 **desc, const u8 **name)
static void MatchCall_GetNameAndDesc_Type4(match_call_t matchCall, const u8 **desc, const u8 **name)
{
*desc = matchCall.type4->desc;
*name = matchCall.type4->name;
}
static void MatchCall_GetNameAndDesc_Type4(match_call_t matchCall, const u8 **desc, const u8 **name)
static void MatchCall_GetNameAndDesc_Type3(match_call_t matchCall, const u8 **desc, const u8 **name)
{
*desc = matchCall.type3->desc;
*name = matchCall.type3->name;

View File

@ -60,8 +60,77 @@ u32 sub_81D0954(void);
void sub_81D1500(struct Pokenav10Struct *structPtr);
bool32 sub_81D1524(struct Pokenav10Struct *structPtr);
void sub_81D1538(struct Sprite *sprite);
u32 sub_81D0C84(s32);
u32 sub_81D0D2C(s32);
u32 sub_81D0D8C(s32);
u32 sub_81D0E00(s32);
u32 sub_81D0C54(s32);
const u8 gUnknown_086237F8[][4] =
{
{1, 1, 0, 0},
{3, 4, 1, 0},
{3, 4, 5, 0},
{3, 4, 9, 0},
{3, 4, 13, 0},
{3, 4, 17, 0},
{1, 1, 21, 0},
{1, 1, 22, 0},
{1, 1, 23, 0},
{1, 1, 24, 0},
{1, 1, 25, 1},
{1, 1, 26, 1},
{1, 1, 27, 1},
{1, 1, 28, 1},
{1, 1, 29, 1},
{1, 1, 30, 1},
{1, 1, 31, 1}
};
#include "data/text/ribbon_descriptions.h"
#include "data/text/gift_ribbon_descriptions.h"
const u16 gUnknown_08623FF8[] = INCBIN_U16("graphics/pokenav/ribbons_icon1.gbapal");
const u16 gUnknown_08624018[] = INCBIN_U16("graphics/pokenav/ribbons_icon2.gbapal");
const u16 gUnknown_08624038[] = INCBIN_U16("graphics/pokenav/ribbons_icon3.gbapal");
const u16 gUnknown_08624058[] = INCBIN_U16("graphics/pokenav/ribbons_icon4.gbapal");
const u16 gUnknown_08624078[] = INCBIN_U16("graphics/pokenav/ribbons_icon5.gbapal");
const u16 gUnknown_08624098[] = INCBIN_U16("graphics/pokenav/8624098.gbapal");
const u32 gUnknown_086240B8[] = INCBIN_U32("graphics/pokenav/ribbons_icon.4bpp.lz");
const u32 gUnknown_08624280[] = INCBIN_U32("graphics/pokenav/ribbons_icon_big.4bpp.lz");
const struct BgTemplate gUnknown_08624B98[2] =
{
{
.bg = 1,
.charBaseIndex = 3,
.mapBaseIndex = 0x07,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0
},
{
.bg = 2,
.charBaseIndex = 1,
.mapBaseIndex = 0x06,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0
}
};
const LoopedTask gUnknown_08624BA0[] =
{
NULL,
sub_81D0C84,
sub_81D0D2C,
sub_81D0D8C,
sub_81D0E00,
sub_81D0C54
};
// code
static const struct WindowTemplate gUnknown_08624BB8 =
{
.bg = 2,

View File

@ -1,6 +1,261 @@
#include "global.h"
#include "bg.h"
#include "gym_leader_rematch.h"
#include "pokenav.h"
#include "sprite.h"
#include "window.h"
#include "strings.h"
#include "scanline_effect.h"
extern const u32 gPokenavOptions_Gfx[];
extern const u16 gPokenavOptions_Pal[];
const u16 gUnknown_0861FC78[] = INCBIN_U16("graphics/pokenav/bg.gbapal");
const u32 gUnknown_0861FC98[] = INCBIN_U32("graphics/pokenav/bg.4bpp.lz");
const u32 gUnknown_0861FCAC[] = INCBIN_U32("graphics/pokenav/bg.bin.lz");
const u16 gUnknown_0861FD4C[] = INCBIN_U16("graphics/pokenav/outline.gbapal");
const u32 gUnknown_0861FD6C[] = INCBIN_U32("graphics/pokenav/outline.4bpp.lz");
const u32 gUnknown_0861FFF4[] = INCBIN_U32("graphics/pokenav/outline_map.bin.lz");
const u16 gUnknown_08620104[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal");
const u32 gUnknown_08620124[] = INCBIN_U32("graphics/pokenav/blue_light.4bpp.lz");
const struct BgTemplate gUnknown_08620194[3] =
{
{
.bg = 1,
.charBaseIndex = 1,
.mapBaseIndex = 0x0F,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0
},
{
.bg = 2,
.charBaseIndex = 2,
.mapBaseIndex = 0x17,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0
},
{
.bg = 3,
.charBaseIndex = 3,
.mapBaseIndex = 0x1F,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
}
};
u32 sub_81C9C6C(s32);
u32 sub_81C9CA8(s32);
u32 sub_81C9D44(s32);
u32 sub_81C9DD8(s32);
u32 sub_81C9E58(s32);
u32 sub_81C9EC8(s32);
u32 sub_81C9EF8(s32);
u32 sub_81C9F28(s32);
u32 (*const gUnknown_086201A0[])(s32) =
{
NULL,
sub_81C9C6C,
sub_81C9CA8,
sub_81C9D44,
sub_81C9DD8,
sub_81C9E58,
sub_81C9EC8,
sub_81C9EF8,
sub_81C9F28
};
const struct CompressedSpriteSheet gUnknown_086201C4[] =
{
{
.data = gPokenavOptions_Gfx,
.size = 0x3400,
.tag = 0x0003
},
{
.data = gUnknown_08620124,
.size = 0x0100,
.tag = 0x0001
}
};
const struct SpritePalette gUnknown_086201D4[] =
{
{gPokenavOptions_Pal + 0x00, 4},
{gPokenavOptions_Pal + 0x10, 5},
{gPokenavOptions_Pal + 0x20, 6},
{gPokenavOptions_Pal + 0x30, 7},
{gPokenavOptions_Pal + 0x40, 8},
{gUnknown_08620104, 3},
{}
};
const u16 gUnknown_0862020C[] = {0, 0};
const u16 gUnknown_08620210[] = {0x20, 1};
const u16 gUnknown_08620214[] = {0x40, 4};
const u16 gUnknown_08620218[] = {0x60, 2};
const u16 gUnknown_0862021C[] = {0x80, 3};
const u16 gUnknown_08620220[] = {0xA0, 1};
const u16 gUnknown_08620224[] = {0xC0, 1};
const u16 gUnknown_08620228[] = {0xE0, 4};
const u16 gUnknown_0862022C[] = {0x100, 1};
const u16 gUnknown_08620230[] = {0x120, 2};
const u16 gUnknown_08620234[] = {0x140, 0};
const u16 gUnknown_08620238[] = {0x160, 0};
const u16 gUnknown_0862023C[] = {0x180, 3};
struct UnkStruct_08620240
{
u16 unk0;
u16 unk2;
const u16 *unk4[6];
};
const struct UnkStruct_08620240 gUnknown_08620240[5] =
{
{
0x2A,
0x14,
{gUnknown_0862020C, gUnknown_08620210, gUnknown_0862021C, NULL, NULL, NULL}
},
{
0x2A,
0x14,
{gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_0862021C, NULL, NULL}
},
{
0x2A,
0x14,
{gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_08620218, gUnknown_0862021C, NULL}
},
{
0x38,
0x14,
{gUnknown_08620220, gUnknown_08620224, gUnknown_0862023C, NULL, NULL, NULL}
},
{
0x28,
0x10,
{gUnknown_08620228, gUnknown_0862022C, gUnknown_08620230, gUnknown_08620234, gUnknown_08620238, gUnknown_0862023C}
},
};
const struct WindowTemplate gUnknown_086202CC =
{
.bg = 1,
.tilemapLeft = 3,
.tilemapTop = 17,
.width = 0x18,
.height = 0x2,
.paletteNum = 1,
.baseBlock = 8
};
const u8 *const gUnknown_086202D4[] =
{
gUnknown_085EBCC5,
gUnknown_085EBCE8,
gUnknown_085EBD01,
gUnknown_085EBD1C,
gUnknown_085EBD34,
gUnknown_085EBD83,
gUnknown_085EBDA2,
gUnknown_085EBDBF,
gUnknown_085EBDDB,
gUnknown_085EBDEE,
gUnknown_085EBE06,
gUnknown_085EBE19,
gUnknown_085EBE2D,
gUnknown_085EBE41
};
const u8 gUnknown_0862030C[] = {6, 8, 7};
const u8 gUnknown_0862030F[] = {6, 8, 7, 0, 0};
const struct OamData gUnknown_08620314 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.size = SPRITE_SIZE(32x16),
.tileNum = 0,
.priority = 2,
.paletteNum = 0,
};
const union AffineAnimCmd gUnknown_0862031C[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd gUnknown_0862032C[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0x12),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd *const gUnknown_08620344[] =
{
gUnknown_0862031C,
gUnknown_0862032C
};
const struct SpriteTemplate gUnknown_0862034C =
{
.tileTag = 3,
.paletteTag = 4,
.oam = &gUnknown_08620314,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_08620344,
.callback = SpriteCallbackDummy,
};
const struct OamData gUnknown_08620364 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.size = SPRITE_SIZE(32x16),
.tileNum = 0,
.priority = 2,
.paletteNum = 0,
};
const struct SpriteTemplate gUnknown_0862036C =
{
.tileTag = 1,
.paletteTag = 3,
.oam = &gUnknown_08620364,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
};
const struct ScanlineEffectParams gUnknown_08620384 =
{
(void *)REG_ADDR_WIN0H,
((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
1,
0
};
bool32 sub_81C98D4(void)
{

View File

@ -37,9 +37,10 @@ static u32 sub_81CACF8(struct Pokenav3Struct *);
static u32 sub_81CAD20(s32);
static bool32 sub_81CB1D0(void);
extern const u8 gUnknown_08622508[];
extern const u8 gUnknown_0862250A[];
extern const u8 *const gUnknown_08622028[][4];
#include "data/text/match_call_messages.h"
const u8 gUnknown_08622508[] = {0, 2};
const u8 gUnknown_0862250A[] = {0, 1, 2};
bool32 sub_81CAAE8(void)
{
@ -207,7 +208,7 @@ static u32 sub_81CAD20(s32 taskState)
{
state->unk1C[state->unkA].unk2 = j;
state->unk1C[state->unkA].unk0 = 1;
state->unk1C[state->unkA].unk1 = sub_81D16DC(j);
state->unk1C[state->unkA].unk1 = MatchCallMapSecGetByIndex(j);
state->unkA++;
}
@ -364,7 +365,7 @@ const u8 *sub_81CAFD8(int index, int textType)
var0 = state->unk1C[index].unk2;
}
return gUnknown_08622028[var0][textType];
return gMatchCallMessages[var0][textType];
}
u16 sub_81CB01C(void)

View File

@ -93,27 +93,191 @@ static void sub_81CC330(struct Pokenav4Struct *);
static struct Sprite *sub_81CC370(void);
static void sub_81CC440(struct Sprite *sprite);
static void sub_81CC4A4(struct Sprite *sprite);
void sub_81CC34C(struct Sprite *sprite);
u32 sub_81CB510(s32);
u32 sub_81CB588(s32);
u32 sub_81CB600(s32);
u32 sub_81CB678(s32);
u32 sub_81CB6F0(s32);
u32 sub_81CB734(s32);
u32 sub_81CB75C(s32);
u32 sub_81CB7A0(s32);
u32 sub_81CB824(s32);
u32 sub_81CB888(s32);
u32 sub_81CB93C(s32);
u32 sub_81CBAD4(s32);
u32 sub_81CB9C8(s32);
u32 sub_81CBA68(s32);
u32 sub_81CBB74(s32);
extern const LoopedTask gUnknown_08622798[];
extern const struct BgTemplate gUnknown_0862278C[3];
extern const u16 gUnknown_08622510[];
extern const u32 gUnknown_08622530[];
extern const u32 gUnknown_08622760[];
extern const u16 gUnknown_08622700[];
extern const u16 gUnknown_08622720[];
extern const u8 gUnknown_086225D4[];
extern const u16 gUnknown_086226E0[];
extern const struct BgTemplate gUnknown_08622794;
extern const struct WindowTemplate gUnknown_086227D8;
extern const struct WindowTemplate gUnknown_086227E0;
extern const u8 *const gUnknown_086227E8[];
extern const struct WindowTemplate gUnknown_08622808;
extern const u8 gUnknown_086227F4[];
extern const struct CompressedSpriteSheet gUnknown_08622810[1];
extern const struct SpritePalette gUnknown_08622818[];
extern const struct SpriteTemplate gUnknown_08622830;
extern const struct SpriteTemplate gUnknown_08622850;
const u16 gUnknown_08622510[] = INCBIN_U16("graphics/pokenav/ui_matchcall.gbapal");
const u32 gUnknown_08622530[] = INCBIN_U32("graphics/pokenav/ui_matchcall.4bpp.lz");
const u32 gUnknown_086225D4[] = INCBIN_U32("graphics/pokenav/ui_matchcall.bin.lz");
const u16 gUnknown_08622698[] = INCBIN_U16("graphics/pokenav/arrow2.gbapal");
const u32 gUnknown_086226B8[] = INCBIN_U32("graphics/pokenav/arrow2.4bpp.lz");
const u16 gUnknown_086226E0[] = INCBIN_U16("graphics/pokenav/86226E0.gbapal");
const u16 gUnknown_08622700[] = INCBIN_U16("graphics/pokenav/8622700.gbapal");
const u16 gUnknown_08622720[] = INCBIN_U16("graphics/pokenav/pokeball_matchcall.gbapal");
const u32 gUnknown_08622760[] = INCBIN_U32("graphics/pokenav/pokeball_matchcall.4bpp.lz");
const struct BgTemplate gUnknown_0862278C[3] =
{
{
.bg = 1,
.charBaseIndex = 3,
.mapBaseIndex = 0x1F,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0
},
{
.bg = 2,
.charBaseIndex = 2,
.mapBaseIndex = 0x06,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0x80
},
{
.bg = 3,
.charBaseIndex = 1,
.mapBaseIndex = 0x07,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
}
};
const LoopedTask gUnknown_08622798[] =
{
NULL,
sub_81CB510,
sub_81CB588,
sub_81CB600,
sub_81CB678,
sub_81CB6F0,
sub_81CB734,
sub_81CB75C,
sub_81CB7A0,
sub_81CB824,
sub_81CB888,
sub_81CB93C,
sub_81CBAD4,
sub_81CB9C8,
sub_81CBA68,
sub_81CBB74
};
const struct WindowTemplate gUnknown_086227D8 =
{
.bg = 2,
.tilemapLeft = 0,
.tilemapTop = 5,
.width = 11,
.height = 2,
.paletteNum = 2,
.baseBlock = 16
};
const struct WindowTemplate gUnknown_086227E0 =
{
.bg = 2,
.tilemapLeft = 0,
.tilemapTop = 9,
.width = 11,
.height = 8,
.paletteNum = 2,
.baseBlock = 38
};
const u8 *const gUnknown_086227E8[] =
{
gUnknown_085EC017,
gUnknown_085EC01C,
gUnknown_085EC022
};
const u8 gUnknown_086227F4[] = _("·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·\p");
const struct WindowTemplate gUnknown_08622808 =
{
.bg = 1,
.tilemapLeft = 1,
.tilemapTop = 12,
.width = 0x1C,
.height = 0x04,
.paletteNum = 1,
.baseBlock = 10
};
const struct CompressedSpriteSheet gUnknown_08622810[1] =
{
{gUnknown_086226B8, 0x40, 7}
};
const struct SpritePalette gUnknown_08622818[] =
{
{gUnknown_08622698, 12},
{}
};
const struct OamData gUnknown_08622828 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.shape = SPRITE_SHAPE(8x16),
.x = 0,
.size = SPRITE_SIZE(8x16),
.tileNum = 0,
.priority = 1,
.paletteNum = 0,
};
const struct SpriteTemplate gUnknown_08622830 =
{
.tileTag = 7,
.paletteTag = 12,
.oam = &gUnknown_08622828,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_81CC34C,
};
const struct OamData gUnknown_08622848 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.shape = SPRITE_SHAPE(64x64),
.x = 0,
.size = SPRITE_SIZE(64x64),
.tileNum = 0,
.priority = 1,
.paletteNum = 0,
};
const struct SpriteTemplate gUnknown_08622850 =
{
.tileTag = 8,
.paletteTag = 13,
.oam = &gUnknown_08622848,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
};
bool32 sub_81CB260(void)
{
struct Pokenav4Struct *state = AllocSubstruct(6, sizeof(struct Pokenav4Struct));
@ -718,7 +882,7 @@ static void sub_81CBBB8(void)
template.unkE = 7;
template.unk10 = sub_81CB050;
template.unk14 = sub_81CBCEC;
sub_81C81D4(&gUnknown_08622794, &template, 2);
sub_81C81D4(&gUnknown_0862278C[2], &template, 2);
CreateTask(sub_81CBC64, 7);
}

View File

@ -32,11 +32,11 @@ struct Pokenav5Struct_2
u8 cityZoomPics[22][0xC8];
};
struct CityZoomPic
struct CityMapEntry
{
u16 mapSecId;
u16 unk2;
const u32 *data;
u16 index;
const u32 *tilemap;
};
static u32 sub_81CC568(struct Pokenav5Struct *);
@ -61,17 +61,110 @@ static void sub_81CCDE8(struct Pokenav5Struct_2 *, int, int);
static void sub_81CCFA4(int);
static void sub_81CCC9C(u8 taskId);
static void sub_81CCF78(void);
void sub_81CCEF4(struct Sprite *sprite);
u32 sub_81CC848(s32);
u32 sub_81CC878(s32);
u32 sub_81CC8D8(s32);
u32 sub_81CC95C(s32);
extern const LoopedTask gUnknown_086230E4[];
extern const struct BgTemplate gUnknown_086230D8[2];
extern const struct CompressedSpriteSheet gUnknown_086230F8[1];
extern const struct SpritePalette gUnknown_08623100[];
extern const struct WindowTemplate gUnknown_08623110;
extern const u32 gUnknown_08622888[];
extern const u16 gUnknown_08622868[];
extern const u16 gHoennMapZoomIcons_Pal[];
extern const struct CityZoomPic gUnknown_08623118[22];
extern const struct SpriteTemplate gUnknown_086231D0;
extern const u32 gHoennMapZoomIcons_Gfx[];
const u16 gUnknown_08622868[] = INCBIN_U16("graphics/pokenav/8622868.gbapal");
const u32 gUnknown_08622888[] = INCBIN_U32("graphics/pokenav/zoom_tiles.4bpp.lz");
#include "data/region_map/city_map_tilemaps.h"
const struct BgTemplate gUnknown_086230D8[3] =
{
{
.bg = 1,
.charBaseIndex = 1,
.mapBaseIndex = 0x1F,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0
},
{
.bg = 2,
.charBaseIndex = 2,
.mapBaseIndex = 0x06,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0
},
{
.bg = 2,
.charBaseIndex = 0,
.mapBaseIndex = 0x00,
.screenSize = 2,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
},
};
const LoopedTask gUnknown_086230E4[] =
{
NULL,
sub_81CC848,
sub_81CC878,
sub_81CC8D8,
sub_81CC95C
};
const struct CompressedSpriteSheet gUnknown_086230F8[1] =
{
{gHoennMapZoomIcons_Gfx, 0x800, 6}
};
const struct SpritePalette gUnknown_08623100[] =
{
{gHoennMapZoomIcons_Pal, 11},
{}
};
const struct WindowTemplate gUnknown_08623110 =
{
.bg = 1,
.tilemapLeft = 17,
.tilemapTop = 4,
.width = 12,
.height = 13,
.paletteNum = 1,
.baseBlock = 0x4C
};
#include "data/region_map/city_map_entries.h"
const struct OamData gUnknown_086231C8 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.shape = SPRITE_SHAPE(32x8),
.x = 0,
.size = SPRITE_SIZE(32x8),
.tileNum = 0,
.priority = 1,
.paletteNum = 0,
};
const struct SpriteTemplate gUnknown_086231D0 =
{
.tileTag = 6,
.paletteTag = 11,
.oam = &gUnknown_086231C8,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_81CCEF4,
};
u32 sub_81CC4D4(void)
{
@ -215,7 +308,7 @@ static u32 sub_81CC6F4(s32 taskState)
HideBg(2);
HideBg(3);
SetBgMode(1);
InitBgTemplates(gUnknown_086230D8, ARRAY_COUNT(gUnknown_086230D8));
InitBgTemplates(gUnknown_086230D8, ARRAY_COUNT(gUnknown_086230D8) - 1);
regionMap = GetSubstructPtr(16);
sub_8122CF8(regionMap, &gUnknown_086230D8[1], sub_81CC6D0());
sub_81CC9C0();
@ -278,7 +371,7 @@ static u32 sub_81CC6F4(s32 taskState)
}
}
u32 sub_81CC848(int taskState)
u32 sub_81CC848(s32 taskState)
{
struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
switch (taskState)
@ -295,7 +388,7 @@ u32 sub_81CC848(int taskState)
return 4;
}
u32 sub_81CC878(int taskState)
u32 sub_81CC878(s32 taskState)
{
switch (taskState)
{
@ -321,7 +414,7 @@ u32 sub_81CC878(int taskState)
return 4;
}
u32 sub_81CC8D8(int taskState)
u32 sub_81CC8D8(s32 taskState)
{
struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
switch (taskState)
@ -354,7 +447,7 @@ u32 sub_81CC8D8(int taskState)
return 4;
}
u32 sub_81CC95C(int taskState)
u32 sub_81CC95C(s32 taskState)
{
switch (taskState)
{
@ -521,9 +614,9 @@ static bool32 sub_81CCD24(void)
static u32 sub_81CCD34(s32 taskState)
{
struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
if (taskState < (int)ARRAY_COUNT(gUnknown_08623118))
if (taskState < (int)ARRAY_COUNT(gPokenavCityMaps))
{
LZ77UnCompWram(gUnknown_08623118[taskState].data, state->cityZoomPics[taskState]);
LZ77UnCompWram(gPokenavCityMaps[taskState].tilemap, state->cityZoomPics[taskState]);
return 1;
}
@ -533,10 +626,10 @@ static u32 sub_81CCD34(s32 taskState)
static void sub_81CCD70(struct Pokenav5Struct_2 *state, int mapSecId, int pos)
{
int i;
for (i = 0; i < (int)ARRAY_COUNT(gUnknown_08623118) && (gUnknown_08623118[i].mapSecId != mapSecId || gUnknown_08623118[i].unk2 != pos); i++)
for (i = 0; i < (int)ARRAY_COUNT(gPokenavCityMaps) && (gPokenavCityMaps[i].mapSecId != mapSecId || gPokenavCityMaps[i].index != pos); i++)
;
if (i == ARRAY_COUNT(gUnknown_08623118))
if (i == ARRAY_COUNT(gPokenavCityMaps))
return;
FillBgTilemapBufferRect_Palette0(1, 0x1041, 17, 6, 12, 11);

View File

@ -1,5 +1,7 @@
#include "global.h"
#include "bg.h"
#include "window.h"
#include "pokenav.h"
#include "decompress.h"
#include "gpu_regs.h"
#include "graphics.h"
@ -13,7 +15,106 @@
#include "strings.h"
#include "text.h"
static u8 gUnknown_030012BC;
u32 sub_81CE37C(s32);
u32 sub_81CE2D0(s32);
u32 sub_81CE4D8(s32);
u32 sub_81CE5E4(s32);
u32 sub_81CE6BC(s32);
u32 sub_81CE700(s32);
BSS_DATA u8 gUnknown_030012BC;
const u16 gUnknown_086231E8[] = INCBIN_U16("graphics/pokenav/86231E8.gbapal");
const u16 gUnknown_08623208[] = INCBIN_U16("graphics/pokenav/8623208.gbapal");
const u32 gUnknown_08623228[] = INCBIN_U32("graphics/pokenav/8623228.4bpp.lz");
const u32 gUnknown_0862323C[] = INCBIN_U32("graphics/pokenav/862323C.bin.lz");
const u16 gUnknown_08623338[] = INCBIN_U16("graphics/pokenav/8623338.gbapal");
const struct BgTemplate gUnknown_08623358[3] =
{
{
.bg = 1,
.charBaseIndex = 1,
.mapBaseIndex = 0x1F,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0
},
{
.bg = 2,
.charBaseIndex = 3,
.mapBaseIndex = 0x1D,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0
},
{
.bg = 3,
.charBaseIndex = 2,
.mapBaseIndex = 0x1E,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
}
};
const struct WindowTemplate gUnknown_08623364 =
{
.bg = 1,
.tilemapLeft = 13,
.tilemapTop = 1,
.width = 13,
.height = 4,
.paletteNum = 15,
.baseBlock = 2
};
const struct WindowTemplate gUnknown_0862336C =
{
.bg = 1,
.tilemapLeft = 1,
.tilemapTop = 6,
.width = 7,
.height = 2,
.paletteNum = 15,
.baseBlock = 0x36
};
const struct WindowTemplate gUnknown_08623374 =
{
.bg = 1,
.tilemapLeft = 1,
.tilemapTop = 0x1C,
.width = 5,
.height = 2,
.paletteNum = 15,
.baseBlock = 0x44
};
const struct WindowTemplate gUnknown_0862337C =
{
.bg = 1,
.tilemapLeft = 13,
.tilemapTop = 0x1C,
.width = 3,
.height = 2,
.paletteNum = 15,
.baseBlock = 0x44
};
const LoopedTask gUnknown_08623384[] =
{
NULL,
sub_81CE37C,
sub_81CE2D0,
sub_81CE4D8,
sub_81CE5E4,
sub_81CE6BC,
sub_81CE700
};
struct Pokenav7Struct
{
@ -52,19 +153,6 @@ void sub_81CEEC8(void);
void sub_81CEE68(void);
void sub_81CEE74(bool8 showBg);
// const data
extern const LoopedTask gUnknown_08623384[];
extern const struct BgTemplate gUnknown_08623358[3];
extern const u32 gUnknown_08623228[];
extern const u32 gUnknown_0862323C[];
extern const u16 gUnknown_086231E8[];
extern const u16 gUnknown_08623338[];
extern const u16 gUnknown_08623208[];
extern const struct WindowTemplate gUnknown_08623364;
extern const struct WindowTemplate gUnknown_0862336C;
extern const struct WindowTemplate gUnknown_08623374;
extern const struct WindowTemplate gUnknown_0862337C;
// code
bool32 sub_81CDDD4(void)
{

View File

@ -1,5 +1,81 @@
#include "global.h"
#include "pokenav.h"
#include "bg.h"
#include "window.h"
u32 sub_81CF134(void);
u32 sub_81CF1C4(void);
u32 sub_81CF1D8(void);
u32 sub_81CF278(void);
u32 sub_81CF578(s32);
u32 sub_81CF5F0(s32);
u32 sub_81CF668(s32);
u32 sub_81CF6E0(s32);
u32 sub_81CF758(s32);
u32 sub_81CF798(s32);
const u32 gUnknown_086233A0[] = {0x16, 0x17, 0x18, 0x21, 0x2F};
u32 (*const gUnknown_086233B4[])(void) =
{
sub_81CF134,
sub_81CF1C4,
sub_81CF1D8,
sub_81CF278
};
const u16 gUnknown_086233C4[] = INCBIN_U16("graphics/pokenav/condition_search2.gbapal");
const u32 gUnknown_086233E4[] = INCBIN_U32("graphics/pokenav/condition_search2.4bpp.lz");
const u32 gUnknown_086234AC[] = INCBIN_U32("graphics/pokenav/condition_search2.bin.lz");
const u16 gUnknown_08623570[] = INCBIN_U16("graphics/pokenav/8623570.gbapal");
const struct BgTemplate gUnknown_08623590 =
{
.bg = 1,
.charBaseIndex = 1,
.mapBaseIndex = 0x06,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0
};
const struct BgTemplate gUnknown_08623594 =
{
.bg = 2,
.charBaseIndex = 2,
.mapBaseIndex = 0x07,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
};
const LoopedTask gUnknown_08623598[] =
{
NULL,
sub_81CF578,
sub_81CF5F0,
sub_81CF668,
sub_81CF6E0,
sub_81CF758,
sub_81CF798
};
const struct WindowTemplate gUnknown_086235B4 =
{
.bg = 1,
.tilemapLeft = 1,
.tilemapTop = 6,
.width = 7,
.height = 2,
.paletteNum = 1,
.baseBlock = 20
};
const u8 gUnknown_086235BC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
const u8 gUnknown_086235C8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
const u8 gUnknown_086235D4[] = _("{UNK_SPACER}");
struct PokenavSub7
{
@ -12,8 +88,6 @@ struct PokenavSub7
struct PokenavSub18 *unkPtr;
};
extern const u32 gUnknown_086233A0[];
u32 sub_81CF010(struct PokenavSub7 *structPtr);
u32 sub_81CF030(struct PokenavSub7 *structPtr);
u32 sub_81CF0B8(struct PokenavSub7 *structPtr);

74
src/pokenav_unk_9.c Normal file
View File

@ -0,0 +1,74 @@
#include "global.h"
#include "pokenav.h"
#include "bg.h"
#include "window.h"
u32 sub_81CFB8C(void);
u32 sub_81CFC2C(void);
u32 sub_81CFC40(void);
u32 sub_81CFFFC(s32);
u32 sub_81D0074(s32);
u32 sub_81D00EC(s32);
u32 sub_81D0164(s32);
u32 sub_81D01DC(s32);
u32 sub_81D021C(s32);
u32 (*const gUnknown_086235D8[])(void) =
{
sub_81CFB8C,
sub_81CFC2C,
sub_81CFC40
};
const u16 gUnknown_086235E4[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal");
const u32 gUnknown_08623604[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz");
const u32 gUnknown_086236CC[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz");
const u16 gUnknown_08623790[] = INCBIN_U16("graphics/pokenav/8623790.gbapal");
const struct BgTemplate gUnknown_086237B0 =
{
.bg = 1,
.charBaseIndex = 1,
.mapBaseIndex = 0x06,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0
};
const struct BgTemplate gUnknown_086237B4 =
{
.bg = 2,
.charBaseIndex = 2,
.mapBaseIndex = 0x07,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
};
const LoopedTask gUnknown_086237B8[] =
{
NULL,
sub_81CFFFC,
sub_81D0074,
sub_81D00EC,
sub_81D0164,
sub_81D01DC,
sub_81D021C
};
const struct WindowTemplate gUnknown_086237D4 =
{
.bg = 1,
.tilemapLeft = 1,
.tilemapTop = 6,
.width = 7,
.height = 2,
.paletteNum = 1,
.baseBlock = 20
};
const u8 gUnknown_086237DC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
const u8 gUnknown_086237E8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
const u8 gUnknown_086237F4[] = _("{UNK_SPACER}");

View File

@ -462,6 +462,108 @@ u8 GetLastTextColor(u8 colorType)
}
}
#ifdef NONMATCHING
#define GLYPH_COPY(fromY_, toY_, fromX_, toX_, unk) \
{ \
u32 i, j, *ptr, toY, fromX, toX, r5, toOrr, bits; \
u8 *dst; \
\
j = fromX_; \
i = fromY_; \
ptr = unk; \
toX = toX_; \
toY = toY_; \
fromX = fromX_; \
\
for (; i < toY; i++) \
{ \
r5 = *(ptr++); \
for (j = fromX; j < toX; j++) \
{ \
toOrr = r5 & 0xF; \
if (toOrr) \
{ \
dst = windowTiles + ((j / 8) * 32) + ((j & 7) / 2) + ((i / 8) * widthOffset) + ((i & 7) * 4); \
bits = ((j & 1) << 2); \
*dst = ((toOrr << bits) | (*dst & (0xF0 >> bits))); \
} \
r5 >>= 4; \
} \
} \
}
void CopyGlyphToWindow(struct TextPrinter *textPrinter)
{
struct Window *win;
struct WindowTemplate *winTempl;
struct Struct_03002F90 *unkStruct;
u32 currX, widthOffset, currY;
s32 r4, r0;
u8 *windowTiles;
win = &gWindows[textPrinter->printerTemplate.windowId];
winTempl = &win->window;
r4 = (winTempl->width * 8) - textPrinter->printerTemplate.currentX;
if (r4 > gUnknown_03002F90.unk80)
r4 = gUnknown_03002F90.unk80;
r0 = (winTempl->height * 8) - textPrinter->printerTemplate.currentY;
if (r0 > gUnknown_03002F90.unk81)
r0 = gUnknown_03002F90.unk81;
currX = textPrinter->printerTemplate.currentX;
currY = textPrinter->printerTemplate.currentY;
unkStruct = &gUnknown_03002F90;
windowTiles = win->tileData;
widthOffset = winTempl->width * 32;
if (r4 <= 8)
{
if (r0 <= 8)
{
GLYPH_COPY(currY, currY + r0, currX, currX + r4, unkStruct->unk0);
}
else
{
u32 temp;
GLYPH_COPY(currY, currY + 8, currX, currX + r4, unkStruct->unk0);
temp = currY + 8;
GLYPH_COPY(temp, (temp - 8) + r0, currX, currX + r4, unkStruct->unk40);
}
}
else
{
if (r0 <= 8)
{
u32 temp;
GLYPH_COPY(currY, currY + r0, currX, currX + 8, unkStruct->unk0);
temp = currX + 8;
GLYPH_COPY(currY, currY + r0, temp, (temp - 8) + r4, unkStruct->unk20);
}
else
{
u32 temp;
GLYPH_COPY(currY, currY + 8, currX, currX + 8, unkStruct->unk0);
temp = currX + 8;
GLYPH_COPY(currY, currY + 8, temp, temp - 8 + r4, unkStruct->unk20);
temp = currY + 8;
GLYPH_COPY(temp, temp - 8 + r0, currX, currX + 8, unkStruct->unk40);
{
u32 tempX, tempY;
tempX = currX + 8;
tempY = currY + 8;
GLYPH_COPY(tempY, tempY - 8 + r0, tempX, tempX - 8 + r4, unkStruct->unk60);
}
}
}
}
#else
NAKED
void CopyGlyphToWindow(struct TextPrinter *x)
{
@ -1164,6 +1266,7 @@ _080052AA:\n\
bx r0\n\
.pool");
}
#endif // NONMATCHING
void ClearTextSpan(struct TextPrinter *textPrinter, u32 width)
{

View File

@ -1,53 +1,54 @@
#include "global.h"
#include "window.h"
#include "alloc.h"
#include "battle.h"
#include "berry_crush.h"
#include "bg.h"
#include "random.h"
#include "string_util.h"
#include "task.h"
#include "cable_club.h"
#include "data.h"
#include "decompress.h"
#include "dodrio_berry_picking.h"
#include "dynamic_placeholder_text_util.h"
#include "easy_chat.h"
#include "event_data.h"
#include "event_obj_lock.h"
#include "field_control_avatar.h"
#include "field_player_avatar.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "international_string_util.h"
#include "librfu.h"
#include "link.h"
#include "link_rfu.h"
#include "librfu.h"
#include "alloc.h"
#include "menu.h"
#include "list_menu.h"
#include "load_save.h"
#include "menu.h"
#include "menu_helpers.h"
#include "mevent.h"
#include "mystery_gift.h"
#include "overworld.h"
#include "palette.h"
#include "party_menu.h"
#include "pokemon_jump.h"
#include "random.h"
#include "script.h"
#include "script_pokemon_util_80F87D8.h"
#include "sound.h"
#include "constants/songs.h"
#include "constants/game_stat.h"
#include "constants/maps.h"
#include "constants/species.h"
#include "constants/rgb.h"
#include "constants/battle_frontier.h"
#include "start_menu.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "trade.h"
#include "trainer_card.h"
#include "overworld.h"
#include "battle.h"
#include "load_save.h"
#include "cable_club.h"
#include "field_control_avatar.h"
#include "party_menu.h"
#include "field_weather.h"
#include "palette.h"
#include "decompress.h"
#include "start_menu.h"
#include "data.h"
#include "field_screen_effect.h"
#include "script_pokemon_util_80F87D8.h"
#include "international_string_util.h"
#include "field_player_avatar.h"
#include "strings.h"
#include "mevent.h"
#include "dynamic_placeholder_text_util.h"
#include "union_room.h"
#include "easy_chat.h"
#include "event_obj_lock.h"
#include "union_room_chat.h"
#include "berry_crush.h"
#include "mystery_gift.h"
#include "union_room_player_avatar.h"
#include "pokemon_jump.h"
#include "window.h"
#include "constants/battle_frontier.h"
#include "constants/game_stat.h"
#include "constants/maps.h"
#include "constants/rgb.h"
#include "constants/songs.h"
#include "constants/species.h"
EWRAM_DATA u8 gUnknown_02022C20[12] = {};
EWRAM_DATA u8 gUnknown_02022C2C = 0;
@ -98,7 +99,6 @@ bool32 sub_8017678(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1)
u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId);
void sub_801807C(struct TradeUnkStruct *arg0);
void sub_801AC54(void);
void sub_802493C(u8 monId, MainCallback callback);
void sub_80149D8(void);
void MG_DrawTextBorder(u8 windowId);
s8 mevent_message_print_and_prompt_yes_no(u8 *textState, u8 *arg1, u8 arg2, const u8 *str);

View File

@ -85,6 +85,10 @@ struct UsePokeblockStruct
/*0x7FD0*/ struct UsePokeblockSubStruct info;
};
#define TAG_TILE_CONDITION_UP_DOWN 0
#define TAG_PAL_CONDITION_UP_DOWN 0
#define TAG_PAL_POKEBLOCK_CONDITION 1
extern void sub_81D21DC(u8);
// this file's functions
@ -130,26 +134,12 @@ static u8 sub_8168048(void);
void sub_8168180(struct Sprite *sprite);
void sub_81681B4(struct Sprite *sprite);
void sub_8168168(struct Sprite *sprite);
void sub_8168374(struct Sprite *sprite);
extern const struct BgTemplate gUnknown_085DFCCC[4];
extern const struct WindowTemplate gUnknown_085DFCDC[];
extern const struct WindowTemplate sUsePokeblockYesNoWinTemplate[];
extern const u8* sContestStatNames[];
extern const u32 gUnknown_085DFCB0[];
extern const u8 gUnknown_085DFCC4[];
extern const struct SpriteSheet gSpriteSheet_ConditionUpDown;
extern const struct SpritePalette gSpritePalette_ConditionUpDown;
extern const struct SpriteTemplate gSpriteTemplate_085DFD5C;
extern const s16 gUnknown_085DFD28[][2];
extern const u32 gUnknown_085DFB60[];
extern const u32 gUnknown_085DFA80[];
extern const u32 gUnknown_085DFA60[];
extern const u32 gUnknown_085DFC0C[];
extern const u16 gUnknown_086231E8[];
extern const u16 gUnknown_08623208[];
extern const u8 gUnknown_085DFCC9[];
extern const struct SpritePalette gUnknown_085DFDB8;
extern const struct SpriteTemplate gUnknown_085DFDA0;
extern const struct SpritePalette gSpritePalette_085DFDB8;
extern const struct SpriteTemplate gSpriteTemplate_085DFDA0;
// ram variables
EWRAM_DATA struct UsePokeblockSubStruct *gUnknown_0203BC90 = NULL;
@ -165,6 +155,245 @@ EWRAM_DATA struct UsePokeblockStruct *gUnknown_0203BCAC = NULL;
// const rom data
// todo: make it static once the file is decompiled
const u32 gUnknown_085DFA60[] = INCBIN_U32("graphics/interface/85DFA60.bin");
const u32 gUnknown_085DFA80[] = INCBIN_U32("graphics/interface/85DFA80.4bpp");
const u32 gUnknown_085DFB60[] = INCBIN_U32("graphics/interface/85DFB60.bin");
const u32 gUnknown_085DFC0C[] = INCBIN_U32("graphics/interface/85DFC0C.bin");
const u32 gUnknown_085DFCB0[] =
{
MON_DATA_COOL,
MON_DATA_TOUGH,
MON_DATA_SMART,
MON_DATA_CUTE,
MON_DATA_BEAUTY
};
const u8 gUnknown_085DFCC4[] =
{
0, // Spicy/Cool
4, // Dry/Beauty
3, // Sweet/Cute
2, // Bitter/Smart
1 // Sour/Tough
};
const u8 gUnknown_085DFCC9[] =
{
0,
8,
1
};
const struct BgTemplate gUnknown_085DFCCC[4] =
{
{
.bg = 0,
.charBaseIndex = 2,
.mapBaseIndex = 0x1F,
.screenSize = 0,
.paletteMode = 0,
.priority = 0,
.baseTile = 0
},
{
.bg = 1,
.charBaseIndex = 0,
.mapBaseIndex = 0x1E,
.screenSize = 0,
.paletteMode = 0,
.priority = 3,
.baseTile = 0
},
{
.bg = 3,
.charBaseIndex = 3,
.mapBaseIndex = 0x1D,
.screenSize = 0,
.paletteMode = 0,
.priority = 2,
.baseTile = 0x100
},
{
.bg = 2,
.charBaseIndex = 0,
.mapBaseIndex = 0x17,
.screenSize = 0,
.paletteMode = 0,
.priority = 1,
.baseTile = 0
}
};
const struct WindowTemplate gUnknown_085DFCDC[] =
{
{
.bg = 0,
.tilemapLeft = 0xD,
.tilemapTop = 1,
.width = 0xD,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 1
},
{
.bg = 0,
.tilemapLeft = 0,
.tilemapTop = 0xE,
.width = 0xB,
.height = 2,
.paletteNum = 0xF,
.baseBlock = 0x35
},
{
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 0x11,
.width = 0x1C,
.height = 2,
.paletteNum = 0xF,
.baseBlock = 0x4B
},
DUMMY_WIN_TEMPLATE
};
const struct WindowTemplate sUsePokeblockYesNoWinTemplate =
{
.bg = 0,
.tilemapLeft = 0x18,
.tilemapTop = 0xB,
.width = 5,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x83
};
const u8 *const sContestStatNames[] =
{
gText_Coolness,
gText_Toughness,
gText_Smartness,
gText_Cuteness,
gText_Beauty3
};
const struct SpriteSheet gSpriteSheet_ConditionUpDown =
{
gUsePokeblockUpDown_Gfx, 0x200, TAG_TILE_CONDITION_UP_DOWN
};
const struct SpritePalette gSpritePalette_ConditionUpDown =
{
gUsePokeblockUpDown_Pal, TAG_PAL_CONDITION_UP_DOWN
};
const s16 gUnknown_085DFD28[][2] =
{
{0x9C, 0x24},
{0x75, 0x3B},
{0x75, 0x76},
{0xC5, 0x76},
{0xC5, 0x3B}
};
const struct OamData gOamData_085DFD3C =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.shape = SPRITE_SHAPE(32x16),
.x = 0,
.size = SPRITE_SIZE(32x16),
.tileNum = 0,
.priority = 1,
.paletteNum = 0,
};
const union AnimCmd gSpriteAnim_085DFD44[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_END
};
const union AnimCmd gSpriteAnim_085DFD4C[] =
{
ANIMCMD_FRAME(8, 5),
ANIMCMD_END
};
const union AnimCmd *const gSpriteAnimTable_085DFD54[] =
{
gSpriteAnim_085DFD44,
gSpriteAnim_085DFD4C
};
const struct SpriteTemplate gSpriteTemplate_085DFD5C =
{
.tileTag = 0,
.paletteTag = 0,
.oam = &gOamData_085DFD3C,
.anims = gSpriteAnimTable_085DFD54,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
};
const struct OamData gOamData_085DFD74 =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.bpp = 0,
.shape = SPRITE_SHAPE(64x32),
.x = 0,
.size = SPRITE_SIZE(64x32),
.tileNum = 0,
.priority = 1,
.paletteNum = 0,
};
const union AnimCmd gSpriteAnim_085DFD7C[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_END
};
const union AnimCmd gSpriteAnim_085DFD84[] =
{
ANIMCMD_FRAME(32, 5),
ANIMCMD_END
};
const union AnimCmd gSpriteAnim_085DFD8C[] =
{
ANIMCMD_FRAME(64, 5),
ANIMCMD_END
};
const union AnimCmd *const gSpriteAnimTable_085DFD94[] =
{
gSpriteAnim_085DFD7C,
gSpriteAnim_085DFD84,
gSpriteAnim_085DFD8C
};
const struct SpriteTemplate gSpriteTemplate_085DFDA0 =
{
.tileTag = 1,
.paletteTag = 1,
.oam = &gOamData_085DFD74,
.anims = gSpriteAnimTable_085DFD94,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_8168374,
};
const struct SpritePalette gSpritePalette_085DFDB8 =
{
gUsePokeblockCondition_Pal, TAG_PAL_POKEBLOCK_CONDITION
};
// code
void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void))
{
@ -618,7 +847,7 @@ void sub_8166D44(void)
AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL);
PutWindowTilemap(2);
CopyWindowToVram(2, 3);
CreateYesNoMenu(sUsePokeblockYesNoWinTemplate, 151, 14, 0);
CreateYesNoMenu(&sUsePokeblockYesNoWinTemplate, 151, 14, 0);
}
s8 sub_8166DE4(void)
@ -1373,7 +1602,7 @@ static void sub_8168248(void)
struct CompressedSpriteSheet spriteSheet;
struct SpritePalette spritePalette;
spritePalette = gUnknown_085DFDB8;
spritePalette = gSpritePalette_085DFDB8;
spriteSheet.data = gUsePokeblockCondition_Gfx;
spriteSheet.size = 0x800;
spriteSheet.tag = 1;
@ -1388,7 +1617,7 @@ static void sub_8168294(void)
int yStart = 17;
int var = 8;
struct Sprite **sprites = gUnknown_0203BCAC->field_7B44;
const struct SpriteTemplate *template = &gUnknown_085DFDA0;
const struct SpriteTemplate *template = &gSpriteTemplate_085DFDA0;
for (i = 0, xDiff = 64, xStart = -96; i < 2; i++)
{