From b7cfa9d36537b8ae53012eb88d59f8b842fb35c4 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 21:39:51 -0500 Subject: [PATCH 01/11] Move more contest constants into C --- data/contest.s | 138 ------------------- include/graphics.h | 8 ++ include/sprite.h | 20 +++ ld_script.txt | 1 + src/contest.c | 337 +++++++++++++++++++++++++++++++++++++++++++-- 5 files changed, 351 insertions(+), 153 deletions(-) diff --git a/data/contest.s b/data/contest.s index 48bfa10803..a0aaa62f2f 100644 --- a/data/contest.s +++ b/data/contest.s @@ -6,144 +6,6 @@ .section .rodata .align 2, 0 -gUnknown_08587A6C:: @ 8587A6C - .byte 0x24, 0x4c, 0x74, 0x9c - -gUnknown_08587A70:: @ 8587A70 - .byte 0x24, 0x4c, 0x74, 0x9c - - .align 2 -gUnknown_08587A74:: @ 8587A74 - obj_tiles gTiles_8C19450, 0x0020, 0x4e20 - - .align 2 -gOamData_8587A7C:: @ 8587A7C - .2byte 0x0000 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gSpriteAffineAnim_8587A84:: @ 8587A84 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_8587A94:: @ 8587A94 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, -20, 20 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_8587AAC:: @ 8587AAC - obj_rot_scal_anim_frame 0x38, 0x38, 0, 0 - obj_rot_scal_anim_frame 0xA, 0xA, 20, 20 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_8587AC4:: @ 8587AC4 - .4byte gSpriteAffineAnim_8587A84 - .4byte gSpriteAffineAnim_8587A94 - .4byte gSpriteAffineAnim_8587AAC - - .align 2 -gSpriteTemplate_8587AD0:: @ 8587AD0 - spr_template 0x4e20, 0xabe0, gOamData_8587A7C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8587AC4, SpriteCallbackDummy - - .align 2 -gUnknown_08587AE8:: @ 8587AE8 - obj_tiles gContestNextTurnGfx, 0x0100, 0x4e22 - obj_tiles gContestNextTurnGfx, 0x0100, 0x4e23 - obj_tiles gContestNextTurnGfx, 0x0100, 0x4e24 - obj_tiles gContestNextTurnGfx, 0x0100, 0x4e25 - - .align 2 -gUnknown_08587B08:: @ 8587B08 - obj_pal gContestPal, 0x4e22 - - .align 2 -gOamData_8587B10:: @ 8587B10 - .2byte 0x4000 - .2byte 0x4000 - .2byte 0x0000 - - .align 2 -gSpriteTemplate_8587B18:: @ 8587B18 - spr_template 0x4e22, 0x4e22, gOamData_8587B10, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - spr_template 0x4e23, 0x4e22, gOamData_8587B10, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - spr_template 0x4e24, 0x4e22, gOamData_8587B10, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - spr_template 0x4e25, 0x4e22, gOamData_8587B10, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gSubspriteTable_8587B78:: @ 8587B78 - subsprite -28, -4, 0, 0, 32x8 - subsprite 4, -4, 0, 4, 32x8 - - .align 2 -gSubspriteTables_8587B80:: @ 8587B80 - .4byte 2, gSubspriteTable_8587B78 - - .align 2 -gUnknown_08587B88:: @ 8587B88 - obj_tiles gUnknown_08C19168, 0x0180, 0xabe1 - - .align 2 -gOamData_8587B90:: @ 8587B90 - .2byte 0x0000 - .2byte 0x4000 - .2byte 0x0000 - - .align 2 -gSpriteTemplate_8587B98:: @ 8587B98 - spr_template 0xabe1, 0xabe0, gOamData_8587B90, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_08587BB0:: @ 8587BB0 - obj_tiles gContestApplauseGfx, 0x0400, 0xabe2 - - .align 2 -gUnknown_08587BB8:: @ 8587BB8 - obj_pal gContestPal, 0xabe2 - - .align 2 -gOamData_8587BC0:: @ 8587BC0 - .2byte 0x4000 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gSpriteTemplate_8587BC8:: @ 8587BC8 - spr_template 0xabe2, 0xabe2, gOamData_8587BC0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gOamData_8587BE0:: @ 8587BE0 - .2byte 0x0000 - .2byte 0xC000 - .2byte 0x2C00 - - .align 2 -gSpriteTemplate_8587BE8:: @ 8587BE8 - spr_template 0x4e21, 0x4e21, gOamData_8587BE0, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_08587C00:: @ 8587C00 - obj_tiles gContestJudgeGfx, 0x0800, 0x4e21 - - .align 2 -gUnknown_08587C08:: @ 8587C08 - obj_tiles gContestJudgeSymbolsGfx, 0x0380, 0xabe0 - - .align 2 -gUnknown_08587C10:: @ 8587C10 - obj_pal gContest3Pal, 0xabe0 - - .align 2 -gSpriteTemplate_8587C18:: @ 8587C18 - spr_template 0xabe0, 0xabe0, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_08587C30:: @ 8587C30 - .incbin "graphics/unknown/unknown_587C30.gbapal" - @ 8587C50 .include "data/text/contest_text_pointers.inc" diff --git a/include/graphics.h b/include/graphics.h index c651268ca5..063f71ee5e 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4765,6 +4765,14 @@ extern const u32 gUnknown_08C16FA8[]; extern const u32 gUnknown_08C16E90[]; extern const u32 gUnknown_08C17170[]; extern const u32 gUnknown_08C17980[]; +extern const u32 gTiles_8C19450[]; +extern const u32 gContestNextTurnGfx[]; +extern const u16 gContestPal[]; +extern const u32 gUnknown_08C19168[]; +extern const u32 gContestApplauseGfx[]; +extern const u32 gContestJudgeGfx[]; +extern const u32 gContestJudgeSymbolsGfx[]; +extern const u32 gContest3Pal[]; extern const u32 gUnknown_08D95E00[]; extern const u32 gUnknown_08D960D0[]; diff --git a/include/sprite.h b/include/sprite.h index 32bdd9c55e..10c4145b0a 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -151,6 +151,26 @@ enum SUBSPRITES_IGNORE_PRIORITY, // on but priority is ignored }; +#define OAM_SIZE_0 (0) +#define OAM_SIZE_1 (1 << 0) +#define OAM_SIZE_2 (1 << 1) +#define OAM_SIZE_3 (1 << 2) + +#define SPRITE_SIZE_8x8 .shape = ST_OAM_SQUARE, .size = OAM_SIZE_0 +#define SPRITE_SIZE_16x16 .shape = ST_OAM_SQUARE, .size = OAM_SIZE_1 +#define SPRITE_SIZE_32x32 .shape = ST_OAM_SQUARE, .size = OAM_SIZE_2 +#define SPRITE_SIZE_64x64 .shape = ST_OAM_SQUARE, .size = OAM_SIZE_3 + +#define SPRITE_SIZE_16x8 .shape = ST_OAM_H_RECTANGLE, .size = OAM_SIZE_0 +#define SPRITE_SIZE_32x8 .shape = ST_OAM_H_RECTANGLE, .size = OAM_SIZE_1 +#define SPRITE_SIZE_32x16 .shape = ST_OAM_H_RECTANGLE, .size = OAM_SIZE_2 +#define SPRITE_SIZE_64x32 .shape = ST_OAM_H_RECTANGLE, .size = OAM_SIZE_3 + +#define SPRITE_SIZE_8x16 .shape = ST_OAM_V_RECTANGLE, .size = OAM_SIZE_0 +#define SPRITE_SIZE_8x32 .shape = ST_OAM_V_RECTANGLE, .size = OAM_SIZE_1 +#define SPRITE_SIZE_16x32 .shape = ST_OAM_V_RECTANGLE, .size = OAM_SIZE_2 +#define SPRITE_SIZE_32x64 .shape = ST_OAM_V_RECTANGLE, .size = OAM_SIZE_3 + struct Subsprite { s8 x; // was u16 in R/S diff --git a/ld_script.txt b/ld_script.txt index e60badcc20..b87bb34f3e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -461,6 +461,7 @@ SECTIONS { src/item_menu_icons.o(.rodata); src/battle_anim_80D51AC.o(.rodata); src/item.o(.rodata); + src/contest.o(.rodata); data/contest.o(.rodata); src/shop.o(.rodata); src/fldeff_escalator.o(.rodata); diff --git a/src/contest.c b/src/contest.c index 114a1fb695..241d38e48f 100644 --- a/src/contest.c +++ b/src/contest.c @@ -218,7 +218,6 @@ EWRAM_DATA u8 gUnknown_02039F5D = 0; // IWRAM common vars. u32 gContestRngValue; -extern const u16 gUnknown_08587C30[]; extern const struct BgTemplate gUnknown_08587F34[4]; extern const struct WindowTemplate gUnknown_08587F44[]; extern const u8 *const gUnknown_08587D90[]; @@ -250,25 +249,11 @@ extern const u8 gText_CDot[]; extern const u8 *const gUnknown_08587E10[]; extern const struct ContestPokemon gContestOpponents[96]; extern const u8 gUnknown_085898A4[96]; -extern const struct CompressedSpriteSheet gUnknown_08587C00; -extern const struct SpriteTemplate gSpriteTemplate_8587BE8; -extern const struct CompressedSpriteSheet gUnknown_08587C08; -extern const struct CompressedSpritePalette gUnknown_08587C10; -extern const struct SpriteTemplate gSpriteTemplate_8587C18; extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; extern const union AffineAnimCmd *const gUnknown_082FF694[]; extern const u8 *const gContestEffectDescriptionPointers[]; -extern const struct SpriteSheet gUnknown_08587A74; -extern const u8 gUnknown_08587A6C[]; extern const struct SpriteTemplate gSpriteTemplate_8587AD0; -extern const struct SpritePalette gUnknown_08587B08; -extern const struct CompressedSpriteSheet gUnknown_08587AE8[]; extern const struct SpriteTemplate gSpriteTemplate_8587B18[]; -extern const u8 gUnknown_08587A70[]; -extern const struct SubspriteTable gSubspriteTables_8587B80[]; -extern const struct CompressedSpriteSheet gUnknown_08587BB0; -extern const struct SpritePalette gUnknown_08587BB8; -extern const struct SpriteTemplate gSpriteTemplate_8587BC8; extern void (*const gContestEffectFuncs[])(void); extern const s8 gContestExcitementTable[][5]; extern const struct ContestWinner gUnknown_08587FA4[]; @@ -276,6 +261,328 @@ extern const struct CompressedSpriteSheet gUnknown_08589904[]; extern const struct SpritePalette gUnknown_08589924[]; extern const struct SpriteTemplate gSpriteTemplate_858998C[]; +static const u8 gUnknown_08587A6C[] = +{ + 0x24, 0x4C, 0x74, 0x9C +}; + +static const u8 gUnknown_08587A70[] = +{ + 0x24, 0x4C, 0x74, 0x9C +}; + +static const struct SpriteSheet gUnknown_08587A74 = +{ + .data = gTiles_8C19450, + .size = 0x20, + .tag = 0x4E20 +}; + +static const struct OamData gOamData_8587A7C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +static const union AffineAnimCmd gSpriteAffineAnim_8587A84[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_8587A94[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0xFFF6, 0xFFF6, -20, 20), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd gSpriteAffineAnim_8587AAC[] = +{ + AFFINEANIMCMD_FRAME(0x38, 0x38, 0, 0), + AFFINEANIMCMD_FRAME(10, 10, 20, 20), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd* const gSpriteAffineAnimTable_8587AC4[] = +{ + gSpriteAffineAnim_8587A84, + gSpriteAffineAnim_8587A94, + gSpriteAffineAnim_8587AAC +}; + +static const struct SpriteTemplate gSpriteTemplate_8587AD0 = +{ + .tileTag = 0x4E20, + .paletteTag = 0xABE0, + .oam = &gOamData_8587A7C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_8587AC4, + .callback = SpriteCallbackDummy +}; + +static const struct CompressedSpriteSheet gUnknown_08587AE8[] = +{ + { + .data = gContestNextTurnGfx, + .size = 0x100, + .tag = 0x4E22 + }, + { + .data = gContestNextTurnGfx, + .size = 0x100, + .tag = 0x4E23 + }, + { + .data = gContestNextTurnGfx, + .size = 0x100, + .tag = 0x4E24 + }, + { + .data = gContestNextTurnGfx, + .size = 0x100, + .tag = 0x4E25 + } +}; + +static const struct SpritePalette gUnknown_08587B08 = +{ + .data = gContestPal, + .tag = 0x4E22 +}; + +static const struct OamData gOamData_8587B10 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct SpriteTemplate gSpriteTemplate_8587B18[] = +{ + { + .tileTag = 0x4E22, + .paletteTag = 0x4E22, + .oam = &gOamData_8587B10, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 0x4E23, + .paletteTag = 0x4E22, + .oam = &gOamData_8587B10, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 0x4E24, + .paletteTag = 0x4E22, + .oam = &gOamData_8587B10, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 0x4E25, + .paletteTag = 0x4E22, + .oam = &gOamData_8587B10, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + } +}; + +const struct Subsprite gSubspriteTable_8587B78[] = +{ + { + .x = -28, + .y = -4, + SPRITE_SIZE_32x8, + .tileOffset = 0, + .priority = 0 + }, + { + .x = 4, + .y = -4, + SPRITE_SIZE_32x8, + .tileOffset = 4, + .priority = 0 + } +}; + +const struct SubspriteTable gSubspriteTables_8587B80[] = +{ + { + .subspriteCount = 2, + .subsprites = gSubspriteTable_8587B78 + } +}; + +const struct CompressedSpriteSheet gUnknown_08587B88 = +{ + .data = gUnknown_08C19168, + .size = 0x180, + .tag = 0xABE1 +}; + +const struct OamData gOamData_8587B90 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct SpriteTemplate gSpriteTemplate_8587B98 = +{ + .tileTag = 0xABE1, + .paletteTag = 0xABE0, + .oam = &gOamData_8587B90, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct CompressedSpriteSheet gUnknown_08587BB0 = +{ + .data = gContestApplauseGfx, + .size = 0x400, + .tag = 0xABE2 +}; + +const struct SpritePalette gUnknown_08587BB8 = +{ + .data = gContestPal, + .tag = 0xABE2 +}; + +const struct OamData gOamData_8587BC0 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct SpriteTemplate gSpriteTemplate_8587BC8 = +{ + .tileTag = 0xABE2, + .paletteTag = 0xABE2, + .oam = &gOamData_8587BC0, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct OamData gOamData_8587BE0 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 3, + .paletteNum = 2, + .affineParam = 0 +}; + +const struct SpriteTemplate gSpriteTemplate_8587BE8 = +{ + .tileTag = 0x4E21, + .paletteTag = 0x4E21, + .oam = &gOamData_8587BE0, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct CompressedSpriteSheet gUnknown_08587C00 = +{ + .data = gContestJudgeGfx, + .size = 0x800, + .tag = 0x4E21 +}; + +const struct CompressedSpriteSheet gUnknown_08587C08 = +{ + .data = gContestJudgeSymbolsGfx, + .size = 0x380, + .tag = 0xABE0 +}; + +const struct CompressedSpritePalette gUnknown_08587C10 = +{ + .data = gContest3Pal, + .tag = 0xABE0 +}; + +const struct SpriteTemplate gSpriteTemplate_8587C18 = +{ + .tileTag = 0xABE0, + .paletteTag = 0xABE0, + .oam = &gUnknown_0852490C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const u16 gUnknown_08587C30[] = INCBIN_U16("graphics/unknown/unknown_587C30.gbapal"); + static void TaskDummy1(u8 taskId) { } From 88c37818800e1216dc7d40cfefa0a9ab5f249671 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 22:33:40 -0500 Subject: [PATCH 02/11] Move text pointer tables into C --- data/contest.s | 136 --------- data/text/contest_text_pointers.inc | 78 ------ src/contest.c | 6 +- src/data/contest_text_tables.h | 414 ++++++++++++++++++++++++++++ 4 files changed, 416 insertions(+), 218 deletions(-) delete mode 100644 data/text/contest_text_pointers.inc create mode 100644 src/data/contest_text_tables.h diff --git a/data/contest.s b/data/contest.s index a0aaa62f2f..aba96d54f3 100644 --- a/data/contest.s +++ b/data/contest.s @@ -6,142 +6,6 @@ .section .rodata .align 2, 0 -@ 8587C50 - .include "data/text/contest_text_pointers.inc" - - .align 2 -gUnknown_08587D5C:: @ 8587D5C - .4byte gText_0827D5C1 - .4byte gText_0827D5DC - .4byte gText_0827D600 - .4byte gText_0827D612 - .4byte gText_0827D612 - .4byte gText_0827D62D - .4byte gText_0827D654 - .4byte gText_0827D67E - .4byte gText_0827D69C - .4byte gText_0827D6BA - .4byte gText_0827D6E5 - .4byte gText_0827D706 - .4byte gText_0827D71D - - .align 2 -gUnknown_08587D90:: @ 8587D90 - .4byte gText_0827D743 - .4byte gText_0827D764 - .4byte gText_0827D785 - .4byte gText_0827D7A5 - .4byte gText_0827D7C8 - .4byte gText_0827D7E8 - .4byte gText_0827D831 - .4byte gText_0827D855 - .4byte gText_0827D830 - .4byte gText_0827D872 - .4byte gText_0827D88F - .4byte gText_0827D8B5 - .4byte gText_0827D8E4 - .4byte gText_0827D8FE - .4byte gText_0827D926 - .4byte gText_0827D947 - .4byte gText_0827D961 - .4byte gText_0827D986 - .4byte gText_0827D9B1 - .4byte gText_0827D9D9 - .4byte gText_0827DA03 - .4byte gText_0827DA31 - .4byte gText_0827DA5B - .4byte gText_0827DA85 - .4byte gText_0827DAB2 - .4byte gText_0827DADA - .4byte gText_0827DB03 - .4byte gText_0827D830 - .4byte gText_0827D830 - .4byte gText_0827D830 - .4byte gText_0827DB1F - .4byte gText_0827DB4E - - .align 2 -gUnknown_08587E10:: @ 8587E10 - .4byte gText_827DB75 - .4byte gText_827DBB0 - .4byte gText_827DBE0 - .4byte gText_827DC0F - .4byte gText_827DC45 - .4byte gText_827DC7C - .4byte gText_827DCB4 - .4byte gText_827DCE7 - .4byte gText_827DD12 - .4byte gText_827DD3D - .4byte gText_827DD6F - .4byte gText_827DD8E - .4byte gText_827DDC7 - .4byte gText_827DDF2 - .4byte gText_827DE14 - .4byte gText_827DE44 - .4byte gText_827DE73 - .4byte gText_827DEA5 - .4byte gText_827DED9 - .4byte gText_827DF02 - .4byte gText_827DF3A - .4byte gText_827DF63 - .4byte gText_827DF8C - .4byte gText_827DFB8 - .4byte gText_827DFE2 - .4byte gText_827E00C - .4byte gText_827E02F - .4byte gText_827E05F - .4byte gText_827E08B - .4byte gText_827E0B5 - .4byte gText_827E0DD - .4byte gText_827E107 - .4byte gText_827E143 - .4byte gText_827E17F - .4byte gText_827E1BB - .4byte gText_827E1F3 - .4byte gText_827E220 - .4byte gText_827E254 - .4byte gText_827E289 - .4byte gText_827E2C5 - .4byte gText_0827E2FE - .4byte gText_0827E32E - .4byte gText_0827E35B - .4byte gText_0827E38D - .4byte gText_0827E3C1 - .4byte gText_0827E3EB - .4byte gText_0827E416 - .4byte gText_0827E448 - .4byte gText_0827E473 - .4byte gText_0827E4A6 - .4byte gText_0827E4D5 - .4byte gText_0827E504 - .4byte gText_0827E531 - .4byte gText_0827E55A - .4byte gText_0827E5B2 - .4byte gText_0827E5D0 - .4byte gText_0827E606 - .4byte gText_0827E638 - .4byte gText_0827E658 - .4byte gText_0827E68B - .4byte gText_0827E6C4 - .4byte gText_0827E7BA - - .align 2 -gUnknown_08587F08:: @ 8587F08 - .4byte gText_0827E85F - .4byte gText_0827E868 - .4byte gText_0827E86F - .4byte gText_0827E878 - .4byte gText_0827E882 - - .align 2 -gUnknown_08587F1C:: @ 8587F1C - .4byte gText_0827E894 - .4byte gText_0827E89E - .4byte gText_0827E8AA - .4byte gText_0827E8B4 - .4byte gText_0827E8BF - .4byte gText_0827E8CA - .align 2 gUnknown_08587F34:: @ 8587F34 .4byte 0x00000580, 0x000015e9, 0x000005c2, 0x000031a3 diff --git a/data/text/contest_text_pointers.inc b/data/text/contest_text_pointers.inc deleted file mode 100644 index f9cf4b70ee..0000000000 --- a/data/text/contest_text_pointers.inc +++ /dev/null @@ -1,78 +0,0 @@ - .align 2 -gContestEffectDescriptionPointers:: @ 8587C50 - .4byte gContestEffect00hDescription - .4byte gContestEffect01hDescription - .4byte gContestEffect02hDescription - .4byte gContestEffect03hDescription - .4byte gContestEffect04hDescription - .4byte gContestEffect05hDescription - .4byte gContestEffect06hDescription - .4byte gContestEffect07hDescription - .4byte gContestEffect08hDescription - .4byte gContestEffect09hDescription - .4byte gContestEffect0AhDescription - .4byte gContestEffect0BhDescription - .4byte gContestEffect0ChDescription - .4byte gContestEffect0DhDescription - .4byte gContestEffect0EhDescription - .4byte gContestEffect0FhDescription - .4byte gContestEffect10hDescription - .4byte gContestEffect11hDescription - .4byte gContestEffect12hDescription - .4byte gContestEffect13hDescription - .4byte gContestEffect14hDescription - .4byte gContestEffect15hDescription - .4byte gContestEffect16hDescription - .4byte gContestEffect17hDescription - .4byte gContestEffect18hDescription - .4byte gContestEffect19hDescription - .4byte gContestEffect1AhDescription - .4byte gContestEffect1BhDescription - .4byte gContestEffect1ChDescription - .4byte gContestEffect1DhDescription - .4byte gContestEffect1EhDescription - .4byte gContestEffect1FhDescription - .4byte gContestEffect20hDescription - .4byte gContestEffect21hDescription - .4byte gContestEffect22hDescription - .4byte gContestEffect23hDescription - .4byte gContestEffect24hDescription - .4byte gContestEffect25hDescription - .4byte gContestEffect26hDescription - .4byte gContestEffect27hDescription - .4byte gContestEffect28hDescription - .4byte gContestEffect29hDescription - .4byte gContestEffect2AhDescription - .4byte gContestEffect2BhDescription - .4byte gContestEffect2ChDescription - .4byte gContestEffect2DhDescription - .4byte gContestEffect2EhDescription - .4byte gContestEffect2FhDescription - -@ 8587D10 -@ Unreferenced array of pointers to move names. -@ All of the moves except Conversion are combo starters, so this may have -@ been an early list of combo starters. - .align 2 - .4byte gUnusedContestMoveName0 - .4byte gUnusedContestMoveName0 - .4byte gUnusedContestMoveName1 - .4byte gUnusedContestMoveName2 - .4byte gUnusedContestMoveName3 - .4byte gUnusedContestMoveName4 - .4byte gUnusedContestMoveName5 - .4byte gUnusedContestMoveName6 - .4byte gUnusedContestMoveName7 - .4byte gUnusedContestMoveName8 - .4byte gUnusedContestMoveName9 - .4byte gUnusedContestMoveName10 - .4byte gUnusedContestMoveName11 - .4byte gUnusedContestMoveName12 - - .align 2 -gContestMoveTypeTextPointers:: @ 8587D48 - .4byte gContestMoveTypeCoolText - .4byte gContestMoveTypeBeautyText - .4byte gContestMoveTypeCuteText - .4byte gContestMoveTypeSmartText - .4byte gContestMoveTypeToughText diff --git a/src/contest.c b/src/contest.c index 241d38e48f..afb1c94d72 100644 --- a/src/contest.c +++ b/src/contest.c @@ -220,9 +220,6 @@ u32 gContestRngValue; extern const struct BgTemplate gUnknown_08587F34[4]; extern const struct WindowTemplate gUnknown_08587F44[]; -extern const u8 *const gUnknown_08587D90[]; -extern const u8 *const gUnknown_08587F08[]; -extern const u8 *const gUnknown_08587F1C[]; extern const u8 *const gUnknown_0827E8DA[]; extern const u8 gText_0827D55A[]; extern const u8 gText_0827E793[]; @@ -251,7 +248,6 @@ extern const struct ContestPokemon gContestOpponents[96]; extern const u8 gUnknown_085898A4[96]; extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; extern const union AffineAnimCmd *const gUnknown_082FF694[]; -extern const u8 *const gContestEffectDescriptionPointers[]; extern const struct SpriteTemplate gSpriteTemplate_8587AD0; extern const struct SpriteTemplate gSpriteTemplate_8587B18[]; extern void (*const gContestEffectFuncs[])(void); @@ -583,6 +579,8 @@ const struct SpriteTemplate gSpriteTemplate_8587C18 = const u16 gUnknown_08587C30[] = INCBIN_U16("graphics/unknown/unknown_587C30.gbapal"); +#include "data/contest_text_tables.h" + static void TaskDummy1(u8 taskId) { } diff --git a/src/data/contest_text_tables.h b/src/data/contest_text_tables.h new file mode 100644 index 0000000000..fa32f33b5d --- /dev/null +++ b/src/data/contest_text_tables.h @@ -0,0 +1,414 @@ + +#include "global.h" + +extern const u8 gContestEffect00hDescription[]; +extern const u8 gContestEffect01hDescription[]; +extern const u8 gContestEffect02hDescription[]; +extern const u8 gContestEffect03hDescription[]; +extern const u8 gContestEffect04hDescription[]; +extern const u8 gContestEffect05hDescription[]; +extern const u8 gContestEffect06hDescription[]; +extern const u8 gContestEffect07hDescription[]; +extern const u8 gContestEffect08hDescription[]; +extern const u8 gContestEffect09hDescription[]; +extern const u8 gContestEffect0AhDescription[]; +extern const u8 gContestEffect0BhDescription[]; +extern const u8 gContestEffect0ChDescription[]; +extern const u8 gContestEffect0DhDescription[]; +extern const u8 gContestEffect0EhDescription[]; +extern const u8 gContestEffect0FhDescription[]; +extern const u8 gContestEffect10hDescription[]; +extern const u8 gContestEffect11hDescription[]; +extern const u8 gContestEffect12hDescription[]; +extern const u8 gContestEffect13hDescription[]; +extern const u8 gContestEffect14hDescription[]; +extern const u8 gContestEffect15hDescription[]; +extern const u8 gContestEffect16hDescription[]; +extern const u8 gContestEffect17hDescription[]; +extern const u8 gContestEffect18hDescription[]; +extern const u8 gContestEffect19hDescription[]; +extern const u8 gContestEffect1AhDescription[]; +extern const u8 gContestEffect1BhDescription[]; +extern const u8 gContestEffect1ChDescription[]; +extern const u8 gContestEffect1DhDescription[]; +extern const u8 gContestEffect1EhDescription[]; +extern const u8 gContestEffect1FhDescription[]; +extern const u8 gContestEffect20hDescription[]; +extern const u8 gContestEffect21hDescription[]; +extern const u8 gContestEffect22hDescription[]; +extern const u8 gContestEffect23hDescription[]; +extern const u8 gContestEffect24hDescription[]; +extern const u8 gContestEffect25hDescription[]; +extern const u8 gContestEffect26hDescription[]; +extern const u8 gContestEffect27hDescription[]; +extern const u8 gContestEffect28hDescription[]; +extern const u8 gContestEffect29hDescription[]; +extern const u8 gContestEffect2AhDescription[]; +extern const u8 gContestEffect2BhDescription[]; +extern const u8 gContestEffect2ChDescription[]; +extern const u8 gContestEffect2DhDescription[]; +extern const u8 gContestEffect2EhDescription[]; +extern const u8 gContestEffect2FhDescription[]; + +extern const u8 gUnusedContestMoveName0[]; +extern const u8 gUnusedContestMoveName1[]; +extern const u8 gUnusedContestMoveName2[]; +extern const u8 gUnusedContestMoveName3[]; +extern const u8 gUnusedContestMoveName4[]; +extern const u8 gUnusedContestMoveName5[]; +extern const u8 gUnusedContestMoveName6[]; +extern const u8 gUnusedContestMoveName7[]; +extern const u8 gUnusedContestMoveName8[]; +extern const u8 gUnusedContestMoveName9[]; +extern const u8 gUnusedContestMoveName10[]; +extern const u8 gUnusedContestMoveName11[]; +extern const u8 gUnusedContestMoveName12[]; + +extern const u8 gContestMoveTypeCoolText[]; +extern const u8 gContestMoveTypeBeautyText[]; +extern const u8 gContestMoveTypeCuteText[]; +extern const u8 gContestMoveTypeSmartText[]; +extern const u8 gContestMoveTypeToughText[]; + +extern const u8 gText_0827D5C1[]; +extern const u8 gText_0827D5DC[]; +extern const u8 gText_0827D600[]; +extern const u8 gText_0827D612[]; +extern const u8 gText_0827D612[]; +extern const u8 gText_0827D62D[]; +extern const u8 gText_0827D654[]; +extern const u8 gText_0827D67E[]; +extern const u8 gText_0827D69C[]; +extern const u8 gText_0827D6BA[]; +extern const u8 gText_0827D6E5[]; +extern const u8 gText_0827D706[]; +extern const u8 gText_0827D71D[]; + +extern const u8 gText_0827D743[]; +extern const u8 gText_0827D764[]; +extern const u8 gText_0827D785[]; +extern const u8 gText_0827D7A5[]; +extern const u8 gText_0827D7C8[]; +extern const u8 gText_0827D7E8[]; +extern const u8 gText_0827D831[]; +extern const u8 gText_0827D855[]; +extern const u8 gText_0827D830[]; +extern const u8 gText_0827D872[]; +extern const u8 gText_0827D88F[]; +extern const u8 gText_0827D8B5[]; +extern const u8 gText_0827D8E4[]; +extern const u8 gText_0827D8FE[]; +extern const u8 gText_0827D926[]; +extern const u8 gText_0827D947[]; +extern const u8 gText_0827D961[]; +extern const u8 gText_0827D986[]; +extern const u8 gText_0827D9B1[]; +extern const u8 gText_0827D9D9[]; +extern const u8 gText_0827DA03[]; +extern const u8 gText_0827DA31[]; +extern const u8 gText_0827DA5B[]; +extern const u8 gText_0827DA85[]; +extern const u8 gText_0827DAB2[]; +extern const u8 gText_0827DADA[]; +extern const u8 gText_0827DB03[]; +extern const u8 gText_0827D830[]; +extern const u8 gText_0827D830[]; +extern const u8 gText_0827D830[]; +extern const u8 gText_0827DB1F[]; +extern const u8 gText_0827DB4E[]; + +extern const u8 gText_827DB75[]; +extern const u8 gText_827DBB0[]; +extern const u8 gText_827DBE0[]; +extern const u8 gText_827DC0F[]; +extern const u8 gText_827DC45[]; +extern const u8 gText_827DC7C[]; +extern const u8 gText_827DCB4[]; +extern const u8 gText_827DCE7[]; +extern const u8 gText_827DD12[]; +extern const u8 gText_827DD3D[]; +extern const u8 gText_827DD6F[]; +extern const u8 gText_827DD8E[]; +extern const u8 gText_827DDC7[]; +extern const u8 gText_827DDF2[]; +extern const u8 gText_827DE14[]; +extern const u8 gText_827DE44[]; +extern const u8 gText_827DE73[]; +extern const u8 gText_827DEA5[]; +extern const u8 gText_827DED9[]; +extern const u8 gText_827DF02[]; +extern const u8 gText_827DF3A[]; +extern const u8 gText_827DF63[]; +extern const u8 gText_827DF8C[]; +extern const u8 gText_827DFB8[]; +extern const u8 gText_827DFE2[]; +extern const u8 gText_827E00C[]; +extern const u8 gText_827E02F[]; +extern const u8 gText_827E05F[]; +extern const u8 gText_827E08B[]; +extern const u8 gText_827E0B5[]; +extern const u8 gText_827E0DD[]; +extern const u8 gText_827E107[]; +extern const u8 gText_827E143[]; +extern const u8 gText_827E17F[]; +extern const u8 gText_827E1BB[]; +extern const u8 gText_827E1F3[]; +extern const u8 gText_827E220[]; +extern const u8 gText_827E254[]; +extern const u8 gText_827E289[]; +extern const u8 gText_827E2C5[]; +extern const u8 gText_0827E2FE[]; +extern const u8 gText_0827E32E[]; +extern const u8 gText_0827E35B[]; +extern const u8 gText_0827E38D[]; +extern const u8 gText_0827E3C1[]; +extern const u8 gText_0827E3EB[]; +extern const u8 gText_0827E416[]; +extern const u8 gText_0827E448[]; +extern const u8 gText_0827E473[]; +extern const u8 gText_0827E4A6[]; +extern const u8 gText_0827E4D5[]; +extern const u8 gText_0827E504[]; +extern const u8 gText_0827E531[]; +extern const u8 gText_0827E55A[]; +extern const u8 gText_0827E5B2[]; +extern const u8 gText_0827E5D0[]; +extern const u8 gText_0827E606[]; +extern const u8 gText_0827E638[]; +extern const u8 gText_0827E658[]; +extern const u8 gText_0827E68B[]; +extern const u8 gText_0827E6C4[]; +extern const u8 gText_0827E7BA[]; + +extern const u8 gText_0827E85F[]; +extern const u8 gText_0827E868[]; +extern const u8 gText_0827E86F[]; +extern const u8 gText_0827E878[]; +extern const u8 gText_0827E882[]; + +extern const u8 gText_0827E894[]; +extern const u8 gText_0827E89E[]; +extern const u8 gText_0827E8AA[]; +extern const u8 gText_0827E8B4[]; +extern const u8 gText_0827E8BF[]; +extern const u8 gText_0827E8CA[]; + +const u8 *const gContestEffectDescriptionPointers[] = +{ + gContestEffect00hDescription, + gContestEffect01hDescription, + gContestEffect02hDescription, + gContestEffect03hDescription, + gContestEffect04hDescription, + gContestEffect05hDescription, + gContestEffect06hDescription, + gContestEffect07hDescription, + gContestEffect08hDescription, + gContestEffect09hDescription, + gContestEffect0AhDescription, + gContestEffect0BhDescription, + gContestEffect0ChDescription, + gContestEffect0DhDescription, + gContestEffect0EhDescription, + gContestEffect0FhDescription, + gContestEffect10hDescription, + gContestEffect11hDescription, + gContestEffect12hDescription, + gContestEffect13hDescription, + gContestEffect14hDescription, + gContestEffect15hDescription, + gContestEffect16hDescription, + gContestEffect17hDescription, + gContestEffect18hDescription, + gContestEffect19hDescription, + gContestEffect1AhDescription, + gContestEffect1BhDescription, + gContestEffect1ChDescription, + gContestEffect1DhDescription, + gContestEffect1EhDescription, + gContestEffect1FhDescription, + gContestEffect20hDescription, + gContestEffect21hDescription, + gContestEffect22hDescription, + gContestEffect23hDescription, + gContestEffect24hDescription, + gContestEffect25hDescription, + gContestEffect26hDescription, + gContestEffect27hDescription, + gContestEffect28hDescription, + gContestEffect29hDescription, + gContestEffect2AhDescription, + gContestEffect2BhDescription, + gContestEffect2ChDescription, + gContestEffect2DhDescription, + gContestEffect2EhDescription, + gContestEffect2FhDescription +}; + +// Unreferenced array of pointers to move names. +// All of the moves except Conversion are combo starters, so this may have +// been an early list of combo starters. +const u8 *const gUnknown_8587D10[] = +{ + gUnusedContestMoveName0, + gUnusedContestMoveName0, + gUnusedContestMoveName1, + gUnusedContestMoveName2, + gUnusedContestMoveName3, + gUnusedContestMoveName4, + gUnusedContestMoveName5, + gUnusedContestMoveName6, + gUnusedContestMoveName7, + gUnusedContestMoveName8, + gUnusedContestMoveName9, + gUnusedContestMoveName10, + gUnusedContestMoveName11, + gUnusedContestMoveName12 +}; + +const u8 *const gContestMoveTypeTextPointers[] = +{ + gContestMoveTypeCoolText, + gContestMoveTypeBeautyText, + gContestMoveTypeCuteText, + gContestMoveTypeSmartText, + gContestMoveTypeToughText +}; + +const u8 *const gUnknown_08587D5C[] = +{ + gText_0827D5C1, + gText_0827D5DC, + gText_0827D600, + gText_0827D612, + gText_0827D612, + gText_0827D62D, + gText_0827D654, + gText_0827D67E, + gText_0827D69C, + gText_0827D6BA, + gText_0827D6E5, + gText_0827D706, + gText_0827D71D +}; + +const u8 *const gUnknown_08587D90[] = +{ + gText_0827D743, + gText_0827D764, + gText_0827D785, + gText_0827D7A5, + gText_0827D7C8, + gText_0827D7E8, + gText_0827D831, + gText_0827D855, + gText_0827D830, + gText_0827D872, + gText_0827D88F, + gText_0827D8B5, + gText_0827D8E4, + gText_0827D8FE, + gText_0827D926, + gText_0827D947, + gText_0827D961, + gText_0827D986, + gText_0827D9B1, + gText_0827D9D9, + gText_0827DA03, + gText_0827DA31, + gText_0827DA5B, + gText_0827DA85, + gText_0827DAB2, + gText_0827DADA, + gText_0827DB03, + gText_0827D830, + gText_0827D830, + gText_0827D830, + gText_0827DB1F, + gText_0827DB4E +}; + +const u8 *const gUnknown_08587E10[] = +{ + gText_827DB75, + gText_827DBB0, + gText_827DBE0, + gText_827DC0F, + gText_827DC45, + gText_827DC7C, + gText_827DCB4, + gText_827DCE7, + gText_827DD12, + gText_827DD3D, + gText_827DD6F, + gText_827DD8E, + gText_827DDC7, + gText_827DDF2, + gText_827DE14, + gText_827DE44, + gText_827DE73, + gText_827DEA5, + gText_827DED9, + gText_827DF02, + gText_827DF3A, + gText_827DF63, + gText_827DF8C, + gText_827DFB8, + gText_827DFE2, + gText_827E00C, + gText_827E02F, + gText_827E05F, + gText_827E08B, + gText_827E0B5, + gText_827E0DD, + gText_827E107, + gText_827E143, + gText_827E17F, + gText_827E1BB, + gText_827E1F3, + gText_827E220, + gText_827E254, + gText_827E289, + gText_827E2C5, + gText_0827E2FE, + gText_0827E32E, + gText_0827E35B, + gText_0827E38D, + gText_0827E3C1, + gText_0827E3EB, + gText_0827E416, + gText_0827E448, + gText_0827E473, + gText_0827E4A6, + gText_0827E4D5, + gText_0827E504, + gText_0827E531, + gText_0827E55A, + gText_0827E5B2, + gText_0827E5D0, + gText_0827E606, + gText_0827E638, + gText_0827E658, + gText_0827E68B, + gText_0827E6C4, + gText_0827E7BA +}; + +const u8 *const gUnknown_08587F08[] = +{ + gText_0827E85F, + gText_0827E868, + gText_0827E86F, + gText_0827E878, + gText_0827E882 +}; + +const u8 *const gUnknown_08587F1C[] = +{ + gText_0827E894, + gText_0827E89E, + gText_0827E8AA, + gText_0827E8B4, + gText_0827E8BF, + gText_0827E8CA +}; \ No newline at end of file From 5b4b0a245be14b7485c3e2cc40e40c78eeaa7ce0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Mar 2019 00:00:10 -0500 Subject: [PATCH 03/11] Move contest winner list to C --- data/contest.s | 70 ---------------- include/contest.h | 8 ++ src/contest.c | 149 ++++++++++++++++++++++++++++++++++- src/data/contest_opponents.h | 80 +++++++++++++++++++ 4 files changed, 234 insertions(+), 73 deletions(-) create mode 100644 src/data/contest_opponents.h diff --git a/data/contest.s b/data/contest.s index aba96d54f3..851af78c58 100644 --- a/data/contest.s +++ b/data/contest.s @@ -6,76 +6,6 @@ .section .rodata .align 2, 0 - .align 2 -gUnknown_08587F34:: @ 8587F34 - .4byte 0x00000580, 0x000015e9, 0x000005c2, 0x000031a3 - - .align 2 -gUnknown_08587F44:: @ 8587F44 - window_template 0x00, 0x12, 0x00, 0x0c, 0x02, 0x0f, 0x0200 - window_template 0x00, 0x12, 0x05, 0x0c, 0x02, 0x0f, 0x0218 - window_template 0x00, 0x12, 0x0a, 0x0c, 0x02, 0x0f, 0x0230 - window_template 0x00, 0x12, 0x0f, 0x0c, 0x02, 0x0f, 0x0248 - window_template 0x00, 0x01, 0x0f, 0x11, 0x04, 0x0f, 0x0260 - window_template 0x00, 0x01, 0x1f, 0x09, 0x02, 0x0f, 0x02a4 - window_template 0x00, 0x01, 0x21, 0x09, 0x02, 0x0f, 0x02b6 - window_template 0x00, 0x01, 0x23, 0x09, 0x02, 0x0f, 0x02c8 - window_template 0x00, 0x01, 0x25, 0x09, 0x02, 0x0f, 0x02da - window_template 0x00, 0x10, 0x1f, 0x01, 0x02, 0x0f, 0x02ec - window_template 0x00, 0x0b, 0x23, 0x12, 0x04, 0x0f, 0x02ee - null_window_template - - .align 2 -gUnknown_08587FA4:: @ 8587FA4 - .4byte NULL, 0xFFFF - .2byte SPECIES_ELECTRIKE - .byte 2 - .string "ELECTER$", 11 - .string "EZRA$", 8 - .2byte 0 - .4byte NULL, 0xFFFF - .2byte SPECIES_TROPIUS - .byte 0 - .string "TROPO$", 11 - .string "ALLAN$", 8 - .2byte 2 - .4byte NULL, 0xFFFF - .2byte SPECIES_XATU - .byte 1 - .string "TUXA$", 11 - .string "JULIET$", 8 - .2byte 0 - .4byte NULL, 0xFFFF - .2byte SPECIES_PLUSLE - .byte 4 - .string "PULSE$", 11 - .string "BAILY$", 8 - .2byte 3 - .4byte NULL, 0xFFFF - .2byte SPECIES_SHUPPET - .byte 3 - .string "SHUPUP$", 11 - .string "MELANY$", 8 - .2byte 1 - .4byte NULL, 0xFFFF - .2byte SPECIES_ZANGOOSE - .byte 0 - .string "GOOZAN$", 11 - .string "HANA$", 8 - .2byte 2 - .4byte NULL, 0xFFFF - .2byte SPECIES_LOUDRED - .byte 1 - .string "LOUDED$", 11 - .string "BRYANT$", 8 - .2byte 2 - .4byte NULL, 0xFFFF - .2byte SPECIES_DELCATTY - .byte 2 - .string "KITSY$", 11 - .string "OMAR$", 8 - .2byte 3 - .align 2 gContestOpponents:: @ 85880A4 diff --git a/include/contest.h b/include/contest.h index 8146486cbf..4fbec9d220 100644 --- a/include/contest.h +++ b/include/contest.h @@ -196,6 +196,14 @@ enum CONTEST_STRING_NONE = 255 }; +enum { + CONTEST_RANK_NORMAL, + CONTEST_RANK_SUPER, + CONTEST_RANK_HYPER, + CONTEST_RANK_MASTER, + CONTEST_RANK_LINK +}; + struct ContestPokemon { /*0x00*/ u16 species; diff --git a/src/contest.c b/src/contest.c index afb1c94d72..09847f6b67 100644 --- a/src/contest.c +++ b/src/contest.c @@ -218,8 +218,6 @@ EWRAM_DATA u8 gUnknown_02039F5D = 0; // IWRAM common vars. u32 gContestRngValue; -extern const struct BgTemplate gUnknown_08587F34[4]; -extern const struct WindowTemplate gUnknown_08587F44[]; extern const u8 *const gUnknown_0827E8DA[]; extern const u8 gText_0827D55A[]; extern const u8 gText_0827E793[]; @@ -252,7 +250,6 @@ extern const struct SpriteTemplate gSpriteTemplate_8587AD0; extern const struct SpriteTemplate gSpriteTemplate_8587B18[]; extern void (*const gContestEffectFuncs[])(void); extern const s8 gContestExcitementTable[][5]; -extern const struct ContestWinner gUnknown_08587FA4[]; extern const struct CompressedSpriteSheet gUnknown_08589904[]; extern const struct SpritePalette gUnknown_08589924[]; extern const struct SpriteTemplate gSpriteTemplate_858998C[]; @@ -581,6 +578,152 @@ const u16 gUnknown_08587C30[] = INCBIN_U16("graphics/unknown/unknown_587C30.gbap #include "data/contest_text_tables.h" +const struct BgTemplate gUnknown_08587F34[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 0x18, + .screenSize = 2, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 2, + .mapBaseIndex = 0x1E, + .screenSize = 2, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 0x1C, + .screenSize = 2, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 0x1A, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } +}; + +const struct WindowTemplate gUnknown_08587F44[] = +{ + { + .bg = 0, + .tilemapLeft = 18, + .tilemapTop = 0, + .width = 12, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x200 + }, + { + .bg = 0, + .tilemapLeft = 18, + .tilemapTop = 5, + .width = 12, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x218 + }, + { + .bg = 0, + .tilemapLeft = 18, + .tilemapTop = 10, + .width = 12, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x230 + }, + { + .bg = 0, + .tilemapLeft = 18, + .tilemapTop = 15, + .width = 12, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x248 + }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 15, + .width = 17, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x260 + }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 0x1F, + .width = 9, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x2A4 + }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 0x21, + .width = 9, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x2B6 + }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 0x23, + .width = 9, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x2C8 + }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 0x25, + .width = 9, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x2DA + }, + { + .bg = 0, + .tilemapLeft = 16, + .tilemapTop = 0x1F, + .width = 1, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x2EC + }, + { + .bg = 0, + .tilemapLeft = 11, + .tilemapTop = 0x23, + .width = 18, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x2EE + }, + DUMMY_WIN_TEMPLATE +}; + +#include "data/contest_opponents.h" + static void TaskDummy1(u8 taskId) { } diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h new file mode 100644 index 0000000000..580d7916ed --- /dev/null +++ b/src/data/contest_opponents.h @@ -0,0 +1,80 @@ + +#include "global.h" +#include "contest.h" +#include "constants/species.h" + +const struct ContestWinner gUnknown_08587FA4[] = +{ + { + .personality = 0, + .trainerId = 0xFFFF, + .species = SPECIES_ELECTRIKE, + .contestCategory = CONTEST_CATEGORY_CUTE, + .monName = _("ELECTER"), + .trainerName = _("EZRA"), + .contestRank = CONTEST_RANK_NORMAL + }, + { + .personality = 0, + .trainerId = 0xFFFF, + .species = SPECIES_TROPIUS, + .contestCategory = CONTEST_CATEGORY_COOL, + .monName = _("TROPO"), + .trainerName = _("ALLAN"), + .contestRank = CONTEST_RANK_HYPER + }, + { + .personality = 0, + .trainerId = 0xFFFF, + .species = SPECIES_XATU, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .monName = _("TUXA"), + .trainerName = _("JULIET"), + .contestRank = CONTEST_RANK_NORMAL + }, + { + .personality = 0, + .trainerId = 0xFFFF, + .species = SPECIES_PLUSLE, + .contestCategory = CONTEST_CATEGORY_TOUGH, + .monName = _("PULSE"), + .trainerName = _("BAILY"), + .contestRank = CONTEST_RANK_MASTER + }, + { + .personality = 0, + .trainerId = 0xFFFF, + .species = SPECIES_SHUPPET, + .contestCategory = CONTEST_CATEGORY_SMART, + .monName = _("SHUPUP"), + .trainerName = _("MELANY"), + .contestRank = CONTEST_RANK_SUPER + }, + { + .personality = 0, + .trainerId = 0xFFFF, + .species = SPECIES_ZANGOOSE, + .contestCategory = CONTEST_CATEGORY_COOL, + .monName = _("GOOZAN"), + .trainerName = _("HANA"), + .contestRank = CONTEST_RANK_HYPER + }, + { + .personality = 0, + .trainerId = 0xFFFF, + .species = SPECIES_LOUDRED, + .contestCategory = CONTEST_CATEGORY_BEAUTY, + .monName = _("LOUDED"), + .trainerName = _("BRYANT"), + .contestRank = CONTEST_RANK_HYPER + }, + { + .personality = 0, + .trainerId = 0xFFFF, + .species = SPECIES_DELCATTY, + .contestCategory = CONTEST_CATEGORY_CUTE, + .monName = _("KITSY"), + .trainerName = _("OMAR"), + .contestRank = CONTEST_RANK_MASTER + } +}; \ No newline at end of file From 153499ed6f08b6546349ba1ec33ea9e18840f44b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Mar 2019 01:38:38 -0500 Subject: [PATCH 04/11] Clean up contest_opponents.inc --- data/contest_opponents.inc | 973 ++++++++++++++--------------------- include/contest.h | 18 +- src/data/contest_opponents.h | 8 +- 3 files changed, 414 insertions(+), 585 deletions(-) diff --git a/data/contest_opponents.inc b/data/contest_opponents.inc index 9246bac211..81510ac187 100644 --- a/data/contest_opponents.inc +++ b/data/contest_opponents.inc @@ -1,11 +1,24 @@ + .macro aiPool rank:req, cool:req, beauty:req, cute:req, smart:req, tough:req + .byte ((\tough) << 6) | ((\smart) << 5) | ((\cute) << 4) | ((\beauty) << 3) | ((\cool) << 2) | \rank + .byte 0 @ padding + .endm + + .macro gfxId id + .byte \id + .2byte 0 @ padding + .endm + + .macro unk2C + .4byte 0, 0, 0 + .endm + @todo: cleanup .2byte SPECIES_POOCHYENA .string "POOCHY$ " .string "JIMMY$ " - .byte 7 - .2byte 0 + gfxId 7 .4byte 0xc000fff - .2byte 68 + aiPool 0, 1, 0, 0, 0, 1 .2byte 46 .2byte 44 .2byte 36 @@ -16,18 +29,16 @@ .byte 3 .byte 4 .byte 50 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_ILLUMISE .string "MUSILLE$ " .string "EDITH$ " - .byte 8 - .2byte 0 + gfxId 8 .4byte 0x82000fff - .2byte 16 + aiPool 0, 0, 0, 1, 0, 0 .2byte 156 .2byte 263 .2byte 33 @@ -38,18 +49,16 @@ .byte 1 .byte 2 .byte 60 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_DUSTOX .string "DUSTER$ " .string "EVAN$ " - .byte 11 - .2byte 0 + gfxId 11 .4byte 0x21000fff - .2byte 8 + aiPool 0, 0, 1, 0, 0, 0 .2byte 318 .2byte 236 .2byte 113 @@ -60,18 +69,16 @@ .byte 12 .byte 4 .byte 70 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SEEDOT .string "DOTS$ " .string "KELSEY$ " - .byte 16 - .2byte 0 + gfxId 16 .4byte 0x20800fff - .2byte 96 + aiPool 0, 0, 0, 0, 1, 1 .2byte 117 .2byte 235 .2byte 331 @@ -82,18 +89,16 @@ .byte 2 .byte 7 .byte 80 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_TAILLOW .string "TATAY$ " .string "MADISON$" - .byte 18 - .2byte 0 + gfxId 18 .4byte 0x80400fff - .2byte 4 + aiPool 0, 1, 0, 0, 0, 0 .2byte 17 .2byte 97 .2byte 332 @@ -104,18 +109,16 @@ .byte 5 .byte 4 .byte 90 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_NINCADA .string "NINDA$ " .string "RAYMOND$" - .byte 44 - .2byte 0 + gfxId 44 .4byte 0x10200fff - .2byte 32 + aiPool 0, 0, 0, 0, 1, 0 .2byte 141 .2byte 206 .2byte 154 @@ -126,18 +129,16 @@ .byte 7 .byte 8 .byte 100 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SHROOMISH .string "SMISH$ " .string "GRANT$ " - .byte 35 - .2byte 0 + gfxId 35 .4byte 0x20100fff - .2byte 32 + aiPool 0, 0, 0, 0, 1, 0 .2byte 78 .2byte 73 .2byte 72 @@ -148,18 +149,16 @@ .byte 2 .byte 2 .byte 50 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SPHEAL .string "SLEAL$ " .string "PAIGE$ " - .byte 26 - .2byte 0 + gfxId 26 .4byte 0x8080fff - .2byte 24 + aiPool 0, 0, 1, 1, 0, 0 .2byte 62 .2byte 55 .2byte 45 @@ -170,18 +169,16 @@ .byte 10 .byte 10 .byte 60 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SLAKOTH .string "SLOKTH$ " .string "ALEC$ " - .byte 31 - .2byte 0 + gfxId 31 .4byte 0x40040fff - .2byte 88 + aiPool 0, 0, 1, 1, 0, 1 .2byte 70 .2byte 68 .2byte 281 @@ -192,18 +189,16 @@ .byte 5 .byte 18 .byte 70 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_WHISMUR .string "WHIRIS$ " .string "SYDNEY$ " - .byte 47 - .2byte 0 + gfxId 47 .4byte 0x80020fff - .2byte 36 + aiPool 0, 1, 0, 0, 1, 0 .2byte 310 .2byte 103 .2byte 253 @@ -214,18 +209,16 @@ .byte 2 .byte 7 .byte 80 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_MAKUHITA .string "MAHITA$ " .string "MORRIS$ " - .byte 38 - .2byte 0 + gfxId 38 .4byte 0x8010fff - .2byte 68 + aiPool 0, 1, 0, 0, 0, 1 .2byte 69 .2byte 233 .2byte 33 @@ -236,18 +229,16 @@ .byte 8 .byte 1 .byte 90 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_ARON .string "RONAR$ " .string "MARIAH$ " - .byte 10 - .2byte 0 + gfxId 10 .4byte 0x8008fff - .2byte 68 + aiPool 0, 1, 0, 0, 0, 1 .2byte 232 .2byte 334 .2byte 29 @@ -258,18 +249,16 @@ .byte 10 .byte 2 .byte 100 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_CROBAT .string "BATRO$ " .string "RUSSELL$" - .byte 33 - .2byte 0 + gfxId 33 .4byte 0x90004fff - .2byte 56 + aiPool 0, 0, 1, 1, 1, 0 .2byte 114 .2byte 212 .2byte 109 @@ -280,18 +269,16 @@ .byte 2 .byte 10 .byte 50 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_GULPIN .string "GULIN$ " .string "MELANIE$" - .byte 6 - .2byte 0 + gfxId 6 .4byte 0x40002fff - .2byte 16 + aiPool 0, 0, 0, 1, 0, 0 .2byte 124 .2byte 133 .2byte 92 @@ -302,18 +289,16 @@ .byte 10 .byte 5 .byte 60 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_MANECTRIC .string "RIKELEC$ " .string "CHANCE$ " - .byte 15 - .2byte 0 + gfxId 15 .4byte 0x80001fff - .2byte 12 + aiPool 0, 1, 1, 0, 0, 0 .2byte 209 .2byte 86 .2byte 87 @@ -324,18 +309,16 @@ .byte 1 .byte 1 .byte 70 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_BULBASAUR .string "BULBY$ " .string "AGATHA$ " - .byte 20 - .2byte 0 + gfxId 20 .4byte 0xc000fff - .2byte 48 + aiPool 0, 0, 0, 1, 1, 0 .2byte 45 .2byte 73 .2byte 33 @@ -346,18 +329,16 @@ .byte 10 .byte 4 .byte 50 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_BUTTERFREE .string "FUTTERBE$ " .string "BEAU$ " - .byte 40 - .2byte 0 + gfxId 40 .4byte 0x82000fff - .2byte 40 + aiPool 0, 0, 1, 0, 1, 0 .2byte 48 .2byte 18 .2byte 318 @@ -368,18 +349,16 @@ .byte 10 .byte 4 .byte 60 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_PIDGEOTTO .string "PIDEOT$ " .string "KAY$ " - .byte 34 - .2byte 0 + gfxId 34 .4byte 0x21000fff - .2byte 12 + aiPool 0, 1, 1, 0, 0, 0 .2byte 119 .2byte 98 .2byte 332 @@ -390,18 +369,16 @@ .byte 2 .byte 3 .byte 70 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_DIGLETT .string "DIGLE$ " .string "CALE$ " - .byte 55 - .2byte 0 + gfxId 55 .4byte 0x20800fff - .2byte 96 + aiPool 0, 0, 0, 0, 1, 1 .2byte 91 .2byte 89 .2byte 90 @@ -412,18 +389,16 @@ .byte 5 .byte 10 .byte 80 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_POLIWAG .string "WAGIL$ " .string "CAITLIN$" - .byte 53 - .2byte 0 + gfxId 53 .4byte 0x80400fff - .2byte 72 + aiPool 0, 0, 1, 0, 0, 1 .2byte 56 .2byte 240 .2byte 34 @@ -434,18 +409,16 @@ .byte 3 .byte 10 .byte 90 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_TOTODILE .string "TOTDIL$ " .string "COLBY$ " - .byte 5 - .2byte 0 + gfxId 5 .4byte 0x10200fff - .2byte 12 + aiPool 0, 1, 1, 0, 0, 0 .2byte 99 .2byte 103 .2byte 57 @@ -456,18 +429,16 @@ .byte 1 .byte 5 .byte 100 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_LEDYBA .string "BALEDY$ " .string "KYLIE$ " - .byte 45 - .2byte 0 + gfxId 45 .4byte 0x20100fff - .2byte 20 + aiPool 0, 1, 0, 1, 0, 0 .2byte 226 .2byte 97 .2byte 129 @@ -478,18 +449,16 @@ .byte 6 .byte 2 .byte 90 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_DELIBIRD .string "BIRDLY$ " .string "LIAM$ " - .byte 66 - .2byte 0 + gfxId 66 .4byte 0x8080fff - .2byte 112 + aiPool 0, 0, 0, 1, 1, 1 .2byte 217 .2byte 263 .2byte 264 @@ -500,18 +469,16 @@ .byte 5 .byte 3 .byte 80 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_LARVITAR .string "TARVITAR$ " .string "MILO$ " - .byte 39 - .2byte 0 + gfxId 39 .4byte 0x40040fff - .2byte 64 + aiPool 0, 0, 0, 0, 0, 1 .2byte 37 .2byte 259 .2byte 242 @@ -522,18 +489,16 @@ .byte 8 .byte 10 .byte 70 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_ROSELIA .string "RELIA$ " .string "KARINA$ " - .byte 32 - .2byte 0 + gfxId 32 .4byte 0x24000fff - .2byte 41 + aiPool 1, 0, 1, 0, 1, 0 .2byte 80 .2byte 345 .2byte 320 @@ -544,18 +509,16 @@ .byte 10 .byte 20 .byte 100 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_DODRIO .string "DUODO$ " .string "BOBBY$ " - .byte 51 - .2byte 0 + gfxId 51 .4byte 0x82000fff - .2byte 125 + aiPool 1, 1, 1, 1, 1, 1 .2byte 64 .2byte 31 .2byte 216 @@ -566,18 +529,16 @@ .byte 85 .byte 35 .byte 110 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_TRAPINCH .string "PINCHIN$ " .string "CLAIRE$ " - .byte 8 - .2byte 0 + gfxId 8 .4byte 0x81000fff - .2byte 113 + aiPool 1, 0, 0, 1, 1, 1 .2byte 44 .2byte 28 .2byte 91 @@ -588,18 +549,16 @@ .byte 10 .byte 25 .byte 120 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_CACNEA .string "NACAC$ " .string "WILLIE$ " - .byte 11 - .2byte 0 + gfxId 11 .4byte 0x80800fff - .2byte 37 + aiPool 1, 1, 0, 0, 1, 0 .2byte 191 .2byte 43 .2byte 40 @@ -610,18 +569,16 @@ .byte 65 .byte 25 .byte 130 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SANDSLASH .string "SHRAND$ " .string "CASSIDY$" - .byte 18 - .2byte 0 + gfxId 18 .4byte 0x10400fff - .2byte 69 + aiPool 1, 1, 0, 0, 0, 1 .2byte 163 .2byte 111 .2byte 129 @@ -632,18 +589,16 @@ .byte 10 .byte 100 .byte 140 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_BALTOY .string "TOYBAL$ " .string "MORGAN$ " - .byte 44 - .2byte 0 + gfxId 44 .4byte 0x8200fff - .2byte 41 + aiPool 1, 0, 1, 0, 1, 0 .2byte 120 .2byte 317 .2byte 60 @@ -654,18 +609,16 @@ .byte 35 .byte 35 .byte 150 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_MEDICHAM .string "CHAMCHAM$ " .string "SUMMER$ " - .byte 26 - .2byte 0 + gfxId 26 .4byte 0x10100fff - .2byte 77 + aiPool 1, 1, 1, 0, 0, 1 .2byte 179 .2byte 9 .2byte 7 @@ -676,18 +629,16 @@ .byte 40 .byte 40 .byte 100 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SPINDA .string "SPININ$ " .string "MILES$ " - .byte 31 - .2byte 0 + gfxId 31 .4byte 0x80080fff - .2byte 49 + aiPool 1, 0, 0, 1, 1, 0 .2byte 298 .2byte 244 .2byte 95 @@ -698,18 +649,16 @@ .byte 10 .byte 25 .byte 110 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SWABLU .string "SWABY$ " .string "AUDREY$ " - .byte 47 - .2byte 0 + gfxId 47 .4byte 0xa0040fff - .2byte 41 + aiPool 1, 0, 1, 0, 1, 0 .2byte 119 .2byte 195 .2byte 219 @@ -720,18 +669,16 @@ .byte 30 .byte 25 .byte 120 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SPOINK .string "POINKER$ " .string "AVERY$ " - .byte 38 - .2byte 0 + gfxId 38 .4byte 0x80020fff - .2byte 49 + aiPool 1, 0, 0, 1, 1, 0 .2byte 150 .2byte 109 .2byte 173 @@ -742,18 +689,16 @@ .byte 40 .byte 30 .byte 130 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_KECLEON .string "KECON$ " .string "ARIANA$ " - .byte 10 - .2byte 0 + gfxId 10 .4byte 0x80010fff - .2byte 97 + aiPool 1, 0, 0, 0, 1, 1 .2byte 168 .2byte 103 .2byte 246 @@ -764,18 +709,16 @@ .byte 75 .byte 35 .byte 140 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_GOLDEEN .string "GOLDEN$ " .string "ASHTON$ " - .byte 33 - .2byte 0 + gfxId 33 .4byte 0x80008fff - .2byte 13 + aiPool 1, 1, 1, 0, 0, 0 .2byte 30 .2byte 31 .2byte 32 @@ -786,18 +729,16 @@ .byte 30 .byte 25 .byte 150 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_BARBOACH .string "BOBOACH$ " .string "SANDRA$ " - .byte 6 - .2byte 0 + gfxId 6 .4byte 0x80004fff - .2byte 113 + aiPool 1, 0, 0, 1, 1, 1 .2byte 300 .2byte 346 .2byte 89 @@ -808,18 +749,16 @@ .byte 25 .byte 15 .byte 100 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SKARMORY .string "CORPY$ " .string "CARSON$ " - .byte 35 - .2byte 0 + gfxId 35 .4byte 0x8002fff - .2byte 77 + aiPool 1, 1, 1, 0, 0, 1 .2byte 129 .2byte 104 .2byte 97 @@ -830,18 +769,16 @@ .byte 60 .byte 20 .byte 110 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_LOTAD .string "TADO$ " .string "KATRINA$" - .byte 16 - .2byte 0 + gfxId 16 .4byte 0x8001fff - .2byte 57 + aiPool 1, 0, 1, 1, 1, 0 .2byte 310 .2byte 45 .2byte 240 @@ -852,18 +789,16 @@ .byte 15 .byte 75 .byte 120 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SLOWBRO .string "BROWLO$ " .string "LUKE$ " - .byte 17 - .2byte 0 + gfxId 17 .4byte 0xc000fff - .2byte 49 + aiPool 1, 0, 0, 1, 1, 0 .2byte 281 .2byte 50 .2byte 45 @@ -874,18 +809,16 @@ .byte 30 .byte 20 .byte 100 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_FARFETCHD .string "FETCHIN$ " .string "RAUL$ " - .byte 66 - .2byte 0 + gfxId 66 .4byte 0x82000fff - .2byte 21 + aiPool 1, 1, 0, 1, 0, 0 .2byte 263 .2byte 210 .2byte 19 @@ -896,18 +829,16 @@ .byte 20 .byte 20 .byte 110 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SEEL .string "SEELEY$ " .string "JADA$ " - .byte 20 - .2byte 0 + gfxId 20 .4byte 0x21000fff - .2byte 25 + aiPool 1, 0, 1, 1, 0, 0 .2byte 213 .2byte 58 .2byte 219 @@ -918,18 +849,16 @@ .byte 20 .byte 20 .byte 120 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_DROWZEE .string "DROWZIN$ " .string "ZEEK$ " - .byte 37 - .2byte 0 + gfxId 37 .4byte 0x20800fff - .2byte 121 + aiPool 1, 0, 1, 1, 1, 1 .2byte 50 .2byte 248 .2byte 237 @@ -940,18 +869,16 @@ .byte 30 .byte 45 .byte 130 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_HITMONCHAN .string "HITEMON$ " .string "DIEGO$ " - .byte 21 - .2byte 0 + gfxId 21 .4byte 0x80400fff - .2byte 69 + aiPool 1, 1, 0, 0, 0, 1 .2byte 327 .2byte 197 .2byte 279 @@ -962,18 +889,16 @@ .byte 20 .byte 45 .byte 140 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_BLISSEY .string "BLISS$ " .string "ALIYAH$ " - .byte 85 - .2byte 0 + gfxId 85 .4byte 0x10200fff - .2byte 89 + aiPool 1, 0, 1, 1, 0, 1 .2byte 47 .2byte 135 .2byte 121 @@ -984,18 +909,16 @@ .byte 20 .byte 20 .byte 150 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_ELEKID .string "KIDLEK$ " .string "NATALIA$" - .byte 18 - .2byte 0 + gfxId 18 .4byte 0x20100fff - .2byte 21 + aiPool 1, 1, 0, 1, 0, 0 .2byte 351 .2byte 98 .2byte 103 @@ -1006,18 +929,16 @@ .byte 25 .byte 25 .byte 140 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SNUBBULL .string "SNUBBINS$ " .string "DEVIN$ " - .byte 48 - .2byte 0 + gfxId 48 .4byte 0x8080fff - .2byte 81 + aiPool 1, 0, 0, 1, 0, 1 .2byte 184 .2byte 269 .2byte 39 @@ -1028,18 +949,16 @@ .byte 20 .byte 20 .byte 130 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_MISDREAVUS .string "DREAVIS$ " .string "TYLOR$ " - .byte 40 - .2byte 0 + gfxId 40 .4byte 0x40040fff - .2byte 41 + aiPool 1, 0, 1, 0, 1, 0 .2byte 195 .2byte 212 .2byte 109 @@ -1050,18 +969,16 @@ .byte 45 .byte 20 .byte 120 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_LAIRON .string "LAIRN$ " .string "RONNIE$ " - .byte 55 - .2byte 0 + gfxId 55 .4byte 0x84000fff - .2byte 98 + aiPool 2, 0, 0, 0, 1, 1 .2byte 319 .2byte 232 .2byte 106 @@ -1072,18 +989,16 @@ .byte 100 .byte 90 .byte 200 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SHIFTRY .string "SHIFTY$ " .string "CLAUDIA$" - .byte 8 - .2byte 0 + gfxId 8 .4byte 0x82000fff - .2byte 14 + aiPool 2, 1, 1, 0, 0, 0 .2byte 74 .2byte 13 .2byte 153 @@ -1094,18 +1009,16 @@ .byte 35 .byte 70 .byte 210 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_NINJASK .string "NINAS$ " .string "ELIAS$ " - .byte 11 - .2byte 0 + gfxId 11 .4byte 0x81000fff - .2byte 114 + aiPool 2, 0, 0, 1, 1, 1 .2byte 103 .2byte 154 .2byte 28 @@ -1116,18 +1029,16 @@ .byte 70 .byte 70 .byte 220 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SWELLOW .string "WELOW$ " .string "JADE$ " - .byte 18 - .2byte 0 + gfxId 18 .4byte 0x80800fff - .2byte 14 + aiPool 2, 1, 1, 0, 0, 0 .2byte 97 .2byte 332 .2byte 17 @@ -1138,18 +1049,16 @@ .byte 75 .byte 40 .byte 230 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_MIGHTYENA .string "YENA$ " .string "FRANCIS$" - .byte 44 - .2byte 0 + gfxId 44 .4byte 0x80400fff - .2byte 98 + aiPool 2, 0, 0, 0, 1, 1 .2byte 269 .2byte 168 .2byte 316 @@ -1160,18 +1069,16 @@ .byte 70 .byte 70 .byte 240 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_BEAUTIFLY .string "TIFLY$ " .string "ALISHA$ " - .byte 26 - .2byte 0 + gfxId 26 .4byte 0x80200fff - .2byte 42 + aiPool 2, 0, 1, 0, 1, 0 .2byte 234 .2byte 318 .2byte 78 @@ -1182,18 +1089,16 @@ .byte 80 .byte 100 .byte 250 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SEAKING .string "KINGSEA$ " .string "SAUL$ " - .byte 31 - .2byte 0 + gfxId 31 .4byte 0x80100fff - .2byte 118 + aiPool 2, 1, 0, 1, 1, 1 .2byte 175 .2byte 48 .2byte 30 @@ -1204,18 +1109,16 @@ .byte 70 .byte 90 .byte 200 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_CASTFORM .string "CASTER$ " .string "FELICIA$" - .byte 47 - .2byte 0 + gfxId 47 .4byte 0x80080fff - .2byte 126 + aiPool 2, 1, 1, 1, 1, 1 .2byte 241 .2byte 311 .2byte 201 @@ -1226,18 +1129,16 @@ .byte 50 .byte 65 .byte 210 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_MACHOKE .string "CHOKEM$ " .string "EMILIO$ " - .byte 38 - .2byte 0 + gfxId 38 .4byte 0x80040fff - .2byte 70 + aiPool 2, 1, 0, 0, 0, 1 .2byte 69 .2byte 116 .2byte 2 @@ -1248,18 +1149,16 @@ .byte 60 .byte 50 .byte 220 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_LOMBRE .string "LOMBE$ " .string "KARLA$ " - .byte 10 - .2byte 0 + gfxId 10 .4byte 0x80020fff - .2byte 58 + aiPool 2, 0, 1, 1, 1, 0 .2byte 213 .2byte 148 .2byte 253 @@ -1270,18 +1169,16 @@ .byte 45 .byte 70 .byte 230 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SEVIPER .string "VIPES$ " .string "DARRYL$ " - .byte 33 - .2byte 0 + gfxId 33 .4byte 0x80010fff - .2byte 98 + aiPool 2, 0, 0, 0, 1, 1 .2byte 305 .2byte 137 .2byte 35 @@ -1292,18 +1189,16 @@ .byte 40 .byte 100 .byte 240 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_WAILMER .string "MERAIL$ " .string "SELENA$ " - .byte 22 - .2byte 0 + gfxId 22 .4byte 0x80008fff - .2byte 26 + aiPool 2, 0, 1, 1, 0, 0 .2byte 352 .2byte 156 .2byte 323 @@ -1314,18 +1209,16 @@ .byte 50 .byte 30 .byte 250 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_MAGIKARP .string "KARPAG$ " .string "NOEL$ " - .byte 35 - .2byte 0 + gfxId 35 .4byte 0x80004fff - .2byte 82 + aiPool 2, 0, 0, 1, 0, 1 .2byte 33 .2byte 150 .2byte 175 @@ -1336,18 +1229,16 @@ .byte 50 .byte 160 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_LUNATONE .string "LUNONE$ " .string "LACEY$ " - .byte 16 - .2byte 0 + gfxId 16 .4byte 0x80002fff - .2byte 42 + aiPool 2, 0, 1, 0, 1, 0 .2byte 153 .2byte 248 .2byte 94 @@ -1358,18 +1249,16 @@ .byte 70 .byte 50 .byte 210 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_ABSOL .string "ABSO$ " .string "CORBIN$ " - .byte 39 - .2byte 0 + gfxId 39 .4byte 0x80001fff - .2byte 14 + aiPool 2, 1, 1, 0, 0, 0 .2byte 195 .2byte 258 .2byte 63 @@ -1380,18 +1269,16 @@ .byte 35 .byte 35 .byte 220 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_EXEGGUTOR .string "EGGSOR$ " .string "GRACIE$ " - .byte 32 - .2byte 0 + gfxId 32 .4byte 0xc000fff - .2byte 98 + aiPool 2, 0, 0, 0, 1, 1 .2byte 23 .2byte 95 .2byte 121 @@ -1402,18 +1289,16 @@ .byte 100 .byte 80 .byte 200 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_CUBONE .string "CUBIN$ " .string "COLTIN$ " - .byte 65 - .2byte 0 + gfxId 65 .4byte 0x82000fff - .2byte 82 + aiPool 2, 0, 0, 1, 0, 1 .2byte 125 .2byte 155 .2byte 198 @@ -1424,18 +1309,16 @@ .byte 35 .byte 100 .byte 210 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_HITMONLEE .string "HITMON$ " .string "ELLIE$ " - .byte 22 - .2byte 0 + gfxId 22 .4byte 0x21000fff - .2byte 70 + aiPool 2, 1, 0, 0, 0, 1 .2byte 179 .2byte 279 .2byte 116 @@ -1446,18 +1329,16 @@ .byte 50 .byte 100 .byte 220 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SQUIRTLE .string "SURTLE$ " .string "MARCUS$ " - .byte 49 - .2byte 0 + gfxId 49 .4byte 0x20800fff - .2byte 82 + aiPool 2, 0, 0, 1, 0, 1 .2byte 39 .2byte 145 .2byte 264 @@ -1468,18 +1349,16 @@ .byte 40 .byte 95 .byte 230 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_KANGASKHAN .string "KHANKAN$ " .string "KIARA$ " - .byte 14 - .2byte 0 + gfxId 14 .4byte 0x80400fff - .2byte 70 + aiPool 2, 1, 0, 0, 0, 1 .2byte 5 .2byte 99 .2byte 264 @@ -1490,18 +1369,16 @@ .byte 50 .byte 100 .byte 240 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_PINECO .string "PINOC$ " .string "BRYCE$ " - .byte 36 - .2byte 0 + gfxId 36 .4byte 0x10200fff - .2byte 42 + aiPool 2, 0, 1, 0, 1, 0 .2byte 153 .2byte 191 .2byte 113 @@ -1512,18 +1389,16 @@ .byte 80 .byte 80 .byte 250 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_DUNSPARCE .string "DILTOT$ " .string "JAMIE$ " - .byte 34 - .2byte 0 + gfxId 34 .4byte 0x20100fff - .2byte 82 + aiPool 2, 0, 0, 1, 0, 1 .2byte 180 .2byte 281 .2byte 111 @@ -1534,18 +1409,16 @@ .byte 40 .byte 110 .byte 240 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_HOUNDOOM .string "DOOMOND$ " .string "JORGE$ " - .byte 48 - .2byte 0 + gfxId 48 .4byte 0x8080fff - .2byte 14 + aiPool 2, 1, 1, 0, 0, 0 .2byte 46 .2byte 53 .2byte 185 @@ -1556,18 +1429,16 @@ .byte 25 .byte 80 .byte 230 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_MILTANK .string "MILKAN$ " .string "DEVON$ " - .byte 25 - .2byte 0 + gfxId 25 .4byte 0x40040fff - .2byte 26 + aiPool 2, 0, 1, 1, 0, 0 .2byte 208 .2byte 215 .2byte 111 @@ -1578,18 +1449,16 @@ .byte 35 .byte 40 .byte 220 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_GYARADOS .string "RADOS$ " .string "JUSTINA$" - .byte 32 - .2byte 0 + gfxId 32 .4byte 0x84000fff - .2byte 79 + aiPool 3, 1, 1, 0, 0, 1 .2byte 63 .2byte 56 .2byte 240 @@ -1600,18 +1469,16 @@ .byte 40 .byte 160 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_LOUDRED .string "LOUDERD$ " .string "RALPH$ " - .byte 21 - .2byte 0 + gfxId 21 .4byte 0x82000fff - .2byte 71 + aiPool 3, 1, 0, 0, 0, 1 .2byte 304 .2byte 23 .2byte 46 @@ -1622,18 +1489,16 @@ .byte 150 .byte 160 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SKITTY .string "SITTY$ " .string "ROSA$ " - .byte 8 - .2byte 0 + gfxId 8 .4byte 0x81000fff - .2byte 59 + aiPool 3, 0, 1, 1, 1, 0 .2byte 213 .2byte 274 .2byte 185 @@ -1644,18 +1509,16 @@ .byte 185 .byte 60 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SLAKING .string "SLING$ " .string "KEATON$ " - .byte 11 - .2byte 0 + gfxId 11 .4byte 0x80800fff - .2byte 115 + aiPool 3, 0, 0, 1, 1, 1 .2byte 343 .2byte 68 .2byte 227 @@ -1666,18 +1529,16 @@ .byte 110 .byte 150 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_ALTARIA .string "TARIA$ " .string "MAYRA$ " - .byte 18 - .2byte 0 + gfxId 18 .4byte 0x80400fff - .2byte 15 + aiPool 3, 1, 1, 0, 0, 0 .2byte 349 .2byte 63 .2byte 195 @@ -1688,18 +1549,16 @@ .byte 30 .byte 90 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_KIRLIA .string "LIRKI$ " .string "LAMAR$ " - .byte 15 - .2byte 0 + gfxId 15 .4byte 0x80200fff - .2byte 39 + aiPool 3, 1, 0, 0, 1, 0 .2byte 351 .2byte 247 .2byte 285 @@ -1710,18 +1569,16 @@ .byte 230 .byte 80 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_BELLOSSOM .string "BLOSSOM$ " .string "AUBREY$ " - .byte 26 - .2byte 0 + gfxId 26 .4byte 0x80100fff - .2byte 59 + aiPool 3, 0, 1, 1, 1, 0 .2byte 80 .2byte 230 .2byte 78 @@ -1732,18 +1589,16 @@ .byte 130 .byte 40 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SABLEYE .string "EYESAB$ " .string "NIGEL$ " - .byte 31 - .2byte 0 + gfxId 31 .4byte 0x80080fff - .2byte 115 + aiPool 3, 0, 0, 1, 1, 1 .2byte 212 .2byte 185 .2byte 282 @@ -1754,18 +1609,16 @@ .byte 150 .byte 160 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_NATU .string "UTAN$ " .string "CAMILLE$" - .byte 47 - .2byte 0 + gfxId 47 .4byte 0x80040fff - .2byte 115 + aiPool 3, 0, 0, 1, 1, 1 .2byte 101 .2byte 248 .2byte 109 @@ -1776,18 +1629,16 @@ .byte 130 .byte 170 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SHARPEDO .string "PEDOS$ " .string "DEON$ " - .byte 38 - .2byte 0 + gfxId 38 .4byte 0x80020fff - .2byte 87 + aiPool 3, 1, 0, 1, 0, 1 .2byte 97 .2byte 207 .2byte 269 @@ -1798,18 +1649,16 @@ .byte 75 .byte 100 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_LUVDISC .string "LUVIS$ " .string "JANELLE$" - .byte 10 - .2byte 0 + gfxId 10 .4byte 0x80010fff - .2byte 83 + aiPool 3, 0, 0, 1, 0, 1 .2byte 186 .2byte 213 .2byte 36 @@ -1820,18 +1669,16 @@ .byte 40 .byte 190 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_HERACROSS .string "HEROSS$ " .string "HEATH$ " - .byte 33 - .2byte 0 + gfxId 33 .4byte 0x80008fff - .2byte 71 + aiPool 3, 1, 0, 0, 0, 1 .2byte 70 .2byte 203 .2byte 179 @@ -1842,18 +1689,16 @@ .byte 240 .byte 140 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_ELECTRODE .string "RODLECT$ " .string "SASHA$ " - .byte 6 - .2byte 0 + gfxId 6 .4byte 0x80004fff - .2byte 15 + aiPool 3, 1, 1, 0, 0, 0 .2byte 153 .2byte 113 .2byte 129 @@ -1864,18 +1709,16 @@ .byte 35 .byte 50 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_PICHU .string "CHUPY$ " .string "FRANKIE$" - .byte 35 - .2byte 0 + gfxId 35 .4byte 0x80002fff - .2byte 59 + aiPool 3, 0, 1, 1, 1, 0 .2byte 186 .2byte 213 .2byte 156 @@ -1886,18 +1729,16 @@ .byte 115 .byte 120 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_WOBBUFFET .string "WOBET$ " .string "HELEN$ " - .byte 16 - .2byte 0 + gfxId 16 .4byte 0x80001fff - .2byte 111 + aiPool 3, 1, 1, 0, 1, 1 .2byte 68 .2byte 243 .2byte 219 @@ -1908,18 +1749,16 @@ .byte 220 .byte 210 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_GENGAR .string "GAREN$ " .string "CAMILE$ " - .byte 40 - .2byte 0 + gfxId 40 .4byte 0xc000fff - .2byte 71 + aiPool 3, 1, 0, 0, 0, 1 .2byte 194 .2byte 109 .2byte 122 @@ -1930,18 +1769,16 @@ .byte 80 .byte 180 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_PORYGON .string "GONPOR$ " .string "MARTIN$ " - .byte 46 - .2byte 0 + gfxId 46 .4byte 0x82000fff - .2byte 127 + aiPool 3, 1, 1, 1, 1, 1 .2byte 176 .2byte 160 .2byte 216 @@ -1952,18 +1789,16 @@ .byte 130 .byte 130 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_DRAGONITE .string "DRITE$ " .string "SERGIO$ " - .byte 7 - .2byte 0 + gfxId 7 .4byte 0x21000fff - .2byte 71 + aiPool 3, 1, 0, 0, 0, 1 .2byte 200 .2byte 21 .2byte 239 @@ -1974,18 +1809,16 @@ .byte 120 .byte 150 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_MEOWTH .string "MEOWY$ " .string "KAILEY$ " - .byte 6 - .2byte 0 + gfxId 6 .4byte 0x20800fff - .2byte 51 + aiPool 3, 0, 0, 1, 1, 0 .2byte 45 .2byte 269 .2byte 6 @@ -1996,18 +1829,16 @@ .byte 170 .byte 80 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_JYNX .string "NYX$ " .string "PERLA$ " - .byte 45 - .2byte 0 + gfxId 45 .4byte 0x80400fff - .2byte 43 + aiPool 3, 0, 1, 0, 1, 0 .2byte 195 .2byte 212 .2byte 142 @@ -2018,18 +1849,16 @@ .byte 150 .byte 120 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_TOGEPI .string "GEPITO$ " .string "CLARA$ " - .byte 20 - .2byte 0 + gfxId 20 .4byte 0x10200fff - .2byte 19 + aiPool 3, 0, 0, 1, 0, 0 .2byte 45 .2byte 281 .2byte 227 @@ -2040,18 +1869,16 @@ .byte 120 .byte 80 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_ESPEON .string "SPEON$ " .string "JAKOB$ " - .byte 37 - .2byte 0 + gfxId 37 .4byte 0x20100fff - .2byte 15 + aiPool 3, 1, 1, 0, 0, 0 .2byte 129 .2byte 98 .2byte 234 @@ -2062,18 +1889,16 @@ .byte 80 .byte 150 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_SLOWKING .string "SLOWGO$ " .string "TREY$ " - .byte 49 - .2byte 0 + gfxId 49 .4byte 0x8080fff - .2byte 83 + aiPool 3, 0, 0, 1, 0, 1 .2byte 263 .2byte 174 .2byte 281 @@ -2084,18 +1909,16 @@ .byte 110 .byte 170 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff + .2byte SPECIES_URSARING .string "URSING$ " .string "LANE$ " - .byte 44 - .2byte 0 + gfxId 44 .4byte 0x40040fff - .2byte 71 + aiPool 3, 1, 0, 0, 0, 1 .2byte 37 .2byte 332 .2byte 313 @@ -2106,9 +1929,7 @@ .byte 80 .byte 190 .byte 255 - .4byte 0x0 - .4byte 0x0 - .4byte 0x0 + unk2C .4byte 0x0 .4byte 0xffff diff --git a/include/contest.h b/include/contest.h index 4fbec9d220..a803c6d4c7 100644 --- a/include/contest.h +++ b/include/contest.h @@ -208,15 +208,17 @@ struct ContestPokemon { /*0x00*/ u16 species; /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; - /*0x0D*/ u8 trainerName[8]; + /*0x0D*/ u8 trainerName[PLAYER_NAME_LENGTH + 1]; /*0x15*/ u8 trainerGfxId; + // Temp note: 2 bytes of padding /*0x18*/ u32 flags; - /*0x1C*/ u8 whichRank:2; - u8 aiPool_Cool:1; - u8 aiPool_Beauty:1; - u8 aiPool_Cute:1; - u8 aiPool_Smart:1; - u8 aiPool_Tough:1; + /*0x1C*/ u8 whichRank:2; // 0x1 0x2 + u8 aiPool_Cool:1; // 0x4 + u8 aiPool_Beauty:1; // 0x8 + u8 aiPool_Cute:1; // 0x10 + u8 aiPool_Smart:1; // 0x20 + u8 aiPool_Tough:1; // 0x40 + // Temp note: 1 byte of padding /*0x1E*/ u16 moves[4]; // moves /*0x26*/ u8 cool; // cool /*0x27*/ u8 beauty; // beauty @@ -227,7 +229,7 @@ struct ContestPokemon /*0x2C*/ u8 unk2C[12]; /*0x38*/ u32 personality; // personality /*0x3C*/ u32 otId; // otId -}; // wow +}; struct Shared18000 { diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index 580d7916ed..07d41d824f 100644 --- a/src/data/contest_opponents.h +++ b/src/data/contest_opponents.h @@ -77,4 +77,10 @@ const struct ContestWinner gUnknown_08587FA4[] = .trainerName = _("OMAR"), .contestRank = CONTEST_RANK_MASTER } -}; \ No newline at end of file +}; +/* +const struct ContestPokemon gContestOpponents[] = +{ + +};*/ +extern const struct ContestPokemon gContestOpponents[96]; \ No newline at end of file From 0e8f94a83e01d224968ab8f54e4d4f35be156ec0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Mar 2019 02:49:57 -0500 Subject: [PATCH 05/11] Last bit of cleanup on contest_opponents --- data/contest_opponents.inc | 760 ++++++++++++++++++------------------- 1 file changed, 380 insertions(+), 380 deletions(-) diff --git a/data/contest_opponents.inc b/data/contest_opponents.inc index 81510ac187..e3421d81f9 100644 --- a/data/contest_opponents.inc +++ b/data/contest_opponents.inc @@ -19,10 +19,10 @@ gfxId 7 .4byte 0xc000fff aiPool 0, 1, 0, 0, 0, 1 - .2byte 46 - .2byte 44 - .2byte 36 - .2byte 336 + .2byte MOVE_ROAR + .2byte MOVE_BITE + .2byte MOVE_TAKE_DOWN + .2byte MOVE_HOWL .byte 10 .byte 4 .byte 10 @@ -39,10 +39,10 @@ gfxId 8 .4byte 0x82000fff aiPool 0, 0, 0, 1, 0, 0 - .2byte 156 - .2byte 263 - .2byte 33 - .2byte 343 + .2byte MOVE_REST + .2byte MOVE_FACADE + .2byte MOVE_TACKLE + .2byte MOVE_COVET .byte 10 .byte 10 .byte 6 @@ -59,10 +59,10 @@ gfxId 11 .4byte 0x21000fff aiPool 0, 0, 1, 0, 0, 0 - .2byte 318 - .2byte 236 - .2byte 113 - .2byte 16 + .2byte MOVE_SILVER_WIND + .2byte MOVE_MOONLIGHT + .2byte MOVE_LIGHT_SCREEN + .2byte MOVE_GUST .byte 2 .byte 10 .byte 10 @@ -79,10 +79,10 @@ gfxId 16 .4byte 0x20800fff aiPool 0, 0, 0, 0, 1, 1 - .2byte 117 - .2byte 235 - .2byte 331 - .2byte 74 + .2byte MOVE_BIDE + .2byte MOVE_SYNTHESIS + .2byte MOVE_BULLET_SEED + .2byte MOVE_GROWTH .byte 3 .byte 3 .byte 5 @@ -99,10 +99,10 @@ gfxId 18 .4byte 0x80400fff aiPool 0, 1, 0, 0, 0, 0 - .2byte 17 - .2byte 97 - .2byte 332 - .2byte 45 + .2byte MOVE_WING_ATTACK + .2byte MOVE_AGILITY + .2byte MOVE_AERIAL_ACE + .2byte MOVE_GROWL .byte 1 .byte 3 .byte 3 @@ -119,10 +119,10 @@ gfxId 44 .4byte 0x10200fff aiPool 0, 0, 0, 0, 1, 0 - .2byte 141 - .2byte 206 - .2byte 154 - .2byte 170 + .2byte MOVE_LEECH_LIFE + .2byte MOVE_FALSE_SWIPE + .2byte MOVE_FURY_SWIPES + .2byte MOVE_MIND_READER .byte 5 .byte 2 .byte 10 @@ -139,10 +139,10 @@ gfxId 35 .4byte 0x20100fff aiPool 0, 0, 0, 0, 1, 0 - .2byte 78 - .2byte 73 - .2byte 72 - .2byte 213 + .2byte MOVE_STUN_SPORE + .2byte MOVE_LEECH_SEED + .2byte MOVE_MEGA_DRAIN + .2byte MOVE_ATTRACT .byte 3 .byte 3 .byte 10 @@ -159,10 +159,10 @@ gfxId 26 .4byte 0x8080fff aiPool 0, 0, 1, 1, 0, 0 - .2byte 62 - .2byte 55 - .2byte 45 - .2byte 317 + .2byte MOVE_AURORA_BEAM + .2byte MOVE_WATER_GUN + .2byte MOVE_GROWL + .2byte MOVE_ROCK_TOMB .byte 3 .byte 5 .byte 1 @@ -179,10 +179,10 @@ gfxId 31 .4byte 0x40040fff aiPool 0, 0, 1, 1, 0, 1 - .2byte 70 - .2byte 68 - .2byte 281 - .2byte 227 + .2byte MOVE_STRENGTH + .2byte MOVE_COUNTER + .2byte MOVE_YAWN + .2byte MOVE_ENCORE .byte 10 .byte 4 .byte 4 @@ -199,10 +199,10 @@ gfxId 47 .4byte 0x80020fff aiPool 0, 1, 0, 0, 1, 0 - .2byte 310 - .2byte 103 - .2byte 253 - .2byte 304 + .2byte MOVE_ASTONISH + .2byte MOVE_SCREECH + .2byte MOVE_UPROAR + .2byte MOVE_HYPER_VOICE .byte 2 .byte 2 .byte 7 @@ -219,10 +219,10 @@ gfxId 38 .4byte 0x8010fff aiPool 0, 1, 0, 0, 0, 1 - .2byte 69 - .2byte 233 - .2byte 33 - .2byte 179 + .2byte MOVE_SEISMIC_TOSS + .2byte MOVE_VITAL_THROW + .2byte MOVE_TACKLE + .2byte MOVE_REVERSAL .byte 9 .byte 1 .byte 1 @@ -239,10 +239,10 @@ gfxId 10 .4byte 0x8008fff aiPool 0, 1, 0, 0, 0, 1 - .2byte 232 - .2byte 334 - .2byte 29 - .2byte 36 + .2byte MOVE_METAL_CLAW + .2byte MOVE_IRON_DEFENSE + .2byte MOVE_HEADBUTT + .2byte MOVE_TAKE_DOWN .byte 5 .byte 10 .byte 2 @@ -259,10 +259,10 @@ gfxId 33 .4byte 0x90004fff aiPool 0, 0, 1, 1, 1, 0 - .2byte 114 - .2byte 212 - .2byte 109 - .2byte 141 + .2byte MOVE_HAZE + .2byte MOVE_MEAN_LOOK + .2byte MOVE_CONFUSE_RAY + .2byte MOVE_LEECH_LIFE .byte 4 .byte 2 .byte 2 @@ -279,10 +279,10 @@ gfxId 6 .4byte 0x40002fff aiPool 0, 0, 0, 1, 0, 0 - .2byte 124 - .2byte 133 - .2byte 92 - .2byte 281 + .2byte MOVE_SLUDGE + .2byte MOVE_AMNESIA + .2byte MOVE_TOXIC + .2byte MOVE_YAWN .byte 1 .byte 10 .byte 1 @@ -299,10 +299,10 @@ gfxId 15 .4byte 0x80001fff aiPool 0, 1, 1, 0, 0, 0 - .2byte 209 - .2byte 86 - .2byte 87 - .2byte 46 + .2byte MOVE_SPARK + .2byte MOVE_THUNDER_WAVE + .2byte MOVE_THUNDER + .2byte MOVE_ROAR .byte 20 .byte 10 .byte 1 @@ -319,10 +319,10 @@ gfxId 20 .4byte 0xc000fff aiPool 0, 0, 0, 1, 1, 0 - .2byte 45 - .2byte 73 - .2byte 33 - .2byte 230 + .2byte MOVE_GROWL + .2byte MOVE_LEECH_SEED + .2byte MOVE_TACKLE + .2byte MOVE_SWEET_SCENT .byte 5 .byte 3 .byte 10 @@ -339,10 +339,10 @@ gfxId 40 .4byte 0x82000fff aiPool 0, 0, 1, 0, 1, 0 - .2byte 48 - .2byte 18 - .2byte 318 - .2byte 219 + .2byte MOVE_SUPERSONIC + .2byte MOVE_WHIRLWIND + .2byte MOVE_SILVER_WIND + .2byte MOVE_SAFEGUARD .byte 3 .byte 10 .byte 2 @@ -359,10 +359,10 @@ gfxId 34 .4byte 0x21000fff aiPool 0, 1, 1, 0, 0, 0 - .2byte 119 - .2byte 98 - .2byte 332 - .2byte 297 + .2byte MOVE_MIRROR_MOVE + .2byte MOVE_QUICK_ATTACK + .2byte MOVE_AERIAL_ACE + .2byte MOVE_FEATHER_DANCE .byte 10 .byte 8 .byte 4 @@ -379,10 +379,10 @@ gfxId 55 .4byte 0x20800fff aiPool 0, 0, 0, 0, 1, 1 - .2byte 91 - .2byte 89 - .2byte 90 - .2byte 222 + .2byte MOVE_DIG + .2byte MOVE_EARTHQUAKE + .2byte MOVE_FISSURE + .2byte MOVE_MAGNITUDE .byte 4 .byte 2 .byte 3 @@ -399,10 +399,10 @@ gfxId 53 .4byte 0x80400fff aiPool 0, 0, 1, 0, 0, 1 - .2byte 56 - .2byte 240 - .2byte 34 - .2byte 58 + .2byte MOVE_HYDRO_PUMP + .2byte MOVE_RAIN_DANCE + .2byte MOVE_BODY_SLAM + .2byte MOVE_ICE_BEAM .byte 2 .byte 10 .byte 5 @@ -419,10 +419,10 @@ gfxId 5 .4byte 0x10200fff aiPool 0, 1, 1, 0, 0, 0 - .2byte 99 - .2byte 103 - .2byte 57 - .2byte 59 + .2byte MOVE_RAGE + .2byte MOVE_SCREECH + .2byte MOVE_SURF + .2byte MOVE_BLIZZARD .byte 6 .byte 10 .byte 2 @@ -439,10 +439,10 @@ gfxId 45 .4byte 0x20100fff aiPool 0, 1, 0, 1, 0, 0 - .2byte 226 - .2byte 97 - .2byte 129 - .2byte 213 + .2byte MOVE_BATON_PASS + .2byte MOVE_AGILITY + .2byte MOVE_SWIFT + .2byte MOVE_ATTRACT .byte 8 .byte 6 .byte 8 @@ -459,10 +459,10 @@ gfxId 66 .4byte 0x8080fff aiPool 0, 0, 0, 1, 1, 1 - .2byte 217 - .2byte 263 - .2byte 264 - .2byte 216 + .2byte MOVE_PRESENT + .2byte MOVE_FACADE + .2byte MOVE_FOCUS_PUNCH + .2byte MOVE_RETURN .byte 4 .byte 3 .byte 10 @@ -479,10 +479,10 @@ gfxId 39 .4byte 0x40040fff aiPool 0, 0, 0, 0, 0, 1 - .2byte 37 - .2byte 259 - .2byte 242 - .2byte 91 + .2byte MOVE_THRASH + .2byte MOVE_TORMENT + .2byte MOVE_CRUNCH + .2byte MOVE_DIG .byte 8 .byte 5 .byte 5 @@ -499,10 +499,10 @@ gfxId 32 .4byte 0x24000fff aiPool 1, 0, 1, 0, 1, 0 - .2byte 80 - .2byte 345 - .2byte 320 - .2byte 275 + .2byte MOVE_PETAL_DANCE + .2byte MOVE_MAGICAL_LEAF + .2byte MOVE_GRASS_WHISTLE + .2byte MOVE_INGRAIN .byte 50 .byte 15 .byte 75 @@ -519,10 +519,10 @@ gfxId 51 .4byte 0x82000fff aiPool 1, 1, 1, 1, 1, 1 - .2byte 64 - .2byte 31 - .2byte 216 - .2byte 45 + .2byte MOVE_PECK + .2byte MOVE_FURY_ATTACK + .2byte MOVE_RETURN + .2byte MOVE_GROWL .byte 15 .byte 21 .byte 15 @@ -539,10 +539,10 @@ gfxId 8 .4byte 0x81000fff aiPool 1, 0, 0, 1, 1, 1 - .2byte 44 - .2byte 28 - .2byte 91 - .2byte 185 + .2byte MOVE_BITE + .2byte MOVE_SAND_ATTACK + .2byte MOVE_DIG + .2byte MOVE_FAINT_ATTACK .byte 75 .byte 25 .byte 25 @@ -559,10 +559,10 @@ gfxId 11 .4byte 0x80800fff aiPool 1, 1, 0, 0, 1, 0 - .2byte 191 - .2byte 43 - .2byte 40 - .2byte 28 + .2byte MOVE_SPIKES + .2byte MOVE_LEER + .2byte MOVE_POISON_STING + .2byte MOVE_SAND_ATTACK .byte 10 .byte 30 .byte 25 @@ -579,10 +579,10 @@ gfxId 18 .4byte 0x10400fff aiPool 1, 1, 0, 0, 0, 1 - .2byte 163 - .2byte 111 - .2byte 129 - .2byte 154 + .2byte MOVE_SLASH + .2byte MOVE_DEFENSE_CURL + .2byte MOVE_SWIFT + .2byte MOVE_FURY_SWIPES .byte 30 .byte 90 .byte 30 @@ -599,10 +599,10 @@ gfxId 44 .4byte 0x8200fff aiPool 1, 0, 1, 0, 1, 0 - .2byte 120 - .2byte 317 - .2byte 60 - .2byte 93 + .2byte MOVE_SELF_DESTRUCT + .2byte MOVE_ROCK_TOMB + .2byte MOVE_PSYBEAM + .2byte MOVE_CONFUSION .byte 50 .byte 40 .byte 10 @@ -619,10 +619,10 @@ gfxId 26 .4byte 0x10100fff aiPool 1, 1, 1, 0, 0, 1 - .2byte 179 - .2byte 9 - .2byte 7 - .2byte 8 + .2byte MOVE_REVERSAL + .2byte MOVE_THUNDER_PUNCH + .2byte MOVE_FIRE_PUNCH + .2byte MOVE_ICE_PUNCH .byte 40 .byte 20 .byte 40 @@ -639,10 +639,10 @@ gfxId 31 .4byte 0x80080fff aiPool 1, 0, 0, 1, 1, 0 - .2byte 298 - .2byte 244 - .2byte 95 - .2byte 253 + .2byte MOVE_TEETER_DANCE + .2byte MOVE_PSYCH_UP + .2byte MOVE_HYPNOSIS + .2byte MOVE_UPROAR .byte 25 .byte 75 .byte 25 @@ -659,10 +659,10 @@ gfxId 47 .4byte 0xa0040fff aiPool 1, 0, 1, 0, 1, 0 - .2byte 119 - .2byte 195 - .2byte 219 - .2byte 54 + .2byte MOVE_MIRROR_MOVE + .2byte MOVE_PERISH_SONG + .2byte MOVE_SAFEGUARD + .2byte MOVE_MIST .byte 30 .byte 30 .byte 40 @@ -699,10 +699,10 @@ gfxId 10 .4byte 0x80010fff aiPool 1, 0, 0, 0, 1, 1 - .2byte 168 - .2byte 103 - .2byte 246 - .2byte 20 + .2byte MOVE_THIEF + .2byte MOVE_SCREECH + .2byte MOVE_ANCIENT_POWER + .2byte MOVE_BIND .byte 10 .byte 10 .byte 40 @@ -719,10 +719,10 @@ gfxId 33 .4byte 0x80008fff aiPool 1, 1, 1, 0, 0, 0 - .2byte 30 - .2byte 31 - .2byte 32 - .2byte 39 + .2byte MOVE_HORN_ATTACK + .2byte MOVE_FURY_ATTACK + .2byte MOVE_HORN_DRILL + .2byte MOVE_TAIL_WHIP .byte 70 .byte 30 .byte 5 @@ -739,10 +739,10 @@ gfxId 6 .4byte 0x80004fff aiPool 1, 0, 0, 1, 1, 1 - .2byte 300 - .2byte 346 - .2byte 89 - .2byte 248 + .2byte MOVE_MUD_SPORT + .2byte MOVE_WATER_SPORT + .2byte MOVE_EARTHQUAKE + .2byte MOVE_FUTURE_SIGHT .byte 45 .byte 45 .byte 60 @@ -759,10 +759,10 @@ gfxId 35 .4byte 0x8002fff aiPool 1, 1, 1, 0, 0, 1 - .2byte 129 - .2byte 104 - .2byte 97 - .2byte 15 + .2byte MOVE_SWIFT + .2byte MOVE_DOUBLE_TEAM + .2byte MOVE_AGILITY + .2byte MOVE_CUT .byte 40 .byte 30 .byte 25 @@ -779,10 +779,10 @@ gfxId 16 .4byte 0x8001fff aiPool 1, 0, 1, 1, 1, 0 - .2byte 310 - .2byte 45 - .2byte 240 - .2byte 352 + .2byte MOVE_ASTONISH + .2byte MOVE_GROWL + .2byte MOVE_RAIN_DANCE + .2byte MOVE_WATER_PULSE .byte 15 .byte 15 .byte 30 @@ -799,10 +799,10 @@ gfxId 17 .4byte 0xc000fff aiPool 1, 0, 0, 1, 1, 0 - .2byte 281 - .2byte 50 - .2byte 45 - .2byte 93 + .2byte MOVE_YAWN + .2byte MOVE_DISABLE + .2byte MOVE_GROWL + .2byte MOVE_CONFUSION .byte 20 .byte 40 .byte 40 @@ -819,10 +819,10 @@ gfxId 66 .4byte 0x82000fff aiPool 1, 1, 0, 1, 0, 0 - .2byte 263 - .2byte 210 - .2byte 19 - .2byte 216 + .2byte MOVE_FACADE + .2byte MOVE_FURY_CUTTER + .2byte MOVE_FLY + .2byte MOVE_RETURN .byte 40 .byte 10 .byte 40 @@ -839,10 +839,10 @@ gfxId 20 .4byte 0x21000fff aiPool 1, 0, 1, 1, 0, 0 - .2byte 213 - .2byte 58 - .2byte 219 - .2byte 45 + .2byte MOVE_ATTRACT + .2byte MOVE_ICE_BEAM + .2byte MOVE_SAFEGUARD + .2byte MOVE_GROWL .byte 10 .byte 30 .byte 40 @@ -859,10 +859,10 @@ gfxId 37 .4byte 0x20800fff aiPool 1, 0, 1, 1, 1, 1 - .2byte 50 - .2byte 248 - .2byte 237 - .2byte 216 + .2byte MOVE_DISABLE + .2byte MOVE_FUTURE_SIGHT + .2byte MOVE_HIDDEN_POWER + .2byte MOVE_RETURN .byte 10 .byte 40 .byte 50 @@ -879,10 +879,10 @@ gfxId 21 .4byte 0x80400fff aiPool 1, 1, 0, 0, 0, 1 - .2byte 327 - .2byte 197 - .2byte 279 - .2byte 5 + .2byte MOVE_SKY_UPPERCUT + .2byte MOVE_DETECT + .2byte MOVE_REVENGE + .2byte MOVE_MEGA_PUNCH .byte 45 .byte 20 .byte 10 @@ -899,10 +899,10 @@ gfxId 85 .4byte 0x10200fff aiPool 1, 0, 1, 1, 0, 1 - .2byte 47 - .2byte 135 - .2byte 121 - .2byte 38 + .2byte MOVE_SING + .2byte MOVE_SOFT_BOILED + .2byte MOVE_EGG_BOMB + .2byte MOVE_DOUBLE_EDGE .byte 20 .byte 35 .byte 40 @@ -919,10 +919,10 @@ gfxId 18 .4byte 0x20100fff aiPool 1, 1, 0, 1, 0, 0 - .2byte 351 - .2byte 98 - .2byte 103 - .2byte 213 + .2byte MOVE_SHOCK_WAVE + .2byte MOVE_QUICK_ATTACK + .2byte MOVE_SCREECH + .2byte MOVE_ATTRACT .byte 40 .byte 10 .byte 40 @@ -939,10 +939,10 @@ gfxId 48 .4byte 0x8080fff aiPool 1, 0, 0, 1, 0, 1 - .2byte 184 - .2byte 269 - .2byte 39 - .2byte 44 + .2byte MOVE_SCARY_FACE + .2byte MOVE_TAUNT + .2byte MOVE_TAIL_WHIP + .2byte MOVE_BITE .byte 20 .byte 20 .byte 20 @@ -959,10 +959,10 @@ gfxId 40 .4byte 0x40040fff aiPool 1, 0, 1, 0, 1, 0 - .2byte 195 - .2byte 212 - .2byte 109 - .2byte 220 + .2byte MOVE_PERISH_SONG + .2byte MOVE_MEAN_LOOK + .2byte MOVE_CONFUSE_RAY + .2byte MOVE_PAIN_SPLIT .byte 10 .byte 35 .byte 10 @@ -979,10 +979,10 @@ gfxId 55 .4byte 0x84000fff aiPool 2, 0, 0, 0, 1, 1 - .2byte 319 - .2byte 232 - .2byte 106 - .2byte 36 + .2byte MOVE_METAL_SOUND + .2byte MOVE_METAL_CLAW + .2byte MOVE_HARDEN + .2byte MOVE_TAKE_DOWN .byte 30 .byte 50 .byte 35 @@ -999,10 +999,10 @@ gfxId 8 .4byte 0x82000fff aiPool 2, 1, 1, 0, 0, 0 - .2byte 74 - .2byte 13 - .2byte 153 - .2byte 326 + .2byte MOVE_GROWTH + .2byte MOVE_RAZOR_WIND + .2byte MOVE_EXPLOSION + .2byte MOVE_EXTRASENSORY .byte 75 .byte 75 .byte 65 @@ -1019,10 +1019,10 @@ gfxId 11 .4byte 0x81000fff aiPool 2, 0, 0, 1, 1, 1 - .2byte 103 - .2byte 154 - .2byte 28 - .2byte 226 + .2byte MOVE_SCREECH + .2byte MOVE_FURY_SWIPES + .2byte MOVE_SAND_ATTACK + .2byte MOVE_BATON_PASS .byte 30 .byte 50 .byte 95 @@ -1039,10 +1039,10 @@ gfxId 18 .4byte 0x80800fff aiPool 2, 1, 1, 0, 0, 0 - .2byte 97 - .2byte 332 - .2byte 17 - .2byte 19 + .2byte MOVE_AGILITY + .2byte MOVE_AERIAL_ACE + .2byte MOVE_WING_ATTACK + .2byte MOVE_FLY .byte 65 .byte 85 .byte 35 @@ -1059,10 +1059,10 @@ gfxId 44 .4byte 0x80400fff aiPool 2, 0, 0, 0, 1, 1 - .2byte 269 - .2byte 168 - .2byte 316 - .2byte 36 + .2byte MOVE_TAUNT + .2byte MOVE_THIEF + .2byte MOVE_ODOR_SLEUTH + .2byte MOVE_TAKE_DOWN .byte 40 .byte 80 .byte 35 @@ -1079,10 +1079,10 @@ gfxId 26 .4byte 0x80200fff aiPool 2, 0, 1, 0, 1, 0 - .2byte 234 - .2byte 318 - .2byte 78 - .2byte 290 + .2byte MOVE_MORNING_SUN + .2byte MOVE_SILVER_WIND + .2byte MOVE_STUN_SPORE + .2byte MOVE_SECRET_POWER .byte 40 .byte 70 .byte 25 @@ -1099,10 +1099,10 @@ gfxId 31 .4byte 0x80100fff aiPool 2, 1, 0, 1, 1, 1 - .2byte 175 - .2byte 48 - .2byte 30 - .2byte 31 + .2byte MOVE_FLAIL + .2byte MOVE_SUPERSONIC + .2byte MOVE_HORN_ATTACK + .2byte MOVE_FURY_ATTACK .byte 80 .byte 60 .byte 30 @@ -1119,10 +1119,10 @@ gfxId 47 .4byte 0x80080fff aiPool 2, 1, 1, 1, 1, 1 - .2byte 241 - .2byte 311 - .2byte 201 - .2byte 216 + .2byte MOVE_SUNNY_DAY + .2byte MOVE_WEATHER_BALL + .2byte MOVE_SANDSTORM + .2byte MOVE_RETURN .byte 70 .byte 80 .byte 80 @@ -1139,10 +1139,10 @@ gfxId 38 .4byte 0x80040fff aiPool 2, 1, 0, 0, 0, 1 - .2byte 69 - .2byte 116 - .2byte 2 - .2byte 184 + .2byte MOVE_SEISMIC_TOSS + .2byte MOVE_FOCUS_ENERGY + .2byte MOVE_KARATE_CHOP + .2byte MOVE_SCARY_FACE .byte 70 .byte 85 .byte 25 @@ -1159,10 +1159,10 @@ gfxId 10 .4byte 0x80020fff aiPool 2, 0, 1, 1, 1, 0 - .2byte 213 - .2byte 148 - .2byte 253 - .2byte 45 + .2byte MOVE_ATTRACT + .2byte MOVE_FLASH + .2byte MOVE_UPROAR + .2byte MOVE_GROWL .byte 40 .byte 60 .byte 90 @@ -1179,10 +1179,10 @@ gfxId 33 .4byte 0x80010fff aiPool 2, 0, 0, 0, 1, 1 - .2byte 305 - .2byte 137 - .2byte 35 - .2byte 103 + .2byte MOVE_POISON_FANG + .2byte MOVE_GLARE + .2byte MOVE_WRAP + .2byte MOVE_SCREECH .byte 35 .byte 50 .byte 90 @@ -1199,10 +1199,10 @@ gfxId 22 .4byte 0x80008fff aiPool 2, 0, 1, 1, 0, 0 - .2byte 352 - .2byte 156 - .2byte 323 - .2byte 150 + .2byte MOVE_WATER_PULSE + .2byte MOVE_REST + .2byte MOVE_WATER_SPOUT + .2byte MOVE_SPLASH .byte 30 .byte 100 .byte 100 @@ -1219,10 +1219,10 @@ gfxId 35 .4byte 0x80004fff aiPool 2, 0, 0, 1, 0, 1 - .2byte 33 - .2byte 150 - .2byte 175 - .2byte 33 + .2byte MOVE_TACKLE + .2byte MOVE_SPLASH + .2byte MOVE_FLAIL + .2byte MOVE_TACKLE .byte 30 .byte 30 .byte 160 @@ -1239,10 +1239,10 @@ gfxId 16 .4byte 0x80002fff aiPool 2, 0, 1, 0, 1, 0 - .2byte 153 - .2byte 248 - .2byte 94 - .2byte 93 + .2byte MOVE_EXPLOSION + .2byte MOVE_FUTURE_SIGHT + .2byte MOVE_PSYCHIC + .2byte MOVE_CONFUSION .byte 50 .byte 70 .byte 60 @@ -1259,10 +1259,10 @@ gfxId 39 .4byte 0x80001fff aiPool 2, 1, 1, 0, 0, 0 - .2byte 195 - .2byte 258 - .2byte 63 - .2byte 163 + .2byte MOVE_PERISH_SONG + .2byte MOVE_HAIL + .2byte MOVE_HYPER_BEAM + .2byte MOVE_SLASH .byte 95 .byte 80 .byte 85 @@ -1279,10 +1279,10 @@ gfxId 32 .4byte 0xc000fff aiPool 2, 0, 0, 0, 1, 1 - .2byte 23 - .2byte 95 - .2byte 121 - .2byte 285 + .2byte MOVE_STOMP + .2byte MOVE_HYPNOSIS + .2byte MOVE_EGG_BOMB + .2byte MOVE_SKILL_SWAP .byte 40 .byte 50 .byte 60 @@ -1299,10 +1299,10 @@ gfxId 65 .4byte 0x82000fff aiPool 2, 0, 0, 1, 0, 1 - .2byte 125 - .2byte 155 - .2byte 198 - .2byte 45 + .2byte MOVE_BONE_CLUB + .2byte MOVE_BONEMERANG + .2byte MOVE_BONE_RUSH + .2byte MOVE_GROWL .byte 40 .byte 35 .byte 85 @@ -1319,10 +1319,10 @@ gfxId 22 .4byte 0x21000fff aiPool 2, 1, 0, 0, 0, 1 - .2byte 179 - .2byte 279 - .2byte 116 - .2byte 25 + .2byte MOVE_REVERSAL + .2byte MOVE_REVENGE + .2byte MOVE_FOCUS_ENERGY + .2byte MOVE_MEGA_KICK .byte 85 .byte 30 .byte 25 @@ -1339,10 +1339,10 @@ gfxId 49 .4byte 0x20800fff aiPool 2, 0, 0, 1, 0, 1 - .2byte 39 - .2byte 145 - .2byte 264 - .2byte 110 + .2byte MOVE_TAIL_WHIP + .2byte MOVE_BUBBLE + .2byte MOVE_FOCUS_PUNCH + .2byte MOVE_WITHDRAW .byte 30 .byte 35 .byte 100 @@ -1359,10 +1359,10 @@ gfxId 14 .4byte 0x80400fff aiPool 2, 1, 0, 0, 0, 1 - .2byte 5 - .2byte 99 - .2byte 264 - .2byte 39 + .2byte MOVE_MEGA_PUNCH + .2byte MOVE_RAGE + .2byte MOVE_FOCUS_PUNCH + .2byte MOVE_TAIL_WHIP .byte 100 .byte 50 .byte 30 @@ -1379,10 +1379,10 @@ gfxId 36 .4byte 0x10200fff aiPool 2, 0, 1, 0, 1, 0 - .2byte 153 - .2byte 191 - .2byte 113 - .2byte 202 + .2byte MOVE_EXPLOSION + .2byte MOVE_SPIKES + .2byte MOVE_LIGHT_SCREEN + .2byte MOVE_GIGA_DRAIN .byte 80 .byte 80 .byte 80 @@ -1399,10 +1399,10 @@ gfxId 34 .4byte 0x20100fff aiPool 2, 0, 0, 1, 0, 1 - .2byte 180 - .2byte 281 - .2byte 111 - .2byte 36 + .2byte MOVE_SPITE + .2byte MOVE_YAWN + .2byte MOVE_DEFENSE_CURL + .2byte MOVE_TAKE_DOWN .byte 40 .byte 35 .byte 100 @@ -1419,10 +1419,10 @@ gfxId 48 .4byte 0x8080fff aiPool 2, 1, 1, 0, 0, 0 - .2byte 46 - .2byte 53 - .2byte 185 - .2byte 241 + .2byte MOVE_ROAR + .2byte MOVE_FLAMETHROWER + .2byte MOVE_FAINT_ATTACK + .2byte MOVE_SUNNY_DAY .byte 100 .byte 100 .byte 30 @@ -1439,10 +1439,10 @@ gfxId 25 .4byte 0x40040fff aiPool 2, 0, 1, 1, 0, 0 - .2byte 208 - .2byte 215 - .2byte 111 - .2byte 59 + .2byte MOVE_MILK_DRINK + .2byte MOVE_HEAL_BELL + .2byte MOVE_DEFENSE_CURL + .2byte MOVE_BLIZZARD .byte 50 .byte 110 .byte 100 @@ -1459,10 +1459,10 @@ gfxId 32 .4byte 0x84000fff aiPool 3, 1, 1, 0, 0, 1 - .2byte 63 - .2byte 56 - .2byte 240 - .2byte 44 + .2byte MOVE_HYPER_BEAM + .2byte MOVE_HYDRO_PUMP + .2byte MOVE_RAIN_DANCE + .2byte MOVE_BITE .byte 160 .byte 200 .byte 20 @@ -1479,10 +1479,10 @@ gfxId 21 .4byte 0x82000fff aiPool 3, 1, 0, 0, 0, 1 - .2byte 304 - .2byte 23 - .2byte 46 - .2byte 336 + .2byte MOVE_HYPER_VOICE + .2byte MOVE_STOMP + .2byte MOVE_ROAR + .2byte MOVE_HOWL .byte 170 .byte 50 .byte 55 @@ -1499,10 +1499,10 @@ gfxId 8 .4byte 0x81000fff aiPool 3, 0, 1, 1, 1, 0 - .2byte 213 - .2byte 274 - .2byte 185 - .2byte 39 + .2byte MOVE_ATTRACT + .2byte MOVE_ASSIST + .2byte MOVE_FAINT_ATTACK + .2byte MOVE_TAIL_WHIP .byte 40 .byte 200 .byte 150 @@ -1519,10 +1519,10 @@ gfxId 11 .4byte 0x80800fff aiPool 3, 0, 0, 1, 1, 1 - .2byte 343 - .2byte 68 - .2byte 227 - .2byte 303 + .2byte MOVE_COVET + .2byte MOVE_COUNTER + .2byte MOVE_ENCORE + .2byte MOVE_SLACK_OFF .byte 85 .byte 85 .byte 170 @@ -1539,10 +1539,10 @@ gfxId 18 .4byte 0x80400fff aiPool 3, 1, 1, 0, 0, 0 - .2byte 349 - .2byte 63 - .2byte 195 - .2byte 219 + .2byte MOVE_DRAGON_DANCE + .2byte MOVE_HYPER_BEAM + .2byte MOVE_PERISH_SONG + .2byte MOVE_SAFEGUARD .byte 170 .byte 150 .byte 30 @@ -1559,10 +1559,10 @@ gfxId 15 .4byte 0x80200fff aiPool 3, 1, 0, 0, 1, 0 - .2byte 351 - .2byte 247 - .2byte 285 - .2byte 216 + .2byte MOVE_SHOCK_WAVE + .2byte MOVE_SHADOW_BALL + .2byte MOVE_SKILL_SWAP + .2byte MOVE_RETURN .byte 230 .byte 60 .byte 60 @@ -1579,10 +1579,10 @@ gfxId 26 .4byte 0x80100fff aiPool 3, 0, 1, 1, 1, 0 - .2byte 80 - .2byte 230 - .2byte 78 - .2byte 148 + .2byte MOVE_PETAL_DANCE + .2byte MOVE_SWEET_SCENT + .2byte MOVE_STUN_SPORE + .2byte MOVE_FLASH .byte 35 .byte 200 .byte 150 @@ -1599,10 +1599,10 @@ gfxId 31 .4byte 0x80080fff aiPool 3, 0, 0, 1, 1, 1 - .2byte 212 - .2byte 185 - .2byte 282 - .2byte 109 + .2byte MOVE_MEAN_LOOK + .2byte MOVE_FAINT_ATTACK + .2byte MOVE_KNOCK_OFF + .2byte MOVE_CONFUSE_RAY .byte 25 .byte 35 .byte 230 @@ -1619,10 +1619,10 @@ gfxId 47 .4byte 0x80040fff aiPool 3, 0, 0, 1, 1, 1 - .2byte 101 - .2byte 248 - .2byte 109 - .2byte 94 + .2byte MOVE_NIGHT_SHADE + .2byte MOVE_FUTURE_SIGHT + .2byte MOVE_CONFUSE_RAY + .2byte MOVE_PSYCHIC .byte 35 .byte 35 .byte 150 @@ -1639,10 +1639,10 @@ gfxId 38 .4byte 0x80020fff aiPool 3, 1, 0, 1, 0, 1 - .2byte 97 - .2byte 207 - .2byte 269 - .2byte 36 + .2byte MOVE_AGILITY + .2byte MOVE_SWAGGER + .2byte MOVE_TAUNT + .2byte MOVE_TAKE_DOWN .byte 140 .byte 70 .byte 140 @@ -1659,10 +1659,10 @@ gfxId 10 .4byte 0x80010fff aiPool 3, 0, 0, 1, 0, 1 - .2byte 186 - .2byte 213 - .2byte 36 - .2byte 204 + .2byte MOVE_SWEET_KISS + .2byte MOVE_ATTRACT + .2byte MOVE_TAKE_DOWN + .2byte MOVE_CHARM .byte 50 .byte 100 .byte 220 @@ -1679,10 +1679,10 @@ gfxId 33 .4byte 0x80008fff aiPool 3, 1, 0, 0, 0, 1 - .2byte 70 - .2byte 203 - .2byte 179 - .2byte 317 + .2byte MOVE_STRENGTH + .2byte MOVE_ENDURE + .2byte MOVE_REVERSAL + .2byte MOVE_ROCK_TOMB .byte 170 .byte 70 .byte 110 @@ -1699,10 +1699,10 @@ gfxId 6 .4byte 0x80004fff aiPool 3, 1, 1, 0, 0, 0 - .2byte 153 - .2byte 113 - .2byte 129 - .2byte 148 + .2byte MOVE_EXPLOSION + .2byte MOVE_LIGHT_SCREEN + .2byte MOVE_SWIFT + .2byte MOVE_FLASH .byte 200 .byte 200 .byte 30 @@ -1719,10 +1719,10 @@ gfxId 35 .4byte 0x80002fff aiPool 3, 0, 1, 1, 1, 0 - .2byte 186 - .2byte 213 - .2byte 156 - .2byte 39 + .2byte MOVE_SWEET_KISS + .2byte MOVE_ATTRACT + .2byte MOVE_REST + .2byte MOVE_TAIL_WHIP .byte 25 .byte 150 .byte 180 @@ -1739,10 +1739,10 @@ gfxId 16 .4byte 0x80001fff aiPool 3, 1, 1, 0, 1, 1 - .2byte 68 - .2byte 243 - .2byte 219 - .2byte 194 + .2byte MOVE_COUNTER + .2byte MOVE_MIRROR_COAT + .2byte MOVE_SAFEGUARD + .2byte MOVE_DESTINY_BOND .byte 60 .byte 230 .byte 50 @@ -1759,10 +1759,10 @@ gfxId 40 .4byte 0xc000fff aiPool 3, 1, 0, 0, 0, 1 - .2byte 194 - .2byte 109 - .2byte 122 - .2byte 188 + .2byte MOVE_DESTINY_BOND + .2byte MOVE_CONFUSE_RAY + .2byte MOVE_LICK + .2byte MOVE_SLUDGE_BOMB .byte 200 .byte 100 .byte 50 @@ -1779,10 +1779,10 @@ gfxId 46 .4byte 0x82000fff aiPool 3, 1, 1, 1, 1, 1 - .2byte 176 - .2byte 160 - .2byte 216 - .2byte 278 + .2byte MOVE_CONVERSION_2 + .2byte MOVE_CONVERSION + .2byte MOVE_RETURN + .2byte MOVE_RECYCLE .byte 130 .byte 130 .byte 130 @@ -1799,10 +1799,10 @@ gfxId 7 .4byte 0x21000fff aiPool 3, 1, 0, 0, 0, 1 - .2byte 200 - .2byte 21 - .2byte 239 - .2byte 89 + .2byte MOVE_OUTRAGE + .2byte MOVE_SLAM + .2byte MOVE_TWISTER + .2byte MOVE_EARTHQUAKE .byte 150 .byte 140 .byte 50 @@ -1819,10 +1819,10 @@ gfxId 6 .4byte 0x20800fff aiPool 3, 0, 0, 1, 1, 0 - .2byte 45 - .2byte 269 - .2byte 6 - .2byte 44 + .2byte MOVE_GROWL + .2byte MOVE_TAUNT + .2byte MOVE_PAY_DAY + .2byte MOVE_BITE .byte 125 .byte 110 .byte 180 @@ -1839,10 +1839,10 @@ gfxId 45 .4byte 0x80400fff aiPool 3, 0, 1, 0, 1, 0 - .2byte 195 - .2byte 212 - .2byte 142 - .2byte 313 + .2byte MOVE_PERISH_SONG + .2byte MOVE_MEAN_LOOK + .2byte MOVE_LOVELY_KISS + .2byte MOVE_FAKE_TEARS .byte 100 .byte 150 .byte 100 @@ -1859,10 +1859,10 @@ gfxId 20 .4byte 0x10200fff aiPool 3, 0, 0, 1, 0, 0 - .2byte 45 - .2byte 281 - .2byte 227 - .2byte 266 + .2byte MOVE_GROWL + .2byte MOVE_YAWN + .2byte MOVE_ENCORE + .2byte MOVE_FOLLOW_ME .byte 80 .byte 120 .byte 200 @@ -1879,10 +1879,10 @@ gfxId 37 .4byte 0x20100fff aiPool 3, 1, 1, 0, 0, 0 - .2byte 129 - .2byte 98 - .2byte 234 - .2byte 39 + .2byte MOVE_SWIFT + .2byte MOVE_QUICK_ATTACK + .2byte MOVE_MORNING_SUN + .2byte MOVE_TAIL_WHIP .byte 180 .byte 150 .byte 100 @@ -1899,10 +1899,10 @@ gfxId 49 .4byte 0x8080fff aiPool 3, 0, 0, 1, 0, 1 - .2byte 263 - .2byte 174 - .2byte 281 - .2byte 264 + .2byte MOVE_FACADE + .2byte MOVE_CURSE + .2byte MOVE_YAWN + .2byte MOVE_FOCUS_PUNCH .byte 100 .byte 80 .byte 200 @@ -1919,10 +1919,10 @@ gfxId 44 .4byte 0x40040fff aiPool 3, 1, 0, 0, 0, 1 - .2byte 37 - .2byte 332 - .2byte 313 - .2byte 43 + .2byte MOVE_THRASH + .2byte MOVE_AERIAL_ACE + .2byte MOVE_FAKE_TEARS + .2byte MOVE_LEER .byte 180 .byte 140 .byte 30 From a32e8e7405dc66c29ae04bb85bf9b07cd3cb21a9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Mar 2019 20:56:36 -0500 Subject: [PATCH 06/11] Move gContestOpponents into C 2,400 LOC by hand. --- data/contest.s | 5 - data/contest_opponents.inc | 1935 ------------ .../AbandonedShip_CaptainsOffice/map.json | 2 +- src/contest.c | 1 - src/data/contest_opponents.h | 2790 ++++++++++++++++- 5 files changed, 2787 insertions(+), 1946 deletions(-) delete mode 100644 data/contest_opponents.inc diff --git a/data/contest.s b/data/contest.s index 851af78c58..b752cf8f3c 100644 --- a/data/contest.s +++ b/data/contest.s @@ -6,11 +6,6 @@ .section .rodata .align 2, 0 - - .align 2 -gContestOpponents:: @ 85880A4 - .include "data/contest_opponents.inc" - gUnknown_085898A4:: @ 85898A4 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 diff --git a/data/contest_opponents.inc b/data/contest_opponents.inc deleted file mode 100644 index e3421d81f9..0000000000 --- a/data/contest_opponents.inc +++ /dev/null @@ -1,1935 +0,0 @@ - .macro aiPool rank:req, cool:req, beauty:req, cute:req, smart:req, tough:req - .byte ((\tough) << 6) | ((\smart) << 5) | ((\cute) << 4) | ((\beauty) << 3) | ((\cool) << 2) | \rank - .byte 0 @ padding - .endm - - .macro gfxId id - .byte \id - .2byte 0 @ padding - .endm - - .macro unk2C - .4byte 0, 0, 0 - .endm - -@todo: cleanup - .2byte SPECIES_POOCHYENA - .string "POOCHY$ " - .string "JIMMY$ " - gfxId 7 - .4byte 0xc000fff - aiPool 0, 1, 0, 0, 0, 1 - .2byte MOVE_ROAR - .2byte MOVE_BITE - .2byte MOVE_TAKE_DOWN - .2byte MOVE_HOWL - .byte 10 - .byte 4 - .byte 10 - .byte 3 - .byte 4 - .byte 50 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_ILLUMISE - .string "MUSILLE$ " - .string "EDITH$ " - gfxId 8 - .4byte 0x82000fff - aiPool 0, 0, 0, 1, 0, 0 - .2byte MOVE_REST - .2byte MOVE_FACADE - .2byte MOVE_TACKLE - .2byte MOVE_COVET - .byte 10 - .byte 10 - .byte 6 - .byte 1 - .byte 2 - .byte 60 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_DUSTOX - .string "DUSTER$ " - .string "EVAN$ " - gfxId 11 - .4byte 0x21000fff - aiPool 0, 0, 1, 0, 0, 0 - .2byte MOVE_SILVER_WIND - .2byte MOVE_MOONLIGHT - .2byte MOVE_LIGHT_SCREEN - .2byte MOVE_GUST - .byte 2 - .byte 10 - .byte 10 - .byte 12 - .byte 4 - .byte 70 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SEEDOT - .string "DOTS$ " - .string "KELSEY$ " - gfxId 16 - .4byte 0x20800fff - aiPool 0, 0, 0, 0, 1, 1 - .2byte MOVE_BIDE - .2byte MOVE_SYNTHESIS - .2byte MOVE_BULLET_SEED - .2byte MOVE_GROWTH - .byte 3 - .byte 3 - .byte 5 - .byte 2 - .byte 7 - .byte 80 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_TAILLOW - .string "TATAY$ " - .string "MADISON$" - gfxId 18 - .4byte 0x80400fff - aiPool 0, 1, 0, 0, 0, 0 - .2byte MOVE_WING_ATTACK - .2byte MOVE_AGILITY - .2byte MOVE_AERIAL_ACE - .2byte MOVE_GROWL - .byte 1 - .byte 3 - .byte 3 - .byte 5 - .byte 4 - .byte 90 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_NINCADA - .string "NINDA$ " - .string "RAYMOND$" - gfxId 44 - .4byte 0x10200fff - aiPool 0, 0, 0, 0, 1, 0 - .2byte MOVE_LEECH_LIFE - .2byte MOVE_FALSE_SWIPE - .2byte MOVE_FURY_SWIPES - .2byte MOVE_MIND_READER - .byte 5 - .byte 2 - .byte 10 - .byte 7 - .byte 8 - .byte 100 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SHROOMISH - .string "SMISH$ " - .string "GRANT$ " - gfxId 35 - .4byte 0x20100fff - aiPool 0, 0, 0, 0, 1, 0 - .2byte MOVE_STUN_SPORE - .2byte MOVE_LEECH_SEED - .2byte MOVE_MEGA_DRAIN - .2byte MOVE_ATTRACT - .byte 3 - .byte 3 - .byte 10 - .byte 2 - .byte 2 - .byte 50 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SPHEAL - .string "SLEAL$ " - .string "PAIGE$ " - gfxId 26 - .4byte 0x8080fff - aiPool 0, 0, 1, 1, 0, 0 - .2byte MOVE_AURORA_BEAM - .2byte MOVE_WATER_GUN - .2byte MOVE_GROWL - .2byte MOVE_ROCK_TOMB - .byte 3 - .byte 5 - .byte 1 - .byte 10 - .byte 10 - .byte 60 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SLAKOTH - .string "SLOKTH$ " - .string "ALEC$ " - gfxId 31 - .4byte 0x40040fff - aiPool 0, 0, 1, 1, 0, 1 - .2byte MOVE_STRENGTH - .2byte MOVE_COUNTER - .2byte MOVE_YAWN - .2byte MOVE_ENCORE - .byte 10 - .byte 4 - .byte 4 - .byte 5 - .byte 18 - .byte 70 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_WHISMUR - .string "WHIRIS$ " - .string "SYDNEY$ " - gfxId 47 - .4byte 0x80020fff - aiPool 0, 1, 0, 0, 1, 0 - .2byte MOVE_ASTONISH - .2byte MOVE_SCREECH - .2byte MOVE_UPROAR - .2byte MOVE_HYPER_VOICE - .byte 2 - .byte 2 - .byte 7 - .byte 2 - .byte 7 - .byte 80 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_MAKUHITA - .string "MAHITA$ " - .string "MORRIS$ " - gfxId 38 - .4byte 0x8010fff - aiPool 0, 1, 0, 0, 0, 1 - .2byte MOVE_SEISMIC_TOSS - .2byte MOVE_VITAL_THROW - .2byte MOVE_TACKLE - .2byte MOVE_REVERSAL - .byte 9 - .byte 1 - .byte 1 - .byte 8 - .byte 1 - .byte 90 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_ARON - .string "RONAR$ " - .string "MARIAH$ " - gfxId 10 - .4byte 0x8008fff - aiPool 0, 1, 0, 0, 0, 1 - .2byte MOVE_METAL_CLAW - .2byte MOVE_IRON_DEFENSE - .2byte MOVE_HEADBUTT - .2byte MOVE_TAKE_DOWN - .byte 5 - .byte 10 - .byte 2 - .byte 10 - .byte 2 - .byte 100 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_CROBAT - .string "BATRO$ " - .string "RUSSELL$" - gfxId 33 - .4byte 0x90004fff - aiPool 0, 0, 1, 1, 1, 0 - .2byte MOVE_HAZE - .2byte MOVE_MEAN_LOOK - .2byte MOVE_CONFUSE_RAY - .2byte MOVE_LEECH_LIFE - .byte 4 - .byte 2 - .byte 2 - .byte 2 - .byte 10 - .byte 50 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_GULPIN - .string "GULIN$ " - .string "MELANIE$" - gfxId 6 - .4byte 0x40002fff - aiPool 0, 0, 0, 1, 0, 0 - .2byte MOVE_SLUDGE - .2byte MOVE_AMNESIA - .2byte MOVE_TOXIC - .2byte MOVE_YAWN - .byte 1 - .byte 10 - .byte 1 - .byte 10 - .byte 5 - .byte 60 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_MANECTRIC - .string "RIKELEC$ " - .string "CHANCE$ " - gfxId 15 - .4byte 0x80001fff - aiPool 0, 1, 1, 0, 0, 0 - .2byte MOVE_SPARK - .2byte MOVE_THUNDER_WAVE - .2byte MOVE_THUNDER - .2byte MOVE_ROAR - .byte 20 - .byte 10 - .byte 1 - .byte 1 - .byte 1 - .byte 70 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_BULBASAUR - .string "BULBY$ " - .string "AGATHA$ " - gfxId 20 - .4byte 0xc000fff - aiPool 0, 0, 0, 1, 1, 0 - .2byte MOVE_GROWL - .2byte MOVE_LEECH_SEED - .2byte MOVE_TACKLE - .2byte MOVE_SWEET_SCENT - .byte 5 - .byte 3 - .byte 10 - .byte 10 - .byte 4 - .byte 50 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_BUTTERFREE - .string "FUTTERBE$ " - .string "BEAU$ " - gfxId 40 - .4byte 0x82000fff - aiPool 0, 0, 1, 0, 1, 0 - .2byte MOVE_SUPERSONIC - .2byte MOVE_WHIRLWIND - .2byte MOVE_SILVER_WIND - .2byte MOVE_SAFEGUARD - .byte 3 - .byte 10 - .byte 2 - .byte 10 - .byte 4 - .byte 60 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_PIDGEOTTO - .string "PIDEOT$ " - .string "KAY$ " - gfxId 34 - .4byte 0x21000fff - aiPool 0, 1, 1, 0, 0, 0 - .2byte MOVE_MIRROR_MOVE - .2byte MOVE_QUICK_ATTACK - .2byte MOVE_AERIAL_ACE - .2byte MOVE_FEATHER_DANCE - .byte 10 - .byte 8 - .byte 4 - .byte 2 - .byte 3 - .byte 70 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_DIGLETT - .string "DIGLE$ " - .string "CALE$ " - gfxId 55 - .4byte 0x20800fff - aiPool 0, 0, 0, 0, 1, 1 - .2byte MOVE_DIG - .2byte MOVE_EARTHQUAKE - .2byte MOVE_FISSURE - .2byte MOVE_MAGNITUDE - .byte 4 - .byte 2 - .byte 3 - .byte 5 - .byte 10 - .byte 80 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_POLIWAG - .string "WAGIL$ " - .string "CAITLIN$" - gfxId 53 - .4byte 0x80400fff - aiPool 0, 0, 1, 0, 0, 1 - .2byte MOVE_HYDRO_PUMP - .2byte MOVE_RAIN_DANCE - .2byte MOVE_BODY_SLAM - .2byte MOVE_ICE_BEAM - .byte 2 - .byte 10 - .byte 5 - .byte 3 - .byte 10 - .byte 90 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_TOTODILE - .string "TOTDIL$ " - .string "COLBY$ " - gfxId 5 - .4byte 0x10200fff - aiPool 0, 1, 1, 0, 0, 0 - .2byte MOVE_RAGE - .2byte MOVE_SCREECH - .2byte MOVE_SURF - .2byte MOVE_BLIZZARD - .byte 6 - .byte 10 - .byte 2 - .byte 1 - .byte 5 - .byte 100 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_LEDYBA - .string "BALEDY$ " - .string "KYLIE$ " - gfxId 45 - .4byte 0x20100fff - aiPool 0, 1, 0, 1, 0, 0 - .2byte MOVE_BATON_PASS - .2byte MOVE_AGILITY - .2byte MOVE_SWIFT - .2byte MOVE_ATTRACT - .byte 8 - .byte 6 - .byte 8 - .byte 6 - .byte 2 - .byte 90 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_DELIBIRD - .string "BIRDLY$ " - .string "LIAM$ " - gfxId 66 - .4byte 0x8080fff - aiPool 0, 0, 0, 1, 1, 1 - .2byte MOVE_PRESENT - .2byte MOVE_FACADE - .2byte MOVE_FOCUS_PUNCH - .2byte MOVE_RETURN - .byte 4 - .byte 3 - .byte 10 - .byte 5 - .byte 3 - .byte 80 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_LARVITAR - .string "TARVITAR$ " - .string "MILO$ " - gfxId 39 - .4byte 0x40040fff - aiPool 0, 0, 0, 0, 0, 1 - .2byte MOVE_THRASH - .2byte MOVE_TORMENT - .2byte MOVE_CRUNCH - .2byte MOVE_DIG - .byte 8 - .byte 5 - .byte 5 - .byte 8 - .byte 10 - .byte 70 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_ROSELIA - .string "RELIA$ " - .string "KARINA$ " - gfxId 32 - .4byte 0x24000fff - aiPool 1, 0, 1, 0, 1, 0 - .2byte MOVE_PETAL_DANCE - .2byte MOVE_MAGICAL_LEAF - .2byte MOVE_GRASS_WHISTLE - .2byte MOVE_INGRAIN - .byte 50 - .byte 15 - .byte 75 - .byte 10 - .byte 20 - .byte 100 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_DODRIO - .string "DUODO$ " - .string "BOBBY$ " - gfxId 51 - .4byte 0x82000fff - aiPool 1, 1, 1, 1, 1, 1 - .2byte MOVE_PECK - .2byte MOVE_FURY_ATTACK - .2byte MOVE_RETURN - .2byte MOVE_GROWL - .byte 15 - .byte 21 - .byte 15 - .byte 85 - .byte 35 - .byte 110 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_TRAPINCH - .string "PINCHIN$ " - .string "CLAIRE$ " - gfxId 8 - .4byte 0x81000fff - aiPool 1, 0, 0, 1, 1, 1 - .2byte MOVE_BITE - .2byte MOVE_SAND_ATTACK - .2byte MOVE_DIG - .2byte MOVE_FAINT_ATTACK - .byte 75 - .byte 25 - .byte 25 - .byte 10 - .byte 25 - .byte 120 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_CACNEA - .string "NACAC$ " - .string "WILLIE$ " - gfxId 11 - .4byte 0x80800fff - aiPool 1, 1, 0, 0, 1, 0 - .2byte MOVE_SPIKES - .2byte MOVE_LEER - .2byte MOVE_POISON_STING - .2byte MOVE_SAND_ATTACK - .byte 10 - .byte 30 - .byte 25 - .byte 65 - .byte 25 - .byte 130 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SANDSLASH - .string "SHRAND$ " - .string "CASSIDY$" - gfxId 18 - .4byte 0x10400fff - aiPool 1, 1, 0, 0, 0, 1 - .2byte MOVE_SLASH - .2byte MOVE_DEFENSE_CURL - .2byte MOVE_SWIFT - .2byte MOVE_FURY_SWIPES - .byte 30 - .byte 90 - .byte 30 - .byte 10 - .byte 100 - .byte 140 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_BALTOY - .string "TOYBAL$ " - .string "MORGAN$ " - gfxId 44 - .4byte 0x8200fff - aiPool 1, 0, 1, 0, 1, 0 - .2byte MOVE_SELF_DESTRUCT - .2byte MOVE_ROCK_TOMB - .2byte MOVE_PSYBEAM - .2byte MOVE_CONFUSION - .byte 50 - .byte 40 - .byte 10 - .byte 35 - .byte 35 - .byte 150 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_MEDICHAM - .string "CHAMCHAM$ " - .string "SUMMER$ " - gfxId 26 - .4byte 0x10100fff - aiPool 1, 1, 1, 0, 0, 1 - .2byte MOVE_REVERSAL - .2byte MOVE_THUNDER_PUNCH - .2byte MOVE_FIRE_PUNCH - .2byte MOVE_ICE_PUNCH - .byte 40 - .byte 20 - .byte 40 - .byte 40 - .byte 40 - .byte 100 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SPINDA - .string "SPININ$ " - .string "MILES$ " - gfxId 31 - .4byte 0x80080fff - aiPool 1, 0, 0, 1, 1, 0 - .2byte MOVE_TEETER_DANCE - .2byte MOVE_PSYCH_UP - .2byte MOVE_HYPNOSIS - .2byte MOVE_UPROAR - .byte 25 - .byte 75 - .byte 25 - .byte 10 - .byte 25 - .byte 110 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SWABLU - .string "SWABY$ " - .string "AUDREY$ " - gfxId 47 - .4byte 0xa0040fff - aiPool 1, 0, 1, 0, 1, 0 - .2byte MOVE_MIRROR_MOVE - .2byte MOVE_PERISH_SONG - .2byte MOVE_SAFEGUARD - .2byte MOVE_MIST - .byte 30 - .byte 30 - .byte 40 - .byte 30 - .byte 25 - .byte 120 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SPOINK - .string "POINKER$ " - .string "AVERY$ " - gfxId 38 - .4byte 0x80020fff - aiPool 1, 0, 0, 1, 1, 0 - .2byte 150 - .2byte 109 - .2byte 173 - .2byte 156 - .byte 40 - .byte 10 - .byte 30 - .byte 40 - .byte 30 - .byte 130 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_KECLEON - .string "KECON$ " - .string "ARIANA$ " - gfxId 10 - .4byte 0x80010fff - aiPool 1, 0, 0, 0, 1, 1 - .2byte MOVE_THIEF - .2byte MOVE_SCREECH - .2byte MOVE_ANCIENT_POWER - .2byte MOVE_BIND - .byte 10 - .byte 10 - .byte 40 - .byte 75 - .byte 35 - .byte 140 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_GOLDEEN - .string "GOLDEN$ " - .string "ASHTON$ " - gfxId 33 - .4byte 0x80008fff - aiPool 1, 1, 1, 0, 0, 0 - .2byte MOVE_HORN_ATTACK - .2byte MOVE_FURY_ATTACK - .2byte MOVE_HORN_DRILL - .2byte MOVE_TAIL_WHIP - .byte 70 - .byte 30 - .byte 5 - .byte 30 - .byte 25 - .byte 150 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_BARBOACH - .string "BOBOACH$ " - .string "SANDRA$ " - gfxId 6 - .4byte 0x80004fff - aiPool 1, 0, 0, 1, 1, 1 - .2byte MOVE_MUD_SPORT - .2byte MOVE_WATER_SPORT - .2byte MOVE_EARTHQUAKE - .2byte MOVE_FUTURE_SIGHT - .byte 45 - .byte 45 - .byte 60 - .byte 25 - .byte 15 - .byte 100 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SKARMORY - .string "CORPY$ " - .string "CARSON$ " - gfxId 35 - .4byte 0x8002fff - aiPool 1, 1, 1, 0, 0, 1 - .2byte MOVE_SWIFT - .2byte MOVE_DOUBLE_TEAM - .2byte MOVE_AGILITY - .2byte MOVE_CUT - .byte 40 - .byte 30 - .byte 25 - .byte 60 - .byte 20 - .byte 110 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_LOTAD - .string "TADO$ " - .string "KATRINA$" - gfxId 16 - .4byte 0x8001fff - aiPool 1, 0, 1, 1, 1, 0 - .2byte MOVE_ASTONISH - .2byte MOVE_GROWL - .2byte MOVE_RAIN_DANCE - .2byte MOVE_WATER_PULSE - .byte 15 - .byte 15 - .byte 30 - .byte 15 - .byte 75 - .byte 120 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SLOWBRO - .string "BROWLO$ " - .string "LUKE$ " - gfxId 17 - .4byte 0xc000fff - aiPool 1, 0, 0, 1, 1, 0 - .2byte MOVE_YAWN - .2byte MOVE_DISABLE - .2byte MOVE_GROWL - .2byte MOVE_CONFUSION - .byte 20 - .byte 40 - .byte 40 - .byte 30 - .byte 20 - .byte 100 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_FARFETCHD - .string "FETCHIN$ " - .string "RAUL$ " - gfxId 66 - .4byte 0x82000fff - aiPool 1, 1, 0, 1, 0, 0 - .2byte MOVE_FACADE - .2byte MOVE_FURY_CUTTER - .2byte MOVE_FLY - .2byte MOVE_RETURN - .byte 40 - .byte 10 - .byte 40 - .byte 20 - .byte 20 - .byte 110 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SEEL - .string "SEELEY$ " - .string "JADA$ " - gfxId 20 - .4byte 0x21000fff - aiPool 1, 0, 1, 1, 0, 0 - .2byte MOVE_ATTRACT - .2byte MOVE_ICE_BEAM - .2byte MOVE_SAFEGUARD - .2byte MOVE_GROWL - .byte 10 - .byte 30 - .byte 40 - .byte 20 - .byte 20 - .byte 120 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_DROWZEE - .string "DROWZIN$ " - .string "ZEEK$ " - gfxId 37 - .4byte 0x20800fff - aiPool 1, 0, 1, 1, 1, 1 - .2byte MOVE_DISABLE - .2byte MOVE_FUTURE_SIGHT - .2byte MOVE_HIDDEN_POWER - .2byte MOVE_RETURN - .byte 10 - .byte 40 - .byte 50 - .byte 30 - .byte 45 - .byte 130 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_HITMONCHAN - .string "HITEMON$ " - .string "DIEGO$ " - gfxId 21 - .4byte 0x80400fff - aiPool 1, 1, 0, 0, 0, 1 - .2byte MOVE_SKY_UPPERCUT - .2byte MOVE_DETECT - .2byte MOVE_REVENGE - .2byte MOVE_MEGA_PUNCH - .byte 45 - .byte 20 - .byte 10 - .byte 20 - .byte 45 - .byte 140 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_BLISSEY - .string "BLISS$ " - .string "ALIYAH$ " - gfxId 85 - .4byte 0x10200fff - aiPool 1, 0, 1, 1, 0, 1 - .2byte MOVE_SING - .2byte MOVE_SOFT_BOILED - .2byte MOVE_EGG_BOMB - .2byte MOVE_DOUBLE_EDGE - .byte 20 - .byte 35 - .byte 40 - .byte 20 - .byte 20 - .byte 150 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_ELEKID - .string "KIDLEK$ " - .string "NATALIA$" - gfxId 18 - .4byte 0x20100fff - aiPool 1, 1, 0, 1, 0, 0 - .2byte MOVE_SHOCK_WAVE - .2byte MOVE_QUICK_ATTACK - .2byte MOVE_SCREECH - .2byte MOVE_ATTRACT - .byte 40 - .byte 10 - .byte 40 - .byte 25 - .byte 25 - .byte 140 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SNUBBULL - .string "SNUBBINS$ " - .string "DEVIN$ " - gfxId 48 - .4byte 0x8080fff - aiPool 1, 0, 0, 1, 0, 1 - .2byte MOVE_SCARY_FACE - .2byte MOVE_TAUNT - .2byte MOVE_TAIL_WHIP - .2byte MOVE_BITE - .byte 20 - .byte 20 - .byte 20 - .byte 20 - .byte 20 - .byte 130 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_MISDREAVUS - .string "DREAVIS$ " - .string "TYLOR$ " - gfxId 40 - .4byte 0x40040fff - aiPool 1, 0, 1, 0, 1, 0 - .2byte MOVE_PERISH_SONG - .2byte MOVE_MEAN_LOOK - .2byte MOVE_CONFUSE_RAY - .2byte MOVE_PAIN_SPLIT - .byte 10 - .byte 35 - .byte 10 - .byte 45 - .byte 20 - .byte 120 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_LAIRON - .string "LAIRN$ " - .string "RONNIE$ " - gfxId 55 - .4byte 0x84000fff - aiPool 2, 0, 0, 0, 1, 1 - .2byte MOVE_METAL_SOUND - .2byte MOVE_METAL_CLAW - .2byte MOVE_HARDEN - .2byte MOVE_TAKE_DOWN - .byte 30 - .byte 50 - .byte 35 - .byte 100 - .byte 90 - .byte 200 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SHIFTRY - .string "SHIFTY$ " - .string "CLAUDIA$" - gfxId 8 - .4byte 0x82000fff - aiPool 2, 1, 1, 0, 0, 0 - .2byte MOVE_GROWTH - .2byte MOVE_RAZOR_WIND - .2byte MOVE_EXPLOSION - .2byte MOVE_EXTRASENSORY - .byte 75 - .byte 75 - .byte 65 - .byte 35 - .byte 70 - .byte 210 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_NINJASK - .string "NINAS$ " - .string "ELIAS$ " - gfxId 11 - .4byte 0x81000fff - aiPool 2, 0, 0, 1, 1, 1 - .2byte MOVE_SCREECH - .2byte MOVE_FURY_SWIPES - .2byte MOVE_SAND_ATTACK - .2byte MOVE_BATON_PASS - .byte 30 - .byte 50 - .byte 95 - .byte 70 - .byte 70 - .byte 220 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SWELLOW - .string "WELOW$ " - .string "JADE$ " - gfxId 18 - .4byte 0x80800fff - aiPool 2, 1, 1, 0, 0, 0 - .2byte MOVE_AGILITY - .2byte MOVE_AERIAL_ACE - .2byte MOVE_WING_ATTACK - .2byte MOVE_FLY - .byte 65 - .byte 85 - .byte 35 - .byte 75 - .byte 40 - .byte 230 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_MIGHTYENA - .string "YENA$ " - .string "FRANCIS$" - gfxId 44 - .4byte 0x80400fff - aiPool 2, 0, 0, 0, 1, 1 - .2byte MOVE_TAUNT - .2byte MOVE_THIEF - .2byte MOVE_ODOR_SLEUTH - .2byte MOVE_TAKE_DOWN - .byte 40 - .byte 80 - .byte 35 - .byte 70 - .byte 70 - .byte 240 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_BEAUTIFLY - .string "TIFLY$ " - .string "ALISHA$ " - gfxId 26 - .4byte 0x80200fff - aiPool 2, 0, 1, 0, 1, 0 - .2byte MOVE_MORNING_SUN - .2byte MOVE_SILVER_WIND - .2byte MOVE_STUN_SPORE - .2byte MOVE_SECRET_POWER - .byte 40 - .byte 70 - .byte 25 - .byte 80 - .byte 100 - .byte 250 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SEAKING - .string "KINGSEA$ " - .string "SAUL$ " - gfxId 31 - .4byte 0x80100fff - aiPool 2, 1, 0, 1, 1, 1 - .2byte MOVE_FLAIL - .2byte MOVE_SUPERSONIC - .2byte MOVE_HORN_ATTACK - .2byte MOVE_FURY_ATTACK - .byte 80 - .byte 60 - .byte 30 - .byte 70 - .byte 90 - .byte 200 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_CASTFORM - .string "CASTER$ " - .string "FELICIA$" - gfxId 47 - .4byte 0x80080fff - aiPool 2, 1, 1, 1, 1, 1 - .2byte MOVE_SUNNY_DAY - .2byte MOVE_WEATHER_BALL - .2byte MOVE_SANDSTORM - .2byte MOVE_RETURN - .byte 70 - .byte 80 - .byte 80 - .byte 50 - .byte 65 - .byte 210 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_MACHOKE - .string "CHOKEM$ " - .string "EMILIO$ " - gfxId 38 - .4byte 0x80040fff - aiPool 2, 1, 0, 0, 0, 1 - .2byte MOVE_SEISMIC_TOSS - .2byte MOVE_FOCUS_ENERGY - .2byte MOVE_KARATE_CHOP - .2byte MOVE_SCARY_FACE - .byte 70 - .byte 85 - .byte 25 - .byte 60 - .byte 50 - .byte 220 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_LOMBRE - .string "LOMBE$ " - .string "KARLA$ " - gfxId 10 - .4byte 0x80020fff - aiPool 2, 0, 1, 1, 1, 0 - .2byte MOVE_ATTRACT - .2byte MOVE_FLASH - .2byte MOVE_UPROAR - .2byte MOVE_GROWL - .byte 40 - .byte 60 - .byte 90 - .byte 45 - .byte 70 - .byte 230 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SEVIPER - .string "VIPES$ " - .string "DARRYL$ " - gfxId 33 - .4byte 0x80010fff - aiPool 2, 0, 0, 0, 1, 1 - .2byte MOVE_POISON_FANG - .2byte MOVE_GLARE - .2byte MOVE_WRAP - .2byte MOVE_SCREECH - .byte 35 - .byte 50 - .byte 90 - .byte 40 - .byte 100 - .byte 240 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_WAILMER - .string "MERAIL$ " - .string "SELENA$ " - gfxId 22 - .4byte 0x80008fff - aiPool 2, 0, 1, 1, 0, 0 - .2byte MOVE_WATER_PULSE - .2byte MOVE_REST - .2byte MOVE_WATER_SPOUT - .2byte MOVE_SPLASH - .byte 30 - .byte 100 - .byte 100 - .byte 50 - .byte 30 - .byte 250 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_MAGIKARP - .string "KARPAG$ " - .string "NOEL$ " - gfxId 35 - .4byte 0x80004fff - aiPool 2, 0, 0, 1, 0, 1 - .2byte MOVE_TACKLE - .2byte MOVE_SPLASH - .2byte MOVE_FLAIL - .2byte MOVE_TACKLE - .byte 30 - .byte 30 - .byte 160 - .byte 50 - .byte 160 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_LUNATONE - .string "LUNONE$ " - .string "LACEY$ " - gfxId 16 - .4byte 0x80002fff - aiPool 2, 0, 1, 0, 1, 0 - .2byte MOVE_EXPLOSION - .2byte MOVE_FUTURE_SIGHT - .2byte MOVE_PSYCHIC - .2byte MOVE_CONFUSION - .byte 50 - .byte 70 - .byte 60 - .byte 70 - .byte 50 - .byte 210 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_ABSOL - .string "ABSO$ " - .string "CORBIN$ " - gfxId 39 - .4byte 0x80001fff - aiPool 2, 1, 1, 0, 0, 0 - .2byte MOVE_PERISH_SONG - .2byte MOVE_HAIL - .2byte MOVE_HYPER_BEAM - .2byte MOVE_SLASH - .byte 95 - .byte 80 - .byte 85 - .byte 35 - .byte 35 - .byte 220 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_EXEGGUTOR - .string "EGGSOR$ " - .string "GRACIE$ " - gfxId 32 - .4byte 0xc000fff - aiPool 2, 0, 0, 0, 1, 1 - .2byte MOVE_STOMP - .2byte MOVE_HYPNOSIS - .2byte MOVE_EGG_BOMB - .2byte MOVE_SKILL_SWAP - .byte 40 - .byte 50 - .byte 60 - .byte 100 - .byte 80 - .byte 200 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_CUBONE - .string "CUBIN$ " - .string "COLTIN$ " - gfxId 65 - .4byte 0x82000fff - aiPool 2, 0, 0, 1, 0, 1 - .2byte MOVE_BONE_CLUB - .2byte MOVE_BONEMERANG - .2byte MOVE_BONE_RUSH - .2byte MOVE_GROWL - .byte 40 - .byte 35 - .byte 85 - .byte 35 - .byte 100 - .byte 210 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_HITMONLEE - .string "HITMON$ " - .string "ELLIE$ " - gfxId 22 - .4byte 0x21000fff - aiPool 2, 1, 0, 0, 0, 1 - .2byte MOVE_REVERSAL - .2byte MOVE_REVENGE - .2byte MOVE_FOCUS_ENERGY - .2byte MOVE_MEGA_KICK - .byte 85 - .byte 30 - .byte 25 - .byte 50 - .byte 100 - .byte 220 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SQUIRTLE - .string "SURTLE$ " - .string "MARCUS$ " - gfxId 49 - .4byte 0x20800fff - aiPool 2, 0, 0, 1, 0, 1 - .2byte MOVE_TAIL_WHIP - .2byte MOVE_BUBBLE - .2byte MOVE_FOCUS_PUNCH - .2byte MOVE_WITHDRAW - .byte 30 - .byte 35 - .byte 100 - .byte 40 - .byte 95 - .byte 230 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_KANGASKHAN - .string "KHANKAN$ " - .string "KIARA$ " - gfxId 14 - .4byte 0x80400fff - aiPool 2, 1, 0, 0, 0, 1 - .2byte MOVE_MEGA_PUNCH - .2byte MOVE_RAGE - .2byte MOVE_FOCUS_PUNCH - .2byte MOVE_TAIL_WHIP - .byte 100 - .byte 50 - .byte 30 - .byte 50 - .byte 100 - .byte 240 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_PINECO - .string "PINOC$ " - .string "BRYCE$ " - gfxId 36 - .4byte 0x10200fff - aiPool 2, 0, 1, 0, 1, 0 - .2byte MOVE_EXPLOSION - .2byte MOVE_SPIKES - .2byte MOVE_LIGHT_SCREEN - .2byte MOVE_GIGA_DRAIN - .byte 80 - .byte 80 - .byte 80 - .byte 80 - .byte 80 - .byte 250 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_DUNSPARCE - .string "DILTOT$ " - .string "JAMIE$ " - gfxId 34 - .4byte 0x20100fff - aiPool 2, 0, 0, 1, 0, 1 - .2byte MOVE_SPITE - .2byte MOVE_YAWN - .2byte MOVE_DEFENSE_CURL - .2byte MOVE_TAKE_DOWN - .byte 40 - .byte 35 - .byte 100 - .byte 40 - .byte 110 - .byte 240 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_HOUNDOOM - .string "DOOMOND$ " - .string "JORGE$ " - gfxId 48 - .4byte 0x8080fff - aiPool 2, 1, 1, 0, 0, 0 - .2byte MOVE_ROAR - .2byte MOVE_FLAMETHROWER - .2byte MOVE_FAINT_ATTACK - .2byte MOVE_SUNNY_DAY - .byte 100 - .byte 100 - .byte 30 - .byte 25 - .byte 80 - .byte 230 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_MILTANK - .string "MILKAN$ " - .string "DEVON$ " - gfxId 25 - .4byte 0x40040fff - aiPool 2, 0, 1, 1, 0, 0 - .2byte MOVE_MILK_DRINK - .2byte MOVE_HEAL_BELL - .2byte MOVE_DEFENSE_CURL - .2byte MOVE_BLIZZARD - .byte 50 - .byte 110 - .byte 100 - .byte 35 - .byte 40 - .byte 220 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_GYARADOS - .string "RADOS$ " - .string "JUSTINA$" - gfxId 32 - .4byte 0x84000fff - aiPool 3, 1, 1, 0, 0, 1 - .2byte MOVE_HYPER_BEAM - .2byte MOVE_HYDRO_PUMP - .2byte MOVE_RAIN_DANCE - .2byte MOVE_BITE - .byte 160 - .byte 200 - .byte 20 - .byte 40 - .byte 160 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_LOUDRED - .string "LOUDERD$ " - .string "RALPH$ " - gfxId 21 - .4byte 0x82000fff - aiPool 3, 1, 0, 0, 0, 1 - .2byte MOVE_HYPER_VOICE - .2byte MOVE_STOMP - .2byte MOVE_ROAR - .2byte MOVE_HOWL - .byte 170 - .byte 50 - .byte 55 - .byte 150 - .byte 160 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SKITTY - .string "SITTY$ " - .string "ROSA$ " - gfxId 8 - .4byte 0x81000fff - aiPool 3, 0, 1, 1, 1, 0 - .2byte MOVE_ATTRACT - .2byte MOVE_ASSIST - .2byte MOVE_FAINT_ATTACK - .2byte MOVE_TAIL_WHIP - .byte 40 - .byte 200 - .byte 150 - .byte 185 - .byte 60 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SLAKING - .string "SLING$ " - .string "KEATON$ " - gfxId 11 - .4byte 0x80800fff - aiPool 3, 0, 0, 1, 1, 1 - .2byte MOVE_COVET - .2byte MOVE_COUNTER - .2byte MOVE_ENCORE - .2byte MOVE_SLACK_OFF - .byte 85 - .byte 85 - .byte 170 - .byte 110 - .byte 150 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_ALTARIA - .string "TARIA$ " - .string "MAYRA$ " - gfxId 18 - .4byte 0x80400fff - aiPool 3, 1, 1, 0, 0, 0 - .2byte MOVE_DRAGON_DANCE - .2byte MOVE_HYPER_BEAM - .2byte MOVE_PERISH_SONG - .2byte MOVE_SAFEGUARD - .byte 170 - .byte 150 - .byte 30 - .byte 30 - .byte 90 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_KIRLIA - .string "LIRKI$ " - .string "LAMAR$ " - gfxId 15 - .4byte 0x80200fff - aiPool 3, 1, 0, 0, 1, 0 - .2byte MOVE_SHOCK_WAVE - .2byte MOVE_SHADOW_BALL - .2byte MOVE_SKILL_SWAP - .2byte MOVE_RETURN - .byte 230 - .byte 60 - .byte 60 - .byte 230 - .byte 80 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_BELLOSSOM - .string "BLOSSOM$ " - .string "AUBREY$ " - gfxId 26 - .4byte 0x80100fff - aiPool 3, 0, 1, 1, 1, 0 - .2byte MOVE_PETAL_DANCE - .2byte MOVE_SWEET_SCENT - .2byte MOVE_STUN_SPORE - .2byte MOVE_FLASH - .byte 35 - .byte 200 - .byte 150 - .byte 130 - .byte 40 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SABLEYE - .string "EYESAB$ " - .string "NIGEL$ " - gfxId 31 - .4byte 0x80080fff - aiPool 3, 0, 0, 1, 1, 1 - .2byte MOVE_MEAN_LOOK - .2byte MOVE_FAINT_ATTACK - .2byte MOVE_KNOCK_OFF - .2byte MOVE_CONFUSE_RAY - .byte 25 - .byte 35 - .byte 230 - .byte 150 - .byte 160 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_NATU - .string "UTAN$ " - .string "CAMILLE$" - gfxId 47 - .4byte 0x80040fff - aiPool 3, 0, 0, 1, 1, 1 - .2byte MOVE_NIGHT_SHADE - .2byte MOVE_FUTURE_SIGHT - .2byte MOVE_CONFUSE_RAY - .2byte MOVE_PSYCHIC - .byte 35 - .byte 35 - .byte 150 - .byte 130 - .byte 170 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SHARPEDO - .string "PEDOS$ " - .string "DEON$ " - gfxId 38 - .4byte 0x80020fff - aiPool 3, 1, 0, 1, 0, 1 - .2byte MOVE_AGILITY - .2byte MOVE_SWAGGER - .2byte MOVE_TAUNT - .2byte MOVE_TAKE_DOWN - .byte 140 - .byte 70 - .byte 140 - .byte 75 - .byte 100 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_LUVDISC - .string "LUVIS$ " - .string "JANELLE$" - gfxId 10 - .4byte 0x80010fff - aiPool 3, 0, 0, 1, 0, 1 - .2byte MOVE_SWEET_KISS - .2byte MOVE_ATTRACT - .2byte MOVE_TAKE_DOWN - .2byte MOVE_CHARM - .byte 50 - .byte 100 - .byte 220 - .byte 40 - .byte 190 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_HERACROSS - .string "HEROSS$ " - .string "HEATH$ " - gfxId 33 - .4byte 0x80008fff - aiPool 3, 1, 0, 0, 0, 1 - .2byte MOVE_STRENGTH - .2byte MOVE_ENDURE - .2byte MOVE_REVERSAL - .2byte MOVE_ROCK_TOMB - .byte 170 - .byte 70 - .byte 110 - .byte 240 - .byte 140 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_ELECTRODE - .string "RODLECT$ " - .string "SASHA$ " - gfxId 6 - .4byte 0x80004fff - aiPool 3, 1, 1, 0, 0, 0 - .2byte MOVE_EXPLOSION - .2byte MOVE_LIGHT_SCREEN - .2byte MOVE_SWIFT - .2byte MOVE_FLASH - .byte 200 - .byte 200 - .byte 30 - .byte 35 - .byte 50 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_PICHU - .string "CHUPY$ " - .string "FRANKIE$" - gfxId 35 - .4byte 0x80002fff - aiPool 3, 0, 1, 1, 1, 0 - .2byte MOVE_SWEET_KISS - .2byte MOVE_ATTRACT - .2byte MOVE_REST - .2byte MOVE_TAIL_WHIP - .byte 25 - .byte 150 - .byte 180 - .byte 115 - .byte 120 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_WOBBUFFET - .string "WOBET$ " - .string "HELEN$ " - gfxId 16 - .4byte 0x80001fff - aiPool 3, 1, 1, 0, 1, 1 - .2byte MOVE_COUNTER - .2byte MOVE_MIRROR_COAT - .2byte MOVE_SAFEGUARD - .2byte MOVE_DESTINY_BOND - .byte 60 - .byte 230 - .byte 50 - .byte 220 - .byte 210 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_GENGAR - .string "GAREN$ " - .string "CAMILE$ " - gfxId 40 - .4byte 0xc000fff - aiPool 3, 1, 0, 0, 0, 1 - .2byte MOVE_DESTINY_BOND - .2byte MOVE_CONFUSE_RAY - .2byte MOVE_LICK - .2byte MOVE_SLUDGE_BOMB - .byte 200 - .byte 100 - .byte 50 - .byte 80 - .byte 180 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_PORYGON - .string "GONPOR$ " - .string "MARTIN$ " - gfxId 46 - .4byte 0x82000fff - aiPool 3, 1, 1, 1, 1, 1 - .2byte MOVE_CONVERSION_2 - .2byte MOVE_CONVERSION - .2byte MOVE_RETURN - .2byte MOVE_RECYCLE - .byte 130 - .byte 130 - .byte 130 - .byte 130 - .byte 130 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_DRAGONITE - .string "DRITE$ " - .string "SERGIO$ " - gfxId 7 - .4byte 0x21000fff - aiPool 3, 1, 0, 0, 0, 1 - .2byte MOVE_OUTRAGE - .2byte MOVE_SLAM - .2byte MOVE_TWISTER - .2byte MOVE_EARTHQUAKE - .byte 150 - .byte 140 - .byte 50 - .byte 120 - .byte 150 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_MEOWTH - .string "MEOWY$ " - .string "KAILEY$ " - gfxId 6 - .4byte 0x20800fff - aiPool 3, 0, 0, 1, 1, 0 - .2byte MOVE_GROWL - .2byte MOVE_TAUNT - .2byte MOVE_PAY_DAY - .2byte MOVE_BITE - .byte 125 - .byte 110 - .byte 180 - .byte 170 - .byte 80 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_JYNX - .string "NYX$ " - .string "PERLA$ " - gfxId 45 - .4byte 0x80400fff - aiPool 3, 0, 1, 0, 1, 0 - .2byte MOVE_PERISH_SONG - .2byte MOVE_MEAN_LOOK - .2byte MOVE_LOVELY_KISS - .2byte MOVE_FAKE_TEARS - .byte 100 - .byte 150 - .byte 100 - .byte 150 - .byte 120 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_TOGEPI - .string "GEPITO$ " - .string "CLARA$ " - gfxId 20 - .4byte 0x10200fff - aiPool 3, 0, 0, 1, 0, 0 - .2byte MOVE_GROWL - .2byte MOVE_YAWN - .2byte MOVE_ENCORE - .2byte MOVE_FOLLOW_ME - .byte 80 - .byte 120 - .byte 200 - .byte 120 - .byte 80 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_ESPEON - .string "SPEON$ " - .string "JAKOB$ " - gfxId 37 - .4byte 0x20100fff - aiPool 3, 1, 1, 0, 0, 0 - .2byte MOVE_SWIFT - .2byte MOVE_QUICK_ATTACK - .2byte MOVE_MORNING_SUN - .2byte MOVE_TAIL_WHIP - .byte 180 - .byte 150 - .byte 100 - .byte 80 - .byte 150 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_SLOWKING - .string "SLOWGO$ " - .string "TREY$ " - gfxId 49 - .4byte 0x8080fff - aiPool 3, 0, 0, 1, 0, 1 - .2byte MOVE_FACADE - .2byte MOVE_CURSE - .2byte MOVE_YAWN - .2byte MOVE_FOCUS_PUNCH - .byte 100 - .byte 80 - .byte 200 - .byte 110 - .byte 170 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - - .2byte SPECIES_URSARING - .string "URSING$ " - .string "LANE$ " - gfxId 44 - .4byte 0x40040fff - aiPool 3, 1, 0, 0, 0, 1 - .2byte MOVE_THRASH - .2byte MOVE_AERIAL_ACE - .2byte MOVE_FAKE_TEARS - .2byte MOVE_LEER - .byte 180 - .byte 140 - .byte 30 - .byte 80 - .byte 190 - .byte 255 - unk2C - .4byte 0x0 - .4byte 0xffff - diff --git a/data/maps/AbandonedShip_CaptainsOffice/map.json b/data/maps/AbandonedShip_CaptainsOffice/map.json index c88afc8068..3f612c3203 100644 --- a/data/maps/AbandonedShip_CaptainsOffice/map.json +++ b/data/maps/AbandonedShip_CaptainsOffice/map.json @@ -25,7 +25,7 @@ "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", "script": "AbandonedShip_CaptainsOffice_EventScript_2387E2", - "flag": "0" + "flag": "0" }, { "graphics_id": "EVENT_OBJ_GFX_ITEM_BALL", diff --git a/src/contest.c b/src/contest.c index 09847f6b67..3ef8d4b063 100644 --- a/src/contest.c +++ b/src/contest.c @@ -242,7 +242,6 @@ extern const u8 gText_Contest_Fear[]; extern const u8 gText_BDot[]; extern const u8 gText_CDot[]; extern const u8 *const gUnknown_08587E10[]; -extern const struct ContestPokemon gContestOpponents[96]; extern const u8 gUnknown_085898A4[96]; extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; extern const union AffineAnimCmd *const gUnknown_082FF694[]; diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index 07d41d824f..8937e9914d 100644 --- a/src/data/contest_opponents.h +++ b/src/data/contest_opponents.h @@ -78,9 +78,2791 @@ const struct ContestWinner gUnknown_08587FA4[] = .contestRank = CONTEST_RANK_MASTER } }; -/* + const struct ContestPokemon gContestOpponents[] = { - -};*/ -extern const struct ContestPokemon gContestOpponents[96]; \ No newline at end of file + { + .species = SPECIES_POOCHYENA, + .nickname = _("POOCHY"), + .trainerName = _("JIMMY"), + .trainerGfxId = 7, + .flags = 0xC000FFF, + .whichRank = 0, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_ROAR, + MOVE_BITE, + MOVE_TAKE_DOWN, + MOVE_HOWL + }, + .cool = 10, + .beauty = 4, + .cute = 10, + .smart = 3, + .tough = 4, + .sheen = 50, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_ILLUMISE, + .nickname = _("MUSILLE"), + .trainerName = _("EDITH"), + .trainerGfxId = 8, + .flags = 0x82000FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_REST, + MOVE_FACADE, + MOVE_TACKLE, + MOVE_COVET + }, + .cool = 10, + .beauty = 10, + .cute = 6, + .smart = 1, + .tough = 2, + .sheen = 60, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_DUSTOX, + .nickname = _("DUSTER"), + .trainerName = _("EVAN"), + .trainerGfxId = 11, + .flags = 0x21000FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_SILVER_WIND, + MOVE_MOONLIGHT, + MOVE_LIGHT_SCREEN, + MOVE_GUST + }, + .cool = 2, + .beauty = 10, + .cute = 10, + .smart = 12, + .tough = 4, + .sheen = 70, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SEEDOT, + .nickname = _("DOTS"), + .trainerName = _("KELSEY"), + .trainerGfxId = 16, + .flags = 0x20800FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_BIDE, + MOVE_SYNTHESIS, + MOVE_BULLET_SEED, + MOVE_GROWTH + }, + .cool = 3, + .beauty = 3, + .cute = 5, + .smart = 2, + .tough = 7, + .sheen = 80, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_TAILLOW, + .nickname = _("TATAY"), + .trainerName = _("MADISON"), + .trainerGfxId = 18, + .flags = 0x80400FFF, + .whichRank = 0, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_WING_ATTACK, + MOVE_AGILITY, + MOVE_AERIAL_ACE, + MOVE_GROWL + }, + .cool = 1, + .beauty = 3, + .cute = 3, + .smart = 5, + .tough = 4, + .sheen = 90, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_NINCADA, + .nickname = _("NINDA"), + .trainerName = _("RAYMOND"), + .trainerGfxId = 44, + .flags = 0x10200FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_LEECH_LIFE, + MOVE_FALSE_SWIPE, + MOVE_FURY_SWIPES, + MOVE_MIND_READER + }, + .cool = 5, + .beauty = 2, + .cute = 10, + .smart = 7, + .tough = 8, + .sheen = 100, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SHROOMISH, + .nickname = _("SMISH"), + .trainerName = _("GRANT"), + .trainerGfxId = 35, + .flags = 0x20100FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_STUN_SPORE, + MOVE_LEECH_SEED, + MOVE_MEGA_DRAIN, + MOVE_ATTRACT + }, + .cool = 3, + .beauty = 3, + .cute = 10, + .smart = 2, + .tough = 2, + .sheen = 50, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SPHEAL, + .nickname = _("SLEAL"), + .trainerName = _("PAIGE"), + .trainerGfxId = 26, + .flags = 0x8080FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_AURORA_BEAM, + MOVE_WATER_GUN, + MOVE_GROWL, + MOVE_ROCK_TOMB + }, + .cool = 3, + .beauty = 5, + .cute = 1, + .smart = 10, + .tough = 10, + .sheen = 60, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SLAKOTH, + .nickname = _("SLOKTH"), + .trainerName = _("ALEC"), + .trainerGfxId = 31, + .flags = 0x40040FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_STRENGTH, + MOVE_COUNTER, + MOVE_YAWN, + MOVE_ENCORE + }, + .cool = 10, + .beauty = 4, + .cute = 4, + .smart = 5, + .tough = 18, + .sheen = 70, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_WHISMUR, + .nickname = _("WHIRIS"), + .trainerName = _("SYDNEY"), + .trainerGfxId = 47, + .flags = 0x80020FFF, + .whichRank = 0, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_ASTONISH, + MOVE_SCREECH, + MOVE_UPROAR, + MOVE_HYPER_VOICE + }, + .cool = 2, + .beauty = 2, + .cute = 7, + .smart = 2, + .tough = 7, + .sheen = 80, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_MAKUHITA, + .nickname = _("MAHITA"), + .trainerName = _("MORRIS"), + .trainerGfxId = 38, + .flags = 0x8010FFF, + .whichRank = 0, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_SEISMIC_TOSS, + MOVE_VITAL_THROW, + MOVE_TACKLE, + MOVE_REVERSAL + }, + .cool = 9, + .beauty = 1, + .cute = 1, + .smart = 8, + .tough = 1, + .sheen = 90, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_ARON, + .nickname = _("RONAR"), + .trainerName = _("MARIAH"), + .trainerGfxId = 10, + .flags = 0x8008FFF, + .whichRank = 0, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_METAL_CLAW, + MOVE_IRON_DEFENSE, + MOVE_HEADBUTT, + MOVE_TAKE_DOWN + }, + .cool = 5, + .beauty = 10, + .cute = 2, + .smart = 10, + .tough = 2, + .sheen = 100, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_CROBAT, + .nickname = _("BATRO"), + .trainerName = _("RUSSELL"), + .trainerGfxId = 33, + .flags = 0x90004FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_HAZE, + MOVE_MEAN_LOOK, + MOVE_CONFUSE_RAY, + MOVE_LEECH_LIFE + }, + .cool = 4, + .beauty = 2, + .cute = 2, + .smart = 2, + .tough = 10, + .sheen = 50, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_GULPIN, + .nickname = _("GULIN"), + .trainerName = _("MELANIE"), + .trainerGfxId = 6, + .flags = 0x40002FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_SLUDGE, + MOVE_AMNESIA, + MOVE_TOXIC, + MOVE_YAWN + }, + .cool = 1, + .beauty = 10, + .cute = 1, + .smart = 10, + .tough = 5, + .sheen = 60, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_MANECTRIC, + .nickname = _("RIKELEC"), + .trainerName = _("CHANCE"), + .trainerGfxId = 15, + .flags = 0x80001FFF, + .whichRank = 0, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_SPARK, + MOVE_THUNDER_WAVE, + MOVE_THUNDER, + MOVE_ROAR + }, + .cool = 20, + .beauty = 10, + .cute = 1, + .smart = 1, + .tough = 1, + .sheen = 70, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_BULBASAUR, + .nickname = _("BULBY"), + .trainerName = _("AGATHA"), + .trainerGfxId = 20, + .flags = 0xC000FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_GROWL, + MOVE_LEECH_SEED, + MOVE_TACKLE, + MOVE_SWEET_SCENT + }, + .cool = 5, + .beauty = 3, + .cute = 10, + .smart = 10, + .tough = 4, + .sheen = 50, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_BUTTERFREE, + .nickname = _("FUTTERBE"), + .trainerName = _("BEAU"), + .trainerGfxId = 40, + .flags = 0x82000FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_SUPERSONIC, + MOVE_WHIRLWIND, + MOVE_SILVER_WIND, + MOVE_SAFEGUARD + }, + .cool = 3, + .beauty = 10, + .cute = 2, + .smart = 10, + .tough = 4, + .sheen = 60, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_PIDGEOTTO, + .nickname = _("PIDEOT"), + .trainerName = _("KAY"), + .trainerGfxId = 34, + .flags = 0x21000FFF, + .whichRank = 0, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_MIRROR_MOVE, + MOVE_QUICK_ATTACK, + MOVE_AERIAL_ACE, + MOVE_FEATHER_DANCE + }, + .cool = 10, + .beauty = 8, + .cute = 4, + .smart = 2, + .tough = 3, + .sheen = 70, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_DIGLETT, + .nickname = _("DIGLE"), + .trainerName = _("CALE"), + .trainerGfxId = 55, + .flags = 0x20800FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FISSURE, + MOVE_MAGNITUDE + }, + .cool = 4, + .beauty = 2, + .cute = 3, + .smart = 5, + .tough = 10, + .sheen = 80, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_POLIWAG, + .nickname = _("WAGIL"), + .trainerName = _("CAITLIN"), + .trainerGfxId = 53, + .flags = 0x80400FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_HYDRO_PUMP, + MOVE_RAIN_DANCE, + MOVE_BODY_SLAM, + MOVE_ICE_BEAM + }, + .cool = 2, + .beauty = 10, + .cute = 5, + .smart = 3, + .tough = 10, + .sheen = 90, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_TOTODILE, + .nickname = _("TOTDIL"), + .trainerName = _("COLBY"), + .trainerGfxId = 5, + .flags = 0x10200FFF, + .whichRank = 0, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_RAGE, + MOVE_SCREECH, + MOVE_SURF, + MOVE_BLIZZARD + }, + .cool = 6, + .beauty = 10, + .cute = 2, + .smart = 1, + .tough = 5, + .sheen = 100, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_LEDYBA, + .nickname = _("BALEDY"), + .trainerName = _("KYLIE"), + .trainerGfxId = 45, + .flags = 0x20100FFF, + .whichRank = 0, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_BATON_PASS, + MOVE_AGILITY, + MOVE_SWIFT, + MOVE_ATTRACT + }, + .cool = 8, + .beauty = 6, + .cute = 8, + .smart = 6, + .tough = 2, + .sheen = 90, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_DELIBIRD, + .nickname = _("BIRDLY"), + .trainerName = _("LIAM"), + .trainerGfxId = 66, + .flags = 0x8080FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_PRESENT, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_RETURN + }, + .cool = 4, + .beauty = 3, + .cute = 10, + .smart = 5, + .tough = 3, + .sheen = 80, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_LARVITAR, + .nickname = _("TARVITAR"), + .trainerName = _("MILO"), + .trainerGfxId = 39, + .flags = 0x40040FFF, + .whichRank = 0, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_THRASH, + MOVE_TORMENT, + MOVE_CRUNCH, + MOVE_DIG + }, + .cool = 8, + .beauty = 5, + .cute = 5, + .smart = 8, + .tough = 10, + .sheen = 70, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_ROSELIA, + .nickname = _("RELIA"), + .trainerName = _("KARINA"), + .trainerGfxId = 32, + .flags = 0x24000FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_PETAL_DANCE, + MOVE_MAGICAL_LEAF, + MOVE_GRASS_WHISTLE, + MOVE_INGRAIN + }, + .cool = 50, + .beauty = 15, + .cute = 75, + .smart = 10, + .tough = 20, + .sheen = 100, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_DODRIO, + .nickname = _("DUODO"), + .trainerName = _("BOBBY"), + .trainerGfxId = 51, + .flags = 0x82000FFF, + .whichRank = 1, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_PECK, + MOVE_FURY_ATTACK, + MOVE_RETURN, + MOVE_GROWL + }, + .cool = 15, + .beauty = 21, + .cute = 15, + .smart = 85, + .tough = 35, + .sheen = 110, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_TRAPINCH, + .nickname = _("PINCHIN"), + .trainerName = _("CLAIRE"), + .trainerGfxId = 8, + .flags = 0x81000FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_BITE, + MOVE_SAND_ATTACK, + MOVE_DIG, + MOVE_FAINT_ATTACK + }, + .cool = 75, + .beauty = 25, + .cute = 25, + .smart = 10, + .tough = 25, + .sheen = 120, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_CACNEA, + .nickname = _("NACAC"), + .trainerName = _("WILLIE"), + .trainerGfxId = 11, + .flags = 0x80800FFF, + .whichRank = 1, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_SPIKES, + MOVE_LEER, + MOVE_POISON_STING, + MOVE_SAND_ATTACK + }, + .cool = 10, + .beauty = 30, + .cute = 25, + .smart = 65, + .tough = 25, + .sheen = 130, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SANDSLASH, + .nickname = _("SHRAND"), + .trainerName = _("CASSIDY"), + .trainerGfxId = 18, + .flags = 0x10400FFF, + .whichRank = 1, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_SLASH, + MOVE_DEFENSE_CURL, + MOVE_SWIFT, + MOVE_FURY_SWIPES + }, + .cool = 30, + .beauty = 90, + .cute = 30, + .smart = 10, + .tough = 100, + .sheen = 140, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_BALTOY, + .nickname = _("TOYBAL"), + .trainerName = _("MORGAN"), + .trainerGfxId = 44, + .flags = 0x8200FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_SELF_DESTRUCT, + MOVE_ROCK_TOMB, + MOVE_PSYBEAM, + MOVE_CONFUSION + }, + .cool = 50, + .beauty = 40, + .cute = 10, + .smart = 35, + .tough = 35, + .sheen = 150, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_MEDICHAM, + .nickname = _("CHAMCHAM"), + .trainerName = _("SUMMER"), + .trainerGfxId = 26, + .flags = 0x10100FFF, + .whichRank = 1, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_REVERSAL, + MOVE_THUNDER_PUNCH, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH + }, + .cool = 40, + .beauty = 20, + .cute = 40, + .smart = 40, + .tough = 40, + .sheen = 100, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SPINDA, + .nickname = _("SPININ"), + .trainerName = _("MILES"), + .trainerGfxId = 31, + .flags = 0x80080FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_TEETER_DANCE, + MOVE_PSYCH_UP, + MOVE_HYPNOSIS, + MOVE_UPROAR + }, + .cool = 25, + .beauty = 75, + .cute = 25, + .smart = 10, + .tough = 25, + .sheen = 110, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SWABLU, + .nickname = _("SWABY"), + .trainerName = _("AUDREY"), + .trainerGfxId = 47, + .flags = 0xA0040FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_MIRROR_MOVE, + MOVE_PERISH_SONG, + MOVE_SAFEGUARD, + MOVE_MIST + }, + .cool = 30, + .beauty = 30, + .cute = 40, + .smart = 30, + .tough = 25, + .sheen = 120, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SPOINK, + .nickname = _("POINKER"), + .trainerName = _("AVERY"), + .trainerGfxId = 38, + .flags = 0x80020FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_SPLASH, + MOVE_CONFUSE_RAY, + MOVE_SNORE, + MOVE_REST + }, + .cool = 40, + .beauty = 10, + .cute = 30, + .smart = 40, + .tough = 30, + .sheen = 130, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_KECLEON, + .nickname = _("KECON"), + .trainerName = _("ARIANA"), + .trainerGfxId = 10, + .flags = 0x80010FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_THIEF, + MOVE_SCREECH, + MOVE_ANCIENT_POWER, + MOVE_BIND + }, + .cool = 10, + .beauty = 10, + .cute = 40, + .smart = 75, + .tough = 35, + .sheen = 140, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_GOLDEEN, + .nickname = _("GOLDEN"), + .trainerName = _("ASHTON"), + .trainerGfxId = 33, + .flags = 0x80008FFF, + .whichRank = 1, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_HORN_ATTACK, + MOVE_FURY_ATTACK, + MOVE_HORN_DRILL, + MOVE_TAIL_WHIP + }, + .cool = 70, + .beauty = 30, + .cute = 5, + .smart = 30, + .tough = 25, + .sheen = 150, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_BARBOACH, + .nickname = _("BOBOACH"), + .trainerName = _("SANDRA"), + .trainerGfxId = 6, + .flags = 0x80004FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_MUD_SPORT, + MOVE_WATER_SPORT, + MOVE_EARTHQUAKE, + MOVE_FUTURE_SIGHT + }, + .cool = 45, + .beauty = 45, + .cute = 60, + .smart = 25, + .tough = 15, + .sheen = 100, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SKARMORY, + .nickname = _("CORPY"), + .trainerName = _("CARSON"), + .trainerGfxId = 35, + .flags = 0x8002FFF, + .whichRank = 1, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_SWIFT, + MOVE_DOUBLE_TEAM, + MOVE_AGILITY, + MOVE_CUT + }, + .cool = 40, + .beauty = 30, + .cute = 25, + .smart = 60, + .tough = 20, + .sheen = 110, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_LOTAD, + .nickname = _("TADO"), + .trainerName = _("KATRINA"), + .trainerGfxId = 16, + .flags = 0x8001FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_ASTONISH, + MOVE_GROWL, + MOVE_RAIN_DANCE, + MOVE_WATER_PULSE + }, + .cool = 15, + .beauty = 15, + .cute = 30, + .smart = 15, + .tough = 75, + .sheen = 120, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SLOWBRO, + .nickname = _("BROWLO"), + .trainerName = _("LUKE"), + .trainerGfxId = 17, + .flags = 0xC000FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_YAWN, + MOVE_DISABLE, + MOVE_GROWL, + MOVE_CONFUSION + }, + .cool = 20, + .beauty = 40, + .cute = 40, + .smart = 30, + .tough = 20, + .sheen = 100, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_FARFETCHD, + .nickname = _("FETCHIN"), + .trainerName = _("RAUL"), + .trainerGfxId = 66, + .flags = 0x82000FFF, + .whichRank = 1, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_FACADE, + MOVE_FURY_CUTTER, + MOVE_FLY, + MOVE_RETURN + }, + .cool = 40, + .beauty = 10, + .cute = 40, + .smart = 20, + .tough = 20, + .sheen = 110, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SEEL, + .nickname = _("SEELEY"), + .trainerName = _("JADA"), + .trainerGfxId = 20, + .flags = 0x21000FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_ATTRACT, + MOVE_ICE_BEAM, + MOVE_SAFEGUARD, + MOVE_GROWL + }, + .cool = 10, + .beauty = 30, + .cute = 40, + .smart = 20, + .tough = 20, + .sheen = 120, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_DROWZEE, + .nickname = _("DROWZIN"), + .trainerName = _("ZEEK"), + .trainerGfxId = 37, + .flags = 0x20800FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_DISABLE, + MOVE_FUTURE_SIGHT, + MOVE_HIDDEN_POWER, + MOVE_RETURN + }, + .cool = 10, + .beauty = 40, + .cute = 50, + .smart = 30, + .tough = 45, + .sheen = 130, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_HITMONCHAN, + .nickname = _("HITEMON"), + .trainerName = _("DIEGO"), + .trainerGfxId = 21, + .flags = 0x80400FFF, + .whichRank = 1, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_SKY_UPPERCUT, + MOVE_DETECT, + MOVE_REVENGE, + MOVE_MEGA_PUNCH + }, + .cool = 45, + .beauty = 20, + .cute = 10, + .smart = 20, + .tough = 45, + .sheen = 140, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_BLISSEY, + .nickname = _("BLISS"), + .trainerName = _("ALIYAH"), + .trainerGfxId = 85, + .flags = 0x10200FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_SING, + MOVE_SOFT_BOILED, + MOVE_EGG_BOMB, + MOVE_DOUBLE_EDGE + }, + .cool = 20, + .beauty = 35, + .cute = 40, + .smart = 20, + .tough = 20, + .sheen = 150, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_ELEKID, + .nickname = _("KIDLEK"), + .trainerName = _("NATALIA"), + .trainerGfxId = 18, + .flags = 0x20100FFF, + .whichRank = 1, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_SHOCK_WAVE, + MOVE_QUICK_ATTACK, + MOVE_SCREECH, + MOVE_ATTRACT + }, + .cool = 40, + .beauty = 10, + .cute = 40, + .smart = 25, + .tough = 25, + .sheen = 140, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SNUBBULL, + .nickname = _("SNUBBINS"), + .trainerName = _("DEVIN"), + .trainerGfxId = 48, + .flags = 0x8080FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_SCARY_FACE, + MOVE_TAUNT, + MOVE_TAIL_WHIP, + MOVE_BITE + }, + .cool = 20, + .beauty = 20, + .cute = 20, + .smart = 20, + .tough = 20, + .sheen = 130, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_MISDREAVUS, + .nickname = _("DREAVIS"), + .trainerName = _("TYLOR"), + .trainerGfxId = 40, + .flags = 0x40040FFF, + .whichRank = 1, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_PERISH_SONG, + MOVE_MEAN_LOOK, + MOVE_CONFUSE_RAY, + MOVE_PAIN_SPLIT + }, + .cool = 10, + .beauty = 35, + .cute = 10, + .smart = 45, + .tough = 20, + .sheen = 120, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_LAIRON, + .nickname = _("LAIRN"), + .trainerName = _("RONNIE"), + .trainerGfxId = 55, + .flags = 0x84000FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_METAL_SOUND, + MOVE_METAL_CLAW, + MOVE_HARDEN, + MOVE_TAKE_DOWN + }, + .cool = 30, + .beauty = 50, + .cute = 35, + .smart = 100, + .tough = 90, + .sheen = 200, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SHIFTRY, + .nickname = _("SHIFTY"), + .trainerName = _("CLAUDIA"), + .trainerGfxId = 8, + .flags = 0x82000FFF, + .whichRank = 2, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_GROWTH, + MOVE_RAZOR_WIND, + MOVE_EXPLOSION, + MOVE_EXTRASENSORY + }, + .cool = 75, + .beauty = 75, + .cute = 65, + .smart = 35, + .tough = 70, + .sheen = 210, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_NINJASK, + .nickname = _("NINAS"), + .trainerName = _("ELIAS"), + .trainerGfxId = 11, + .flags = 0x81000FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_SCREECH, + MOVE_FURY_SWIPES, + MOVE_SAND_ATTACK, + MOVE_BATON_PASS + }, + .cool = 30, + .beauty = 50, + .cute = 95, + .smart = 70, + .tough = 70, + .sheen = 220, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SWELLOW, + .nickname = _("WELOW"), + .trainerName = _("JADE"), + .trainerGfxId = 18, + .flags = 0x80800FFF, + .whichRank = 2, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_AGILITY, + MOVE_AERIAL_ACE, + MOVE_WING_ATTACK, + MOVE_FLY + }, + .cool = 65, + .beauty = 85, + .cute = 35, + .smart = 75, + .tough = 40, + .sheen = 230, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_MIGHTYENA, + .nickname = _("YENA"), + .trainerName = _("FRANCIS"), + .trainerGfxId = 44, + .flags = 0x80400FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_TAUNT, + MOVE_THIEF, + MOVE_ODOR_SLEUTH, + MOVE_TAKE_DOWN + }, + .cool = 40, + .beauty = 80, + .cute = 35, + .smart = 70, + .tough = 70, + .sheen = 240, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_BEAUTIFLY, + .nickname = _("TIFLY"), + .trainerName = _("ALISHA"), + .trainerGfxId = 26, + .flags = 0x80200FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_MORNING_SUN, + MOVE_SILVER_WIND, + MOVE_STUN_SPORE, + MOVE_SECRET_POWER + }, + .cool = 40, + .beauty = 70, + .cute = 25, + .smart = 80, + .tough = 100, + .sheen = 250, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SEAKING, + .nickname = _("KINGSEA"), + .trainerName = _("SAUL"), + .trainerGfxId = 31, + .flags = 0x80100FFF, + .whichRank = 2, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_FLAIL, + MOVE_SUPERSONIC, + MOVE_HORN_ATTACK, + MOVE_FURY_ATTACK + }, + .cool = 80, + .beauty = 60, + .cute = 30, + .smart = 70, + .tough = 90, + .sheen = 200, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_CASTFORM, + .nickname = _("CASTER"), + .trainerName = _("FELICIA"), + .trainerGfxId = 47, + .flags = 0x80080FFF, + .whichRank = 2, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_SUNNY_DAY, + MOVE_WEATHER_BALL, + MOVE_SANDSTORM, + MOVE_RETURN + }, + .cool = 70, + .beauty = 80, + .cute = 80, + .smart = 50, + .tough = 65, + .sheen = 210, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_MACHOKE, + .nickname = _("CHOKEM"), + .trainerName = _("EMILIO"), + .trainerGfxId = 38, + .flags = 0x80040FFF, + .whichRank = 2, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_SEISMIC_TOSS, + MOVE_FOCUS_ENERGY, + MOVE_KARATE_CHOP, + MOVE_SCARY_FACE + }, + .cool = 70, + .beauty = 85, + .cute = 25, + .smart = 60, + .tough = 50, + .sheen = 220, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_LOMBRE, + .nickname = _("LOMBE"), + .trainerName = _("KARLA"), + .trainerGfxId = 10, + .flags = 0x80020FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_ATTRACT, + MOVE_FLASH, + MOVE_UPROAR, + MOVE_GROWL + }, + .cool = 40, + .beauty = 60, + .cute = 90, + .smart = 45, + .tough = 70, + .sheen = 230, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SEVIPER, + .nickname = _("VIPES"), + .trainerName = _("DARRYL"), + .trainerGfxId = 33, + .flags = 0x80010FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_POISON_FANG, + MOVE_GLARE, + MOVE_WRAP, + MOVE_SCREECH + }, + .cool = 35, + .beauty = 50, + .cute = 90, + .smart = 40, + .tough = 100, + .sheen = 240, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_WAILMER, + .nickname = _("MERAIL"), + .trainerName = _("SELENA"), + .trainerGfxId = 22, + .flags = 0x80008FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_WATER_PULSE, + MOVE_REST, + MOVE_WATER_SPOUT, + MOVE_SPLASH + }, + .cool = 30, + .beauty = 100, + .cute = 100, + .smart = 50, + .tough = 30, + .sheen = 250, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_MAGIKARP, + .nickname = _("KARPAG"), + .trainerName = _("NOEL"), + .trainerGfxId = 35, + .flags = 0x80004FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_TACKLE, + MOVE_SPLASH, + MOVE_FLAIL, + MOVE_TACKLE + }, + .cool = 30, + .beauty = 30, + .cute = 160, + .smart = 50, + .tough = 160, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_LUNATONE, + .nickname = _("LUNONE"), + .trainerName = _("LACEY"), + .trainerGfxId = 16, + .flags = 0x80002FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_EXPLOSION, + MOVE_FUTURE_SIGHT, + MOVE_PSYCHIC, + MOVE_CONFUSION + }, + .cool = 50, + .beauty = 70, + .cute = 60, + .smart = 70, + .tough = 50, + .sheen = 210, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_ABSOL, + .nickname = _("ABSO"), + .trainerName = _("CORBIN"), + .trainerGfxId = 39, + .flags = 0x80001FFF, + .whichRank = 2, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_PERISH_SONG, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_SLASH + }, + .cool = 95, + .beauty = 80, + .cute = 85, + .smart = 35, + .tough = 35, + .sheen = 220, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_EXEGGUTOR, + .nickname = _("EGGSOR"), + .trainerName = _("GRACIE"), + .trainerGfxId = 32, + .flags = 0xC000FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_STOMP, + MOVE_HYPNOSIS, + MOVE_EGG_BOMB, + MOVE_SKILL_SWAP + }, + .cool = 40, + .beauty = 50, + .cute = 60, + .smart = 100, + .tough = 80, + .sheen = 200, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_CUBONE, + .nickname = _("CUBIN"), + .trainerName = _("COLTIN"), + .trainerGfxId = 65, + .flags = 0x82000FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_BONE_CLUB, + MOVE_BONEMERANG, + MOVE_BONE_RUSH, + MOVE_GROWL + }, + .cool = 40, + .beauty = 35, + .cute = 85, + .smart = 35, + .tough = 100, + .sheen = 210, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_HITMONLEE, + .nickname = _("HITMON"), + .trainerName = _("ELLIE"), + .trainerGfxId = 22, + .flags = 0x21000FFF, + .whichRank = 2, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_REVERSAL, + MOVE_REVENGE, + MOVE_FOCUS_ENERGY, + MOVE_MEGA_KICK + }, + .cool = 85, + .beauty = 30, + .cute = 25, + .smart = 50, + .tough = 100, + .sheen = 220, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SQUIRTLE, + .nickname = _("SURTLE"), + .trainerName = _("MARCUS"), + .trainerGfxId = 49, + .flags = 0x20800FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_TAIL_WHIP, + MOVE_BUBBLE, + MOVE_FOCUS_PUNCH, + MOVE_WITHDRAW + }, + .cool = 30, + .beauty = 35, + .cute = 100, + .smart = 40, + .tough = 95, + .sheen = 230, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_KANGASKHAN, + .nickname = _("KHANKAN"), + .trainerName = _("KIARA"), + .trainerGfxId = 14, + .flags = 0x80400FFF, + .whichRank = 2, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_MEGA_PUNCH, + MOVE_RAGE, + MOVE_FOCUS_PUNCH, + MOVE_TAIL_WHIP + }, + .cool = 100, + .beauty = 50, + .cute = 30, + .smart = 50, + .tough = 100, + .sheen = 240, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_PINECO, + .nickname = _("PINOC"), + .trainerName = _("BRYCE"), + .trainerGfxId = 36, + .flags = 0x10200FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_EXPLOSION, + MOVE_SPIKES, + MOVE_LIGHT_SCREEN, + MOVE_GIGA_DRAIN + }, + .cool = 80, + .beauty = 80, + .cute = 80, + .smart = 80, + .tough = 80, + .sheen = 250, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_DUNSPARCE, + .nickname = _("DILTOT"), + .trainerName = _("JAMIE"), + .trainerGfxId = 34, + .flags = 0x20100FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_SPITE, + MOVE_YAWN, + MOVE_DEFENSE_CURL, + MOVE_TAKE_DOWN + }, + .cool = 40, + .beauty = 35, + .cute = 100, + .smart = 40, + .tough = 110, + .sheen = 240, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_HOUNDOOM, + .nickname = _("DOOMOND"), + .trainerName = _("JORGE"), + .trainerGfxId = 48, + .flags = 0x8080FFF, + .whichRank = 2, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_ROAR, + MOVE_FLAMETHROWER, + MOVE_FAINT_ATTACK, + MOVE_SUNNY_DAY + }, + .cool = 100, + .beauty = 100, + .cute = 30, + .smart = 25, + .tough = 80, + .sheen = 230, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_MILTANK, + .nickname = _("MILKAN"), + .trainerName = _("DEVON"), + .trainerGfxId = 25, + .flags = 0x40040FFF, + .whichRank = 2, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_MILK_DRINK, + MOVE_HEAL_BELL, + MOVE_DEFENSE_CURL, + MOVE_BLIZZARD + }, + .cool = 50, + .beauty = 110, + .cute = 100, + .smart = 35, + .tough = 40, + .sheen = 220, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_GYARADOS, + .nickname = _("RADOS"), + .trainerName = _("JUSTINA"), + .trainerGfxId = 32, + .flags = 0x84000FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_HYPER_BEAM, + MOVE_HYDRO_PUMP, + MOVE_RAIN_DANCE, + MOVE_BITE + }, + .cool = 160, + .beauty = 200, + .cute = 20, + .smart = 40, + .tough = 160, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_LOUDRED, + .nickname = _("LOUDERD"), + .trainerName = _("RALPH"), + .trainerGfxId = 21, + .flags = 0x82000FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_HYPER_VOICE, + MOVE_STOMP, + MOVE_ROAR, + MOVE_HOWL + }, + .cool = 170, + .beauty = 50, + .cute = 55, + .smart = 150, + .tough = 160, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SKITTY, + .nickname = _("SITTY"), + .trainerName = _("ROSA"), + .trainerGfxId = 8, + .flags = 0x81000FFF, + .whichRank = 3, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_ATTRACT, + MOVE_ASSIST, + MOVE_FAINT_ATTACK, + MOVE_TAIL_WHIP + }, + .cool = 40, + .beauty = 200, + .cute = 150, + .smart = 185, + .tough = 60, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SLAKING, + .nickname = _("SLING"), + .trainerName = _("KEATON"), + .trainerGfxId = 11, + .flags = 0x80800FFF, + .whichRank = 3, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_COVET, + MOVE_COUNTER, + MOVE_ENCORE, + MOVE_SLACK_OFF + }, + .cool = 85, + .beauty = 85, + .cute = 170, + .smart = 110, + .tough = 150, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_ALTARIA, + .nickname = _("TARIA"), + .trainerName = _("MAYRA"), + .trainerGfxId = 18, + .flags = 0x80400FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_DRAGON_DANCE, + MOVE_HYPER_BEAM, + MOVE_PERISH_SONG, + MOVE_SAFEGUARD + }, + .cool = 170, + .beauty = 150, + .cute = 30, + .smart = 30, + .tough = 90, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_KIRLIA, + .nickname = _("LIRKI"), + .trainerName = _("LAMAR"), + .trainerGfxId = 15, + .flags = 0x80200FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_SHOCK_WAVE, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_RETURN + }, + .cool = 230, + .beauty = 60, + .cute = 60, + .smart = 230, + .tough = 80, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_BELLOSSOM, + .nickname = _("BLOSSOM"), + .trainerName = _("AUBREY"), + .trainerGfxId = 26, + .flags = 0x80100FFF, + .whichRank = 3, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_PETAL_DANCE, + MOVE_SWEET_SCENT, + MOVE_STUN_SPORE, + MOVE_FLASH + }, + .cool = 35, + .beauty = 200, + .cute = 150, + .smart = 130, + .tough = 40, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SABLEYE, + .nickname = _("EYESAB"), + .trainerName = _("NIGEL"), + .trainerGfxId = 31, + .flags = 0x80080FFF, + .whichRank = 3, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_MEAN_LOOK, + MOVE_FAINT_ATTACK, + MOVE_KNOCK_OFF, + MOVE_CONFUSE_RAY + }, + .cool = 25, + .beauty = 35, + .cute = 230, + .smart = 150, + .tough = 160, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_NATU, + .nickname = _("UTAN"), + .trainerName = _("CAMILLE"), + .trainerGfxId = 47, + .flags = 0x80040FFF, + .whichRank = 3, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_NIGHT_SHADE, + MOVE_FUTURE_SIGHT, + MOVE_CONFUSE_RAY, + MOVE_PSYCHIC + }, + .cool = 35, + .beauty = 35, + .cute = 150, + .smart = 130, + .tough = 170, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SHARPEDO, + .nickname = _("PEDOS"), + .trainerName = _("DEON"), + .trainerGfxId = 38, + .flags = 0x80020FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_AGILITY, + MOVE_SWAGGER, + MOVE_TAUNT, + MOVE_TAKE_DOWN + }, + .cool = 140, + .beauty = 70, + .cute = 140, + .smart = 75, + .tough = 100, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_LUVDISC, + .nickname = _("LUVIS"), + .trainerName = _("JANELLE"), + .trainerGfxId = 10, + .flags = 0x80010FFF, + .whichRank = 3, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_SWEET_KISS, + MOVE_ATTRACT, + MOVE_TAKE_DOWN, + MOVE_CHARM + }, + .cool = 50, + .beauty = 100, + .cute = 220, + .smart = 40, + .tough = 190, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_HERACROSS, + .nickname = _("HEROSS"), + .trainerName = _("HEATH"), + .trainerGfxId = 33, + .flags = 0x80008FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_STRENGTH, + MOVE_ENDURE, + MOVE_REVERSAL, + MOVE_ROCK_TOMB + }, + .cool = 170, + .beauty = 70, + .cute = 110, + .smart = 240, + .tough = 140, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_ELECTRODE, + .nickname = _("RODLECT"), + .trainerName = _("SASHA"), + .trainerGfxId = 6, + .flags = 0x80004FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_EXPLOSION, + MOVE_LIGHT_SCREEN, + MOVE_SWIFT, + MOVE_FLASH + }, + .cool = 200, + .beauty = 200, + .cute = 30, + .smart = 35, + .tough = 50, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_PICHU, + .nickname = _("CHUPY"), + .trainerName = _("FRANKIE"), + .trainerGfxId = 35, + .flags = 0x80002FFF, + .whichRank = 3, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_SWEET_KISS, + MOVE_ATTRACT, + MOVE_REST, + MOVE_TAIL_WHIP + }, + .cool = 25, + .beauty = 150, + .cute = 180, + .smart = 115, + .tough = 120, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_WOBBUFFET, + .nickname = _("WOBET"), + .trainerName = _("HELEN"), + .trainerGfxId = 16, + .flags = 0x80001FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_COUNTER, + MOVE_MIRROR_COAT, + MOVE_SAFEGUARD, + MOVE_DESTINY_BOND + }, + .cool = 60, + .beauty = 230, + .cute = 50, + .smart = 220, + .tough = 210, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_GENGAR, + .nickname = _("GAREN"), + .trainerName = _("CAMILE"), + .trainerGfxId = 40, + .flags = 0xC000FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_DESTINY_BOND, + MOVE_CONFUSE_RAY, + MOVE_LICK, + MOVE_SLUDGE_BOMB + }, + .cool = 200, + .beauty = 100, + .cute = 50, + .smart = 80, + .tough = 180, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_PORYGON, + .nickname = _("GONPOR"), + .trainerName = _("MARTIN"), + .trainerGfxId = 46, + .flags = 0x82000FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_CONVERSION_2, + MOVE_CONVERSION, + MOVE_RETURN, + MOVE_RECYCLE + }, + .cool = 130, + .beauty = 130, + .cute = 130, + .smart = 130, + .tough = 130, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_DRAGONITE, + .nickname = _("DRITE"), + .trainerName = _("SERGIO"), + .trainerGfxId = 7, + .flags = 0x21000FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_OUTRAGE, + MOVE_SLAM, + MOVE_TWISTER, + MOVE_EARTHQUAKE + }, + .cool = 150, + .beauty = 140, + .cute = 50, + .smart = 120, + .tough = 150, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_MEOWTH, + .nickname = _("MEOWY"), + .trainerName = _("KAILEY"), + .trainerGfxId = 6, + .flags = 0x20800FFF, + .whichRank = 3, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_GROWL, + MOVE_TAUNT, + MOVE_PAY_DAY, + MOVE_BITE + }, + .cool = 125, + .beauty = 110, + .cute = 180, + .smart = 170, + .tough = 80, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_JYNX, + .nickname = _("NYX"), + .trainerName = _("PERLA"), + .trainerGfxId = 45, + .flags = 0x80400FFF, + .whichRank = 3, + .aiPool_Cool = FALSE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = TRUE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_PERISH_SONG, + MOVE_MEAN_LOOK, + MOVE_LOVELY_KISS, + MOVE_FAKE_TEARS + }, + .cool = 100, + .beauty = 150, + .cute = 100, + .smart = 150, + .tough = 120, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_TOGEPI, + .nickname = _("GEPITO"), + .trainerName = _("CLARA"), + .trainerGfxId = 20, + .flags = 0x10200FFF, + .whichRank = 3, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_GROWL, + MOVE_YAWN, + MOVE_ENCORE, + MOVE_FOLLOW_ME + }, + .cool = 80, + .beauty = 120, + .cute = 200, + .smart = 120, + .tough = 80, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_ESPEON, + .nickname = _("SPEON"), + .trainerName = _("JAKOB"), + .trainerGfxId = 37, + .flags = 0x20100FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = TRUE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = FALSE, + .moves = + { + MOVE_SWIFT, + MOVE_QUICK_ATTACK, + MOVE_MORNING_SUN, + MOVE_TAIL_WHIP + }, + .cool = 180, + .beauty = 150, + .cute = 100, + .smart = 80, + .tough = 150, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_SLOWKING, + .nickname = _("SLOWGO"), + .trainerName = _("TREY"), + .trainerGfxId = 49, + .flags = 0x8080FFF, + .whichRank = 3, + .aiPool_Cool = FALSE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = TRUE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_FACADE, + MOVE_CURSE, + MOVE_YAWN, + MOVE_FOCUS_PUNCH + }, + .cool = 100, + .beauty = 80, + .cute = 200, + .smart = 110, + .tough = 170, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + }, + { + .species = SPECIES_URSARING, + .nickname = _("URSING"), + .trainerName = _("LANE"), + .trainerGfxId = 44, + .flags = 0x40040FFF, + .whichRank = 3, + .aiPool_Cool = TRUE, + .aiPool_Beauty = FALSE, + .aiPool_Cute = FALSE, + .aiPool_Smart = FALSE, + .aiPool_Tough = TRUE, + .moves = + { + MOVE_THRASH, + MOVE_AERIAL_ACE, + MOVE_FAKE_TEARS, + MOVE_LEER + }, + .cool = 180, + .beauty = 140, + .cute = 30, + .smart = 80, + .tough = 190, + .sheen = 255, + .unk2C = {0}, + .personality = 0, + .otId = 0xFFFF + } +}; \ No newline at end of file From 0c935a8bd500535ba67fad4f25ea50199cfc1871 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Mar 2019 22:54:17 -0500 Subject: [PATCH 07/11] Move the contest opponent filter to C --- data/contest.s | 5 - include/contest.h | 6 + src/contest.c | 7 +- src/data/contest_opponents.h | 390 ++++++++++++++++++++++++++--------- 4 files changed, 303 insertions(+), 105 deletions(-) diff --git a/data/contest.s b/data/contest.s index b752cf8f3c..c04c31577c 100644 --- a/data/contest.s +++ b/data/contest.s @@ -6,11 +6,6 @@ .section .rodata .align 2, 0 -gUnknown_085898A4:: @ 85898A4 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 - .byte 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 - .align 2 gUnknown_08589904:: @ 8589904 obj_tiles gBlankGfxCompressed, 0x1000, 0x80e8 diff --git a/include/contest.h b/include/contest.h index a803c6d4c7..5c299bee5f 100644 --- a/include/contest.h +++ b/include/contest.h @@ -204,6 +204,12 @@ enum { CONTEST_RANK_LINK }; +enum { + CONTEST_FILTER_NONE, + CONTEST_FILTER_NO_POSTGAME, + CONTEST_FILTER_ONLY_POSTGAME +}; + struct ContestPokemon { /*0x00*/ u16 species; diff --git a/src/contest.c b/src/contest.c index 3ef8d4b063..bebe344b98 100644 --- a/src/contest.c +++ b/src/contest.c @@ -242,7 +242,6 @@ extern const u8 gText_Contest_Fear[]; extern const u8 gText_BDot[]; extern const u8 gText_CDot[]; extern const u8 *const gUnknown_08587E10[]; -extern const u8 gUnknown_085898A4[96]; extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; extern const union AffineAnimCmd *const gUnknown_082FF694[]; extern const struct SpriteTemplate gSpriteTemplate_8587AD0; @@ -2565,7 +2564,7 @@ void sub_80DAB8C(u8 contestType, u8 rank) r7 = TRUE; // Find all suitable opponents - r3 = gUnknown_085898A4; + r3 = gPostgameContestOpponentFilter; for (i = 0; i < ARRAY_COUNT(gContestOpponents); i++) { if (rank == gContestOpponents[i].whichRank) @@ -2625,12 +2624,12 @@ void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame) if (isPostgame == TRUE) { - if (gUnknown_085898A4[i] == 1) + if (gPostgameContestOpponentFilter[i] == CONTEST_FILTER_NO_POSTGAME) continue; } else { - if (gUnknown_085898A4[i] == 2) + if (gPostgameContestOpponentFilter[i] == CONTEST_FILTER_ONLY_POSTGAME) continue; } if ((contestType == CONTEST_CATEGORY_COOL && gContestOpponents[i].aiPool_Cool) diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index 8937e9914d..2ebfd1dfd5 100644 --- a/src/data/contest_opponents.h +++ b/src/data/contest_opponents.h @@ -3,6 +3,103 @@ #include "contest.h" #include "constants/species.h" +#define CONTEST_OPPONENT_JIMMY 0 +#define CONTEST_OPPONENT_EDITH 1 +#define CONTEST_OPPONENT_EVAN 2 +#define CONTEST_OPPONENT_KELSEY 3 +#define CONTEST_OPPONENT_MADISON 4 +#define CONTEST_OPPONENT_RAYMOND 5 +#define CONTEST_OPPONENT_GRANT 6 +#define CONTEST_OPPONENT_PAIGE 7 +#define CONTEST_OPPONENT_ALEC 8 +#define CONTEST_OPPONENT_SYDNEY 9 +#define CONTEST_OPPONENT_MORRIS 10 +#define CONTEST_OPPONENT_MARIAH 11 +#define CONTEST_OPPONENT_RUSSELL 12 +#define CONTEST_OPPONENT_MELANIE 13 +#define CONTEST_OPPONENT_CHANCE 14 +#define CONTEST_OPPONENT_AGATHA 15 +#define CONTEST_OPPONENT_BEAU 16 +#define CONTEST_OPPONENT_KAY 17 +#define CONTEST_OPPONENT_CALE 18 +#define CONTEST_OPPONENT_CAITLIN 19 +#define CONTEST_OPPONENT_COLBY 20 +#define CONTEST_OPPONENT_KYLIE 21 +#define CONTEST_OPPONENT_LIAM 22 +#define CONTEST_OPPONENT_MILO 23 +#define CONTEST_OPPONENT_KARINA 24 +#define CONTEST_OPPONENT_BOBBY 25 +#define CONTEST_OPPONENT_CLAIRE 26 +#define CONTEST_OPPONENT_WILLIE 27 +#define CONTEST_OPPONENT_CASSIDY 28 +#define CONTEST_OPPONENT_MORGAN 29 +#define CONTEST_OPPONENT_SUMMER 30 +#define CONTEST_OPPONENT_MILES 31 +#define CONTEST_OPPONENT_AUDREY 32 +#define CONTEST_OPPONENT_AVERY 33 +#define CONTEST_OPPONENT_ARIANA 34 +#define CONTEST_OPPONENT_ASHTON 35 +#define CONTEST_OPPONENT_SANDRA 36 +#define CONTEST_OPPONENT_CARSON 37 +#define CONTEST_OPPONENT_KATRINA 38 +#define CONTEST_OPPONENT_LUKE 39 +#define CONTEST_OPPONENT_RAUL 40 +#define CONTEST_OPPONENT_JADA 41 +#define CONTEST_OPPONENT_ZEEK 42 +#define CONTEST_OPPONENT_DIEGO 43 +#define CONTEST_OPPONENT_ALIYAH 44 +#define CONTEST_OPPONENT_NATALIA 45 +#define CONTEST_OPPONENT_DEVIN 46 +#define CONTEST_OPPONENT_TYLOR 47 +#define CONTEST_OPPONENT_RONNIE 48 +#define CONTEST_OPPONENT_CLAUDIA 49 +#define CONTEST_OPPONENT_ELIAS 50 +#define CONTEST_OPPONENT_JADE 51 +#define CONTEST_OPPONENT_FRANCIS 52 +#define CONTEST_OPPONENT_ALISHA 53 +#define CONTEST_OPPONENT_SAUL 54 +#define CONTEST_OPPONENT_FELICIA 55 +#define CONTEST_OPPONENT_EMILIO 56 +#define CONTEST_OPPONENT_KARLA 57 +#define CONTEST_OPPONENT_DARRYL 58 +#define CONTEST_OPPONENT_SELENA 59 +#define CONTEST_OPPONENT_NOEL 60 +#define CONTEST_OPPONENT_LACEY 61 +#define CONTEST_OPPONENT_CORBIN 62 +#define CONTEST_OPPONENT_GRACIE 63 +#define CONTEST_OPPONENT_COLTIN 64 +#define CONTEST_OPPONENT_ELLIE 65 +#define CONTEST_OPPONENT_MARCUS 66 +#define CONTEST_OPPONENT_KIARA 67 +#define CONTEST_OPPONENT_BRYCE 68 +#define CONTEST_OPPONENT_JAMIE 69 +#define CONTEST_OPPONENT_JORGE 70 +#define CONTEST_OPPONENT_DEVON 71 +#define CONTEST_OPPONENT_JUSTINA 72 +#define CONTEST_OPPONENT_RALPH 73 +#define CONTEST_OPPONENT_ROSA 74 +#define CONTEST_OPPONENT_KEATON 75 +#define CONTEST_OPPONENT_MAYRA 76 +#define CONTEST_OPPONENT_LAMAR 77 +#define CONTEST_OPPONENT_AUBREY 78 +#define CONTEST_OPPONENT_NIGEL 79 +#define CONTEST_OPPONENT_CAMILLE 80 +#define CONTEST_OPPONENT_DEON 81 +#define CONTEST_OPPONENT_JANELLE 82 +#define CONTEST_OPPONENT_HEATH 83 +#define CONTEST_OPPONENT_SASHA 84 +#define CONTEST_OPPONENT_FRANKIE 85 +#define CONTEST_OPPONENT_HELEN 86 +#define CONTEST_OPPONENT_CAMILE 87 +#define CONTEST_OPPONENT_MARTIN 88 +#define CONTEST_OPPONENT_SERGIO 89 +#define CONTEST_OPPONENT_KAILEY 90 +#define CONTEST_OPPONENT_PERLA 91 +#define CONTEST_OPPONENT_CLARA 92 +#define CONTEST_OPPONENT_JAKOB 93 +#define CONTEST_OPPONENT_TREY 94 +#define CONTEST_OPPONENT_LANE 95 + const struct ContestWinner gUnknown_08587FA4[] = { { @@ -81,7 +178,7 @@ const struct ContestWinner gUnknown_08587FA4[] = const struct ContestPokemon gContestOpponents[] = { - { + [CONTEST_OPPONENT_JIMMY] = { .species = SPECIES_POOCHYENA, .nickname = _("POOCHY"), .trainerName = _("JIMMY"), @@ -110,7 +207,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_EDITH] = { .species = SPECIES_ILLUMISE, .nickname = _("MUSILLE"), .trainerName = _("EDITH"), @@ -139,7 +236,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_EVAN] = { .species = SPECIES_DUSTOX, .nickname = _("DUSTER"), .trainerName = _("EVAN"), @@ -168,7 +265,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_KELSEY] = { .species = SPECIES_SEEDOT, .nickname = _("DOTS"), .trainerName = _("KELSEY"), @@ -197,7 +294,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_MADISON] = { .species = SPECIES_TAILLOW, .nickname = _("TATAY"), .trainerName = _("MADISON"), @@ -226,7 +323,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_RAYMOND] = { .species = SPECIES_NINCADA, .nickname = _("NINDA"), .trainerName = _("RAYMOND"), @@ -255,7 +352,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_GRANT] = { .species = SPECIES_SHROOMISH, .nickname = _("SMISH"), .trainerName = _("GRANT"), @@ -284,7 +381,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_PAIGE] = { .species = SPECIES_SPHEAL, .nickname = _("SLEAL"), .trainerName = _("PAIGE"), @@ -313,7 +410,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_ALEC] = { .species = SPECIES_SLAKOTH, .nickname = _("SLOKTH"), .trainerName = _("ALEC"), @@ -342,7 +439,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_SYDNEY] = { .species = SPECIES_WHISMUR, .nickname = _("WHIRIS"), .trainerName = _("SYDNEY"), @@ -371,7 +468,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_MORRIS] = { .species = SPECIES_MAKUHITA, .nickname = _("MAHITA"), .trainerName = _("MORRIS"), @@ -400,7 +497,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_MARIAH] = { .species = SPECIES_ARON, .nickname = _("RONAR"), .trainerName = _("MARIAH"), @@ -429,7 +526,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_RUSSELL] = { .species = SPECIES_CROBAT, .nickname = _("BATRO"), .trainerName = _("RUSSELL"), @@ -458,7 +555,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_MELANIE] = { .species = SPECIES_GULPIN, .nickname = _("GULIN"), .trainerName = _("MELANIE"), @@ -487,7 +584,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_CHANCE] = { .species = SPECIES_MANECTRIC, .nickname = _("RIKELEC"), .trainerName = _("CHANCE"), @@ -516,7 +613,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_AGATHA] = { .species = SPECIES_BULBASAUR, .nickname = _("BULBY"), .trainerName = _("AGATHA"), @@ -545,7 +642,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_BEAU] = { .species = SPECIES_BUTTERFREE, .nickname = _("FUTTERBE"), .trainerName = _("BEAU"), @@ -574,7 +671,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_KAY] = { .species = SPECIES_PIDGEOTTO, .nickname = _("PIDEOT"), .trainerName = _("KAY"), @@ -603,7 +700,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_CALE] = { .species = SPECIES_DIGLETT, .nickname = _("DIGLE"), .trainerName = _("CALE"), @@ -632,7 +729,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_CAITLIN] = { .species = SPECIES_POLIWAG, .nickname = _("WAGIL"), .trainerName = _("CAITLIN"), @@ -661,7 +758,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_COLBY] = { .species = SPECIES_TOTODILE, .nickname = _("TOTDIL"), .trainerName = _("COLBY"), @@ -690,7 +787,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_KYLIE] = { .species = SPECIES_LEDYBA, .nickname = _("BALEDY"), .trainerName = _("KYLIE"), @@ -719,7 +816,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_LIAM] = { .species = SPECIES_DELIBIRD, .nickname = _("BIRDLY"), .trainerName = _("LIAM"), @@ -748,7 +845,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_MILO] = { .species = SPECIES_LARVITAR, .nickname = _("TARVITAR"), .trainerName = _("MILO"), @@ -777,7 +874,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_KARINA] = { .species = SPECIES_ROSELIA, .nickname = _("RELIA"), .trainerName = _("KARINA"), @@ -806,7 +903,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_BOBBY] = { .species = SPECIES_DODRIO, .nickname = _("DUODO"), .trainerName = _("BOBBY"), @@ -835,7 +932,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_CLAIRE] = { .species = SPECIES_TRAPINCH, .nickname = _("PINCHIN"), .trainerName = _("CLAIRE"), @@ -864,7 +961,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_WILLIE] = { .species = SPECIES_CACNEA, .nickname = _("NACAC"), .trainerName = _("WILLIE"), @@ -893,7 +990,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_CASSIDY] = { .species = SPECIES_SANDSLASH, .nickname = _("SHRAND"), .trainerName = _("CASSIDY"), @@ -922,7 +1019,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_MORGAN] = { .species = SPECIES_BALTOY, .nickname = _("TOYBAL"), .trainerName = _("MORGAN"), @@ -951,7 +1048,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_SUMMER] = { .species = SPECIES_MEDICHAM, .nickname = _("CHAMCHAM"), .trainerName = _("SUMMER"), @@ -980,7 +1077,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_MILES] = { .species = SPECIES_SPINDA, .nickname = _("SPININ"), .trainerName = _("MILES"), @@ -1009,7 +1106,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_AUDREY] = { .species = SPECIES_SWABLU, .nickname = _("SWABY"), .trainerName = _("AUDREY"), @@ -1038,7 +1135,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_AVERY] = { .species = SPECIES_SPOINK, .nickname = _("POINKER"), .trainerName = _("AVERY"), @@ -1067,7 +1164,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_ARIANA] = { .species = SPECIES_KECLEON, .nickname = _("KECON"), .trainerName = _("ARIANA"), @@ -1096,7 +1193,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_ASHTON] = { .species = SPECIES_GOLDEEN, .nickname = _("GOLDEN"), .trainerName = _("ASHTON"), @@ -1125,7 +1222,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_SANDRA] = { .species = SPECIES_BARBOACH, .nickname = _("BOBOACH"), .trainerName = _("SANDRA"), @@ -1154,7 +1251,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_CARSON] = { .species = SPECIES_SKARMORY, .nickname = _("CORPY"), .trainerName = _("CARSON"), @@ -1183,7 +1280,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_KATRINA] = { .species = SPECIES_LOTAD, .nickname = _("TADO"), .trainerName = _("KATRINA"), @@ -1212,7 +1309,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_LUKE] = { .species = SPECIES_SLOWBRO, .nickname = _("BROWLO"), .trainerName = _("LUKE"), @@ -1241,7 +1338,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_RAUL] = { .species = SPECIES_FARFETCHD, .nickname = _("FETCHIN"), .trainerName = _("RAUL"), @@ -1270,7 +1367,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_JADA] = { .species = SPECIES_SEEL, .nickname = _("SEELEY"), .trainerName = _("JADA"), @@ -1299,7 +1396,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_ZEEK] = { .species = SPECIES_DROWZEE, .nickname = _("DROWZIN"), .trainerName = _("ZEEK"), @@ -1328,7 +1425,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_DIEGO] = { .species = SPECIES_HITMONCHAN, .nickname = _("HITEMON"), .trainerName = _("DIEGO"), @@ -1357,7 +1454,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_ALIYAH] = { .species = SPECIES_BLISSEY, .nickname = _("BLISS"), .trainerName = _("ALIYAH"), @@ -1386,7 +1483,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_NATALIA] = { .species = SPECIES_ELEKID, .nickname = _("KIDLEK"), .trainerName = _("NATALIA"), @@ -1415,7 +1512,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_DEVIN] = { .species = SPECIES_SNUBBULL, .nickname = _("SNUBBINS"), .trainerName = _("DEVIN"), @@ -1444,7 +1541,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_TYLOR] = { .species = SPECIES_MISDREAVUS, .nickname = _("DREAVIS"), .trainerName = _("TYLOR"), @@ -1473,7 +1570,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_RONNIE] = { .species = SPECIES_LAIRON, .nickname = _("LAIRN"), .trainerName = _("RONNIE"), @@ -1502,7 +1599,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_CLAUDIA] = { .species = SPECIES_SHIFTRY, .nickname = _("SHIFTY"), .trainerName = _("CLAUDIA"), @@ -1531,7 +1628,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_ELIAS] = { .species = SPECIES_NINJASK, .nickname = _("NINAS"), .trainerName = _("ELIAS"), @@ -1560,7 +1657,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_JADE] = { .species = SPECIES_SWELLOW, .nickname = _("WELOW"), .trainerName = _("JADE"), @@ -1589,7 +1686,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_FRANCIS] = { .species = SPECIES_MIGHTYENA, .nickname = _("YENA"), .trainerName = _("FRANCIS"), @@ -1618,7 +1715,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_ALISHA] = { .species = SPECIES_BEAUTIFLY, .nickname = _("TIFLY"), .trainerName = _("ALISHA"), @@ -1647,7 +1744,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_SAUL] = { .species = SPECIES_SEAKING, .nickname = _("KINGSEA"), .trainerName = _("SAUL"), @@ -1676,7 +1773,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_FELICIA] = { .species = SPECIES_CASTFORM, .nickname = _("CASTER"), .trainerName = _("FELICIA"), @@ -1705,7 +1802,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_EMILIO] = { .species = SPECIES_MACHOKE, .nickname = _("CHOKEM"), .trainerName = _("EMILIO"), @@ -1734,7 +1831,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_KARLA] = { .species = SPECIES_LOMBRE, .nickname = _("LOMBE"), .trainerName = _("KARLA"), @@ -1763,7 +1860,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_DARRYL] = { .species = SPECIES_SEVIPER, .nickname = _("VIPES"), .trainerName = _("DARRYL"), @@ -1792,7 +1889,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_SELENA] = { .species = SPECIES_WAILMER, .nickname = _("MERAIL"), .trainerName = _("SELENA"), @@ -1821,7 +1918,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_NOEL] = { .species = SPECIES_MAGIKARP, .nickname = _("KARPAG"), .trainerName = _("NOEL"), @@ -1850,7 +1947,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_LACEY] = { .species = SPECIES_LUNATONE, .nickname = _("LUNONE"), .trainerName = _("LACEY"), @@ -1879,7 +1976,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_CORBIN] = { .species = SPECIES_ABSOL, .nickname = _("ABSO"), .trainerName = _("CORBIN"), @@ -1908,7 +2005,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_GRACIE] = { .species = SPECIES_EXEGGUTOR, .nickname = _("EGGSOR"), .trainerName = _("GRACIE"), @@ -1937,7 +2034,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_COLTIN] = { .species = SPECIES_CUBONE, .nickname = _("CUBIN"), .trainerName = _("COLTIN"), @@ -1966,7 +2063,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_ELLIE] = { .species = SPECIES_HITMONLEE, .nickname = _("HITMON"), .trainerName = _("ELLIE"), @@ -1995,7 +2092,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_MARCUS] = { .species = SPECIES_SQUIRTLE, .nickname = _("SURTLE"), .trainerName = _("MARCUS"), @@ -2024,7 +2121,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_KIARA] = { .species = SPECIES_KANGASKHAN, .nickname = _("KHANKAN"), .trainerName = _("KIARA"), @@ -2053,7 +2150,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_BRYCE] = { .species = SPECIES_PINECO, .nickname = _("PINOC"), .trainerName = _("BRYCE"), @@ -2082,7 +2179,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_JAMIE] = { .species = SPECIES_DUNSPARCE, .nickname = _("DILTOT"), .trainerName = _("JAMIE"), @@ -2111,7 +2208,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_JORGE] = { .species = SPECIES_HOUNDOOM, .nickname = _("DOOMOND"), .trainerName = _("JORGE"), @@ -2140,7 +2237,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_DEVON] = { .species = SPECIES_MILTANK, .nickname = _("MILKAN"), .trainerName = _("DEVON"), @@ -2169,7 +2266,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_JUSTINA] = { .species = SPECIES_GYARADOS, .nickname = _("RADOS"), .trainerName = _("JUSTINA"), @@ -2198,7 +2295,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_RALPH] = { .species = SPECIES_LOUDRED, .nickname = _("LOUDERD"), .trainerName = _("RALPH"), @@ -2227,7 +2324,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_ROSA] = { .species = SPECIES_SKITTY, .nickname = _("SITTY"), .trainerName = _("ROSA"), @@ -2256,7 +2353,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_KEATON] = { .species = SPECIES_SLAKING, .nickname = _("SLING"), .trainerName = _("KEATON"), @@ -2285,7 +2382,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_MAYRA] = { .species = SPECIES_ALTARIA, .nickname = _("TARIA"), .trainerName = _("MAYRA"), @@ -2314,7 +2411,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_LAMAR] = { .species = SPECIES_KIRLIA, .nickname = _("LIRKI"), .trainerName = _("LAMAR"), @@ -2343,7 +2440,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_AUBREY] = { .species = SPECIES_BELLOSSOM, .nickname = _("BLOSSOM"), .trainerName = _("AUBREY"), @@ -2372,7 +2469,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_NIGEL] = { .species = SPECIES_SABLEYE, .nickname = _("EYESAB"), .trainerName = _("NIGEL"), @@ -2401,7 +2498,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_CAMILLE] = { .species = SPECIES_NATU, .nickname = _("UTAN"), .trainerName = _("CAMILLE"), @@ -2430,7 +2527,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_DEON] = { .species = SPECIES_SHARPEDO, .nickname = _("PEDOS"), .trainerName = _("DEON"), @@ -2459,7 +2556,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_JANELLE] = { .species = SPECIES_LUVDISC, .nickname = _("LUVIS"), .trainerName = _("JANELLE"), @@ -2488,7 +2585,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_HEATH] = { .species = SPECIES_HERACROSS, .nickname = _("HEROSS"), .trainerName = _("HEATH"), @@ -2517,7 +2614,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_SASHA] = { .species = SPECIES_ELECTRODE, .nickname = _("RODLECT"), .trainerName = _("SASHA"), @@ -2546,7 +2643,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_FRANKIE] = { .species = SPECIES_PICHU, .nickname = _("CHUPY"), .trainerName = _("FRANKIE"), @@ -2575,7 +2672,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_HELEN] = { .species = SPECIES_WOBBUFFET, .nickname = _("WOBET"), .trainerName = _("HELEN"), @@ -2604,7 +2701,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_CAMILE] = { .species = SPECIES_GENGAR, .nickname = _("GAREN"), .trainerName = _("CAMILE"), @@ -2633,7 +2730,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_MARTIN] = { .species = SPECIES_PORYGON, .nickname = _("GONPOR"), .trainerName = _("MARTIN"), @@ -2662,7 +2759,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_SERGIO] = { .species = SPECIES_DRAGONITE, .nickname = _("DRITE"), .trainerName = _("SERGIO"), @@ -2691,7 +2788,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_KAILEY] = { .species = SPECIES_MEOWTH, .nickname = _("MEOWY"), .trainerName = _("KAILEY"), @@ -2720,7 +2817,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_PERLA] = { .species = SPECIES_JYNX, .nickname = _("NYX"), .trainerName = _("PERLA"), @@ -2749,7 +2846,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_CLARA] = { .species = SPECIES_TOGEPI, .nickname = _("GEPITO"), .trainerName = _("CLARA"), @@ -2778,7 +2875,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_JAKOB] = { .species = SPECIES_ESPEON, .nickname = _("SPEON"), .trainerName = _("JAKOB"), @@ -2807,7 +2904,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_TREY] = { .species = SPECIES_SLOWKING, .nickname = _("SLOWGO"), .trainerName = _("TREY"), @@ -2836,7 +2933,7 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF }, - { + [CONTEST_OPPONENT_LANE] = { .species = SPECIES_URSARING, .nickname = _("URSING"), .trainerName = _("LANE"), @@ -2865,4 +2962,105 @@ const struct ContestPokemon gContestOpponents[] = .personality = 0, .otId = 0xFFFF } +}; + + +const u8 gPostgameContestOpponentFilter[] = +{ + [CONTEST_OPPONENT_JIMMY] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_EDITH] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_EVAN] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_KELSEY] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_MADISON] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_RAYMOND] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_GRANT] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_PAIGE] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_ALEC] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_SYDNEY] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_MORRIS] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_MARIAH] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_RUSSELL] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_MELANIE] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_CHANCE] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_AGATHA] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_BEAU] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_KAY] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_CALE] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_CAITLIN] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_COLBY] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_KYLIE] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_LIAM] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_MILO] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_KARINA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_BOBBY] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_CLAIRE] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_WILLIE] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_CASSIDY] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_MORGAN] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_SUMMER] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_MILES] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_AUDREY] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_AVERY] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_ARIANA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_ASHTON] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_SANDRA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_CARSON] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_KATRINA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_LUKE] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_RAUL] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_JADA] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_ZEEK] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_DIEGO] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_ALIYAH] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_NATALIA] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_DEVIN] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_TYLOR] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_RONNIE] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_CLAUDIA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_ELIAS] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_JADE] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_FRANCIS] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_ALISHA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_SAUL] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_FELICIA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_EMILIO] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_KARLA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_DARRYL] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_SELENA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_NOEL] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_LACEY] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_CORBIN] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_GRACIE] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_COLTIN] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_ELLIE] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_MARCUS] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_KIARA] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_BRYCE] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_JAMIE] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_JORGE] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_DEVON] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_JUSTINA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_RALPH] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_ROSA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_KEATON] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_MAYRA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_LAMAR] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_AUBREY] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_NIGEL] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_CAMILLE] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_DEON] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_JANELLE] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_HEATH] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_SASHA] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_FRANKIE] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_HELEN] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_CAMILE] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_MARTIN] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_SERGIO] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_KAILEY] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_PERLA] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_CLARA] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_JAKOB] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_TREY] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_LANE] = CONTEST_FILTER_ONLY_POSTGAME }; \ No newline at end of file From 13c2f91b11a9ae773fd22b045f37b85c6e1ed984 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Mar 2019 23:51:39 -0500 Subject: [PATCH 08/11] Moved last contest data into C --- data/contest.s | 58 -------------------- ld_script.txt | 1 - src/contest.c | 140 ++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 134 insertions(+), 65 deletions(-) delete mode 100644 data/contest.s diff --git a/data/contest.s b/data/contest.s deleted file mode 100644 index c04c31577c..0000000000 --- a/data/contest.s +++ /dev/null @@ -1,58 +0,0 @@ -#include "constants/species.h" -#include "constants/moves.h" - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - - .align 2 -gUnknown_08589904:: @ 8589904 - obj_tiles gBlankGfxCompressed, 0x1000, 0x80e8 - obj_tiles gBlankGfxCompressed, 0x1000, 0x80e9 - obj_tiles gBlankGfxCompressed, 0x1000, 0x80ea - obj_tiles gBlankGfxCompressed, 0x1000, 0x80eb - - .align 2 -gUnknown_08589924:: @ 8589924 Yup this is super dangerous but that's how it is here - obj_pal gHeap + 0x1A0A4, 0x80e8 - obj_pal gHeap + 0x1A0C4, 0x80e9 - obj_pal gHeap + 0x1A0E4, 0x80ea - obj_pal gHeap + 0x1A104, 0x80eb - - .align 2 -gOamData_8589944:: @ 8589944 - .2byte 0x0700 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gSpriteAffineAnim_858994C:: @ 858994C - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_858995C:: @ 858995C - obj_rot_scal_anim_frame 0x3, 0x3, 0, 15 - obj_rot_scal_anim_frame 0xFFFD, 0xFFFD, 0, 15 - obj_rot_scal_anim_frame 0x3, 0x3, 0, 15 - obj_rot_scal_anim_frame 0xFFFD, 0xFFFD, 0, 15 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_8589984:: @ 8589984 - .4byte gSpriteAffineAnim_858994C - .4byte gSpriteAffineAnim_858995C - - .align 2 -gSpriteTemplate_858998C:: @ 858998C - spr_template 0x80e8, 0x80e8, gOamData_8589944, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8589984, SpriteCallbackDummy - spr_template 0x80e9, 0x80e9, gOamData_8589944, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8589984, SpriteCallbackDummy - spr_template 0x80ea, 0x80ea, gOamData_8589944, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8589984, SpriteCallbackDummy - spr_template 0x80eb, 0x80eb, gOamData_8589944, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8589984, SpriteCallbackDummy - - .align 2 -gContestExcitementTable:: @ 85899EC - .2byte 0x0001, 0xffff, 0x0000, 0x0001, 0xffff, 0x00ff, 0x0001, 0xffff, 0x00ff, 0x0001, 0xff00, 0x00ff, 0x0001, 0x0000 - - diff --git a/ld_script.txt b/ld_script.txt index b87bb34f3e..5293c7e23e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -462,7 +462,6 @@ SECTIONS { src/battle_anim_80D51AC.o(.rodata); src/item.o(.rodata); src/contest.o(.rodata); - data/contest.o(.rodata); src/shop.o(.rodata); src/fldeff_escalator.o(.rodata); src/berry.o(.rodata); diff --git a/src/contest.c b/src/contest.c index bebe344b98..da3075e65f 100644 --- a/src/contest.c +++ b/src/contest.c @@ -247,10 +247,6 @@ extern const union AffineAnimCmd *const gUnknown_082FF694[]; extern const struct SpriteTemplate gSpriteTemplate_8587AD0; extern const struct SpriteTemplate gSpriteTemplate_8587B18[]; extern void (*const gContestEffectFuncs[])(void); -extern const s8 gContestExcitementTable[][5]; -extern const struct CompressedSpriteSheet gUnknown_08589904[]; -extern const struct SpritePalette gUnknown_08589924[]; -extern const struct SpriteTemplate gSpriteTemplate_858998C[]; static const u8 gUnknown_08587A6C[] = { @@ -722,6 +718,138 @@ const struct WindowTemplate gUnknown_08587F44[] = #include "data/contest_opponents.h" +static const struct CompressedSpriteSheet sUnknown_08589904[] = +{ + { + .data = gBlankGfxCompressed, + .size = 0x1000, + .tag = 0x80E8 + }, + { + .data = gBlankGfxCompressed, + .size = 0x1000, + .tag = 0x80E9 + }, + { + .data = gBlankGfxCompressed, + .size = 0x1000, + .tag = 0x80EA + }, + { + .data = gBlankGfxCompressed, + .size = 0x1000, + .tag = 0x80EB + } +}; + +// Yup this is super dangerous but that's how it is here +static const struct SpritePalette sUnknown_08589924[] = +{ + { + .data = (u16*)(gHeap + 0x1A0A4), + .tag = 0x80E8 + }, + { + .data = (u16*)(gHeap + 0x1A0C4), + .tag = 0x80E9 + }, + { + .data = (u16*)(gHeap + 0x1A0E4), + .tag = 0x80EA + }, + { + .data = (u16*)(gHeap + 0x1A104), + .tag = 0x80EB + } +}; + +const struct OamData gOamData_8589944 = +{ + .y = 0, + .affineMode = 3, + .objMode = 1, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +const union AffineAnimCmd gSpriteAffineAnim_858994C[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd gSpriteAffineAnim_858995C[] = +{ + AFFINEANIMCMD_FRAME(3, 3, 0, 15), + AFFINEANIMCMD_FRAME(-3, -3, 0, 15), + AFFINEANIMCMD_FRAME(3, 3, 0, 15), + AFFINEANIMCMD_FRAME(-3, -3, 0, 15), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_8589984[] = +{ + gSpriteAffineAnim_858994C, + gSpriteAffineAnim_858995C +}; + +const struct SpriteTemplate gSpriteTemplate_858998C[] = +{ + { + .tileTag = 0x80E8, + .paletteTag = 0x80E8, + .oam = &gOamData_8589944, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_8589984, + .callback = SpriteCallbackDummy + }, + { + .tileTag = 0x80E9, + .paletteTag = 0x80E9, + .oam = &gOamData_8589944, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_8589984, + .callback = SpriteCallbackDummy + }, + { + .tileTag = 0x80EA, + .paletteTag = 0x80EA, + .oam = &gOamData_8589944, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_8589984, + .callback = SpriteCallbackDummy + }, + { + .tileTag = 0x80EB, + .paletteTag = 0x80EB, + .oam = &gOamData_8589944, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_8589984, + .callback = SpriteCallbackDummy + } +}; + +const s8 gContestExcitementTable[][5] = +{ + { 1, 0, -1, -1, 0}, + { 0, 1, 0, -1, -1}, + {-1, 0, 1, 0, -1}, + {-1, -1, 0, 1, 0}, + { 0, -1, -1, 0, 1} +}; + static void TaskDummy1(u8 taskId) { } @@ -3763,8 +3891,8 @@ static u8 sub_80DC9EC(u8 a) u8 spriteId1, spriteId2; u8 x = gUnknown_02039F26[a] * 40 + 32; - LoadCompressedSpriteSheet(&gUnknown_08589904[a]); - LoadSpritePalette(&gUnknown_08589924[a]); + LoadCompressedSpriteSheet(&sUnknown_08589904[a]); + LoadSpritePalette(&sUnknown_08589924[a]); spriteId1 = CreateSprite(&gSpriteTemplate_858998C[a], 184, x, 29); spriteId2 = CreateSprite(&gSpriteTemplate_858998C[a], 248, x, 29); gSprites[spriteId2].oam.tileNum += 64; From 207a54393c533e073e54365a8069753536fefa3c Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 31 Mar 2019 20:07:24 -0400 Subject: [PATCH 09/11] Fix mistakes and use EVENT_OBJ_GFX_* macros --- .../AbandonedShip_CaptainsOffice/map.json | 4 +- include/contest.h | 2 - src/data/contest_opponents.h | 392 +++++++++--------- src/data/contest_text_tables.h | 118 +++--- 4 files changed, 257 insertions(+), 259 deletions(-) diff --git a/data/maps/AbandonedShip_CaptainsOffice/map.json b/data/maps/AbandonedShip_CaptainsOffice/map.json index 3f612c3203..a78d433b6d 100644 --- a/data/maps/AbandonedShip_CaptainsOffice/map.json +++ b/data/maps/AbandonedShip_CaptainsOffice/map.json @@ -25,7 +25,7 @@ "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", "script": "AbandonedShip_CaptainsOffice_EventScript_2387E2", - "flag": "0" + "flag": "0" }, { "graphics_id": "EVENT_OBJ_GFX_ITEM_BALL", @@ -59,4 +59,4 @@ ], "coord_events": [], "bg_events": [] -} \ No newline at end of file +} diff --git a/include/contest.h b/include/contest.h index 5c299bee5f..a0b1a6b34b 100644 --- a/include/contest.h +++ b/include/contest.h @@ -216,7 +216,6 @@ struct ContestPokemon /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; /*0x0D*/ u8 trainerName[PLAYER_NAME_LENGTH + 1]; /*0x15*/ u8 trainerGfxId; - // Temp note: 2 bytes of padding /*0x18*/ u32 flags; /*0x1C*/ u8 whichRank:2; // 0x1 0x2 u8 aiPool_Cool:1; // 0x4 @@ -224,7 +223,6 @@ struct ContestPokemon u8 aiPool_Cute:1; // 0x10 u8 aiPool_Smart:1; // 0x20 u8 aiPool_Tough:1; // 0x40 - // Temp note: 1 byte of padding /*0x1E*/ u16 moves[4]; // moves /*0x26*/ u8 cool; // cool /*0x27*/ u8 beauty; // beauty diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index 2ebfd1dfd5..ef1fdba9f0 100644 --- a/src/data/contest_opponents.h +++ b/src/data/contest_opponents.h @@ -182,9 +182,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_POOCHYENA, .nickname = _("POOCHY"), .trainerName = _("JIMMY"), - .trainerGfxId = 7, + .trainerGfxId = EVENT_OBJ_GFX_BOY_1, .flags = 0xC000FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -211,9 +211,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_ILLUMISE, .nickname = _("MUSILLE"), .trainerName = _("EDITH"), - .trainerGfxId = 8, + .trainerGfxId = EVENT_OBJ_GFX_GIRL_1, .flags = 0x82000FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -240,9 +240,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_DUSTOX, .nickname = _("DUSTER"), .trainerName = _("EVAN"), - .trainerGfxId = 11, + .trainerGfxId = EVENT_OBJ_GFX_LITTLE_BOY, .flags = 0x21000FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -269,9 +269,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SEEDOT, .nickname = _("DOTS"), .trainerName = _("KELSEY"), - .trainerGfxId = 16, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_1, .flags = 0x20800FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -298,9 +298,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_TAILLOW, .nickname = _("TATAY"), .trainerName = _("MADISON"), - .trainerGfxId = 18, + .trainerGfxId = EVENT_OBJ_GFX_POKEFAN_F, .flags = 0x80400FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -327,9 +327,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_NINCADA, .nickname = _("NINDA"), .trainerName = _("RAYMOND"), - .trainerGfxId = 44, + .trainerGfxId = EVENT_OBJ_GFX_BLACK_BELT, .flags = 0x10200FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -356,9 +356,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SHROOMISH, .nickname = _("SMISH"), .trainerName = _("GRANT"), - .trainerGfxId = 35, + .trainerGfxId = EVENT_OBJ_GFX_YOUNGSTER, .flags = 0x20100FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -385,9 +385,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SPHEAL, .nickname = _("SLEAL"), .trainerName = _("PAIGE"), - .trainerGfxId = 26, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_4, .flags = 0x8080FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -414,9 +414,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SLAKOTH, .nickname = _("SLOKTH"), .trainerName = _("ALEC"), - .trainerGfxId = 31, + .trainerGfxId = EVENT_OBJ_GFX_CAMPER, .flags = 0x40040FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -443,9 +443,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_WHISMUR, .nickname = _("WHIRIS"), .trainerName = _("SYDNEY"), - .trainerGfxId = 47, + .trainerGfxId = EVENT_OBJ_GFX_LASS, .flags = 0x80020FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -472,9 +472,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_MAKUHITA, .nickname = _("MAHITA"), .trainerName = _("MORRIS"), - .trainerGfxId = 38, + .trainerGfxId = EVENT_OBJ_GFX_SCHOOL_KID_M, .flags = 0x8010FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -501,9 +501,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_ARON, .nickname = _("RONAR"), .trainerName = _("MARIAH"), - .trainerGfxId = 10, + .trainerGfxId = EVENT_OBJ_GFX_GIRL_2, .flags = 0x8008FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -530,9 +530,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_CROBAT, .nickname = _("BATRO"), .trainerName = _("RUSSELL"), - .trainerGfxId = 33, + .trainerGfxId = EVENT_OBJ_GFX_MAN_3, .flags = 0x90004FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -559,9 +559,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_GULPIN, .nickname = _("GULIN"), .trainerName = _("MELANIE"), - .trainerGfxId = 6, + .trainerGfxId = EVENT_OBJ_GFX_TWIN, .flags = 0x40002FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -588,9 +588,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_MANECTRIC, .nickname = _("RIKELEC"), .trainerName = _("CHANCE"), - .trainerGfxId = 15, + .trainerGfxId = EVENT_OBJ_GFX_RICH_BOY, .flags = 0x80001FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -617,9 +617,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_BULBASAUR, .nickname = _("BULBY"), .trainerName = _("AGATHA"), - .trainerGfxId = 20, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_2, .flags = 0xC000FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -646,9 +646,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_BUTTERFREE, .nickname = _("FUTTERBE"), .trainerName = _("BEAU"), - .trainerGfxId = 40, + .trainerGfxId = EVENT_OBJ_GFX_HEX_MANIAC, .flags = 0x82000FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -675,9 +675,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_PIDGEOTTO, .nickname = _("PIDEOT"), .trainerName = _("KAY"), - .trainerGfxId = 34, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_5, .flags = 0x21000FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -704,9 +704,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_DIGLETT, .nickname = _("DIGLE"), .trainerName = _("CALE"), - .trainerGfxId = 55, + .trainerGfxId = EVENT_OBJ_GFX_HIKER, .flags = 0x20800FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -733,9 +733,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_POLIWAG, .nickname = _("WAGIL"), .trainerName = _("CAITLIN"), - .trainerGfxId = 53, + .trainerGfxId = EVENT_OBJ_GFX_TUBER_F, .flags = 0x80400FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -762,9 +762,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_TOTODILE, .nickname = _("TOTDIL"), .trainerName = _("COLBY"), - .trainerGfxId = 5, + .trainerGfxId = EVENT_OBJ_GFX_NINJA_BOY, .flags = 0x10200FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -791,9 +791,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_LEDYBA, .nickname = _("BALEDY"), .trainerName = _("KYLIE"), - .trainerGfxId = 45, + .trainerGfxId = EVENT_OBJ_GFX_BEAUTY, .flags = 0x20100FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -820,9 +820,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_DELIBIRD, .nickname = _("BIRDLY"), .trainerName = _("LIAM"), - .trainerGfxId = 66, + .trainerGfxId = EVENT_OBJ_GFX_MAN_5, .flags = 0x8080FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -849,9 +849,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_LARVITAR, .nickname = _("TARVITAR"), .trainerName = _("MILO"), - .trainerGfxId = 39, + .trainerGfxId = EVENT_OBJ_GFX_MANIAC, .flags = 0x40040FFF, - .whichRank = 0, + .whichRank = CONTEST_RANK_NORMAL, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -878,9 +878,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_ROSELIA, .nickname = _("RELIA"), .trainerName = _("KARINA"), - .trainerGfxId = 32, + .trainerGfxId = EVENT_OBJ_GFX_PICNICKER, .flags = 0x24000FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -907,9 +907,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_DODRIO, .nickname = _("DUODO"), .trainerName = _("BOBBY"), - .trainerGfxId = 51, + .trainerGfxId = EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M, .flags = 0x82000FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -936,9 +936,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_TRAPINCH, .nickname = _("PINCHIN"), .trainerName = _("CLAIRE"), - .trainerGfxId = 8, + .trainerGfxId = EVENT_OBJ_GFX_GIRL_1, .flags = 0x81000FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -965,9 +965,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_CACNEA, .nickname = _("NACAC"), .trainerName = _("WILLIE"), - .trainerGfxId = 11, + .trainerGfxId = EVENT_OBJ_GFX_LITTLE_BOY, .flags = 0x80800FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -994,9 +994,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SANDSLASH, .nickname = _("SHRAND"), .trainerName = _("CASSIDY"), - .trainerGfxId = 18, + .trainerGfxId = EVENT_OBJ_GFX_POKEFAN_F, .flags = 0x10400FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -1023,9 +1023,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_BALTOY, .nickname = _("TOYBAL"), .trainerName = _("MORGAN"), - .trainerGfxId = 44, + .trainerGfxId = EVENT_OBJ_GFX_BLACK_BELT, .flags = 0x8200FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -1052,9 +1052,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_MEDICHAM, .nickname = _("CHAMCHAM"), .trainerName = _("SUMMER"), - .trainerGfxId = 26, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_4, .flags = 0x10100FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -1081,9 +1081,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SPINDA, .nickname = _("SPININ"), .trainerName = _("MILES"), - .trainerGfxId = 31, + .trainerGfxId = EVENT_OBJ_GFX_CAMPER, .flags = 0x80080FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -1110,9 +1110,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SWABLU, .nickname = _("SWABY"), .trainerName = _("AUDREY"), - .trainerGfxId = 47, + .trainerGfxId = EVENT_OBJ_GFX_LASS, .flags = 0xA0040FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -1139,9 +1139,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SPOINK, .nickname = _("POINKER"), .trainerName = _("AVERY"), - .trainerGfxId = 38, + .trainerGfxId = EVENT_OBJ_GFX_SCHOOL_KID_M, .flags = 0x80020FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -1168,9 +1168,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_KECLEON, .nickname = _("KECON"), .trainerName = _("ARIANA"), - .trainerGfxId = 10, + .trainerGfxId = EVENT_OBJ_GFX_GIRL_2, .flags = 0x80010FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -1197,9 +1197,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_GOLDEEN, .nickname = _("GOLDEN"), .trainerName = _("ASHTON"), - .trainerGfxId = 33, + .trainerGfxId = EVENT_OBJ_GFX_MAN_3, .flags = 0x80008FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -1226,9 +1226,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_BARBOACH, .nickname = _("BOBOACH"), .trainerName = _("SANDRA"), - .trainerGfxId = 6, + .trainerGfxId = EVENT_OBJ_GFX_TWIN, .flags = 0x80004FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -1255,9 +1255,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SKARMORY, .nickname = _("CORPY"), .trainerName = _("CARSON"), - .trainerGfxId = 35, + .trainerGfxId = EVENT_OBJ_GFX_YOUNGSTER, .flags = 0x8002FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -1284,9 +1284,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_LOTAD, .nickname = _("TADO"), .trainerName = _("KATRINA"), - .trainerGfxId = 16, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_1, .flags = 0x8001FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -1313,9 +1313,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SLOWBRO, .nickname = _("BROWLO"), .trainerName = _("LUKE"), - .trainerGfxId = 17, + .trainerGfxId = EVENT_OBJ_GFX_FAT_MAN, .flags = 0xC000FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -1342,9 +1342,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_FARFETCHD, .nickname = _("FETCHIN"), .trainerName = _("RAUL"), - .trainerGfxId = 66, + .trainerGfxId = EVENT_OBJ_GFX_MAN_5, .flags = 0x82000FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -1371,9 +1371,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SEEL, .nickname = _("SEELEY"), .trainerName = _("JADA"), - .trainerGfxId = 20, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_2, .flags = 0x21000FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -1400,9 +1400,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_DROWZEE, .nickname = _("DROWZIN"), .trainerName = _("ZEEK"), - .trainerGfxId = 37, + .trainerGfxId = EVENT_OBJ_GFX_PSYCHIC_M, .flags = 0x20800FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -1429,9 +1429,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_HITMONCHAN, .nickname = _("HITEMON"), .trainerName = _("DIEGO"), - .trainerGfxId = 21, + .trainerGfxId = EVENT_OBJ_GFX_EXPERT_M, .flags = 0x80400FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -1458,9 +1458,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_BLISSEY, .nickname = _("BLISS"), .trainerName = _("ALIYAH"), - .trainerGfxId = 85, + .trainerGfxId = EVENT_OBJ_GFX_TEALA, .flags = 0x10200FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -1487,9 +1487,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_ELEKID, .nickname = _("KIDLEK"), .trainerName = _("NATALIA"), - .trainerGfxId = 18, + .trainerGfxId = EVENT_OBJ_GFX_POKEFAN_F, .flags = 0x20100FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -1516,9 +1516,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SNUBBULL, .nickname = _("SNUBBINS"), .trainerName = _("DEVIN"), - .trainerGfxId = 48, + .trainerGfxId = EVENT_OBJ_GFX_GENTLEMAN, .flags = 0x8080FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -1545,9 +1545,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_MISDREAVUS, .nickname = _("DREAVIS"), .trainerName = _("TYLOR"), - .trainerGfxId = 40, + .trainerGfxId = EVENT_OBJ_GFX_HEX_MANIAC, .flags = 0x40040FFF, - .whichRank = 1, + .whichRank = CONTEST_RANK_SUPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -1574,9 +1574,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_LAIRON, .nickname = _("LAIRN"), .trainerName = _("RONNIE"), - .trainerGfxId = 55, + .trainerGfxId = EVENT_OBJ_GFX_HIKER, .flags = 0x84000FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -1603,9 +1603,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SHIFTRY, .nickname = _("SHIFTY"), .trainerName = _("CLAUDIA"), - .trainerGfxId = 8, + .trainerGfxId = EVENT_OBJ_GFX_GIRL_1, .flags = 0x82000FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -1632,9 +1632,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_NINJASK, .nickname = _("NINAS"), .trainerName = _("ELIAS"), - .trainerGfxId = 11, + .trainerGfxId = EVENT_OBJ_GFX_LITTLE_BOY, .flags = 0x81000FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -1661,9 +1661,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SWELLOW, .nickname = _("WELOW"), .trainerName = _("JADE"), - .trainerGfxId = 18, + .trainerGfxId = EVENT_OBJ_GFX_POKEFAN_F, .flags = 0x80800FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -1690,9 +1690,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_MIGHTYENA, .nickname = _("YENA"), .trainerName = _("FRANCIS"), - .trainerGfxId = 44, + .trainerGfxId = EVENT_OBJ_GFX_BLACK_BELT, .flags = 0x80400FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -1719,9 +1719,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_BEAUTIFLY, .nickname = _("TIFLY"), .trainerName = _("ALISHA"), - .trainerGfxId = 26, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_4, .flags = 0x80200FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -1748,9 +1748,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SEAKING, .nickname = _("KINGSEA"), .trainerName = _("SAUL"), - .trainerGfxId = 31, + .trainerGfxId = EVENT_OBJ_GFX_CAMPER, .flags = 0x80100FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -1777,9 +1777,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_CASTFORM, .nickname = _("CASTER"), .trainerName = _("FELICIA"), - .trainerGfxId = 47, + .trainerGfxId = EVENT_OBJ_GFX_LASS, .flags = 0x80080FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -1806,9 +1806,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_MACHOKE, .nickname = _("CHOKEM"), .trainerName = _("EMILIO"), - .trainerGfxId = 38, + .trainerGfxId = EVENT_OBJ_GFX_SCHOOL_KID_M, .flags = 0x80040FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -1835,9 +1835,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_LOMBRE, .nickname = _("LOMBE"), .trainerName = _("KARLA"), - .trainerGfxId = 10, + .trainerGfxId = EVENT_OBJ_GFX_GIRL_2, .flags = 0x80020FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -1864,9 +1864,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SEVIPER, .nickname = _("VIPES"), .trainerName = _("DARRYL"), - .trainerGfxId = 33, + .trainerGfxId = EVENT_OBJ_GFX_MAN_3, .flags = 0x80010FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -1893,9 +1893,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_WAILMER, .nickname = _("MERAIL"), .trainerName = _("SELENA"), - .trainerGfxId = 22, + .trainerGfxId = EVENT_OBJ_GFX_EXPERT_F, .flags = 0x80008FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -1922,9 +1922,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_MAGIKARP, .nickname = _("KARPAG"), .trainerName = _("NOEL"), - .trainerGfxId = 35, + .trainerGfxId = EVENT_OBJ_GFX_YOUNGSTER, .flags = 0x80004FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -1951,9 +1951,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_LUNATONE, .nickname = _("LUNONE"), .trainerName = _("LACEY"), - .trainerGfxId = 16, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_1, .flags = 0x80002FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -1980,9 +1980,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_ABSOL, .nickname = _("ABSO"), .trainerName = _("CORBIN"), - .trainerGfxId = 39, + .trainerGfxId = EVENT_OBJ_GFX_MANIAC, .flags = 0x80001FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -2009,9 +2009,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_EXEGGUTOR, .nickname = _("EGGSOR"), .trainerName = _("GRACIE"), - .trainerGfxId = 32, + .trainerGfxId = EVENT_OBJ_GFX_PICNICKER, .flags = 0xC000FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -2038,9 +2038,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_CUBONE, .nickname = _("CUBIN"), .trainerName = _("COLTIN"), - .trainerGfxId = 65, + .trainerGfxId = EVENT_OBJ_GFX_MAN_4, .flags = 0x82000FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -2067,9 +2067,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_HITMONLEE, .nickname = _("HITMON"), .trainerName = _("ELLIE"), - .trainerGfxId = 22, + .trainerGfxId = EVENT_OBJ_GFX_EXPERT_F, .flags = 0x21000FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -2096,9 +2096,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SQUIRTLE, .nickname = _("SURTLE"), .trainerName = _("MARCUS"), - .trainerGfxId = 49, + .trainerGfxId = EVENT_OBJ_GFX_SAILOR, .flags = 0x20800FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -2125,9 +2125,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_KANGASKHAN, .nickname = _("KHANKAN"), .trainerName = _("KIARA"), - .trainerGfxId = 14, + .trainerGfxId = EVENT_OBJ_GFX_GIRL_3, .flags = 0x80400FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -2154,9 +2154,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_PINECO, .nickname = _("PINOC"), .trainerName = _("BRYCE"), - .trainerGfxId = 36, + .trainerGfxId = EVENT_OBJ_GFX_BUG_CATCHER, .flags = 0x10200FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -2183,9 +2183,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_DUNSPARCE, .nickname = _("DILTOT"), .trainerName = _("JAMIE"), - .trainerGfxId = 34, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_5, .flags = 0x20100FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -2212,9 +2212,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_HOUNDOOM, .nickname = _("DOOMOND"), .trainerName = _("JORGE"), - .trainerGfxId = 48, + .trainerGfxId = EVENT_OBJ_GFX_GENTLEMAN, .flags = 0x8080FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -2241,9 +2241,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_MILTANK, .nickname = _("MILKAN"), .trainerName = _("DEVON"), - .trainerGfxId = 25, + .trainerGfxId = EVENT_OBJ_GFX_POKEFAN_M, .flags = 0x40040FFF, - .whichRank = 2, + .whichRank = CONTEST_RANK_HYPER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -2270,9 +2270,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_GYARADOS, .nickname = _("RADOS"), .trainerName = _("JUSTINA"), - .trainerGfxId = 32, + .trainerGfxId = EVENT_OBJ_GFX_PICNICKER, .flags = 0x84000FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -2299,9 +2299,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_LOUDRED, .nickname = _("LOUDERD"), .trainerName = _("RALPH"), - .trainerGfxId = 21, + .trainerGfxId = EVENT_OBJ_GFX_EXPERT_M, .flags = 0x82000FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -2328,9 +2328,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SKITTY, .nickname = _("SITTY"), .trainerName = _("ROSA"), - .trainerGfxId = 8, + .trainerGfxId = EVENT_OBJ_GFX_GIRL_1, .flags = 0x81000FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -2357,9 +2357,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SLAKING, .nickname = _("SLING"), .trainerName = _("KEATON"), - .trainerGfxId = 11, + .trainerGfxId = EVENT_OBJ_GFX_LITTLE_BOY, .flags = 0x80800FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -2386,9 +2386,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_ALTARIA, .nickname = _("TARIA"), .trainerName = _("MAYRA"), - .trainerGfxId = 18, + .trainerGfxId = EVENT_OBJ_GFX_POKEFAN_F, .flags = 0x80400FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -2415,9 +2415,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_KIRLIA, .nickname = _("LIRKI"), .trainerName = _("LAMAR"), - .trainerGfxId = 15, + .trainerGfxId = EVENT_OBJ_GFX_RICH_BOY, .flags = 0x80200FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -2444,9 +2444,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_BELLOSSOM, .nickname = _("BLOSSOM"), .trainerName = _("AUBREY"), - .trainerGfxId = 26, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_4, .flags = 0x80100FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -2473,9 +2473,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SABLEYE, .nickname = _("EYESAB"), .trainerName = _("NIGEL"), - .trainerGfxId = 31, + .trainerGfxId = EVENT_OBJ_GFX_CAMPER, .flags = 0x80080FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -2502,9 +2502,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_NATU, .nickname = _("UTAN"), .trainerName = _("CAMILLE"), - .trainerGfxId = 47, + .trainerGfxId = EVENT_OBJ_GFX_LASS, .flags = 0x80040FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -2531,9 +2531,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SHARPEDO, .nickname = _("PEDOS"), .trainerName = _("DEON"), - .trainerGfxId = 38, + .trainerGfxId = EVENT_OBJ_GFX_SCHOOL_KID_M, .flags = 0x80020FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -2560,9 +2560,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_LUVDISC, .nickname = _("LUVIS"), .trainerName = _("JANELLE"), - .trainerGfxId = 10, + .trainerGfxId = EVENT_OBJ_GFX_GIRL_2, .flags = 0x80010FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -2589,9 +2589,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_HERACROSS, .nickname = _("HEROSS"), .trainerName = _("HEATH"), - .trainerGfxId = 33, + .trainerGfxId = EVENT_OBJ_GFX_MAN_3, .flags = 0x80008FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -2618,9 +2618,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_ELECTRODE, .nickname = _("RODLECT"), .trainerName = _("SASHA"), - .trainerGfxId = 6, + .trainerGfxId = EVENT_OBJ_GFX_TWIN, .flags = 0x80004FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -2647,9 +2647,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_PICHU, .nickname = _("CHUPY"), .trainerName = _("FRANKIE"), - .trainerGfxId = 35, + .trainerGfxId = EVENT_OBJ_GFX_YOUNGSTER, .flags = 0x80002FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -2676,9 +2676,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_WOBBUFFET, .nickname = _("WOBET"), .trainerName = _("HELEN"), - .trainerGfxId = 16, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_1, .flags = 0x80001FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -2705,9 +2705,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_GENGAR, .nickname = _("GAREN"), .trainerName = _("CAMILE"), - .trainerGfxId = 40, + .trainerGfxId = EVENT_OBJ_GFX_HEX_MANIAC, .flags = 0xC000FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -2734,9 +2734,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_PORYGON, .nickname = _("GONPOR"), .trainerName = _("MARTIN"), - .trainerGfxId = 46, + .trainerGfxId = EVENT_OBJ_GFX_SCIENTIST_1, .flags = 0x82000FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = TRUE, @@ -2763,9 +2763,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_DRAGONITE, .nickname = _("DRITE"), .trainerName = _("SERGIO"), - .trainerGfxId = 7, + .trainerGfxId = EVENT_OBJ_GFX_BOY_1, .flags = 0x21000FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -2792,9 +2792,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_MEOWTH, .nickname = _("MEOWY"), .trainerName = _("KAILEY"), - .trainerGfxId = 6, + .trainerGfxId = EVENT_OBJ_GFX_TWIN, .flags = 0x20800FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -2821,9 +2821,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_JYNX, .nickname = _("NYX"), .trainerName = _("PERLA"), - .trainerGfxId = 45, + .trainerGfxId = EVENT_OBJ_GFX_BEAUTY, .flags = 0x80400FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -2850,9 +2850,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_TOGEPI, .nickname = _("GEPITO"), .trainerName = _("CLARA"), - .trainerGfxId = 20, + .trainerGfxId = EVENT_OBJ_GFX_WOMAN_2, .flags = 0x10200FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -2879,9 +2879,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_ESPEON, .nickname = _("SPEON"), .trainerName = _("JAKOB"), - .trainerGfxId = 37, + .trainerGfxId = EVENT_OBJ_GFX_PSYCHIC_M, .flags = 0x20100FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = TRUE, .aiPool_Cute = FALSE, @@ -2908,9 +2908,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_SLOWKING, .nickname = _("SLOWGO"), .trainerName = _("TREY"), - .trainerGfxId = 49, + .trainerGfxId = EVENT_OBJ_GFX_SAILOR, .flags = 0x8080FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = FALSE, .aiPool_Beauty = FALSE, .aiPool_Cute = TRUE, @@ -2937,9 +2937,9 @@ const struct ContestPokemon gContestOpponents[] = .species = SPECIES_URSARING, .nickname = _("URSING"), .trainerName = _("LANE"), - .trainerGfxId = 44, + .trainerGfxId = EVENT_OBJ_GFX_BLACK_BELT, .flags = 0x40040FFF, - .whichRank = 3, + .whichRank = CONTEST_RANK_MASTER, .aiPool_Cool = TRUE, .aiPool_Beauty = FALSE, .aiPool_Cute = FALSE, @@ -2967,7 +2967,7 @@ const struct ContestPokemon gContestOpponents[] = const u8 gPostgameContestOpponentFilter[] = { - [CONTEST_OPPONENT_JIMMY] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_JIMMY] = CONTEST_FILTER_NONE, [CONTEST_OPPONENT_EDITH] = CONTEST_FILTER_NONE, [CONTEST_OPPONENT_EVAN] = CONTEST_FILTER_NONE, [CONTEST_OPPONENT_KELSEY] = CONTEST_FILTER_NONE, @@ -2999,7 +2999,7 @@ const u8 gPostgameContestOpponentFilter[] = [CONTEST_OPPONENT_MORGAN] = CONTEST_FILTER_NONE, [CONTEST_OPPONENT_SUMMER] = CONTEST_FILTER_NONE, [CONTEST_OPPONENT_MILES] = CONTEST_FILTER_NONE, - [CONTEST_OPPONENT_AUDREY] = CONTEST_FILTER_NONE, + [CONTEST_OPPONENT_AUDREY] = CONTEST_FILTER_NONE, [CONTEST_OPPONENT_AVERY] = CONTEST_FILTER_NONE, [CONTEST_OPPONENT_ARIANA] = CONTEST_FILTER_NONE, [CONTEST_OPPONENT_ASHTON] = CONTEST_FILTER_NONE, @@ -3031,7 +3031,7 @@ const u8 gPostgameContestOpponentFilter[] = [CONTEST_OPPONENT_LACEY] = CONTEST_FILTER_NONE, [CONTEST_OPPONENT_CORBIN] = CONTEST_FILTER_NONE, [CONTEST_OPPONENT_GRACIE] = CONTEST_FILTER_ONLY_POSTGAME, - [CONTEST_OPPONENT_COLTIN] = CONTEST_FILTER_ONLY_POSTGAME, + [CONTEST_OPPONENT_COLTIN] = CONTEST_FILTER_ONLY_POSTGAME, [CONTEST_OPPONENT_ELLIE] = CONTEST_FILTER_ONLY_POSTGAME, [CONTEST_OPPONENT_MARCUS] = CONTEST_FILTER_ONLY_POSTGAME, [CONTEST_OPPONENT_KIARA] = CONTEST_FILTER_ONLY_POSTGAME, @@ -3063,4 +3063,4 @@ const u8 gPostgameContestOpponentFilter[] = [CONTEST_OPPONENT_JAKOB] = CONTEST_FILTER_ONLY_POSTGAME, [CONTEST_OPPONENT_TREY] = CONTEST_FILTER_ONLY_POSTGAME, [CONTEST_OPPONENT_LANE] = CONTEST_FILTER_ONLY_POSTGAME -}; \ No newline at end of file +}; diff --git a/src/data/contest_text_tables.h b/src/data/contest_text_tables.h index fa32f33b5d..8375520d13 100644 --- a/src/data/contest_text_tables.h +++ b/src/data/contest_text_tables.h @@ -196,53 +196,53 @@ extern const u8 gText_0827E8CA[]; const u8 *const gContestEffectDescriptionPointers[] = { gContestEffect00hDescription, - gContestEffect01hDescription, + gContestEffect01hDescription, gContestEffect02hDescription, - gContestEffect03hDescription, - gContestEffect04hDescription, - gContestEffect05hDescription, - gContestEffect06hDescription, - gContestEffect07hDescription, - gContestEffect08hDescription, - gContestEffect09hDescription, - gContestEffect0AhDescription, - gContestEffect0BhDescription, - gContestEffect0ChDescription, - gContestEffect0DhDescription, - gContestEffect0EhDescription, - gContestEffect0FhDescription, - gContestEffect10hDescription, - gContestEffect11hDescription, - gContestEffect12hDescription, - gContestEffect13hDescription, - gContestEffect14hDescription, - gContestEffect15hDescription, - gContestEffect16hDescription, - gContestEffect17hDescription, - gContestEffect18hDescription, - gContestEffect19hDescription, - gContestEffect1AhDescription, - gContestEffect1BhDescription, - gContestEffect1ChDescription, - gContestEffect1DhDescription, - gContestEffect1EhDescription, - gContestEffect1FhDescription, - gContestEffect20hDescription, - gContestEffect21hDescription, - gContestEffect22hDescription, - gContestEffect23hDescription, - gContestEffect24hDescription, - gContestEffect25hDescription, - gContestEffect26hDescription, - gContestEffect27hDescription, - gContestEffect28hDescription, - gContestEffect29hDescription, - gContestEffect2AhDescription, - gContestEffect2BhDescription, - gContestEffect2ChDescription, - gContestEffect2DhDescription, - gContestEffect2EhDescription, - gContestEffect2FhDescription + gContestEffect03hDescription, + gContestEffect04hDescription, + gContestEffect05hDescription, + gContestEffect06hDescription, + gContestEffect07hDescription, + gContestEffect08hDescription, + gContestEffect09hDescription, + gContestEffect0AhDescription, + gContestEffect0BhDescription, + gContestEffect0ChDescription, + gContestEffect0DhDescription, + gContestEffect0EhDescription, + gContestEffect0FhDescription, + gContestEffect10hDescription, + gContestEffect11hDescription, + gContestEffect12hDescription, + gContestEffect13hDescription, + gContestEffect14hDescription, + gContestEffect15hDescription, + gContestEffect16hDescription, + gContestEffect17hDescription, + gContestEffect18hDescription, + gContestEffect19hDescription, + gContestEffect1AhDescription, + gContestEffect1BhDescription, + gContestEffect1ChDescription, + gContestEffect1DhDescription, + gContestEffect1EhDescription, + gContestEffect1FhDescription, + gContestEffect20hDescription, + gContestEffect21hDescription, + gContestEffect22hDescription, + gContestEffect23hDescription, + gContestEffect24hDescription, + gContestEffect25hDescription, + gContestEffect26hDescription, + gContestEffect27hDescription, + gContestEffect28hDescription, + gContestEffect29hDescription, + gContestEffect2AhDescription, + gContestEffect2BhDescription, + gContestEffect2ChDescription, + gContestEffect2DhDescription, + gContestEffect2EhDescription, + gContestEffect2FhDescription }; // Unreferenced array of pointers to move names. @@ -278,18 +278,18 @@ const u8 *const gContestMoveTypeTextPointers[] = const u8 *const gUnknown_08587D5C[] = { gText_0827D5C1, - gText_0827D5DC, - gText_0827D600, - gText_0827D612, - gText_0827D612, - gText_0827D62D, - gText_0827D654, - gText_0827D67E, - gText_0827D69C, - gText_0827D6BA, - gText_0827D6E5, - gText_0827D706, - gText_0827D71D + gText_0827D5DC, + gText_0827D600, + gText_0827D612, + gText_0827D612, + gText_0827D62D, + gText_0827D654, + gText_0827D67E, + gText_0827D69C, + gText_0827D6BA, + gText_0827D6E5, + gText_0827D706, + gText_0827D71D }; const u8 *const gUnknown_08587D90[] = @@ -411,4 +411,4 @@ const u8 *const gUnknown_08587F1C[] = gText_0827E8B4, gText_0827E8BF, gText_0827E8CA -}; \ No newline at end of file +}; From 23ac2cc94e2914a427e97467103c0160af6f1be0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 31 Mar 2019 20:15:44 -0400 Subject: [PATCH 10/11] Prep for merge --- include/sprite.h | 20 -------------------- src/contest.c | 6 ++++-- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/include/sprite.h b/include/sprite.h index 10c4145b0a..32bdd9c55e 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -151,26 +151,6 @@ enum SUBSPRITES_IGNORE_PRIORITY, // on but priority is ignored }; -#define OAM_SIZE_0 (0) -#define OAM_SIZE_1 (1 << 0) -#define OAM_SIZE_2 (1 << 1) -#define OAM_SIZE_3 (1 << 2) - -#define SPRITE_SIZE_8x8 .shape = ST_OAM_SQUARE, .size = OAM_SIZE_0 -#define SPRITE_SIZE_16x16 .shape = ST_OAM_SQUARE, .size = OAM_SIZE_1 -#define SPRITE_SIZE_32x32 .shape = ST_OAM_SQUARE, .size = OAM_SIZE_2 -#define SPRITE_SIZE_64x64 .shape = ST_OAM_SQUARE, .size = OAM_SIZE_3 - -#define SPRITE_SIZE_16x8 .shape = ST_OAM_H_RECTANGLE, .size = OAM_SIZE_0 -#define SPRITE_SIZE_32x8 .shape = ST_OAM_H_RECTANGLE, .size = OAM_SIZE_1 -#define SPRITE_SIZE_32x16 .shape = ST_OAM_H_RECTANGLE, .size = OAM_SIZE_2 -#define SPRITE_SIZE_64x32 .shape = ST_OAM_H_RECTANGLE, .size = OAM_SIZE_3 - -#define SPRITE_SIZE_8x16 .shape = ST_OAM_V_RECTANGLE, .size = OAM_SIZE_0 -#define SPRITE_SIZE_8x32 .shape = ST_OAM_V_RECTANGLE, .size = OAM_SIZE_1 -#define SPRITE_SIZE_16x32 .shape = ST_OAM_V_RECTANGLE, .size = OAM_SIZE_2 -#define SPRITE_SIZE_32x64 .shape = ST_OAM_V_RECTANGLE, .size = OAM_SIZE_3 - struct Subsprite { s8 x; // was u16 in R/S diff --git a/src/contest.c b/src/contest.c index da3075e65f..53d7e547d5 100644 --- a/src/contest.c +++ b/src/contest.c @@ -412,14 +412,16 @@ const struct Subsprite gSubspriteTable_8587B78[] = { .x = -28, .y = -4, - SPRITE_SIZE_32x8, + .shape = ST_OAM_H_RECTANGLE, + .size = 1, .tileOffset = 0, .priority = 0 }, { .x = 4, .y = -4, - SPRITE_SIZE_32x8, + .shape = ST_OAM_H_RECTANGLE, + .size = 1, .tileOffset = 4, .priority = 0 } From b7057e8d923e78c6d29ab122b3e136ca93fdd7b4 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 31 Mar 2019 20:33:25 -0400 Subject: [PATCH 11/11] Update OAMs to use new constants --- src/contest.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/contest.c b/src/contest.c index 53d7e547d5..0591668ff2 100644 --- a/src/contest.c +++ b/src/contest.c @@ -272,10 +272,10 @@ static const struct OamData gOamData_8587A7C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -357,10 +357,10 @@ static const struct OamData gOamData_8587B10 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x8), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(32x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -449,10 +449,10 @@ const struct OamData gOamData_8587B90 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -490,10 +490,10 @@ const struct OamData gOamData_8587BC0 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -518,10 +518,10 @@ const struct OamData gOamData_8587BE0 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 3, .paletteNum = 2, @@ -772,10 +772,10 @@ const struct OamData gOamData_8589944 = .objMode = 1, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0,