From b68ab6106d59902c7aef7bb2d7058a3945849ece Mon Sep 17 00:00:00 2001 From: garak Date: Fri, 19 Jul 2019 17:23:52 -0400 Subject: [PATCH 01/14] pokenav unk 2 data decomp --- asm/pokenav_unk_2.s | 2 +- data/pokenav.s | 190 --------------------------------- include/strings.h | 16 +++ ld_script.txt | 1 + src/pokenav_unk_2.c | 255 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 273 insertions(+), 191 deletions(-) diff --git a/asm/pokenav_unk_2.s b/asm/pokenav_unk_2.s index 89a8bde9e..da83ccf55 100644 --- a/asm/pokenav_unk_2.s +++ b/asm/pokenav_unk_2.s @@ -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 diff --git a/data/pokenav.s b/data/pokenav.s index 2ed2cf9a0..7c2e89be9 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -3,196 +3,6 @@ .section .rodata -// pokenav_unk_2.s -gUnknown_0861FC78:: @ 861FC78 - .incbin "graphics/pokenav/bg.gbapal" - -gUnknown_0861FC98:: @ 861FC98 - .incbin "graphics/pokenav/bg.4bpp.lz" - -gUnknown_0861FCAC:: @ 861FCAC - .incbin "graphics/pokenav/bg.bin.lz" - -gUnknown_0861FD4C:: @ 861FD4C - .incbin "graphics/pokenav/outline.gbapal" - -gUnknown_0861FD6C:: @ 861FD6C - .incbin "graphics/pokenav/outline.4bpp.lz" - -gUnknown_0861FFF4:: @ 861FFF4 - .incbin "graphics/pokenav/outline_map.bin.lz" - -gUnknown_08620104:: @ 8620104 - .incbin "graphics/pokenav/blue_light.gbapal" - -gUnknown_08620124:: @ 8620124 - .incbin "graphics/pokenav/blue_light.4bpp.lz" - -gUnknown_08620194:: @ 8620194 - .byte 0xF5, 0x10, 0, 0, 0x7A, 0x21, 0, 0, 0xFF, 0x31, 0, 0 - -gUnknown_086201A0:: @ 86201A0 - .4byte NULL - .4byte sub_81C9C6C - .4byte sub_81C9CA8 - .4byte sub_81C9D44 - .4byte sub_81C9DD8 - .4byte sub_81C9E58 - .4byte sub_81C9EC8 - .4byte sub_81C9EF8 - .4byte sub_81C9F28 - -gUnknown_086201C4:: @ 86201C4 - .4byte gPokenavOptions_Gfx - .byte 0, 0x34, 3, 0 - .4byte gUnknown_08620124 - .byte 0, 1, 1, 0 - -gUnknown_086201D4:: @ 86201D4 - .4byte gPokenavOptions_Pal + 0x0, 4 - .4byte gPokenavOptions_Pal + 0x20, 5 - .4byte gPokenavOptions_Pal + 0x40, 6 - .4byte gPokenavOptions_Pal + 0x60, 7 - .4byte gPokenavOptions_Pal + 0x80, 8 - .4byte gUnknown_08620104, 3 - .4byte 0, 0 - -gUnknown_0862020C:: @ 862020C - .2byte 0, 0 - -gUnknown_08620210:: @ 8620210 - .2byte 0x20, 1 - -gUnknown_08620214:: @ 8620214 - .2byte 0x40, 4 - -gUnknown_08620218:: @ 8620218 - .2byte 0x60, 2 - -gUnknown_0862021C:: @ 862021C - .2byte 0x80, 3 - -gUnknown_08620220:: @ 8620220 - .2byte 0xA0, 1 - -gUnknown_08620224:: @ 8620224 - .2byte 0xC0, 1 - -gUnknown_08620228:: @ 8620228 - .2byte 0xE0, 4 - -gUnknown_0862022C:: @ 862022C - .2byte 0x100, 1 - -gUnknown_08620230:: @ 8620230 - .2byte 0x120, 2 - -gUnknown_08620234:: @ 8620234 - .2byte 0x140, 0 - -gUnknown_08620238:: @ 8620238 - .2byte 0x160, 0 - -gUnknown_0862023C:: @ 862023C - .2byte 0x180, 3 - -gUnknown_08620240:: @ 8620240 - .2byte 0x2A, 0x14 - -gUnknown_08620244:: @ 8620244 - .4byte gUnknown_0862020C - .4byte gUnknown_08620210 - .4byte gUnknown_0862021C - .4byte NULL - .4byte NULL - .4byte NULL - .2byte 0x2A, 0x14 - .4byte gUnknown_0862020C - .4byte gUnknown_08620210 - .4byte gUnknown_08620214 - .4byte gUnknown_0862021C - .4byte NULL - .4byte NULL - .2byte 0x2A, 0x14 - .4byte gUnknown_0862020C - .4byte gUnknown_08620210 - .4byte gUnknown_08620214 - .4byte gUnknown_08620218 - .4byte gUnknown_0862021C - .4byte NULL - .2byte 0x38, 0x14 - .4byte gUnknown_08620220 - .4byte gUnknown_08620224 - .4byte gUnknown_0862023C - .4byte NULL - .4byte NULL - .4byte NULL - .2byte 0x28, 0x10 - .4byte gUnknown_08620228 - .4byte gUnknown_0862022C - .4byte gUnknown_08620230 - .4byte gUnknown_08620234 - .4byte gUnknown_08620238 - .4byte gUnknown_0862023C - -gUnknown_086202CC:: @ 86202CC - window_template 1, 3, 17, 0x18, 2, 1, 8 - -gUnknown_086202D4:: @ 86202D4 - .4byte gUnknown_085EBCC5 - .4byte gUnknown_085EBCE8 - .4byte gUnknown_085EBD01 - .4byte gUnknown_085EBD1C - .4byte gUnknown_085EBD34 - .4byte gUnknown_085EBD83 - .4byte gUnknown_085EBDA2 - .4byte gUnknown_085EBDBF - .4byte gUnknown_085EBDDB - .4byte gUnknown_085EBDEE - .4byte gUnknown_085EBE06 - .4byte gUnknown_085EBE19 - .4byte gUnknown_085EBE2D - .4byte gUnknown_085EBE41 - -gUnknown_0862030C:: @ 862030C - .byte 6, 8, 7 - -gUnknown_0862030F:: @ 862030F - .byte 6, 8, 7, 0, 0 - -gUnknown_08620314:: @ 8620314 - .byte 0, 0x40, 0, 0x80, 0, 8, 0, 0 - -gUnknown_0862031C:: @ 862031C - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_end - -gUnknown_0862032C:: @ 862032C - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_frame 0x10, 0x10, 0, 0x12 - obj_rot_scal_anim_end - -gUnknown_08620344:: @ 8620344 - .4byte gUnknown_0862031C - .4byte gUnknown_0862032C - -gUnknown_0862034C:: @ 862034C - spr_template 3, 4, gUnknown_08620314, gDummySpriteAnimTable, NULL, gUnknown_08620344, SpriteCallbackDummy - -gUnknown_08620364:: @ 8620364 - .2byte 0x4000 - .2byte 0x8000 - .2byte 0x800 - .2byte 0 - -gUnknown_0862036C:: @ 862036C - spr_template 1, 3, gUnknown_08620364, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_08620384:: @ 8620384 - .4byte 0x4000040 - .4byte 0xa2600001 - .byte 1, 0, 0, 0 - // pokenav_unk_3.s gUnknown_08620390:: @ 8620390 .string "Becalm fighting emotions.$" diff --git a/include/strings.h b/include/strings.h index e373a5660..3dd86f60a 100644 --- a/include/strings.h +++ b/include/strings.h @@ -2723,4 +2723,20 @@ 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[]; + #endif // GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index e8be7e76d..ad4f439cc 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -643,6 +643,7 @@ SECTIONS { src/pokenav_main_menu.o(.rodata); src/pokenav_match_call_ui.o(.rodata); src/pokenav_unk_1.o(.rodata); + src/pokenav_unk_2.o(.rodata); data/pokenav.o(.rodata); src/pokenav_unk_10.o(.rodata); src/pokenav_match_call_data.o(.rodata); diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index 3aec4685e..09416c31f 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -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(int); +u32 sub_81C9CA8(int); +u32 sub_81C9D44(int); +u32 sub_81C9DD8(int); +u32 sub_81C9E58(int); +u32 sub_81C9EC8(int); +u32 sub_81C9EF8(int); +u32 sub_81C9F28(int); + +u32 (*const gUnknown_086201A0[])(int) = +{ + 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) { From c400d1dc7fe70c167f8270692544919332dc6efb Mon Sep 17 00:00:00 2001 From: garak Date: Fri, 19 Jul 2019 18:31:42 -0400 Subject: [PATCH 02/14] decompile pokenav_unk_3 data --- data/pokenav.s | 1026 ------------------------- ld_script.txt | 1 + src/data/text/trainers_eye_messages.h | 550 +++++++++++++ src/pokenav_unk_3.c | 7 +- 4 files changed, 555 insertions(+), 1029 deletions(-) create mode 100644 src/data/text/trainers_eye_messages.h diff --git a/data/pokenav.s b/data/pokenav.s index 7c2e89be9..42262bfa1 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -3,1032 +3,6 @@ .section .rodata -// pokenav_unk_3.s -gUnknown_08620390:: @ 8620390 - .string "Becalm fighting emotions.$" - -gUnknown_086203AA:: @ 86203AA - .string "Fragrant GRASS POKéMON.$" - -gUnknown_086203C2:: @ 86203C2 - .string "Soothing aromas make the$" - -gUnknown_086203DB:: @ 86203DB - .string "body and mind healthy.$" - -gUnknown_086203F2:: @ 86203F2 - .string "I'm not very good at this.$" - -gUnknown_0862040D:: @ 862040D - .string "Ruin-exploration partners.$" - -gUnknown_08620428:: @ 8620428 - .string "I am searching for undersea$" - -gUnknown_08620444:: @ 8620444 - .string "ruins and relics.$" - -gUnknown_08620456:: @ 8620456 - .string "Overwhelm with power!$" - -gUnknown_0862046C:: @ 862046C - .string "Craggy ROCK POKéMON.$" - -gUnknown_08620481:: @ 8620481 - .string "In search of ancient lore,$" - -gUnknown_0862049C:: @ 862049C - .string "I travel the world.$" - -gUnknown_086204B0:: @ 86204B0 - .string "I'm going to try hard!$" - -gUnknown_086204C7:: @ 86204C7 - .string "Good swimmer POKéMON.$" - -gUnknown_086204DD:: @ 86204DD - .string "I wish I could swim without$" - -gUnknown_086204F9:: @ 86204F9 - .string "using an inner tube.$" - -gUnknown_0862050E:: @ 862050E - .string "I don't know. I'll try hard.$" - -gUnknown_0862052B:: @ 862052B - .string "WATER POKéMON are buddies.$" - -gUnknown_08620546:: @ 8620546 - .string "It's not like I can't swim.$" - -gUnknown_08620562:: @ 8620562 - .string "I just like my inner tube.$" - -gUnknown_0862057D:: @ 862057D - .string "We split our duties.$" - -gUnknown_08620592:: @ 8620592 - .string "We like friendly POKéMON.$" - -gUnknown_086205AC:: @ 86205AC - .string "We enjoy POKéMON together$" - -gUnknown_086205C6:: @ 86205C6 - .string "as sister and brother.$" - -gUnknown_086205DD:: @ 86205DD - .string "I finish with power moves!$" - -gUnknown_086205F8:: @ 86205F8 - .string "A mix of different types.$" - -gUnknown_08620612:: @ 8620612 - .string "I aim to become the ultimate$" - -gUnknown_0862062F:: @ 862062F - .string "TRAINER!$" - -gUnknown_08620638:: @ 8620638 - .string "Exploit the foe's weakness.$" - -gUnknown_08620654:: @ 8620654 - .string "Balance is crucial.$" - -gUnknown_08620668:: @ 8620668 - .string "My goal is to become the$" - -gUnknown_08620681:: @ 8620681 - .string "POKéMON CHAMPION.$" - -gUnknown_08620693:: @ 8620693 - .string "Upset the opponent.$" - -gUnknown_086206A7:: @ 86206A7 - .string "Type doesn't matter.$" - -gUnknown_086206BC:: @ 86206BC - .string "I'm a top student at the$" - -gUnknown_086206D5:: @ 86206D5 - .string "TRAINER'S SCHOOL.$" - -gUnknown_086206E7:: @ 86206E7 - .string "Slow, steady suffering.$" - -gUnknown_086206FF:: @ 86206FF - .string "Scary to meet at night.$" - -gUnknown_08620717:: @ 8620717 - .string "I see things that others$" - -gUnknown_08620730:: @ 8620730 - .string "can't see...$" - -gUnknown_0862073D:: @ 862073D - .string "Anything to win.$" - -gUnknown_0862074E:: @ 862074E - .string "Gorgeous type!$" - -gUnknown_0862075D:: @ 862075D - .string "I have a pool specially for$" - -gUnknown_08620779:: @ 8620779 - .string "my POKéMON at home.$" - -gUnknown_0862078D:: @ 862078D - .string "You'll fall under my spell!$" - -gUnknown_086207A9:: @ 86207A9 - .string "Mature WATER type.$" - -gUnknown_086207BC:: @ 86207BC - .string "I dream of cruising around$" - -gUnknown_086207D7:: @ 86207D7 - .string "the world on a luxury liner.$" - -gUnknown_086207F4:: @ 86207F4 - .string "I'll lead you astray.$" - -gUnknown_0862080A:: @ 862080A - .string "Cute, of course.$" - -gUnknown_0862081B:: @ 862081B - .string "I love the SAFARI ZONE.$" - -gUnknown_08620833:: @ 8620833 - .string "I seem to end up there.$" - -gUnknown_0862084B:: @ 862084B - .string "Strategy? Who needs it?$" - -gUnknown_08620863:: @ 8620863 - .string "I spent big money on it!$" - -gUnknown_0862087C:: @ 862087C - .string "I, being rich, sleep in a$" - -gUnknown_08620896:: @ 8620896 - .string "custom POKéMON bed.$" - -gUnknown_086208AA:: @ 86208AA - .string "Wrestle down with power.$" - -gUnknown_086208C3:: @ 86208C3 - .string "Took all night to catch.$" - -gUnknown_086208DC:: @ 86208DC - .string "Big, burly, and buff$" - -gUnknown_086208F1:: @ 86208F1 - .string "POKéMON are the best...$" - -gUnknown_08620909:: @ 8620909 - .string "Ram at full speed!$" - -gUnknown_0862091C:: @ 862091C - .string "Funky WATER type!$" - -gUnknown_0862092E:: @ 862092E - .string "If I can't be out swimming,$" - -gUnknown_0862094A:: @ 862094A - .string "I'll be pumping weights.$" - -gUnknown_08620963:: @ 8620963 - .string "Grand slam pummeling!$" - -gUnknown_08620979:: @ 8620979 - .string "FIGHTING type.$" - -gUnknown_08620988:: @ 8620988 - .string "Not to brag, but I can bust$" - -gUnknown_086209A4:: @ 86209A4 - .string "ten roof tiles!$" - -gUnknown_086209B4:: @ 86209B4 - .string "Witness karate power!$" - -gUnknown_086209CA:: @ 86209CA - .string "My partners in training!$" - -gUnknown_086209E3:: @ 86209E3 - .string "Let us discuss matters of$" - -gUnknown_086209FD:: @ 86209FD - .string "the world with bare fists!$" - -gUnknown_08620A18:: @ 8620A18 - .string "Rock to stunning sounds!$" - -gUnknown_08620A31:: @ 8620A31 - .string "Electric-and-sound combo!$" - -gUnknown_08620A4B:: @ 8620A4B - .string "My compositions will shock$" - -gUnknown_08620A66:: @ 8620A66 - .string "you and stun you!$" - -gUnknown_08620A78:: @ 8620A78 - .string "I'll electrify you!$" - -gUnknown_08620A8C:: @ 8620A8C - .string "They're ELECTRIC!$" - -gUnknown_08620A9E:: @ 8620A9E - .string "I want to make people cry$" - -gUnknown_08620AB8:: @ 8620AB8 - .string "with songs from my heart.$" - -gUnknown_08620AD2:: @ 8620AD2 - .string "Burn it all down!$" - -gUnknown_08620AE4:: @ 8620AE4 - .string "Burn-inducing POKéMON.$" - -gUnknown_08620AFB:: @ 8620AFB - .string "When you light a campfire,$" - -gUnknown_08620B16:: @ 8620B16 - .string "be sure there's some water.$" - -gUnknown_08620B32:: @ 8620B32 - .string "Hang in and be tenacious!$" - -gUnknown_08620B4C:: @ 8620B4C - .string "I'll raise any POKéMON.$" - -gUnknown_08620B64:: @ 8620B64 - .string "POKéMON raised in the wild$" - -gUnknown_08620B7F:: @ 8620B7F - .string "grow strong!$" - -gUnknown_08620B8C:: @ 8620B8C - .string "Our love lets us prevail.$" - -gUnknown_08620BA6:: @ 8620BA6 - .string "We've had them for years.$" - -gUnknown_08620BC0:: @ 8620BC0 - .string "Married 50 years, we've$" - -gUnknown_08620BD8:: @ 8620BD8 - .string "devotedly raised POKéMON.$" - -gUnknown_08620BF2:: @ 8620BF2 - .string "Attack in waves!$" - -gUnknown_08620C03:: @ 8620C03 - .string "BUG POKéMON are cool.$" - -gUnknown_08620C19:: @ 8620C19 - .string "I go into the forest every$" - -gUnknown_08620C34:: @ 8620C34 - .string "day to catch BUG POKéMON.$" - -gUnknown_08620C4E:: @ 8620C4E - .string "Daze and confuse!$" - -gUnknown_08620C60:: @ 8620C60 - .string "Ones with weird powers.$" - -gUnknown_08620C78:: @ 8620C78 - .string "I can see through exactly$" - -gUnknown_08620C92:: @ 8620C92 - .string "what you're thinking!$" - -gUnknown_08620CA8:: @ 8620CA8 - .string "Battle at full power.$" - -gUnknown_08620CBE:: @ 8620CBE - .string "POKéMON of many mysteries.$" - -gUnknown_08620CD9:: @ 8620CD9 - .string "When we spoke, I was really$" - -gUnknown_08620CF5:: @ 8620CF5 - .string "using telepathy.$" - -gUnknown_08620D06:: @ 8620D06 - .string "Calm and collected.$" - -gUnknown_08620D1A:: @ 8620D1A - .string "POKéMON of distinction.$" - -gUnknown_08620D32:: @ 8620D32 - .string "We enjoy a spot of tea$" - -gUnknown_08620D49:: @ 8620D49 - .string "every day. It's imported.$" - -gUnknown_08620D63:: @ 8620D63 - .string "I use my head to battle.$" - -gUnknown_08620D7C:: @ 8620D7C - .string "I love any kind of POKéMON!$" - -gUnknown_08620D98:: @ 8620D98 - .string "My daddy gives me spending$" - -gUnknown_08620DB3:: @ 8620DB3 - .string "money if I ace a test.$" - -gUnknown_08620DCA:: @ 8620DCA - .string "My knowledge rules!$" - -gUnknown_08620DDE:: @ 8620DDE - .string "Any smart POKéMON!$" - -gUnknown_08620DF1:: @ 8620DF1 - .string "I want to be a POKéMON$" - -gUnknown_08620E08:: @ 8620E08 - .string "researcher in the future.$" - -gUnknown_08620E22:: @ 8620E22 - .string "We talk it over first.$" - -gUnknown_08620E39:: @ 8620E39 - .string "POKéMON that we both like.$" - -gUnknown_08620E54:: @ 8620E54 - .string "We're senior and junior$" - -gUnknown_08620E6C:: @ 8620E6C - .string "students into POKéMON!$" - -gUnknown_08620E83:: @ 8620E83 - .string "Go for it, my dears!$" - -gUnknown_08620E98:: @ 8620E98 - .string "I have no likes or dislikes.$" - -gUnknown_08620EB5:: @ 8620EB5 - .string "While out shopping for$" - -gUnknown_08620ECC:: @ 8620ECC - .string "supper, I battle too.$" - -gUnknown_08620EE2:: @ 8620EE2 - .string "I battle with love!$" - -gUnknown_08620EF6:: @ 8620EF6 - .string "A POKéMON raised with love!$" - -gUnknown_08620F12:: @ 8620F12 - .string "It's important to build$" - -gUnknown_08620F2A:: @ 8620F2A - .string "trust with your POKéMON.$" - -gUnknown_08620F43:: @ 8620F43 - .string "I see through your moves!$" - -gUnknown_08620F5D:: @ 8620F5D - .string "The essence of FIGHTING.$" - -gUnknown_08620F76:: @ 8620F76 - .string "I'm not ready to give way$" - -gUnknown_08620F90:: @ 8620F90 - .string "to the young yet!$" - -gUnknown_08620FA2:: @ 8620FA2 - .string "Attack while defending.$" - -gUnknown_08620FBA:: @ 8620FBA - .string "The FIGHTING type.$" - -gUnknown_08620FCD:: @ 8620FCD - .string "Being old, I have my own$" - -gUnknown_08620FE6:: @ 8620FE6 - .string "style of battling.$" - -gUnknown_08620FF9:: @ 8620FF9 - .string "I do what I can.$" - -gUnknown_0862100A:: @ 862100A - .string "I use different types.$" - -gUnknown_08621021:: @ 8621021 - .string "I'm going to keep working$" - -gUnknown_0862103B:: @ 862103B - .string "until I beat a GYM LEADER.$" - -gUnknown_08621056:: @ 8621056 - .string "I battle patiently.$" - -gUnknown_0862106A:: @ 862106A - .string "WATER POKéMON to battle!$" - -gUnknown_08621083:: @ 8621083 - .string "I'm the world's only guy to$" - -gUnknown_0862109F:: @ 862109F - .string "catch a huge POKéMON!$" - -gUnknown_086210B5:: @ 86210B5 - .string "Exploit the environment!$" - -gUnknown_086210CE:: @ 86210CE - .string "All hail the WATER type!$" - -gUnknown_086210E7:: @ 86210E7 - .string "I won't be beaten by some$" - -gUnknown_08621101:: @ 8621101 - .string "beach bum SWIMMER!$" - -gUnknown_08621114:: @ 8621114 - .string "Speed above all!$" - -gUnknown_08621125:: @ 8621125 - .string "I use a speedy POKéMON.$" - -gUnknown_0862113D:: @ 862113D - .string "A marathon is a challenge$" - -gUnknown_08621157:: @ 8621157 - .string "against your own self.$" - -gUnknown_0862116E:: @ 862116E - .string "Defense is crucial.$" - -gUnknown_08621182:: @ 8621182 - .string "My POKéMON is solid.$" - -gUnknown_08621197:: @ 8621197 - .string "I started this for dieting,$" - -gUnknown_086211B3:: @ 86211B3 - .string "but I got right into it.$" - -gUnknown_086211CC:: @ 86211CC - .string "Strike before stricken!$" - -gUnknown_086211E4:: @ 86211E4 - .string "A fast-running POKéMON!$" - -gUnknown_086211FC:: @ 86211FC - .string "If you ran and ran, you'd$" - -gUnknown_08621216:: @ 8621216 - .string "become one with the wind.$" - -gUnknown_08621230:: @ 8621230 - .string "All-out offensive!$" - -gUnknown_08621243:: @ 8621243 - .string "WATER POKéMON rule!$" - -gUnknown_08621257:: @ 8621257 - .string "I must swim over 6 miles$" - -gUnknown_08621270:: @ 8621270 - .string "every day.$" - -gUnknown_0862127B:: @ 862127B - .string "Push and push again!$" - -gUnknown_08621290:: @ 8621290 - .string "The strength of STEEL.$" - -gUnknown_086212A7:: @ 86212A7 - .string "If you're sweating, get$" - -gUnknown_086212BF:: @ 86212BF - .string "fluids into you regularly.$" - -gUnknown_086212DA:: @ 86212DA - .string "Draw the power of WATER.$" - -gUnknown_086212F3:: @ 86212F3 - .string "Toughened WATER POKéMON.$" - -gUnknown_0862130C:: @ 862130C - .string "Training POKéMON is good,$" - -gUnknown_08621326:: @ 8621326 - .string "but don't neglect yourself.$" - -gUnknown_08621342:: @ 8621342 - .string "It's about POKéMON power!$" - -gUnknown_0862135C:: @ 862135C - .string "See the power of DRAGONS!$" - -gUnknown_08621376:: @ 8621376 - .string "I'll become legendary as the$" - -gUnknown_08621393:: @ 8621393 - .string "strongest one day!$" - -gUnknown_086213A6:: @ 86213A6 - .string "I'll show you my technique!$" - -gUnknown_086213C2:: @ 86213C2 - .string "Elegantly wheeling BIRDS.$" - -gUnknown_086213DC:: @ 86213DC - .string "My BIRD POKéMON, deliver my$" - -gUnknown_086213F8:: @ 86213F8 - .string "love to that girl!$" - -gUnknown_0862140B:: @ 862140B - .string "You'll suffer from poison!$" - -gUnknown_08621426:: @ 8621426 - .string "Poisonous POKéMON.$" - -gUnknown_08621439:: @ 8621439 - .string "I undertake training so$" - -gUnknown_08621451:: @ 8621451 - .string "that I may become a ninja.$" - -gUnknown_0862146C:: @ 862146C - .string "The first strike wins!$" - -gUnknown_08621483:: @ 8621483 - .string "Speedy FIGHTING type.$" - -gUnknown_08621499:: @ 8621499 - .string "If my POKéMON lose,$" - -gUnknown_086214AD:: @ 86214AD - .string "I'll carry on the fight!$" - -gUnknown_086214C6:: @ 86214C6 - .string "Go, go, my POKéMON!$" - -gUnknown_086214DA:: @ 86214DA - .string "I'll raise anything.$" - -gUnknown_086214EF:: @ 86214EF - .string "UV rays are your skin's$" - -gUnknown_08621507:: @ 8621507 - .string "enemy. Get protected.$" - -gUnknown_0862151D:: @ 862151D - .string "No mercy!$" - -gUnknown_08621527:: @ 8621527 - .string "Cute WATER POKéMON.$" - -gUnknown_0862153B:: @ 862153B - .string "I have too many fans.$" - -gUnknown_08621551:: @ 8621551 - .string "I was interviewed on TV.$" - -gUnknown_0862156A:: @ 862156A - .string "I think about this & that.$" - -gUnknown_08621585:: @ 8621585 - .string "I like all POKéMON.$" - -gUnknown_08621599:: @ 8621599 - .string "What lies beyond that$" - -gUnknown_086215AF:: @ 86215AF - .string "yonder hill?$" - -gUnknown_086215BC:: @ 86215BC - .string "We battle together!$" - -gUnknown_086215D0:: @ 86215D0 - .string "We train together!$" - -gUnknown_086215E3:: @ 86215E3 - .string "We like the same POKéMON,$" - -gUnknown_086215FD:: @ 86215FD - .string "but different desserts.$" - -gUnknown_08621615:: @ 8621615 - .string "I force things with power!$" - -gUnknown_08621630:: @ 8621630 - .string "WATER and FIGHTING types.$" - -gUnknown_0862164A:: @ 862164A - .string "Seamen are rough spirits!$" - -gUnknown_08621664:: @ 8621664 - .string "Any complaints?$" - -gUnknown_08621674:: @ 8621674 - .string "Up for a fight anytime!$" - -gUnknown_0862168C:: @ 862168C - .string "WATER POKéMON are my faves!$" - -gUnknown_086216A8:: @ 86216A8 - .string "If you want to shout loud,$" - -gUnknown_086216C3:: @ 86216C3 - .string "suck in air with your belly!$" - -gUnknown_086216E0:: @ 86216E0 - .string "Protect POKéMON from harm.$" - -gUnknown_086216FB:: @ 86216FB - .string "I love rare POKéMON.$" - -gUnknown_08621710:: @ 8621710 - .string "I want to collect all the$" - -gUnknown_0862172A:: @ 862172A - .string "world's rare POKéMON.$" - -gUnknown_08621740:: @ 8621740 - .string "I count on power.$" - -gUnknown_08621752:: @ 8621752 - .string "POKéMON are my children.$" - -gUnknown_0862176B:: @ 862176B - .string "It takes knowledge and$" - -gUnknown_08621782:: @ 8621782 - .string "love to raise POKéMON.$" - -gUnknown_08621799:: @ 8621799 - .string "Full-on attack!$" - -gUnknown_086217A9:: @ 86217A9 - .string "Anything. I'll raise it.$" - -gUnknown_086217C2:: @ 86217C2 - .string "I give them {POKEBLOCK}S for$" - -gUnknown_086217D9:: @ 86217D9 - .string "going after CONTEST titles.$" - -gUnknown_086217F5:: @ 86217F5 - .string "I raise POKéMON with care.$" - -gUnknown_08621810:: @ 8621810 - .string "Fun-to-raise POKéMON.$" - -gUnknown_08621826:: @ 8621826 - .string "Treat every POKéMON you$" - -gUnknown_0862183E:: @ 862183E - .string "meet with respect.$" - -gUnknown_08621851:: @ 8621851 - .string "I believe in my POKéMON.$" - -gUnknown_0862186A:: @ 862186A - .string "I like strong POKéMON.$" - -gUnknown_08621881:: @ 8621881 - .string "I'm training for rescue$" - -gUnknown_08621899:: @ 8621899 - .string "work with my POKéMON.$" - -gUnknown_086218AF:: @ 86218AF - .string "Attack in waves!$" - -gUnknown_086218C0:: @ 86218C0 - .string "I use different types.$" - -gUnknown_086218D7:: @ 86218D7 - .string "Those who destroy nature$" - -gUnknown_086218F0:: @ 86218F0 - .string "must never be forgiven!$" - -gUnknown_08621908:: @ 8621908 - .string "I'll show you some guts!$" - -gUnknown_08621921:: @ 8621921 - .string "Cute POKéMON are my faves!$" - -gUnknown_0862193C:: @ 862193C - .string "After a battle, I always$" - -gUnknown_08621955:: @ 8621955 - .string "bathe with my POKéMON.$" - -gUnknown_0862196C:: @ 862196C - .string "Lightning-fast attack!$" - -gUnknown_08621983:: @ 8621983 - .string "BUG POKéMON are number 1!$" - -gUnknown_0862199D:: @ 862199D - .string "If you want to catch BUG$" - -gUnknown_086219B6:: @ 86219B6 - .string "POKéMON, wake up early.$" - -gUnknown_086219CE:: @ 86219CE - .string "I battle with power.$" - -gUnknown_086219E3:: @ 86219E3 - .string "Hard-bodied POKéMON.$" - -gUnknown_086219F8:: @ 86219F8 - .string "I've been planning a month$" - -gUnknown_08621A13:: @ 8621A13 - .string "for today's hike.$" - -gUnknown_08621A25:: @ 8621A25 - .string "I like it hot!$" - -gUnknown_08621A34:: @ 8621A34 - .string "Hot POKéMON!$" - -gUnknown_08621A41:: @ 8621A41 - .string "As much as I love POKéMON,$" - -gUnknown_08621A5C:: @ 8621A5C - .string "I surely like hiking!$" - -gUnknown_08621A72:: @ 8621A72 - .string "Lovey-dovey strategy!$" - -gUnknown_08621A88:: @ 8621A88 - .string "Lovey-dovey POKéMON!$" - -gUnknown_08621A9D:: @ 8621A9D - .string "We're lovey-dovey!$" - -gUnknown_08621AB0:: @ 8621AB0 - .string "Forever lovey-dovey!$" - -gUnknown_08621AC5:: @ 8621AC5 - .string "We let it all hang out.$" - -gUnknown_08621ADD:: @ 8621ADD - .string "The 1st POKéMON I caught.$" - -gUnknown_08621AF7:: @ 8621AF7 - .string "POKéMON and I have grown$" - -gUnknown_08621B10:: @ 8621B10 - .string "stronger together.$" - -gUnknown_08621B23:: @ 8621B23 - .string "ROCK-type power attack.$" - -gUnknown_08621B3B:: @ 8621B3B - .string "I prefer rock-hard POKéMON.$" - -gUnknown_08621B57:: @ 8621B57 - .string "A LEADER of a big GYM bears$" - -gUnknown_08621B73:: @ 8621B73 - .string "a lot of responsibility.$" - -gUnknown_08621B8C:: @ 8621B8C - .string "Direct physical action!$" - -gUnknown_08621BA4:: @ 8621BA4 - .string "FIGHTING POKéMON rule!$" - -gUnknown_08621BBB:: @ 8621BBB - .string "The world awaits me as the$" - -gUnknown_08621BD6:: @ 8621BD6 - .string "next big wave!$" - -gUnknown_08621BE5:: @ 8621BE5 - .string "I choose to electrify.$" - -gUnknown_08621BFC:: @ 8621BFC - .string "Get shocked by electricity!$" - -gUnknown_08621C18:: @ 8621C18 - .string "One must never throw a$" - -gUnknown_08621C2F:: @ 8621C2F - .string "match. Even I must not.$" - -gUnknown_08621C47:: @ 8621C47 - .string "Battle aggressively.$" - -gUnknown_08621C5C:: @ 8621C5C - .string "Burn with passion!$" - -gUnknown_08621C6F:: @ 8621C6F - .string "Completely wash away daily$" - -gUnknown_08621C8A:: @ 8621C8A - .string "fatigue in hot springs!$" - -gUnknown_08621CA2:: @ 8621CA2 - .string "I flexibly adapt my style.$" - -gUnknown_08621CBD:: @ 8621CBD - .string "Grown in a balanced manner.$" - -gUnknown_08621CD9:: @ 8621CD9 - .string "I walk the 30 minutes from$" - -gUnknown_08621CF4:: @ 8621CF4 - .string "home to here every day.$" - -gUnknown_08621D0C:: @ 8621D0C - .string "I take advantage of speed.$" - -gUnknown_08621D27:: @ 8621D27 - .string "Graceful sky dancers.$" - -gUnknown_08621D3D:: @ 8621D3D - .string "The ultimate would be to$" - -gUnknown_08621D56:: @ 8621D56 - .string "live as one with nature.$" - -gUnknown_08621D6F:: @ 8621D6F - .string "We battle in cooperation.$" - -gUnknown_08621D89:: @ 8621D89 - .string "Always friendly POKéMON.$" - -gUnknown_08621DA2:: @ 8621DA2 - .string "Papa has trouble telling$" - -gUnknown_08621DBB:: @ 8621DBB - .string "the two of us apart!$" - -gUnknown_08621DD0:: @ 8621DD0 - .string "I use splendid waterpower.$" - -gUnknown_08621DEB:: @ 8621DEB - .string "POKéMON of elegance!$" - -gUnknown_08621E00:: @ 8621E00 - .string "The adulation of beautiful$" - -gUnknown_08621E1B:: @ 8621E1B - .string "ladies fills me with energy!$" - -gUnknown_08621E38:: @ 8621E38 - .string "Offense over defense!$" - -gUnknown_08621E4E:: @ 8621E4E - .string "The DARK side's beauties.$" - -gUnknown_08621E68:: @ 8621E68 - .string "They said I was a punk, but$" - -gUnknown_08621E84:: @ 8621E84 - .string "I'm one of the ELITE FOUR!$" - -gUnknown_08621E9F:: @ 8621E9F - .string "Confuse and confound.$" - -gUnknown_08621EB5:: @ 8621EB5 - .string "There's nothing definite.$" - -gUnknown_08621ECF:: @ 8621ECF - .string "I wonder how my grandma at$" - -gUnknown_08621EEA:: @ 8621EEA - .string "MT. PYRE is doing?$" - -gUnknown_08621EFD:: @ 8621EFD - .string "I use items for help.$" - -gUnknown_08621F13:: @ 8621F13 - .string "Flaming passion in icy cold!$" - -gUnknown_08621F30:: @ 8621F30 - .string "The ICE type can be better$" - -gUnknown_08621F4B:: @ 8621F4B - .string "trained in this hot land.$" - -gUnknown_08621F65:: @ 8621F65 - .string "Harness strong abilities.$" - -gUnknown_08621F7F:: @ 8621F7F - .string "The raw power of DRAGONS!$" - -gUnknown_08621F99:: @ 8621F99 - .string "I dedicate myself to the$" - -gUnknown_08621FB2:: @ 8621FB2 - .string "POKéMON that saved me.$" - -gUnknown_08621FC9:: @ 8621FC9 - .string "Dignity and respect.$" - -gUnknown_08621FDE:: @ 8621FDE - .string "I prefer POKéMON of grace.$" - -gUnknown_08621FF9:: @ 8621FF9 - .string "I represent beauty as$" - -gUnknown_0862200F:: @ 862200F - .string "well as intelligence.$" - -.align 2 - -@ strategy, mon text, introduction1, introduction2 -gUnknown_08622028:: @ 8622028 - .4byte gUnknown_08620390, gUnknown_086203AA, gUnknown_086203C2, gUnknown_086203DB - .4byte gUnknown_086203F2, gUnknown_0862040D, gUnknown_08620428, gUnknown_08620444 - .4byte gUnknown_08620456, gUnknown_0862046C, gUnknown_08620481, gUnknown_0862049C - .4byte gUnknown_086204B0, gUnknown_086204C7, gUnknown_086204DD, gUnknown_086204F9 - .4byte gUnknown_0862050E, gUnknown_0862052B, gUnknown_08620546, gUnknown_08620562 - .4byte gUnknown_0862057D, gUnknown_08620592, gUnknown_086205AC, gUnknown_086205C6 - .4byte gUnknown_086205DD, gUnknown_086205F8, gUnknown_08620612, gUnknown_0862062F - .4byte gUnknown_08620638, gUnknown_08620654, gUnknown_08620668, gUnknown_08620681 - .4byte gUnknown_08620693, gUnknown_086206A7, gUnknown_086206BC, gUnknown_086206D5 - .4byte gUnknown_086206E7, gUnknown_086206FF, gUnknown_08620717, gUnknown_08620730 - .4byte gUnknown_0862073D, gUnknown_0862074E, gUnknown_0862075D, gUnknown_08620779 - .4byte gUnknown_0862078D, gUnknown_086207A9, gUnknown_086207BC, gUnknown_086207D7 - .4byte gUnknown_086207F4, gUnknown_0862080A, gUnknown_0862081B, gUnknown_08620833 - .4byte gUnknown_0862084B, gUnknown_08620863, gUnknown_0862087C, gUnknown_08620896 - .4byte gUnknown_086208AA, gUnknown_086208C3, gUnknown_086208DC, gUnknown_086208F1 - .4byte gUnknown_08620909, gUnknown_0862091C, gUnknown_0862092E, gUnknown_0862094A - .4byte gUnknown_08620963, gUnknown_08620979, gUnknown_08620988, gUnknown_086209A4 - .4byte gUnknown_086209B4, gUnknown_086209CA, gUnknown_086209E3, gUnknown_086209FD - .4byte gUnknown_08620A18, gUnknown_08620A31, gUnknown_08620A4B, gUnknown_08620A66 - .4byte gUnknown_08620A78, gUnknown_08620A8C, gUnknown_08620A9E, gUnknown_08620AB8 - .4byte gUnknown_08620AD2, gUnknown_08620AE4, gUnknown_08620AFB, gUnknown_08620B16 - .4byte gUnknown_08620B32, gUnknown_08620B4C, gUnknown_08620B64, gUnknown_08620B7F - .4byte gUnknown_08620B8C, gUnknown_08620BA6, gUnknown_08620BC0, gUnknown_08620BD8 - .4byte gUnknown_08620BF2, gUnknown_08620C03, gUnknown_08620C19, gUnknown_08620C34 - .4byte gUnknown_08620C4E, gUnknown_08620C60, gUnknown_08620C78, gUnknown_08620C92 - .4byte gUnknown_08620CA8, gUnknown_08620CBE, gUnknown_08620CD9, gUnknown_08620CF5 - .4byte gUnknown_08620D06, gUnknown_08620D1A, gUnknown_08620D32, gUnknown_08620D49 - .4byte gUnknown_08620D63, gUnknown_08620D7C, gUnknown_08620D98, gUnknown_08620DB3 - .4byte gUnknown_08620DCA, gUnknown_08620DDE, gUnknown_08620DF1, gUnknown_08620E08 - .4byte gUnknown_08620E22, gUnknown_08620E39, gUnknown_08620E54, gUnknown_08620E6C - .4byte gUnknown_08620E83, gUnknown_08620E98, gUnknown_08620EB5, gUnknown_08620ECC - .4byte gUnknown_08620EE2, gUnknown_08620EF6, gUnknown_08620F12, gUnknown_08620F2A - .4byte gUnknown_08620F43, gUnknown_08620F5D, gUnknown_08620F76, gUnknown_08620F90 - .4byte gUnknown_08620FA2, gUnknown_08620FBA, gUnknown_08620FCD, gUnknown_08620FE6 - .4byte gUnknown_08620FF9, gUnknown_0862100A, gUnknown_08621021, gUnknown_0862103B - .4byte gUnknown_08621056, gUnknown_0862106A, gUnknown_08621083, gUnknown_0862109F - .4byte gUnknown_086210B5, gUnknown_086210CE, gUnknown_086210E7, gUnknown_08621101 - .4byte gUnknown_08621114, gUnknown_08621125, gUnknown_0862113D, gUnknown_08621157 - .4byte gUnknown_0862116E, gUnknown_08621182, gUnknown_08621197, gUnknown_086211B3 - .4byte gUnknown_086211CC, gUnknown_086211E4, gUnknown_086211FC, gUnknown_08621216 - .4byte gUnknown_08621230, gUnknown_08621243, gUnknown_08621257, gUnknown_08621270 - .4byte gUnknown_0862127B, gUnknown_08621290, gUnknown_086212A7, gUnknown_086212BF - .4byte gUnknown_086212DA, gUnknown_086212F3, gUnknown_0862130C, gUnknown_08621326 - .4byte gUnknown_08621342, gUnknown_0862135C, gUnknown_08621376, gUnknown_08621393 - .4byte gUnknown_086213A6, gUnknown_086213C2, gUnknown_086213DC, gUnknown_086213F8 - .4byte gUnknown_0862140B, gUnknown_08621426, gUnknown_08621439, gUnknown_08621451 - .4byte gUnknown_0862146C, gUnknown_08621483, gUnknown_08621499, gUnknown_086214AD - .4byte gUnknown_086214C6, gUnknown_086214DA, gUnknown_086214EF, gUnknown_08621507 - .4byte gUnknown_0862151D, gUnknown_08621527, gUnknown_0862153B, gUnknown_08621551 - .4byte gUnknown_0862156A, gUnknown_08621585, gUnknown_08621599, gUnknown_086215AF - .4byte gUnknown_086215BC, gUnknown_086215D0, gUnknown_086215E3, gUnknown_086215FD - .4byte gUnknown_08621615, gUnknown_08621630, gUnknown_0862164A, gUnknown_08621664 - .4byte gUnknown_08621674, gUnknown_0862168C, gUnknown_086216A8, gUnknown_086216C3 - .4byte gUnknown_086216E0, gUnknown_086216FB, gUnknown_08621710, gUnknown_0862172A - .4byte gUnknown_08621740, gUnknown_08621752, gUnknown_0862176B, gUnknown_08621782 - .4byte gUnknown_08621799, gUnknown_086217A9, gUnknown_086217C2, gUnknown_086217D9 - .4byte gUnknown_086217F5, gUnknown_08621810, gUnknown_08621826, gUnknown_0862183E - .4byte gUnknown_08621851, gUnknown_0862186A, gUnknown_08621881, gUnknown_08621899 - .4byte gUnknown_086218AF, gUnknown_086218C0, gUnknown_086218D7, gUnknown_086218F0 - .4byte gUnknown_08621908, gUnknown_08621921, gUnknown_0862193C, gUnknown_08621955 - .4byte gUnknown_0862196C, gUnknown_08621983, gUnknown_0862199D, gUnknown_086219B6 - .4byte gUnknown_086219CE, gUnknown_086219E3, gUnknown_086219F8, gUnknown_08621A13 - .4byte gUnknown_08621A25, gUnknown_08621A34, gUnknown_08621A41, gUnknown_08621A5C - .4byte gUnknown_08621A72, gUnknown_08621A88, gUnknown_08621A9D, gUnknown_08621AB0 - .4byte gUnknown_08621AC5, gUnknown_08621ADD, gUnknown_08621AF7, gUnknown_08621B10 - .4byte gUnknown_08621B23, gUnknown_08621B3B, gUnknown_08621B57, gUnknown_08621B73 - .4byte gUnknown_08621B8C, gUnknown_08621BA4, gUnknown_08621BBB, gUnknown_08621BD6 - .4byte gUnknown_08621BE5, gUnknown_08621BFC, gUnknown_08621C18, gUnknown_08621C2F - .4byte gUnknown_08621C47, gUnknown_08621C5C, gUnknown_08621C6F, gUnknown_08621C8A - .4byte gUnknown_08621CA2, gUnknown_08621CBD, gUnknown_08621CD9, gUnknown_08621CF4 - .4byte gUnknown_08621D0C, gUnknown_08621D27, gUnknown_08621D3D, gUnknown_08621D56 - .4byte gUnknown_08621D6F, gUnknown_08621D89, gUnknown_08621DA2, gUnknown_08621DBB - .4byte gUnknown_08621DD0, gUnknown_08621DEB, gUnknown_08621E00, gUnknown_08621E1B - .4byte gUnknown_08621E38, gUnknown_08621E4E, gUnknown_08621E68, gUnknown_08621E84 - .4byte gUnknown_08621E9F, gUnknown_08621EB5, gUnknown_08621ECF, gUnknown_08621EEA - .4byte gUnknown_08621EFD, gUnknown_08621F13, gUnknown_08621F30, gUnknown_08621F4B - .4byte gUnknown_08621F65, gUnknown_08621F7F, gUnknown_08621F99, gUnknown_08621FB2 - .4byte gUnknown_08621FC9, gUnknown_08621FDE, gUnknown_08621FF9, gUnknown_0862200F - -gUnknown_08622508:: @ 8622508 - .byte 0, 2 - -gUnknown_0862250A:: @ 862250A - .byte 0, 1, 2, 0, 0, 0 - // pokenav_unk_4.s gUnknown_08622510:: @ 8622510 .incbin "graphics/pokenav/ui_matchcall.gbapal" diff --git a/ld_script.txt b/ld_script.txt index ad4f439cc..2c745600e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -644,6 +644,7 @@ SECTIONS { src/pokenav_match_call_ui.o(.rodata); src/pokenav_unk_1.o(.rodata); src/pokenav_unk_2.o(.rodata); + src/pokenav_unk_3.o(.rodata); data/pokenav.o(.rodata); src/pokenav_unk_10.o(.rodata); src/pokenav_match_call_data.o(.rodata); diff --git a/src/data/text/trainers_eye_messages.h b/src/data/text/trainers_eye_messages.h new file mode 100644 index 000000000..7b2f4ec64 --- /dev/null +++ b/src/data/text/trainers_eye_messages.h @@ -0,0 +1,550 @@ +const u8 gUnknown_08620390[] = _("Becalm fighting emotions."); +const u8 gUnknown_086203AA[] = _("Fragrant GRASS POKéMON."); +const u8 gUnknown_086203C2[] = _("Soothing aromas make the"); +const u8 gUnknown_086203DB[] = _("body and mind healthy."); +const u8 gUnknown_086203F2[] = _("I'm not very good at this."); +const u8 gUnknown_0862040D[] = _("Ruin-exploration partners."); +const u8 gUnknown_08620428[] = _("I am searching for undersea"); +const u8 gUnknown_08620444[] = _("ruins and relics."); +const u8 gUnknown_08620456[] = _("Overwhelm with power!"); +const u8 gUnknown_0862046C[] = _("Craggy ROCK POKéMON."); +const u8 gUnknown_08620481[] = _("In search of ancient lore,"); +const u8 gUnknown_0862049C[] = _("I travel the world."); +const u8 gUnknown_086204B0[] = _("I'm going to try hard!"); +const u8 gUnknown_086204C7[] = _("Good swimmer POKéMON."); +const u8 gUnknown_086204DD[] = _("I wish I could swim without"); +const u8 gUnknown_086204F9[] = _("using an inner tube."); +const u8 gUnknown_0862050E[] = _("I don't know. I'll try hard."); +const u8 gUnknown_0862052B[] = _("WATER POKéMON are buddies."); +const u8 gUnknown_08620546[] = _("It's not like I can't swim."); +const u8 gUnknown_08620562[] = _("I just like my inner tube."); +const u8 gUnknown_0862057D[] = _("We split our duties."); +const u8 gUnknown_08620592[] = _("We like friendly POKéMON."); +const u8 gUnknown_086205AC[] = _("We enjoy POKéMON together"); +const u8 gUnknown_086205C6[] = _("as sister and brother."); +const u8 gUnknown_086205DD[] = _("I finish with power moves!"); +const u8 gUnknown_086205F8[] = _("A mix of different types."); +const u8 gUnknown_08620612[] = _("I aim to become the ultimate"); +const u8 gUnknown_0862062F[] = _("TRAINER!"); +const u8 gUnknown_08620638[] = _("Exploit the foe's weakness."); +const u8 gUnknown_08620654[] = _("Balance is crucial."); +const u8 gUnknown_08620668[] = _("My goal is to become the"); +const u8 gUnknown_08620681[] = _("POKéMON CHAMPION."); +const u8 gUnknown_08620693[] = _("Upset the opponent."); +const u8 gUnknown_086206A7[] = _("Type doesn't matter."); +const u8 gUnknown_086206BC[] = _("I'm a top student at the"); +const u8 gUnknown_086206D5[] = _("TRAINER'S SCHOOL."); +const u8 gUnknown_086206E7[] = _("Slow, steady suffering."); +const u8 gUnknown_086206FF[] = _("Scary to meet at night."); +const u8 gUnknown_08620717[] = _("I see things that others"); +const u8 gUnknown_08620730[] = _("can't see..."); +const u8 gUnknown_0862073D[] = _("Anything to win."); +const u8 gUnknown_0862074E[] = _("Gorgeous type!"); +const u8 gUnknown_0862075D[] = _("I have a pool specially for"); +const u8 gUnknown_08620779[] = _("my POKéMON at home."); +const u8 gUnknown_0862078D[] = _("You'll fall under my spell!"); +const u8 gUnknown_086207A9[] = _("Mature WATER type."); +const u8 gUnknown_086207BC[] = _("I dream of cruising around"); +const u8 gUnknown_086207D7[] = _("the world on a luxury liner."); +const u8 gUnknown_086207F4[] = _("I'll lead you astray."); +const u8 gUnknown_0862080A[] = _("Cute, of course."); +const u8 gUnknown_0862081B[] = _("I love the SAFARI ZONE."); +const u8 gUnknown_08620833[] = _("I seem to end up there."); +const u8 gUnknown_0862084B[] = _("Strategy? Who needs it?"); +const u8 gUnknown_08620863[] = _("I spent big money on it!"); +const u8 gUnknown_0862087C[] = _("I, being rich, sleep in a"); +const u8 gUnknown_08620896[] = _("custom POKéMON bed."); +const u8 gUnknown_086208AA[] = _("Wrestle down with power."); +const u8 gUnknown_086208C3[] = _("Took all night to catch."); +const u8 gUnknown_086208DC[] = _("Big, burly, and buff"); +const u8 gUnknown_086208F1[] = _("POKéMON are the best..."); +const u8 gUnknown_08620909[] = _("Ram at full speed!"); +const u8 gUnknown_0862091C[] = _("Funky WATER type!"); +const u8 gUnknown_0862092E[] = _("If I can't be out swimming,"); +const u8 gUnknown_0862094A[] = _("I'll be pumping weights."); +const u8 gUnknown_08620963[] = _("Grand slam pummeling!"); +const u8 gUnknown_08620979[] = _("FIGHTING type."); +const u8 gUnknown_08620988[] = _("Not to brag, but I can bust"); +const u8 gUnknown_086209A4[] = _("ten roof tiles!"); +const u8 gUnknown_086209B4[] = _("Witness karate power!"); +const u8 gUnknown_086209CA[] = _("My partners in training!"); +const u8 gUnknown_086209E3[] = _("Let us discuss matters of"); +const u8 gUnknown_086209FD[] = _("the world with bare fists!"); +const u8 gUnknown_08620A18[] = _("Rock to stunning sounds!"); +const u8 gUnknown_08620A31[] = _("Electric-and-sound combo!"); +const u8 gUnknown_08620A4B[] = _("My compositions will shock"); +const u8 gUnknown_08620A66[] = _("you and stun you!"); +const u8 gUnknown_08620A78[] = _("I'll electrify you!"); +const u8 gUnknown_08620A8C[] = _("They're ELECTRIC!"); +const u8 gUnknown_08620A9E[] = _("I want to make people cry"); +const u8 gUnknown_08620AB8[] = _("with songs from my heart."); +const u8 gUnknown_08620AD2[] = _("Burn it all down!"); +const u8 gUnknown_08620AE4[] = _("Burn-inducing POKéMON."); +const u8 gUnknown_08620AFB[] = _("When you light a campfire,"); +const u8 gUnknown_08620B16[] = _("be sure there's some water."); +const u8 gUnknown_08620B32[] = _("Hang in and be tenacious!"); +const u8 gUnknown_08620B4C[] = _("I'll raise any POKéMON."); +const u8 gUnknown_08620B64[] = _("POKéMON raised in the wild"); +const u8 gUnknown_08620B7F[] = _("grow strong!"); +const u8 gUnknown_08620B8C[] = _("Our love lets us prevail."); +const u8 gUnknown_08620BA6[] = _("We've had them for years."); +const u8 gUnknown_08620BC0[] = _("Married 50 years, we've"); +const u8 gUnknown_08620BD8[] = _("devotedly raised POKéMON."); +const u8 gUnknown_08620BF2[] = _("Attack in waves!"); +const u8 gUnknown_08620C03[] = _("BUG POKéMON are cool."); +const u8 gUnknown_08620C19[] = _("I go into the forest every"); +const u8 gUnknown_08620C34[] = _("day to catch BUG POKéMON."); +const u8 gUnknown_08620C4E[] = _("Daze and confuse!"); +const u8 gUnknown_08620C60[] = _("Ones with weird powers."); +const u8 gUnknown_08620C78[] = _("I can see through exactly"); +const u8 gUnknown_08620C92[] = _("what you're thinking!"); +const u8 gUnknown_08620CA8[] = _("Battle at full power."); +const u8 gUnknown_08620CBE[] = _("POKéMON of many mysteries."); +const u8 gUnknown_08620CD9[] = _("When we spoke, I was really"); +const u8 gUnknown_08620CF5[] = _("using telepathy."); +const u8 gUnknown_08620D06[] = _("Calm and collected."); +const u8 gUnknown_08620D1A[] = _("POKéMON of distinction."); +const u8 gUnknown_08620D32[] = _("We enjoy a spot of tea"); +const u8 gUnknown_08620D49[] = _("every day. It's imported."); +const u8 gUnknown_08620D63[] = _("I use my head to battle."); +const u8 gUnknown_08620D7C[] = _("I love any kind of POKéMON!"); +const u8 gUnknown_08620D98[] = _("My daddy gives me spending"); +const u8 gUnknown_08620DB3[] = _("money if I ace a test."); +const u8 gUnknown_08620DCA[] = _("My knowledge rules!"); +const u8 gUnknown_08620DDE[] = _("Any smart POKéMON!"); +const u8 gUnknown_08620DF1[] = _("I want to be a POKéMON"); +const u8 gUnknown_08620E08[] = _("researcher in the future."); +const u8 gUnknown_08620E22[] = _("We talk it over first."); +const u8 gUnknown_08620E39[] = _("POKéMON that we both like."); +const u8 gUnknown_08620E54[] = _("We're senior and junior"); +const u8 gUnknown_08620E6C[] = _("students into POKéMON!"); +const u8 gUnknown_08620E83[] = _("Go for it, my dears!"); +const u8 gUnknown_08620E98[] = _("I have no likes or dislikes."); +const u8 gUnknown_08620EB5[] = _("While out shopping for"); +const u8 gUnknown_08620ECC[] = _("supper, I battle too."); +const u8 gUnknown_08620EE2[] = _("I battle with love!"); +const u8 gUnknown_08620EF6[] = _("A POKéMON raised with love!"); +const u8 gUnknown_08620F12[] = _("It's important to build"); +const u8 gUnknown_08620F2A[] = _("trust with your POKéMON."); +const u8 gUnknown_08620F43[] = _("I see through your moves!"); +const u8 gUnknown_08620F5D[] = _("The essence of FIGHTING."); +const u8 gUnknown_08620F76[] = _("I'm not ready to give way"); +const u8 gUnknown_08620F90[] = _("to the young yet!"); +const u8 gUnknown_08620FA2[] = _("Attack while defending."); +const u8 gUnknown_08620FBA[] = _("The FIGHTING type."); +const u8 gUnknown_08620FCD[] = _("Being old, I have my own"); +const u8 gUnknown_08620FE6[] = _("style of battling."); +const u8 gUnknown_08620FF9[] = _("I do what I can."); +const u8 gUnknown_0862100A[] = _("I use different types."); +const u8 gUnknown_08621021[] = _("I'm going to keep working"); +const u8 gUnknown_0862103B[] = _("until I beat a GYM LEADER."); +const u8 gUnknown_08621056[] = _("I battle patiently."); +const u8 gUnknown_0862106A[] = _("WATER POKéMON to battle!"); +const u8 gUnknown_08621083[] = _("I'm the world's only guy to"); +const u8 gUnknown_0862109F[] = _("catch a huge POKéMON!"); +const u8 gUnknown_086210B5[] = _("Exploit the environment!"); +const u8 gUnknown_086210CE[] = _("All hail the WATER type!"); +const u8 gUnknown_086210E7[] = _("I won't be beaten by some"); +const u8 gUnknown_08621101[] = _("beach bum SWIMMER!"); +const u8 gUnknown_08621114[] = _("Speed above all!"); +const u8 gUnknown_08621125[] = _("I use a speedy POKéMON."); +const u8 gUnknown_0862113D[] = _("A marathon is a challenge"); +const u8 gUnknown_08621157[] = _("against your own self."); +const u8 gUnknown_0862116E[] = _("Defense is crucial."); +const u8 gUnknown_08621182[] = _("My POKéMON is solid."); +const u8 gUnknown_08621197[] = _("I started this for dieting,"); +const u8 gUnknown_086211B3[] = _("but I got right into it."); +const u8 gUnknown_086211CC[] = _("Strike before stricken!"); +const u8 gUnknown_086211E4[] = _("A fast-running POKéMON!"); +const u8 gUnknown_086211FC[] = _("If you ran and ran, you'd"); +const u8 gUnknown_08621216[] = _("become one with the wind."); +const u8 gUnknown_08621230[] = _("All-out offensive!"); +const u8 gUnknown_08621243[] = _("WATER POKéMON rule!"); +const u8 gUnknown_08621257[] = _("I must swim over 6 miles"); +const u8 gUnknown_08621270[] = _("every day."); +const u8 gUnknown_0862127B[] = _("Push and push again!"); +const u8 gUnknown_08621290[] = _("The strength of STEEL."); +const u8 gUnknown_086212A7[] = _("If you're sweating, get"); +const u8 gUnknown_086212BF[] = _("fluids into you regularly."); +const u8 gUnknown_086212DA[] = _("Draw the power of WATER."); +const u8 gUnknown_086212F3[] = _("Toughened WATER POKéMON."); +const u8 gUnknown_0862130C[] = _("Training POKéMON is good,"); +const u8 gUnknown_08621326[] = _("but don't neglect yourself."); +const u8 gUnknown_08621342[] = _("It's about POKéMON power!"); +const u8 gUnknown_0862135C[] = _("See the power of DRAGONS!"); +const u8 gUnknown_08621376[] = _("I'll become legendary as the"); +const u8 gUnknown_08621393[] = _("strongest one day!"); +const u8 gUnknown_086213A6[] = _("I'll show you my technique!"); +const u8 gUnknown_086213C2[] = _("Elegantly wheeling BIRDS."); +const u8 gUnknown_086213DC[] = _("My BIRD POKéMON, deliver my"); +const u8 gUnknown_086213F8[] = _("love to that girl!"); +const u8 gUnknown_0862140B[] = _("You'll suffer from poison!"); +const u8 gUnknown_08621426[] = _("Poisonous POKéMON."); +const u8 gUnknown_08621439[] = _("I undertake training so"); +const u8 gUnknown_08621451[] = _("that I may become a ninja."); +const u8 gUnknown_0862146C[] = _("The first strike wins!"); +const u8 gUnknown_08621483[] = _("Speedy FIGHTING type."); +const u8 gUnknown_08621499[] = _("If my POKéMON lose,"); +const u8 gUnknown_086214AD[] = _("I'll carry on the fight!"); +const u8 gUnknown_086214C6[] = _("Go, go, my POKéMON!"); +const u8 gUnknown_086214DA[] = _("I'll raise anything."); +const u8 gUnknown_086214EF[] = _("UV rays are your skin's"); +const u8 gUnknown_08621507[] = _("enemy. Get protected."); +const u8 gUnknown_0862151D[] = _("No mercy!"); +const u8 gUnknown_08621527[] = _("Cute WATER POKéMON."); +const u8 gUnknown_0862153B[] = _("I have too many fans."); +const u8 gUnknown_08621551[] = _("I was interviewed on TV."); +const u8 gUnknown_0862156A[] = _("I think about this & that."); +const u8 gUnknown_08621585[] = _("I like all POKéMON."); +const u8 gUnknown_08621599[] = _("What lies beyond that"); +const u8 gUnknown_086215AF[] = _("yonder hill?"); +const u8 gUnknown_086215BC[] = _("We battle together!"); +const u8 gUnknown_086215D0[] = _("We train together!"); +const u8 gUnknown_086215E3[] = _("We like the same POKéMON,"); +const u8 gUnknown_086215FD[] = _("but different desserts."); +const u8 gUnknown_08621615[] = _("I force things with power!"); +const u8 gUnknown_08621630[] = _("WATER and FIGHTING types."); +const u8 gUnknown_0862164A[] = _("Seamen are rough spirits!"); +const u8 gUnknown_08621664[] = _("Any complaints?"); +const u8 gUnknown_08621674[] = _("Up for a fight anytime!"); +const u8 gUnknown_0862168C[] = _("WATER POKéMON are my faves!"); +const u8 gUnknown_086216A8[] = _("If you want to shout loud,"); +const u8 gUnknown_086216C3[] = _("suck in air with your belly!"); +const u8 gUnknown_086216E0[] = _("Protect POKéMON from harm."); +const u8 gUnknown_086216FB[] = _("I love rare POKéMON."); +const u8 gUnknown_08621710[] = _("I want to collect all the"); +const u8 gUnknown_0862172A[] = _("world's rare POKéMON."); +const u8 gUnknown_08621740[] = _("I count on power."); +const u8 gUnknown_08621752[] = _("POKéMON are my children."); +const u8 gUnknown_0862176B[] = _("It takes knowledge and"); +const u8 gUnknown_08621782[] = _("love to raise POKéMON."); +const u8 gUnknown_08621799[] = _("Full-on attack!"); +const u8 gUnknown_086217A9[] = _("Anything. I'll raise it."); +const u8 gUnknown_086217C2[] = _("I give them {POKEBLOCK}S for"); +const u8 gUnknown_086217D9[] = _("going after CONTEST titles."); +const u8 gUnknown_086217F5[] = _("I raise POKéMON with care."); +const u8 gUnknown_08621810[] = _("Fun-to-raise POKéMON."); +const u8 gUnknown_08621826[] = _("Treat every POKéMON you"); +const u8 gUnknown_0862183E[] = _("meet with respect."); +const u8 gUnknown_08621851[] = _("I believe in my POKéMON."); +const u8 gUnknown_0862186A[] = _("I like strong POKéMON."); +const u8 gUnknown_08621881[] = _("I'm training for rescue"); +const u8 gUnknown_08621899[] = _("work with my POKéMON."); +const u8 gUnknown_086218AF[] = _("Attack in waves!"); +const u8 gUnknown_086218C0[] = _("I use different types."); +const u8 gUnknown_086218D7[] = _("Those who destroy nature"); +const u8 gUnknown_086218F0[] = _("must never be forgiven!"); +const u8 gUnknown_08621908[] = _("I'll show you some guts!"); +const u8 gUnknown_08621921[] = _("Cute POKéMON are my faves!"); +const u8 gUnknown_0862193C[] = _("After a battle, I always"); +const u8 gUnknown_08621955[] = _("bathe with my POKéMON."); +const u8 gUnknown_0862196C[] = _("Lightning-fast attack!"); +const u8 gUnknown_08621983[] = _("BUG POKéMON are number 1!"); +const u8 gUnknown_0862199D[] = _("If you want to catch BUG"); +const u8 gUnknown_086219B6[] = _("POKéMON, wake up early."); +const u8 gUnknown_086219CE[] = _("I battle with power."); +const u8 gUnknown_086219E3[] = _("Hard-bodied POKéMON."); +const u8 gUnknown_086219F8[] = _("I've been planning a month"); +const u8 gUnknown_08621A13[] = _("for today's hike."); +const u8 gUnknown_08621A25[] = _("I like it hot!"); +const u8 gUnknown_08621A34[] = _("Hot POKéMON!"); +const u8 gUnknown_08621A41[] = _("As much as I love POKéMON,"); +const u8 gUnknown_08621A5C[] = _("I surely like hiking!"); +const u8 gUnknown_08621A72[] = _("Lovey-dovey strategy!"); +const u8 gUnknown_08621A88[] = _("Lovey-dovey POKéMON!"); +const u8 gUnknown_08621A9D[] = _("We're lovey-dovey!"); +const u8 gUnknown_08621AB0[] = _("Forever lovey-dovey!"); +const u8 gUnknown_08621AC5[] = _("We let it all hang out."); +const u8 gUnknown_08621ADD[] = _("The 1st POKéMON I caught."); +const u8 gUnknown_08621AF7[] = _("POKéMON and I have grown"); +const u8 gUnknown_08621B10[] = _("stronger together."); +const u8 gUnknown_08621B23[] = _("ROCK-type power attack."); +const u8 gUnknown_08621B3B[] = _("I prefer rock-hard POKéMON."); +const u8 gUnknown_08621B57[] = _("A LEADER of a big GYM bears"); +const u8 gUnknown_08621B73[] = _("a lot of responsibility."); +const u8 gUnknown_08621B8C[] = _("Direct physical action!"); +const u8 gUnknown_08621BA4[] = _("FIGHTING POKéMON rule!"); +const u8 gUnknown_08621BBB[] = _("The world awaits me as the"); +const u8 gUnknown_08621BD6[] = _("next big wave!"); +const u8 gUnknown_08621BE5[] = _("I choose to electrify."); +const u8 gUnknown_08621BFC[] = _("Get shocked by electricity!"); +const u8 gUnknown_08621C18[] = _("One must never throw a"); +const u8 gUnknown_08621C2F[] = _("match. Even I must not."); +const u8 gUnknown_08621C47[] = _("Battle aggressively."); +const u8 gUnknown_08621C5C[] = _("Burn with passion!"); +const u8 gUnknown_08621C6F[] = _("Completely wash away daily"); +const u8 gUnknown_08621C8A[] = _("fatigue in hot springs!"); +const u8 gUnknown_08621CA2[] = _("I flexibly adapt my style."); +const u8 gUnknown_08621CBD[] = _("Grown in a balanced manner."); +const u8 gUnknown_08621CD9[] = _("I walk the 30 minutes from"); +const u8 gUnknown_08621CF4[] = _("home to here every day."); +const u8 gUnknown_08621D0C[] = _("I take advantage of speed."); +const u8 gUnknown_08621D27[] = _("Graceful sky dancers."); +const u8 gUnknown_08621D3D[] = _("The ultimate would be to"); +const u8 gUnknown_08621D56[] = _("live as one with nature."); +const u8 gUnknown_08621D6F[] = _("We battle in cooperation."); +const u8 gUnknown_08621D89[] = _("Always friendly POKéMON."); +const u8 gUnknown_08621DA2[] = _("Papa has trouble telling"); +const u8 gUnknown_08621DBB[] = _("the two of us apart!"); +const u8 gUnknown_08621DD0[] = _("I use splendid waterpower."); +const u8 gUnknown_08621DEB[] = _("POKéMON of elegance!"); +const u8 gUnknown_08621E00[] = _("The adulation of beautiful"); +const u8 gUnknown_08621E1B[] = _("ladies fills me with energy!"); +const u8 gUnknown_08621E38[] = _("Offense over defense!"); +const u8 gUnknown_08621E4E[] = _("The DARK side's beauties."); +const u8 gUnknown_08621E68[] = _("They said I was a punk, but"); +const u8 gUnknown_08621E84[] = _("I'm one of the ELITE FOUR!"); +const u8 gUnknown_08621E9F[] = _("Confuse and confound."); +const u8 gUnknown_08621EB5[] = _("There's nothing definite."); +const u8 gUnknown_08621ECF[] = _("I wonder how my grandma at"); +const u8 gUnknown_08621EEA[] = _("MT. PYRE is doing?"); +const u8 gUnknown_08621EFD[] = _("I use items for help."); +const u8 gUnknown_08621F13[] = _("Flaming passion in icy cold!"); +const u8 gUnknown_08621F30[] = _("The ICE type can be better"); +const u8 gUnknown_08621F4B[] = _("trained in this hot land."); +const u8 gUnknown_08621F65[] = _("Harness strong abilities."); +const u8 gUnknown_08621F7F[] = _("The raw power of DRAGONS!"); +const u8 gUnknown_08621F99[] = _("I dedicate myself to the"); +const u8 gUnknown_08621FB2[] = _("POKéMON that saved me."); +const u8 gUnknown_08621FC9[] = _("Dignity and respect."); +const u8 gUnknown_08621FDE[] = _("I prefer POKéMON of grace."); +const u8 gUnknown_08621FF9[] = _("I represent beauty as"); +const u8 gUnknown_0862200F[] = _("well as intelligence."); + +const u8 *const gUnknown_08622028[][4] = +{ + { + gUnknown_08620390, gUnknown_086203AA, gUnknown_086203C2, gUnknown_086203DB + }, + { + gUnknown_086203F2, gUnknown_0862040D, gUnknown_08620428, gUnknown_08620444 + }, + { + gUnknown_08620456, gUnknown_0862046C, gUnknown_08620481, gUnknown_0862049C + }, + { + gUnknown_086204B0, gUnknown_086204C7, gUnknown_086204DD, gUnknown_086204F9 + }, + { + gUnknown_0862050E, gUnknown_0862052B, gUnknown_08620546, gUnknown_08620562 + }, + { + gUnknown_0862057D, gUnknown_08620592, gUnknown_086205AC, gUnknown_086205C6 + }, + { + gUnknown_086205DD, gUnknown_086205F8, gUnknown_08620612, gUnknown_0862062F + }, + { + gUnknown_08620638, gUnknown_08620654, gUnknown_08620668, gUnknown_08620681 + }, + { + gUnknown_08620693, gUnknown_086206A7, gUnknown_086206BC, gUnknown_086206D5 + }, + { + gUnknown_086206E7, gUnknown_086206FF, gUnknown_08620717, gUnknown_08620730 + }, + { + gUnknown_0862073D, gUnknown_0862074E, gUnknown_0862075D, gUnknown_08620779 + }, + { + gUnknown_0862078D, gUnknown_086207A9, gUnknown_086207BC, gUnknown_086207D7 + }, + { + gUnknown_086207F4, gUnknown_0862080A, gUnknown_0862081B, gUnknown_08620833 + }, + { + gUnknown_0862084B, gUnknown_08620863, gUnknown_0862087C, gUnknown_08620896 + }, + { + gUnknown_086208AA, gUnknown_086208C3, gUnknown_086208DC, gUnknown_086208F1 + }, + { + gUnknown_08620909, gUnknown_0862091C, gUnknown_0862092E, gUnknown_0862094A + }, + { + gUnknown_08620963, gUnknown_08620979, gUnknown_08620988, gUnknown_086209A4 + }, + { + gUnknown_086209B4, gUnknown_086209CA, gUnknown_086209E3, gUnknown_086209FD + }, + { + gUnknown_08620A18, gUnknown_08620A31, gUnknown_08620A4B, gUnknown_08620A66 + }, + { + gUnknown_08620A78, gUnknown_08620A8C, gUnknown_08620A9E, gUnknown_08620AB8 + }, + { + gUnknown_08620AD2, gUnknown_08620AE4, gUnknown_08620AFB, gUnknown_08620B16 + }, + { + gUnknown_08620B32, gUnknown_08620B4C, gUnknown_08620B64, gUnknown_08620B7F + }, + { + gUnknown_08620B8C, gUnknown_08620BA6, gUnknown_08620BC0, gUnknown_08620BD8 + }, + { + gUnknown_08620BF2, gUnknown_08620C03, gUnknown_08620C19, gUnknown_08620C34 + }, + { + gUnknown_08620C4E, gUnknown_08620C60, gUnknown_08620C78, gUnknown_08620C92 + }, + { + gUnknown_08620CA8, gUnknown_08620CBE, gUnknown_08620CD9, gUnknown_08620CF5 + }, + { + gUnknown_08620D06, gUnknown_08620D1A, gUnknown_08620D32, gUnknown_08620D49 + }, + { + gUnknown_08620D63, gUnknown_08620D7C, gUnknown_08620D98, gUnknown_08620DB3 + }, + { + gUnknown_08620DCA, gUnknown_08620DDE, gUnknown_08620DF1, gUnknown_08620E08 + }, + { + gUnknown_08620E22, gUnknown_08620E39, gUnknown_08620E54, gUnknown_08620E6C + }, + { + gUnknown_08620E83, gUnknown_08620E98, gUnknown_08620EB5, gUnknown_08620ECC + }, + { + gUnknown_08620EE2, gUnknown_08620EF6, gUnknown_08620F12, gUnknown_08620F2A + }, + { + gUnknown_08620F43, gUnknown_08620F5D, gUnknown_08620F76, gUnknown_08620F90 + }, + { + gUnknown_08620FA2, gUnknown_08620FBA, gUnknown_08620FCD, gUnknown_08620FE6 + }, + { + gUnknown_08620FF9, gUnknown_0862100A, gUnknown_08621021, gUnknown_0862103B + }, + { + gUnknown_08621056, gUnknown_0862106A, gUnknown_08621083, gUnknown_0862109F + }, + { + gUnknown_086210B5, gUnknown_086210CE, gUnknown_086210E7, gUnknown_08621101 + }, + { + gUnknown_08621114, gUnknown_08621125, gUnknown_0862113D, gUnknown_08621157 + }, + { + gUnknown_0862116E, gUnknown_08621182, gUnknown_08621197, gUnknown_086211B3 + }, + { + gUnknown_086211CC, gUnknown_086211E4, gUnknown_086211FC, gUnknown_08621216 + }, + { + gUnknown_08621230, gUnknown_08621243, gUnknown_08621257, gUnknown_08621270 + }, + { + gUnknown_0862127B, gUnknown_08621290, gUnknown_086212A7, gUnknown_086212BF + }, + { + gUnknown_086212DA, gUnknown_086212F3, gUnknown_0862130C, gUnknown_08621326 + }, + { + gUnknown_08621342, gUnknown_0862135C, gUnknown_08621376, gUnknown_08621393 + }, + { + gUnknown_086213A6, gUnknown_086213C2, gUnknown_086213DC, gUnknown_086213F8 + }, + { + gUnknown_0862140B, gUnknown_08621426, gUnknown_08621439, gUnknown_08621451 + }, + { + gUnknown_0862146C, gUnknown_08621483, gUnknown_08621499, gUnknown_086214AD + }, + { + gUnknown_086214C6, gUnknown_086214DA, gUnknown_086214EF, gUnknown_08621507 + }, + { + gUnknown_0862151D, gUnknown_08621527, gUnknown_0862153B, gUnknown_08621551 + }, + { + gUnknown_0862156A, gUnknown_08621585, gUnknown_08621599, gUnknown_086215AF + }, + { + gUnknown_086215BC, gUnknown_086215D0, gUnknown_086215E3, gUnknown_086215FD + }, + { + gUnknown_08621615, gUnknown_08621630, gUnknown_0862164A, gUnknown_08621664 + }, + { + gUnknown_08621674, gUnknown_0862168C, gUnknown_086216A8, gUnknown_086216C3 + }, + { + gUnknown_086216E0, gUnknown_086216FB, gUnknown_08621710, gUnknown_0862172A + }, + { + gUnknown_08621740, gUnknown_08621752, gUnknown_0862176B, gUnknown_08621782 + }, + { + gUnknown_08621799, gUnknown_086217A9, gUnknown_086217C2, gUnknown_086217D9 + }, + { + gUnknown_086217F5, gUnknown_08621810, gUnknown_08621826, gUnknown_0862183E + }, + { + gUnknown_08621851, gUnknown_0862186A, gUnknown_08621881, gUnknown_08621899 + }, + { + gUnknown_086218AF, gUnknown_086218C0, gUnknown_086218D7, gUnknown_086218F0 + }, + { + gUnknown_08621908, gUnknown_08621921, gUnknown_0862193C, gUnknown_08621955 + }, + { + gUnknown_0862196C, gUnknown_08621983, gUnknown_0862199D, gUnknown_086219B6 + }, + { + gUnknown_086219CE, gUnknown_086219E3, gUnknown_086219F8, gUnknown_08621A13 + }, + { + gUnknown_08621A25, gUnknown_08621A34, gUnknown_08621A41, gUnknown_08621A5C + }, + { + gUnknown_08621A72, gUnknown_08621A88, gUnknown_08621A9D, gUnknown_08621AB0 + }, + { + gUnknown_08621AC5, gUnknown_08621ADD, gUnknown_08621AF7, gUnknown_08621B10 + }, + { + gUnknown_08621B23, gUnknown_08621B3B, gUnknown_08621B57, gUnknown_08621B73 + }, + { + gUnknown_08621B8C, gUnknown_08621BA4, gUnknown_08621BBB, gUnknown_08621BD6 + }, + { + gUnknown_08621BE5, gUnknown_08621BFC, gUnknown_08621C18, gUnknown_08621C2F + }, + { + gUnknown_08621C47, gUnknown_08621C5C, gUnknown_08621C6F, gUnknown_08621C8A + }, + { + gUnknown_08621CA2, gUnknown_08621CBD, gUnknown_08621CD9, gUnknown_08621CF4 + }, + { + gUnknown_08621D0C, gUnknown_08621D27, gUnknown_08621D3D, gUnknown_08621D56 + }, + { + gUnknown_08621D6F, gUnknown_08621D89, gUnknown_08621DA2, gUnknown_08621DBB + }, + { + gUnknown_08621DD0, gUnknown_08621DEB, gUnknown_08621E00, gUnknown_08621E1B + }, + { + gUnknown_08621E38, gUnknown_08621E4E, gUnknown_08621E68, gUnknown_08621E84 + }, + { + gUnknown_08621E9F, gUnknown_08621EB5, gUnknown_08621ECF, gUnknown_08621EEA + }, + { + gUnknown_08621EFD, gUnknown_08621F13, gUnknown_08621F30, gUnknown_08621F4B + }, + { + gUnknown_08621F65, gUnknown_08621F7F, gUnknown_08621F99, gUnknown_08621FB2 + }, + { + gUnknown_08621FC9, gUnknown_08621FDE, gUnknown_08621FF9, gUnknown_0862200F + }, +}; diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c index 404743345..f576d736d 100755 --- a/src/pokenav_unk_3.c +++ b/src/pokenav_unk_3.c @@ -37,9 +37,10 @@ static u32 sub_81CACF8(struct Pokenav3Struct *); static u32 sub_81CAD20(int); 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/trainers_eye_messages.h" + +const u8 gUnknown_08622508[] = {0, 2}; +const u8 gUnknown_0862250A[] = {0, 1, 2, 0, 0, 0}; bool32 sub_81CAAE8(void) { From 690a0c4390788aede68c30328f06ab5575bf0f9d Mon Sep 17 00:00:00 2001 From: garak Date: Fri, 19 Jul 2019 19:36:17 -0400 Subject: [PATCH 03/14] decompile pokenav_unk_4 rodata --- data/pokenav.s | 97 ---------------------- include/strings.h | 5 ++ ld_script.txt | 1 + src/pokenav_unk_4.c | 198 ++++++++++++++++++++++++++++++++++++++++---- 4 files changed, 187 insertions(+), 114 deletions(-) diff --git a/data/pokenav.s b/data/pokenav.s index 42262bfa1..a8d6ee2f1 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -3,103 +3,6 @@ .section .rodata -// pokenav_unk_4.s -gUnknown_08622510:: @ 8622510 - .incbin "graphics/pokenav/ui_matchcall.gbapal" - -gUnknown_08622530:: @ 8622530 - .incbin "graphics/pokenav/ui_matchcall.4bpp.lz" - -gUnknown_086225D4:: @ 86225D4 - .incbin "graphics/pokenav/ui_matchcall.bin.lz" - -gUnknown_08622698:: @ 8622698 - .incbin "graphics/pokenav/arrow2.gbapal" - -gUnknown_086226B8:: @ 86226B8 - .incbin "graphics/pokenav/arrow2.4bpp.lz" - -gUnknown_086226E0:: @ 86226E0 - .incbin "graphics/pokenav/86226E0.gbapal" - -gUnknown_08622700:: @ 8622700 - .incbin "graphics/pokenav/8622700.gbapal" - -gUnknown_08622720:: @ 8622720 - .incbin "graphics/pokenav/pokeball_matchcall.gbapal" - -gUnknown_08622760:: @ 8622760 - .incbin "graphics/pokenav/pokeball_matchcall.4bpp.lz" - -gUnknown_0862278C:: @ 862278C - .4byte 0x11FD - .4byte 0x20206A - -gUnknown_08622794:: @ 8622794 - .4byte 0x00003077 - -gUnknown_08622798:: @ 8622798 - .4byte NULL - .4byte sub_81CB510 - .4byte sub_81CB588 - .4byte sub_81CB600 - .4byte sub_81CB678 - .4byte sub_81CB6F0 - .4byte sub_81CB734 - .4byte sub_81CB75C - .4byte sub_81CB7A0 - .4byte sub_81CB824 - .4byte sub_81CB888 - .4byte sub_81CB93C - .4byte sub_81CBAD4 - .4byte sub_81CB9C8 - .4byte sub_81CBA68 - .4byte sub_81CBB74 - -gUnknown_086227D8:: @ 86227D8 - window_template 2, 0, 5, 11, 2, 2, 16 - -gUnknown_086227E0:: @ 86227E0 - window_template 2, 0, 9, 11, 8, 2, 0x26 - -gUnknown_086227E8:: @ 86227E8 - .4byte gUnknown_085EC017 - .4byte gUnknown_085EC01C - .4byte gUnknown_085EC022 - -gUnknown_086227F4:: @ 86227F4 - .string "·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·\p" - .string "$" - .align 2 - -gUnknown_08622808:: @ 8622808 - window_template 1, 1, 12, 0x1C, 4, 1, 10 - -gUnknown_08622810:: @ 8622810 - obj_tiles gUnknown_086226B8, 0x40, 7 - -gUnknown_08622818:: @ 8622818 - obj_pal gUnknown_08622698, 12 - null_obj_pal - -gUnknown_08622828:: @ 8622828 - .2byte 0x8000 - .2byte 0x0 - .2byte 0x400 - .2byte 0x0 - -gUnknown_08622830:: @ 8622830 - spr_template 7, 12, gUnknown_08622828, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81CC34C - -gUnknown_08622848:: @ 8622848 - .2byte 0x0 - .2byte 0xC000 - .2byte 0x400 - .2byte 0x0 - -gUnknown_08622850:: @ 8622850 - spr_template 8, 13, gUnknown_08622848, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - // pokenav_unk_5.s gUnknown_08622868:: @ 8622868 .incbin "graphics/pokenav/8622868.gbapal" diff --git a/include/strings.h b/include/strings.h index 3dd86f60a..d8cdebec6 100644 --- a/include/strings.h +++ b/include/strings.h @@ -2739,4 +2739,9 @@ 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[]; + #endif // GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 2c745600e..b1884a5c8 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -645,6 +645,7 @@ SECTIONS { src/pokenav_unk_1.o(.rodata); src/pokenav_unk_2.o(.rodata); src/pokenav_unk_3.o(.rodata); + src/pokenav_unk_4.o(.rodata); data/pokenav.o(.rodata); src/pokenav_unk_10.o(.rodata); src/pokenav_match_call_data.o(.rodata); diff --git a/src/pokenav_unk_4.c b/src/pokenav_unk_4.c index 6fa76daf2..d935c9d28 100755 --- a/src/pokenav_unk_4.c +++ b/src/pokenav_unk_4.c @@ -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(int); +u32 sub_81CB588(int); +u32 sub_81CB600(int); +u32 sub_81CB678(int); +u32 sub_81CB6F0(int); +u32 sub_81CB734(int); +u32 sub_81CB75C(int); +u32 sub_81CB7A0(int); +u32 sub_81CB824(int); +u32 sub_81CB888(int); +u32 sub_81CB93C(int); +u32 sub_81CBAD4(int); +u32 sub_81CB9C8(int); +u32 sub_81CBA68(int); +u32 sub_81CBB74(int); -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 = 2,//SPRITE_SHAPE(32x16), + .x = 0, + .size = 0,//SPRITE_SIZE(32x16), + .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 = 0,//SPRITE_SHAPE(32x16), + .x = 0, + .size = 3,//SPRITE_SIZE(32x16), + .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); } From f6d55db5354d98e1da7f9d4fb9eceeb7ad73c284 Mon Sep 17 00:00:00 2001 From: garak Date: Fri, 19 Jul 2019 21:05:55 -0400 Subject: [PATCH 04/14] decompile pokenav_unk_5 data --- data/pokenav.s | 125 ---------------------- graphics/pokenav/city_maps/lilycove_0.bin | 4 +- graphics/pokenav/city_maps/lilycove_1.bin | 4 +- graphics/pokenav/city_maps/mauville_0.bin | 6 +- graphics/pokenav/city_maps/mauville_1.bin | 6 +- graphics/pokenav/city_maps/mossdeep_0.bin | 4 +- graphics/pokenav/city_maps/mossdeep_1.bin | 4 +- ld_script.txt | 1 + src/data/region_map/city_map_entries.h | 113 +++++++++++++++++++ src/data/region_map/city_map_tilemaps.h | 22 ++++ src/pokenav_unk_4.c | 8 +- src/pokenav_unk_5.c | 125 +++++++++++++++++++--- 12 files changed, 263 insertions(+), 159 deletions(-) create mode 100644 src/data/region_map/city_map_entries.h create mode 100644 src/data/region_map/city_map_tilemaps.h diff --git a/data/pokenav.s b/data/pokenav.s index a8d6ee2f1..10f36b389 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -4,138 +4,13 @@ .section .rodata // pokenav_unk_5.s -gUnknown_08622868:: @ 8622868 - .incbin "graphics/pokenav/8622868.gbapal" -gUnknown_08622888:: @ 8622888 - .incbin "graphics/pokenav/zoom_tiles.4bpp.lz" -gUnknown_08622A7C:: @ 8622A7C - .incbin "graphics/pokenav/city_maps/lavaridge_0.bin.lz" -gUnknown_08622AC0:: @ 8622AC0 - .incbin "graphics/pokenav/city_maps/fallarbor_0.bin.lz" -gUnknown_08622B08:: @ 8622B08 - .incbin "graphics/pokenav/city_maps/fortree_0.bin.lz" -gUnknown_08622B58:: @ 8622B58 - .incbin "graphics/pokenav/city_maps/slateport_0.bin.lz" -gUnknown_08622BB8:: @ 8622BB8 - .incbin "graphics/pokenav/city_maps/slateport_1.bin.lz" -gUnknown_08622C04:: @ 8622C04 - .incbin "graphics/pokenav/city_maps/rustboro_0.bin.lz" - -gUnknown_08622C58:: @ 8622C58 - .incbin "graphics/pokenav/city_maps/rustboro_1.bin.lz" - -gUnknown_08622CAC:: @ 8622CAC - .incbin "graphics/pokenav/city_maps/pacifidlog_0.bin.lz" - -gUnknown_08622CEC:: @ 8622CEC - .incbin "graphics/pokenav/city_maps/mauville_0.bin.lz" - -gUnknown_08622D44:: @ 8622D44 - .incbin "graphics/pokenav/city_maps/mauville_1.bin.lz" - -gUnknown_08622D98:: @ 8622D98 - .incbin "graphics/pokenav/city_maps/oldale_0.bin.lz" - -gUnknown_08622DC8:: @ 8622DC8 - .incbin "graphics/pokenav/city_maps/lilycove_0.bin.lz" - -gUnknown_08622E14:: @ 8622E14 - .incbin "graphics/pokenav/city_maps/lilycove_1.bin.lz" - -gUnknown_08622E6C:: @ 8622E6C - .incbin "graphics/pokenav/city_maps/littleroot_0.bin.lz" - -gUnknown_08622E9C:: @ 8622E9C - .incbin "graphics/pokenav/city_maps/dewford_0.bin.lz" - -gUnknown_08622ED4:: @ 8622ED4 - .incbin "graphics/pokenav/city_maps/sootopolis_0.bin.lz" - -gUnknown_08622F14:: @ 8622F14 - .incbin "graphics/pokenav/city_maps/ever_grande_0.bin.lz" - -gUnknown_08622F5C:: @ 8622F5C - .incbin "graphics/pokenav/city_maps/ever_grande_1.bin.lz" - -gUnknown_08622FA0:: @ 8622FA0 - .incbin "graphics/pokenav/city_maps/verdanturf_0.bin.lz" - -gUnknown_08622FD8:: @ 8622FD8 - .incbin "graphics/pokenav/city_maps/mossdeep_0.bin.lz" - -gUnknown_08623020:: @ 8623020 - .incbin "graphics/pokenav/city_maps/mossdeep_1.bin.lz" - -gUnknown_0862307C:: @ 862307C - .incbin "graphics/pokenav/city_maps/petalburg_0.bin.lz" - -gUnknown_086230D8:: @ 86230D8 - .4byte 0x11F5 - .4byte 0x206A - .4byte 0x3402 - -gUnknown_086230E4:: @ 86230E4 - .4byte NULL - .4byte sub_81CC848 - .4byte sub_81CC878 - .4byte sub_81CC8D8 - .4byte sub_81CC95C - -gUnknown_086230F8:: @ 86230F8 - obj_tiles gHoennMapZoomIcons_Gfx, 0x800, 6 - -gUnknown_08623100:: @ 8623100 - obj_pal gHoennMapZoomIcons_Pal, 11 - null_obj_pal - -gUnknown_08623110:: @ 8623110 - .byte 1 - .byte 17 - .byte 4 - .byte 12 - .byte 13 - .byte 1 - .2byte 0x4C - -gUnknown_08623118:: @ 8623118 - .4byte 0, gUnknown_08622E6C - .4byte 1, gUnknown_08622D98 - .4byte 2, gUnknown_08622E9C - .4byte 3, gUnknown_08622A7C - .4byte 4, gUnknown_08622AC0 - .4byte 5, gUnknown_08622FA0 - .4byte 6, gUnknown_08622CAC - .4byte 7, gUnknown_0862307C - .4byte 8, gUnknown_08622B58 - .4byte 0x10008, gUnknown_08622BB8 - .4byte 9, gUnknown_08622D44 - .4byte 0x10009, gUnknown_08622CEC - .4byte 0xA, gUnknown_08622C04 - .4byte 0x1000A, gUnknown_08622C58 - .4byte 0xB, gUnknown_08622B08 - .4byte 0xC, gUnknown_08622E14 - .4byte 0x1000C, gUnknown_08622DC8 - .4byte 0xD, gUnknown_08623020 - .4byte 0x1000D, gUnknown_08622FD8 - .4byte 0xE, gUnknown_08622ED4 - .4byte 0xF, gUnknown_08622F14 - .4byte 0x1000F, gUnknown_08622F5C - -gUnknown_086231C8:: @ 86231C8 - .2byte 0x4000 - .2byte 0x4000 - .2byte 0x400 - .2byte 0x0 - -gUnknown_086231D0:: @ 86231D0 - spr_template 6, 11, gUnknown_086231C8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81CCEF4 // pokenav_unk_6.s // diff --git a/graphics/pokenav/city_maps/lilycove_0.bin b/graphics/pokenav/city_maps/lilycove_0.bin index e8bf09eae..99895574d 100644 --- a/graphics/pokenav/city_maps/lilycove_0.bin +++ b/graphics/pokenav/city_maps/lilycove_0.bin @@ -1 +1,3 @@ -0000000000000000000000000000000 0 0000000000000000000 00000000000000000000 00000000000000000000000000000 \ No newline at end of file +00000000000000000000000000000000 0 0 0 0 00 000000000 +0000 0 0 0 0 0 00 000000000 +000000 0 0 0 00 0000000000000000000000 \ No newline at end of file diff --git a/graphics/pokenav/city_maps/lilycove_1.bin b/graphics/pokenav/city_maps/lilycove_1.bin index 99895574d..e8bf09eae 100644 --- a/graphics/pokenav/city_maps/lilycove_1.bin +++ b/graphics/pokenav/city_maps/lilycove_1.bin @@ -1,3 +1 @@ -00000000000000000000000000000000 0 0 0 0 00 000000000 -0000 0 0 0 0 0 00 000000000 -000000 0 0 0 00 0000000000000000000000 \ No newline at end of file +0000000000000000000000000000000 0 0000000000000000000 00000000000000000000 00000000000000000000000000000 \ No newline at end of file diff --git a/graphics/pokenav/city_maps/mauville_0.bin b/graphics/pokenav/city_maps/mauville_0.bin index 103d39e54..a0662010a 100644 --- a/graphics/pokenav/city_maps/mauville_0.bin +++ b/graphics/pokenav/city_maps/mauville_0.bin @@ -1,3 +1,3 @@ -000000000000000000000000000000000000000000 00 00 0 000000 -0000000000 -00000000 0 00 00000000000000000000000000 \ No newline at end of file +000000000000000000000000000000000000 +000000 000 00 0 000000 +0000000000 0000000000000 0 00000000 00000000000000 \ No newline at end of file diff --git a/graphics/pokenav/city_maps/mauville_1.bin b/graphics/pokenav/city_maps/mauville_1.bin index a0662010a..103d39e54 100644 --- a/graphics/pokenav/city_maps/mauville_1.bin +++ b/graphics/pokenav/city_maps/mauville_1.bin @@ -1,3 +1,3 @@ -000000000000000000000000000000000000 -000000 000 00 0 000000 -0000000000 0000000000000 0 00000000 00000000000000 \ No newline at end of file +000000000000000000000000000000000000000000 00 00 0 000000 +0000000000 +00000000 0 00 00000000000000000000000000 \ No newline at end of file diff --git a/graphics/pokenav/city_maps/mossdeep_0.bin b/graphics/pokenav/city_maps/mossdeep_0.bin index fd03cfe02..6c11d5624 100644 --- a/graphics/pokenav/city_maps/mossdeep_0.bin +++ b/graphics/pokenav/city_maps/mossdeep_0.bin @@ -1 +1,3 @@ -0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000 \ No newline at end of file +00000000000000000000000000 0 00000000 +0000000000 +000000000 000000000 000 0 00000000 0000000000000000000000000 \ No newline at end of file diff --git a/graphics/pokenav/city_maps/mossdeep_1.bin b/graphics/pokenav/city_maps/mossdeep_1.bin index 6c11d5624..fd03cfe02 100644 --- a/graphics/pokenav/city_maps/mossdeep_1.bin +++ b/graphics/pokenav/city_maps/mossdeep_1.bin @@ -1,3 +1 @@ -00000000000000000000000000 0 00000000 -0000000000 -000000000 000000000 000 0 00000000 0000000000000000000000000 \ No newline at end of file +0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000 \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index b1884a5c8..2474b471b 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -646,6 +646,7 @@ SECTIONS { src/pokenav_unk_2.o(.rodata); src/pokenav_unk_3.o(.rodata); src/pokenav_unk_4.o(.rodata); + src/pokenav_unk_5.o(.rodata); data/pokenav.o(.rodata); src/pokenav_unk_10.o(.rodata); src/pokenav_match_call_data.o(.rodata); diff --git a/src/data/region_map/city_map_entries.h b/src/data/region_map/city_map_entries.h new file mode 100644 index 000000000..7b8361a7c --- /dev/null +++ b/src/data/region_map/city_map_entries.h @@ -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, + }, +}; diff --git a/src/data/region_map/city_map_tilemaps.h b/src/data/region_map/city_map_tilemaps.h new file mode 100644 index 000000000..8a8a931f9 --- /dev/null +++ b/src/data/region_map/city_map_tilemaps.h @@ -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"); diff --git a/src/pokenav_unk_4.c b/src/pokenav_unk_4.c index d935c9d28..3a7a4486f 100755 --- a/src/pokenav_unk_4.c +++ b/src/pokenav_unk_4.c @@ -234,9 +234,9 @@ const struct OamData gUnknown_08622828 = .affineMode = 0, .objMode = 0, .bpp = 0, - .shape = 2,//SPRITE_SHAPE(32x16), + .shape = SPRITE_SHAPE(8x16), .x = 0, - .size = 0,//SPRITE_SIZE(32x16), + .size = SPRITE_SIZE(8x16), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -259,9 +259,9 @@ const struct OamData gUnknown_08622848 = .affineMode = 0, .objMode = 0, .bpp = 0, - .shape = 0,//SPRITE_SHAPE(32x16), + .shape = SPRITE_SHAPE(64x64), .x = 0, - .size = 3,//SPRITE_SIZE(32x16), + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/pokenav_unk_5.c b/src/pokenav_unk_5.c index eccc200d5..6a235df9e 100755 --- a/src/pokenav_unk_5.c +++ b/src/pokenav_unk_5.c @@ -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(int); +u32 sub_81CC878(int); +u32 sub_81CC8D8(int); +u32 sub_81CC95C(int); -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(int 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(); @@ -521,9 +614,9 @@ static bool32 sub_81CCD24(void) static u32 sub_81CCD34(int 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(int 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); From f9a9297d4f1d60da027817aad89478a39907dafb Mon Sep 17 00:00:00 2001 From: garak Date: Fri, 19 Jul 2019 22:06:42 -0400 Subject: [PATCH 05/14] decompile pokenav 7/8 data --- data/pokenav.s | 106 -------------------------------------------- ld_script.txt | 2 + src/pokenav_unk_5.c | 12 ++--- src/pokenav_unk_7.c | 103 ++++++++++++++++++++++++++++++++++++++++++ src/pokenav_unk_8.c | 78 ++++++++++++++++++++++++++++++++ 5 files changed, 189 insertions(+), 112 deletions(-) create mode 100644 src/pokenav_unk_7.c create mode 100644 src/pokenav_unk_8.c diff --git a/data/pokenav.s b/data/pokenav.s index 10f36b389..62e645d94 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -3,112 +3,6 @@ .section .rodata -// pokenav_unk_5.s - - - - - - - - -// pokenav_unk_6.s -// - -// pokenav_unk_7.s -gUnknown_086231E8:: @ 86231E8 - .incbin "graphics/pokenav/86231E8.gbapal" - -gUnknown_08623208:: @ 8623208 - .incbin "graphics/pokenav/8623208.gbapal" - -gUnknown_08623228:: @ 8623228 - .incbin "graphics/pokenav/8623228.4bpp.lz" - -gUnknown_0862323C:: @ 862323C - .incbin "graphics/pokenav/862323C.bin.lz" - -gUnknown_08623338:: @ 8623338 - .incbin "graphics/pokenav/8623338.gbapal" - -gUnknown_08623358:: @ 8623358 - .4byte 0x11F5 - .4byte 0x21DE - .4byte 0x31EB - -gUnknown_08623364:: @ 8623364 - window_template 1, 13, 1, 13, 4, 15, 2 - -gUnknown_0862336C:: @ 862336C - window_template 1, 1, 6, 7, 2, 15, 0x36 - -gUnknown_08623374:: @ 8623374 - window_template 1, 1, 0x1C, 5, 2, 15, 0x44 - -gUnknown_0862337C:: @ 862337C - window_template 1, 13, 0x1C, 3, 2, 15, 0x44 - -// pokenav_unk_8.s -gUnknown_08623384:: @ 8623384 - .4byte NULL - .4byte sub_81CE37C - .4byte sub_81CE2D0 - .4byte sub_81CE4D8 - .4byte sub_81CE5E4 - .4byte sub_81CE6BC - .4byte sub_81CE700 - -gUnknown_086233A0:: @ 86233A0 - .4byte 0x16, 0x17, 0x18, 0x21, 0x2F - -gUnknown_086233B4:: @ 86233B4 - .4byte sub_81CF134 - .4byte sub_81CF1C4 - .4byte sub_81CF1D8 - .4byte sub_81CF278 - -gUnknown_086233C4:: @ 86233C4 - .incbin "graphics/pokenav/condition_search2.gbapal" - -gUnknown_086233E4:: @ 86233E4 - .incbin "graphics/pokenav/condition_search2.4bpp.lz" - -gUnknown_086234AC:: @ 86234AC - .incbin "graphics/pokenav/condition_search2.bin.lz" - -gUnknown_08623570:: @ 8623570 - .incbin "graphics/pokenav/8623570.gbapal" - -gUnknown_08623590:: @ 8623590 - .4byte 0x2065 - -gUnknown_08623594:: @ 8623594 - .4byte 0x307A - -gUnknown_08623598:: @ 8623598 - .4byte NULL - .4byte sub_81CF578 - .4byte sub_81CF5F0 - .4byte sub_81CF668 - .4byte sub_81CF6E0 - .4byte sub_81CF758 - .4byte sub_81CF798 - -gUnknown_086235B4:: @ 86235B4 - window_template 1, 1, 6, 7, 2, 1, 20 - -gUnknown_086235BC:: @ 86235BC - .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$" - .align 2 - -gUnknown_086235C8:: @ 86235C8 - .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$" - .align 2 - -gUnknown_086235D4:: @ 86235D4 - .string "{UNK_SPACER}$" - .align 2 - // pokenav_unk_9.s gUnknown_086235D8:: @ 86235D8 .4byte sub_81CFB8C diff --git a/ld_script.txt b/ld_script.txt index 2474b471b..d58843162 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -647,6 +647,8 @@ SECTIONS { 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); data/pokenav.o(.rodata); src/pokenav_unk_10.o(.rodata); src/pokenav_match_call_data.o(.rodata); diff --git a/src/pokenav_unk_5.c b/src/pokenav_unk_5.c index 6a235df9e..edcd495e8 100755 --- a/src/pokenav_unk_5.c +++ b/src/pokenav_unk_5.c @@ -131,12 +131,12 @@ const struct SpritePalette gUnknown_08623100[] = const struct WindowTemplate gUnknown_08623110 = { .bg = 1, - .tilemapLeft 17, - .tilemapTop 4, - .width 12, - .height 13, - .paletteNum 1, - .baseBlock 0x4C + .tilemapLeft = 17, + .tilemapTop = 4, + .width = 12, + .height = 13, + .paletteNum = 1, + .baseBlock = 0x4C }; #include "data/region_map/city_map_entries.h" diff --git a/src/pokenav_unk_7.c b/src/pokenav_unk_7.c new file mode 100644 index 000000000..0c31551fc --- /dev/null +++ b/src/pokenav_unk_7.c @@ -0,0 +1,103 @@ +#include "global.h" +#include "bg.h" +#include "window.h" +#include "pokenav.h" + +u32 sub_81CE37C(int); +u32 sub_81CE2D0(int); +u32 sub_81CE4D8(int); +u32 sub_81CE5E4(int); +u32 sub_81CE6BC(int); +u32 sub_81CE700(int); + +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 +}; diff --git a/src/pokenav_unk_8.c b/src/pokenav_unk_8.c new file mode 100644 index 000000000..8d72c1af0 --- /dev/null +++ b/src/pokenav_unk_8.c @@ -0,0 +1,78 @@ +#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(int); +u32 sub_81CF5F0(int); +u32 sub_81CF668(int); +u32 sub_81CF6E0(int); +u32 sub_81CF758(int); +u32 sub_81CF798(int); + +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}"); From dfa3e079c0f55565fc60a6a1ba0ef04de9be94c2 Mon Sep 17 00:00:00 2001 From: garak Date: Fri, 19 Jul 2019 22:57:33 -0400 Subject: [PATCH 06/14] finish pokenav data decomp --- data/pokenav.s | 114 ------------- data/text/gift_ribbon_descriptions.inc | 207 ----------------------- data/text/ribbon_descriptions.inc | 84 --------- ld_script.txt | 2 +- src/data/text/gift_ribbon_descriptions.h | 115 +++++++++++++ src/data/text/ribbon_descriptions.h | 48 ++++++ src/pokenav_unk_10.c | 71 +++++++- src/pokenav_unk_9.c | 75 ++++++++ 8 files changed, 309 insertions(+), 407 deletions(-) delete mode 100644 data/pokenav.s delete mode 100644 data/text/gift_ribbon_descriptions.inc delete mode 100644 data/text/ribbon_descriptions.inc create mode 100644 src/data/text/gift_ribbon_descriptions.h create mode 100644 src/data/text/ribbon_descriptions.h create mode 100644 src/pokenav_unk_9.c diff --git a/data/pokenav.s b/data/pokenav.s deleted file mode 100644 index 62e645d94..000000000 --- a/data/pokenav.s +++ /dev/null @@ -1,114 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -// pokenav_unk_9.s -gUnknown_086235D8:: @ 86235D8 - .4byte sub_81CFB8C - .4byte sub_81CFC2C - .4byte sub_81CFC40 - -gUnknown_086235E4:: @ 86235E4 - .incbin "graphics/pokenav/ui_ribbons.gbapal" - -gUnknown_08623604:: @ 8623604 - .incbin "graphics/pokenav/ui_ribbons.4bpp.lz" - -gUnknown_086236CC:: @ 86236CC - .incbin "graphics/pokenav/ui_ribbons.bin.lz" - -gUnknown_08623790:: @ 8623790 - .incbin "graphics/pokenav/8623790.gbapal" - -gUnknown_086237B0:: @ 86237B0 - .4byte 0x2065 - -gUnknown_086237B4:: @ 86237B4 - .4byte 0x307A - -gUnknown_086237B8:: @ 86237B8 - .4byte NULL - .4byte sub_81CFFFC - .4byte sub_81D0074 - .4byte sub_81D00EC - .4byte sub_81D0164 - .4byte sub_81D01DC - .4byte sub_81D021C - -gUnknown_086237D4:: @ 86237D4 - window_template 1, 1, 6, 7, 2, 1, 20 - -gUnknown_086237DC:: @ 86237DC - .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$" - .align 2 - -gUnknown_086237E8:: @ 86237E8 - .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$" - .align 2 - -gUnknown_086237F4:: @ 86237F4 - .string "{UNK_SPACER}$" - .align 2 - -// pokenav_unk_10.s -gUnknown_086237F8:: @ 86237F8 - .byte 1, 1, 0, 0 - .byte 3, 4, 1, 0 - .byte 3, 4, 5, 0 - .byte 3, 4, 9, 0 - .byte 3, 4, 13, 0 - .byte 3, 4, 17, 0 - .byte 1, 1, 21, 0 - .byte 1, 1, 22, 0 - .byte 1, 1, 23, 0 - .byte 1, 1, 24, 0 - .byte 1, 1, 25, 1 - .byte 1, 1, 26, 1 - .byte 1, 1, 27, 1 - .byte 1, 1, 28, 1 - .byte 1, 1, 29, 1 - .byte 1, 1, 30, 1 - .byte 1, 1, 31, 1 - -@ 862383C - .include "data/text/ribbon_descriptions.inc" - -@ 8623A74 - .include "data/text/gift_ribbon_descriptions.inc" - -gUnknown_08623FF8:: @ 8623FF8 - .incbin "graphics/pokenav/ribbons_icon1.gbapal" - -gUnknown_08624018:: @ 8624018 - .incbin "graphics/pokenav/ribbons_icon2.gbapal" - -gUnknown_08624038:: @ 8624038 - .incbin "graphics/pokenav/ribbons_icon3.gbapal" - -gUnknown_08624058:: @ 8624058 - .incbin "graphics/pokenav/ribbons_icon4.gbapal" - -gUnknown_08624078:: @ 8624078 - .incbin "graphics/pokenav/ribbons_icon5.gbapal" - -gUnknown_08624098:: @ 8624098 - .incbin "graphics/pokenav/8624098.gbapal" - -gUnknown_086240B8:: @ 86240B8 - .incbin "graphics/pokenav/ribbons_icon.4bpp.lz" - -gUnknown_08624280:: @ 8624280 - .incbin "graphics/pokenav/ribbons_icon_big.4bpp.lz" - -gUnknown_08624B98:: @ 8624B98 - .4byte 0x107D - .4byte 0x2066 - -gUnknown_08624BA0:: @ 8624BA0 - .4byte NULL - .4byte sub_81D0C84 - .4byte sub_81D0D2C - .4byte sub_81D0D8C - .4byte sub_81D0E00 - .4byte sub_81D0C54 diff --git a/data/text/gift_ribbon_descriptions.inc b/data/text/gift_ribbon_descriptions.inc deleted file mode 100644 index 47e004d67..000000000 --- a/data/text/gift_ribbon_descriptions.inc +++ /dev/null @@ -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 diff --git a/data/text/ribbon_descriptions.inc b/data/text/ribbon_descriptions.inc deleted file mode 100644 index 6dd82c288..000000000 --- a/data/text/ribbon_descriptions.inc +++ /dev/null @@ -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 diff --git a/ld_script.txt b/ld_script.txt index d58843162..db5942a8e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -649,7 +649,7 @@ SECTIONS { src/pokenav_unk_5.o(.rodata); src/pokenav_unk_7.o(.rodata); src/pokenav_unk_8.o(.rodata); - data/pokenav.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); diff --git a/src/data/text/gift_ribbon_descriptions.h b/src/data/text/gift_ribbon_descriptions.h new file mode 100644 index 000000000..ea108be18 --- /dev/null +++ b/src/data/text/gift_ribbon_descriptions.h @@ -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} +}; diff --git a/src/data/text/ribbon_descriptions.h b/src/data/text/ribbon_descriptions.h new file mode 100644 index 000000000..f455a7771 --- /dev/null +++ b/src/data/text/ribbon_descriptions.h @@ -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}, +}; diff --git a/src/pokenav_unk_10.c b/src/pokenav_unk_10.c index dcdbacfb9..dda899654 100644 --- a/src/pokenav_unk_10.c +++ b/src/pokenav_unk_10.c @@ -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(int); +u32 sub_81D0D2C(int); +u32 sub_81D0D8C(int); +u32 sub_81D0E00(int); +u32 sub_81D0C54(int); + +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, diff --git a/src/pokenav_unk_9.c b/src/pokenav_unk_9.c new file mode 100644 index 000000000..43f626a03 --- /dev/null +++ b/src/pokenav_unk_9.c @@ -0,0 +1,75 @@ +#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(int); +u32 sub_81D0074(int); +u32 sub_81D00EC(int); +u32 sub_81D0164(int); +u32 sub_81D01DC(int); +u32 sub_81D021C(int); + +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 +}; + +// TODO: these are probably not strings? +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}"); From cd6fd3110f7c440699838268abb7fc3c49ba78c3 Mon Sep 17 00:00:00 2001 From: garak Date: Sat, 20 Jul 2019 13:11:04 -0400 Subject: [PATCH 07/14] fix modern build --- src/pokenav_unk_10.c | 10 +++++----- src/pokenav_unk_4.c | 30 +++++++++++++++--------------- src/pokenav_unk_5.c | 16 ++++++++-------- src/pokenav_unk_7.c | 12 ++++++------ src/pokenav_unk_8.c | 12 ++++++------ src/pokenav_unk_9.c | 12 ++++++------ 6 files changed, 46 insertions(+), 46 deletions(-) diff --git a/src/pokenav_unk_10.c b/src/pokenav_unk_10.c index 6fa11853c..0ca0ea20d 100644 --- a/src/pokenav_unk_10.c +++ b/src/pokenav_unk_10.c @@ -60,11 +60,11 @@ 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(int); -u32 sub_81D0D2C(int); -u32 sub_81D0D8C(int); -u32 sub_81D0E00(int); -u32 sub_81D0C54(int); +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] = { diff --git a/src/pokenav_unk_4.c b/src/pokenav_unk_4.c index 34c529fc5..93dab4491 100755 --- a/src/pokenav_unk_4.c +++ b/src/pokenav_unk_4.c @@ -94,21 +94,21 @@ 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(int); -u32 sub_81CB588(int); -u32 sub_81CB600(int); -u32 sub_81CB678(int); -u32 sub_81CB6F0(int); -u32 sub_81CB734(int); -u32 sub_81CB75C(int); -u32 sub_81CB7A0(int); -u32 sub_81CB824(int); -u32 sub_81CB888(int); -u32 sub_81CB93C(int); -u32 sub_81CBAD4(int); -u32 sub_81CB9C8(int); -u32 sub_81CBA68(int); -u32 sub_81CBB74(int); +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 struct WindowTemplate gUnknown_08622808; extern const struct SpriteTemplate gUnknown_08622830; diff --git a/src/pokenav_unk_5.c b/src/pokenav_unk_5.c index bf2f287b8..ccab58078 100755 --- a/src/pokenav_unk_5.c +++ b/src/pokenav_unk_5.c @@ -62,10 +62,10 @@ 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(int); -u32 sub_81CC878(int); -u32 sub_81CC8D8(int); -u32 sub_81CC95C(int); +u32 sub_81CC848(s32); +u32 sub_81CC878(s32); +u32 sub_81CC8D8(s32); +u32 sub_81CC95C(s32); extern const u16 gHoennMapZoomIcons_Pal[]; extern const struct SpriteTemplate gUnknown_086231D0; @@ -371,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) @@ -388,7 +388,7 @@ u32 sub_81CC848(int taskState) return 4; } -u32 sub_81CC878(int taskState) +u32 sub_81CC878(s32 taskState) { switch (taskState) { @@ -414,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) @@ -447,7 +447,7 @@ u32 sub_81CC8D8(int taskState) return 4; } -u32 sub_81CC95C(int taskState) +u32 sub_81CC95C(s32 taskState) { switch (taskState) { diff --git a/src/pokenav_unk_7.c b/src/pokenav_unk_7.c index 814a27c54..d7b4b4f49 100644 --- a/src/pokenav_unk_7.c +++ b/src/pokenav_unk_7.c @@ -3,12 +3,12 @@ #include "window.h" #include "pokenav.h" -u32 sub_81CE37C(int); -u32 sub_81CE2D0(int); -u32 sub_81CE4D8(int); -u32 sub_81CE5E4(int); -u32 sub_81CE6BC(int); -u32 sub_81CE700(int); +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; diff --git a/src/pokenav_unk_8.c b/src/pokenav_unk_8.c index 8d72c1af0..8d83fd401 100644 --- a/src/pokenav_unk_8.c +++ b/src/pokenav_unk_8.c @@ -7,12 +7,12 @@ u32 sub_81CF134(void); u32 sub_81CF1C4(void); u32 sub_81CF1D8(void); u32 sub_81CF278(void); -u32 sub_81CF578(int); -u32 sub_81CF5F0(int); -u32 sub_81CF668(int); -u32 sub_81CF6E0(int); -u32 sub_81CF758(int); -u32 sub_81CF798(int); +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}; diff --git a/src/pokenav_unk_9.c b/src/pokenav_unk_9.c index 43f626a03..780f184f1 100644 --- a/src/pokenav_unk_9.c +++ b/src/pokenav_unk_9.c @@ -6,12 +6,12 @@ u32 sub_81CFB8C(void); u32 sub_81CFC2C(void); u32 sub_81CFC40(void); -u32 sub_81CFFFC(int); -u32 sub_81D0074(int); -u32 sub_81D00EC(int); -u32 sub_81D0164(int); -u32 sub_81D01DC(int); -u32 sub_81D021C(int); +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) = { From 3ad14f2b33046ef0a1b3ce2003f395604338eacc Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 28 Jul 2019 10:37:44 +0200 Subject: [PATCH 08/14] Functionally equivalent CopyGlyphToWindow --- src/text.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/src/text.c b/src/text.c index 91a82b19f..7e4fa7104 100644 --- a/src/text.c +++ b/src/text.c @@ -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) { From 87ac555e71e01e1e431a8257bc326738e9d42579 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sun, 28 Jul 2019 21:18:28 -0500 Subject: [PATCH 09/14] remove hardcoded VRAM addresses --- src/contest_painting.c | 2 +- src/fldeff_flash.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/contest_painting.c b/src/contest_painting.c index 820505b6e..66127cbbc 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -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); diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index c002f700f..a2457307b 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -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); From b6483d7026300e4b58e4f55066f38ffdffde4746 Mon Sep 17 00:00:00 2001 From: garak Date: Mon, 29 Jul 2019 12:46:08 -0400 Subject: [PATCH 10/14] name match call messages by trainers --- src/data/text/match_call_messages.h | 476 ++++++++++++++++++++++ src/data/text/trainers_eye_messages.h | 550 -------------------------- src/pokenav_unk_3.c | 4 +- 3 files changed, 478 insertions(+), 552 deletions(-) create mode 100644 src/data/text/match_call_messages.h delete mode 100644 src/data/text/trainers_eye_messages.h diff --git a/src/data/text/match_call_messages.h b/src/data/text/match_call_messages.h new file mode 100644 index 000000000..c3015b5a7 --- /dev/null +++ b/src/data/text/match_call_messages.h @@ -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), +}; diff --git a/src/data/text/trainers_eye_messages.h b/src/data/text/trainers_eye_messages.h deleted file mode 100644 index 7b2f4ec64..000000000 --- a/src/data/text/trainers_eye_messages.h +++ /dev/null @@ -1,550 +0,0 @@ -const u8 gUnknown_08620390[] = _("Becalm fighting emotions."); -const u8 gUnknown_086203AA[] = _("Fragrant GRASS POKéMON."); -const u8 gUnknown_086203C2[] = _("Soothing aromas make the"); -const u8 gUnknown_086203DB[] = _("body and mind healthy."); -const u8 gUnknown_086203F2[] = _("I'm not very good at this."); -const u8 gUnknown_0862040D[] = _("Ruin-exploration partners."); -const u8 gUnknown_08620428[] = _("I am searching for undersea"); -const u8 gUnknown_08620444[] = _("ruins and relics."); -const u8 gUnknown_08620456[] = _("Overwhelm with power!"); -const u8 gUnknown_0862046C[] = _("Craggy ROCK POKéMON."); -const u8 gUnknown_08620481[] = _("In search of ancient lore,"); -const u8 gUnknown_0862049C[] = _("I travel the world."); -const u8 gUnknown_086204B0[] = _("I'm going to try hard!"); -const u8 gUnknown_086204C7[] = _("Good swimmer POKéMON."); -const u8 gUnknown_086204DD[] = _("I wish I could swim without"); -const u8 gUnknown_086204F9[] = _("using an inner tube."); -const u8 gUnknown_0862050E[] = _("I don't know. I'll try hard."); -const u8 gUnknown_0862052B[] = _("WATER POKéMON are buddies."); -const u8 gUnknown_08620546[] = _("It's not like I can't swim."); -const u8 gUnknown_08620562[] = _("I just like my inner tube."); -const u8 gUnknown_0862057D[] = _("We split our duties."); -const u8 gUnknown_08620592[] = _("We like friendly POKéMON."); -const u8 gUnknown_086205AC[] = _("We enjoy POKéMON together"); -const u8 gUnknown_086205C6[] = _("as sister and brother."); -const u8 gUnknown_086205DD[] = _("I finish with power moves!"); -const u8 gUnknown_086205F8[] = _("A mix of different types."); -const u8 gUnknown_08620612[] = _("I aim to become the ultimate"); -const u8 gUnknown_0862062F[] = _("TRAINER!"); -const u8 gUnknown_08620638[] = _("Exploit the foe's weakness."); -const u8 gUnknown_08620654[] = _("Balance is crucial."); -const u8 gUnknown_08620668[] = _("My goal is to become the"); -const u8 gUnknown_08620681[] = _("POKéMON CHAMPION."); -const u8 gUnknown_08620693[] = _("Upset the opponent."); -const u8 gUnknown_086206A7[] = _("Type doesn't matter."); -const u8 gUnknown_086206BC[] = _("I'm a top student at the"); -const u8 gUnknown_086206D5[] = _("TRAINER'S SCHOOL."); -const u8 gUnknown_086206E7[] = _("Slow, steady suffering."); -const u8 gUnknown_086206FF[] = _("Scary to meet at night."); -const u8 gUnknown_08620717[] = _("I see things that others"); -const u8 gUnknown_08620730[] = _("can't see..."); -const u8 gUnknown_0862073D[] = _("Anything to win."); -const u8 gUnknown_0862074E[] = _("Gorgeous type!"); -const u8 gUnknown_0862075D[] = _("I have a pool specially for"); -const u8 gUnknown_08620779[] = _("my POKéMON at home."); -const u8 gUnknown_0862078D[] = _("You'll fall under my spell!"); -const u8 gUnknown_086207A9[] = _("Mature WATER type."); -const u8 gUnknown_086207BC[] = _("I dream of cruising around"); -const u8 gUnknown_086207D7[] = _("the world on a luxury liner."); -const u8 gUnknown_086207F4[] = _("I'll lead you astray."); -const u8 gUnknown_0862080A[] = _("Cute, of course."); -const u8 gUnknown_0862081B[] = _("I love the SAFARI ZONE."); -const u8 gUnknown_08620833[] = _("I seem to end up there."); -const u8 gUnknown_0862084B[] = _("Strategy? Who needs it?"); -const u8 gUnknown_08620863[] = _("I spent big money on it!"); -const u8 gUnknown_0862087C[] = _("I, being rich, sleep in a"); -const u8 gUnknown_08620896[] = _("custom POKéMON bed."); -const u8 gUnknown_086208AA[] = _("Wrestle down with power."); -const u8 gUnknown_086208C3[] = _("Took all night to catch."); -const u8 gUnknown_086208DC[] = _("Big, burly, and buff"); -const u8 gUnknown_086208F1[] = _("POKéMON are the best..."); -const u8 gUnknown_08620909[] = _("Ram at full speed!"); -const u8 gUnknown_0862091C[] = _("Funky WATER type!"); -const u8 gUnknown_0862092E[] = _("If I can't be out swimming,"); -const u8 gUnknown_0862094A[] = _("I'll be pumping weights."); -const u8 gUnknown_08620963[] = _("Grand slam pummeling!"); -const u8 gUnknown_08620979[] = _("FIGHTING type."); -const u8 gUnknown_08620988[] = _("Not to brag, but I can bust"); -const u8 gUnknown_086209A4[] = _("ten roof tiles!"); -const u8 gUnknown_086209B4[] = _("Witness karate power!"); -const u8 gUnknown_086209CA[] = _("My partners in training!"); -const u8 gUnknown_086209E3[] = _("Let us discuss matters of"); -const u8 gUnknown_086209FD[] = _("the world with bare fists!"); -const u8 gUnknown_08620A18[] = _("Rock to stunning sounds!"); -const u8 gUnknown_08620A31[] = _("Electric-and-sound combo!"); -const u8 gUnknown_08620A4B[] = _("My compositions will shock"); -const u8 gUnknown_08620A66[] = _("you and stun you!"); -const u8 gUnknown_08620A78[] = _("I'll electrify you!"); -const u8 gUnknown_08620A8C[] = _("They're ELECTRIC!"); -const u8 gUnknown_08620A9E[] = _("I want to make people cry"); -const u8 gUnknown_08620AB8[] = _("with songs from my heart."); -const u8 gUnknown_08620AD2[] = _("Burn it all down!"); -const u8 gUnknown_08620AE4[] = _("Burn-inducing POKéMON."); -const u8 gUnknown_08620AFB[] = _("When you light a campfire,"); -const u8 gUnknown_08620B16[] = _("be sure there's some water."); -const u8 gUnknown_08620B32[] = _("Hang in and be tenacious!"); -const u8 gUnknown_08620B4C[] = _("I'll raise any POKéMON."); -const u8 gUnknown_08620B64[] = _("POKéMON raised in the wild"); -const u8 gUnknown_08620B7F[] = _("grow strong!"); -const u8 gUnknown_08620B8C[] = _("Our love lets us prevail."); -const u8 gUnknown_08620BA6[] = _("We've had them for years."); -const u8 gUnknown_08620BC0[] = _("Married 50 years, we've"); -const u8 gUnknown_08620BD8[] = _("devotedly raised POKéMON."); -const u8 gUnknown_08620BF2[] = _("Attack in waves!"); -const u8 gUnknown_08620C03[] = _("BUG POKéMON are cool."); -const u8 gUnknown_08620C19[] = _("I go into the forest every"); -const u8 gUnknown_08620C34[] = _("day to catch BUG POKéMON."); -const u8 gUnknown_08620C4E[] = _("Daze and confuse!"); -const u8 gUnknown_08620C60[] = _("Ones with weird powers."); -const u8 gUnknown_08620C78[] = _("I can see through exactly"); -const u8 gUnknown_08620C92[] = _("what you're thinking!"); -const u8 gUnknown_08620CA8[] = _("Battle at full power."); -const u8 gUnknown_08620CBE[] = _("POKéMON of many mysteries."); -const u8 gUnknown_08620CD9[] = _("When we spoke, I was really"); -const u8 gUnknown_08620CF5[] = _("using telepathy."); -const u8 gUnknown_08620D06[] = _("Calm and collected."); -const u8 gUnknown_08620D1A[] = _("POKéMON of distinction."); -const u8 gUnknown_08620D32[] = _("We enjoy a spot of tea"); -const u8 gUnknown_08620D49[] = _("every day. It's imported."); -const u8 gUnknown_08620D63[] = _("I use my head to battle."); -const u8 gUnknown_08620D7C[] = _("I love any kind of POKéMON!"); -const u8 gUnknown_08620D98[] = _("My daddy gives me spending"); -const u8 gUnknown_08620DB3[] = _("money if I ace a test."); -const u8 gUnknown_08620DCA[] = _("My knowledge rules!"); -const u8 gUnknown_08620DDE[] = _("Any smart POKéMON!"); -const u8 gUnknown_08620DF1[] = _("I want to be a POKéMON"); -const u8 gUnknown_08620E08[] = _("researcher in the future."); -const u8 gUnknown_08620E22[] = _("We talk it over first."); -const u8 gUnknown_08620E39[] = _("POKéMON that we both like."); -const u8 gUnknown_08620E54[] = _("We're senior and junior"); -const u8 gUnknown_08620E6C[] = _("students into POKéMON!"); -const u8 gUnknown_08620E83[] = _("Go for it, my dears!"); -const u8 gUnknown_08620E98[] = _("I have no likes or dislikes."); -const u8 gUnknown_08620EB5[] = _("While out shopping for"); -const u8 gUnknown_08620ECC[] = _("supper, I battle too."); -const u8 gUnknown_08620EE2[] = _("I battle with love!"); -const u8 gUnknown_08620EF6[] = _("A POKéMON raised with love!"); -const u8 gUnknown_08620F12[] = _("It's important to build"); -const u8 gUnknown_08620F2A[] = _("trust with your POKéMON."); -const u8 gUnknown_08620F43[] = _("I see through your moves!"); -const u8 gUnknown_08620F5D[] = _("The essence of FIGHTING."); -const u8 gUnknown_08620F76[] = _("I'm not ready to give way"); -const u8 gUnknown_08620F90[] = _("to the young yet!"); -const u8 gUnknown_08620FA2[] = _("Attack while defending."); -const u8 gUnknown_08620FBA[] = _("The FIGHTING type."); -const u8 gUnknown_08620FCD[] = _("Being old, I have my own"); -const u8 gUnknown_08620FE6[] = _("style of battling."); -const u8 gUnknown_08620FF9[] = _("I do what I can."); -const u8 gUnknown_0862100A[] = _("I use different types."); -const u8 gUnknown_08621021[] = _("I'm going to keep working"); -const u8 gUnknown_0862103B[] = _("until I beat a GYM LEADER."); -const u8 gUnknown_08621056[] = _("I battle patiently."); -const u8 gUnknown_0862106A[] = _("WATER POKéMON to battle!"); -const u8 gUnknown_08621083[] = _("I'm the world's only guy to"); -const u8 gUnknown_0862109F[] = _("catch a huge POKéMON!"); -const u8 gUnknown_086210B5[] = _("Exploit the environment!"); -const u8 gUnknown_086210CE[] = _("All hail the WATER type!"); -const u8 gUnknown_086210E7[] = _("I won't be beaten by some"); -const u8 gUnknown_08621101[] = _("beach bum SWIMMER!"); -const u8 gUnknown_08621114[] = _("Speed above all!"); -const u8 gUnknown_08621125[] = _("I use a speedy POKéMON."); -const u8 gUnknown_0862113D[] = _("A marathon is a challenge"); -const u8 gUnknown_08621157[] = _("against your own self."); -const u8 gUnknown_0862116E[] = _("Defense is crucial."); -const u8 gUnknown_08621182[] = _("My POKéMON is solid."); -const u8 gUnknown_08621197[] = _("I started this for dieting,"); -const u8 gUnknown_086211B3[] = _("but I got right into it."); -const u8 gUnknown_086211CC[] = _("Strike before stricken!"); -const u8 gUnknown_086211E4[] = _("A fast-running POKéMON!"); -const u8 gUnknown_086211FC[] = _("If you ran and ran, you'd"); -const u8 gUnknown_08621216[] = _("become one with the wind."); -const u8 gUnknown_08621230[] = _("All-out offensive!"); -const u8 gUnknown_08621243[] = _("WATER POKéMON rule!"); -const u8 gUnknown_08621257[] = _("I must swim over 6 miles"); -const u8 gUnknown_08621270[] = _("every day."); -const u8 gUnknown_0862127B[] = _("Push and push again!"); -const u8 gUnknown_08621290[] = _("The strength of STEEL."); -const u8 gUnknown_086212A7[] = _("If you're sweating, get"); -const u8 gUnknown_086212BF[] = _("fluids into you regularly."); -const u8 gUnknown_086212DA[] = _("Draw the power of WATER."); -const u8 gUnknown_086212F3[] = _("Toughened WATER POKéMON."); -const u8 gUnknown_0862130C[] = _("Training POKéMON is good,"); -const u8 gUnknown_08621326[] = _("but don't neglect yourself."); -const u8 gUnknown_08621342[] = _("It's about POKéMON power!"); -const u8 gUnknown_0862135C[] = _("See the power of DRAGONS!"); -const u8 gUnknown_08621376[] = _("I'll become legendary as the"); -const u8 gUnknown_08621393[] = _("strongest one day!"); -const u8 gUnknown_086213A6[] = _("I'll show you my technique!"); -const u8 gUnknown_086213C2[] = _("Elegantly wheeling BIRDS."); -const u8 gUnknown_086213DC[] = _("My BIRD POKéMON, deliver my"); -const u8 gUnknown_086213F8[] = _("love to that girl!"); -const u8 gUnknown_0862140B[] = _("You'll suffer from poison!"); -const u8 gUnknown_08621426[] = _("Poisonous POKéMON."); -const u8 gUnknown_08621439[] = _("I undertake training so"); -const u8 gUnknown_08621451[] = _("that I may become a ninja."); -const u8 gUnknown_0862146C[] = _("The first strike wins!"); -const u8 gUnknown_08621483[] = _("Speedy FIGHTING type."); -const u8 gUnknown_08621499[] = _("If my POKéMON lose,"); -const u8 gUnknown_086214AD[] = _("I'll carry on the fight!"); -const u8 gUnknown_086214C6[] = _("Go, go, my POKéMON!"); -const u8 gUnknown_086214DA[] = _("I'll raise anything."); -const u8 gUnknown_086214EF[] = _("UV rays are your skin's"); -const u8 gUnknown_08621507[] = _("enemy. Get protected."); -const u8 gUnknown_0862151D[] = _("No mercy!"); -const u8 gUnknown_08621527[] = _("Cute WATER POKéMON."); -const u8 gUnknown_0862153B[] = _("I have too many fans."); -const u8 gUnknown_08621551[] = _("I was interviewed on TV."); -const u8 gUnknown_0862156A[] = _("I think about this & that."); -const u8 gUnknown_08621585[] = _("I like all POKéMON."); -const u8 gUnknown_08621599[] = _("What lies beyond that"); -const u8 gUnknown_086215AF[] = _("yonder hill?"); -const u8 gUnknown_086215BC[] = _("We battle together!"); -const u8 gUnknown_086215D0[] = _("We train together!"); -const u8 gUnknown_086215E3[] = _("We like the same POKéMON,"); -const u8 gUnknown_086215FD[] = _("but different desserts."); -const u8 gUnknown_08621615[] = _("I force things with power!"); -const u8 gUnknown_08621630[] = _("WATER and FIGHTING types."); -const u8 gUnknown_0862164A[] = _("Seamen are rough spirits!"); -const u8 gUnknown_08621664[] = _("Any complaints?"); -const u8 gUnknown_08621674[] = _("Up for a fight anytime!"); -const u8 gUnknown_0862168C[] = _("WATER POKéMON are my faves!"); -const u8 gUnknown_086216A8[] = _("If you want to shout loud,"); -const u8 gUnknown_086216C3[] = _("suck in air with your belly!"); -const u8 gUnknown_086216E0[] = _("Protect POKéMON from harm."); -const u8 gUnknown_086216FB[] = _("I love rare POKéMON."); -const u8 gUnknown_08621710[] = _("I want to collect all the"); -const u8 gUnknown_0862172A[] = _("world's rare POKéMON."); -const u8 gUnknown_08621740[] = _("I count on power."); -const u8 gUnknown_08621752[] = _("POKéMON are my children."); -const u8 gUnknown_0862176B[] = _("It takes knowledge and"); -const u8 gUnknown_08621782[] = _("love to raise POKéMON."); -const u8 gUnknown_08621799[] = _("Full-on attack!"); -const u8 gUnknown_086217A9[] = _("Anything. I'll raise it."); -const u8 gUnknown_086217C2[] = _("I give them {POKEBLOCK}S for"); -const u8 gUnknown_086217D9[] = _("going after CONTEST titles."); -const u8 gUnknown_086217F5[] = _("I raise POKéMON with care."); -const u8 gUnknown_08621810[] = _("Fun-to-raise POKéMON."); -const u8 gUnknown_08621826[] = _("Treat every POKéMON you"); -const u8 gUnknown_0862183E[] = _("meet with respect."); -const u8 gUnknown_08621851[] = _("I believe in my POKéMON."); -const u8 gUnknown_0862186A[] = _("I like strong POKéMON."); -const u8 gUnknown_08621881[] = _("I'm training for rescue"); -const u8 gUnknown_08621899[] = _("work with my POKéMON."); -const u8 gUnknown_086218AF[] = _("Attack in waves!"); -const u8 gUnknown_086218C0[] = _("I use different types."); -const u8 gUnknown_086218D7[] = _("Those who destroy nature"); -const u8 gUnknown_086218F0[] = _("must never be forgiven!"); -const u8 gUnknown_08621908[] = _("I'll show you some guts!"); -const u8 gUnknown_08621921[] = _("Cute POKéMON are my faves!"); -const u8 gUnknown_0862193C[] = _("After a battle, I always"); -const u8 gUnknown_08621955[] = _("bathe with my POKéMON."); -const u8 gUnknown_0862196C[] = _("Lightning-fast attack!"); -const u8 gUnknown_08621983[] = _("BUG POKéMON are number 1!"); -const u8 gUnknown_0862199D[] = _("If you want to catch BUG"); -const u8 gUnknown_086219B6[] = _("POKéMON, wake up early."); -const u8 gUnknown_086219CE[] = _("I battle with power."); -const u8 gUnknown_086219E3[] = _("Hard-bodied POKéMON."); -const u8 gUnknown_086219F8[] = _("I've been planning a month"); -const u8 gUnknown_08621A13[] = _("for today's hike."); -const u8 gUnknown_08621A25[] = _("I like it hot!"); -const u8 gUnknown_08621A34[] = _("Hot POKéMON!"); -const u8 gUnknown_08621A41[] = _("As much as I love POKéMON,"); -const u8 gUnknown_08621A5C[] = _("I surely like hiking!"); -const u8 gUnknown_08621A72[] = _("Lovey-dovey strategy!"); -const u8 gUnknown_08621A88[] = _("Lovey-dovey POKéMON!"); -const u8 gUnknown_08621A9D[] = _("We're lovey-dovey!"); -const u8 gUnknown_08621AB0[] = _("Forever lovey-dovey!"); -const u8 gUnknown_08621AC5[] = _("We let it all hang out."); -const u8 gUnknown_08621ADD[] = _("The 1st POKéMON I caught."); -const u8 gUnknown_08621AF7[] = _("POKéMON and I have grown"); -const u8 gUnknown_08621B10[] = _("stronger together."); -const u8 gUnknown_08621B23[] = _("ROCK-type power attack."); -const u8 gUnknown_08621B3B[] = _("I prefer rock-hard POKéMON."); -const u8 gUnknown_08621B57[] = _("A LEADER of a big GYM bears"); -const u8 gUnknown_08621B73[] = _("a lot of responsibility."); -const u8 gUnknown_08621B8C[] = _("Direct physical action!"); -const u8 gUnknown_08621BA4[] = _("FIGHTING POKéMON rule!"); -const u8 gUnknown_08621BBB[] = _("The world awaits me as the"); -const u8 gUnknown_08621BD6[] = _("next big wave!"); -const u8 gUnknown_08621BE5[] = _("I choose to electrify."); -const u8 gUnknown_08621BFC[] = _("Get shocked by electricity!"); -const u8 gUnknown_08621C18[] = _("One must never throw a"); -const u8 gUnknown_08621C2F[] = _("match. Even I must not."); -const u8 gUnknown_08621C47[] = _("Battle aggressively."); -const u8 gUnknown_08621C5C[] = _("Burn with passion!"); -const u8 gUnknown_08621C6F[] = _("Completely wash away daily"); -const u8 gUnknown_08621C8A[] = _("fatigue in hot springs!"); -const u8 gUnknown_08621CA2[] = _("I flexibly adapt my style."); -const u8 gUnknown_08621CBD[] = _("Grown in a balanced manner."); -const u8 gUnknown_08621CD9[] = _("I walk the 30 minutes from"); -const u8 gUnknown_08621CF4[] = _("home to here every day."); -const u8 gUnknown_08621D0C[] = _("I take advantage of speed."); -const u8 gUnknown_08621D27[] = _("Graceful sky dancers."); -const u8 gUnknown_08621D3D[] = _("The ultimate would be to"); -const u8 gUnknown_08621D56[] = _("live as one with nature."); -const u8 gUnknown_08621D6F[] = _("We battle in cooperation."); -const u8 gUnknown_08621D89[] = _("Always friendly POKéMON."); -const u8 gUnknown_08621DA2[] = _("Papa has trouble telling"); -const u8 gUnknown_08621DBB[] = _("the two of us apart!"); -const u8 gUnknown_08621DD0[] = _("I use splendid waterpower."); -const u8 gUnknown_08621DEB[] = _("POKéMON of elegance!"); -const u8 gUnknown_08621E00[] = _("The adulation of beautiful"); -const u8 gUnknown_08621E1B[] = _("ladies fills me with energy!"); -const u8 gUnknown_08621E38[] = _("Offense over defense!"); -const u8 gUnknown_08621E4E[] = _("The DARK side's beauties."); -const u8 gUnknown_08621E68[] = _("They said I was a punk, but"); -const u8 gUnknown_08621E84[] = _("I'm one of the ELITE FOUR!"); -const u8 gUnknown_08621E9F[] = _("Confuse and confound."); -const u8 gUnknown_08621EB5[] = _("There's nothing definite."); -const u8 gUnknown_08621ECF[] = _("I wonder how my grandma at"); -const u8 gUnknown_08621EEA[] = _("MT. PYRE is doing?"); -const u8 gUnknown_08621EFD[] = _("I use items for help."); -const u8 gUnknown_08621F13[] = _("Flaming passion in icy cold!"); -const u8 gUnknown_08621F30[] = _("The ICE type can be better"); -const u8 gUnknown_08621F4B[] = _("trained in this hot land."); -const u8 gUnknown_08621F65[] = _("Harness strong abilities."); -const u8 gUnknown_08621F7F[] = _("The raw power of DRAGONS!"); -const u8 gUnknown_08621F99[] = _("I dedicate myself to the"); -const u8 gUnknown_08621FB2[] = _("POKéMON that saved me."); -const u8 gUnknown_08621FC9[] = _("Dignity and respect."); -const u8 gUnknown_08621FDE[] = _("I prefer POKéMON of grace."); -const u8 gUnknown_08621FF9[] = _("I represent beauty as"); -const u8 gUnknown_0862200F[] = _("well as intelligence."); - -const u8 *const gUnknown_08622028[][4] = -{ - { - gUnknown_08620390, gUnknown_086203AA, gUnknown_086203C2, gUnknown_086203DB - }, - { - gUnknown_086203F2, gUnknown_0862040D, gUnknown_08620428, gUnknown_08620444 - }, - { - gUnknown_08620456, gUnknown_0862046C, gUnknown_08620481, gUnknown_0862049C - }, - { - gUnknown_086204B0, gUnknown_086204C7, gUnknown_086204DD, gUnknown_086204F9 - }, - { - gUnknown_0862050E, gUnknown_0862052B, gUnknown_08620546, gUnknown_08620562 - }, - { - gUnknown_0862057D, gUnknown_08620592, gUnknown_086205AC, gUnknown_086205C6 - }, - { - gUnknown_086205DD, gUnknown_086205F8, gUnknown_08620612, gUnknown_0862062F - }, - { - gUnknown_08620638, gUnknown_08620654, gUnknown_08620668, gUnknown_08620681 - }, - { - gUnknown_08620693, gUnknown_086206A7, gUnknown_086206BC, gUnknown_086206D5 - }, - { - gUnknown_086206E7, gUnknown_086206FF, gUnknown_08620717, gUnknown_08620730 - }, - { - gUnknown_0862073D, gUnknown_0862074E, gUnknown_0862075D, gUnknown_08620779 - }, - { - gUnknown_0862078D, gUnknown_086207A9, gUnknown_086207BC, gUnknown_086207D7 - }, - { - gUnknown_086207F4, gUnknown_0862080A, gUnknown_0862081B, gUnknown_08620833 - }, - { - gUnknown_0862084B, gUnknown_08620863, gUnknown_0862087C, gUnknown_08620896 - }, - { - gUnknown_086208AA, gUnknown_086208C3, gUnknown_086208DC, gUnknown_086208F1 - }, - { - gUnknown_08620909, gUnknown_0862091C, gUnknown_0862092E, gUnknown_0862094A - }, - { - gUnknown_08620963, gUnknown_08620979, gUnknown_08620988, gUnknown_086209A4 - }, - { - gUnknown_086209B4, gUnknown_086209CA, gUnknown_086209E3, gUnknown_086209FD - }, - { - gUnknown_08620A18, gUnknown_08620A31, gUnknown_08620A4B, gUnknown_08620A66 - }, - { - gUnknown_08620A78, gUnknown_08620A8C, gUnknown_08620A9E, gUnknown_08620AB8 - }, - { - gUnknown_08620AD2, gUnknown_08620AE4, gUnknown_08620AFB, gUnknown_08620B16 - }, - { - gUnknown_08620B32, gUnknown_08620B4C, gUnknown_08620B64, gUnknown_08620B7F - }, - { - gUnknown_08620B8C, gUnknown_08620BA6, gUnknown_08620BC0, gUnknown_08620BD8 - }, - { - gUnknown_08620BF2, gUnknown_08620C03, gUnknown_08620C19, gUnknown_08620C34 - }, - { - gUnknown_08620C4E, gUnknown_08620C60, gUnknown_08620C78, gUnknown_08620C92 - }, - { - gUnknown_08620CA8, gUnknown_08620CBE, gUnknown_08620CD9, gUnknown_08620CF5 - }, - { - gUnknown_08620D06, gUnknown_08620D1A, gUnknown_08620D32, gUnknown_08620D49 - }, - { - gUnknown_08620D63, gUnknown_08620D7C, gUnknown_08620D98, gUnknown_08620DB3 - }, - { - gUnknown_08620DCA, gUnknown_08620DDE, gUnknown_08620DF1, gUnknown_08620E08 - }, - { - gUnknown_08620E22, gUnknown_08620E39, gUnknown_08620E54, gUnknown_08620E6C - }, - { - gUnknown_08620E83, gUnknown_08620E98, gUnknown_08620EB5, gUnknown_08620ECC - }, - { - gUnknown_08620EE2, gUnknown_08620EF6, gUnknown_08620F12, gUnknown_08620F2A - }, - { - gUnknown_08620F43, gUnknown_08620F5D, gUnknown_08620F76, gUnknown_08620F90 - }, - { - gUnknown_08620FA2, gUnknown_08620FBA, gUnknown_08620FCD, gUnknown_08620FE6 - }, - { - gUnknown_08620FF9, gUnknown_0862100A, gUnknown_08621021, gUnknown_0862103B - }, - { - gUnknown_08621056, gUnknown_0862106A, gUnknown_08621083, gUnknown_0862109F - }, - { - gUnknown_086210B5, gUnknown_086210CE, gUnknown_086210E7, gUnknown_08621101 - }, - { - gUnknown_08621114, gUnknown_08621125, gUnknown_0862113D, gUnknown_08621157 - }, - { - gUnknown_0862116E, gUnknown_08621182, gUnknown_08621197, gUnknown_086211B3 - }, - { - gUnknown_086211CC, gUnknown_086211E4, gUnknown_086211FC, gUnknown_08621216 - }, - { - gUnknown_08621230, gUnknown_08621243, gUnknown_08621257, gUnknown_08621270 - }, - { - gUnknown_0862127B, gUnknown_08621290, gUnknown_086212A7, gUnknown_086212BF - }, - { - gUnknown_086212DA, gUnknown_086212F3, gUnknown_0862130C, gUnknown_08621326 - }, - { - gUnknown_08621342, gUnknown_0862135C, gUnknown_08621376, gUnknown_08621393 - }, - { - gUnknown_086213A6, gUnknown_086213C2, gUnknown_086213DC, gUnknown_086213F8 - }, - { - gUnknown_0862140B, gUnknown_08621426, gUnknown_08621439, gUnknown_08621451 - }, - { - gUnknown_0862146C, gUnknown_08621483, gUnknown_08621499, gUnknown_086214AD - }, - { - gUnknown_086214C6, gUnknown_086214DA, gUnknown_086214EF, gUnknown_08621507 - }, - { - gUnknown_0862151D, gUnknown_08621527, gUnknown_0862153B, gUnknown_08621551 - }, - { - gUnknown_0862156A, gUnknown_08621585, gUnknown_08621599, gUnknown_086215AF - }, - { - gUnknown_086215BC, gUnknown_086215D0, gUnknown_086215E3, gUnknown_086215FD - }, - { - gUnknown_08621615, gUnknown_08621630, gUnknown_0862164A, gUnknown_08621664 - }, - { - gUnknown_08621674, gUnknown_0862168C, gUnknown_086216A8, gUnknown_086216C3 - }, - { - gUnknown_086216E0, gUnknown_086216FB, gUnknown_08621710, gUnknown_0862172A - }, - { - gUnknown_08621740, gUnknown_08621752, gUnknown_0862176B, gUnknown_08621782 - }, - { - gUnknown_08621799, gUnknown_086217A9, gUnknown_086217C2, gUnknown_086217D9 - }, - { - gUnknown_086217F5, gUnknown_08621810, gUnknown_08621826, gUnknown_0862183E - }, - { - gUnknown_08621851, gUnknown_0862186A, gUnknown_08621881, gUnknown_08621899 - }, - { - gUnknown_086218AF, gUnknown_086218C0, gUnknown_086218D7, gUnknown_086218F0 - }, - { - gUnknown_08621908, gUnknown_08621921, gUnknown_0862193C, gUnknown_08621955 - }, - { - gUnknown_0862196C, gUnknown_08621983, gUnknown_0862199D, gUnknown_086219B6 - }, - { - gUnknown_086219CE, gUnknown_086219E3, gUnknown_086219F8, gUnknown_08621A13 - }, - { - gUnknown_08621A25, gUnknown_08621A34, gUnknown_08621A41, gUnknown_08621A5C - }, - { - gUnknown_08621A72, gUnknown_08621A88, gUnknown_08621A9D, gUnknown_08621AB0 - }, - { - gUnknown_08621AC5, gUnknown_08621ADD, gUnknown_08621AF7, gUnknown_08621B10 - }, - { - gUnknown_08621B23, gUnknown_08621B3B, gUnknown_08621B57, gUnknown_08621B73 - }, - { - gUnknown_08621B8C, gUnknown_08621BA4, gUnknown_08621BBB, gUnknown_08621BD6 - }, - { - gUnknown_08621BE5, gUnknown_08621BFC, gUnknown_08621C18, gUnknown_08621C2F - }, - { - gUnknown_08621C47, gUnknown_08621C5C, gUnknown_08621C6F, gUnknown_08621C8A - }, - { - gUnknown_08621CA2, gUnknown_08621CBD, gUnknown_08621CD9, gUnknown_08621CF4 - }, - { - gUnknown_08621D0C, gUnknown_08621D27, gUnknown_08621D3D, gUnknown_08621D56 - }, - { - gUnknown_08621D6F, gUnknown_08621D89, gUnknown_08621DA2, gUnknown_08621DBB - }, - { - gUnknown_08621DD0, gUnknown_08621DEB, gUnknown_08621E00, gUnknown_08621E1B - }, - { - gUnknown_08621E38, gUnknown_08621E4E, gUnknown_08621E68, gUnknown_08621E84 - }, - { - gUnknown_08621E9F, gUnknown_08621EB5, gUnknown_08621ECF, gUnknown_08621EEA - }, - { - gUnknown_08621EFD, gUnknown_08621F13, gUnknown_08621F30, gUnknown_08621F4B - }, - { - gUnknown_08621F65, gUnknown_08621F7F, gUnknown_08621F99, gUnknown_08621FB2 - }, - { - gUnknown_08621FC9, gUnknown_08621FDE, gUnknown_08621FF9, gUnknown_0862200F - }, -}; diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c index 47eb6ef3d..cbeda6c00 100755 --- a/src/pokenav_unk_3.c +++ b/src/pokenav_unk_3.c @@ -37,7 +37,7 @@ static u32 sub_81CACF8(struct Pokenav3Struct *); static u32 sub_81CAD20(s32); static bool32 sub_81CB1D0(void); -#include "data/text/trainers_eye_messages.h" +#include "data/text/match_call_messages.h" const u8 gUnknown_08622508[] = {0, 2}; const u8 gUnknown_0862250A[] = {0, 1, 2, 0, 0, 0}; @@ -365,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) From 54c635683c1d2573885987acc4e99728f38e5131 Mon Sep 17 00:00:00 2001 From: garak Date: Mon, 29 Jul 2019 13:03:03 -0400 Subject: [PATCH 11/14] fix some more pokenav --- src/pokenav_unk_2.c | 18 +++++++++--------- src/pokenav_unk_3.c | 2 +- src/pokenav_unk_9.c | 1 - 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index 09416c31f..60aa5ea5e 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -50,16 +50,16 @@ const struct BgTemplate gUnknown_08620194[3] = } }; -u32 sub_81C9C6C(int); -u32 sub_81C9CA8(int); -u32 sub_81C9D44(int); -u32 sub_81C9DD8(int); -u32 sub_81C9E58(int); -u32 sub_81C9EC8(int); -u32 sub_81C9EF8(int); -u32 sub_81C9F28(int); +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[])(int) = +u32 (*const gUnknown_086201A0[])(s32) = { NULL, sub_81C9C6C, diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c index cbeda6c00..bf3d82df7 100755 --- a/src/pokenav_unk_3.c +++ b/src/pokenav_unk_3.c @@ -40,7 +40,7 @@ static bool32 sub_81CB1D0(void); #include "data/text/match_call_messages.h" const u8 gUnknown_08622508[] = {0, 2}; -const u8 gUnknown_0862250A[] = {0, 1, 2, 0, 0, 0}; +const u8 gUnknown_0862250A[] = {0, 1, 2}; bool32 sub_81CAAE8(void) { diff --git a/src/pokenav_unk_9.c b/src/pokenav_unk_9.c index 780f184f1..2927d7211 100644 --- a/src/pokenav_unk_9.c +++ b/src/pokenav_unk_9.c @@ -69,7 +69,6 @@ const struct WindowTemplate gUnknown_086237D4 = .baseBlock = 20 }; -// TODO: these are probably not strings? 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}"); From 0c35ec2f7bcdc9dafcb9f7807f2d3a70a0642543 Mon Sep 17 00:00:00 2001 From: garak Date: Mon, 29 Jul 2019 13:40:47 -0400 Subject: [PATCH 12/14] fix build --- src/pokenav_unk_7.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/pokenav_unk_7.c b/src/pokenav_unk_7.c index 97bdd8b3b..90b677fa7 100644 --- a/src/pokenav_unk_7.c +++ b/src/pokenav_unk_7.c @@ -116,8 +116,6 @@ const LoopedTask gUnknown_08623384[] = sub_81CE700 }; -static u8 gUnknown_030012BC; - struct Pokenav7Struct { u32 loopedTaskId; From bcb17af751a6286e3cd7b4cc1439cb62a72f843c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 30 Jul 2019 13:48:12 +0200 Subject: [PATCH 13/14] Clean up contest link 80f57c4 file --- src/battle_anim_effects_3.c | 2 +- src/contest_link_80F57C4.c | 916 +++++++----------------------------- 2 files changed, 172 insertions(+), 746 deletions(-) diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index ab765b8c1..07cbe0ffb 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -4322,7 +4322,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) diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index bae7859b5..a0a29f0ad 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -71,15 +71,10 @@ struct ContestLinkUnk14 u8 unk12; }; -struct ContestLinkUnk4 -{ - struct ContestLinkUnk14 unk0[4]; -}; - struct ContestLink80F57C4 { struct ContestLinkUnk0 *unk0; - struct ContestLinkUnk4 *unk4; + struct ContestLinkUnk14 (*unk4)[4]; u8 *unk8; u8 *unkC[4]; u8 *unk1C; @@ -205,9 +200,7 @@ void sub_80F57C4(void) void sub_80F591C(void) { int i, j; - s8 var0; - s8 var1; - int var2; + s8 var0, var1; u16 tile1, tile2; LZDecompressVram(gUnknown_08C19588, (void *)BG_CHAR_ADDR(0)); @@ -228,11 +221,7 @@ void sub_80F591C(void) if (j < var0) tile1 += 2; - var2 = var1; - if (var1 < 0) - var2 = -var2; - - if (j < var2) + if (j < abs(var1)) { tile2 = 0x60A4; if (var1 < 0) @@ -719,7 +708,7 @@ static void sub_80F6404(u8 taskId) if (top > 80) top = 80; - gBattle_WIN0V = (top << 8) | (160 - top);; + gBattle_WIN0V = (top << 8) | (160 - top); if (top == 80) gTasks[taskId].data[0]++; } @@ -737,8 +726,7 @@ static void sub_80F6404(u8 taskId) static void sub_80F66B4(u8 taskId) { - int i; - u16 nationalDexNum; + int i, nationalDexNum; if (gMain.newKeys & A_BUTTON) { @@ -859,13 +847,13 @@ static void sub_80F68F0(u8 taskId) void sub_80F69B8(u16 species, u8 monIndex, u8 srcOffset, u8 useDmaNow, u32 personality) { - u8 frameNum; const u8 *iconPtr; - u16 var0; - u16 var1; + u16 var0, var1, frameNum; - u8 *contestPlayerMonIndex = &gContestPlayerMonIndex; // fake match - frameNum = (monIndex == *contestPlayerMonIndex) ? 1 : 0; + if (monIndex == gContestPlayerMonIndex) + frameNum = 1; + else + frameNum = 0; iconPtr = GetMonIconPtr(species, personality, frameNum); iconPtr += srcOffset * 0x200 + 0x80; @@ -892,13 +880,12 @@ static void LoadAllContestMonIcons(u8 srcOffset, u8 useDmaNow) static void sub_80F6A9C(void) { - int i; - register u16 species asm("r0"); + int i, species; for (i = 0; i < 4; i++) { - species = GetIconSpecies(gContestMons[i].species, 0); - LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[species]], i * 0x10 + 0xA0, 0x20); + species = gContestMons[i].species; + LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[GetIconSpecies(species, 0)]], i * 0x10 + 0xA0, 0x20); } } @@ -1335,11 +1322,11 @@ static void sub_80F6F40(struct Sprite *sprite) static void sub_80F6F68(struct Sprite *sprite) { int i; - s16 var0; - var0 = (u16)sprite->data[7] + (u16)sprite->data[6]; - sprite->pos1.x -= var0 >> 8; - sprite->data[7] = (sprite->data[6] + sprite->data[7]) & 0xFF; + s16 delta = sprite->data[7] + sprite->data[6]; + sprite->pos1.x -= delta >> 8; + sprite->data[7] += sprite->data[6]; + sprite->data[7] &= 0xFF; if (sprite->pos1.x < sprite->data[4]) sprite->pos1.x = sprite->data[4]; @@ -1366,11 +1353,12 @@ static void sub_80F6FDC(struct Sprite *sprite) static void sub_80F7014(struct Sprite *sprite) { int i; - s16 var0; + s16 delta; - var0 = (u16)sprite->data[7] + (u16)sprite->data[6]; - sprite->pos1.x -= var0 >> 8; - sprite->data[7] = (sprite->data[6] + sprite->data[7]) & 0xFF; + delta = sprite->data[7] + sprite->data[6]; + sprite->pos1.x -= delta >> 8; + sprite->data[7] += sprite->data[6]; + sprite->data[7] &= 0xFF; for (i = 0; i < 3; i++) { struct Sprite *sprite2 = &gSprites[sprite->data[i]]; @@ -1487,14 +1475,11 @@ static void sub_80F71C8(void) CopyToBgTilemapBufferRect_ChangePalette(2, gUnknown_0203A034->unkC[2], 0, 0, 32, 4, palette); } -// fakematching? u8 sub_80F7310(u8 monIndex, u8 arg1) { - u32 var0; - u32 var1; + u32 var0 = gContestMonConditions[monIndex] << 16; + u32 var1 = var0 / 0x3F; - var0 = gContestMonConditions[monIndex] << 16; - var1 = var0 / 0x3F; if (var1 & 0xFFFF) var1 += 0x10000; @@ -1510,8 +1495,7 @@ u8 sub_80F7310(u8 monIndex, u8 arg1) s8 sub_80F7364(u8 arg0, u8 arg1) { - u32 r4; - u32 r2; + u32 r4, r2; s16 val; s8 ret; @@ -1607,9 +1591,10 @@ static void sub_80F75A8(struct Sprite *sprite) } else { - s16 delta = (u16)sprite->data[1] + 0x600; + s16 delta = sprite->data[1] + 0x600; sprite->pos1.x -= delta >> 8; - sprite->data[1] = (sprite->data[1] + 0x600) & 0xFF; + sprite->data[1] += 0x600; + sprite->data[1] &= 0xFF; if (sprite->pos1.x < 120) sprite->pos1.x = 120; @@ -1624,9 +1609,10 @@ static void sub_80F75A8(struct Sprite *sprite) static void sub_80F7620(struct Sprite *sprite) { - s16 delta = (u16)sprite->data[1] + 0x600; + s16 delta = sprite->data[1] + 0x600; sprite->pos1.x -= delta >> 8; - sprite->data[1] = (sprite->data[1] + 0x600) & 0xFF; + sprite->data[1] += + 0x600; + sprite->data[1] &= 0xFF; if (sprite->pos1.x < -32) { sprite->callback = SpriteCallbackDummy; @@ -1657,14 +1643,15 @@ static void sub_80F7670(u8 taskId) void sub_80F7768(struct Sprite *sprite) { - register s16 var0 asm("r1"); + s16 delta; sprite->data[3] += sprite->data[0]; sprite->pos2.x = Sin(sprite->data[3] >> 8, sprite->data[1]); - var0 = sprite->data[4] + sprite->data[2]; - sprite->pos1.x += var0 >> 8; - var0 = var0 & 0xFF; - sprite->data[4] = var0; + delta = sprite->data[4] + sprite->data[2]; + sprite->pos1.x += delta >> 8; + sprite->data[4] += sprite->data[2]; + sprite->data[4] &= 0xff; + sprite->pos1.y++; if (gUnknown_0203A034->unk0->unk9) sprite->invisible = 1; @@ -1695,705 +1682,145 @@ static void sub_80F7824(u8 taskId) } } -// static void sub_80F7880(void) -// { -// int i; -// int var0; -// int var1; -// int var2; -// int var3; -// u32 var4; -// int var5; -// int var6; -// s16 var7; -// s16 var8; -// s16 r2; - -// r2 = gUnknown_02039F08[0]; -// for (i = 1; i < 4; i++) -// { -// if (r2 < gUnknown_02039F08[i]) -// r2 = gUnknown_02039F08[i]; -// } - -// if (r2 < 0) -// { -// r2 = gUnknown_02039F08[0]; -// for (i = 1; i < 4; i++) -// { -// if (r2 > gUnknown_02039F08[i]) -// r2 = gUnknown_02039F08[i]; -// } -// } - -// // _080F78E4 -// for (i = 0; i < 4; i++) -// { -// var0 = gContestMonConditions[i] * 1000; -// var1 = r2; -// if (r2 < 0) -// var1 = -var1; - -// var2 = var0 / var1; -// if (var2 % 10 > 4) -// var2 += 10; - -// gUnknown_0203A034->unk4->unk0[i].unk0 = var2 / 10; -// var3 = gUnknown_02039F18[i]; -// if (var3 < 0) -// var3 = -var3; - -// var0 = var3 * 1000; -// var1 = r2; -// if (r2 < 0) -// var1 = -var1; - -// var2 = var0 / var1; -// if (var2 % 10 > 4) -// var2 += 10; - -// // _080F7966 -// gUnknown_0203A034->unk4->unk0[i].unk4 = var2 / 10; -// if (gUnknown_02039F18[i] < 0) -// gUnknown_0203A034->unk4->unk0[i].unk10 = 1; - -// var4 = gUnknown_0203A034->unk4->unk0[i].unk0 * 22528 / 100; -// if ((var4 & 0xFF) > 0x7F) -// var4 += 0x100; - -// gUnknown_0203A034->unk4->unk0[i].unk8 = var4 >> 8; -// var4 = gUnknown_0203A034->unk4->unk0[i].unk4 * 22528 / 100; -// if ((var4 & 0xFF) > 0x7F) -// var4 += 0x100; - -// gUnknown_0203A034->unk4->unk0[i].unkC = var4 >> 8; -// gUnknown_0203A034->unk4->unk0[i].unk11 = sub_80F7310(i, 1); -// var5 = sub_80F7364(i, 1); -// if (var5 < 0) -// var5 = -var5; - -// gUnknown_0203A034->unk4->unk0[i].unk12 = var5; -// if (gContestFinalStandings[i]) -// { -// var7 = gUnknown_0203A034->unk4->unk0[i].unk8; -// var8 = gUnknown_0203A034->unk4->unk0[i].unkC; -// if (gUnknown_0203A034->unk4->unk0[i].unk10) -// var8 = -var8; - -// if (var7 + var8 == 88) -// { -// if (var8 > 0) -// gUnknown_0203A034->unk4->unk0[i].unkC--; -// else if (var7 > 0) -// gUnknown_0203A034->unk4->unk0[i].unk8--; -// } -// } -// } -// } - -NAKED static void sub_80F7880(void) { - asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - ldr r0, =gUnknown_02039F08\n\ - ldrh r2, [r0]\n\ - adds r4, r0, 0\n\ - adds r3, r4, 0x2\n\ - movs r0, 0x2\n\ - mov r8, r0\n\ -_080F7898:\n\ - lsls r0, r2, 16\n\ - asrs r0, 16\n\ - movs r5, 0\n\ - ldrsh r1, [r3, r5]\n\ - cmp r0, r1\n\ - bge _080F78A6\n\ - ldrh r2, [r3]\n\ -_080F78A6:\n\ - adds r3, 0x2\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - add r8, r0\n\ - mov r1, r8\n\ - cmp r1, 0\n\ - bge _080F7898\n\ - lsls r0, r2, 16\n\ - str r0, [sp]\n\ - cmp r0, 0\n\ - bge _080F78E4\n\ - ldrh r2, [r4]\n\ - adds r3, r4, 0x2\n\ - movs r4, 0x2\n\ - mov r8, r4\n\ -_080F78C4:\n\ - lsls r0, r2, 16\n\ - asrs r0, 16\n\ - movs r5, 0\n\ - ldrsh r1, [r3, r5]\n\ - cmp r0, r1\n\ - ble _080F78D2\n\ - ldrh r2, [r3]\n\ -_080F78D2:\n\ - adds r3, 0x2\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - add r8, r0\n\ - lsls r1, r2, 16\n\ - str r1, [sp]\n\ - mov r4, r8\n\ - cmp r4, 0\n\ - bge _080F78C4\n\ -_080F78E4:\n\ - movs r5, 0\n\ - mov r8, r5\n\ - mov r10, r5\n\ -_080F78EA:\n\ - ldr r0, =gContestMonConditions\n\ - mov r1, r8\n\ - lsls r7, r1, 1\n\ - adds r0, r7, r0\n\ - movs r2, 0\n\ - ldrsh r1, [r0, r2]\n\ - lsls r0, r1, 5\n\ - subs r0, r1\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - ldr r4, [sp]\n\ - asrs r5, r4, 16\n\ - adds r1, r5, 0\n\ - cmp r5, 0\n\ - bge _080F790C\n\ - negs r1, r5\n\ -_080F790C:\n\ - bl __divsi3\n\ - adds r4, r0, 0\n\ - movs r1, 0xA\n\ - bl __modsi3\n\ - cmp r0, 0x4\n\ - ble _080F791E\n\ - adds r4, 0xA\n\ -_080F791E:\n\ - ldr r0, =gUnknown_0203A034\n\ - mov r9, r0\n\ - ldr r0, [r0]\n\ - ldr r0, [r0, 0x4]\n\ - mov r1, r10\n\ - adds r6, r1, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - str r0, [r6]\n\ - ldr r0, =gUnknown_02039F18\n\ - adds r7, r0\n\ - movs r2, 0\n\ - ldrsh r1, [r7, r2]\n\ - cmp r1, 0\n\ - bge _080F7942\n\ - negs r1, r1\n\ -_080F7942:\n\ - lsls r0, r1, 5\n\ - subs r0, r1\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r1, r5, 0\n\ - cmp r1, 0\n\ - bge _080F7954\n\ - negs r1, r1\n\ -_080F7954:\n\ - bl __divsi3\n\ - adds r4, r0, 0\n\ - movs r1, 0xA\n\ - bl __modsi3\n\ - cmp r0, 0x4\n\ - ble _080F7966\n\ - adds r4, 0xA\n\ -_080F7966:\n\ - adds r0, r4, 0\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - str r0, [r6, 0x4]\n\ - movs r4, 0\n\ - ldrsh r0, [r7, r4]\n\ - cmp r0, 0\n\ - bge _080F797C\n\ - movs r0, 0x1\n\ - strb r0, [r6, 0x10]\n\ -_080F797C:\n\ - mov r5, r9\n\ - ldr r0, [r5]\n\ - ldr r0, [r0, 0x4]\n\ - mov r1, r10\n\ - adds r4, r1, r0\n\ - ldr r1, [r4]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - subs r0, r1\n\ - lsls r0, 11\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - movs r5, 0xFF\n\ - ands r0, r5\n\ - cmp r0, 0x7F\n\ - bls _080F79A8\n\ - movs r2, 0x80\n\ - lsls r2, 1\n\ - adds r1, r2\n\ -_080F79A8:\n\ - lsrs r0, r1, 8\n\ - str r0, [r4, 0x8]\n\ - ldr r1, [r4, 0x4]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - subs r0, r1\n\ - lsls r0, 11\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - ands r0, r5\n\ - cmp r0, 0x7F\n\ - bls _080F79CC\n\ - movs r5, 0x80\n\ - lsls r5, 1\n\ - adds r1, r5\n\ -_080F79CC:\n\ - lsrs r0, r1, 8\n\ - str r0, [r4, 0xC]\n\ - mov r0, r8\n\ - lsls r4, r0, 24\n\ - lsrs r4, 24\n\ - adds r0, r4, 0\n\ - movs r1, 0x1\n\ - bl sub_80F7310\n\ - mov r2, r9\n\ - ldr r1, [r2]\n\ - ldr r1, [r1, 0x4]\n\ - add r1, r10\n\ - strb r0, [r1, 0x11]\n\ - adds r0, r4, 0\n\ - movs r1, 0x1\n\ - bl sub_80F7364\n\ - mov r4, r9\n\ - ldr r1, [r4]\n\ - ldr r1, [r1, 0x4]\n\ - add r1, r10\n\ - lsls r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0\n\ - bge _080F7A02\n\ - negs r0, r0\n\ -_080F7A02:\n\ - strb r0, [r1, 0x12]\n\ - ldr r0, =gContestFinalStandings\n\ - add r0, r8\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _080F7A60\n\ - mov r5, r9\n\ - ldr r0, [r5]\n\ - ldr r0, [r0, 0x4]\n\ - mov r2, r10\n\ - adds r1, r2, r0\n\ - ldr r5, [r1, 0x8]\n\ - ldrh r3, [r1, 0x8]\n\ - ldr r4, [r1, 0xC]\n\ - ldrh r2, [r1, 0xC]\n\ - ldrb r0, [r1, 0x10]\n\ - cmp r0, 0\n\ - beq _080F7A2C\n\ - lsls r0, r2, 16\n\ - negs r0, r0\n\ - lsrs r2, r0, 16\n\ -_080F7A2C:\n\ - lsls r0, r3, 16\n\ - asrs r3, r0, 16\n\ - lsls r0, r2, 16\n\ - asrs r2, r0, 16\n\ - adds r0, r3, r2\n\ - cmp r0, 0x58\n\ - bne _080F7A60\n\ - cmp r2, 0\n\ - ble _080F7A58\n\ - subs r0, r4, 0x1\n\ - str r0, [r1, 0xC]\n\ - b _080F7A60\n\ - .pool\n\ -_080F7A58:\n\ - cmp r3, 0\n\ - ble _080F7A60\n\ - subs r0, r5, 0x1\n\ - str r0, [r1, 0x8]\n\ -_080F7A60:\n\ - movs r4, 0x14\n\ - add r10, r4\n\ - movs r5, 0x1\n\ - add r8, r5\n\ - mov r0, r8\n\ - cmp r0, 0x3\n\ - bgt _080F7A70\n\ - b _080F78EA\n\ -_080F7A70:\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0"); + int i, r4; + u32 r1; + s16 r2; + s8 var; + + r2 = gUnknown_02039F08[0]; + for (i = 1; i < 4; i++) + { + if (r2 < gUnknown_02039F08[i]) + r2 = gUnknown_02039F08[i]; + } + + if (r2 < 0) + { + r2 = gUnknown_02039F08[0]; + for (i = 1; i < 4; i++) + { + if (r2 > gUnknown_02039F08[i]) + r2 = gUnknown_02039F08[i]; + } + } + + for (i = 0; i < 4; i++) + { + r4 = (gContestMonConditions[i] * 1000) / abs(r2); + if (r4 % 10 > 4) + r4 += 10; + (*gUnknown_0203A034->unk4)[i].unk0 = r4 / 10; + + r4 = (abs(gUnknown_02039F18[i]) * 1000) / abs(r2); + if (r4 % 10 > 4) + r4 += 10; + (*gUnknown_0203A034->unk4)[i].unk4 = r4 / 10; + + if (gUnknown_02039F18[i] < 0) + (*gUnknown_0203A034->unk4)[i].unk10 = 1; + + r1 = ((*gUnknown_0203A034->unk4)[i].unk0 * 22528) / 100; + if ((r1 & 0xFF) > 0x7F) + r1 += 0x100; + (*gUnknown_0203A034->unk4)[i].unk8 = r1 >> 8; + + r1 = ((*gUnknown_0203A034->unk4)[i].unk4 * 22528) / 100; + if ((r1 & 0xFF) > 0x7F) + r1 += 0x100; + (*gUnknown_0203A034->unk4)[i].unkC = r1 >> 8; + + (*gUnknown_0203A034->unk4)[i].unk11 = sub_80F7310(i, 1); + var = sub_80F7364(i, 1); + (*gUnknown_0203A034->unk4)[i].unk12 = abs(var); + + if (gContestFinalStandings[i]) + { + s16 var1 = (*gUnknown_0203A034->unk4)[i].unk8; + s16 var2 = (*gUnknown_0203A034->unk4)[i].unkC; + + if ((*gUnknown_0203A034->unk4)[i].unk10) + var2 *= -1; + + if (var1 + var2 == 88) + { + if (var2 > 0) + (*gUnknown_0203A034->unk4)[i].unkC--; + else if (var1 > 0) + (*gUnknown_0203A034->unk4)[i].unk8--; + } + } + } } -// static void sub_80F7A80(u8 arg0, u8 arg1) -// { -// int i; -// u8 taskId; -// u8 sp8, spC; - -// sp8 = 0; -// spC = 0; -// if (!arg0) -// { -// u32 var0; -// for (i = 0; i < 4; i++) -// { -// int var1 = gUnknown_0203A034->unk4->unk0[i].unk11; -// if (arg1 < var1) -// { -// int x = var1 + 19; -// x -= arg1; -// x--; -// FillBgTilemapBufferRect_Palette0(1, 0x60B3, x, i * 3 + 5, 1, 1); -// taskId = CreateTask(sub_80F7CA8, 10); -// var0 = ((gUnknown_0203A034->unk4->unk0[i].unk8 << 16) / gUnknown_0203A034->unk4->unk0[i].unk11) * (arg1 + 1); -// var0 &= 0xFFFF; -// if (var0 > 0x7FFF) -// var0 += 0x10000; - -// gTasks[taskId].data[0] = i; -// gTasks[taskId].data[1] = var0 >> 16; -// gUnknown_0203A034->unk0->unk14++; -// sp8++; -// } -// } -// } -// else -// { -// u32 var0; -// for (i = 0; i < 4; i++) -// { -// int tile; -// s8 var1 = gUnknown_0203A034->unk4->unk0[i].unk12; -// tile = gUnknown_0203A034->unk4->unk0[i].unk10 ? 0x60A5 : 0x60A3; -// if (arg1 < var1) -// { -// int thing = ((s8)arg1 - 19); -// int x = var1 - thing; -// x--; -// FillBgTilemapBufferRect_Palette0(1, tile, x, i * 3 + 6, 1, 1); -// taskId = CreateTask(sub_80F7CA8, 10); -// var0 = ((gUnknown_0203A034->unk4->unk0[i].unkC << 16) / gUnknown_0203A034->unk4->unk0[i].unk12) * (arg1 + 1); -// var0 &= 0xFFFF; -// if (var0 > 0x7FFF) -// var0 += 0x10000; - -// gTasks[taskId].data[0] = i; -// if (gUnknown_0203A034->unk4->unk0[i].unk10) -// { -// gTasks[taskId].data[2] = 1; -// spC++; -// } -// else -// { -// sp8++; -// } - -// if (gUnknown_0203A034->unk4->unk0[i].unk10) -// gTasks[taskId].data[1] = gUnknown_0203A034->unk4->unk0[i].unk8 - (var0 >> 16); -// else -// gTasks[taskId].data[1] = gUnknown_0203A034->unk4->unk0[i].unk8 + (var0 >> 16); - -// gUnknown_0203A034->unk0->unk14++; -// } -// } -// } - -// if (spC) -// PlaySE(SE_PIN); - -// if (sp8) -// PlaySE(SE_BAN); -// } - -NAKED static void sub_80F7A80(u8 arg0, u8 arg1) { - asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x14\n\ - lsls r0, 24\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r8, r1\n\ - movs r1, 0\n\ - str r1, [sp, 0x8]\n\ - movs r3, 0\n\ - str r3, [sp, 0xC]\n\ - cmp r0, 0\n\ - bne _080F7B5C\n\ - mov r9, r3\n\ - ldr r4, =gUnknown_0203A034\n\ - mov r10, r4\n\ - movs r7, 0xA0\n\ - lsls r7, 19\n\ - movs r6, 0\n\ -_080F7AAC:\n\ - mov r1, r10\n\ - ldr r0, [r1]\n\ - ldr r0, [r0, 0x4]\n\ - adds r0, r6, r0\n\ - ldrb r2, [r0, 0x11]\n\ - cmp r8, r2\n\ - bcs _080F7B2E\n\ - adds r2, 0x13\n\ - mov r3, r8\n\ - subs r2, r3\n\ - subs r2, 0x1\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - lsrs r3, r7, 24\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - str r0, [sp, 0x4]\n\ - ldr r1, =0x000060b3\n\ - bl FillBgTilemapBufferRect_Palette0\n\ - ldr r0, =sub_80F7CA8\n\ - movs r1, 0xA\n\ - bl CreateTask\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - mov r0, r10\n\ - ldr r4, [r0]\n\ - ldr r1, [r4, 0x4]\n\ - adds r1, r6, r1\n\ - ldr r0, [r1, 0x8]\n\ - lsls r0, 16\n\ - ldrb r1, [r1, 0x11]\n\ - bl __udivsi3\n\ - mov r1, r8\n\ - adds r1, 0x1\n\ - adds r3, r0, 0\n\ - muls r3, r1\n\ - ldr r0, =0x0000ffff\n\ - ands r0, r3\n\ - ldr r1, =0x00007fff\n\ - cmp r0, r1\n\ - bls _080F7B0A\n\ - movs r1, 0x80\n\ - lsls r1, 9\n\ - adds r3, r1\n\ -_080F7B0A:\n\ - ldr r1, =gTasks\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r0, r1\n\ - mov r1, r9\n\ - strh r1, [r0, 0x8]\n\ - lsrs r1, r3, 16\n\ - strh r1, [r0, 0xA]\n\ - ldr r1, [r4]\n\ - ldrb r0, [r1, 0x14]\n\ - adds r0, 0x1\n\ - strb r0, [r1, 0x14]\n\ - ldr r0, [sp, 0x8]\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x8]\n\ -_080F7B2E:\n\ - movs r3, 0xC0\n\ - lsls r3, 18\n\ - adds r7, r3\n\ - adds r6, 0x14\n\ - movs r4, 0x1\n\ - add r9, r4\n\ - mov r0, r9\n\ - cmp r0, 0x3\n\ - ble _080F7AAC\n\ - b _080F7C7E\n\ - .pool\n\ -_080F7B5C:\n\ - movs r1, 0\n\ - mov r9, r1\n\ - mov r10, r1\n\ - movs r3, 0xC0\n\ - lsls r3, 19\n\ - str r3, [sp, 0x10]\n\ -_080F7B68:\n\ - ldr r4, =gUnknown_0203A034\n\ - ldr r0, [r4]\n\ - ldr r0, [r0, 0x4]\n\ - add r0, r10\n\ - ldrb r2, [r0, 0x12]\n\ - ldrb r0, [r0, 0x10]\n\ - ldr r1, =0x000060a3\n\ - cmp r0, 0\n\ - beq _080F7B7C\n\ - adds r1, 0x2\n\ -_080F7B7C:\n\ - lsls r0, r2, 24\n\ - asrs r0, 24\n\ - cmp r8, r0\n\ - bge _080F7C64\n\ - mov r3, r8\n\ - lsls r2, r3, 24\n\ - asrs r2, 24\n\ - subs r2, 0x13\n\ - subs r2, r0, r2\n\ - subs r2, 0x1\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - ldr r4, [sp, 0x10]\n\ - lsrs r3, r4, 24\n\ - movs r7, 0x1\n\ - str r7, [sp]\n\ - str r7, [sp, 0x4]\n\ - movs r0, 0x1\n\ - bl FillBgTilemapBufferRect_Palette0\n\ - ldr r0, =sub_80F7CA8\n\ - movs r1, 0xA\n\ - bl CreateTask\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - ldr r0, =gUnknown_0203A034\n\ - ldr r6, [r0]\n\ - ldr r1, [r6, 0x4]\n\ - add r1, r10\n\ - ldr r0, [r1, 0xC]\n\ - lsls r0, 16\n\ - ldrb r1, [r1, 0x12]\n\ - bl __udivsi3\n\ - mov r1, r8\n\ - adds r1, 0x1\n\ - adds r3, r0, 0\n\ - muls r3, r1\n\ - ldr r0, =0x0000ffff\n\ - ands r0, r3\n\ - ldr r1, =0x00007fff\n\ - cmp r0, r1\n\ - bls _080F7BDA\n\ - movs r1, 0x80\n\ - lsls r1, 9\n\ - adds r3, r1\n\ -_080F7BDA:\n\ - ldr r1, =gTasks\n\ - lsls r2, r5, 2\n\ - adds r0, r2, r5\n\ - lsls r0, 3\n\ - adds r4, r0, r1\n\ - mov r0, r9\n\ - strh r0, [r4, 0x8]\n\ - ldr r0, [r6, 0x4]\n\ - add r0, r10\n\ - ldrb r0, [r0, 0x10]\n\ - adds r6, r1, 0\n\ - cmp r0, 0\n\ - beq _080F7C1C\n\ - strh r7, [r4, 0xC]\n\ - ldr r0, [sp, 0xC]\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0xC]\n\ - b _080F7C26\n\ - .pool\n\ -_080F7C1C:\n\ - ldr r0, [sp, 0x8]\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x8]\n\ -_080F7C26:\n\ - ldr r1, =gUnknown_0203A034\n\ - ldr r0, [r1]\n\ - ldr r0, [r0, 0x4]\n\ - mov r4, r10\n\ - adds r1, r4, r0\n\ - ldrb r0, [r1, 0x10]\n\ - ldr r4, =gUnknown_0203A034\n\ - cmp r0, 0\n\ - beq _080F7C4C\n\ - adds r0, r2, r5\n\ - lsls r0, 3\n\ - adds r0, r6\n\ - lsrs r2, r3, 16\n\ - ldr r1, [r1, 0x8]\n\ - subs r1, r2\n\ - b _080F7C58\n\ - .pool\n\ -_080F7C4C:\n\ - adds r0, r2, r5\n\ - lsls r0, 3\n\ - adds r0, r6\n\ - lsrs r2, r3, 16\n\ - ldr r1, [r1, 0x8]\n\ - adds r1, r2\n\ -_080F7C58:\n\ - strh r1, [r0, 0xA]\n\ - ldr r0, [r4]\n\ - ldr r1, [r0]\n\ - ldrb r0, [r1, 0x14]\n\ - adds r0, 0x1\n\ - strb r0, [r1, 0x14]\n\ -_080F7C64:\n\ - movs r0, 0x14\n\ - add r10, r0\n\ - ldr r1, [sp, 0x10]\n\ - movs r3, 0xC0\n\ - lsls r3, 18\n\ - adds r1, r3\n\ - str r1, [sp, 0x10]\n\ - movs r4, 0x1\n\ - add r9, r4\n\ - mov r0, r9\n\ - cmp r0, 0x3\n\ - bgt _080F7C7E\n\ - b _080F7B68\n\ -_080F7C7E:\n\ - ldr r1, [sp, 0xC]\n\ - cmp r1, 0\n\ - beq _080F7C8A\n\ - movs r0, 0x16\n\ - bl PlaySE\n\ -_080F7C8A:\n\ - ldr r3, [sp, 0x8]\n\ - cmp r3, 0\n\ - beq _080F7C96\n\ - movs r0, 0x15\n\ - bl PlaySE\n\ -_080F7C96:\n\ - add sp, 0x14\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0"); + int i, taskId; + u32 var0; + u8 sp8 = 0, spC = 0; + + if (!arg0) + { + for (i = 0; i < 4; i++) + { + u8 unk = (*gUnknown_0203A034->unk4)[i].unk11; + if (arg1 < unk) + { + FillBgTilemapBufferRect_Palette0(1, 0x60B3, ((19 + unk) - arg1) - 1, i * 3 + 5, 1, 1); + taskId = CreateTask(sub_80F7CA8, 10); + + var0 = (((*gUnknown_0203A034->unk4)[i].unk8 << 16) / (*gUnknown_0203A034->unk4)[i].unk11) * (arg1 + 1); + if ((var0 & 0xFFFF) > 0x7FFF) + var0 += 0x10000; + + gTasks[taskId].data[0] = i; + gTasks[taskId].data[1] = var0 >> 16; + gUnknown_0203A034->unk0->unk14++; + sp8++; + } + } + } + else + { + for (i = 0; i < 4; i++) + { + s8 unk = (*gUnknown_0203A034->unk4)[i].unk12; + u32 tile = (*gUnknown_0203A034->unk4)[i].unk10 ? 0x60A5 : 0x60A3; + if (arg1 < unk) + { + FillBgTilemapBufferRect_Palette0(1, tile, ((19 + unk) - arg1) - 1, i * 3 + 6, 1, 1); + taskId = CreateTask(sub_80F7CA8, 10); + + var0 = (((*gUnknown_0203A034->unk4)[i].unkC << 16) / (*gUnknown_0203A034->unk4)[i].unk12) * (arg1 + 1); + if ((var0 & 0xFFFF) > 0x7FFF) + var0 += 0x10000; + + gTasks[taskId].data[0] = i; + if ((*gUnknown_0203A034->unk4)[i].unk10) + { + gTasks[taskId].data[2] = 1; + spC++; + } + else + { + sp8++; + } + + if ((*gUnknown_0203A034->unk4)[i].unk10) + gTasks[taskId].data[1] = -(var0 >> 16) + (*gUnknown_0203A034->unk4)[i].unk8 ; + else + gTasks[taskId].data[1] = (var0 >> 16) + (*gUnknown_0203A034->unk4)[i].unk8; + + gUnknown_0203A034->unk0->unk14++; + } + } + } + + if (spC) + PlaySE(SE_BOO); + if (sp8) + PlaySE(SE_PIN); } void sub_80F7CA8(u8 taskId) @@ -2624,8 +2051,7 @@ void sub_80F8290(void) void sub_80F82B4(void) { - u8 i; - u8 count; + u8 i, count; for (i = 0, count = 0; i < 4; i++) { From 7133f5db9441df75b14a48aea199174b2aa68e95 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 30 Jul 2019 15:08:49 +0200 Subject: [PATCH 14/14] Clean up battle anim effects file --- src/battle_anim_effects_1.c | 39 ++++++++++++++++--------------------- src/battle_anim_effects_3.c | 26 ++++++++----------------- 2 files changed, 25 insertions(+), 40 deletions(-) diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 15b73a1e0..b3a67a509 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -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; diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 07cbe0ffb..5d79a9e6b 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -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;