From eb48cc2f7eefc1e56c2dcec21c38381b4534b897 Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Sat, 23 Feb 2019 09:08:07 -0800 Subject: Decompile through sub_8167930. --- src/use_pokeblock.c | 2047 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 2045 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 762019ecd..baf86eb17 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -9,6 +9,15 @@ #include "bg.h" #include "window.h" #include "text_window.h" +#include "constants/rgb.h" +#include "sound.h" +#include "constants/songs.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "menu.h" +#include "gpu_regs.h" +#include "graphics.h" struct UsePokeblockSubStruct { @@ -28,12 +37,29 @@ struct UsePokeblockSubStruct u8 field_5c[5]; u8 field_61[5]; s16 field_66[5]; + u8 field_76; + u8 field_77; + u8 field_78; + u8 field_79; + u8 (*funcPtr8044) (void); + u8 field_8048; }; struct UsePokeblockStruct { - u8 field_0[0x7C58]; - u8 field_7C58[0x378]; + u8 field_0[0x7B0E]; + u16 field_7B0E; + u8 field_7B10[0x148]; + u8 field_7C58[0x35B]; + u8 field_7FB3; + u8 field_7FB4; + u8 field_7FB5; + u8 field_7FB6; + u8 field_7FB7; + u8 field_7FB8; + u8 field_7FB9; + u16 field_7FBA; + u8 field_7FBC[0x14]; struct UsePokeblockSubStruct info; }; @@ -54,9 +80,59 @@ bool8 sub_8168328(void); bool8 sub_8167930(void); void sub_8167608(u8 arg0); void sub_8167BA0(u16 arg0, u8 copyToVramMode); +void sub_8166634(void); +void sub_8167CA0(bool8); +extern void sub_81D3520(u8*); +void sub_8166BEC(void); +void sub_8166D44(void); +s8 sub_8166DE4(void); +bool8 sub_8167268(void); +void sub_8166F50(void); +void sub_816681C(void); +void sub_8166F94(void); +u8 sub_81672A4(u8 a0); +void sub_8166A34(void); +void sub_8167104(void); +void sub_8167338(void); +extern void sub_81D2074(void); +void sub_81681F4(u8); +void sub_8166E24(void); +bool8 sub_8166EDC(void); +void sub_81D354C(u8*); +void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2); +void Pokeblock_MenuWindowTextPrint(const u8 *message); +void sub_8167184(struct Pokeblock *, struct Pokemon *); +extern u32 sub_81D2C68(s32, s32, s32, u8 *); +void sub_81673DC(struct Sprite *sprite); +void sub_81674BC(void); +void sub_816753C(s16, u8); +extern void sub_81D2ED4(u8, u8, u16, u8, u8, u8, u8); +extern void sub_81D2F78(u8, u8, s16, u16, u8, u8, u8, u8); +extern void sub_81D3094(u8, u8, s16, u16, u8, u8, u8); +extern void sub_81D31D0(struct SpritePalette *, struct SpritePalette *, struct SpritePalette *); +extern void sub_81D321C(struct SpriteSheet *, struct SpriteTemplate *, struct SpritePalette*); +void sub_8168180(void); +void sub_81681B4(void); +extern void sub_81D32B0(struct SpriteSheet *, struct SpritePalette*); +extern void sub_81D21DC(u8); extern const struct BgTemplate gUnknown_085DFCCC[4]; extern const struct WindowTemplate gUnknown_085DFCDC[]; +extern u16 gSpecialVar_ItemId; +extern const struct WindowTemplate sUsePokeblockYesNoWinTemplate[]; +extern const u8* sContestStatNames[]; +extern const u32 gUnknown_085DFCB0[]; +extern const u8 gUnknown_085DFCC4[]; +extern const struct SpriteSheet gSpriteSheet_ConditionUpDown; +extern const struct SpritePalette gSpritePalette_ConditionUpDown; +extern const struct SpriteTemplate gSpriteTemplate_085DFD5C; +extern const s16 gUnknown_085DFD28[][2]; +extern const u32 gUnknown_085DFB60[]; +extern const u32 gUnknown_085DFA80[]; +extern const u32 gUnknown_085DFA60[]; +extern const u32 gUnknown_085DFC0C[]; +extern const u16 gUnknown_086231E8[]; +extern const u16 gUnknown_08623208[]; // ram variables EWRAM_DATA struct UsePokeblockSubStruct *gUnknown_0203BC90 = NULL; @@ -228,3 +304,1970 @@ void sub_8166380(void) break; } } + +#ifdef NONMATCHING +void sub_8166564(void) +{ + switch (gUnknown_0203BC90->field_50) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + SetVBlankCallback(sub_8166340); + ShowBg(0); + ShowBg(1); + ShowBg(3); + ShowBg(2); + gUnknown_0203BC90->field_50++; + break; + case 1: + if (!gPaletteFade.active) { + sub_81D3464((&gUnknown_0203BCAC + 0x7b1c)); + if (*(&gUnknown_0203BCAC + 0x8041) != *(&gUnknown_0203BCAC + 0x8040) - 1){ + sub_81D3480(*(&gUnknown_0203BCAC - 0x7b1c), *(&gUnknown_0203BCAC + 0x7b1c - 0xC), *(&gUnknown_0203BCAC + 0x8041 - 0x91) + *(&gUnknown_0203BCAC + 0x7fb3)); + } + else { + sub_816636C(sub_8166634); + } + } + break; + } +} + +#else +NAKED +void sub_8166564(void) +{ + asm(".syntax unified\n\ + push {r4,lr}\n\ + sub sp, 0x4\n\ + ldr r4, =gUnknown_0203BC90\n\ + ldr r0, [r4]\n\ + adds r0, 0x50\n\ + ldrb r1, [r0]\n\ + cmp r1, 0\n\ + beq _08166580\n\ + cmp r1, 0x1\n\ + beq _081665C0\n\ + b _08166610\n\ + .pool\n\ +_08166580:\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + str r1, [sp]\n\ + movs r1, 0\n\ + movs r2, 0x10\n\ + movs r3, 0\n\ + bl BeginNormalPaletteFade\n\ + ldr r0, =sub_8166340\n\ + bl SetVBlankCallback\n\ + movs r0, 0\n\ + bl ShowBg\n\ + movs r0, 0x1\n\ + bl ShowBg\n\ + movs r0, 0x3\n\ + bl ShowBg\n\ + movs r0, 0x2\n\ + bl ShowBg\n\ + ldr r1, [r4]\n\ + adds r1, 0x50\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + b _08166610\n\ + .pool\n\ +_081665C0:\n\ + ldr r0, =gPaletteFade\n\ + ldrb r1, [r0, 0x7]\n\ + movs r0, 0x80\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08166610\n\ + ldr r4, =gUnknown_0203BCAC\n\ + ldr r0, [r4]\n\ + ldr r1, =0x00007b1c\n\ + adds r0, r1\n\ + bl sub_81D3464\n\ + ldr r4, [r4]\n\ + ldr r2, =0x00008041\n\ + adds r0, r4, r2\n\ + ldrb r1, [r0]\n\ + ldr r3, =0x00008040\n\ + adds r0, r4, r3\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + cmp r1, r0\n\ + beq _0816660A\n\ + ldr r1, =0x00007fb3\n\ + adds r0, r4, r1\n\ + movs r1, 0\n\ + ldrsb r1, [r0, r1]\n\ + subs r2, 0x91\n\ + adds r0, r4, r2\n\ + adds r0, r1\n\ + ldrb r2, [r0]\n\ + ldr r3, =0x00007b1c\n\ + adds r0, r4, r3\n\ + subs r3, 0xC\n\ + adds r1, r4, r3\n\ + ldrb r1, [r1]\n\ + bl sub_81D3480\n\ +_0816660A:\n\ + ldr r0, =sub_8166634\n\ + bl sub_816636C\n\ +_08166610:\n\ + add sp, 0x4\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +void sub_8166634(void) +{ + u8 var; + switch (gUnknown_0203BC90->field_50) + { + case 0: + if (gMain.heldKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sub_8167CA0(TRUE); + sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]); + gUnknown_0203BC90->field_50 = 1; + } + else if (gMain.heldKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sub_8167CA0(FALSE); + sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]); + gUnknown_0203BC90->field_50 = 1; + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_0203BC90->field_50 = 3; + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gUnknown_0203BCAC->info.field_77 == gUnknown_0203BCAC->info.field_76 - 1) + { + gUnknown_0203BC90->field_50 = 3; + } + else + { + gUnknown_0203BC90->field_50 = 5; + } + } + + break; + case 1: + var = gUnknown_0203BCAC->info.funcPtr8044(); + if(!var) + gUnknown_0203BC90->field_50 = var; + break; + case 2: + break; + case 3: + sub_816636C(sub_8166BEC); + break; + case 4: + break; + case 5: + sub_8166D44(); + gUnknown_0203BC90->field_50++; + break; + case 6: + switch (sub_8166DE4()) + { + case 1: + case -1: + gUnknown_0203BC90->field_50 = 0; + break; + case 0: + if (sub_8167268()) + { + sub_8166F50(); + gUnknown_0203BC90->field_50 = 7; + } + else + { + sub_816636C(sub_816681C); + } + break; + } + break; + case 7: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + sub_8166F94(); + gUnknown_0203BC90->field_50 = 0; + } + break; + } +} + +void sub_816681C(void) +{ + switch (gUnknown_0203BC90->field_50) + { + case 0: + gPokeblockMonId = sub_81672A4(gUnknown_0203BCAC->info.field_77); + gUnknown_0203BC94 = gUnknown_0203BC90->callback; + gUnknown_0203BC98 = gUnknown_0203BC90->pokeblock; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + gUnknown_0203BC90->field_50++; + break; + case 1: + if (!gPaletteFade.active) + { + SetVBlankCallback(NULL); + Free(gUnknown_0203BCA0); + gUnknown_0203BCA0 = NULL; + Free(gUnknown_0203BCA4); + gUnknown_0203BCA4 = NULL; + Free(gUnknown_0203BCA8); + gUnknown_0203BCA8 = NULL; + Free(gUnknown_0203BCAC); + gUnknown_0203BCAC = NULL; + FreeAllWindowBuffers(); + gMain.savedCallback = CB2_ReturnAndChooseMonToGivePokeblock; + CB2_PreparePokeblockFeedScene(); + } + break; + } +} + +void sub_81668F8(void) +{ + switch (gUnknown_0203BC90->field_50) + { + u16 var; + case 0: + if (gUnknown_0203BCAC->info.field_77 != gPokeblockMonId) + { + sub_8167CA0(gUnknown_0203BC90->field_56); + gUnknown_0203BC90->field_50++; + } + else + { + gUnknown_0203BC90->field_50 = 3; + } + break; + case 1: + var = gUnknown_0203BCAC->info.funcPtr8044(); + if (!var) + { + gUnknown_0203BC90->field_50 = var; + } + break; + case 2: + break; + case 3: + BlendPalettes(0xFFFFFFFF, 16, RGB(0, 0, 0)); + gUnknown_0203BC90->field_50++; + break; + case 4: + ShowBg(0); + ShowBg(1); + ShowBg(3); + ShowBg(2); + gUnknown_0203BC90->field_50++; + break; + case 5: + SetVBlankCallback(sub_8166340); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + gUnknown_0203BC90->field_50++; + break; + case 6: + if (!gPaletteFade.active) + { + sub_81D3464(&gUnknown_0203BCAC->field_0[0x7B1C]); + sub_816636C(sub_8166A34); + SetMainCallback2(sub_816631C); + } + break; + } +} + +#ifdef NONMATCHING +void sub_8166A34(void) +{ + switch (gUnknown_0203BC90->field_50) + { + u8 var; + case 0: + gUnknown_0203BC90->field_5c[0] = (u8) &gPlayerParty; + gUnknown_0203BCAC->info.field_77 = (u32) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_77]; + gUnknown_0203BC90->field_5c[0] = &gPlayerParty + sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]); + /*gUnknown_0203BCAC->pokemon = &gPlayerParty[gUnknown_083DFEC4->unk893c[gUnknown_0203BCAC->field_0[0x7B1C]].partyIdx]; + move_anim_execute();*/ + gUnknown_0203BC90->field_50++; + break; + case 1: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + gUnknown_0203BC90->field_50++; + break; + case 2: + sub_8167104(); + sub_81D2754(gUnknown_0203BC90->field_5c, &gUnknown_0203BCAC->field_7C58[0x50]); + sub_81D1F84(&gUnknown_0203BCAC->field_7C58[0], &gUnknown_0203BCAC->field_7C58[gUnknown_0203BCAC->field_7C58[0x35B] + 0x14], 0); + sub_8167338(); + gUnknown_0203BC90->field_50++; + break; + case 3: + var = gUnknown_0203BCAC->field_7C58[0]; + sub_81D2074(); + if (!var) + { + sub_81681F4(sub_81672A4(gUnknown_0203BCAC->info.field_77)); + /*sub_80F3D00(); + gUnknown_0203BCAC->unk52 = 0;*/ + if(gUnknown_0203BCAC->info.field_77 == gUnknown_0203BCAC->info.field_76 - 1) + { + gUnknown_0203BC90->field_52 = var; + } + + sub_81D3480(&gUnknown_0203BCAC->field_7C58[0x35B], gUnknown_0203BCAC->field_7C58[0x35B + gUnknown_0203BCAC->field_7C58[0x358]]); + + } + break; + case 4: + if ((++gUnknown_0203BC90->field_52) > 16) + { + sub_8166E24(); + gUnknown_0203BC90->field_50++; + } + break; + case 5: + if (gMain.newKeys & (A_BUTTON | B_BUTTON) && !sub_8166EDC()) + { + TryClearPokeblock((u8)gSpecialVar_ItemId); + sub_816636C(sub_8166BEC); + } + break; + } +} +#else +NAKED +void sub_8166A34(void) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + ldr r1, =gUnknown_0203BC90\n\ + ldr r0, [r1]\n\ + adds r0, 0x50\n\ + ldrb r0, [r0]\n\ + adds r5, r1, 0\n\ + cmp r0, 0x5\n\ + bls _08166A46\n\ + b _08166BDA\n\ +_08166A46:\n\ + lsls r0, 2\n\ + ldr r1, =_08166A58\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .pool\n\ + .align 2, 0\n\ +_08166A58:\n\ + .4byte _08166A70\n\ + .4byte _08166AAC\n\ + .4byte _08166AC0\n\ + .4byte _08166B14\n\ + .4byte _08166B94\n\ + .4byte _08166BB6\n\ +_08166A70:\n\ + ldr r4, [r5]\n\ + ldr r3, =gPlayerParty\n\ + str r3, [r4, 0xC]\n\ + ldr r0, =gUnknown_0203BCAC\n\ + ldr r0, [r0]\n\ + ldr r2, =0x00008041\n\ + adds r1, r0, r2\n\ + ldrb r1, [r1]\n\ + lsls r1, 2\n\ + adds r1, r0, r1\n\ + subs r2, 0x88\n\ + adds r1, r2\n\ + ldrb r2, [r1]\n\ + movs r1, 0x64\n\ + muls r1, r2\n\ + adds r1, r3\n\ + str r1, [r4, 0xC]\n\ + ldr r3, =0x00007b1c\n\ + adds r0, r3\n\ + bl sub_81D3520\n\ + b _08166BAA\n\ + .pool\n\ +_08166AAC:\n\ + ldr r0, =gMain\n\ + ldrh r1, [r0, 0x2E]\n\ + movs r0, 0x3\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08166ABA\n\ + b _08166BDA\n\ +_08166ABA:\n\ + b _08166BAA\n\ + .pool\n\ +_08166AC0:\n\ + bl sub_8167104\n\ + ldr r6, =gUnknown_0203BC90\n\ + ldr r0, [r6]\n\ + adds r0, 0x5C\n\ + ldr r4, =gUnknown_0203BCAC\n\ + ldr r1, [r4]\n\ + ldr r5, =0x00007ca8\n\ + adds r1, r5\n\ + bl sub_81D2754\n\ + ldr r2, [r4]\n\ + ldr r4, =0x00007c58\n\ + adds r0, r2, r4\n\ + ldr r3, =0x00007fb3\n\ + adds r1, r2, r3\n\ + movs r3, 0\n\ + ldrsb r3, [r1, r3]\n\ + lsls r1, r3, 2\n\ + adds r1, r3\n\ + lsls r1, 2\n\ + adds r4, 0x14\n\ + adds r1, r4\n\ + adds r1, r2, r1\n\ + adds r2, r5\n\ + bl sub_81D1F84\n\ + bl sub_8167338\n\ + ldr r1, [r6]\n\ + b _08166BAC\n\ + .pool\n\ +_08166B14:\n\ + ldr r5, =gUnknown_0203BCAC\n\ + ldr r0, [r5]\n\ + ldr r1, =0x00007c58\n\ + adds r0, r1\n\ + bl sub_81D2074\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + cmp r6, 0\n\ + bne _08166BDA\n\ + ldr r0, [r5]\n\ + ldr r4, =0x00008041\n\ + adds r0, r4\n\ + ldrb r0, [r0]\n\ + bl sub_81672A4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + bl sub_81681F4\n\ + ldr r3, [r5]\n\ + adds r4, r3, r4\n\ + ldrb r1, [r4]\n\ + ldr r2, =0x00008040\n\ + adds r0, r3, r2\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + cmp r1, r0\n\ + beq _08166B6C\n\ + ldr r4, =0x00007fb3\n\ + adds r0, r3, r4\n\ + movs r1, 0\n\ + ldrsb r1, [r0, r1]\n\ + subs r2, 0x90\n\ + adds r0, r3, r2\n\ + adds r0, r1\n\ + ldrb r2, [r0]\n\ + ldr r4, =0x00007b1c\n\ + adds r0, r3, r4\n\ + subs r4, 0xC\n\ + adds r1, r3, r4\n\ + ldrb r1, [r1]\n\ + bl sub_81D3480\n\ +_08166B6C:\n\ + ldr r1, =gUnknown_0203BC90\n\ + ldr r0, [r1]\n\ + adds r0, 0x52\n\ + strb r6, [r0]\n\ + ldr r1, [r1]\n\ + b _08166BAC\n\ + .pool\n\ +_08166B94:\n\ + ldr r1, [r5]\n\ + adds r1, 0x52\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x10\n\ + bls _08166BDA\n\ + bl sub_8166E24\n\ +_08166BAA:\n\ + ldr r1, [r5]\n\ +_08166BAC:\n\ + adds r1, 0x50\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + b _08166BDA\n\ +_08166BB6:\n\ + ldr r0, =gMain\n\ + ldrh r1, [r0, 0x2E]\n\ + movs r0, 0x3\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08166BDA\n\ + bl sub_8166EDC\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _08166BDA\n\ + ldr r0, =gSpecialVar_ItemId\n\ + ldrb r0, [r0]\n\ + bl TryClearPokeblock\n\ + ldr r0, =sub_8166BEC\n\ + bl sub_816636C\n\ +_08166BDA:\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +#ifdef NONMATCHING +void sub_8166BEC(void) +{ + u8 i; + u8 var; + switch (gUnknown_0203BC90->field_50) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + gUnknown_0203BC90->field_50++; + break; + case 1: + if (!gPaletteFade.active) + { + gUnknown_0203BC90->field_50 = 2; + } + break; + case 2: + gScanlineEffect.state = 3; + ScanlineEffect_InitHBlankDmaTransfer(); + gUnknown_0203BC90->field_50++; + break; + case 3: + SetMainCallback2(gUnknown_0203BC90->callback); + sub_81D354C(&gUnknown_0203BCAC->field_0[0x7B1C]); + for(i = 0; i < 7; i++) + { + DestroySprite(&gSprites[gUnknown_0203BCAC->field_0[0x7B06 + i]]); + } + + FreeSpriteTilesByTag(0); + FreeSpriteTilesByTag(1); + FreeSpriteTilesByTag(0); + FreeSpriteTilesByTag(1); + + for(i = 0; i < 2; i++) + { + DestroySprite(&gUnknown_0203BCAC->sprite7B44[i*4]); + } + + if(gUnknown_0203BCAC->field_0[0x7B10] != 255) + { + DestroySprite(&gSprites[gUnknown_0203BCAC->field_0[0x7B10]]); + return; + + } + + SetVBlankCallback(NULL); + Free(gUnknown_0203BCA0); + gUnknown_0203BCA0 = NULL; + Free(gUnknown_0203BCA4); + gUnknown_0203BCA0 = NULL; + Free(gUnknown_0203BCA8); + gUnknown_0203BCA8 = NULL; + Free(gUnknown_0203BCAC); + gUnknown_0203BCAC = NULL; + FreeAllWindowBuffers(); + break; + } +} +#else +NAKED +void sub_8166BEC(void) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + sub sp, 0x4\n\ + ldr r4, =gUnknown_0203BC90\n\ + ldr r0, [r4]\n\ + adds r2, r0, 0\n\ + adds r2, 0x50\n\ + ldrb r1, [r2]\n\ + cmp r1, 0x1\n\ + beq _08166C28\n\ + cmp r1, 0x1\n\ + bgt _08166C0C\n\ + cmp r1, 0\n\ + beq _08166C16\n\ + b _08166D18\n\ + .pool\n\ +_08166C0C:\n\ + cmp r1, 0x2\n\ + beq _08166C40\n\ + cmp r1, 0x3\n\ + beq _08166C5C\n\ + b _08166D18\n\ +_08166C16:\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + str r1, [sp]\n\ + movs r1, 0\n\ + movs r2, 0\n\ + movs r3, 0x10\n\ + bl BeginNormalPaletteFade\n\ + b _08166C4A\n\ +_08166C28:\n\ + ldr r0, =gPaletteFade\n\ + ldrb r1, [r0, 0x7]\n\ + movs r0, 0x80\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08166D18\n\ + movs r0, 0x2\n\ + strb r0, [r2]\n\ + b _08166D18\n\ + .pool\n\ +_08166C40:\n\ + ldr r1, =gScanlineEffect\n\ + movs r0, 0x3\n\ + strb r0, [r1, 0x15]\n\ + bl ScanlineEffect_InitHBlankDmaTransfer\n\ +_08166C4A:\n\ + ldr r1, [r4]\n\ + adds r1, 0x50\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + b _08166D18\n\ + .pool\n\ +_08166C5C:\n\ + ldr r0, [r0, 0x4]\n\ + bl SetMainCallback2\n\ + ldr r0, =gUnknown_0203BCAC\n\ + ldr r0, [r0]\n\ + ldr r1, =0x00007b1c\n\ + adds r0, r1\n\ + bl sub_81D354C\n\ + movs r4, 0\n\ +_08166C70:\n\ + ldr r5, =gUnknown_0203BCAC\n\ + ldr r0, [r5]\n\ + ldr r2, =0x00007b06\n\ + adds r0, r2\n\ + adds r0, r4\n\ + ldrb r1, [r0]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + ldr r1, =gSprites\n\ + adds r0, r1\n\ + bl DestroySprite\n\ + adds r0, r4, 0x1\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0x6\n\ + bls _08166C70\n\ + movs r0, 0\n\ + bl FreeSpriteTilesByTag\n\ + movs r0, 0x1\n\ + bl FreeSpriteTilesByTag\n\ + movs r0, 0\n\ + bl FreeSpritePaletteByTag\n\ + movs r0, 0x1\n\ + bl FreeSpritePaletteByTag\n\ + movs r4, 0\n\ +_08166CAE:\n\ + ldr r0, [r5]\n\ + lsls r1, r4, 2\n\ + ldr r2, =0x00007b44\n\ + adds r0, r2\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + bl DestroySprite\n\ + adds r0, r4, 0x1\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0x1\n\ + bls _08166CAE\n\ + ldr r6, =gUnknown_0203BCAC\n\ + ldr r0, [r6]\n\ + ldr r2, =0x00007b10\n\ + adds r1, r0, r2\n\ + ldrb r0, [r1]\n\ + cmp r0, 0xFF\n\ + beq _08166CE6\n\ + adds r1, r0, 0\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + ldr r1, =gSprites\n\ + adds r0, r1\n\ + bl DestroySprite\n\ +_08166CE6:\n\ + movs r0, 0\n\ + bl SetVBlankCallback\n\ + ldr r4, =gUnknown_0203BCA0\n\ + ldr r0, [r4]\n\ + bl Free\n\ + movs r5, 0\n\ + str r5, [r4]\n\ + ldr r4, =gUnknown_0203BCA4\n\ + ldr r0, [r4]\n\ + bl Free\n\ + str r5, [r4]\n\ + ldr r4, =gUnknown_0203BCA8\n\ + ldr r0, [r4]\n\ + bl Free\n\ + str r5, [r4]\n\ + ldr r0, [r6]\n\ + bl Free\n\ + str r5, [r6]\n\ + bl FreeAllWindowBuffers\n\ +_08166D18:\n\ + add sp, 0x4\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +void sub_8166D44(void) +{ + u8 stringBuffer[0x40]; + GetMonData(&gPlayerParty[sub_81672A4(gUnknown_0203BCAC->info.field_77)], MON_DATA_NICKNAME, stringBuffer); + StringGetEnd10(stringBuffer); + StringAppend(stringBuffer, gText_GetsAPokeBlockQuestion); + StringCopy(gStringVar4, stringBuffer); + FillWindowPixelBuffer(2, 17); + sub_8098858(2, 151, 14); + AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); + PutWindowTilemap(2); + CopyWindowToVram(2, 3); + CreateYesNoMenu(sUsePokeblockYesNoWinTemplate, 151, 14, 0); +} + +s8 sub_8166DE4(void) +{ + s8 retval = Menu_ProcessInputNoWrapClearOnChoose(); + switch(retval) + { + case 0: + break; + case -1: + case 1: + PlaySE(SE_SELECT); + rbox_fill_rectangle(2); + ClearWindowTilemap(2); + break; + + } + return retval; +} + +void sub_8166E24(void) +{ + sub_8098858(2, 151, 14); + FillWindowPixelBuffer(2, 17); + + for (gUnknown_0203BC90->field_53 = 0; gUnknown_0203BC90->field_53 < 5 && gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53] == 0; gUnknown_0203BC90->field_53++); + + if (gUnknown_0203BC90->field_53 < 5) + { + Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); + } + else + { + Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, 0); + } + + Pokeblock_MenuWindowTextPrint(gStringVar4); + PutWindowTilemap(2); + CopyWindowToVram(2, 3); +} + +bool8 sub_8166EDC(void) +{ + FillWindowPixelBuffer(2, 17); + + while (1) + { + gUnknown_0203BC90->field_53++; + if (gUnknown_0203BC90->field_53 < 5) + { + if (gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53] != 0) + break; + } + else + { + gUnknown_0203BC90->field_53 = 5; + return FALSE; + } + } + + Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); + Pokeblock_MenuWindowTextPrint(gStringVar4); + CopyWindowToVram(2, 2); + + return TRUE; +} + +void sub_8166F50(void) +{ + FillWindowPixelBuffer(2, 17); + sub_8098858(2, 151, 14); + AddTextPrinterParameterized(2, 1, gText_WontEatAnymore, 0, 1, 0, NULL); + PutWindowTilemap(2); + CopyWindowToVram(2, 3); +} + +void sub_8166F94(void) +{ + rbox_fill_rectangle(2); + ClearWindowTilemap(2); + CopyWindowToVram(2, 3); +} + +void Pokeblock_MenuWindowTextPrint(const u8 *message) +{ + AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); +} + +#ifdef NONMATCHING +void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2) +{ + if (a2 != 0) + { + if(a2 > 0) + { + statID = 0; + } + + StringCopy(dest, sContestStatNames[statID]); + StringAppend(dest, gText_WasEnhanced); + } + else + { + StringCopy(dest, gText_NothingChanged); + } +} +#else +NAKED +void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2) +{ + asm(".syntax unified\n\ +push {r4,lr}\n\ + adds r4, r0, 0\n\ + lsls r1, 24\n\ + lsrs r3, r1, 24\n\ + lsls r2, 16\n\ + lsrs r0, r2, 16\n\ + asrs r2, 16\n\ + cmp r2, 0\n\ + beq _08167010\n\ + cmp r2, 0\n\ + ble _08166FEC\n\ + movs r0, 0\n\ +_08166FEC:\n\ + lsls r0, 16\n\ + ldr r1, =sContestStatNames\n\ + lsls r0, r3, 2\n\ + adds r0, r1\n\ + ldr r1, [r0]\n\ + adds r0, r4, 0\n\ + bl StringCopy\n\ + ldr r1, =gText_WasEnhanced\n\ + adds r0, r4, 0\n\ + bl StringAppend\n\ + b _08167018\n\ + .pool\n\ +_08167010:\n\ + ldr r1, =gText_NothingChanged\n\ + adds r0, r4, 0\n\ + bl StringCopy\n\ +_08167018:\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +void Pokeblock_GetMonContestStats(struct Pokemon *pokemon, u8 *data) +{ + u16 i = 0; + + for (; i < 5; i++) + { + data[i] = GetMonData(pokemon, gUnknown_085DFCB0[i]); + } +} + +void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *pokemon) +{ + u16 i; + s16 cstat; + u8 data; + if (GetMonData(pokemon, MON_DATA_SHEEN) != 255) + { + sub_8167184(pokeblock, pokemon); + for (i=0; i<5; i++) + { + data = GetMonData(pokemon, gUnknown_085DFCB0[i]); + cstat = data + gUnknown_0203BC90->field_66[i]; + if (cstat < 0) + cstat = 0; + if (cstat > 255) + cstat = 255; + data = cstat; + SetMonData(pokemon, gUnknown_085DFCB0[i], &data); + } + cstat = (u8)GetMonData(pokemon, MON_DATA_SHEEN); + cstat = cstat + pokeblock->feel; + if (cstat > 255) + cstat = 255; + data = cstat; + SetMonData(pokemon, MON_DATA_SHEEN, &data); + } +} + +void sub_8167104(void) +{ + u16 i; + struct Pokemon *pokemon = gPlayerParty; + pokemon += gUnknown_0203BCAC->field_7C58[gUnknown_0203BCAC->info.field_77 * 4 + 865]; + Pokeblock_GetMonContestStats(pokemon, gUnknown_0203BC90->field_57); + sub_8167054(gUnknown_0203BC90->pokeblock, pokemon); + Pokeblock_GetMonContestStats(pokemon, gUnknown_0203BC90->field_5c); + for (i=0; i<5; i++) + { + gUnknown_0203BC90->field_61[i] = gUnknown_0203BC90->field_5c[i] - gUnknown_0203BC90->field_57[i]; + } +} + +void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *pokemon) +{ + s8 direction; + s8 i; + s16 amount; + s8 boost; + s8 taste; + gUnknown_0203BC90->field_66[0] = pokeblock->spicy; + gUnknown_0203BC90->field_66[1] = pokeblock->sour; + gUnknown_0203BC90->field_66[2] = pokeblock->bitter; + gUnknown_0203BC90->field_66[3] = pokeblock->sweet; + gUnknown_0203BC90->field_66[4] = pokeblock->dry; + if (gPokeblockGain > 0) + direction = 1; + else if (gPokeblockGain < 0) + direction = -1; + else + return; + for (i=0; i<5; i++) + { + amount = gUnknown_0203BC90->field_66[i]; + boost = amount / 10; + if (amount % 10 >= 5) // round to the nearest + boost++; + taste = GetMonFlavorRelation(pokemon, gUnknown_085DFCC4[i]); + if (taste == direction) + { + gUnknown_0203BC90->field_66[i] += boost * taste; + } + } +} + +bool8 sub_8167268(void) +{ + u8 *mon; + mon = (u8 *) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_77 * 4]; + if (sub_81D2C68(*(mon + 864 + 0x7C58), *(mon + 865 + 0x7C58), MON_DATA_SHEEN, 0) == 255) + return TRUE; + return FALSE; +} + +u8 sub_81672A4(u8 a0) +{ + u8 i; + for (i=0; ifield_54 = 0; + for (flavor=0; flavor<5; flavor++) + { + if (gUnknown_0203BC90->field_61[flavor] != 0) + { + spriteidx = CreateSprite(&gSpriteTemplate_085DFD5C, gUnknown_085DFD28[flavor][0], gUnknown_085DFD28[flavor][1], 0); + if (spriteidx != MAX_SPRITES) + { + if (gUnknown_0203BC90->field_61[flavor] != 0) + { + gSprites[spriteidx].callback = sub_81673DC; + } + gUnknown_0203BC90->field_54++; + } + } + } +} + +void sub_81673DC(struct Sprite *sprite) +{ + if (sprite->data[0] <= 5) + sprite->pos2.y -= 2; + else if (sprite->data[0] <= 11) + sprite->pos2.y += 2; + if ((++sprite->data[0]) > 60) + { + DestroySprite(sprite); + gUnknown_0203BC90->field_54--; + } +} + +#ifdef NONMATCHING +void sub_8167420(void) +{ + u16 i; + u16 ct; + + for (i=0, ct=0; i < CalculatePlayerPartyCount(); i++) + { + if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) + { + *(&gUnknown_0203BCAC->field_7FB8 + ct * 4) = 14; + *(&gUnknown_0203BCAC->field_7FB9 + ct * 4)= i; + *(&gUnknown_0203BCAC->field_7FBA + ct * 2) = 0; + ct++; + } + } + gUnknown_0203BCAC->info.field_77 = 0; + gUnknown_0203BCAC->info.field_76 = ct + 1; + sub_81674BC(); +} +#else +NAKED +void sub_8167420(void) +{ + asm(".syntax unified\n\ +push {r4-r6,lr}\n\ + movs r4, 0\n\ + movs r5, 0\n\ + ldr r6, =gUnknown_0203BCAC\n\ + b _08167472\n\ + .pool\n\ +_08167430:\n\ + movs r0, 0x64\n\ + muls r0, r4\n\ + ldr r1, =gPlayerParty\n\ + adds r0, r1\n\ + movs r1, 0x2D\n\ + bl GetMonData\n\ + adds r3, r0, 0\n\ + cmp r3, 0\n\ + bne _0816746C\n\ + ldr r1, [r6]\n\ + lsls r2, r5, 2\n\ + adds r1, r2\n\ + ldr r0, =0x00007fb8\n\ + adds r1, r0\n\ + movs r0, 0xE\n\ + strb r0, [r1]\n\ + ldr r0, [r6]\n\ + adds r0, r2\n\ + ldr r1, =0x00007fb9\n\ + adds r0, r1\n\ + strb r4, [r0]\n\ + ldr r0, [r6]\n\ + adds r0, r2\n\ + ldr r2, =0x00007fba\n\ + adds r0, r2\n\ + strh r3, [r0]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ +_0816746C:\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ +_08167472:\n\ + bl CalculatePlayerPartyCount\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r4, r0\n\ + bcc _08167430\n\ + ldr r2, =gUnknown_0203BCAC\n\ + ldr r0, [r2]\n\ + ldr r1, =0x00008041\n\ + adds r0, r1\n\ + movs r1, 0\n\ + strb r1, [r0]\n\ + ldr r0, [r2]\n\ + adds r1, r5, 0x1\n\ + ldr r2, =0x00008040\n\ + adds r0, r2\n\ + strb r1, [r0]\n\ + bl sub_81674BC\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +#ifdef NONMATCHING +void sub_81674BC(void) +{ + s16 var; + s16 var2; + + sub_816753C(gUnknown_0203BCAC->info.field_77, 0); + gUnknown_0203BCAC->field_7FB3 = 0; + gUnknown_0203BCAC->field_7FB4 = 1; + gUnknown_0203BCAC->field_7FB5 = 2; + + var = gUnknown_0203BCAC->info.field_77 + 1; + + if(var >= gUnknown_0203BCAC->info.field_76) + { + var = 0; + + } + + var2 = var - 1; + + if(var2 < 0) + { + var2 = gUnknown_0203BCAC->info.field_76 - 1; + } + + sub_816753C(var, 1); + sub_816753C(var2, 2); +} +#else +NAKED +void sub_81674BC(void) +{ + asm(".syntax unified\n\ + push {r4,r5,lr}\n\ + ldr r4, =gUnknown_0203BCAC\n\ + ldr r0, [r4]\n\ + ldr r5, =0x00008041\n\ + adds r0, r5\n\ + ldrb r0, [r0]\n\ + movs r1, 0\n\ + bl sub_816753C\n\ + ldr r0, [r4]\n\ + ldr r1, =0x00007fb3\n\ + adds r0, r1\n\ + movs r1, 0\n\ + strb r1, [r0]\n\ + ldr r0, [r4]\n\ + ldr r2, =0x00007fb4\n\ + adds r0, r2\n\ + movs r1, 0x1\n\ + strb r1, [r0]\n\ + ldr r0, [r4]\n\ + ldr r1, =0x00007fb5\n\ + adds r0, r1\n\ + movs r1, 0x2\n\ + strb r1, [r0]\n\ + ldr r0, [r4]\n\ + adds r5, r0, r5\n\ + ldrb r3, [r5]\n\ + adds r1, r3, 0x1\n\ + adds r2, 0x8C\n\ + adds r0, r2\n\ + ldrb r2, [r0]\n\ + cmp r1, r2\n\ + blt _08167500\n\ + movs r1, 0\n\ +_08167500:\n\ + subs r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r0, 0\n\ + bge _08167510\n\ + subs r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ +_08167510:\n\ + adds r0, r1, 0\n\ + movs r1, 0x1\n\ + bl sub_816753C\n\ + lsls r0, r4, 16\n\ + asrs r0, 16\n\ + movs r1, 0x2\n\ + bl sub_816753C\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +#ifdef NONMATCHING +void sub_816753C(s16 a1, u8 a2) +{ + u8 *v3; + int v5; + int v6; + + v3 = &gUnknown_0203BCAC->field_0[a1 << 16 >> 14]; + v5 = *(0x7FB8 + v3); + v6 = *(0x7FB9 + v3); + + sub_81D2ED4(gUnknown_0203BCAC->field_0[0x7B4D + 24 * a2], gUnknown_0203BCAC->field_0[0x7B95 + 64 * a2], v5, v6, a1, gUnknown_0203BCAC->info.field_76, 0); + sub_81D2F78(gUnknown_0203BCAC->field_7C58[0], gUnknown_0203BCAC->field_0[0x7FB0], v5, v6, a1, a2, gUnknown_0203BCAC->info.field_76, 0); + sub_81D3094(gUnknown_0203BCAC->field_0[(a2 << 13) + 0x304], gUnknown_0203BCAC->field_0[(a2 << 7) + 4], v5, v6, a1, gUnknown_0203BCAC->info.field_76, 0); + //gUnknown_0203BCAC->field_0[0x7B4D + a1 * 40], gUnknown_0203BCAC->field_7FB8, gUnknown_0203BCAC->field_7FB9, gUnknown_203BCAC->field_0[0], gUnknown_203BCAC->info.field_76, 0) +} +#else +NAKED +void sub_816753C(s16 a1, u8 a2) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x10\n\ + adds r5, r0, 0\n\ + adds r4, r1, 0\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + ldr r0, =gUnknown_0203BCAC\n\ + mov r9, r0\n\ + ldr r1, [r0]\n\ + lsls r5, 16\n\ + asrs r0, r5, 14\n\ + adds r0, r1, r0\n\ + ldr r3, =0x00007fb8\n\ + adds r2, r0, r3\n\ + ldrb r7, [r2]\n\ + ldr r2, =0x00007fb9\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + mov r10, r0\n\ + adds r3, 0x88\n\ + adds r0, r1, r3\n\ + ldrb r6, [r0]\n\ + movs r0, 0\n\ + mov r8, r0\n\ + lsls r0, r4, 1\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + ldr r2, =0x00007b4d\n\ + adds r0, r2\n\ + adds r0, r1, r0\n\ + lsls r2, r4, 6\n\ + ldr r3, =0x00007b95\n\ + adds r2, r3\n\ + adds r1, r2\n\ + lsrs r5, 16\n\ + str r5, [sp]\n\ + str r6, [sp, 0x4]\n\ + mov r2, r8\n\ + str r2, [sp, 0x8]\n\ + adds r2, r7, 0\n\ + mov r3, r10\n\ + bl sub_81D2ED4\n\ + mov r3, r9\n\ + ldr r1, [r3]\n\ + ldr r2, =0x00007c58\n\ + adds r0, r1, r2\n\ + ldr r3, =0x00007fb0\n\ + adds r1, r3\n\ + str r5, [sp]\n\ + str r4, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + mov r2, r8\n\ + str r2, [sp, 0xC]\n\ + adds r2, r7, 0\n\ + mov r3, r10\n\ + bl sub_81D2F78\n\ + lsls r0, r4, 13\n\ + movs r1, 0xC1\n\ + lsls r1, 2\n\ + adds r0, r1\n\ + mov r3, r9\n\ + ldr r1, [r3]\n\ + adds r0, r1, r0\n\ + lsls r4, 7\n\ + adds r4, 0x4\n\ + adds r1, r4\n\ + str r5, [sp]\n\ + str r6, [sp, 0x4]\n\ + mov r2, r8\n\ + str r2, [sp, 0x8]\n\ + adds r2, r7, 0\n\ + mov r3, r10\n\ + bl sub_81D3094\n\ + add sp, 0x10\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +#ifdef NONMATCHING +void sub_8167608(u8 arg0) +{ + u8 v4; + u8 *v5; + u8 *v6; + u32 v7; + struct SpritePalette array[5]; + if(gUnknown_0203BCAC->field_0[0x7B10] == 255) + { + sub_81D31D0(&array[3], &array[0], &array[4]); + array[1] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]); + array[2] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 7) + 4]); + gUnknown_0203BCAC->field_0[0x7B12] = LoadSpritePalette(&array[3]); + gUnknown_0203BCAC->field_0[0x7B14] = LoadSpritePalette(&array[4]); + v4 = CreateSprite(array[0], 38, 104, 0); + gUnknown_0203BCAC->field_0[0x7B10] = v4; + if(v4 == 64) + { + FreeSpriteTilesByTag(100); + FreeSpritePaletteByTag(100); + gUnknown_0203BCAC->field_0[0x7B10] = 255; + } + else + { + gUnknown_0203BCAC->field_0[0x7B10] = v4; + v5 = &gUnknown_0203BCAC->field_0[0]; + v6 = &gUnknown_0203BCAC->field_0[0x7B10]; + gSprites[v6].callback = sub_8168168; + gSprites[v6].pos2.y -= 32; + *(v5+0x7B18) = 32 * *(v5+0x7B14) + 0x06010000; + *(v5+0x7B12) = 16 * *(v5+0x7B12) + 0x100; + } + } + else + { + v7 = gUnknown_0203BCAC->field_0[0x7B18]; + REG_ADDR_DMA3SAD = gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]; + REG_ADDR_DMA3DAD = v7; + REG_ADDR_DMA3CNT = 0x80000400; + LoadPalette(gUnknown_0203BCAC->field_0[arg0 << 7) + 4), gUnknown_0203BCAC->field_0[0x7B12], 32); + } +} +#else +NAKED +void sub_8167608(u8 arg0) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + sub sp, 0x28\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + ldr r1, =gUnknown_0203BCAC\n\ + ldr r3, [r1]\n\ + ldr r0, =0x00007b10\n\ + mov r8, r0\n\ + adds r0, r3, r0\n\ + ldrb r0, [r0]\n\ + adds r7, r1, 0\n\ + cmp r0, 0xFF\n\ + bne _08167714\n\ + add r5, sp, 0x18\n\ + add r4, sp, 0x20\n\ + adds r0, r5, 0\n\ + mov r1, sp\n\ + adds r2, r4, 0\n\ + bl sub_81D31D0\n\ + lsls r0, r6, 13\n\ + movs r1, 0xC1\n\ + lsls r1, 2\n\ + adds r0, r1\n\ + ldr r1, [r7]\n\ + adds r0, r1, r0\n\ + str r0, [sp, 0x18]\n\ + lsls r0, r6, 7\n\ + adds r0, 0x4\n\ + adds r1, r0\n\ + str r1, [sp, 0x20]\n\ + adds r0, r4, 0\n\ + bl LoadSpritePalette\n\ + ldr r1, [r7]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r2, =0x00007b12\n\ + adds r1, r2\n\ + strh r0, [r1]\n\ + adds r0, r5, 0\n\ + bl LoadSpriteSheet\n\ + ldr r1, [r7]\n\ + ldr r3, =0x00007b14\n\ + adds r1, r3\n\ + strh r0, [r1]\n\ + mov r0, sp\n\ + movs r1, 0x26\n\ + movs r2, 0x68\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + ldr r0, [r7]\n\ + ldr r2, =0x00007b10\n\ + adds r0, r2\n\ + strb r1, [r0]\n\ + cmp r1, 0x40\n\ + bne _081676AC\n\ + movs r0, 0x64\n\ + bl FreeSpriteTilesByTag\n\ + movs r0, 0x64\n\ + bl FreeSpritePaletteByTag\n\ + ldr r0, [r7]\n\ + add r0, r8\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ + b _08167742\n\ + .pool\n\ +_081676AC:\n\ + ldr r0, [r7]\n\ + add r0, r8\n\ + strb r1, [r0]\n\ + ldr r4, =gSprites\n\ + ldr r2, [r7]\n\ + mov r0, r8\n\ + adds r3, r2, r0\n\ + ldrb r1, [r3]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r1, r4, 0\n\ + adds r1, 0x1C\n\ + adds r0, r1\n\ + ldr r1, =sub_8168168\n\ + str r1, [r0]\n\ + ldrb r1, [r3]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r4\n\ + ldrh r1, [r0, 0x26]\n\ + subs r1, 0x22\n\ + strh r1, [r0, 0x26]\n\ + ldr r3, =0x00007b18\n\ + adds r1, r2, r3\n\ + subs r3, 0x4\n\ + adds r0, r2, r3\n\ + ldrh r0, [r0]\n\ + lsls r0, 5\n\ + ldr r3, =0x06010000\n\ + adds r0, r3\n\ + str r0, [r1]\n\ + ldr r0, =0x00007b12\n\ + adds r2, r0\n\ + ldrh r0, [r2]\n\ + lsls r0, 4\n\ + movs r1, 0x80\n\ + lsls r1, 1\n\ + adds r0, r1\n\ + strh r0, [r2]\n\ + b _08167742\n\ + .pool\n\ +_08167714:\n\ + lsls r1, r6, 13\n\ + movs r0, 0xC1\n\ + lsls r0, 2\n\ + adds r1, r0\n\ + adds r1, r3, r1\n\ + ldr r2, =0x00007b18\n\ + adds r0, r3, r2\n\ + ldr r2, [r0]\n\ + ldr r0, =0x040000d4\n\ + str r1, [r0]\n\ + str r2, [r0, 0x4]\n\ + ldr r1, =0x80000400\n\ + str r1, [r0, 0x8]\n\ + ldr r0, [r0, 0x8]\n\ + lsls r0, r6, 7\n\ + adds r0, 0x4\n\ + adds r0, r3, r0\n\ + ldr r2, =0x00007b12\n\ + adds r1, r3, r2\n\ + ldrh r1, [r1]\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ +_08167742:\n\ + add sp, 0x28\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +#ifdef NONMATCHING +void sub_8167760(void) +{ + s32 i; + u8 v1; + u8 v2; + u8 v3; + u32 v4; + struct SpriteSheet *v6; + struct SpriteTemplate *v7; + void (*funcCB) (void); + struct SpritePalette *v9; + struct SpriteSheet *v10; + struct SpritePalette *v11; + + sub_81D321C(v6, v7, v9); + LoadSpriteSheets(v6); + LoadSpritePalettes(v9); + for(i = 0; i < gUnknown_0203BCAC->info.field_76 - 1; i++) + { + v1 = CreateSprite(v7, 226, (0x140000 * i + 0x80000) >> 16, 0); + if(v1 == 64) + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; + } + else + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = v1; + gSprites[v1].data[0] = i; + gSprites[v1].callback = (SpriteCallback) sub_8168180; + } + } + for(v7->tileTag = 103; i <= 5; i++) + { + v2 = CreateSprite(v7, 230, (0x140000 * i + 0x80000) >> 16, 0); + if(v2 == 64 ) + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; + } + else + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = v2; + gSprites[v2].oam.tileNum &= 0x3F; + } + } + v7->tileTag = 102; + funcCB = sub_81681B4; + v3 = CreateSprite(v7, 222, (0x140000 * i + 0x80000) >> 16, 0); + if(v3 == 64) + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; + } + else + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = v3; + v4 = 68 * v3 + 0x2020630; + (v4 + 1) = gSprites[v2].oam.affineMode & (0x3F | 0x40); + (v4 + 3) = (v4 + 3) & (0x3F | 0x80); + } + sub_81D32B0(v10, v11); + LoadSpriteSheet(v10); + LoadSpritePalette(v11); +} +#else +NAKED +void sub_8167760(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x60\n\ + add r5, sp, 0x20\n\ + add r4, sp, 0x38\n\ + mov r0, sp\n\ + adds r1, r5, 0\n\ + adds r2, r4, 0\n\ + bl sub_81D321C\n\ + mov r0, sp\n\ + bl LoadSpriteSheets\n\ + adds r0, r4, 0\n\ + bl LoadSpritePalettes\n\ + movs r4, 0\n\ + ldr r1, =gUnknown_0203BCAC\n\ + ldr r0, [r1]\n\ + ldr r2, =0x00008040\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + adds r6, r5, 0\n\ + add r2, sp, 0x50\n\ + mov r9, r2\n\ + add r2, sp, 0x58\n\ + mov r10, r2\n\ + cmp r4, r0\n\ + bge _0816781C\n\ + adds r5, r1, 0\n\ + ldr r7, =gSprites\n\ + movs r0, 0x1C\n\ + adds r0, r7\n\ + mov r8, r0\n\ +_081677AC:\n\ + lsls r2, r4, 2\n\ + adds r2, r4\n\ + lsls r2, 18\n\ + movs r1, 0x80\n\ + lsls r1, 12\n\ + adds r2, r1\n\ + asrs r2, 16\n\ + adds r0, r6, 0\n\ + movs r1, 0xE2\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0x40\n\ + beq _081677FC\n\ + ldr r0, [r5]\n\ + ldr r2, =0x00007b06\n\ + adds r0, r2\n\ + adds r0, r4\n\ + strb r3, [r0]\n\ + lsls r0, r3, 4\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r1, r0, r7\n\ + strh r4, [r1, 0x2E]\n\ + add r0, r8\n\ + ldr r1, =sub_8168180\n\ + str r1, [r0]\n\ + b _08167808\n\ + .pool\n\ +_081677FC:\n\ + ldr r0, [r5]\n\ + ldr r1, =0x00007b06\n\ + adds r0, r1\n\ + adds r0, r4\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ +_08167808:\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + ldr r0, [r5]\n\ + ldr r2, =0x00008040\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + cmp r4, r0\n\ + blt _081677AC\n\ +_0816781C:\n\ + movs r0, 0x67\n\ + strh r0, [r6]\n\ + cmp r4, 0x5\n\ + bhi _0816788A\n\ + ldr r5, =gUnknown_0203BCAC\n\ + ldr r7, =gSprites\n\ +_08167828:\n\ + lsls r2, r4, 2\n\ + adds r2, r4\n\ + lsls r2, 18\n\ + movs r0, 0x80\n\ + lsls r0, 12\n\ + adds r2, r0\n\ + asrs r2, 16\n\ + adds r0, r6, 0\n\ + movs r1, 0xE6\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0x40\n\ + beq _08167874\n\ + ldr r0, [r5]\n\ + ldr r1, =0x00007b06\n\ + adds r0, r1\n\ + adds r0, r4\n\ + strb r3, [r0]\n\ + lsls r1, r3, 4\n\ + adds r1, r3\n\ + lsls r1, 2\n\ + adds r1, r7\n\ + ldrb r2, [r1, 0x3]\n\ + movs r0, 0x3F\n\ + ands r0, r2\n\ + strb r0, [r1, 0x3]\n\ + b _08167880\n\ + .pool\n\ +_08167874:\n\ + ldr r0, [r5]\n\ + ldr r2, =0x00007b06\n\ + adds r0, r2\n\ + adds r0, r4\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ +_08167880:\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r4, 0x5\n\ + bls _08167828\n\ +_0816788A:\n\ + movs r0, 0x66\n\ + strh r0, [r6]\n\ + ldr r0, =sub_81681B4\n\ + str r0, [r6, 0x14]\n\ + lsls r2, r4, 2\n\ + adds r2, r4\n\ + lsls r2, 18\n\ + movs r0, 0x80\n\ + lsls r0, 12\n\ + adds r2, r0\n\ + asrs r2, 16\n\ + adds r0, r6, 0\n\ + movs r1, 0xDE\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0x40\n\ + beq _081678F4\n\ + ldr r0, =gUnknown_0203BCAC\n\ + ldr r0, [r0]\n\ + ldr r1, =0x00007b06\n\ + adds r0, r1\n\ + adds r0, r4\n\ + strb r3, [r0]\n\ + ldr r0, =gSprites\n\ + lsls r2, r3, 4\n\ + adds r2, r3\n\ + lsls r2, 2\n\ + adds r2, r0\n\ + ldrb r3, [r2, 0x1]\n\ + movs r1, 0x3F\n\ + adds r0, r1, 0\n\ + ands r0, r3\n\ + movs r3, 0x40\n\ + orrs r0, r3\n\ + strb r0, [r2, 0x1]\n\ + ldrb r0, [r2, 0x3]\n\ + ands r1, r0\n\ + movs r0, 0x80\n\ + orrs r1, r0\n\ + strb r1, [r2, 0x3]\n\ + b _08167902\n\ + .pool\n\ +_081678F4:\n\ + ldr r0, =gUnknown_0203BCAC\n\ + ldr r0, [r0]\n\ + ldr r2, =0x00007b06\n\ + adds r0, r2\n\ + adds r0, r4\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ +_08167902:\n\ + mov r0, r9\n\ + mov r1, r10\n\ + bl sub_81D32B0\n\ + mov r0, r9\n\ + bl LoadSpriteSheet\n\ + mov r0, r10\n\ + bl LoadSpritePalette\n\ + add sp, 0x60\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); +} +#endif + +bool8 sub_8167930(void) +{ + bool8 retvalue; + switch(gUnknown_0203BCAC->info.field_8048) + { + case 0: + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 136 << 6, 0); + SetGpuReg(REG_OFFSET_DISPCNT, 28736); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2|BLDCNT_EFFECT_BLEND|BLDCNT_TGT2_BG1); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + break; + case 1: + (u32 *) gUnknown_0203BCA4 = Alloc(6656); + (u32 *) gUnknown_0203BCA0 = Alloc(1280); + (u32 *) gUnknown_0203BCA8 = Alloc(1280); + break; + case 2: + LZ77UnCompVram(gUnknown_085DFB60, gUnknown_0203BCA8); + break; + case 3: + LoadBgTiles(3, gUnknown_085DFA80, 224, 0); + break; + case 4: + LoadBgTilemap(3, gUnknown_0203BCA8, 1280, 0); + break; + case 5: + LoadPalette(gUnknown_085DFA60, 208, 32); + gUnknown_0203BCAC->field_7B0E = 0xFFB0; + break; + case 6: + LZ77UnCompVram(gUsePokeblockGraph_Gfx, gUnknown_0203BCA4); + break; + case 7: + LZ77UnCompVram(gUsePokeblockGraph_Tilemap, gUnknown_0203BCA0); + LoadPalette(gUsePokeblockGraph_Pal, 32, 32); + break; + case 8: + LoadBgTiles(1, gUnknown_0203BCA4, 6656, 160 << 2); + break; + case 9: + SetBgTilemapBuffer(1, gUnknown_0203BCA0); + CopyToBgTilemapBufferRect(1, gUsePokeblockNatureWin_Pal, 0, 13, 12, 4); + CopyBgTilemapBufferToVram(1); + break; + case 10: + LZ77UnCompVram(gUnknown_085DFC0C, &gUnknown_0203BCAC->field_0[0x7304]); + break; + case 11: + LoadBgTilemap(2, &gUnknown_0203BCAC->field_0[0x7304], 1280, 0); + LoadPalette(gUnknown_086231E8, 48, 32); + LoadPalette(gUnknown_08623208, 240, 32); + sub_81D21DC(2); + break; + default: + gUnknown_0203BCAC->info.field_8048 = 0; + retvalue = 0; + return retvalue; + } + gUnknown_0203BCAC->info.field_8048++; + retvalue = 1; + return retvalue; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 4907ce6f7f5e8d73c32f6d8746ba64465502df03 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 3 Mar 2019 02:50:40 -0500 Subject: Fully document move_tutor (formerly learn_move) --- src/battle_pyramid_bag.c | 12 +- src/decoration.c | 2 +- src/egg_hatch.c | 2 +- src/field_screen_effect.c | 26 +- src/field_specials.c | 6 +- src/item_menu.c | 4 +- src/learn_move.c | 833 --------------------------------------- src/list_menu.c | 4 +- src/move_tutor.c | 976 ++++++++++++++++++++++++++++++++++++++++++++++ src/overworld.c | 2 +- src/party_menu.c | 2 +- src/player_pc.c | 6 +- src/pokeblock.c | 10 +- src/roulette.c | 2 +- src/secret_base.c | 4 +- src/shop.c | 2 +- src/strings.c | 16 +- src/trade.c | 2 +- src/walda_phrase.c | 2 +- 19 files changed, 1028 insertions(+), 885 deletions(-) delete mode 100644 src/learn_move.c create mode 100644 src/move_tutor.c (limited to 'src') diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 1f0672dcb..ed25c4a56 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -576,7 +576,7 @@ static void SetBagItemsListTemplate(void) } StringCopy(gPyramidBagResources->itemStrings[i], gText_CloseBag); gPyramidBagResources->bagListItems[i].name = gPyramidBagResources->itemStrings[i]; - gPyramidBagResources->bagListItems[i].id = LIST_B_PRESSED; + gPyramidBagResources->bagListItems[i].id = LIST_CANCEL; gMultiuseListMenuTemplate = gUnknown_0861F2C0; gMultiuseListMenuTemplate.totalItems = gPyramidBagResources->listMenuCount; gMultiuseListMenuTemplate.items = gPyramidBagResources->bagListItems; @@ -607,7 +607,7 @@ static void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMen if (gPyramidBagResources->unk814 == 0xFF) { sub_81C6FF8(gPyramidBagResources->unk815 ^ 1); - if (itemIndex != LIST_B_PRESSED) + if (itemIndex != LIST_CANCEL) ShowItemImage(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][itemIndex], gPyramidBagResources->unk815); else ShowItemImage(0xFFFF, gPyramidBagResources->unk815); @@ -619,7 +619,7 @@ static void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMen static void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y) { s32 xAlign; - if (itemIndex == LIST_B_PRESSED) + if (itemIndex == LIST_CANCEL) return; if (gPyramidBagResources->unk814 != 0xFF) @@ -641,7 +641,7 @@ static void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y) static void PrintItemDescription(s32 listMenuId) { const u8 *desc; - if (listMenuId != LIST_B_PRESSED) + if (listMenuId != LIST_CANCEL) { desc = ItemId_GetDescription(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][listMenuId]); } @@ -859,7 +859,7 @@ static void Task_HandlePyramidBagInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); gSpecialVar_ItemId = 0; sub_81C5B14(taskId); @@ -1293,7 +1293,7 @@ static void Task_ItemSwapHandleInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); if (gMain.newKeys & A_BUTTON) PerformItemSwap(taskId); diff --git a/src/decoration.c b/src/decoration.c index fb6cbb10a..3c9333625 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -939,7 +939,7 @@ void sub_812764C(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); SecretBasePC_SelectedDecorActions[data[11]][1](taskId); break; diff --git a/src/egg_hatch.c b/src/egg_hatch.c index ba1020669..e5280a136 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -469,7 +469,7 @@ static void Task_EggHatch(u8 taskID) { CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_EggHatch_0); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; DestroyTask(taskID); } } diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index e7476dea3..4027fdffc 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -58,7 +58,7 @@ static void task0A_fade_n_map_maybe(u8); static void sub_808115C(u8); static void palette_bg_faded_fill_white(void); static void sub_80AF438(u8); -static bool32 sub_80AF71C(void); +static bool32 WaitForWeatherFadeIn(void); static void task0A_mpl_807E31C(u8 taskId); static void sub_80AFA0C(u8 taskId); static void sub_80AFA88(u8 taskId); @@ -133,7 +133,7 @@ static void sub_80AF0F4(u8 arg) static void task0A_nop_for_a_while(u8 taskId) { - if (sub_80AF71C() == TRUE) + if (WaitForWeatherFadeIn() == TRUE) DestroyTask(taskId); } @@ -147,14 +147,14 @@ void sub_80AF128(void) static void task0A_asap_script_env_2_enable_and_set_ctx_running(u8 taskID) { - if (sub_80AF71C() == TRUE) + if (WaitForWeatherFadeIn() == TRUE) { DestroyTask(taskID); EnableBothScriptContexts(); } } -void sub_80AF168(void) +void FieldCallback_ReturnToEventScript2(void) { ScriptContext2_Enable(); Overworld_PlaySpecialMapMusic(); @@ -187,7 +187,7 @@ static void task_mpl_807DD60(u8 taskId) } break; case 2: - if (sub_80AF71C() == TRUE) + if (WaitForWeatherFadeIn() == TRUE) { ScriptContext2_Disable(); DestroyTask(taskId); @@ -227,7 +227,7 @@ static void sub_80AF234(u8 taskId) } break; case 2: - if (sub_80AF71C() == TRUE) + if (WaitForWeatherFadeIn() == TRUE) { sub_8009F18(); ScriptContext2_Disable(); @@ -347,7 +347,7 @@ static void sub_80AF438(u8 taskId) task->data[0] = 1; break; case 1: - if (sub_80AF71C()) + if (WaitForWeatherFadeIn()) { u8 eventObjId; sub_80AF0F4(1); @@ -395,7 +395,7 @@ static void task_map_chg_seq_0807E20C(u8 taskId) task->data[0] = 1; break; case 1: - if (sub_80AF71C()) + if (WaitForWeatherFadeIn()) { u8 eventObjId; sub_80AF0F4(1); @@ -428,7 +428,7 @@ static void task_map_chg_seq_0807E2CC(u8 taskId) gTasks[taskId].data[0]++; break; case 1: - if (sub_80AF71C()) + if (WaitForWeatherFadeIn()) { UnfreezeEventObjects(); ScriptContext2_Disable(); @@ -440,7 +440,7 @@ static void task_map_chg_seq_0807E2CC(u8 taskId) static void sub_80AF660(u8 taskId) { - if (sub_80AF71C() == TRUE) + if (WaitForWeatherFadeIn() == TRUE) { DestroyTask(taskId); CreateTask(sub_809FA34, 80); @@ -462,7 +462,7 @@ bool8 sub_80AF6A4(void) static void task_mpl_807E3C8(u8 taskId) { - if (sub_80AF71C() == 1) + if (WaitForWeatherFadeIn() == 1) { ScriptContext2_Disable(); DestroyTask(taskId); @@ -490,7 +490,7 @@ static bool32 PaletteFadeActive(void) return gPaletteFade.active; } -static bool32 sub_80AF71C(void) +static bool32 WaitForWeatherFadeIn(void) { if (IsWeatherNotFadingIn() == TRUE) return TRUE; @@ -1021,7 +1021,7 @@ static void task0A_mpl_807E31C(u8 taskId) gTasks[taskId].data[0]++; break; case 1: - if (sub_80AF71C() && sub_808D1B4() != TRUE) + if (WaitForWeatherFadeIn() && sub_808D1B4() != TRUE) { UnfreezeEventObjects(); ScriptContext2_Disable(); diff --git a/src/field_specials.c b/src/field_specials.c index 391985582..0122dc32c 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -2610,7 +2610,7 @@ static void sub_813A4EC(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: gSpecialVar_Result = 0x7F; PlaySE(SE_SELECT); sub_813A570(taskId); @@ -2690,10 +2690,10 @@ static void sub_813A664(u8 taskId) static void sub_813A694(u8 taskId) { static const struct ScrollArrowsTemplate gUnknown_085B3030 = { - .firstArrowType = 2, + .firstArrowType = SCROLL_ARROW_UP, .firstX = 0, .firstY = 0, - .secondArrowType = 3, + .secondArrowType = SCROLL_ARROW_DOWN, .secondX = 0, .secondY = 0, .fullyUpThreshold = 0, diff --git a/src/item_menu.c b/src/item_menu.c index 7b48a2d5d..a3a0d8080 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1108,7 +1108,7 @@ void Task_BagMenu(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: if (gUnknown_0203CE58.location == 5) { PlaySE(SE_HAZURE); @@ -1324,7 +1324,7 @@ void sub_81AC3C0(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); if (gMain.newKeys & A_BUTTON) sub_81AC498(taskId); diff --git a/src/learn_move.c b/src/learn_move.c deleted file mode 100644 index 7a6916013..000000000 --- a/src/learn_move.c +++ /dev/null @@ -1,833 +0,0 @@ -#include "global.h" -#include "main.h" -#include "battle.h" -#include "bg.h" -#include "contest_effect.h" -#include "data2.h" -#include "event_data.h" -#include "field_screen_effect.h" -#include "gpu_regs.h" -#include "learn_move.h" -#include "list_menu.h" -#include "alloc.h" -#include "menu.h" -#include "menu_helpers.h" -#include "overworld.h" -#include "palette.h" -#include "pokemon_summary_screen.h" -#include "pokenav.h" -#include "script.h" -#include "sound.h" -#include "sprite.h" -#include "string_util.h" -#include "strings.h" -#include "task.h" -#include "constants/rgb.h" -#include "constants/songs.h" - -static EWRAM_DATA struct -{ - u8 state; - u8 spriteIds[16]; /*0x001*/ - u16 movesToLearn[4]; /*0x012*/ - u8 filler1A[0x44 - 0x1A]; /*0x01A*/ - u8 partyMon; /*0x044*/ - u8 moveSlot; /*0x045*/ - struct ListMenuItem menuItems[20]; /*0x048*/ - u8 fillerE8[0x110 - 0xE8]; /*0x0E8*/ - u8 numMenuChoices; /*0x110*/ - u8 numToShowAtOnce; /*0x111*/ - u8 listMenuTask; /*0x112*/ - u8 scrollArrowTaskId1; /*0x113*/ - u8 scrollArrowTaskId2; /*0x114*/ - u16 scrollOffset; /*0x116*/ -} *sLearnMoveStruct = {0}; - -static EWRAM_DATA struct { - u16 listOffset; - u16 listRow; - u8 showContestInfo; -} sLearnMoveStruct2 = {0}; - -const u16 gUnknown_085CE9F8[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); -const u8 gUnknown_085CEA18[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); - -const struct OamData gUnknown_085CEB98 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -const struct OamData gUnknown_085CEBA0 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_V_RECTANGLE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -const struct OamData gUnknown_085CEBA8 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -const struct SpriteSheet gUnknown_085CEBB0 = -{ - .data = gUnknown_085CEA18, - .size = 0x180, - .tag = 5525 -}; - -const struct SpritePalette gUnknown_085CEBB8 = -{ - .data = gUnknown_085CE9F8, - .tag = 5526 -}; - -const struct ScrollArrowsTemplate gUnknown_085CEBC0 = -{ - .firstArrowType = 0, - .firstX = 27, - .firstY = 16, - .secondArrowType = 1, - .secondX = 117, - .secondY = 16, - .fullyUpThreshold = -1, - .fullyDownThreshold = -1, - .tileTag = 5325, - .palTag = 5325, - .palNum = 0, -}; - -const struct ScrollArrowsTemplate gUnknown_085CEBD0 = -{ - .firstArrowType = 2, - .firstX = 192, - .firstY = 8, - .secondArrowType = 3, - .secondX = 192, - .secondY = 104, - .fullyUpThreshold = 0, - .fullyDownThreshold = 0, - .tileTag = 5425, - .palTag = 5425, - .palNum = 0, -}; - -const union AnimCmd gUnknown_085CEBE0[] = -{ - ANIMCMD_FRAME(8, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd gUnknown_085CEBE8[] = -{ - ANIMCMD_FRAME(9, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd gUnknown_085CEBF0[] = -{ - ANIMCMD_FRAME(10, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd gUnknown_085CEBF8[] = -{ - ANIMCMD_FRAME(11, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd *const gUnknown_085CEC00[] = -{ - gUnknown_085CEBE0, - gUnknown_085CEBE8, - gUnknown_085CEBF0, - gUnknown_085CEBF8, -}; - -const struct SpriteTemplate gUnknown_085CEC10 = -{ - .tileTag = 5525, - .paletteTag = 5526, - .oam = &gUnknown_085CEB98, - .anims = gUnknown_085CEC00, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy -}; - -const struct BgTemplate gUnknown_085CEC28[] = -{ - { - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 31, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, - }, - { - .bg = 1, - .charBaseIndex = 0, - .mapBaseIndex = 30, - .screenSize = 0, - .paletteMode = 0, - .priority = 1, - .baseTile = 0, - }, -}; - -static void LearnMoveMain(void); -static void CreateMenuItemsList(void); -static void CreateHearts(void); -static void CB2_Main(void); -static void Task_WaitForFadeOut(u8 taskId); -static void CB2_InitLearnMove(void); -static void CB2_InitLearnMoveReturnFromSelectMove(void); -static void InitBGs(void); -static void AddScrollArrows(void); -static void HandleInput(u8); -static void ShowTeachMoveText(u8); -static s32 GetCurrentItemId(void); -static void FreeListMenuResources(void); -static void RemoveScrollArrows(void); -static void HideSpritesAndPrintTeachText(bool8); - -static void VBlankCB_LearnMove(void) -{ - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); -} - -void TeachMoveTutorMove(void) -{ - ScriptContext2_Enable(); - CreateTask(Task_WaitForFadeOut, 0xA); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); -} - -static void Task_WaitForFadeOut(u8 taskId) -{ - if (!gPaletteFade.active) - { - SetMainCallback2(CB2_InitLearnMove); - gFieldCallback = sub_80AF168; - DestroyTask(taskId); - } -} - -static void CB2_InitLearnMove(void) -{ - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - sLearnMoveStruct = AllocZeroed(sizeof(*sLearnMoveStruct)); - sLearnMoveStruct->partyMon = gSpecialVar_0x8004; - SetVBlankCallback(VBlankCB_LearnMove); - - InitBGs(); - sub_81D2824(0); - - sLearnMoveStruct2.listOffset = 0; - sLearnMoveStruct2.listRow = 0; - sLearnMoveStruct2.showContestInfo = FALSE; - - CreateMenuItemsList(); - - LoadSpriteSheet(&gUnknown_085CEBB0); - LoadSpritePalette(&gUnknown_085CEBB8); - CreateHearts(); - - sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow); - FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(CB2_Main); -} - -static void CB2_InitLearnMoveReturnFromSelectMove(void) -{ - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - sLearnMoveStruct = AllocZeroed(sizeof(*sLearnMoveStruct)); - sLearnMoveStruct->state = 28; - sLearnMoveStruct->partyMon = gSpecialVar_0x8004; - sLearnMoveStruct->moveSlot = gSpecialVar_0x8005; - SetVBlankCallback(VBlankCB_LearnMove); - - InitBGs(); - sub_81D2824(sLearnMoveStruct2.showContestInfo); - CreateMenuItemsList(); - - LoadSpriteSheet(&gUnknown_085CEBB0); - LoadSpritePalette(&gUnknown_085CEBB8); - CreateHearts(); - - sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow); - FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(CB2_Main); -} - -static void InitBGs(void) -{ - ResetVramOamAndBgCntRegs(); - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085CEC28, 2); - ResetAllBgsCoordinates(); - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | - DISPCNT_OBJ_1D_MAP | - DISPCNT_OBJ_ON); - ShowBg(0); - ShowBg(1); - SetGpuReg(REG_OFFSET_BLDCNT, 0); -} - -static void CB2_Main(void) -{ - LearnMoveMain(); - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); - UpdatePaletteFade(); -} - -static void sub_816084C(const u8 *src) -{ - StringExpandPlaceholders(gStringVar4, src); - sub_81D2BF4(gStringVar4); -} - -static void LearnMoveMain(void) -{ - switch (sLearnMoveStruct->state) - { - case 0: - sLearnMoveStruct->state++; - HideSpritesAndPrintTeachText(FALSE); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - break; - case 1: - if (!gPaletteFade.active) - { - sLearnMoveStruct->state = 4; - } - break; - case 2: - sLearnMoveStruct->state++; - break; - case 3: - HideSpritesAndPrintTeachText(FALSE); - sLearnMoveStruct->state++; - AddScrollArrows(); - break; - case 4: - HandleInput(FALSE); - return; - case 5: - ShowTeachMoveText(FALSE); - sLearnMoveStruct->state++; - AddScrollArrows(); - break; - case 6: - HandleInput(TRUE); - break; - case 8: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state++; - } - break; - case 9: - { - s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); - - if (selection == 0) - { - if (GiveMoveToMon(&gPlayerParty[sLearnMoveStruct->partyMon], GetCurrentItemId()) != 0xFFFF) - { - sub_816084C(gText_PkmnLearnedMove4); - gSpecialVar_0x8004 = 1; - sLearnMoveStruct->state = 31; - } - else - { - sLearnMoveStruct->state = 16; - } - } - else if (selection == -1 || selection == 1) - { - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - } - } - break; - case 12: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state++; - } - break; - case 13: - { - s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); - - if (selection == 0) - { - gSpecialVar_0x8004 = selection; - sLearnMoveStruct->state = 14; - } - else if (selection == -1 || selection == 1) - { - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - } - } - break; - case 16: - sub_816084C(gText_PkmnTryingToLearnMove); - sLearnMoveStruct->state++; - break; - case 17: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state = 18; - } - break; - case 18: - { - s8 var = Menu_ProcessInputNoWrapClearOnChoose(); - - if (var == 0) - { - sub_816084C(gText_WhichMoveToForget2); - sLearnMoveStruct->state = 19; - } - else if (var == -1 || var == 1) - { - sLearnMoveStruct->state = 24; - } - } - break; - case 24: - StringCopy(gStringVar2, gMoveNames[GetCurrentItemId()]); - sub_816084C(gText_StopTryingToTeachMove); - sLearnMoveStruct->state++; - break; - case 25: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state++; - } - break; - case 26: - { - s8 var = Menu_ProcessInputNoWrapClearOnChoose(); - - if (var == 0) - { - sLearnMoveStruct->state = 27; - } - else if (var == -1 || var == 1) - { - // What's the point? It gets set to 16, anyway. - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - sLearnMoveStruct->state = 16; - } - } - break; - case 27: - if (!sub_81D2C3C()) - { - FillWindowPixelBuffer(3, 0x11); - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - } - break; - case 19: - if (!sub_81D2C3C()) - { - sLearnMoveStruct->state = 20; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - } - break; - case 20: - if (!gPaletteFade.active) - { - ShowSelectMovePokemonSummaryScreen(gPlayerParty, sLearnMoveStruct->partyMon, gPlayerPartyCount - 1, CB2_InitLearnMoveReturnFromSelectMove, GetCurrentItemId()); - FreeListMenuResources(); - } - break; - case 21: - if (!sub_81D2C3C()) - { - sLearnMoveStruct->state = 14; - } - break; - case 22: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - break; - case 14: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sLearnMoveStruct->state++; - break; - case 15: - if (!gPaletteFade.active) - { - FreeListMenuResources(); - SetMainCallback2(CB2_ReturnToField); - } - break; - case 28: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - sLearnMoveStruct->state++; - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - HideSpritesAndPrintTeachText(TRUE); - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - ShowTeachMoveText(TRUE); - } - RemoveScrollArrows(); - CopyWindowToVram(3, 2); - break; - case 29: - if (!gPaletteFade.active) - { - if (sLearnMoveStruct->moveSlot == MAX_MON_MOVES) - { - sLearnMoveStruct->state = 24; - } - else - { - u16 moveId = GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_MOVE1 + sLearnMoveStruct->moveSlot); - - StringCopy(gStringVar3, gMoveNames[moveId]); - RemoveMonPPBonus(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->moveSlot); - SetMonMoveSlot(&gPlayerParty[sLearnMoveStruct->partyMon], GetCurrentItemId(), sLearnMoveStruct->moveSlot); - StringCopy(gStringVar2, gMoveNames[GetCurrentItemId()]); - sub_816084C(gText_12AndPoof); - sLearnMoveStruct->state = 30; - gSpecialVar_0x8004 = 1; - } - } - break; - case 30: - if (!sub_81D2C3C()) - { - sub_816084C(gText_PkmnForgotMoveAndLearnedNew); - sLearnMoveStruct->state = 31; - PlayFanfare(MUS_FANFA1); - } - break; - case 31: - if (!sub_81D2C3C()) - { - PlayFanfare(MUS_FANFA1); - sLearnMoveStruct->state = 32; - } - break; - case 32: - if (IsFanfareTaskInactive()) - { - sLearnMoveStruct->state = 33; - } - break; - case 33: - if (gMain.newKeys & A_BUTTON) - { - PlaySE(SE_SELECT); - sLearnMoveStruct->state = 14; - } - break; - } -} - -static void FreeListMenuResources(void) -{ - RemoveScrollArrows(); - DestroyListMenuTask(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow); - FreeAllWindowBuffers(); - FREE_AND_SET_NULL(sLearnMoveStruct); - ResetSpriteData(); - FreeAllSpritePalettes(); -} - -static void HideSpritesAndPrintTeachText(bool8 a) -{ - s32 i; - - for (i = 0; i < 16; i++) - { - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; - } - - if (!a) - { - StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); - AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); - } -} - -static void HandleInput(bool8 showContest) -{ - s32 itemId = ListMenu_ProcessInput(sLearnMoveStruct->listMenuTask); - ListMenuGetScrollAndRow(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow); - - switch (itemId) - { - case LIST_NOTHING_CHOSEN: - if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState()) - { - break; - } - - PlaySE(SE_SELECT); - - if (showContest == FALSE) - { - PutWindowTilemap(1); - sLearnMoveStruct->state = 5; - sLearnMoveStruct2.showContestInfo = TRUE; - } - else - { - PutWindowTilemap(0); - sLearnMoveStruct->state = 3; - sLearnMoveStruct2.showContestInfo = FALSE; - } - - schedule_bg_copy_tilemap_to_vram(1); - ShowHideHearts(GetCurrentItemId()); - break; - case LIST_B_PRESSED: - PlaySE(SE_SELECT); - RemoveScrollArrows(); - sLearnMoveStruct->state = 12; - StringExpandPlaceholders(gStringVar4, gText_GiveUpTeachingNewMove); - sub_81D2BF4(gStringVar4); - break; - default: - PlaySE(SE_SELECT); - RemoveScrollArrows(); - sLearnMoveStruct->state = 8; - StringCopy(gStringVar2, gMoveNames[itemId]); - StringExpandPlaceholders(gStringVar4, gText_TeachX); - sub_81D2BF4(gStringVar4); - break; - } -} - -static s32 GetCurrentItemId(void) -{ - return sLearnMoveStruct->menuItems[sLearnMoveStruct2.listRow + sLearnMoveStruct2.listOffset].id; -} - -static void ShowTeachMoveText(bool8 showContest) -{ - if (showContest == FALSE) - { - StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); - AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); - } -} - -static void CreateHearts(void) -{ - int i; - - sLearnMoveStruct->scrollArrowTaskId2 = -1; - sLearnMoveStruct->scrollArrowTaskId1 = -1; - AddScrollArrows(); - - for (i = 0; i < 8; i++) - { - sLearnMoveStruct->spriteIds[i] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); - } - - for (i = 0; i < 8; i++) - { - sLearnMoveStruct->spriteIds[i + 8] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 52, 0); - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 2); - } - - for (i = 0; i < 16; i++) - { - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; - } -} - -static void AddScrollArrows(void) -{ - if (sLearnMoveStruct->scrollArrowTaskId2 == 0xFF) - { - sLearnMoveStruct->scrollArrowTaskId2 = AddScrollIndicatorArrowPair(&gUnknown_085CEBC0, &sLearnMoveStruct->scrollOffset); - } - - if (sLearnMoveStruct->scrollArrowTaskId1 == 0xFF) - { - gTempScrollArrowTemplate = gUnknown_085CEBD0; - gTempScrollArrowTemplate.fullyDownThreshold = sLearnMoveStruct->numMenuChoices - sLearnMoveStruct->numToShowAtOnce; - sLearnMoveStruct->scrollArrowTaskId1 = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sLearnMoveStruct2.listOffset); - } -} - -static void RemoveScrollArrows(void) -{ - if (sLearnMoveStruct->scrollArrowTaskId2 != 0xFF) - { - RemoveScrollIndicatorArrowPair(sLearnMoveStruct->scrollArrowTaskId2); - sLearnMoveStruct->scrollArrowTaskId2 = 0xFF; - } - - if (sLearnMoveStruct->scrollArrowTaskId1 != 0xFF) - { - RemoveScrollIndicatorArrowPair(sLearnMoveStruct->scrollArrowTaskId1); - sLearnMoveStruct->scrollArrowTaskId1 = 0xFF; - } -} - -static void CreateMenuItemsList(void) -{ - s32 i; - u8 nickname[POKEMON_NAME_LENGTH + 1]; - - sLearnMoveStruct->numMenuChoices = GetMoveRelearnerMoves(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->movesToLearn); - - for (i = 0; i < sLearnMoveStruct->numMenuChoices; i++) - { - sLearnMoveStruct->menuItems[i].name = gMoveNames[sLearnMoveStruct->movesToLearn[i]]; - sLearnMoveStruct->menuItems[i].id = sLearnMoveStruct->movesToLearn[i]; - } - - GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_NICKNAME, nickname); - StringCopy10(gStringVar1, nickname); - sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].name = gText_Cancel; - sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].id = LIST_B_PRESSED; - sLearnMoveStruct->numMenuChoices++; - sLearnMoveStruct->numToShowAtOnce = sub_81D28C8(sLearnMoveStruct->menuItems, sLearnMoveStruct->numMenuChoices); -} - -void ShowHideHearts(s32 item) -{ - u16 numHearts; - u16 i; - - if (!sLearnMoveStruct2.showContestInfo || item == LIST_B_PRESSED) - { - for (i = 0; i < 16; i++) - { - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; - } - } - else - { - numHearts = (u8)(gContestEffects[gContestMoves[item].effect].appeal / 10); - - if (numHearts == 0xFF) - { - numHearts = 0; - } - - for (i = 0; i < 8; i++) - { - if (i < numHearts) - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 1); - } - else - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 0); - } - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = FALSE; - } - - numHearts = (u8)(gContestEffects[gContestMoves[item].effect].jam / 10); - - if (numHearts == 0xFF) - { - numHearts = 0; - } - - for (i = 0; i < 8; i++) - { - if (i < numHearts) - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 3); - } - else - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 2); - } - gSprites[sLearnMoveStruct->spriteIds[i + 8]].invisible = FALSE; - } - } -} diff --git a/src/list_menu.c b/src/list_menu.c index 7a9547661..930e87816 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -341,7 +341,7 @@ s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenu } if (gMain.newKeys & B_BUTTON) { - sMysteryGiftLinkMenu.currItemId = LIST_B_PRESSED; + sMysteryGiftLinkMenu.currItemId = LIST_CANCEL; sMysteryGiftLinkMenu.state = 2; } if (sMysteryGiftLinkMenu.state == 2) @@ -416,7 +416,7 @@ s32 ListMenu_ProcessInput(u8 listTaskId) } else if (gMain.newKeys & B_BUTTON) { - return LIST_B_PRESSED; + return LIST_CANCEL; } else if (gMain.newAndRepeatedKeys & DPAD_UP) { diff --git a/src/move_tutor.c b/src/move_tutor.c new file mode 100644 index 000000000..89291a008 --- /dev/null +++ b/src/move_tutor.c @@ -0,0 +1,976 @@ +#include "global.h" +#include "main.h" +#include "battle.h" +#include "bg.h" +#include "contest_effect.h" +#include "data2.h" +#include "event_data.h" +#include "field_screen_effect.h" +#include "gpu_regs.h" +#include "move_tutor.h" +#include "list_menu.h" +#include "alloc.h" +#include "menu.h" +#include "menu_helpers.h" +#include "overworld.h" +#include "palette.h" +#include "pokemon_summary_screen.h" +#include "pokenav.h" +#include "script.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "constants/rgb.h" +#include "constants/songs.h" + +/* + * Move tutor state machine + * ------------------------ + * + * Entry point: TeachMoveTutorMove + * + * TeachMoveTutorMove + * Task_WaitForFadeOut + * CB2_InitLearnMove + * - Creates moveDisplayArrowTask to listen to right/left buttons. + * - Creates moveListScrollArrowTask to listen to up/down buttons. + * - Whenever the selected move changes (and once on init), the MoveTutorCursorCallback + * is called (see gMoveTutorMovesListTemplate). That callback will reload the contest + * display and battle display windows for the new move. Both are always loaded in + * memory, but only the currently active one is copied to VRAM. The exception to this + * is the appeal and jam hearts, which are sprites. MoveTutorShowHideHearts is called + * while reloading the contest display to control them. + * DoMoveTutorMain: MENU_STATE_FADE_TO_BLACK + * DoMoveTutorMain: MENU_STATE_WAIT_FOR_FADE + * - Go to MENU_STATE_IDLE_BATTLE_MODE + * + * DoMoveTutorMain: MENU_STATE_SETUP_BATTLE_MODE + * DoMoveTutorMain: MENU_STATE_IDLE_BATTLE_MODE + * - If the player selected a move (pressed A), go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. + * - If the player cancelled (pressed B), go to MENU_STATE_PRINT_GIVE_UP_PROMPT. + * - If the player pressed left or right, swap the move display window to contest mode, + * and go to MENU_STATE_SETUP_CONTEST_MODE. + * + * DoMoveTutorMain: MENU_STATE_SETUP_CONTEST_MODE + * DoMoveTutorMain: MENU_STATE_IDLE_CONTEST_MODE + * - If the player selected a move, go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. + * - If the player cancelled, go to MENU_STATE_PRINT_GIVE_UP_PROMPT + * - If the player pressed left or right, swap the move display window to battle mode, + * and go to MENU_STATE_SETUP_BATTLE_MODE. + * + * DoMoveTutorMain: MENU_STATE_PRINT_TEACH_MOVE_PROMPT + * DoMoveTutorMain: MENU_STATE_TEACH_MOVE_CONFIRM + * - Wait for the player to confirm. + * - If cancelled, go to either MENU_STATE_SETUP_BATTLE_MODE or MENU_STATE_SETUP_CONTEST_MODE. + * - If confirmed and the pokemon had an empty move slot, set VAR_0x8004 to TRUE and go to + * MENU_STATE_PRINT_TEXT_THEN_FANFARE. + * - If confirmed and the pokemon doesn't have an empty move slot, go to + * MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. + * + * DoMoveTutorMain: MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT + * DoMoveTutorMain: MENU_STATE_WAIT_FOR_TRYING_TO_LEARN + * DoMoveTutorMain: MENU_STATE_CONFIRM_DELETE_OLD_MOVE + * - If the player confirms, go to MENU_STATE_PRINT_WHICH_MOVE_PROMPT. + * - If the player cancels, go to MENU_STATE_PRINT_STOP_TEACHING + * + * DoMoveTutorMain: MENU_STATE_PRINT_STOP_TEACHING + * DoMoveTutorMain: MENU_STATE_WAIT_FOR_STOP_TEACHING + * DoMoveTutorMain: MENU_STATE_CONFIRM_STOP_TEACHING + * - If the player confirms, go to MENU_STATE_CHOOSE_SETUP_STATE. + * - If the player cancels, go back to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. + * + * DoMoveTutorMain: MENU_STATE_PRINT_WHICH_MOVE_PROMPT + * DoMoveTutorMain: MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN + * - Go to ShowSelectMovePokemonSummaryScreen. When done, control returns to + * CB2_InitLearnMoveReturnFromSelectMove. + * + * DoMoveTutorMain: MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE + * DoMoveTutorMain: MENU_STATE_PRINT_TEXT_THEN_FANFARE + * DoMoveTutorMain: MENU_STATE_WAIT_FOR_FANFARE + * DoMoveTutorMain: MENU_STATE_WAIT_FOR_A_BUTTON + * DoMoveTutorMain: MENU_STATE_FADE_AND_RETURN + * DoMoveTutorMain: MENU_STATE_RETURN_TO_FIELD + * - Clean up and go to CB2_ReturnToField. + * + * DoMoveTutorMain: MENU_STATE_PRINT_GIVE_UP_PROMPT + * DoMoveTutorMain: MENU_STATE_GIVE_UP_CONFIRM + * - If the player confirms, go to MENU_STATE_FADE_AND_RETURN, and set VAR_0x8004 to FALSE. + * - If the player cancels, go to either MENU_STATE_SETUP_BATTLE_MODE or + * MENU_STATE_SETUP_CONTEST_MODE. + * + * CB2_InitLearnMoveReturnFromSelectMove: + * - Do most of the same stuff as CB2_InitLearnMove. + * DoMoveTutorMain: MENU_STATE_FADE_FROM_SUMMARY_SCREEN + * DoMoveTutorMain: MENU_STATE_TRY_OVERWRITE_MOVE + * - If any of the pokemon's existing moves were chosen, overwrite the move and + * go to MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE and set VAR_0x8004 to TRUE. + * - If the chosen move is the one the player selected before the summary screen, + * go to MENU_STATE_PRINT_STOP_TEACHING. + * + */ + +#define MENU_STATE_FADE_TO_BLACK 0 +#define MENU_STATE_WAIT_FOR_FADE 1 +#define MENU_STATE_UNREACHABLE 2 +#define MENU_STATE_SETUP_BATTLE_MODE 3 +#define MENU_STATE_IDLE_BATTLE_MODE 4 +#define MENU_STATE_SETUP_CONTEST_MODE 5 +#define MENU_STATE_IDLE_CONTEST_MODE 6 +// State 7 is skipped. +#define MENU_STATE_PRINT_TEACH_MOVE_PROMPT 8 +#define MENU_STATE_TEACH_MOVE_CONFIRM 9 +// States 10 and 11 are skipped. +#define MENU_STATE_PRINT_GIVE_UP_PROMPT 12 +#define MENU_STATE_GIVE_UP_CONFIRM 13 +#define MENU_STATE_FADE_AND_RETURN 14 +#define MENU_STATE_RETURN_TO_FIELD 15 +#define MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT 16 +#define MENU_STATE_WAIT_FOR_TRYING_TO_LEARN 17 +#define MENU_STATE_CONFIRM_DELETE_OLD_MOVE 18 +#define MENU_STATE_PRINT_WHICH_MOVE_PROMPT 19 +#define MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN 20 +// States 21, 22, and 23 are skipped. +#define MENU_STATE_PRINT_STOP_TEACHING 24 +#define MENU_STATE_WAIT_FOR_STOP_TEACHING 25 +#define MENU_STATE_CONFIRM_STOP_TEACHING 26 +#define MENU_STATE_CHOOSE_SETUP_STATE 27 +#define MENU_STATE_FADE_FROM_SUMMARY_SCREEN 28 +#define MENU_STATE_TRY_OVERWRITE_MOVE 29 +#define MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE 30 +#define MENU_STATE_PRINT_TEXT_THEN_FANFARE 31 +#define MENU_STATE_WAIT_FOR_FANFARE 32 +#define MENU_STATE_WAIT_FOR_A_BUTTON 33 + +// The different versions of hearts are selected using animation +// commands. +#define APPEAL_HEART_EMPTY 0 +#define APPEAL_HEART_FULL 1 +#define JAM_HEART_EMPTY 2 +#define JAM_HEART_FULL 3 + +static EWRAM_DATA struct +{ + u8 state; + u8 heartSpriteIds[16]; /*0x001*/ + u16 movesToLearn[4]; /*0x012*/ + u8 filler1A[0x44 - 0x1A]; /*0x01A*/ + u8 partyMon; /*0x044*/ + u8 moveSlot; /*0x045*/ + struct ListMenuItem menuItems[20]; /*0x048*/ + u8 fillerE8[0x110 - 0xE8]; /*0x0E8*/ + u8 numMenuChoices; /*0x110*/ + u8 numToShowAtOnce; /*0x111*/ + u8 moveListMenuTask; /*0x112*/ + u8 moveListScrollArrowTask; /*0x113*/ + u8 moveDisplayArrowTask; /*0x114*/ + u16 scrollOffset; /*0x116*/ +} *sMoveTutorStruct = {0}; + +static EWRAM_DATA struct { + u16 listOffset; + u16 listRow; + bool8 showContestInfo; +} sMoveTutorMenuSate = {0}; + +static const u16 sMoveTutorPaletteData[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); + +// The arrow sprites in this spritesheet aren't used. The scroll-arrow system provides its own +// arrow sprites. +static const u8 sMoveTutorSpriteSheetData[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); + +static const struct OamData sHeartSpriteOamData = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData sUnusedOam1 = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_V_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData sUnusedOam2 = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteSheet sMoveTutorSpriteSheet = +{ + .data = sMoveTutorSpriteSheetData, + .size = 0x180, + .tag = 5525 +}; + +static const struct SpritePalette sMoveTutorPalette = +{ + .data = sMoveTutorPaletteData, + .tag = 5526 +}; + +static const struct ScrollArrowsTemplate sDisplayModeArrowsTemplate = +{ + .firstArrowType = SCROLL_ARROW_LEFT, + .firstX = 27, + .firstY = 16, + .secondArrowType = SCROLL_ARROW_RIGHT, + .secondX = 117, + .secondY = 16, + .fullyUpThreshold = -1, + .fullyDownThreshold = -1, + .tileTag = 5325, + .palTag = 5325, + .palNum = 0, +}; + +static const struct ScrollArrowsTemplate sMoveListScrollArrowsTemplate = +{ + .firstArrowType = SCROLL_ARROW_UP, + .firstX = 192, + .firstY = 8, + .secondArrowType = SCROLL_ARROW_DOWN, + .secondX = 192, + .secondY = 104, + .fullyUpThreshold = 0, + .fullyDownThreshold = 0, + .tileTag = 5425, + .palTag = 5425, + .palNum = 0, +}; + +static const union AnimCmd sHeartSprite_AppealEmptyFrame[] = +{ + ANIMCMD_FRAME(8, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_AppealFullFrame[] = +{ + ANIMCMD_FRAME(9, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_JamEmptyFrame[] = +{ + ANIMCMD_FRAME(10, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_JamFullFrame[] = +{ + ANIMCMD_FRAME(11, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd *const sHeartSpriteAnimationCommands[] = +{ + [APPEAL_HEART_EMPTY] = sHeartSprite_AppealEmptyFrame, + [APPEAL_HEART_FULL] = sHeartSprite_AppealFullFrame, + [JAM_HEART_EMPTY] = sHeartSprite_JamEmptyFrame, + [JAM_HEART_FULL] = sHeartSprite_JamFullFrame, +}; + +static const struct SpriteTemplate sConstestMoveHeartSprite = +{ + .tileTag = 5525, + .paletteTag = 5526, + .oam = &sHeartSpriteOamData, + .anims = sHeartSpriteAnimationCommands, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct BgTemplate sMoveTutorMenuBackgroundTemplates[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, +}; + +static void DoMoveTutorMain(void); +static void CreateLearnableMovesList(void); +static void CreateUISprites(void); +static void CB2_MoveTutorMain(void); +static void Task_WaitForFadeOut(u8 taskId); +static void CB2_InitLearnMove(void); +static void CB2_InitLearnMoveReturnFromSelectMove(void); +static void InitMoveTutorBackgroundLayers(void); +static void AddScrollArrows(void); +static void HandleInput(u8); +static void ShowTeachMoveText(u8); +static s32 GetCurrentSelectedMove(void); +static void FreeMoveTutorResources(void); +static void RemoveScrollArrows(void); +static void HideHeartSpritesAndShowTeachMoveText(bool8); + +static void VBlankCB_MoveTutor(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +// Script arguments: The pokemon to teach is in VAR_0x8004 +void TeachMoveTutorMove(void) +{ + ScriptContext2_Enable(); + CreateTask(Task_WaitForFadeOut, 10); + // Fade to black + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); +} + +static void Task_WaitForFadeOut(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(CB2_InitLearnMove); + gFieldCallback = FieldCallback_ReturnToEventScript2; + DestroyTask(taskId); + } +} + +static void CB2_InitLearnMove(void) +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + sMoveTutorStruct = AllocZeroed(sizeof(*sMoveTutorStruct)); + sMoveTutorStruct->partyMon = gSpecialVar_0x8004; + SetVBlankCallback(VBlankCB_MoveTutor); + + InitMoveTutorBackgroundLayers(); + InitMoveTutorWindows(FALSE); + + sMoveTutorMenuSate.listOffset = 0; + sMoveTutorMenuSate.listRow = 0; + sMoveTutorMenuSate.showContestInfo = FALSE; + + CreateLearnableMovesList(); + + LoadSpriteSheet(&sMoveTutorSpriteSheet); + LoadSpritePalette(&sMoveTutorPalette); + CreateUISprites(); + + sMoveTutorStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveTutorMenuSate.listOffset, sMoveTutorMenuSate.listRow); + FillPalette(RGB_BLACK, 0, 2); + SetMainCallback2(CB2_MoveTutorMain); +} + +static void CB2_InitLearnMoveReturnFromSelectMove(void) +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + sMoveTutorStruct = AllocZeroed(sizeof(*sMoveTutorStruct)); + sMoveTutorStruct->state = MENU_STATE_FADE_FROM_SUMMARY_SCREEN; + sMoveTutorStruct->partyMon = gSpecialVar_0x8004; + sMoveTutorStruct->moveSlot = gSpecialVar_0x8005; + SetVBlankCallback(VBlankCB_MoveTutor); + + InitMoveTutorBackgroundLayers(); + InitMoveTutorWindows(sMoveTutorMenuSate.showContestInfo); + CreateLearnableMovesList(); + + LoadSpriteSheet(&sMoveTutorSpriteSheet); + LoadSpritePalette(&sMoveTutorPalette); + CreateUISprites(); + + sMoveTutorStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveTutorMenuSate.listOffset, sMoveTutorMenuSate.listRow); + FillPalette(RGB_BLACK, 0, 2); + SetMainCallback2(CB2_MoveTutorMain); +} + +static void InitMoveTutorBackgroundLayers(void) +{ + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sMoveTutorMenuBackgroundTemplates, ARRAY_COUNT(sMoveTutorMenuBackgroundTemplates)); + ResetAllBgsCoordinates(); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | + DISPCNT_OBJ_1D_MAP | + DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(1); + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +static void CB2_MoveTutorMain(void) +{ + DoMoveTutorMain(); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +static void FormatAndPrintText(const u8 *src) +{ + StringExpandPlaceholders(gStringVar4, src); + MoveTutorPrintText(gStringVar4); +} + +// See the state machine doc at the top of the file. +static void DoMoveTutorMain(void) +{ + switch (sMoveTutorStruct->state) + { + case MENU_STATE_FADE_TO_BLACK: + sMoveTutorStruct->state++; + HideHeartSpritesAndShowTeachMoveText(FALSE); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + break; + case MENU_STATE_WAIT_FOR_FADE: + if (!gPaletteFade.active) + { + sMoveTutorStruct->state = MENU_STATE_IDLE_BATTLE_MODE; + } + break; + case MENU_STATE_UNREACHABLE: + sMoveTutorStruct->state++; + break; + case MENU_STATE_SETUP_BATTLE_MODE: + + HideHeartSpritesAndShowTeachMoveText(FALSE); + sMoveTutorStruct->state++; + AddScrollArrows(); + break; + case MENU_STATE_IDLE_BATTLE_MODE: + HandleInput(FALSE); + break; + case MENU_STATE_SETUP_CONTEST_MODE: + ShowTeachMoveText(FALSE); + sMoveTutorStruct->state++; + AddScrollArrows(); + break; + case MENU_STATE_IDLE_CONTEST_MODE: + HandleInput(TRUE); + break; + case MENU_STATE_PRINT_TEACH_MOVE_PROMPT: + if (!MoveTutorRunTextPrinters()) + { + MoveTutorCreateYesNoMenu(); + sMoveTutorStruct->state++; + } + break; + case MENU_STATE_TEACH_MOVE_CONFIRM: + { + s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); + + if (selection == 0) + { + if (GiveMoveToMon(&gPlayerParty[sMoveTutorStruct->partyMon], GetCurrentSelectedMove()) != 0xFFFF) + { + FormatAndPrintText(gText_MoveTutorPkmnLearnedMove); + gSpecialVar_0x8004 = TRUE; + sMoveTutorStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; + } + else + { + sMoveTutorStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; + } + } + else if (selection == MENU_B_PRESSED || selection == 1) + { + if (sMoveTutorMenuSate.showContestInfo == FALSE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveTutorMenuSate.showContestInfo == TRUE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + } + break; + case MENU_STATE_PRINT_GIVE_UP_PROMPT: + if (!MoveTutorRunTextPrinters()) + { + MoveTutorCreateYesNoMenu(); + sMoveTutorStruct->state++; + } + break; + case MENU_STATE_GIVE_UP_CONFIRM: + { + s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); + + if (selection == 0) + { + gSpecialVar_0x8004 = FALSE; + sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; + } + else if (selection == -1 || selection == 1) + { + if (sMoveTutorMenuSate.showContestInfo == FALSE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveTutorMenuSate.showContestInfo == TRUE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + } + break; + case MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT: + FormatAndPrintText(gText_MoveTutorPkmnTryingToLearnMove); + sMoveTutorStruct->state++; + break; + case MENU_STATE_WAIT_FOR_TRYING_TO_LEARN: + if (!MoveTutorRunTextPrinters()) + { + MoveTutorCreateYesNoMenu(); + sMoveTutorStruct->state = MENU_STATE_CONFIRM_DELETE_OLD_MOVE; + } + break; + case MENU_STATE_CONFIRM_DELETE_OLD_MOVE: + { + s8 var = Menu_ProcessInputNoWrapClearOnChoose(); + + if (var == 0) + { + FormatAndPrintText(gText_MoveTutorWhichMoveToForget); + sMoveTutorStruct->state = MENU_STATE_PRINT_WHICH_MOVE_PROMPT; + } + else if (var == -1 || var == 1) + { + sMoveTutorStruct->state = MENU_STATE_PRINT_STOP_TEACHING; + } + } + break; + case MENU_STATE_PRINT_STOP_TEACHING: + StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); + FormatAndPrintText(gText_MoveTutorStopTryingToTeachMove); + sMoveTutorStruct->state++; + break; + case MENU_STATE_WAIT_FOR_STOP_TEACHING: + if (!MoveTutorRunTextPrinters()) + { + MoveTutorCreateYesNoMenu(); + sMoveTutorStruct->state++; + } + break; + case MENU_STATE_CONFIRM_STOP_TEACHING: + { + s8 var = Menu_ProcessInputNoWrapClearOnChoose(); + + if (var == 0) + { + sMoveTutorStruct->state = MENU_STATE_CHOOSE_SETUP_STATE; + } + else if (var == MENU_B_PRESSED || var == 1) + { + // What's the point? It gets set to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT, anyway. + if (sMoveTutorMenuSate.showContestInfo == FALSE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveTutorMenuSate.showContestInfo == TRUE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + sMoveTutorStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; + } + } + break; + case MENU_STATE_CHOOSE_SETUP_STATE: + if (!MoveTutorRunTextPrinters()) + { + FillWindowPixelBuffer(3, 0x11); + if (sMoveTutorMenuSate.showContestInfo == FALSE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveTutorMenuSate.showContestInfo == TRUE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + break; + case MENU_STATE_PRINT_WHICH_MOVE_PROMPT: + if (!MoveTutorRunTextPrinters()) + { + sMoveTutorStruct->state = MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + } + break; + case MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN: + if (!gPaletteFade.active) + { + ShowSelectMovePokemonSummaryScreen(gPlayerParty, sMoveTutorStruct->partyMon, gPlayerPartyCount - 1, CB2_InitLearnMoveReturnFromSelectMove, GetCurrentSelectedMove()); + FreeMoveTutorResources(); + } + break; + case 21: + if (!MoveTutorRunTextPrinters()) + { + sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; + } + break; + case 22: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + break; + case MENU_STATE_FADE_AND_RETURN: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + sMoveTutorStruct->state++; + break; + case MENU_STATE_RETURN_TO_FIELD: + if (!gPaletteFade.active) + { + FreeMoveTutorResources(); + SetMainCallback2(CB2_ReturnToField); + } + break; + case MENU_STATE_FADE_FROM_SUMMARY_SCREEN: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + sMoveTutorStruct->state++; + if (sMoveTutorMenuSate.showContestInfo == FALSE) + { + HideHeartSpritesAndShowTeachMoveText(TRUE); + } + else if (sMoveTutorMenuSate.showContestInfo == TRUE) + { + ShowTeachMoveText(TRUE); + } + RemoveScrollArrows(); + CopyWindowToVram(3, 2); + break; + case MENU_STATE_TRY_OVERWRITE_MOVE: + if (!gPaletteFade.active) + { + if (sMoveTutorStruct->moveSlot == MAX_MON_MOVES) + { + sMoveTutorStruct->state = MENU_STATE_PRINT_STOP_TEACHING; + } + else + { + u16 moveId = GetMonData(&gPlayerParty[sMoveTutorStruct->partyMon], MON_DATA_MOVE1 + sMoveTutorStruct->moveSlot); + + StringCopy(gStringVar3, gMoveNames[moveId]); + RemoveMonPPBonus(&gPlayerParty[sMoveTutorStruct->partyMon], sMoveTutorStruct->moveSlot); + SetMonMoveSlot(&gPlayerParty[sMoveTutorStruct->partyMon], GetCurrentSelectedMove(), sMoveTutorStruct->moveSlot); + StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); + FormatAndPrintText(gText_MoveTutorAndPoof); + sMoveTutorStruct->state = MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE; + gSpecialVar_0x8004 = TRUE; + } + } + break; + case MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE: + if (!MoveTutorRunTextPrinters()) + { + FormatAndPrintText(gText_MoveTutorPkmnForgotMoveAndLearnedNew); + sMoveTutorStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; + PlayFanfare(MUS_FANFA1); + } + break; + case MENU_STATE_PRINT_TEXT_THEN_FANFARE: + if (!MoveTutorRunTextPrinters()) + { + PlayFanfare(MUS_FANFA1); + sMoveTutorStruct->state = MENU_STATE_WAIT_FOR_FANFARE; + } + break; + case MENU_STATE_WAIT_FOR_FANFARE: + if (IsFanfareTaskInactive()) + { + sMoveTutorStruct->state = MENU_STATE_WAIT_FOR_A_BUTTON; + } + break; + case MENU_STATE_WAIT_FOR_A_BUTTON: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; + } + break; + } +} + +static void FreeMoveTutorResources(void) +{ + RemoveScrollArrows(); + DestroyListMenuTask(sMoveTutorStruct->moveListMenuTask, &sMoveTutorMenuSate.listOffset, &sMoveTutorMenuSate.listRow); + FreeAllWindowBuffers(); + FREE_AND_SET_NULL(sMoveTutorStruct); + ResetSpriteData(); + FreeAllSpritePalettes(); +} + +// Note: The hearts are already made invisible by MoveTutorShowHideHearts, +// which is called whenever the cursor in either list changes. +static void HideHeartSpritesAndShowTeachMoveText(bool8 onlyHideSprites) +{ + s32 i; + + for (i = 0; i < 16; i++) + { + gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; + } + + if (!onlyHideSprites) + { + StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); + FillWindowPixelBuffer(3, 0x11); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); + } +} + +static void HandleInput(bool8 showContest) +{ + s32 itemId = ListMenu_ProcessInput(sMoveTutorStruct->moveListMenuTask); + ListMenuGetScrollAndRow(sMoveTutorStruct->moveListMenuTask, &sMoveTutorMenuSate.listOffset, &sMoveTutorMenuSate.listRow); + + switch (itemId) + { + case LIST_NOTHING_CHOSEN: + if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState()) + { + break; + } + + PlaySE(SE_SELECT); + + if (showContest == FALSE) + { + PutWindowTilemap(1); + sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + sMoveTutorMenuSate.showContestInfo = TRUE; + } + else + { + PutWindowTilemap(0); + sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + sMoveTutorMenuSate.showContestInfo = FALSE; + } + + schedule_bg_copy_tilemap_to_vram(1); + MoveTutorShowHideHearts(GetCurrentSelectedMove()); + break; + case LIST_CANCEL: + PlaySE(SE_SELECT); + RemoveScrollArrows(); + sMoveTutorStruct->state = MENU_STATE_PRINT_GIVE_UP_PROMPT; + StringExpandPlaceholders(gStringVar4, gText_MoveTutorGiveUp); + MoveTutorPrintText(gStringVar4); + break; + default: + PlaySE(SE_SELECT); + RemoveScrollArrows(); + sMoveTutorStruct->state = MENU_STATE_PRINT_TEACH_MOVE_PROMPT; + StringCopy(gStringVar2, gMoveNames[itemId]); + StringExpandPlaceholders(gStringVar4, gText_MoveTutorTeachMoveConfirm); + MoveTutorPrintText(gStringVar4); + break; + } +} + +static s32 GetCurrentSelectedMove(void) +{ + return sMoveTutorStruct->menuItems[sMoveTutorMenuSate.listRow + sMoveTutorMenuSate.listOffset].id; +} + +// Theory: This used to make the heart sprites visible again (i.e. +// this was the inverse of HideHeartsAndShowTeachMoveText), but the +// code was commented out. The bool argument would have been named +// "justShowHearts." The code for showing/hiding the heards was moved +// to MoveTutorShowHideHearts, which is called whenever a new move is +// selected and whenever the display mode changes. +static void ShowTeachMoveText(bool8 shouldDoNothingInstead) +{ + if (shouldDoNothingInstead == FALSE) + { + StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); + FillWindowPixelBuffer(3, 0x11); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); + } +} + +static void CreateUISprites(void) +{ + int i; + + sMoveTutorStruct->moveDisplayArrowTask = 0xFF; + sMoveTutorStruct->moveListScrollArrowTask = 0xFF; + AddScrollArrows(); + + // These are the appeal hearts. + for (i = 0; i < 8; i++) + { + sMoveTutorStruct->heartSpriteIds[i] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); + } + + // These are the jam harts. + // The animation is used to toggle between full/empty heart sprites. + for (i = 0; i < 8; i++) + { + sMoveTutorStruct->heartSpriteIds[i + 8] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 52, 0); + StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 2); + } + + for (i = 0; i < 16; i++) + { + gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; + } +} + +static void AddScrollArrows(void) +{ + if (sMoveTutorStruct->moveDisplayArrowTask == 0xFF) + { + sMoveTutorStruct->moveDisplayArrowTask = AddScrollIndicatorArrowPair(&sDisplayModeArrowsTemplate, &sMoveTutorStruct->scrollOffset); + } + + if (sMoveTutorStruct->moveListScrollArrowTask == 0xFF) + { + gTempScrollArrowTemplate = sMoveListScrollArrowsTemplate; + gTempScrollArrowTemplate.fullyDownThreshold = sMoveTutorStruct->numMenuChoices - sMoveTutorStruct->numToShowAtOnce; + sMoveTutorStruct->moveListScrollArrowTask = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sMoveTutorMenuSate.listOffset); + } +} + +static void RemoveScrollArrows(void) +{ + if (sMoveTutorStruct->moveDisplayArrowTask != 0xFF) + { + RemoveScrollIndicatorArrowPair(sMoveTutorStruct->moveDisplayArrowTask); + sMoveTutorStruct->moveDisplayArrowTask = 0xFF; + } + + if (sMoveTutorStruct->moveListScrollArrowTask != 0xFF) + { + RemoveScrollIndicatorArrowPair(sMoveTutorStruct->moveListScrollArrowTask); + sMoveTutorStruct->moveListScrollArrowTask = 0xFF; + } +} + +static void CreateLearnableMovesList(void) +{ + s32 i; + u8 nickname[POKEMON_NAME_LENGTH + 1]; + + sMoveTutorStruct->numMenuChoices = GetMoveRelearnerMoves(&gPlayerParty[sMoveTutorStruct->partyMon], sMoveTutorStruct->movesToLearn); + + for (i = 0; i < sMoveTutorStruct->numMenuChoices; i++) + { + sMoveTutorStruct->menuItems[i].name = gMoveNames[sMoveTutorStruct->movesToLearn[i]]; + sMoveTutorStruct->menuItems[i].id = sMoveTutorStruct->movesToLearn[i]; + } + + GetMonData(&gPlayerParty[sMoveTutorStruct->partyMon], MON_DATA_NICKNAME, nickname); + StringCopy10(gStringVar1, nickname); + sMoveTutorStruct->menuItems[sMoveTutorStruct->numMenuChoices].name = gText_Cancel; + sMoveTutorStruct->menuItems[sMoveTutorStruct->numMenuChoices].id = LIST_CANCEL; + sMoveTutorStruct->numMenuChoices++; + sMoveTutorStruct->numToShowAtOnce = LoadMoveTutorMovesList(sMoveTutorStruct->menuItems, sMoveTutorStruct->numMenuChoices); +} + +void MoveTutorShowHideHearts(s32 moveId) +{ + u16 numHearts; + u16 i; + + if (!sMoveTutorMenuSate.showContestInfo || moveId == LIST_CANCEL) + { + for (i = 0; i < 16; i++) + { + gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; + } + } + else + { + numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].appeal / 10); + + if (numHearts == 0xFF) + { + numHearts = 0; + } + + for (i = 0; i < 8; i++) + { + if (i < numHearts) + { + StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i]], 1); + } + else + { + StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i]], 0); + } + gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = FALSE; + } + + numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].jam / 10); + + if (numHearts == 0xFF) + { + numHearts = 0; + } + + for (i = 0; i < 8; i++) + { + if (i < numHearts) + { + StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 3); + } + else + { + StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 2); + } + gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]].invisible = FALSE; + } + } +} diff --git a/src/overworld.c b/src/overworld.c index 0ff8d5b7f..ce1e21ab1 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1688,7 +1688,7 @@ void CB2_ReturnToFieldContinueScript(void) void CB2_ReturnToFieldContinueScriptPlayMapMusic(void) { FieldClearVBlankHBlankCallbacks(); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; CB2_ReturnToField(); } diff --git a/src/party_menu.c b/src/party_menu.c index 10665ad9e..dad778b49 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -7287,7 +7287,7 @@ static void sub_81B9640(u8 taskId) void sub_81B968C(void) { ShowPokemonSummaryScreen(PSS_MODE_SELECT_MOVE, gPlayerParty, gSpecialVar_0x8004, gPlayerPartyCount - 1, CB2_ReturnToField); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; } void sub_81B96D0(void) diff --git a/src/player_pc.c b/src/player_pc.c index 0d08a5e7b..bec763b41 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -645,7 +645,7 @@ static void Mailbox_ProcessInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); RemoveScrollIndicatorArrowPair(playerPCItemPageInfo.scrollIndicatorId); Mailbox_ReturnToPlayerPC(taskId); @@ -1151,7 +1151,7 @@ static void ItemStorage_ProcessInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); ItemStorage_GoBackToPlayerPCMenu(taskId); break; @@ -1226,7 +1226,7 @@ static void sub_816C4FC(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: if (gMain.newKeys & A_BUTTON) { ItemStorage_DoItemSwap(taskId, FALSE); diff --git a/src/pokeblock.c b/src/pokeblock.c index 3fd4f34df..10149c1e7 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -709,7 +709,7 @@ static void HandlePokeblockListMenuItems(void) StringCopy(sPokeblockMenu->menuItemsStrings[i], gText_StowCase); sPokeblockMenu->items[i].name = sPokeblockMenu->menuItemsStrings[i]; - sPokeblockMenu->items[i].id = LIST_B_PRESSED; + sPokeblockMenu->items[i].id = LIST_CANCEL; gMultiuseListMenuTemplate = sPokeblockListMenuTemplate; gMultiuseListMenuTemplate.fontId = 7; @@ -751,7 +751,7 @@ static void sub_8135FCC(s32 pkblId) FillWindowPixelBuffer(7, 0); - if (pkblId != LIST_B_PRESSED) + if (pkblId != LIST_CANCEL) { pokeblock = &gSaveBlock1Ptr->pokeblocks[pkblId]; rectTilemapSrc[0] = 0x17; @@ -959,7 +959,7 @@ static void Task_FreeDataAndExitPokeblockCase(u8 taskId) if (!gPaletteFade.active) { if (sPokeblockMenu->caseId == PBLOCK_CASE_FEEDER || sPokeblockMenu->caseId == PBLOCK_CASE_GIVE) - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; DestroyListMenuTask(data[0], &sSavedPokeblockData.lastItemPage, &sSavedPokeblockData.lastItemPos); sub_8136418(); @@ -1011,7 +1011,7 @@ static void Task_HandlePokeblockMenuInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); gSpecialVar_Result = 0xFFFF; gSpecialVar_ItemId = 0; @@ -1066,7 +1066,7 @@ static void Task_HandlePokeblocksSwapInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: // same id as STOW CASE field + case LIST_CANCEL: // same id as STOW CASE field PlaySE(SE_SELECT); if (gMain.newKeys & A_BUTTON) HandlePokeblocksSwap(taskId, FALSE); diff --git a/src/roulette.c b/src/roulette.c index 4c20bd0fe..4663602fa 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1984,7 +1984,7 @@ static void sub_8141E7C(u8 taskId) // end roulette ? ResetPaletteFade(); ResetSpriteData(); sub_8140418(); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; SetMainCallback2(CB2_ReturnToField); DestroyTask(taskId); } diff --git a/src/secret_base.c b/src/secret_base.c index 33fa0c05e..b2d697142 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -391,7 +391,7 @@ void sub_80E8FD0(u8 taskId) } sub_80E8F9C(); WarpIntoMap(); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; SetMainCallback2(CB2_LoadMap); DestroyTask(taskId); break; @@ -959,7 +959,7 @@ void sub_80E9E90(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); DestroyListMenuTask(data[5], NULL, NULL); RemoveScrollIndicatorArrowPair(data[8]); diff --git a/src/shop.c b/src/shop.c index 8eefd5e97..2c2a28eea 100755 --- a/src/shop.c +++ b/src/shop.c @@ -918,7 +918,7 @@ static void Task_BuyMenu(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); ExitBuyMenu(taskId); break; diff --git a/src/strings.c b/src/strings.c index f81a19083..c2f476b58 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1742,15 +1742,15 @@ const u8 gText_TrainerHill2F[] = _("2F"); const u8 gText_TrainerHill3F[] = _("3F"); const u8 gText_TrainerHill4F[] = _("4F"); const u8 gText_TeachWhichMoveToPkmn[] = _("Teach which move to {STR_VAR_1}?"); -const u8 gText_TeachX[] = _("Teach {STR_VAR_2}?"); -const u8 gText_PkmnLearnedMove4[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); -const u8 gText_PkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); -const u8 gText_StopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?"); -const u8 gText_12AndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); -const u8 gText_PkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}."); +const u8 gText_MoveTutorTeachMoveConfirm[] = _("Teach {STR_VAR_2}?"); +const u8 gText_MoveTutorPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); +const u8 gText_MoveTutorPkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); +const u8 gText_MoveTutorStopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?"); +const u8 gText_MoveTutorAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); +const u8 gText_MoveTutorPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}."); const u8 gUnknown_085EF9C8[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}."); -const u8 gText_GiveUpTeachingNewMove[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); -const u8 gText_WhichMoveToForget2[] = _("Which move should be\nforgotten?\p"); +const u8 gText_MoveTutorGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); +const u8 gText_MoveTutorWhichMoveToForget[] = _("Which move should be\nforgotten?\p"); const u8 gText_BattleMoves2[] = _("BATTLE MOVES"); const u8 gText_ContestMoves2[] = _("CONTEST MOVES"); const u8 gUnknown_085EFA4C[] = _("TYPE/"); diff --git a/src/trade.c b/src/trade.c index 849442ae0..25705b7bb 100644 --- a/src/trade.c +++ b/src/trade.c @@ -6061,7 +6061,7 @@ static void sub_807F110(u8 taskId) if (!gPaletteFade.active) { SetMainCallback2(sub_807B270); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; DestroyTask(taskId); } } diff --git a/src/walda_phrase.c b/src/walda_phrase.c index 83004777f..e8c1e4aed 100644 --- a/src/walda_phrase.c +++ b/src/walda_phrase.c @@ -70,7 +70,7 @@ static void CB2_HandleGivenWaldaPhrase(void) } StringCopy(gStringVar1, GetWaldaPhrasePtr()); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; SetMainCallback2(CB2_ReturnToField); } -- cgit v1.2.3 From cae63cf1c79ed243827e8a9149c1aa652f80d374 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 4 Mar 2019 20:56:39 -0500 Subject: Rename move tutor to move relearner --- src/move_relearner.c | 976 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/move_tutor.c | 976 --------------------------------------------------- src/strings.c | 16 +- 3 files changed, 984 insertions(+), 984 deletions(-) create mode 100644 src/move_relearner.c delete mode 100644 src/move_tutor.c (limited to 'src') diff --git a/src/move_relearner.c b/src/move_relearner.c new file mode 100644 index 000000000..1766476cc --- /dev/null +++ b/src/move_relearner.c @@ -0,0 +1,976 @@ +#include "global.h" +#include "main.h" +#include "battle.h" +#include "bg.h" +#include "contest_effect.h" +#include "data2.h" +#include "event_data.h" +#include "field_screen_effect.h" +#include "gpu_regs.h" +#include "move_relearner.h" +#include "list_menu.h" +#include "alloc.h" +#include "menu.h" +#include "menu_helpers.h" +#include "overworld.h" +#include "palette.h" +#include "pokemon_summary_screen.h" +#include "pokenav.h" +#include "script.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "constants/rgb.h" +#include "constants/songs.h" + +/* + * Move relearner state machine + * ------------------------ + * + * Entry point: TeachMoveRelearnerMove + * + * TeachMoveRelearnerMove + * Task_WaitForFadeOut + * CB2_InitLearnMove + * - Creates moveDisplayArrowTask to listen to right/left buttons. + * - Creates moveListScrollArrowTask to listen to up/down buttons. + * - Whenever the selected move changes (and once on init), the MoveRelearnerCursorCallback + * is called (see gMoveRelearnerMovesListTemplate). That callback will reload the contest + * display and battle display windows for the new move. Both are always loaded in + * memory, but only the currently active one is copied to VRAM. The exception to this + * is the appeal and jam hearts, which are sprites. MoveRelearnerShowHideHearts is called + * while reloading the contest display to control them. + * DoMoveRelearnerMain: MENU_STATE_FADE_TO_BLACK + * DoMoveRelearnerMain: MENU_STATE_WAIT_FOR_FADE + * - Go to MENU_STATE_IDLE_BATTLE_MODE + * + * DoMoveRelearnerMain: MENU_STATE_SETUP_BATTLE_MODE + * DoMoveRelearnerMain: MENU_STATE_IDLE_BATTLE_MODE + * - If the player selected a move (pressed A), go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. + * - If the player cancelled (pressed B), go to MENU_STATE_PRINT_GIVE_UP_PROMPT. + * - If the player pressed left or right, swap the move display window to contest mode, + * and go to MENU_STATE_SETUP_CONTEST_MODE. + * + * DoMoveRelearnerMain: MENU_STATE_SETUP_CONTEST_MODE + * DoMoveRelearnerMain: MENU_STATE_IDLE_CONTEST_MODE + * - If the player selected a move, go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. + * - If the player cancelled, go to MENU_STATE_PRINT_GIVE_UP_PROMPT + * - If the player pressed left or right, swap the move display window to battle mode, + * and go to MENU_STATE_SETUP_BATTLE_MODE. + * + * DoMoveRelearnerMain: MENU_STATE_PRINT_TEACH_MOVE_PROMPT + * DoMoveRelearnerMain: MENU_STATE_TEACH_MOVE_CONFIRM + * - Wait for the player to confirm. + * - If cancelled, go to either MENU_STATE_SETUP_BATTLE_MODE or MENU_STATE_SETUP_CONTEST_MODE. + * - If confirmed and the pokemon had an empty move slot, set VAR_0x8004 to TRUE and go to + * MENU_STATE_PRINT_TEXT_THEN_FANFARE. + * - If confirmed and the pokemon doesn't have an empty move slot, go to + * MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. + * + * DoMoveRelearnerMain: MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT + * DoMoveRelearnerMain: MENU_STATE_WAIT_FOR_TRYING_TO_LEARN + * DoMoveRelearnerMain: MENU_STATE_CONFIRM_DELETE_OLD_MOVE + * - If the player confirms, go to MENU_STATE_PRINT_WHICH_MOVE_PROMPT. + * - If the player cancels, go to MENU_STATE_PRINT_STOP_TEACHING + * + * DoMoveRelearnerMain: MENU_STATE_PRINT_STOP_TEACHING + * DoMoveRelearnerMain: MENU_STATE_WAIT_FOR_STOP_TEACHING + * DoMoveRelearnerMain: MENU_STATE_CONFIRM_STOP_TEACHING + * - If the player confirms, go to MENU_STATE_CHOOSE_SETUP_STATE. + * - If the player cancels, go back to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. + * + * DoMoveRelearnerMain: MENU_STATE_PRINT_WHICH_MOVE_PROMPT + * DoMoveRelearnerMain: MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN + * - Go to ShowSelectMovePokemonSummaryScreen. When done, control returns to + * CB2_InitLearnMoveReturnFromSelectMove. + * + * DoMoveRelearnerMain: MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE + * DoMoveRelearnerMain: MENU_STATE_PRINT_TEXT_THEN_FANFARE + * DoMoveRelearnerMain: MENU_STATE_WAIT_FOR_FANFARE + * DoMoveRelearnerMain: MENU_STATE_WAIT_FOR_A_BUTTON + * DoMoveRelearnerMain: MENU_STATE_FADE_AND_RETURN + * DoMoveRelearnerMain: MENU_STATE_RETURN_TO_FIELD + * - Clean up and go to CB2_ReturnToField. + * + * DoMoveRelearnerMain: MENU_STATE_PRINT_GIVE_UP_PROMPT + * DoMoveRelearnerMain: MENU_STATE_GIVE_UP_CONFIRM + * - If the player confirms, go to MENU_STATE_FADE_AND_RETURN, and set VAR_0x8004 to FALSE. + * - If the player cancels, go to either MENU_STATE_SETUP_BATTLE_MODE or + * MENU_STATE_SETUP_CONTEST_MODE. + * + * CB2_InitLearnMoveReturnFromSelectMove: + * - Do most of the same stuff as CB2_InitLearnMove. + * DoMoveRelearnerMain: MENU_STATE_FADE_FROM_SUMMARY_SCREEN + * DoMoveRelearnerMain: MENU_STATE_TRY_OVERWRITE_MOVE + * - If any of the pokemon's existing moves were chosen, overwrite the move and + * go to MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE and set VAR_0x8004 to TRUE. + * - If the chosen move is the one the player selected before the summary screen, + * go to MENU_STATE_PRINT_STOP_TEACHING. + * + */ + +#define MENU_STATE_FADE_TO_BLACK 0 +#define MENU_STATE_WAIT_FOR_FADE 1 +#define MENU_STATE_UNREACHABLE 2 +#define MENU_STATE_SETUP_BATTLE_MODE 3 +#define MENU_STATE_IDLE_BATTLE_MODE 4 +#define MENU_STATE_SETUP_CONTEST_MODE 5 +#define MENU_STATE_IDLE_CONTEST_MODE 6 +// State 7 is skipped. +#define MENU_STATE_PRINT_TEACH_MOVE_PROMPT 8 +#define MENU_STATE_TEACH_MOVE_CONFIRM 9 +// States 10 and 11 are skipped. +#define MENU_STATE_PRINT_GIVE_UP_PROMPT 12 +#define MENU_STATE_GIVE_UP_CONFIRM 13 +#define MENU_STATE_FADE_AND_RETURN 14 +#define MENU_STATE_RETURN_TO_FIELD 15 +#define MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT 16 +#define MENU_STATE_WAIT_FOR_TRYING_TO_LEARN 17 +#define MENU_STATE_CONFIRM_DELETE_OLD_MOVE 18 +#define MENU_STATE_PRINT_WHICH_MOVE_PROMPT 19 +#define MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN 20 +// States 21, 22, and 23 are skipped. +#define MENU_STATE_PRINT_STOP_TEACHING 24 +#define MENU_STATE_WAIT_FOR_STOP_TEACHING 25 +#define MENU_STATE_CONFIRM_STOP_TEACHING 26 +#define MENU_STATE_CHOOSE_SETUP_STATE 27 +#define MENU_STATE_FADE_FROM_SUMMARY_SCREEN 28 +#define MENU_STATE_TRY_OVERWRITE_MOVE 29 +#define MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE 30 +#define MENU_STATE_PRINT_TEXT_THEN_FANFARE 31 +#define MENU_STATE_WAIT_FOR_FANFARE 32 +#define MENU_STATE_WAIT_FOR_A_BUTTON 33 + +// The different versions of hearts are selected using animation +// commands. +#define APPEAL_HEART_EMPTY 0 +#define APPEAL_HEART_FULL 1 +#define JAM_HEART_EMPTY 2 +#define JAM_HEART_FULL 3 + +static EWRAM_DATA struct +{ + u8 state; + u8 heartSpriteIds[16]; /*0x001*/ + u16 movesToLearn[4]; /*0x012*/ + u8 filler1A[0x44 - 0x1A]; /*0x01A*/ + u8 partyMon; /*0x044*/ + u8 moveSlot; /*0x045*/ + struct ListMenuItem menuItems[20]; /*0x048*/ + u8 fillerE8[0x110 - 0xE8]; /*0x0E8*/ + u8 numMenuChoices; /*0x110*/ + u8 numToShowAtOnce; /*0x111*/ + u8 moveListMenuTask; /*0x112*/ + u8 moveListScrollArrowTask; /*0x113*/ + u8 moveDisplayArrowTask; /*0x114*/ + u16 scrollOffset; /*0x116*/ +} *sMoveRelearnerStruct = {0}; + +static EWRAM_DATA struct { + u16 listOffset; + u16 listRow; + bool8 showContestInfo; +} sMoveRelearnerMenuSate = {0}; + +static const u16 sMoveRelearnerPaletteData[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); + +// The arrow sprites in this spritesheet aren't used. The scroll-arrow system provides its own +// arrow sprites. +static const u8 sMoveRelearnerSpriteSheetData[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); + +static const struct OamData sHeartSpriteOamData = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData sUnusedOam1 = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_V_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData sUnusedOam2 = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteSheet sMoveRelearnerSpriteSheet = +{ + .data = sMoveRelearnerSpriteSheetData, + .size = 0x180, + .tag = 5525 +}; + +static const struct SpritePalette sMoveRelearnerPalette = +{ + .data = sMoveRelearnerPaletteData, + .tag = 5526 +}; + +static const struct ScrollArrowsTemplate sDisplayModeArrowsTemplate = +{ + .firstArrowType = SCROLL_ARROW_LEFT, + .firstX = 27, + .firstY = 16, + .secondArrowType = SCROLL_ARROW_RIGHT, + .secondX = 117, + .secondY = 16, + .fullyUpThreshold = -1, + .fullyDownThreshold = -1, + .tileTag = 5325, + .palTag = 5325, + .palNum = 0, +}; + +static const struct ScrollArrowsTemplate sMoveListScrollArrowsTemplate = +{ + .firstArrowType = SCROLL_ARROW_UP, + .firstX = 192, + .firstY = 8, + .secondArrowType = SCROLL_ARROW_DOWN, + .secondX = 192, + .secondY = 104, + .fullyUpThreshold = 0, + .fullyDownThreshold = 0, + .tileTag = 5425, + .palTag = 5425, + .palNum = 0, +}; + +static const union AnimCmd sHeartSprite_AppealEmptyFrame[] = +{ + ANIMCMD_FRAME(8, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_AppealFullFrame[] = +{ + ANIMCMD_FRAME(9, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_JamEmptyFrame[] = +{ + ANIMCMD_FRAME(10, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_JamFullFrame[] = +{ + ANIMCMD_FRAME(11, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd *const sHeartSpriteAnimationCommands[] = +{ + [APPEAL_HEART_EMPTY] = sHeartSprite_AppealEmptyFrame, + [APPEAL_HEART_FULL] = sHeartSprite_AppealFullFrame, + [JAM_HEART_EMPTY] = sHeartSprite_JamEmptyFrame, + [JAM_HEART_FULL] = sHeartSprite_JamFullFrame, +}; + +static const struct SpriteTemplate sConstestMoveHeartSprite = +{ + .tileTag = 5525, + .paletteTag = 5526, + .oam = &sHeartSpriteOamData, + .anims = sHeartSpriteAnimationCommands, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct BgTemplate sMoveRelearnerMenuBackgroundTemplates[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, +}; + +static void DoMoveRelearnerMain(void); +static void CreateLearnableMovesList(void); +static void CreateUISprites(void); +static void CB2_MoveRelearnerMain(void); +static void Task_WaitForFadeOut(u8 taskId); +static void CB2_InitLearnMove(void); +static void CB2_InitLearnMoveReturnFromSelectMove(void); +static void InitMoveRelearnerBackgroundLayers(void); +static void AddScrollArrows(void); +static void HandleInput(u8); +static void ShowTeachMoveText(u8); +static s32 GetCurrentSelectedMove(void); +static void FreeMoveRelearnerResources(void); +static void RemoveScrollArrows(void); +static void HideHeartSpritesAndShowTeachMoveText(bool8); + +static void VBlankCB_MoveRelearner(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +// Script arguments: The pokemon to teach is in VAR_0x8004 +void TeachMoveRelearnerMove(void) +{ + ScriptContext2_Enable(); + CreateTask(Task_WaitForFadeOut, 10); + // Fade to black + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); +} + +static void Task_WaitForFadeOut(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(CB2_InitLearnMove); + gFieldCallback = FieldCallback_ReturnToEventScript2; + DestroyTask(taskId); + } +} + +static void CB2_InitLearnMove(void) +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + sMoveRelearnerStruct = AllocZeroed(sizeof(*sMoveRelearnerStruct)); + sMoveRelearnerStruct->partyMon = gSpecialVar_0x8004; + SetVBlankCallback(VBlankCB_MoveRelearner); + + InitMoveRelearnerBackgroundLayers(); + InitMoveRelearnerWindows(FALSE); + + sMoveRelearnerMenuSate.listOffset = 0; + sMoveRelearnerMenuSate.listRow = 0; + sMoveRelearnerMenuSate.showContestInfo = FALSE; + + CreateLearnableMovesList(); + + LoadSpriteSheet(&sMoveRelearnerSpriteSheet); + LoadSpritePalette(&sMoveRelearnerPalette); + CreateUISprites(); + + sMoveRelearnerStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearnerMenuSate.listOffset, sMoveRelearnerMenuSate.listRow); + FillPalette(RGB_BLACK, 0, 2); + SetMainCallback2(CB2_MoveRelearnerMain); +} + +static void CB2_InitLearnMoveReturnFromSelectMove(void) +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + sMoveRelearnerStruct = AllocZeroed(sizeof(*sMoveRelearnerStruct)); + sMoveRelearnerStruct->state = MENU_STATE_FADE_FROM_SUMMARY_SCREEN; + sMoveRelearnerStruct->partyMon = gSpecialVar_0x8004; + sMoveRelearnerStruct->moveSlot = gSpecialVar_0x8005; + SetVBlankCallback(VBlankCB_MoveRelearner); + + InitMoveRelearnerBackgroundLayers(); + InitMoveRelearnerWindows(sMoveRelearnerMenuSate.showContestInfo); + CreateLearnableMovesList(); + + LoadSpriteSheet(&sMoveRelearnerSpriteSheet); + LoadSpritePalette(&sMoveRelearnerPalette); + CreateUISprites(); + + sMoveRelearnerStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearnerMenuSate.listOffset, sMoveRelearnerMenuSate.listRow); + FillPalette(RGB_BLACK, 0, 2); + SetMainCallback2(CB2_MoveRelearnerMain); +} + +static void InitMoveRelearnerBackgroundLayers(void) +{ + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sMoveRelearnerMenuBackgroundTemplates, ARRAY_COUNT(sMoveRelearnerMenuBackgroundTemplates)); + ResetAllBgsCoordinates(); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | + DISPCNT_OBJ_1D_MAP | + DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(1); + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +static void CB2_MoveRelearnerMain(void) +{ + DoMoveRelearnerMain(); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +static void FormatAndPrintText(const u8 *src) +{ + StringExpandPlaceholders(gStringVar4, src); + MoveRelearnerPrintText(gStringVar4); +} + +// See the state machine doc at the top of the file. +static void DoMoveRelearnerMain(void) +{ + switch (sMoveRelearnerStruct->state) + { + case MENU_STATE_FADE_TO_BLACK: + sMoveRelearnerStruct->state++; + HideHeartSpritesAndShowTeachMoveText(FALSE); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + break; + case MENU_STATE_WAIT_FOR_FADE: + if (!gPaletteFade.active) + { + sMoveRelearnerStruct->state = MENU_STATE_IDLE_BATTLE_MODE; + } + break; + case MENU_STATE_UNREACHABLE: + sMoveRelearnerStruct->state++; + break; + case MENU_STATE_SETUP_BATTLE_MODE: + + HideHeartSpritesAndShowTeachMoveText(FALSE); + sMoveRelearnerStruct->state++; + AddScrollArrows(); + break; + case MENU_STATE_IDLE_BATTLE_MODE: + HandleInput(FALSE); + break; + case MENU_STATE_SETUP_CONTEST_MODE: + ShowTeachMoveText(FALSE); + sMoveRelearnerStruct->state++; + AddScrollArrows(); + break; + case MENU_STATE_IDLE_CONTEST_MODE: + HandleInput(TRUE); + break; + case MENU_STATE_PRINT_TEACH_MOVE_PROMPT: + if (!MoveRelearnerRunTextPrinters()) + { + MoveRelearnerCreateYesNoMenu(); + sMoveRelearnerStruct->state++; + } + break; + case MENU_STATE_TEACH_MOVE_CONFIRM: + { + s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); + + if (selection == 0) + { + if (GiveMoveToMon(&gPlayerParty[sMoveRelearnerStruct->partyMon], GetCurrentSelectedMove()) != 0xFFFF) + { + FormatAndPrintText(gText_MoveRelearnerPkmnLearnedMove); + gSpecialVar_0x8004 = TRUE; + sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; + } + else + { + sMoveRelearnerStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; + } + } + else if (selection == MENU_B_PRESSED || selection == 1) + { + if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + } + break; + case MENU_STATE_PRINT_GIVE_UP_PROMPT: + if (!MoveRelearnerRunTextPrinters()) + { + MoveRelearnerCreateYesNoMenu(); + sMoveRelearnerStruct->state++; + } + break; + case MENU_STATE_GIVE_UP_CONFIRM: + { + s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); + + if (selection == 0) + { + gSpecialVar_0x8004 = FALSE; + sMoveRelearnerStruct->state = MENU_STATE_FADE_AND_RETURN; + } + else if (selection == -1 || selection == 1) + { + if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + } + break; + case MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT: + FormatAndPrintText(gText_MoveRelearnerPkmnTryingToLearnMove); + sMoveRelearnerStruct->state++; + break; + case MENU_STATE_WAIT_FOR_TRYING_TO_LEARN: + if (!MoveRelearnerRunTextPrinters()) + { + MoveRelearnerCreateYesNoMenu(); + sMoveRelearnerStruct->state = MENU_STATE_CONFIRM_DELETE_OLD_MOVE; + } + break; + case MENU_STATE_CONFIRM_DELETE_OLD_MOVE: + { + s8 var = Menu_ProcessInputNoWrapClearOnChoose(); + + if (var == 0) + { + FormatAndPrintText(gText_MoveRelearnerWhichMoveToForget); + sMoveRelearnerStruct->state = MENU_STATE_PRINT_WHICH_MOVE_PROMPT; + } + else if (var == -1 || var == 1) + { + sMoveRelearnerStruct->state = MENU_STATE_PRINT_STOP_TEACHING; + } + } + break; + case MENU_STATE_PRINT_STOP_TEACHING: + StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); + FormatAndPrintText(gText_MoveRelearnerStopTryingToTeachMove); + sMoveRelearnerStruct->state++; + break; + case MENU_STATE_WAIT_FOR_STOP_TEACHING: + if (!MoveRelearnerRunTextPrinters()) + { + MoveRelearnerCreateYesNoMenu(); + sMoveRelearnerStruct->state++; + } + break; + case MENU_STATE_CONFIRM_STOP_TEACHING: + { + s8 var = Menu_ProcessInputNoWrapClearOnChoose(); + + if (var == 0) + { + sMoveRelearnerStruct->state = MENU_STATE_CHOOSE_SETUP_STATE; + } + else if (var == MENU_B_PRESSED || var == 1) + { + // What's the point? It gets set to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT, anyway. + if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + sMoveRelearnerStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; + } + } + break; + case MENU_STATE_CHOOSE_SETUP_STATE: + if (!MoveRelearnerRunTextPrinters()) + { + FillWindowPixelBuffer(3, 0x11); + if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + break; + case MENU_STATE_PRINT_WHICH_MOVE_PROMPT: + if (!MoveRelearnerRunTextPrinters()) + { + sMoveRelearnerStruct->state = MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + } + break; + case MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN: + if (!gPaletteFade.active) + { + ShowSelectMovePokemonSummaryScreen(gPlayerParty, sMoveRelearnerStruct->partyMon, gPlayerPartyCount - 1, CB2_InitLearnMoveReturnFromSelectMove, GetCurrentSelectedMove()); + FreeMoveRelearnerResources(); + } + break; + case 21: + if (!MoveRelearnerRunTextPrinters()) + { + sMoveRelearnerStruct->state = MENU_STATE_FADE_AND_RETURN; + } + break; + case 22: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + break; + case MENU_STATE_FADE_AND_RETURN: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + sMoveRelearnerStruct->state++; + break; + case MENU_STATE_RETURN_TO_FIELD: + if (!gPaletteFade.active) + { + FreeMoveRelearnerResources(); + SetMainCallback2(CB2_ReturnToField); + } + break; + case MENU_STATE_FADE_FROM_SUMMARY_SCREEN: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + sMoveRelearnerStruct->state++; + if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + { + HideHeartSpritesAndShowTeachMoveText(TRUE); + } + else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + { + ShowTeachMoveText(TRUE); + } + RemoveScrollArrows(); + CopyWindowToVram(3, 2); + break; + case MENU_STATE_TRY_OVERWRITE_MOVE: + if (!gPaletteFade.active) + { + if (sMoveRelearnerStruct->moveSlot == MAX_MON_MOVES) + { + sMoveRelearnerStruct->state = MENU_STATE_PRINT_STOP_TEACHING; + } + else + { + u16 moveId = GetMonData(&gPlayerParty[sMoveRelearnerStruct->partyMon], MON_DATA_MOVE1 + sMoveRelearnerStruct->moveSlot); + + StringCopy(gStringVar3, gMoveNames[moveId]); + RemoveMonPPBonus(&gPlayerParty[sMoveRelearnerStruct->partyMon], sMoveRelearnerStruct->moveSlot); + SetMonMoveSlot(&gPlayerParty[sMoveRelearnerStruct->partyMon], GetCurrentSelectedMove(), sMoveRelearnerStruct->moveSlot); + StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); + FormatAndPrintText(gText_MoveRelearnerAndPoof); + sMoveRelearnerStruct->state = MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE; + gSpecialVar_0x8004 = TRUE; + } + } + break; + case MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE: + if (!MoveRelearnerRunTextPrinters()) + { + FormatAndPrintText(gText_MoveRelearnerPkmnForgotMoveAndLearnedNew); + sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; + PlayFanfare(MUS_FANFA1); + } + break; + case MENU_STATE_PRINT_TEXT_THEN_FANFARE: + if (!MoveRelearnerRunTextPrinters()) + { + PlayFanfare(MUS_FANFA1); + sMoveRelearnerStruct->state = MENU_STATE_WAIT_FOR_FANFARE; + } + break; + case MENU_STATE_WAIT_FOR_FANFARE: + if (IsFanfareTaskInactive()) + { + sMoveRelearnerStruct->state = MENU_STATE_WAIT_FOR_A_BUTTON; + } + break; + case MENU_STATE_WAIT_FOR_A_BUTTON: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sMoveRelearnerStruct->state = MENU_STATE_FADE_AND_RETURN; + } + break; + } +} + +static void FreeMoveRelearnerResources(void) +{ + RemoveScrollArrows(); + DestroyListMenuTask(sMoveRelearnerStruct->moveListMenuTask, &sMoveRelearnerMenuSate.listOffset, &sMoveRelearnerMenuSate.listRow); + FreeAllWindowBuffers(); + FREE_AND_SET_NULL(sMoveRelearnerStruct); + ResetSpriteData(); + FreeAllSpritePalettes(); +} + +// Note: The hearts are already made invisible by MoveRelearnerShowHideHearts, +// which is called whenever the cursor in either list changes. +static void HideHeartSpritesAndShowTeachMoveText(bool8 onlyHideSprites) +{ + s32 i; + + for (i = 0; i < 16; i++) + { + gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = TRUE; + } + + if (!onlyHideSprites) + { + StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); + FillWindowPixelBuffer(3, 0x11); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); + } +} + +static void HandleInput(bool8 showContest) +{ + s32 itemId = ListMenu_ProcessInput(sMoveRelearnerStruct->moveListMenuTask); + ListMenuGetScrollAndRow(sMoveRelearnerStruct->moveListMenuTask, &sMoveRelearnerMenuSate.listOffset, &sMoveRelearnerMenuSate.listRow); + + switch (itemId) + { + case LIST_NOTHING_CHOSEN: + if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState()) + { + break; + } + + PlaySE(SE_SELECT); + + if (showContest == FALSE) + { + PutWindowTilemap(1); + sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + sMoveRelearnerMenuSate.showContestInfo = TRUE; + } + else + { + PutWindowTilemap(0); + sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + sMoveRelearnerMenuSate.showContestInfo = FALSE; + } + + schedule_bg_copy_tilemap_to_vram(1); + MoveRelearnerShowHideHearts(GetCurrentSelectedMove()); + break; + case LIST_CANCEL: + PlaySE(SE_SELECT); + RemoveScrollArrows(); + sMoveRelearnerStruct->state = MENU_STATE_PRINT_GIVE_UP_PROMPT; + StringExpandPlaceholders(gStringVar4, gText_MoveRelearnerGiveUp); + MoveRelearnerPrintText(gStringVar4); + break; + default: + PlaySE(SE_SELECT); + RemoveScrollArrows(); + sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEACH_MOVE_PROMPT; + StringCopy(gStringVar2, gMoveNames[itemId]); + StringExpandPlaceholders(gStringVar4, gText_MoveRelearnerTeachMoveConfirm); + MoveRelearnerPrintText(gStringVar4); + break; + } +} + +static s32 GetCurrentSelectedMove(void) +{ + return sMoveRelearnerStruct->menuItems[sMoveRelearnerMenuSate.listRow + sMoveRelearnerMenuSate.listOffset].id; +} + +// Theory: This used to make the heart sprites visible again (i.e. +// this was the inverse of HideHeartsAndShowTeachMoveText), but the +// code was commented out. The bool argument would have been named +// "justShowHearts." The code for showing/hiding the heards was moved +// to MoveRelearnerShowHideHearts, which is called whenever a new move is +// selected and whenever the display mode changes. +static void ShowTeachMoveText(bool8 shouldDoNothingInstead) +{ + if (shouldDoNothingInstead == FALSE) + { + StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); + FillWindowPixelBuffer(3, 0x11); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); + } +} + +static void CreateUISprites(void) +{ + int i; + + sMoveRelearnerStruct->moveDisplayArrowTask = 0xFF; + sMoveRelearnerStruct->moveListScrollArrowTask = 0xFF; + AddScrollArrows(); + + // These are the appeal hearts. + for (i = 0; i < 8; i++) + { + sMoveRelearnerStruct->heartSpriteIds[i] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); + } + + // These are the jam harts. + // The animation is used to toggle between full/empty heart sprites. + for (i = 0; i < 8; i++) + { + sMoveRelearnerStruct->heartSpriteIds[i + 8] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 52, 0); + StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i + 8]], 2); + } + + for (i = 0; i < 16; i++) + { + gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = TRUE; + } +} + +static void AddScrollArrows(void) +{ + if (sMoveRelearnerStruct->moveDisplayArrowTask == 0xFF) + { + sMoveRelearnerStruct->moveDisplayArrowTask = AddScrollIndicatorArrowPair(&sDisplayModeArrowsTemplate, &sMoveRelearnerStruct->scrollOffset); + } + + if (sMoveRelearnerStruct->moveListScrollArrowTask == 0xFF) + { + gTempScrollArrowTemplate = sMoveListScrollArrowsTemplate; + gTempScrollArrowTemplate.fullyDownThreshold = sMoveRelearnerStruct->numMenuChoices - sMoveRelearnerStruct->numToShowAtOnce; + sMoveRelearnerStruct->moveListScrollArrowTask = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sMoveRelearnerMenuSate.listOffset); + } +} + +static void RemoveScrollArrows(void) +{ + if (sMoveRelearnerStruct->moveDisplayArrowTask != 0xFF) + { + RemoveScrollIndicatorArrowPair(sMoveRelearnerStruct->moveDisplayArrowTask); + sMoveRelearnerStruct->moveDisplayArrowTask = 0xFF; + } + + if (sMoveRelearnerStruct->moveListScrollArrowTask != 0xFF) + { + RemoveScrollIndicatorArrowPair(sMoveRelearnerStruct->moveListScrollArrowTask); + sMoveRelearnerStruct->moveListScrollArrowTask = 0xFF; + } +} + +static void CreateLearnableMovesList(void) +{ + s32 i; + u8 nickname[POKEMON_NAME_LENGTH + 1]; + + sMoveRelearnerStruct->numMenuChoices = GetMoveRelearnerMoves(&gPlayerParty[sMoveRelearnerStruct->partyMon], sMoveRelearnerStruct->movesToLearn); + + for (i = 0; i < sMoveRelearnerStruct->numMenuChoices; i++) + { + sMoveRelearnerStruct->menuItems[i].name = gMoveNames[sMoveRelearnerStruct->movesToLearn[i]]; + sMoveRelearnerStruct->menuItems[i].id = sMoveRelearnerStruct->movesToLearn[i]; + } + + GetMonData(&gPlayerParty[sMoveRelearnerStruct->partyMon], MON_DATA_NICKNAME, nickname); + StringCopy10(gStringVar1, nickname); + sMoveRelearnerStruct->menuItems[sMoveRelearnerStruct->numMenuChoices].name = gText_Cancel; + sMoveRelearnerStruct->menuItems[sMoveRelearnerStruct->numMenuChoices].id = LIST_CANCEL; + sMoveRelearnerStruct->numMenuChoices++; + sMoveRelearnerStruct->numToShowAtOnce = LoadMoveRelearnerMovesList(sMoveRelearnerStruct->menuItems, sMoveRelearnerStruct->numMenuChoices); +} + +void MoveRelearnerShowHideHearts(s32 moveId) +{ + u16 numHearts; + u16 i; + + if (!sMoveRelearnerMenuSate.showContestInfo || moveId == LIST_CANCEL) + { + for (i = 0; i < 16; i++) + { + gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = TRUE; + } + } + else + { + numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].appeal / 10); + + if (numHearts == 0xFF) + { + numHearts = 0; + } + + for (i = 0; i < 8; i++) + { + if (i < numHearts) + { + StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i]], 1); + } + else + { + StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i]], 0); + } + gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = FALSE; + } + + numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].jam / 10); + + if (numHearts == 0xFF) + { + numHearts = 0; + } + + for (i = 0; i < 8; i++) + { + if (i < numHearts) + { + StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i + 8]], 3); + } + else + { + StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i + 8]], 2); + } + gSprites[sMoveRelearnerStruct->heartSpriteIds[i + 8]].invisible = FALSE; + } + } +} diff --git a/src/move_tutor.c b/src/move_tutor.c deleted file mode 100644 index 89291a008..000000000 --- a/src/move_tutor.c +++ /dev/null @@ -1,976 +0,0 @@ -#include "global.h" -#include "main.h" -#include "battle.h" -#include "bg.h" -#include "contest_effect.h" -#include "data2.h" -#include "event_data.h" -#include "field_screen_effect.h" -#include "gpu_regs.h" -#include "move_tutor.h" -#include "list_menu.h" -#include "alloc.h" -#include "menu.h" -#include "menu_helpers.h" -#include "overworld.h" -#include "palette.h" -#include "pokemon_summary_screen.h" -#include "pokenav.h" -#include "script.h" -#include "sound.h" -#include "sprite.h" -#include "string_util.h" -#include "strings.h" -#include "task.h" -#include "constants/rgb.h" -#include "constants/songs.h" - -/* - * Move tutor state machine - * ------------------------ - * - * Entry point: TeachMoveTutorMove - * - * TeachMoveTutorMove - * Task_WaitForFadeOut - * CB2_InitLearnMove - * - Creates moveDisplayArrowTask to listen to right/left buttons. - * - Creates moveListScrollArrowTask to listen to up/down buttons. - * - Whenever the selected move changes (and once on init), the MoveTutorCursorCallback - * is called (see gMoveTutorMovesListTemplate). That callback will reload the contest - * display and battle display windows for the new move. Both are always loaded in - * memory, but only the currently active one is copied to VRAM. The exception to this - * is the appeal and jam hearts, which are sprites. MoveTutorShowHideHearts is called - * while reloading the contest display to control them. - * DoMoveTutorMain: MENU_STATE_FADE_TO_BLACK - * DoMoveTutorMain: MENU_STATE_WAIT_FOR_FADE - * - Go to MENU_STATE_IDLE_BATTLE_MODE - * - * DoMoveTutorMain: MENU_STATE_SETUP_BATTLE_MODE - * DoMoveTutorMain: MENU_STATE_IDLE_BATTLE_MODE - * - If the player selected a move (pressed A), go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. - * - If the player cancelled (pressed B), go to MENU_STATE_PRINT_GIVE_UP_PROMPT. - * - If the player pressed left or right, swap the move display window to contest mode, - * and go to MENU_STATE_SETUP_CONTEST_MODE. - * - * DoMoveTutorMain: MENU_STATE_SETUP_CONTEST_MODE - * DoMoveTutorMain: MENU_STATE_IDLE_CONTEST_MODE - * - If the player selected a move, go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. - * - If the player cancelled, go to MENU_STATE_PRINT_GIVE_UP_PROMPT - * - If the player pressed left or right, swap the move display window to battle mode, - * and go to MENU_STATE_SETUP_BATTLE_MODE. - * - * DoMoveTutorMain: MENU_STATE_PRINT_TEACH_MOVE_PROMPT - * DoMoveTutorMain: MENU_STATE_TEACH_MOVE_CONFIRM - * - Wait for the player to confirm. - * - If cancelled, go to either MENU_STATE_SETUP_BATTLE_MODE or MENU_STATE_SETUP_CONTEST_MODE. - * - If confirmed and the pokemon had an empty move slot, set VAR_0x8004 to TRUE and go to - * MENU_STATE_PRINT_TEXT_THEN_FANFARE. - * - If confirmed and the pokemon doesn't have an empty move slot, go to - * MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. - * - * DoMoveTutorMain: MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT - * DoMoveTutorMain: MENU_STATE_WAIT_FOR_TRYING_TO_LEARN - * DoMoveTutorMain: MENU_STATE_CONFIRM_DELETE_OLD_MOVE - * - If the player confirms, go to MENU_STATE_PRINT_WHICH_MOVE_PROMPT. - * - If the player cancels, go to MENU_STATE_PRINT_STOP_TEACHING - * - * DoMoveTutorMain: MENU_STATE_PRINT_STOP_TEACHING - * DoMoveTutorMain: MENU_STATE_WAIT_FOR_STOP_TEACHING - * DoMoveTutorMain: MENU_STATE_CONFIRM_STOP_TEACHING - * - If the player confirms, go to MENU_STATE_CHOOSE_SETUP_STATE. - * - If the player cancels, go back to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. - * - * DoMoveTutorMain: MENU_STATE_PRINT_WHICH_MOVE_PROMPT - * DoMoveTutorMain: MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN - * - Go to ShowSelectMovePokemonSummaryScreen. When done, control returns to - * CB2_InitLearnMoveReturnFromSelectMove. - * - * DoMoveTutorMain: MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE - * DoMoveTutorMain: MENU_STATE_PRINT_TEXT_THEN_FANFARE - * DoMoveTutorMain: MENU_STATE_WAIT_FOR_FANFARE - * DoMoveTutorMain: MENU_STATE_WAIT_FOR_A_BUTTON - * DoMoveTutorMain: MENU_STATE_FADE_AND_RETURN - * DoMoveTutorMain: MENU_STATE_RETURN_TO_FIELD - * - Clean up and go to CB2_ReturnToField. - * - * DoMoveTutorMain: MENU_STATE_PRINT_GIVE_UP_PROMPT - * DoMoveTutorMain: MENU_STATE_GIVE_UP_CONFIRM - * - If the player confirms, go to MENU_STATE_FADE_AND_RETURN, and set VAR_0x8004 to FALSE. - * - If the player cancels, go to either MENU_STATE_SETUP_BATTLE_MODE or - * MENU_STATE_SETUP_CONTEST_MODE. - * - * CB2_InitLearnMoveReturnFromSelectMove: - * - Do most of the same stuff as CB2_InitLearnMove. - * DoMoveTutorMain: MENU_STATE_FADE_FROM_SUMMARY_SCREEN - * DoMoveTutorMain: MENU_STATE_TRY_OVERWRITE_MOVE - * - If any of the pokemon's existing moves were chosen, overwrite the move and - * go to MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE and set VAR_0x8004 to TRUE. - * - If the chosen move is the one the player selected before the summary screen, - * go to MENU_STATE_PRINT_STOP_TEACHING. - * - */ - -#define MENU_STATE_FADE_TO_BLACK 0 -#define MENU_STATE_WAIT_FOR_FADE 1 -#define MENU_STATE_UNREACHABLE 2 -#define MENU_STATE_SETUP_BATTLE_MODE 3 -#define MENU_STATE_IDLE_BATTLE_MODE 4 -#define MENU_STATE_SETUP_CONTEST_MODE 5 -#define MENU_STATE_IDLE_CONTEST_MODE 6 -// State 7 is skipped. -#define MENU_STATE_PRINT_TEACH_MOVE_PROMPT 8 -#define MENU_STATE_TEACH_MOVE_CONFIRM 9 -// States 10 and 11 are skipped. -#define MENU_STATE_PRINT_GIVE_UP_PROMPT 12 -#define MENU_STATE_GIVE_UP_CONFIRM 13 -#define MENU_STATE_FADE_AND_RETURN 14 -#define MENU_STATE_RETURN_TO_FIELD 15 -#define MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT 16 -#define MENU_STATE_WAIT_FOR_TRYING_TO_LEARN 17 -#define MENU_STATE_CONFIRM_DELETE_OLD_MOVE 18 -#define MENU_STATE_PRINT_WHICH_MOVE_PROMPT 19 -#define MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN 20 -// States 21, 22, and 23 are skipped. -#define MENU_STATE_PRINT_STOP_TEACHING 24 -#define MENU_STATE_WAIT_FOR_STOP_TEACHING 25 -#define MENU_STATE_CONFIRM_STOP_TEACHING 26 -#define MENU_STATE_CHOOSE_SETUP_STATE 27 -#define MENU_STATE_FADE_FROM_SUMMARY_SCREEN 28 -#define MENU_STATE_TRY_OVERWRITE_MOVE 29 -#define MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE 30 -#define MENU_STATE_PRINT_TEXT_THEN_FANFARE 31 -#define MENU_STATE_WAIT_FOR_FANFARE 32 -#define MENU_STATE_WAIT_FOR_A_BUTTON 33 - -// The different versions of hearts are selected using animation -// commands. -#define APPEAL_HEART_EMPTY 0 -#define APPEAL_HEART_FULL 1 -#define JAM_HEART_EMPTY 2 -#define JAM_HEART_FULL 3 - -static EWRAM_DATA struct -{ - u8 state; - u8 heartSpriteIds[16]; /*0x001*/ - u16 movesToLearn[4]; /*0x012*/ - u8 filler1A[0x44 - 0x1A]; /*0x01A*/ - u8 partyMon; /*0x044*/ - u8 moveSlot; /*0x045*/ - struct ListMenuItem menuItems[20]; /*0x048*/ - u8 fillerE8[0x110 - 0xE8]; /*0x0E8*/ - u8 numMenuChoices; /*0x110*/ - u8 numToShowAtOnce; /*0x111*/ - u8 moveListMenuTask; /*0x112*/ - u8 moveListScrollArrowTask; /*0x113*/ - u8 moveDisplayArrowTask; /*0x114*/ - u16 scrollOffset; /*0x116*/ -} *sMoveTutorStruct = {0}; - -static EWRAM_DATA struct { - u16 listOffset; - u16 listRow; - bool8 showContestInfo; -} sMoveTutorMenuSate = {0}; - -static const u16 sMoveTutorPaletteData[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); - -// The arrow sprites in this spritesheet aren't used. The scroll-arrow system provides its own -// arrow sprites. -static const u8 sMoveTutorSpriteSheetData[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); - -static const struct OamData sHeartSpriteOamData = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -static const struct OamData sUnusedOam1 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_V_RECTANGLE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -static const struct OamData sUnusedOam2 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -static const struct SpriteSheet sMoveTutorSpriteSheet = -{ - .data = sMoveTutorSpriteSheetData, - .size = 0x180, - .tag = 5525 -}; - -static const struct SpritePalette sMoveTutorPalette = -{ - .data = sMoveTutorPaletteData, - .tag = 5526 -}; - -static const struct ScrollArrowsTemplate sDisplayModeArrowsTemplate = -{ - .firstArrowType = SCROLL_ARROW_LEFT, - .firstX = 27, - .firstY = 16, - .secondArrowType = SCROLL_ARROW_RIGHT, - .secondX = 117, - .secondY = 16, - .fullyUpThreshold = -1, - .fullyDownThreshold = -1, - .tileTag = 5325, - .palTag = 5325, - .palNum = 0, -}; - -static const struct ScrollArrowsTemplate sMoveListScrollArrowsTemplate = -{ - .firstArrowType = SCROLL_ARROW_UP, - .firstX = 192, - .firstY = 8, - .secondArrowType = SCROLL_ARROW_DOWN, - .secondX = 192, - .secondY = 104, - .fullyUpThreshold = 0, - .fullyDownThreshold = 0, - .tileTag = 5425, - .palTag = 5425, - .palNum = 0, -}; - -static const union AnimCmd sHeartSprite_AppealEmptyFrame[] = -{ - ANIMCMD_FRAME(8, 5, FALSE, FALSE), - ANIMCMD_END -}; - -static const union AnimCmd sHeartSprite_AppealFullFrame[] = -{ - ANIMCMD_FRAME(9, 5, FALSE, FALSE), - ANIMCMD_END -}; - -static const union AnimCmd sHeartSprite_JamEmptyFrame[] = -{ - ANIMCMD_FRAME(10, 5, FALSE, FALSE), - ANIMCMD_END -}; - -static const union AnimCmd sHeartSprite_JamFullFrame[] = -{ - ANIMCMD_FRAME(11, 5, FALSE, FALSE), - ANIMCMD_END -}; - -static const union AnimCmd *const sHeartSpriteAnimationCommands[] = -{ - [APPEAL_HEART_EMPTY] = sHeartSprite_AppealEmptyFrame, - [APPEAL_HEART_FULL] = sHeartSprite_AppealFullFrame, - [JAM_HEART_EMPTY] = sHeartSprite_JamEmptyFrame, - [JAM_HEART_FULL] = sHeartSprite_JamFullFrame, -}; - -static const struct SpriteTemplate sConstestMoveHeartSprite = -{ - .tileTag = 5525, - .paletteTag = 5526, - .oam = &sHeartSpriteOamData, - .anims = sHeartSpriteAnimationCommands, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy -}; - -static const struct BgTemplate sMoveTutorMenuBackgroundTemplates[] = -{ - { - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 31, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, - }, - { - .bg = 1, - .charBaseIndex = 0, - .mapBaseIndex = 30, - .screenSize = 0, - .paletteMode = 0, - .priority = 1, - .baseTile = 0, - }, -}; - -static void DoMoveTutorMain(void); -static void CreateLearnableMovesList(void); -static void CreateUISprites(void); -static void CB2_MoveTutorMain(void); -static void Task_WaitForFadeOut(u8 taskId); -static void CB2_InitLearnMove(void); -static void CB2_InitLearnMoveReturnFromSelectMove(void); -static void InitMoveTutorBackgroundLayers(void); -static void AddScrollArrows(void); -static void HandleInput(u8); -static void ShowTeachMoveText(u8); -static s32 GetCurrentSelectedMove(void); -static void FreeMoveTutorResources(void); -static void RemoveScrollArrows(void); -static void HideHeartSpritesAndShowTeachMoveText(bool8); - -static void VBlankCB_MoveTutor(void) -{ - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); -} - -// Script arguments: The pokemon to teach is in VAR_0x8004 -void TeachMoveTutorMove(void) -{ - ScriptContext2_Enable(); - CreateTask(Task_WaitForFadeOut, 10); - // Fade to black - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); -} - -static void Task_WaitForFadeOut(u8 taskId) -{ - if (!gPaletteFade.active) - { - SetMainCallback2(CB2_InitLearnMove); - gFieldCallback = FieldCallback_ReturnToEventScript2; - DestroyTask(taskId); - } -} - -static void CB2_InitLearnMove(void) -{ - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - sMoveTutorStruct = AllocZeroed(sizeof(*sMoveTutorStruct)); - sMoveTutorStruct->partyMon = gSpecialVar_0x8004; - SetVBlankCallback(VBlankCB_MoveTutor); - - InitMoveTutorBackgroundLayers(); - InitMoveTutorWindows(FALSE); - - sMoveTutorMenuSate.listOffset = 0; - sMoveTutorMenuSate.listRow = 0; - sMoveTutorMenuSate.showContestInfo = FALSE; - - CreateLearnableMovesList(); - - LoadSpriteSheet(&sMoveTutorSpriteSheet); - LoadSpritePalette(&sMoveTutorPalette); - CreateUISprites(); - - sMoveTutorStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveTutorMenuSate.listOffset, sMoveTutorMenuSate.listRow); - FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(CB2_MoveTutorMain); -} - -static void CB2_InitLearnMoveReturnFromSelectMove(void) -{ - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - sMoveTutorStruct = AllocZeroed(sizeof(*sMoveTutorStruct)); - sMoveTutorStruct->state = MENU_STATE_FADE_FROM_SUMMARY_SCREEN; - sMoveTutorStruct->partyMon = gSpecialVar_0x8004; - sMoveTutorStruct->moveSlot = gSpecialVar_0x8005; - SetVBlankCallback(VBlankCB_MoveTutor); - - InitMoveTutorBackgroundLayers(); - InitMoveTutorWindows(sMoveTutorMenuSate.showContestInfo); - CreateLearnableMovesList(); - - LoadSpriteSheet(&sMoveTutorSpriteSheet); - LoadSpritePalette(&sMoveTutorPalette); - CreateUISprites(); - - sMoveTutorStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveTutorMenuSate.listOffset, sMoveTutorMenuSate.listRow); - FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(CB2_MoveTutorMain); -} - -static void InitMoveTutorBackgroundLayers(void) -{ - ResetVramOamAndBgCntRegs(); - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sMoveTutorMenuBackgroundTemplates, ARRAY_COUNT(sMoveTutorMenuBackgroundTemplates)); - ResetAllBgsCoordinates(); - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | - DISPCNT_OBJ_1D_MAP | - DISPCNT_OBJ_ON); - ShowBg(0); - ShowBg(1); - SetGpuReg(REG_OFFSET_BLDCNT, 0); -} - -static void CB2_MoveTutorMain(void) -{ - DoMoveTutorMain(); - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); - UpdatePaletteFade(); -} - -static void FormatAndPrintText(const u8 *src) -{ - StringExpandPlaceholders(gStringVar4, src); - MoveTutorPrintText(gStringVar4); -} - -// See the state machine doc at the top of the file. -static void DoMoveTutorMain(void) -{ - switch (sMoveTutorStruct->state) - { - case MENU_STATE_FADE_TO_BLACK: - sMoveTutorStruct->state++; - HideHeartSpritesAndShowTeachMoveText(FALSE); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - break; - case MENU_STATE_WAIT_FOR_FADE: - if (!gPaletteFade.active) - { - sMoveTutorStruct->state = MENU_STATE_IDLE_BATTLE_MODE; - } - break; - case MENU_STATE_UNREACHABLE: - sMoveTutorStruct->state++; - break; - case MENU_STATE_SETUP_BATTLE_MODE: - - HideHeartSpritesAndShowTeachMoveText(FALSE); - sMoveTutorStruct->state++; - AddScrollArrows(); - break; - case MENU_STATE_IDLE_BATTLE_MODE: - HandleInput(FALSE); - break; - case MENU_STATE_SETUP_CONTEST_MODE: - ShowTeachMoveText(FALSE); - sMoveTutorStruct->state++; - AddScrollArrows(); - break; - case MENU_STATE_IDLE_CONTEST_MODE: - HandleInput(TRUE); - break; - case MENU_STATE_PRINT_TEACH_MOVE_PROMPT: - if (!MoveTutorRunTextPrinters()) - { - MoveTutorCreateYesNoMenu(); - sMoveTutorStruct->state++; - } - break; - case MENU_STATE_TEACH_MOVE_CONFIRM: - { - s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); - - if (selection == 0) - { - if (GiveMoveToMon(&gPlayerParty[sMoveTutorStruct->partyMon], GetCurrentSelectedMove()) != 0xFFFF) - { - FormatAndPrintText(gText_MoveTutorPkmnLearnedMove); - gSpecialVar_0x8004 = TRUE; - sMoveTutorStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; - } - else - { - sMoveTutorStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; - } - } - else if (selection == MENU_B_PRESSED || selection == 1) - { - if (sMoveTutorMenuSate.showContestInfo == FALSE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; - } - else if (sMoveTutorMenuSate.showContestInfo == TRUE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; - } - } - } - break; - case MENU_STATE_PRINT_GIVE_UP_PROMPT: - if (!MoveTutorRunTextPrinters()) - { - MoveTutorCreateYesNoMenu(); - sMoveTutorStruct->state++; - } - break; - case MENU_STATE_GIVE_UP_CONFIRM: - { - s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); - - if (selection == 0) - { - gSpecialVar_0x8004 = FALSE; - sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; - } - else if (selection == -1 || selection == 1) - { - if (sMoveTutorMenuSate.showContestInfo == FALSE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; - } - else if (sMoveTutorMenuSate.showContestInfo == TRUE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; - } - } - } - break; - case MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT: - FormatAndPrintText(gText_MoveTutorPkmnTryingToLearnMove); - sMoveTutorStruct->state++; - break; - case MENU_STATE_WAIT_FOR_TRYING_TO_LEARN: - if (!MoveTutorRunTextPrinters()) - { - MoveTutorCreateYesNoMenu(); - sMoveTutorStruct->state = MENU_STATE_CONFIRM_DELETE_OLD_MOVE; - } - break; - case MENU_STATE_CONFIRM_DELETE_OLD_MOVE: - { - s8 var = Menu_ProcessInputNoWrapClearOnChoose(); - - if (var == 0) - { - FormatAndPrintText(gText_MoveTutorWhichMoveToForget); - sMoveTutorStruct->state = MENU_STATE_PRINT_WHICH_MOVE_PROMPT; - } - else if (var == -1 || var == 1) - { - sMoveTutorStruct->state = MENU_STATE_PRINT_STOP_TEACHING; - } - } - break; - case MENU_STATE_PRINT_STOP_TEACHING: - StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); - FormatAndPrintText(gText_MoveTutorStopTryingToTeachMove); - sMoveTutorStruct->state++; - break; - case MENU_STATE_WAIT_FOR_STOP_TEACHING: - if (!MoveTutorRunTextPrinters()) - { - MoveTutorCreateYesNoMenu(); - sMoveTutorStruct->state++; - } - break; - case MENU_STATE_CONFIRM_STOP_TEACHING: - { - s8 var = Menu_ProcessInputNoWrapClearOnChoose(); - - if (var == 0) - { - sMoveTutorStruct->state = MENU_STATE_CHOOSE_SETUP_STATE; - } - else if (var == MENU_B_PRESSED || var == 1) - { - // What's the point? It gets set to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT, anyway. - if (sMoveTutorMenuSate.showContestInfo == FALSE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; - } - else if (sMoveTutorMenuSate.showContestInfo == TRUE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; - } - sMoveTutorStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; - } - } - break; - case MENU_STATE_CHOOSE_SETUP_STATE: - if (!MoveTutorRunTextPrinters()) - { - FillWindowPixelBuffer(3, 0x11); - if (sMoveTutorMenuSate.showContestInfo == FALSE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; - } - else if (sMoveTutorMenuSate.showContestInfo == TRUE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; - } - } - break; - case MENU_STATE_PRINT_WHICH_MOVE_PROMPT: - if (!MoveTutorRunTextPrinters()) - { - sMoveTutorStruct->state = MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - } - break; - case MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN: - if (!gPaletteFade.active) - { - ShowSelectMovePokemonSummaryScreen(gPlayerParty, sMoveTutorStruct->partyMon, gPlayerPartyCount - 1, CB2_InitLearnMoveReturnFromSelectMove, GetCurrentSelectedMove()); - FreeMoveTutorResources(); - } - break; - case 21: - if (!MoveTutorRunTextPrinters()) - { - sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; - } - break; - case 22: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - break; - case MENU_STATE_FADE_AND_RETURN: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sMoveTutorStruct->state++; - break; - case MENU_STATE_RETURN_TO_FIELD: - if (!gPaletteFade.active) - { - FreeMoveTutorResources(); - SetMainCallback2(CB2_ReturnToField); - } - break; - case MENU_STATE_FADE_FROM_SUMMARY_SCREEN: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - sMoveTutorStruct->state++; - if (sMoveTutorMenuSate.showContestInfo == FALSE) - { - HideHeartSpritesAndShowTeachMoveText(TRUE); - } - else if (sMoveTutorMenuSate.showContestInfo == TRUE) - { - ShowTeachMoveText(TRUE); - } - RemoveScrollArrows(); - CopyWindowToVram(3, 2); - break; - case MENU_STATE_TRY_OVERWRITE_MOVE: - if (!gPaletteFade.active) - { - if (sMoveTutorStruct->moveSlot == MAX_MON_MOVES) - { - sMoveTutorStruct->state = MENU_STATE_PRINT_STOP_TEACHING; - } - else - { - u16 moveId = GetMonData(&gPlayerParty[sMoveTutorStruct->partyMon], MON_DATA_MOVE1 + sMoveTutorStruct->moveSlot); - - StringCopy(gStringVar3, gMoveNames[moveId]); - RemoveMonPPBonus(&gPlayerParty[sMoveTutorStruct->partyMon], sMoveTutorStruct->moveSlot); - SetMonMoveSlot(&gPlayerParty[sMoveTutorStruct->partyMon], GetCurrentSelectedMove(), sMoveTutorStruct->moveSlot); - StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); - FormatAndPrintText(gText_MoveTutorAndPoof); - sMoveTutorStruct->state = MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE; - gSpecialVar_0x8004 = TRUE; - } - } - break; - case MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE: - if (!MoveTutorRunTextPrinters()) - { - FormatAndPrintText(gText_MoveTutorPkmnForgotMoveAndLearnedNew); - sMoveTutorStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; - PlayFanfare(MUS_FANFA1); - } - break; - case MENU_STATE_PRINT_TEXT_THEN_FANFARE: - if (!MoveTutorRunTextPrinters()) - { - PlayFanfare(MUS_FANFA1); - sMoveTutorStruct->state = MENU_STATE_WAIT_FOR_FANFARE; - } - break; - case MENU_STATE_WAIT_FOR_FANFARE: - if (IsFanfareTaskInactive()) - { - sMoveTutorStruct->state = MENU_STATE_WAIT_FOR_A_BUTTON; - } - break; - case MENU_STATE_WAIT_FOR_A_BUTTON: - if (gMain.newKeys & A_BUTTON) - { - PlaySE(SE_SELECT); - sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; - } - break; - } -} - -static void FreeMoveTutorResources(void) -{ - RemoveScrollArrows(); - DestroyListMenuTask(sMoveTutorStruct->moveListMenuTask, &sMoveTutorMenuSate.listOffset, &sMoveTutorMenuSate.listRow); - FreeAllWindowBuffers(); - FREE_AND_SET_NULL(sMoveTutorStruct); - ResetSpriteData(); - FreeAllSpritePalettes(); -} - -// Note: The hearts are already made invisible by MoveTutorShowHideHearts, -// which is called whenever the cursor in either list changes. -static void HideHeartSpritesAndShowTeachMoveText(bool8 onlyHideSprites) -{ - s32 i; - - for (i = 0; i < 16; i++) - { - gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; - } - - if (!onlyHideSprites) - { - StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); - AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); - } -} - -static void HandleInput(bool8 showContest) -{ - s32 itemId = ListMenu_ProcessInput(sMoveTutorStruct->moveListMenuTask); - ListMenuGetScrollAndRow(sMoveTutorStruct->moveListMenuTask, &sMoveTutorMenuSate.listOffset, &sMoveTutorMenuSate.listRow); - - switch (itemId) - { - case LIST_NOTHING_CHOSEN: - if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState()) - { - break; - } - - PlaySE(SE_SELECT); - - if (showContest == FALSE) - { - PutWindowTilemap(1); - sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; - sMoveTutorMenuSate.showContestInfo = TRUE; - } - else - { - PutWindowTilemap(0); - sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; - sMoveTutorMenuSate.showContestInfo = FALSE; - } - - schedule_bg_copy_tilemap_to_vram(1); - MoveTutorShowHideHearts(GetCurrentSelectedMove()); - break; - case LIST_CANCEL: - PlaySE(SE_SELECT); - RemoveScrollArrows(); - sMoveTutorStruct->state = MENU_STATE_PRINT_GIVE_UP_PROMPT; - StringExpandPlaceholders(gStringVar4, gText_MoveTutorGiveUp); - MoveTutorPrintText(gStringVar4); - break; - default: - PlaySE(SE_SELECT); - RemoveScrollArrows(); - sMoveTutorStruct->state = MENU_STATE_PRINT_TEACH_MOVE_PROMPT; - StringCopy(gStringVar2, gMoveNames[itemId]); - StringExpandPlaceholders(gStringVar4, gText_MoveTutorTeachMoveConfirm); - MoveTutorPrintText(gStringVar4); - break; - } -} - -static s32 GetCurrentSelectedMove(void) -{ - return sMoveTutorStruct->menuItems[sMoveTutorMenuSate.listRow + sMoveTutorMenuSate.listOffset].id; -} - -// Theory: This used to make the heart sprites visible again (i.e. -// this was the inverse of HideHeartsAndShowTeachMoveText), but the -// code was commented out. The bool argument would have been named -// "justShowHearts." The code for showing/hiding the heards was moved -// to MoveTutorShowHideHearts, which is called whenever a new move is -// selected and whenever the display mode changes. -static void ShowTeachMoveText(bool8 shouldDoNothingInstead) -{ - if (shouldDoNothingInstead == FALSE) - { - StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); - AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); - } -} - -static void CreateUISprites(void) -{ - int i; - - sMoveTutorStruct->moveDisplayArrowTask = 0xFF; - sMoveTutorStruct->moveListScrollArrowTask = 0xFF; - AddScrollArrows(); - - // These are the appeal hearts. - for (i = 0; i < 8; i++) - { - sMoveTutorStruct->heartSpriteIds[i] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); - } - - // These are the jam harts. - // The animation is used to toggle between full/empty heart sprites. - for (i = 0; i < 8; i++) - { - sMoveTutorStruct->heartSpriteIds[i + 8] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 52, 0); - StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 2); - } - - for (i = 0; i < 16; i++) - { - gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; - } -} - -static void AddScrollArrows(void) -{ - if (sMoveTutorStruct->moveDisplayArrowTask == 0xFF) - { - sMoveTutorStruct->moveDisplayArrowTask = AddScrollIndicatorArrowPair(&sDisplayModeArrowsTemplate, &sMoveTutorStruct->scrollOffset); - } - - if (sMoveTutorStruct->moveListScrollArrowTask == 0xFF) - { - gTempScrollArrowTemplate = sMoveListScrollArrowsTemplate; - gTempScrollArrowTemplate.fullyDownThreshold = sMoveTutorStruct->numMenuChoices - sMoveTutorStruct->numToShowAtOnce; - sMoveTutorStruct->moveListScrollArrowTask = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sMoveTutorMenuSate.listOffset); - } -} - -static void RemoveScrollArrows(void) -{ - if (sMoveTutorStruct->moveDisplayArrowTask != 0xFF) - { - RemoveScrollIndicatorArrowPair(sMoveTutorStruct->moveDisplayArrowTask); - sMoveTutorStruct->moveDisplayArrowTask = 0xFF; - } - - if (sMoveTutorStruct->moveListScrollArrowTask != 0xFF) - { - RemoveScrollIndicatorArrowPair(sMoveTutorStruct->moveListScrollArrowTask); - sMoveTutorStruct->moveListScrollArrowTask = 0xFF; - } -} - -static void CreateLearnableMovesList(void) -{ - s32 i; - u8 nickname[POKEMON_NAME_LENGTH + 1]; - - sMoveTutorStruct->numMenuChoices = GetMoveRelearnerMoves(&gPlayerParty[sMoveTutorStruct->partyMon], sMoveTutorStruct->movesToLearn); - - for (i = 0; i < sMoveTutorStruct->numMenuChoices; i++) - { - sMoveTutorStruct->menuItems[i].name = gMoveNames[sMoveTutorStruct->movesToLearn[i]]; - sMoveTutorStruct->menuItems[i].id = sMoveTutorStruct->movesToLearn[i]; - } - - GetMonData(&gPlayerParty[sMoveTutorStruct->partyMon], MON_DATA_NICKNAME, nickname); - StringCopy10(gStringVar1, nickname); - sMoveTutorStruct->menuItems[sMoveTutorStruct->numMenuChoices].name = gText_Cancel; - sMoveTutorStruct->menuItems[sMoveTutorStruct->numMenuChoices].id = LIST_CANCEL; - sMoveTutorStruct->numMenuChoices++; - sMoveTutorStruct->numToShowAtOnce = LoadMoveTutorMovesList(sMoveTutorStruct->menuItems, sMoveTutorStruct->numMenuChoices); -} - -void MoveTutorShowHideHearts(s32 moveId) -{ - u16 numHearts; - u16 i; - - if (!sMoveTutorMenuSate.showContestInfo || moveId == LIST_CANCEL) - { - for (i = 0; i < 16; i++) - { - gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; - } - } - else - { - numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].appeal / 10); - - if (numHearts == 0xFF) - { - numHearts = 0; - } - - for (i = 0; i < 8; i++) - { - if (i < numHearts) - { - StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i]], 1); - } - else - { - StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i]], 0); - } - gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = FALSE; - } - - numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].jam / 10); - - if (numHearts == 0xFF) - { - numHearts = 0; - } - - for (i = 0; i < 8; i++) - { - if (i < numHearts) - { - StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 3); - } - else - { - StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 2); - } - gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]].invisible = FALSE; - } - } -} diff --git a/src/strings.c b/src/strings.c index c2f476b58..bed8f4b68 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1742,15 +1742,15 @@ const u8 gText_TrainerHill2F[] = _("2F"); const u8 gText_TrainerHill3F[] = _("3F"); const u8 gText_TrainerHill4F[] = _("4F"); const u8 gText_TeachWhichMoveToPkmn[] = _("Teach which move to {STR_VAR_1}?"); -const u8 gText_MoveTutorTeachMoveConfirm[] = _("Teach {STR_VAR_2}?"); -const u8 gText_MoveTutorPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); -const u8 gText_MoveTutorPkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); -const u8 gText_MoveTutorStopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?"); -const u8 gText_MoveTutorAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); -const u8 gText_MoveTutorPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}."); +const u8 gText_MoveRelearnerTeachMoveConfirm[] = _("Teach {STR_VAR_2}?"); +const u8 gText_MoveRelearnerPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); +const u8 gText_MoveRelearnerPkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); +const u8 gText_MoveRelearnerStopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?"); +const u8 gText_MoveRelearnerAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); +const u8 gText_MoveRelearnerPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}."); const u8 gUnknown_085EF9C8[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}."); -const u8 gText_MoveTutorGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); -const u8 gText_MoveTutorWhichMoveToForget[] = _("Which move should be\nforgotten?\p"); +const u8 gText_MoveRelearnerGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); +const u8 gText_MoveRelearnerWhichMoveToForget[] = _("Which move should be\nforgotten?\p"); const u8 gText_BattleMoves2[] = _("BATTLE MOVES"); const u8 gText_ContestMoves2[] = _("CONTEST MOVES"); const u8 gUnknown_085EFA4C[] = _("TYPE/"); -- cgit v1.2.3 From 907492fd6e724d8dc2e5d2eff372be85e6f0d30c Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 4 Mar 2019 23:26:51 -0500 Subject: Split rom asm file in half The first half is ui/menu stuff, while the second half is link-related stuff. --- src/battle_script_commands.c | 14 +++++++------- src/party_menu.c | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index a53fa30f2..89c2baca9 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -54,9 +54,9 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const u8* const gBattleScriptsForMoveEffects[]; // functions -extern void sub_81D388C(struct Pokemon* mon, void* statStoreLocation); // pokenav.s -extern void sub_81D3640(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); // pokenav.s -extern void sub_81D3784(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); // pokenav.s +extern void GetMonLevelUpWindowStats(struct Pokemon* mon, void* statStoreLocation); // pokenav.s +extern void DrawLevelUpWindowPg1(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); // pokenav.s +extern void DrawLevelUpWindowPg2(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); // pokenav.s extern u8 sub_813B21C(void); #define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattlerTarget].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) @@ -6321,16 +6321,16 @@ static void sub_804F100(void) { struct StatsArray currentStats; - sub_81D388C(&gPlayerParty[gBattleStruct->expGetterMonId], ¤tStats); - sub_81D3640(0xD, gBattleResources->statsBeforeLvlUp, ¤tStats, 0xE, 0xD, 0xF); + GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], ¤tStats); + DrawLevelUpWindowPg1(0xD, gBattleResources->statsBeforeLvlUp, ¤tStats, 0xE, 0xD, 0xF); } static void sub_804F144(void) { struct StatsArray currentStats; - sub_81D388C(&gPlayerParty[gBattleStruct->expGetterMonId], ¤tStats); - sub_81D3784(0xD, ¤tStats, 0xE, 0xD, 0xF); + GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], ¤tStats); + DrawLevelUpWindowPg2(0xD, ¤tStats, 0xE, 0xD, 0xF); } static void sub_804F17C(void) diff --git a/src/party_menu.c b/src/party_menu.c index dad778b49..7e47e9ced 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -6005,7 +6005,7 @@ static void sub_81B767C(u8 taskId) s16 *arrayPtr = gUnknown_0203CEC4->data; arrayPtr[12] = sub_81B3364(); - sub_81D3640(arrayPtr[12], arrayPtr, &arrayPtr[6], 1, 2, 3); + DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], 1, 2, 3); CopyWindowToVram(arrayPtr[12], 2); schedule_bg_copy_tilemap_to_vram(2); } @@ -6014,7 +6014,7 @@ static void sub_81B76C8(u8 taskId) { s16 *arrayPtr = gUnknown_0203CEC4->data; - sub_81D3784(arrayPtr[12], &arrayPtr[6], 1, 2, 3); + DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], 1, 2, 3); CopyWindowToVram(arrayPtr[12], 2); schedule_bg_copy_tilemap_to_vram(2); } -- cgit v1.2.3 From 9bea9e1624a30980aa194b076f0324b77c76edc9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 5 Mar 2019 06:06:20 -0500 Subject: Start decompiling menu_unknown --- src/menu_unknown.c | 186 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/party_menu.c | 3 +- src/player_pc.c | 2 +- 3 files changed, 189 insertions(+), 2 deletions(-) create mode 100644 src/menu_unknown.c (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c new file mode 100644 index 000000000..21f42d264 --- /dev/null +++ b/src/menu_unknown.c @@ -0,0 +1,186 @@ +#include "global.h" +#include "alloc.h" +#include "international_string_util.h" +#include "menu.h" +#include "menu_unknown.h" +#include "player_pc.h" +#include "sound.h" +#include "strings.h" +#include "string_util.h" +#include "window.h" +#include "constants/songs.h" + +#define WINDOW_UNK_0 0 +#define WINDOW_UNK_1 1 +#define WINDOW_UNK_2 2 + +extern struct ListMenuItem *gUnknown_0203CF4C; +extern u8 gUnknown_0203CF48[3]; + +void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); + +const struct WindowTemplate gUnknown_086253E8[] = +{ + [WINDOW_UNK_0] = { + //0x08010100, + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 8, + //0x00080F02, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x8 + }, + [WINDOW_UNK_1] = { + //0x08 01 15 00, + .bg = 0, + .tilemapLeft = 21, + .tilemapTop = 1, + .width = 8, + //0x0018 0F 12, + .height = 18, + .paletteNum = 0xF, + .baseBlock = 0x18 + }, + [WINDOW_UNK_2] = { + //0x0B 01 01 00 + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 11, + //0x0018 0F 08 + .height = 8, + .paletteNum = 0xF, + .baseBlock = 0x18 + } +}; + +const u8 gUnknown_08625400[] = { + 1, 2, 3 +}; + +static const u8 sEmptyItemName[] = _(""); + +bool8 sub_81D1C44(u8 count) +{ + u32 i; + struct ListMenuItem **v1; + v1 = &gUnknown_0203CF4C; + *v1 = Alloc(count * sizeof(struct ListMenuItem) + sizeof(struct ListMenuItem)); + + if (gUnknown_0203CF4C == NULL) + return FALSE; + + for (i = 0; i < ARRAY_COUNT(gUnknown_0203CF48); i = (u8)(i + 1)) + { + gUnknown_0203CF48[i] |= 0xFF; + } + + return TRUE; +} + +u8 sub_81D1C84(u8 a0) +{ + struct WindowTemplate template; + + u8 windowId = gUnknown_0203CF48[a0]; + if (windowId == 0xFF) + { + if (a0 == WINDOW_UNK_2) + { + u32 v1; + u32 v2; + s32 v3; + + template = gUnknown_086253E8[WINDOW_UNK_2]; + v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); + template.width = v3; + gUnknown_0203CF48[WINDOW_UNK_2] = AddWindow(&template); + } + else + { + gUnknown_0203CF48[a0] = AddWindow(&gUnknown_086253E8[a0]); + } + SetStandardWindowBorderStyle(gUnknown_0203CF48[a0], 0); + } + return gUnknown_0203CF48[a0]; +} + +void sub_81D1D04(u8 a0) +{ + sub_8198070(gUnknown_0203CF48[a0], 0); + ClearWindowTilemap(gUnknown_0203CF48[a0]); + RemoveWindow(gUnknown_0203CF48[a0]); + gUnknown_0203CF48[a0] = 0xFF; +} + +u8 sub_81D1D34(u8 a0) +{ + return gUnknown_0203CF48[a0]; +} + +void sub_81D1D44(u8 windowId, s32 itemId, u8 y) +{ + u8 buffer[30]; + u16 length; + + if (itemId == LIST_CANCEL) + return; + + StringCopy(buffer, gSaveBlock1Ptr->mail[6 + itemId].playerName); + sub_81DB52C(buffer); + length = StringLength(buffer); + if (length <= 5) + ConvertInternationalString(buffer, LANGUAGE_JAPANESE); + AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, gUnknown_08625400, -1, buffer); +} + +u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) +{ + u16 i; + for (i = 0; i < page->count; i++) + { + gUnknown_0203CF4C[i].name = sEmptyItemName; + gUnknown_0203CF4C[i].id = i; + } + + gUnknown_0203CF4C[i].name = gText_Cancel2; + gUnknown_0203CF4C[i].id = LIST_CANCEL; + + gMultiuseListMenuTemplate.items = gUnknown_0203CF4C; + gMultiuseListMenuTemplate.totalItems = page->count + 1; + gMultiuseListMenuTemplate.windowId = gUnknown_0203CF48[1]; + gMultiuseListMenuTemplate.header_X = 0; + gMultiuseListMenuTemplate.item_X = 8; + gMultiuseListMenuTemplate.cursor_X = 0; + gMultiuseListMenuTemplate.maxShowed = 8; + gMultiuseListMenuTemplate.upText_Y = 9; + gMultiuseListMenuTemplate.cursorPal = 2; + gMultiuseListMenuTemplate.fillValue = 1; + gMultiuseListMenuTemplate.cursorShadowPal = 3; + gMultiuseListMenuTemplate.moveCursorFunc = sub_81D1E7C; + gMultiuseListMenuTemplate.itemPrintFunc = sub_81D1D44; + gMultiuseListMenuTemplate.fontId = 1; + gMultiuseListMenuTemplate.cursorKind = 0; + gMultiuseListMenuTemplate.lettersSpacing = 0; + gMultiuseListMenuTemplate.itemVerticalPadding = 0; + gMultiuseListMenuTemplate.scrollMultiple = LIST_NO_MULTIPLE_SCROLL; + return ListMenuInit(&gMultiuseListMenuTemplate, page->itemsAbove, page->cursorPos); +} + +void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (onInit != TRUE) + PlaySE(SE_SELECT); +} + +void sub_81D1E90(struct PlayerPCItemPageStruct *page) +{ + page->scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(2, 0xC8, 12, 0x94, page->count - page->pageItems + 1, 0x6E, 0x6E, &page->itemsAbove); +} + +void sub_81D1EC0(void) +{ + Free(gUnknown_0203CF4C); +} \ No newline at end of file diff --git a/src/party_menu.c b/src/party_menu.c index 7e47e9ced..7e47cbf80 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -37,15 +37,16 @@ #include "main.h" #include "menu.h" #include "menu_helpers.h" +#include "menu_unknown.h" #include "metatile_behavior.h" #include "overworld.h" #include "palette.h" #include "party_menu.h" +#include "player_pc.h" #include "pokemon.h" #include "pokemon_icon.h" #include "pokemon_storage_system.h" #include "pokemon_summary_screen.h" -#include "pokenav.h" #include "region_map.h" #include "reshow_battle_screen.h" #include "rom_8011DC0.h" diff --git a/src/player_pc.c b/src/player_pc.c index bec763b41..f167062cb 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -20,7 +20,6 @@ #include "overworld.h" #include "palette.h" #include "party_menu.h" -#include "pokenav.h" #include "player_pc.h" #include "script.h" #include "sound.h" @@ -29,6 +28,7 @@ #include "strings.h" #include "task.h" #include "window.h" +#include "menu_unknown.h" // structures struct Struct203BCC4 -- cgit v1.2.3 From c3594f982ddd0839aa7b97cb5a54087e198b0326 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 5 Mar 2019 20:32:14 -0500 Subject: Decompiling pokeblock ui stuff --- src/menu_unknown.c | 35 +++++++++++++++++++++++++++++++++++ src/use_pokeblock.c | 18 ++++++++++-------- 2 files changed, 45 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index 21f42d264..303bb7c82 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -183,4 +183,39 @@ void sub_81D1E90(struct PlayerPCItemPageStruct *page) void sub_81D1EC0(void) { Free(gUnknown_0203CF4C); +} + +void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) +{ + u8 j; + u8 i; + u8 v1; + for (j = 0; j < 5; j++) + { + for (i = 0; i < 10; i++) + { + // u16 + a0->unk64[i][j].unk0 = 0; + a0->unk64[i][j].unk2 = 0; + } + for (i = 0; i < 4; i++) + { + // u8 + a0->unk0[i][j] = 0; + + // u16 + a0->unk14[i][j].unk0 = 0x9B; + a0->unk14[i][j].unk2 = 0x5B; + } + + // u16 + a0->unk12C[j].unk0 = 0; + a0->unk12C[j].unk2 = 0; + } + + // u8 + a0->unk354 = 0; + + // u16 + a0->unk352 = 0; } \ No newline at end of file diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 762019ecd..8b4738608 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -4,6 +4,7 @@ #include "alloc.h" #include "palette.h" #include "pokenav.h" +#include "menu_unknown.h" #include "scanline_effect.h" #include "text.h" #include "bg.h" @@ -33,7 +34,8 @@ struct UsePokeblockSubStruct struct UsePokeblockStruct { u8 field_0[0x7C58]; - u8 field_7C58[0x378]; + //u8 field_7C58[0x378]; + struct UnknownStruct_81D1ED4 field_7C58; struct UsePokeblockSubStruct info; }; @@ -130,7 +132,7 @@ void sub_8166340(void) LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - sub_81D2108(gUnknown_0203BCAC->field_7C58); + sub_81D2108(&gUnknown_0203BCAC->field_7C58); ScanlineEffect_InitHBlankDmaTransfer(); } @@ -146,7 +148,7 @@ void sub_8166380(void) { case 0: gUnknown_0203BCAC->field_0[0x7B10] = 0xFF; - sub_81D1ED4(gUnknown_0203BCAC->field_7C58); + sub_81D1ED4(&gUnknown_0203BCAC->field_7C58); gUnknown_0203BC90->field_50++; break; case 1: @@ -202,19 +204,19 @@ void sub_8166380(void) gUnknown_0203BC90->field_50++; break; case 11: - sub_81D2754(gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_0[0x7C6C]); - sub_81D20AC(gUnknown_0203BCAC->field_7C58); + sub_81D2754(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_0[0x7C6C]); + sub_81D20AC(&gUnknown_0203BCAC->field_7C58); gUnknown_0203BC90->field_50++; break; case 12: - if (!sub_81D20BC(gUnknown_0203BCAC->field_7C58)) + if (!sub_81D20BC(&gUnknown_0203BCAC->field_7C58)) { - sub_81D1F84(gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7C58[0x14], &gUnknown_0203BCAC->field_7C58[0x14]); + sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14, gUnknown_0203BCAC->field_7C58.unk14); gUnknown_0203BC90->field_50++; } break; case 13: - sub_81D2230(gUnknown_0203BCAC->field_7C58); + sub_81D2230(&gUnknown_0203BCAC->field_7C58); gUnknown_0203BC90->field_50++; break; case 14: -- cgit v1.2.3 From 4345ba8e6cf145a646666b8d2be1a255873ed29a Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 5 Mar 2019 22:32:28 -0500 Subject: More decompiled and cleanup --- src/menu_unknown.c | 264 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 222 insertions(+), 42 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index 303bb7c82..243eb33ff 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -9,72 +9,76 @@ #include "string_util.h" #include "window.h" #include "constants/songs.h" +#include "scanline_effect.h" #define WINDOW_UNK_0 0 #define WINDOW_UNK_1 1 #define WINDOW_UNK_2 2 -extern struct ListMenuItem *gUnknown_0203CF4C; -extern u8 gUnknown_0203CF48[3]; +EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; +EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); -const struct WindowTemplate gUnknown_086253E8[] = +static const struct WindowTemplate sUnknown_086253E8[] = { [WINDOW_UNK_0] = { - //0x08010100, .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, .width = 8, - //0x00080F02, .height = 2, .paletteNum = 0xF, .baseBlock = 0x8 }, [WINDOW_UNK_1] = { - //0x08 01 15 00, .bg = 0, .tilemapLeft = 21, .tilemapTop = 1, .width = 8, - //0x0018 0F 12, .height = 18, .paletteNum = 0xF, .baseBlock = 0x18 }, [WINDOW_UNK_2] = { - //0x0B 01 01 00 .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, .width = 11, - //0x0018 0F 08 .height = 8, .paletteNum = 0xF, .baseBlock = 0x18 } }; -const u8 gUnknown_08625400[] = { +static const u8 sUnknown_08625400[] = +{ 1, 2, 3 }; static const u8 sEmptyItemName[] = _(""); +static const struct ScanlineEffectParams sUnknown_08625404 = +{ + .dmaDest = (void*)REG_ADDR_WIN0H, + .dmaControl = SCANLINE_EFFECT_DMACNT_32BIT, + .initState = 1, + .unused9 = 0 +}; + bool8 sub_81D1C44(u8 count) { u32 i; struct ListMenuItem **v1; - v1 = &gUnknown_0203CF4C; + v1 = &sUnknown_0203CF4C; *v1 = Alloc(count * sizeof(struct ListMenuItem) + sizeof(struct ListMenuItem)); - if (gUnknown_0203CF4C == NULL) + if (sUnknown_0203CF4C == NULL) return FALSE; - for (i = 0; i < ARRAY_COUNT(gUnknown_0203CF48); i = (u8)(i + 1)) + for (i = 0; i < ARRAY_COUNT(sUnknown_0203CF48); i = (u8)(i + 1)) { - gUnknown_0203CF48[i] |= 0xFF; + sUnknown_0203CF48[i] |= 0xFF; } return TRUE; @@ -84,7 +88,7 @@ u8 sub_81D1C84(u8 a0) { struct WindowTemplate template; - u8 windowId = gUnknown_0203CF48[a0]; + u8 windowId = sUnknown_0203CF48[a0]; if (windowId == 0xFF) { if (a0 == WINDOW_UNK_2) @@ -93,31 +97,31 @@ u8 sub_81D1C84(u8 a0) u32 v2; s32 v3; - template = gUnknown_086253E8[WINDOW_UNK_2]; + template = sUnknown_086253E8[WINDOW_UNK_2]; v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); template.width = v3; - gUnknown_0203CF48[WINDOW_UNK_2] = AddWindow(&template); + sUnknown_0203CF48[WINDOW_UNK_2] = AddWindow(&template); } else { - gUnknown_0203CF48[a0] = AddWindow(&gUnknown_086253E8[a0]); + sUnknown_0203CF48[a0] = AddWindow(&sUnknown_086253E8[a0]); } - SetStandardWindowBorderStyle(gUnknown_0203CF48[a0], 0); + SetStandardWindowBorderStyle(sUnknown_0203CF48[a0], 0); } - return gUnknown_0203CF48[a0]; + return sUnknown_0203CF48[a0]; } void sub_81D1D04(u8 a0) { - sub_8198070(gUnknown_0203CF48[a0], 0); - ClearWindowTilemap(gUnknown_0203CF48[a0]); - RemoveWindow(gUnknown_0203CF48[a0]); - gUnknown_0203CF48[a0] = 0xFF; + sub_8198070(sUnknown_0203CF48[a0], 0); + ClearWindowTilemap(sUnknown_0203CF48[a0]); + RemoveWindow(sUnknown_0203CF48[a0]); + sUnknown_0203CF48[a0] = 0xFF; } u8 sub_81D1D34(u8 a0) { - return gUnknown_0203CF48[a0]; + return sUnknown_0203CF48[a0]; } void sub_81D1D44(u8 windowId, s32 itemId, u8 y) @@ -133,7 +137,7 @@ void sub_81D1D44(u8 windowId, s32 itemId, u8 y) length = StringLength(buffer); if (length <= 5) ConvertInternationalString(buffer, LANGUAGE_JAPANESE); - AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, gUnknown_08625400, -1, buffer); + AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, sUnknown_08625400, -1, buffer); } u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) @@ -141,16 +145,16 @@ u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) u16 i; for (i = 0; i < page->count; i++) { - gUnknown_0203CF4C[i].name = sEmptyItemName; - gUnknown_0203CF4C[i].id = i; + sUnknown_0203CF4C[i].name = sEmptyItemName; + sUnknown_0203CF4C[i].id = i; } - gUnknown_0203CF4C[i].name = gText_Cancel2; - gUnknown_0203CF4C[i].id = LIST_CANCEL; + sUnknown_0203CF4C[i].name = gText_Cancel2; + sUnknown_0203CF4C[i].id = LIST_CANCEL; - gMultiuseListMenuTemplate.items = gUnknown_0203CF4C; + gMultiuseListMenuTemplate.items = sUnknown_0203CF4C; gMultiuseListMenuTemplate.totalItems = page->count + 1; - gMultiuseListMenuTemplate.windowId = gUnknown_0203CF48[1]; + gMultiuseListMenuTemplate.windowId = sUnknown_0203CF48[1]; gMultiuseListMenuTemplate.header_X = 0; gMultiuseListMenuTemplate.item_X = 8; gMultiuseListMenuTemplate.cursor_X = 0; @@ -182,40 +186,216 @@ void sub_81D1E90(struct PlayerPCItemPageStruct *page) void sub_81D1EC0(void) { - Free(gUnknown_0203CF4C); + Free(sUnknown_0203CF4C); } void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) { u8 j; u8 i; - u8 v1; for (j = 0; j < 5; j++) { for (i = 0; i < 10; i++) { - // u16 a0->unk64[i][j].unk0 = 0; a0->unk64[i][j].unk2 = 0; } for (i = 0; i < 4; i++) { - // u8 a0->unk0[i][j] = 0; - - // u16 a0->unk14[i][j].unk0 = 0x9B; a0->unk14[i][j].unk2 = 0x5B; } - // u16 a0->unk12C[j].unk0 = 0; a0->unk12C[j].unk2 = 0; } - // u8 a0->unk354 = 0; - - // u16 a0->unk352 = 0; +} + +NAKED +void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 arg1[4][5], struct UnknownSubStruct_81D1ED4 arg2[4][5]) +{ + /* + u16 j; + u16 i; + s16 v1; + s16 v2; + for (j = 0; j < 5; j++) + { + v1 = arg1[0][j].unk0; + v2 = (arg2[0][j].unk0 - v1) / 10; + + for (i = 0; i < 9; i++) + { + arg0->unk64[i][j].unk0 = v1 + ((v1 << 1) & 1); + } + + for (i = 0; i < 9; i++) + { + + } + } + */ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x8\n\ + mov r8, r0\n\ + str r1, [sp]\n\ + mov r9, r2\n\ + movs r7, 0\n\ +_081D1F98:\n\ + lsls r4, r7, 2\n\ + ldr r1, [sp]\n\ + adds r0, r4, r1\n\ + ldrh r1, [r0]\n\ + lsls r5, r1, 8\n\ + mov r2, r9\n\ + adds r0, r4, r2\n\ + ldrh r0, [r0]\n\ + subs r0, r1\n\ + lsls r0, 8\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r6, r0, 0\n\ + movs r3, 0\n\ + adds r7, 0x1\n\ + mov r10, r7\n\ + mov r12, r4\n\ +_081D1FBC:\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + add r0, r12\n\ + add r0, r8\n\ + asrs r2, r5, 8\n\ + asrs r1, r5, 7\n\ + movs r7, 0x1\n\ + ands r1, r7\n\ + adds r2, r1\n\ + adds r0, 0x64\n\ + strh r2, [r0]\n\ + adds r5, r6\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x8\n\ + bls _081D1FBC\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r0, r4, r0\n\ + add r0, r8\n\ + mov r1, r9\n\ + adds r2, r4, r1\n\ + ldrh r1, [r2]\n\ + adds r0, 0x64\n\ + strh r1, [r0]\n\ + ldr r7, [sp]\n\ + adds r0, r4, r7\n\ + ldrh r1, [r0, 0x2]\n\ + lsls r5, r1, 8\n\ + ldrh r0, [r2, 0x2]\n\ + subs r0, r1\n\ + lsls r0, 8\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r6, r0, 0\n\ + movs r3, 0\n\ + str r4, [sp, 0x4]\n\ + movs r0, 0x1\n\ + mov r12, r0\n\ +_081D2012:\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + ldr r1, [sp, 0x4]\n\ + adds r0, r1, r0\n\ + add r0, r8\n\ + asrs r2, r5, 8\n\ + asrs r1, r5, 7\n\ + mov r7, r12\n\ + ands r1, r7\n\ + adds r2, r1\n\ + adds r0, 0x66\n\ + strh r2, [r0]\n\ + adds r5, r6\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x8\n\ + bls _081D2012\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r0, r4, r0\n\ + add r0, r8\n\ + mov r2, r9\n\ + adds r1, r4, r2\n\ + ldrh r1, [r1, 0x2]\n\ + adds r0, 0x66\n\ + strh r1, [r0]\n\ + mov r7, r10\n\ + lsls r0, r7, 16\n\ + lsrs r7, r0, 16\n\ + cmp r7, 0x4\n\ + bls _081D1F98\n\ + ldr r1, =0x00000352\n\ + add r1, r8\n\ + movs r0, 0\n\ + strh r0, [r1]\n\ + add sp, 0x8\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +} + +bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) +{ + if (a0->unk352 < 10) + { + sub_81D2230(a0); + return ++a0->unk352 != 10; + } + else + { + return FALSE; + } + +} + +void sub_81D20AC(struct UnknownStruct_81D1ED4 *a0) +{ + a0->unk355 = 0; +} + +bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) +{ + struct ScanlineEffectParams params; + switch (arg0->unk355) + { + case 0: + ScanlineEffect_Clear(); + arg0->unk355++; + return TRUE; + case 1: + params = sUnknown_08625404; + ScanlineEffect_SetParams(params); + arg0->unk355++; + return FALSE; + default: + return FALSE; + } } \ No newline at end of file -- cgit v1.2.3 From 0da83abad297cdc2d07e89aa30dbf86ab6360ac9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 6 Mar 2019 22:27:30 -0500 Subject: Several nonmatching functions Huge and difficult. --- src/menu_unknown.c | 1103 ++++++++++++++++++++++++++++++++++++++++++++++++++- src/use_pokeblock.c | 3 +- 2 files changed, 1103 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index 243eb33ff..dc8351d92 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -1,15 +1,18 @@ #include "global.h" #include "alloc.h" +#include "gpu_regs.h" #include "international_string_util.h" #include "menu.h" #include "menu_unknown.h" #include "player_pc.h" +#include "scanline_effect.h" #include "sound.h" #include "strings.h" #include "string_util.h" +#include "trig.h" #include "window.h" #include "constants/songs.h" -#include "scanline_effect.h" +#include "gba/io_reg.h" #define WINDOW_UNK_0 0 #define WINDOW_UNK_1 1 @@ -19,6 +22,8 @@ EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); +void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); +void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); static const struct WindowTemplate sUnknown_086253E8[] = { @@ -66,6 +71,44 @@ static const struct ScanlineEffectParams sUnknown_08625404 = .unused9 = 0 }; + +const u8 gUnknown_08625410[] = +{ + 4, + 5, + 6, + 7, + 8, + 9, 9, + 10, 10, + 0xB, 0xB, + 0xC, 0xC, + 0xD, 0xD, + 0xD, 0xD, + 0xE, 0xE, 0xE, 0xE, + 0xF, 0xF, 0xF, 0xF, + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, + 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, + 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, + 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, + 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, + 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, + 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, + 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, + 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x23 +}; + bool8 sub_81D1C44(u8 count) { u32 i; @@ -398,4 +441,1062 @@ bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) default: return FALSE; } +} + +NAKED +void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0) +{ + // Three of the additions are in the wrong order. +#ifdef NONMATCHING + u16 i; + u32 v3; + u32 v4; + u16 *scanBuffer1; + u16 *scanBuffer2; + u32 scanBufferWidth; + u32 mask; + u16 *unkBuff1; + u16 *unkBuff2; + u16 *unkBuff3; + u16 *unkBuff4; + + if (arg0->unk354 == 0) + return; + + sub_81D24A4(arg0); + sub_81D2634(arg0); + + i = 0; + scanBuffer1 = gScanlineEffectRegBuffers[0]; + scanBufferWidth = ARRAY_COUNT(gScanlineEffectRegBuffers[0]); + scanBuffer2 = scanBuffer1 + scanBufferWidth; + + // This function accesses the arrays "manually", where every other entry + // is just handled differently, rather than a pairwise struct. + unkBuff1 = (u16*)&arg0->unk13C[0].unk0; + mask = 0xFFFF; + unkBuff2 = (u16*)&arg0->unk13C[0].unk2; + unkBuff3 = (u16*)&arg0->unk248[0].unk0; + unkBuff4 = (u16*)&arg0->unk248[0].unk2; + + for (; i < 0x42; i++) + { + u32 offset1; + register u32 offset2 asm("r2"); + u32 offset3; + + offset1 = (i + 0x37) * 2; + offset2 = i + 0x37; + scanBuffer2[offset1] = (scanBuffer1[offset1] = (unkBuff1[i * 2] << 8) | unkBuff2[i * 2]) & mask; + + offset3 = offset2 * 2 + 1; + scanBuffer2[offset3] = (scanBuffer1[offset3] = (unkBuff3[i * 2] << 8) | unkBuff4[i * 2]) & mask; + } + + arg0->unk354 = 0; +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x10\n\ + adds r6, r0, 0\n\ + movs r1, 0xD5\n\ + lsls r1, 2\n\ + adds r0, r6, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _081D21BE\n\ + adds r0, r6, 0\n\ + bl sub_81D24A4\n\ + adds r0, r6, 0\n\ + bl sub_81D2634\n\ + movs r7, 0\n\ + ldr r5, =gScanlineEffectRegBuffers\n\ + mov r12, r5\n\ + movs r0, 0xF0\n\ + lsls r0, 3\n\ + add r0, r12\n\ + mov r9, r0\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r1, r6, r1\n\ + str r1, [sp]\n\ + ldr r5, =0x0000ffff\n\ + mov r8, r5\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r0, r6, r0\n\ + str r0, [sp, 0x4]\n\ + movs r1, 0x92\n\ + lsls r1, 2\n\ + adds r1, r6, r1\n\ + str r1, [sp, 0x8]\n\ + ldr r5, =0x0000024a\n\ + adds r5, r6\n\ + mov r10, r5\n\ +_081D215E:\n\ + adds r2, r7, 0\n\ + adds r2, 0x37\n\ + lsls r3, r2, 2\n\ + mov r0, r9\n\ + adds r0, r3, r0\n\ + str r0, [sp, 0xC]\n\ + add r3, r12\n\ + lsls r4, r7, 2\n\ + ldr r1, [sp]\n\ + adds r0, r1, r4\n\ + ldrh r0, [r0]\n\ + lsls r0, 8\n\ + ldr r5, [sp, 0x4]\n\ + adds r1, r5, r4\n\ + ldrh r1, [r1]\n\ + orrs r0, r1\n\ + strh r0, [r3]\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r5, [sp, 0xC]\n\ + strh r0, [r5]\n\ + lsls r2, 1\n\ + adds r2, 0x1\n\ + lsls r2, 1\n\ + mov r0, r9\n\ + adds r3, r2, r0\n\ + add r2, r12\n\ + ldr r1, [sp, 0x8]\n\ + adds r0, r1, r4\n\ + ldrh r0, [r0]\n\ + lsls r0, 8\n\ + add r4, r10\n\ + ldrh r1, [r4]\n\ + orrs r0, r1\n\ + strh r0, [r2]\n\ + mov r5, r8\n\ + ands r0, r5\n\ + strh r0, [r3]\n\ + adds r0, r7, 0x1\n\ + lsls r0, 16\n\ + lsrs r7, r0, 16\n\ + cmp r7, 0x41\n\ + bls _081D215E\n\ + movs r0, 0xD5\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + movs r0, 0\n\ + strb r0, [r1]\n\ +_081D21BE:\n\ + add sp, 0x10\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +void sub_81D21DC(u8 bg) +{ + u8 flags; + + if (bg > 3) + bg = 0; + + // Unset the WINOUT flag for the bg. + flags = (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) & ~(1 << bg); + + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0)); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, 0x9B)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0x38, 0x79)); + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0x38, 0x79)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); + SetGpuReg(REG_OFFSET_WINOUT, flags); +} + +void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) +{ + u16 i; + for (i = 0; i < 5; i++) + { + arg0->unk12C[i] = arg0->unk64[arg0->unk352][i]; + } + arg0->unk354 = 1; +} + +NAKED +void sub_81D2278(void *a0, void *a1, u16 *a2, u16 *a3, u8 a38, u32 a3C) +{ +#ifdef NONMATCHING + // a0 => sp0 + // a1 => r6 + // a2 => r5 + // a3 => sp4 + // a38 => r9 + // a3C => r7 + u32 v1; // r10 + u32 v2; // sp8 + u32 v3; // spC + u32 v4; + u32 v5; + u16 v6; // r8 + u32 v7; + u32 v8; // sp10 + + v3 = 0; + + // v4 => r4 + // v5 => r0 + // v7 => r1 + if (a2[1] < a3[1]) + { + v1 = a2[1]; + v5 = a3[1]; + v7 = a2[0]; + v4 = v7 << 10; + v2 = a3[0]; + } + else + { + v5 = a2[1]; + v1 = a3[1]; + v7 = a3[0]; + v4 = v7 << 10; + v2 = a2[0]; + } + + v6 = v5 - v1; + if (v6 != 0) + { + v3 = (v2 - v7) / v6; + } + v6++; + + if (a3C == 0) + { + v8 = + } +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x18\n\ + str r0, [sp]\n\ + adds r6, r1, 0\n\ + adds r5, r2, 0\n\ + str r3, [sp, 0x4]\n\ + ldr r0, [sp, 0x38]\n\ + ldr r7, [sp, 0x3C]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ + movs r0, 0\n\ + str r0, [sp, 0xC]\n\ + ldrh r0, [r5, 0x2]\n\ + ldrh r1, [r3, 0x2]\n\ + cmp r0, r1\n\ + bcs _081D22B2\n\ + adds r2, r0, 0\n\ + mov r10, r2\n\ + ldrh r0, [r3, 0x2]\n\ + ldrh r1, [r5]\n\ + lsls r4, r1, 10\n\ + ldrh r3, [r3]\n\ + str r3, [sp, 0x8]\n\ + b _081D22C6\n\ +_081D22B2:\n\ + ldrh r0, [r5, 0x2]\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r1, [r1, 0x2]\n\ + mov r10, r1\n\ + ldr r2, [sp, 0x4]\n\ + ldrh r1, [r2]\n\ + lsls r4, r1, 10\n\ + ldrh r3, [r5]\n\ + str r3, [sp, 0x8]\n\ + mov r2, r10\n\ +_081D22C6:\n\ + subs r0, r2\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + cmp r0, 0\n\ + beq _081D22DE\n\ + subs r0, r3, r1\n\ + lsls r0, 10\n\ + mov r1, r8\n\ + bl __divsi3\n\ + str r0, [sp, 0xC]\n\ +_081D22DE:\n\ + mov r0, r8\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + cmp r7, 0\n\ + bne _081D2328\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + movs r5, 0\n\ + mov r3, r9\n\ + lsls r3, 1\n\ + mov r12, r3\n\ + ldr r0, [sp, 0x8]\n\ + add r0, r9\n\ + str r0, [sp, 0x10]\n\ + cmp r7, r8\n\ + bcs _081D23B6\n\ + movs r7, 0x1\n\ +_081D2308:\n\ + adds r2, r3, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r7\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r1, [sp, 0xC]\n\ + adds r4, r1\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D2308\n\ + b _081D23B6\n\ +_081D2328:\n\ + ldr r2, [sp, 0xC]\n\ + cmp r2, 0\n\ + ble _081D23C0\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r7, r0\n\ + movs r5, 0\n\ + mov r3, r9\n\ + lsls r3, 1\n\ + mov r12, r3\n\ + ldr r0, [sp, 0x8]\n\ + add r0, r9\n\ + str r0, [sp, 0x10]\n\ + cmp r5, r8\n\ + bcs _081D237A\n\ + ldr r0, =0x00026bff\n\ + cmp r4, r0\n\ + bgt _081D237A\n\ + mov r1, r12\n\ + str r1, [sp, 0x14]\n\ +_081D2352:\n\ + ldr r3, [sp, 0x14]\n\ + adds r2, r3, r7\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r3, 0x1\n\ + ands r0, r3\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r7, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcs _081D237A\n\ + ldr r1, =0x00026bff\n\ + cmp r4, r1\n\ + ble _081D2352\n\ +_081D237A:\n\ + mov r2, r10\n\ + adds r1, r2, r5\n\ + ldr r3, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r3, r2\n\ + strh r1, [r0]\n\ + ldrh r0, [r0]\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + cmp r5, r8\n\ + bcs _081D23B6\n\ + mov r3, r12\n\ + movs r7, 0x1\n\ +_081D2398:\n\ + adds r2, r3, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r7\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D2398\n\ +_081D23B6:\n\ + subs r0, r6, 0x4\n\ + b _081D248C\n\ + .pool\n\ +_081D23C0:\n\ + ldr r1, [sp, 0xC]\n\ + cmp r1, 0\n\ + bge _081D2464\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + movs r5, 0\n\ + mov r2, r9\n\ + lsls r2, 1\n\ + mov r12, r2\n\ + ldr r3, [sp, 0x8]\n\ + add r3, r9\n\ + str r3, [sp, 0x10]\n\ + cmp r5, r8\n\ + bcs _081D241E\n\ + adds r3, r2, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r2, 0x1\n\ + ands r0, r2\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r3]\n\ + b _081D2414\n\ +_081D23F2:\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcs _081D241E\n\ + mov r1, r12\n\ + adds r3, r1, r6\n\ + asrs r2, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r1, 0x1\n\ + ands r0, r1\n\ + adds r2, r0\n\ + add r2, r9\n\ + strh r2, [r3]\n\ +_081D2414:\n\ + ldr r0, =0x00026bff\n\ + cmp r4, r0\n\ + bgt _081D23F2\n\ + movs r0, 0x9B\n\ + strh r0, [r3]\n\ +_081D241E:\n\ + mov r2, r10\n\ + adds r1, r2, r5\n\ + ldr r3, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r3, r2\n\ + strh r1, [r0]\n\ + ldrh r0, [r0]\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r7, r0\n\ + cmp r5, r8\n\ + bcs _081D245A\n\ + mov r3, r12\n\ + movs r6, 0x1\n\ +_081D243C:\n\ + adds r2, r3, r7\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r6\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r7, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D243C\n\ +_081D245A:\n\ + subs r0, r7, 0x4\n\ + b _081D248C\n\ + .pool\n\ +_081D2464:\n\ + ldr r1, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r1, r2\n\ + mov r3, r10\n\ + strh r3, [r0]\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + adds r7, r0\n\ + ldrh r0, [r5]\n\ + adds r0, 0x1\n\ + strh r0, [r6, 0x2]\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r0, [r1]\n\ + strh r0, [r7]\n\ + movs r0, 0x9B\n\ + strh r0, [r7, 0x2]\n\ + b _081D2494\n\ +_081D248C:\n\ + add r0, r12\n\ + mov r2, sp\n\ + ldrh r2, [r2, 0x10]\n\ + strh r2, [r0]\n\ +_081D2494:\n\ + add sp, 0x18\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +#endif +} + +NAKED +void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + sub sp, 0x8\n\ + adds r4, r0, 0\n\ + movs r0, 0x97\n\ + lsls r0, 1\n\ + adds r2, r4, r0\n\ + movs r3, 0x99\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r2]\n\ + ldrh r3, [r1]\n\ + cmp r0, r3\n\ + bcs _081D24E0\n\ + adds r7, r0, 0\n\ + movs r0, 0xA0\n\ + lsls r0, 1\n\ + adds r1, r4, r0\n\ + movs r3, 0x96\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + subs r0, 0x10\n\ + adds r3, r4, r0\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ + b _081D2500\n\ +_081D24E0:\n\ + ldrh r7, [r1]\n\ + movs r2, 0xA0\n\ + lsls r2, 1\n\ + adds r1, r4, r2\n\ + movs r3, 0x98\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r0, 0x96\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ +_081D2500:\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r5, r4, r1\n\ + movs r3, 0x98\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r0, 0x9A\n\ + lsls r0, 1\n\ + adds r6, r4, r0\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + adds r3, r6, 0\n\ + bl sub_81D2278\n\ + movs r2, 0\n\ + movs r1, 0x9B\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + movs r3, 0x9D\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r0]\n\ + ldrh r1, [r1]\n\ + cmp r0, r1\n\ + bhi _081D253C\n\ + movs r2, 0x1\n\ +_081D253C:\n\ + movs r0, 0x9C\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + str r2, [sp]\n\ + movs r1, 0x92\n\ + lsls r1, 2\n\ + adds r0, r4, r1\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + adds r2, r6, 0\n\ + bl sub_81D2278\n\ + movs r2, 0x38\n\ + cmp r2, r7\n\ + bcs _081D257E\n\ + adds r6, r5, 0\n\ + movs r3, 0\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r5, r4, r0\n\ +_081D2566:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + strh r3, [r1]\n\ + adds r0, r5, r0\n\ + strh r3, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, r7\n\ + bcc _081D2566\n\ +_081D257E:\n\ + movs r1, 0x97\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r2, [r0]\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r1, [r0]\n\ + cmp r2, r1\n\ + bhi _081D25B2\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r3, r4, r1\n\ + movs r5, 0x9B\n\ + adds r1, r0, 0\n\ +_081D259C:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r0, r3, r0\n\ + strh r5, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + ldrh r0, [r1]\n\ + cmp r2, r0\n\ + bls _081D259C\n\ +_081D25B2:\n\ + movs r2, 0x9B\n\ + lsls r2, 1\n\ + adds r1, r4, r2\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r0, [r0]\n\ + ldrh r1, [r1]\n\ + cmp r0, r1\n\ + bcs _081D25C8\n\ + adds r0, r1, 0\n\ +_081D25C8:\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bhi _081D25F8\n\ + movs r0, 0xA0\n\ + lsls r0, 1\n\ + adds r6, r4, r0\n\ + movs r3, 0\n\ + movs r1, 0xA1\n\ + lsls r1, 1\n\ + adds r5, r4, r1\n\ +_081D25E0:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + strh r3, [r1]\n\ + adds r0, r5, r0\n\ + strh r3, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bls _081D25E0\n\ +_081D25F8:\n\ + movs r2, 0x38\n\ + movs r3, 0xA0\n\ + lsls r3, 1\n\ + adds r5, r4, r3\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r4, r0\n\ + movs r6, 0x9B\n\ +_081D2608:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r1, r0, 2\n\ + adds r3, r5, r1\n\ + ldrh r0, [r3]\n\ + cmp r0, 0\n\ + bne _081D2620\n\ + adds r0, r4, r1\n\ + ldrh r0, [r0]\n\ + cmp r0, 0\n\ + beq _081D2620\n\ + strh r6, [r3]\n\ +_081D2620:\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bls _081D2608\n\ + add sp, 0x8\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +NAKED +void sub_81D2634(struct UnknownStruct_81D1ED4 *a0) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + sub sp, 0x8\n\ + adds r4, r0, 0\n\ + movs r0, 0x97\n\ + lsls r0, 1\n\ + adds r2, r4, r0\n\ + movs r3, 0x9F\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r2]\n\ + ldrh r5, [r1]\n\ + cmp r0, r5\n\ + bcs _081D266E\n\ + adds r6, r0, 0\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r1, r4, r0\n\ + subs r3, 0x12\n\ + adds r2, r4, r3\n\ + movs r5, 0x9E\n\ + lsls r5, 1\n\ + adds r3, r4, r5\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ + b _081D2690\n\ +_081D266E:\n\ + ldrh r6, [r1]\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r1, r4, r0\n\ + movs r3, 0x9E\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r5, 0x96\n\ + lsls r5, 1\n\ + adds r3, r4, r5\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ +_081D2690:\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r5, r4, r0\n\ + movs r1, 0x9E\n\ + lsls r1, 1\n\ + adds r2, r4, r1\n\ + movs r0, 0x9C\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + bl sub_81D2278\n\ + cmp r6, 0x38\n\ + ble _081D26C8\n\ + movs r0, 0\n\ + adds r1, r5, 0\n\ + adds r2, r6, 0\n\ + subs r2, 0x38\n\ +_081D26BC:\n\ + strh r0, [r1]\n\ + strh r0, [r1, 0x2]\n\ + adds r1, 0x4\n\ + subs r2, 0x1\n\ + cmp r2, 0\n\ + bne _081D26BC\n\ +_081D26C8:\n\ + movs r1, 0x97\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r2, [r0]\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r5, [r0]\n\ + cmp r2, r5\n\ + bgt _081D26F6\n\ + movs r3, 0x9B\n\ + adds r1, r0, 0\n\ + lsls r0, r2, 2\n\ + movs r5, 0xB5\n\ + lsls r5, 1\n\ + adds r0, r5\n\ + adds r0, r4\n\ +_081D26EA:\n\ + strh r3, [r0]\n\ + adds r0, 0x4\n\ + adds r2, 0x1\n\ + ldrh r5, [r1]\n\ + cmp r2, r5\n\ + ble _081D26EA\n\ +_081D26F6:\n\ + movs r1, 0x9D\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r0, [r0]\n\ + adds r1, r0, 0x1\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r4, r2\n\ + ldrh r0, [r0]\n\ + cmp r0, r1\n\ + bge _081D270E\n\ + adds r0, r1, 0\n\ +_081D270E:\n\ + adds r2, r0, 0\n\ + cmp r2, 0x79\n\ + bgt _081D272C\n\ + movs r1, 0\n\ + lsls r0, r2, 2\n\ + movs r3, 0xB4\n\ + lsls r3, 1\n\ + adds r0, r3\n\ + adds r0, r4\n\ +_081D2720:\n\ + strh r1, [r0]\n\ + strh r1, [r0, 0x2]\n\ + adds r0, 0x4\n\ + adds r2, 0x1\n\ + cmp r2, 0x79\n\ + ble _081D2720\n\ +_081D272C:\n\ + movs r3, 0\n\ + movs r5, 0x92\n\ + lsls r5, 2\n\ + adds r1, r4, r5\n\ + movs r2, 0x41\n\ +_081D2736:\n\ + ldrh r0, [r1]\n\ + ldrh r4, [r1, 0x2]\n\ + cmp r0, r4\n\ + bcc _081D2742\n\ + strh r3, [r1, 0x2]\n\ + strh r3, [r1]\n\ +_081D2742:\n\ + adds r1, 0x4\n\ + subs r2, 0x1\n\ + cmp r2, 0\n\ + bge _081D2736\n\ + add sp, 0x8\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +NAKED +void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1) +{ + // There are some register-renaming issues here. The cause of the problem seems to be that + // GCC tries to save gUnknown_08625410 in a register, instead of loading the constant repeatedly. + // But this is one too many things to keep track of, so GCC is forced to use the stack. +#ifdef NONMATCHING + u8* v1; + u8 v2; + u8 v3; + s8 v4; + u16 v5; + + v1 = arg0->unk0[0]; + v2 = gUnknown_08625410[*v1]; + v1++; + arg1[0].unk0 = 0x9B; + arg1[0].unk2 = 0x5B - v2; + for (v3 = 0x40, v4 = 0, v5 = 1; v5 < 5; v5++) + { + v3 += 0x33; + v4--; + if (v4 < 0) + { + v4 = 4; + } + if (v4 == 2) + { + v3++; + } + + v2 = gUnknown_08625410[*v1]; + v1++; + arg1[v4].unk0 = ((gSineTable[v3 + 0x40] * v2) >> 8) + 0x9B; + arg1[v4].unk2 = ((gSineTable[v3] * v2) >> 8) - 0x5B; + if (v4 <= 2 && (v2 != 0x20 || v4 != 2)) + { + arg1[v4].unk0 = arg1[v4].unk0 + 1; + } + } +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + adds r6, r0, 0\n\ + mov r8, r1\n\ + ldr r1, =gUnknown_08625410\n\ + ldrb r0, [r6]\n\ + adds r0, r1\n\ + ldrb r2, [r0]\n\ + adds r6, 0x1\n\ + movs r0, 0x9B\n\ + mov r3, r8\n\ + strh r0, [r3]\n\ + movs r0, 0x5B\n\ + subs r0, r2\n\ + strh r0, [r3, 0x2]\n\ + movs r7, 0x40\n\ + movs r0, 0\n\ + mov r12, r0\n\ + movs r2, 0x1\n\ + mov r9, r2\n\ + ldr r3, =gSineTable\n\ + mov r10, r3\n\ +_081D2786:\n\ + adds r0, r7, 0\n\ + adds r0, 0x33\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + mov r1, r12\n\ + lsls r0, r1, 24\n\ + movs r2, 0xFF\n\ + lsls r2, 24\n\ + adds r0, r2\n\ + lsrs r3, r0, 24\n\ + mov r12, r3\n\ + cmp r0, 0\n\ + bge _081D27A4\n\ + movs r0, 0x4\n\ + mov r12, r0\n\ +_081D27A4:\n\ + mov r1, r12\n\ + lsls r0, r1, 24\n\ + asrs r4, r0, 24\n\ + cmp r4, 0x2\n\ + bne _081D27B4\n\ + adds r0, r7, 0x1\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ +_081D27B4:\n\ + ldrb r0, [r6]\n\ + ldr r2, =gUnknown_08625410\n\ + adds r0, r2\n\ + ldrb r2, [r0]\n\ + adds r6, 0x1\n\ + lsls r0, r4, 2\n\ + mov r1, r8\n\ + adds r3, r0, r1\n\ + adds r0, r7, 0\n\ + adds r0, 0x40\n\ + lsls r0, 1\n\ + add r0, r10\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + muls r0, r2\n\ + asrs r5, r0, 8\n\ + adds r0, r5, 0\n\ + adds r0, 0x9B\n\ + strh r0, [r3]\n\ + lsls r0, r7, 1\n\ + add r0, r10\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + adds r1, r2, 0\n\ + muls r1, r0\n\ + asrs r1, 8\n\ + movs r0, 0x5B\n\ + subs r0, r1\n\ + strh r0, [r3, 0x2]\n\ + cmp r4, 0x2\n\ + bgt _081D2800\n\ + cmp r2, 0x20\n\ + bne _081D27FA\n\ + cmp r4, 0x2\n\ + beq _081D2800\n\ +_081D27FA:\n\ + adds r0, r5, 0\n\ + adds r0, 0x9C\n\ + strh r0, [r3]\n\ +_081D2800:\n\ + mov r0, r9\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r9, r0\n\ + cmp r0, 0x4\n\ + bls _081D2786\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif } \ No newline at end of file diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 8b4738608..75e8da3f8 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -34,7 +34,6 @@ struct UsePokeblockSubStruct struct UsePokeblockStruct { u8 field_0[0x7C58]; - //u8 field_7C58[0x378]; struct UnknownStruct_81D1ED4 field_7C58; struct UsePokeblockSubStruct info; }; @@ -204,7 +203,7 @@ void sub_8166380(void) gUnknown_0203BC90->field_50++; break; case 11: - sub_81D2754(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_0[0x7C6C]); + sub_81D2754(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[0]); sub_81D20AC(&gUnknown_0203BCAC->field_7C58); gUnknown_0203BC90->field_50++; break; -- cgit v1.2.3 From aa7657a82a108321d5112f0ad195132e2c6e6c99 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 6 Mar 2019 22:58:05 -0500 Subject: Move constants into C Also figured out what one of the graphics files is for. --- src/menu_unknown.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 92 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index dc8351d92..9a8ea5906 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -24,6 +24,7 @@ EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); +void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); static const struct WindowTemplate sUnknown_086253E8[] = { @@ -72,7 +73,7 @@ static const struct ScanlineEffectParams sUnknown_08625404 = }; -const u8 gUnknown_08625410[] = +static const u8 sUnknown_08625410[] = { 4, 5, @@ -109,6 +110,91 @@ const u8 gUnknown_08625410[] = 0x23 }; + +const struct WindowTemplate gMoveRelearnerWindowTemplates[] = +{ + { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 16, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0xA + }, + { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 16, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0xCA + }, + { + .bg = 1, + .tilemapLeft = 19, + .tilemapTop = 1, + .width = 10, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0x18A + }, + { + .bg = 1, + .tilemapLeft = 4, + .tilemapTop = 15, + .width = 22, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x202 + }, + { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 8, + .width = 5, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x25A + }, + DUMMY_WIN_TEMPLATE +}; + +const struct WindowTemplate gMoveRelearnerYesNoMenuTemplate = +{ + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 8, + .width = 5, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x25A +}; + + +const struct ListMenuTemplate gMoveRelearnerMovesListTemplate = +{ + .items = NULL, + .moveCursorFunc = MoveRelearnerCursorCallback, + .itemPrintFunc = NULL, + .totalItems = 0, + .maxShowed = 0, + .windowId = 2, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = LIST_NO_MULTIPLE_SCROLL, + .fontId = 1, + .cursorKind = 0 +}; + bool8 sub_81D1C44(u8 count) { u32 i; @@ -1353,7 +1439,7 @@ NAKED void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1) { // There are some register-renaming issues here. The cause of the problem seems to be that - // GCC tries to save gUnknown_08625410 in a register, instead of loading the constant repeatedly. + // GCC tries to save sUnknown_08625410 in a register, instead of loading the constant repeatedly. // But this is one too many things to keep track of, so GCC is forced to use the stack. #ifdef NONMATCHING u8* v1; @@ -1363,7 +1449,7 @@ void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D u16 v5; v1 = arg0->unk0[0]; - v2 = gUnknown_08625410[*v1]; + v2 = sUnknown_08625410[*v1]; v1++; arg1[0].unk0 = 0x9B; arg1[0].unk2 = 0x5B - v2; @@ -1380,7 +1466,7 @@ void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D v3++; } - v2 = gUnknown_08625410[*v1]; + v2 = sUnknown_08625410[*v1]; v1++; arg1[v4].unk0 = ((gSineTable[v3 + 0x40] * v2) >> 8) + 0x9B; arg1[v4].unk2 = ((gSineTable[v3] * v2) >> 8) - 0x5B; @@ -1398,7 +1484,7 @@ void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D push {r5-r7}\n\ adds r6, r0, 0\n\ mov r8, r1\n\ - ldr r1, =gUnknown_08625410\n\ + ldr r1, =sUnknown_08625410\n\ ldrb r0, [r6]\n\ adds r0, r1\n\ ldrb r2, [r0]\n\ @@ -1443,7 +1529,7 @@ _081D27A4:\n\ lsrs r7, r0, 24\n\ _081D27B4:\n\ ldrb r0, [r6]\n\ - ldr r2, =gUnknown_08625410\n\ + ldr r2, =sUnknown_08625410\n\ adds r0, r2\n\ ldrb r2, [r0]\n\ adds r6, 0x1\n\ -- cgit v1.2.3 From 69aec91577659cfe89a63fc4c8d2fc77ab344cbb Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 01:56:38 -0500 Subject: Decompile move tutor stuff 2 nonmatching. --- src/menu_unknown.c | 531 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/move_relearner.c | 2 +- src/strings.c | 14 +- 3 files changed, 539 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index 9a8ea5906..78b2cc8d5 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -1,14 +1,21 @@ #include "global.h" #include "alloc.h" +#include "battle_main.h" +#include "contest_effect.h" #include "gpu_regs.h" +#include "menu.h" #include "international_string_util.h" #include "menu.h" #include "menu_unknown.h" +#include "move_relearner.h" +#include "palette.h" #include "player_pc.h" +#include "pokemon_summary_screen.h" #include "scanline_effect.h" #include "sound.h" #include "strings.h" #include "string_util.h" +#include "text_window.h" #include "trig.h" #include "window.h" #include "constants/songs.h" @@ -25,6 +32,7 @@ void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); +extern void nullsub_79(void); static const struct WindowTemplate sUnknown_086253E8[] = { @@ -1585,4 +1593,527 @@ _081D2800:\n\ .pool\n\ .syntax divided"); #endif +} + +void InitMoveRelearnerWindows(bool8 useContextWindow) +{ + u8 i; + + InitWindows(gMoveRelearnerWindowTemplates); + DeactivateAllTextPrinters(); + LoadUserWindowBorderGfx(0, 1, 0xE0); + LoadPalette(gUnknown_0860F074, 0xF0, 0x20); + + for (i = 0; i < 5; i++) + { + FillWindowPixelBuffer(i, 0x11); + } + + if (!useContextWindow) + { + PutWindowTilemap(0); + SetWindowBorderStyle(0, 0, 0x1, 0xE); + } + else + { + PutWindowTilemap(1); + SetWindowBorderStyle(1, 0, 1, 0xE); + } + PutWindowTilemap(2); + PutWindowTilemap(3); + SetWindowBorderStyle(2, 0, 1, 0xE); + SetWindowBorderStyle(3, 0, 1, 0xE); + nullsub_79(); + schedule_bg_copy_tilemap_to_vram(1); +} + +void nullsub_79(void) +{ + +} + +u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices) +{ + gMultiuseListMenuTemplate = gMoveRelearnerMovesListTemplate; + gMultiuseListMenuTemplate.totalItems = numChoices; + gMultiuseListMenuTemplate.items = items; + + if (numChoices < 6) + { + gMultiuseListMenuTemplate.maxShowed = numChoices; + } + else + { + gMultiuseListMenuTemplate.maxShowed = 6; + } + return gMultiuseListMenuTemplate.maxShowed; +} + +NAKED +void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) +{ + // Two small issues, and a few renamed registers. +#ifdef NONMATCHING + u8 offset; + s32 width; + const struct BattleMove *move; + u8 buffer[0x20]; + const u8 *labelStr; + + FillWindowPixelBuffer(0, 0x11); + labelStr = gText_MoveRelearnerBattleMoves; + offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); + AddTextPrinterParameterized(0, 1, labelStr, offset, 1, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerPP; + AddTextPrinterParameterized(0, 1, labelStr, 4, 0x29, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerPower; + offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); + AddTextPrinterParameterized(0, 1, labelStr, offset, 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerAccuracy; + offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); + AddTextPrinterParameterized(0, 1, labelStr, offset, 0x29, TEXT_SPEED_FF, NULL); + if (chosenMove == LIST_CANCEL) + { + CopyWindowToVram(0, 2); + return; + } + move = &gBattleMoves[chosenMove]; + labelStr = gTypeNames[move->type]; + // GCC tries to be smart, and preserves the same 0x19 from above for this. + // The original asm just loads the constant 0x19 twice. + AddTextPrinterParameterized(0, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); + + // GCC tries to generate this as: + // add r4, r0, 0 + // add r4, r4, 4 + // But the original asm is: + // add r4, r0, 4 + width = 4 + GetStringWidth(1, gText_MoveRelearnerPP, 0); + + ConvertIntToDecimalStringN(buffer, move->pp, 0, 2); + AddTextPrinterParameterized(0, 1, buffer, width, 0x29, TEXT_SPEED_FF, NULL); + + + if (move->power < 2) + { + labelStr = gText_ThreeDashes; + } + else + { + ConvertIntToDecimalStringN(buffer, move->power, 0, 3); + labelStr = buffer; + } + AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x19, TEXT_SPEED_FF, NULL); + + if (move->accuracy == 0) + { + labelStr = gText_ThreeDashes; + } + else + { + ConvertIntToDecimalStringN(buffer, move->accuracy, 0, 3); + labelStr = buffer; + } + AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x29, TEXT_SPEED_FF, NULL); + labelStr = gMoveDescriptionPointers[chosenMove - 1]; + AddTextPrinterParameterized(0, 7, labelStr, 0, 0x41, 0, NULL); +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x2C\n\ + mov r9, r0\n\ + movs r0, 0\n\ + movs r1, 0x11\n\ + bl FillWindowPixelBuffer\n\ + ldr r5, =gText_MoveRelearnerBattleMoves\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x80\n\ + bl GetStringCenterAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + mov r8, r0\n\ + str r0, [sp, 0x4]\n\ + movs r7, 0\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerPP\n\ + movs r1, 0x29\n\ + mov r10, r1\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerPower\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x6A\n\ + bl GetStringRightAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + movs r1, 0x19\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerAccuracy\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x6A\n\ + bl GetStringRightAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + mov r1, r10\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + cmp r9, r0\n\ + bne _081D29C4\n\ + movs r0, 0\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ + b _081D2AB6\n\ + .pool\n\ +_081D29C4:\n\ + mov r1, r9\n\ + lsls r0, r1, 1\n\ + add r0, r9\n\ + lsls r0, 2\n\ + ldr r1, =gBattleMoves\n\ + adds r6, r0, r1\n\ + ldrb r1, [r6, 0x2]\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + ldr r1, =gTypeNames\n\ + adds r5, r0, r1\n\ + movs r0, 0x19\n\ + str r0, [sp]\n\ + mov r1, r8\n\ + str r1, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gText_MoveRelearnerPP\n\ + movs r0, 0x1\n\ + movs r2, 0\n\ + bl GetStringWidth\n\ + adds r4, r0, 0x4\n\ + ldrb r1, [r6, 0x4]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x2\n\ + bl ConvertIntToDecimalStringN\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + mov r0, r10\n\ + str r0, [sp]\n\ + mov r1, r8\n\ + str r1, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + add r2, sp, 0xC\n\ + bl AddTextPrinterParameterized\n\ + ldrb r0, [r6, 0x1]\n\ + cmp r0, 0x1\n\ + bhi _081D2A3C\n\ + ldr r5, =gText_ThreeDashes\n\ + b _081D2A4A\n\ + .pool\n\ +_081D2A3C:\n\ + ldrb r1, [r6, 0x1]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x3\n\ + bl ConvertIntToDecimalStringN\n\ + add r5, sp, 0xC\n\ +_081D2A4A:\n\ + movs r0, 0x19\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + str r0, [sp, 0x4]\n\ + movs r0, 0\n\ + str r0, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x6A\n\ + bl AddTextPrinterParameterized\n\ + ldrb r0, [r6, 0x3]\n\ + cmp r0, 0\n\ + bne _081D2A70\n\ + ldr r5, =gText_ThreeDashes\n\ + b _081D2A7E\n\ + .pool\n\ +_081D2A70:\n\ + ldrb r1, [r6, 0x3]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x3\n\ + bl ConvertIntToDecimalStringN\n\ + add r5, sp, 0xC\n\ +_081D2A7E:\n\ + movs r0, 0x29\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + str r0, [sp, 0x4]\n\ + movs r4, 0\n\ + str r4, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x6A\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gMoveDescriptionPointers\n\ + mov r0, r9\n\ + subs r0, 0x1\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + movs r0, 0x41\n\ + str r0, [sp]\n\ + str r4, [sp, 0x4]\n\ + str r4, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x7\n\ + adds r2, r5, 0\n\ + movs r3, 0\n\ + bl AddTextPrinterParameterized\n\ +_081D2AB6:\n\ + add sp, 0x2C\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +NAKED +void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) +{ +#ifdef NONMATCHING + //u8 offset; + const u8 *labelStr; + const struct ContestMove *move; + u8 category; + const u8 **temp; + + MoveRelearnerShowHideHearts(chosenMove); + FillWindowPixelBuffer(1, 0x11); + labelStr = gText_MoveRelearnerContestMovesTitle; + // GCC compiles these as: + // add r3, r0, 0 + // lsls r3, r3, 24 + // lsrs r3, r3, 24 + // But in the original asm: + // lsls r3, r0, 24 + // lsrs r3, r3, 24 + //offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x80), 1, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerAppeal; + //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerJam; + //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x29, TEXT_SPEED_FF, NULL); + + if (chosenMove == MENU_NOTHING_CHOSEN) + { + CopyWindowToVram(1, 2); + return; + } + + move = &gContestMoves[chosenMove]; + temp = (const u8**)gContestMoveTypeTextPointers; + category = move->contestCategory; + labelStr = temp[category]; + AddTextPrinterParameterized(1, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gContestEffectDescriptionPointers[move->effect]; + AddTextPrinterParameterized(1, 1, labelStr, 0, 0x41, TEXT_SPEED_FF, NULL); + + CopyWindowToVram(1, 2); +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + sub sp, 0xC\n\ + adds r4, r0, 0\n\ + bl MoveRelearnerShowHideHearts\n\ + movs r0, 0x1\n\ + movs r1, 0x11\n\ + bl FillWindowPixelBuffer\n\ + ldr r5, =gText_MoveRelearnerContestMovesTitle\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x80\n\ + bl GetStringCenterAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r7, 0xFF\n\ + str r7, [sp, 0x4]\n\ + movs r6, 0\n\ + str r6, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerAppeal\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x5C\n\ + bl GetStringRightAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x19\n\ + mov r8, r0\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerJam\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x5C\n\ + bl GetStringRightAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x29\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + cmp r4, r0\n\ + bne _081D2B6C\n\ + movs r0, 0x1\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ + b _081D2BB8\n\ + .pool\n\ +_081D2B6C:\n\ + lsls r4, 3\n\ + ldr r0, =gContestMoves\n\ + adds r4, r0\n\ + ldr r1, =gContestMoveTypeTextPointers\n\ + ldrb r0, [r4, 0x1]\n\ + lsls r0, 29\n\ + lsrs r0, 27\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + mov r0, r8\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gContestEffectDescriptionPointers\n\ + ldrb r0, [r4]\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + movs r0, 0x41\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x7\n\ + adds r2, r5, 0\n\ + movs r3, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x1\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ +_081D2BB8:\n\ + add sp, 0xC\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (onInit != TRUE) + PlaySE(SE_SELECT); + MoveRelearnerLoadBattleMoveDescription(itemIndex); + MoveRelearnerMenuLoadContestMoveDescription(itemIndex); +} + +void MoveRelearnerPrintText(u8 *text) +{ + u8 speed; + + FillWindowPixelBuffer(3, 0x11); + gTextFlags.canABSpeedUpPrint = TRUE; + speed = GetPlayerTextSpeedDelay(); + AddTextPrinterParameterized2(3, 1, text, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); +} + +bool16 MoveRelearnerRunTextPrinters(void) +{ + RunTextPrinters(); + return IsTextPrinterActive(3); +} + +void MoveRelearnerCreateYesNoMenu(void) +{ + CreateYesNoMenu(&gMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); } \ No newline at end of file diff --git a/src/move_relearner.c b/src/move_relearner.c index 1766476cc..8576c5e68 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -12,10 +12,10 @@ #include "alloc.h" #include "menu.h" #include "menu_helpers.h" +#include "menu_unknown.h" #include "overworld.h" #include "palette.h" #include "pokemon_summary_screen.h" -#include "pokenav.h" #include "script.h" #include "sound.h" #include "sprite.h" diff --git a/src/strings.c b/src/strings.c index bed8f4b68..577d26f5c 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1751,14 +1751,14 @@ const u8 gText_MoveRelearnerPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgo const u8 gUnknown_085EF9C8[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}."); const u8 gText_MoveRelearnerGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); const u8 gText_MoveRelearnerWhichMoveToForget[] = _("Which move should be\nforgotten?\p"); -const u8 gText_BattleMoves2[] = _("BATTLE MOVES"); -const u8 gText_ContestMoves2[] = _("CONTEST MOVES"); +const u8 gText_MoveRelearnerBattleMoves[] = _("BATTLE MOVES"); +const u8 gText_MoveRelearnerContestMovesTitle[] = _("CONTEST MOVES"); const u8 gUnknown_085EFA4C[] = _("TYPE/"); -const u8 gText_PPSlash[] = _("PP/"); -const u8 gText_PowerSlash[] = _("POWER/"); -const u8 gText_AccuracySlash[] = _("ACCURACY/"); -const u8 gText_Appeal2[] = _("APPEAL"); -const u8 gText_Jam2[] = _("JAM"); +const u8 gText_MoveRelearnerPP[] = _("PP/"); +const u8 gText_MoveRelearnerPower[] = _("POWER/"); +const u8 gText_MoveRelearnerAccuracy[] = _("ACCURACY/"); +const u8 gText_MoveRelearnerAppeal[] = _("APPEAL"); +const u8 gText_MoveRelearnerJam[] = _("JAM"); const u8 gText_Kira[] = _("KIRA"); const u8 gText_Amy[] = _("AMY"); const u8 gText_John[] = _("JOHN"); -- cgit v1.2.3 From af182d6f168afbb7c8c35fe9240ecf931099d06e Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 02:10:44 -0500 Subject: Minor cleanup before pushing --- src/menu_unknown.c | 83 ++++++++++++++++++---------------------------------- src/move_relearner.c | 2 +- 2 files changed, 30 insertions(+), 55 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index 78b2cc8d5..21e19cacc 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -21,22 +21,18 @@ #include "constants/songs.h" #include "gba/io_reg.h" -#define WINDOW_UNK_0 0 -#define WINDOW_UNK_1 1 -#define WINDOW_UNK_2 2 - EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; -void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); -void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); -void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); -void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); -extern void nullsub_79(void); +static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); +static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); +static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void nullsub_79(void); static const struct WindowTemplate sUnknown_086253E8[] = { - [WINDOW_UNK_0] = { + { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -45,7 +41,7 @@ static const struct WindowTemplate sUnknown_086253E8[] = .paletteNum = 0xF, .baseBlock = 0x8 }, - [WINDOW_UNK_1] = { + { .bg = 0, .tilemapLeft = 21, .tilemapTop = 1, @@ -54,7 +50,7 @@ static const struct WindowTemplate sUnknown_086253E8[] = .paletteNum = 0xF, .baseBlock = 0x18 }, - [WINDOW_UNK_2] = { + { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -119,7 +115,7 @@ static const u8 sUnknown_08625410[] = }; -const struct WindowTemplate gMoveRelearnerWindowTemplates[] = +static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = { { .bg = 1, @@ -169,7 +165,7 @@ const struct WindowTemplate gMoveRelearnerWindowTemplates[] = DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate gMoveRelearnerYesNoMenuTemplate = +static const struct WindowTemplate sMoveRelearnerYesNoMenuTemplate = { .bg = 0, .tilemapLeft = 22, @@ -181,7 +177,7 @@ const struct WindowTemplate gMoveRelearnerYesNoMenuTemplate = }; -const struct ListMenuTemplate gMoveRelearnerMovesListTemplate = +static const struct ListMenuTemplate sMoveRelearnerMovesListTemplate = { .items = NULL, .moveCursorFunc = MoveRelearnerCursorCallback, @@ -228,16 +224,16 @@ u8 sub_81D1C84(u8 a0) u8 windowId = sUnknown_0203CF48[a0]; if (windowId == 0xFF) { - if (a0 == WINDOW_UNK_2) + if (a0 == 2) { u32 v1; u32 v2; s32 v3; - template = sUnknown_086253E8[WINDOW_UNK_2]; + template = sUnknown_086253E8[2]; v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); template.width = v3; - sUnknown_0203CF48[WINDOW_UNK_2] = AddWindow(&template); + sUnknown_0203CF48[2] = AddWindow(&template); } else { @@ -256,12 +252,12 @@ void sub_81D1D04(u8 a0) sUnknown_0203CF48[a0] = 0xFF; } -u8 sub_81D1D34(u8 a0) +static u8 sub_81D1D34(u8 a0) { return sUnknown_0203CF48[a0]; } -void sub_81D1D44(u8 windowId, s32 itemId, u8 y) +static void sub_81D1D44(u8 windowId, s32 itemId, u8 y) { u8 buffer[30]; u16 length; @@ -310,7 +306,7 @@ u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) return ListMenuInit(&gMultiuseListMenuTemplate, page->itemsAbove, page->cursorPos); } -void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (onInit != TRUE) PlaySE(SE_SELECT); @@ -355,27 +351,6 @@ void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) NAKED void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 arg1[4][5], struct UnknownSubStruct_81D1ED4 arg2[4][5]) { - /* - u16 j; - u16 i; - s16 v1; - s16 v2; - for (j = 0; j < 5; j++) - { - v1 = arg1[0][j].unk0; - v2 = (arg2[0][j].unk0 - v1) / 10; - - for (i = 0; i < 9; i++) - { - arg0->unk64[i][j].unk0 = v1 + ((v1 << 1) & 1); - } - - for (i = 0; i < 9; i++) - { - - } - } - */ asm(".syntax unified\n\ push {r4-r7,lr}\n\ mov r7, r10\n\ @@ -723,7 +698,7 @@ void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) } NAKED -void sub_81D2278(void *a0, void *a1, u16 *a2, u16 *a3, u8 a38, u32 a3C) +static void sub_81D2278(void *a0, void *a1, u16 *a2, u16 *a3, u8 a38, u32 a3C) { #ifdef NONMATCHING // a0 => sp0 @@ -1072,7 +1047,7 @@ _081D2494:\n\ } NAKED -void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0) +static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -1286,7 +1261,7 @@ _081D2620:\n\ } NAKED -void sub_81D2634(struct UnknownStruct_81D1ED4 *a0) +static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0) { asm(".syntax unified\n\ push {r4-r6,lr}\n\ @@ -1599,7 +1574,7 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) { u8 i; - InitWindows(gMoveRelearnerWindowTemplates); + InitWindows(sMoveRelearnerWindowTemplates); DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 1, 0xE0); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); @@ -1627,14 +1602,14 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) schedule_bg_copy_tilemap_to_vram(1); } -void nullsub_79(void) +static void nullsub_79(void) { } u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices) { - gMultiuseListMenuTemplate = gMoveRelearnerMovesListTemplate; + gMultiuseListMenuTemplate = sMoveRelearnerMovesListTemplate; gMultiuseListMenuTemplate.totalItems = numChoices; gMultiuseListMenuTemplate.items = items; @@ -1650,7 +1625,7 @@ u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices) } NAKED -void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) +static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) { // Two small issues, and a few renamed registers. #ifdef NONMATCHING @@ -1928,7 +1903,7 @@ _081D2AB6:\n\ } NAKED -void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) +static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) { #ifdef NONMATCHING //u8 offset; @@ -2089,7 +2064,7 @@ _081D2BB8:\n\ #endif } -void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (onInit != TRUE) PlaySE(SE_SELECT); @@ -2097,14 +2072,14 @@ void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *l MoveRelearnerMenuLoadContestMoveDescription(itemIndex); } -void MoveRelearnerPrintText(u8 *text) +void MoveRelearnerPrintText(u8 *str) { u8 speed; FillWindowPixelBuffer(3, 0x11); gTextFlags.canABSpeedUpPrint = TRUE; speed = GetPlayerTextSpeedDelay(); - AddTextPrinterParameterized2(3, 1, text, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); + AddTextPrinterParameterized2(3, 1, str, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); } bool16 MoveRelearnerRunTextPrinters(void) @@ -2115,5 +2090,5 @@ bool16 MoveRelearnerRunTextPrinters(void) void MoveRelearnerCreateYesNoMenu(void) { - CreateYesNoMenu(&gMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); } \ No newline at end of file diff --git a/src/move_relearner.c b/src/move_relearner.c index 8576c5e68..7d5b51899 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -37,7 +37,7 @@ * - Creates moveDisplayArrowTask to listen to right/left buttons. * - Creates moveListScrollArrowTask to listen to up/down buttons. * - Whenever the selected move changes (and once on init), the MoveRelearnerCursorCallback - * is called (see gMoveRelearnerMovesListTemplate). That callback will reload the contest + * is called (see sMoveRelearnerMovesListTemplate). That callback will reload the contest * display and battle display windows for the new move. Both are always loaded in * memory, but only the currently active one is copied to VRAM. The exception to this * is the appeal and jam hearts, which are sprites. MoveRelearnerShowHideHearts is called -- cgit v1.2.3 From eac70acab65dea005da2299e4bb209aff1ded60f Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 02:17:01 -0500 Subject: Change filename to something more descriptive --- src/menu_specialized.c | 2094 ++++++++++++++++++++++++++++++++++++++++++++++++ src/menu_unknown.c | 2094 ------------------------------------------------ src/move_relearner.c | 2 +- src/party_menu.c | 2 +- src/player_pc.c | 2 +- src/use_pokeblock.c | 2 +- 6 files changed, 2098 insertions(+), 2098 deletions(-) create mode 100644 src/menu_specialized.c delete mode 100644 src/menu_unknown.c (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c new file mode 100644 index 000000000..d9b2270f4 --- /dev/null +++ b/src/menu_specialized.c @@ -0,0 +1,2094 @@ +#include "global.h" +#include "alloc.h" +#include "battle_main.h" +#include "contest_effect.h" +#include "gpu_regs.h" +#include "menu.h" +#include "international_string_util.h" +#include "menu.h" +#include "menu_specialized.h" +#include "move_relearner.h" +#include "palette.h" +#include "player_pc.h" +#include "pokemon_summary_screen.h" +#include "scanline_effect.h" +#include "sound.h" +#include "strings.h" +#include "string_util.h" +#include "text_window.h" +#include "trig.h" +#include "window.h" +#include "constants/songs.h" +#include "gba/io_reg.h" + +EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; +EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; + +static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); +static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); +static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void nullsub_79(void); + +static const struct WindowTemplate sUnknown_086253E8[] = +{ + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 8, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x8 + }, + { + .bg = 0, + .tilemapLeft = 21, + .tilemapTop = 1, + .width = 8, + .height = 18, + .paletteNum = 0xF, + .baseBlock = 0x18 + }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 11, + .height = 8, + .paletteNum = 0xF, + .baseBlock = 0x18 + } +}; + +static const u8 sUnknown_08625400[] = +{ + 1, 2, 3 +}; + +static const u8 sEmptyItemName[] = _(""); + +static const struct ScanlineEffectParams sUnknown_08625404 = +{ + .dmaDest = (void*)REG_ADDR_WIN0H, + .dmaControl = SCANLINE_EFFECT_DMACNT_32BIT, + .initState = 1, + .unused9 = 0 +}; + + +static const u8 sUnknown_08625410[] = +{ + 4, + 5, + 6, + 7, + 8, + 9, 9, + 10, 10, + 0xB, 0xB, + 0xC, 0xC, + 0xD, 0xD, + 0xD, 0xD, + 0xE, 0xE, 0xE, 0xE, + 0xF, 0xF, 0xF, 0xF, + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, + 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, + 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, + 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, + 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, + 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, + 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, + 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, + 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x23 +}; + + +static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = +{ + { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 16, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0xA + }, + { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 16, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0xCA + }, + { + .bg = 1, + .tilemapLeft = 19, + .tilemapTop = 1, + .width = 10, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0x18A + }, + { + .bg = 1, + .tilemapLeft = 4, + .tilemapTop = 15, + .width = 22, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x202 + }, + { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 8, + .width = 5, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x25A + }, + DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate sMoveRelearnerYesNoMenuTemplate = +{ + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 8, + .width = 5, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x25A +}; + + +static const struct ListMenuTemplate sMoveRelearnerMovesListTemplate = +{ + .items = NULL, + .moveCursorFunc = MoveRelearnerCursorCallback, + .itemPrintFunc = NULL, + .totalItems = 0, + .maxShowed = 0, + .windowId = 2, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = LIST_NO_MULTIPLE_SCROLL, + .fontId = 1, + .cursorKind = 0 +}; + +bool8 sub_81D1C44(u8 count) +{ + u32 i; + struct ListMenuItem **v1; + v1 = &sUnknown_0203CF4C; + *v1 = Alloc(count * sizeof(struct ListMenuItem) + sizeof(struct ListMenuItem)); + + if (sUnknown_0203CF4C == NULL) + return FALSE; + + for (i = 0; i < ARRAY_COUNT(sUnknown_0203CF48); i = (u8)(i + 1)) + { + sUnknown_0203CF48[i] |= 0xFF; + } + + return TRUE; +} + +u8 sub_81D1C84(u8 a0) +{ + struct WindowTemplate template; + + u8 windowId = sUnknown_0203CF48[a0]; + if (windowId == 0xFF) + { + if (a0 == 2) + { + u32 v1; + u32 v2; + s32 v3; + + template = sUnknown_086253E8[2]; + v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); + template.width = v3; + sUnknown_0203CF48[2] = AddWindow(&template); + } + else + { + sUnknown_0203CF48[a0] = AddWindow(&sUnknown_086253E8[a0]); + } + SetStandardWindowBorderStyle(sUnknown_0203CF48[a0], 0); + } + return sUnknown_0203CF48[a0]; +} + +void sub_81D1D04(u8 a0) +{ + sub_8198070(sUnknown_0203CF48[a0], 0); + ClearWindowTilemap(sUnknown_0203CF48[a0]); + RemoveWindow(sUnknown_0203CF48[a0]); + sUnknown_0203CF48[a0] = 0xFF; +} + +static u8 sub_81D1D34(u8 a0) +{ + return sUnknown_0203CF48[a0]; +} + +static void sub_81D1D44(u8 windowId, s32 itemId, u8 y) +{ + u8 buffer[30]; + u16 length; + + if (itemId == LIST_CANCEL) + return; + + StringCopy(buffer, gSaveBlock1Ptr->mail[6 + itemId].playerName); + sub_81DB52C(buffer); + length = StringLength(buffer); + if (length <= 5) + ConvertInternationalString(buffer, LANGUAGE_JAPANESE); + AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, sUnknown_08625400, -1, buffer); +} + +u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) +{ + u16 i; + for (i = 0; i < page->count; i++) + { + sUnknown_0203CF4C[i].name = sEmptyItemName; + sUnknown_0203CF4C[i].id = i; + } + + sUnknown_0203CF4C[i].name = gText_Cancel2; + sUnknown_0203CF4C[i].id = LIST_CANCEL; + + gMultiuseListMenuTemplate.items = sUnknown_0203CF4C; + gMultiuseListMenuTemplate.totalItems = page->count + 1; + gMultiuseListMenuTemplate.windowId = sUnknown_0203CF48[1]; + gMultiuseListMenuTemplate.header_X = 0; + gMultiuseListMenuTemplate.item_X = 8; + gMultiuseListMenuTemplate.cursor_X = 0; + gMultiuseListMenuTemplate.maxShowed = 8; + gMultiuseListMenuTemplate.upText_Y = 9; + gMultiuseListMenuTemplate.cursorPal = 2; + gMultiuseListMenuTemplate.fillValue = 1; + gMultiuseListMenuTemplate.cursorShadowPal = 3; + gMultiuseListMenuTemplate.moveCursorFunc = sub_81D1E7C; + gMultiuseListMenuTemplate.itemPrintFunc = sub_81D1D44; + gMultiuseListMenuTemplate.fontId = 1; + gMultiuseListMenuTemplate.cursorKind = 0; + gMultiuseListMenuTemplate.lettersSpacing = 0; + gMultiuseListMenuTemplate.itemVerticalPadding = 0; + gMultiuseListMenuTemplate.scrollMultiple = LIST_NO_MULTIPLE_SCROLL; + return ListMenuInit(&gMultiuseListMenuTemplate, page->itemsAbove, page->cursorPos); +} + +static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (onInit != TRUE) + PlaySE(SE_SELECT); +} + +void sub_81D1E90(struct PlayerPCItemPageStruct *page) +{ + page->scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(2, 0xC8, 12, 0x94, page->count - page->pageItems + 1, 0x6E, 0x6E, &page->itemsAbove); +} + +void sub_81D1EC0(void) +{ + Free(sUnknown_0203CF4C); +} + +void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) +{ + u8 j; + u8 i; + for (j = 0; j < 5; j++) + { + for (i = 0; i < 10; i++) + { + a0->unk64[i][j].unk0 = 0; + a0->unk64[i][j].unk2 = 0; + } + for (i = 0; i < 4; i++) + { + a0->unk0[i][j] = 0; + a0->unk14[i][j].unk0 = 0x9B; + a0->unk14[i][j].unk2 = 0x5B; + } + + a0->unk12C[j].unk0 = 0; + a0->unk12C[j].unk2 = 0; + } + + a0->unk354 = 0; + a0->unk352 = 0; +} + +NAKED +void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 arg1[4][5], struct UnknownSubStruct_81D1ED4 arg2[4][5]) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x8\n\ + mov r8, r0\n\ + str r1, [sp]\n\ + mov r9, r2\n\ + movs r7, 0\n\ +_081D1F98:\n\ + lsls r4, r7, 2\n\ + ldr r1, [sp]\n\ + adds r0, r4, r1\n\ + ldrh r1, [r0]\n\ + lsls r5, r1, 8\n\ + mov r2, r9\n\ + adds r0, r4, r2\n\ + ldrh r0, [r0]\n\ + subs r0, r1\n\ + lsls r0, 8\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r6, r0, 0\n\ + movs r3, 0\n\ + adds r7, 0x1\n\ + mov r10, r7\n\ + mov r12, r4\n\ +_081D1FBC:\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + add r0, r12\n\ + add r0, r8\n\ + asrs r2, r5, 8\n\ + asrs r1, r5, 7\n\ + movs r7, 0x1\n\ + ands r1, r7\n\ + adds r2, r1\n\ + adds r0, 0x64\n\ + strh r2, [r0]\n\ + adds r5, r6\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x8\n\ + bls _081D1FBC\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r0, r4, r0\n\ + add r0, r8\n\ + mov r1, r9\n\ + adds r2, r4, r1\n\ + ldrh r1, [r2]\n\ + adds r0, 0x64\n\ + strh r1, [r0]\n\ + ldr r7, [sp]\n\ + adds r0, r4, r7\n\ + ldrh r1, [r0, 0x2]\n\ + lsls r5, r1, 8\n\ + ldrh r0, [r2, 0x2]\n\ + subs r0, r1\n\ + lsls r0, 8\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r6, r0, 0\n\ + movs r3, 0\n\ + str r4, [sp, 0x4]\n\ + movs r0, 0x1\n\ + mov r12, r0\n\ +_081D2012:\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + ldr r1, [sp, 0x4]\n\ + adds r0, r1, r0\n\ + add r0, r8\n\ + asrs r2, r5, 8\n\ + asrs r1, r5, 7\n\ + mov r7, r12\n\ + ands r1, r7\n\ + adds r2, r1\n\ + adds r0, 0x66\n\ + strh r2, [r0]\n\ + adds r5, r6\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x8\n\ + bls _081D2012\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r0, r4, r0\n\ + add r0, r8\n\ + mov r2, r9\n\ + adds r1, r4, r2\n\ + ldrh r1, [r1, 0x2]\n\ + adds r0, 0x66\n\ + strh r1, [r0]\n\ + mov r7, r10\n\ + lsls r0, r7, 16\n\ + lsrs r7, r0, 16\n\ + cmp r7, 0x4\n\ + bls _081D1F98\n\ + ldr r1, =0x00000352\n\ + add r1, r8\n\ + movs r0, 0\n\ + strh r0, [r1]\n\ + add sp, 0x8\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +} + +bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) +{ + if (a0->unk352 < 10) + { + sub_81D2230(a0); + return ++a0->unk352 != 10; + } + else + { + return FALSE; + } + +} + +void sub_81D20AC(struct UnknownStruct_81D1ED4 *a0) +{ + a0->unk355 = 0; +} + +bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) +{ + struct ScanlineEffectParams params; + switch (arg0->unk355) + { + case 0: + ScanlineEffect_Clear(); + arg0->unk355++; + return TRUE; + case 1: + params = sUnknown_08625404; + ScanlineEffect_SetParams(params); + arg0->unk355++; + return FALSE; + default: + return FALSE; + } +} + +NAKED +void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0) +{ + // Three of the additions are in the wrong order. +#ifdef NONMATCHING + u16 i; + u32 v3; + u32 v4; + u16 *scanBuffer1; + u16 *scanBuffer2; + u32 scanBufferWidth; + u32 mask; + u16 *unkBuff1; + u16 *unkBuff2; + u16 *unkBuff3; + u16 *unkBuff4; + + if (arg0->unk354 == 0) + return; + + sub_81D24A4(arg0); + sub_81D2634(arg0); + + i = 0; + scanBuffer1 = gScanlineEffectRegBuffers[0]; + scanBufferWidth = ARRAY_COUNT(gScanlineEffectRegBuffers[0]); + scanBuffer2 = scanBuffer1 + scanBufferWidth; + + // This function accesses the arrays "manually", where every other entry + // is just handled differently, rather than a pairwise struct. + unkBuff1 = (u16*)&arg0->unk13C[0].unk0; + mask = 0xFFFF; + unkBuff2 = (u16*)&arg0->unk13C[0].unk2; + unkBuff3 = (u16*)&arg0->unk248[0].unk0; + unkBuff4 = (u16*)&arg0->unk248[0].unk2; + + for (; i < 0x42; i++) + { + u32 offset1; + register u32 offset2 asm("r2"); + u32 offset3; + + offset1 = (i + 0x37) * 2; + offset2 = i + 0x37; + scanBuffer2[offset1] = (scanBuffer1[offset1] = (unkBuff1[i * 2] << 8) | unkBuff2[i * 2]) & mask; + + offset3 = offset2 * 2 + 1; + scanBuffer2[offset3] = (scanBuffer1[offset3] = (unkBuff3[i * 2] << 8) | unkBuff4[i * 2]) & mask; + } + + arg0->unk354 = 0; +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x10\n\ + adds r6, r0, 0\n\ + movs r1, 0xD5\n\ + lsls r1, 2\n\ + adds r0, r6, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _081D21BE\n\ + adds r0, r6, 0\n\ + bl sub_81D24A4\n\ + adds r0, r6, 0\n\ + bl sub_81D2634\n\ + movs r7, 0\n\ + ldr r5, =gScanlineEffectRegBuffers\n\ + mov r12, r5\n\ + movs r0, 0xF0\n\ + lsls r0, 3\n\ + add r0, r12\n\ + mov r9, r0\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r1, r6, r1\n\ + str r1, [sp]\n\ + ldr r5, =0x0000ffff\n\ + mov r8, r5\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r0, r6, r0\n\ + str r0, [sp, 0x4]\n\ + movs r1, 0x92\n\ + lsls r1, 2\n\ + adds r1, r6, r1\n\ + str r1, [sp, 0x8]\n\ + ldr r5, =0x0000024a\n\ + adds r5, r6\n\ + mov r10, r5\n\ +_081D215E:\n\ + adds r2, r7, 0\n\ + adds r2, 0x37\n\ + lsls r3, r2, 2\n\ + mov r0, r9\n\ + adds r0, r3, r0\n\ + str r0, [sp, 0xC]\n\ + add r3, r12\n\ + lsls r4, r7, 2\n\ + ldr r1, [sp]\n\ + adds r0, r1, r4\n\ + ldrh r0, [r0]\n\ + lsls r0, 8\n\ + ldr r5, [sp, 0x4]\n\ + adds r1, r5, r4\n\ + ldrh r1, [r1]\n\ + orrs r0, r1\n\ + strh r0, [r3]\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r5, [sp, 0xC]\n\ + strh r0, [r5]\n\ + lsls r2, 1\n\ + adds r2, 0x1\n\ + lsls r2, 1\n\ + mov r0, r9\n\ + adds r3, r2, r0\n\ + add r2, r12\n\ + ldr r1, [sp, 0x8]\n\ + adds r0, r1, r4\n\ + ldrh r0, [r0]\n\ + lsls r0, 8\n\ + add r4, r10\n\ + ldrh r1, [r4]\n\ + orrs r0, r1\n\ + strh r0, [r2]\n\ + mov r5, r8\n\ + ands r0, r5\n\ + strh r0, [r3]\n\ + adds r0, r7, 0x1\n\ + lsls r0, 16\n\ + lsrs r7, r0, 16\n\ + cmp r7, 0x41\n\ + bls _081D215E\n\ + movs r0, 0xD5\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + movs r0, 0\n\ + strb r0, [r1]\n\ +_081D21BE:\n\ + add sp, 0x10\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +void sub_81D21DC(u8 bg) +{ + u8 flags; + + if (bg > 3) + bg = 0; + + // Unset the WINOUT flag for the bg. + flags = (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) & ~(1 << bg); + + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0)); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, 0x9B)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0x38, 0x79)); + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0x38, 0x79)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); + SetGpuReg(REG_OFFSET_WINOUT, flags); +} + +void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) +{ + u16 i; + for (i = 0; i < 5; i++) + { + arg0->unk12C[i] = arg0->unk64[arg0->unk352][i]; + } + arg0->unk354 = 1; +} + +NAKED +static void sub_81D2278(void *a0, void *a1, u16 *a2, u16 *a3, u8 a38, u32 a3C) +{ +#ifdef NONMATCHING + // a0 => sp0 + // a1 => r6 + // a2 => r5 + // a3 => sp4 + // a38 => r9 + // a3C => r7 + u32 v1; // r10 + u32 v2; // sp8 + u32 v3; // spC + u32 v4; + u32 v5; + u16 v6; // r8 + u32 v7; + u32 v8; // sp10 + + v3 = 0; + + // v4 => r4 + // v5 => r0 + // v7 => r1 + if (a2[1] < a3[1]) + { + v1 = a2[1]; + v5 = a3[1]; + v7 = a2[0]; + v4 = v7 << 10; + v2 = a3[0]; + } + else + { + v5 = a2[1]; + v1 = a3[1]; + v7 = a3[0]; + v4 = v7 << 10; + v2 = a2[0]; + } + + v6 = v5 - v1; + if (v6 != 0) + { + v3 = (v2 - v7) / v6; + } + v6++; + + if (a3C == 0) + { + v8 = + } +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x18\n\ + str r0, [sp]\n\ + adds r6, r1, 0\n\ + adds r5, r2, 0\n\ + str r3, [sp, 0x4]\n\ + ldr r0, [sp, 0x38]\n\ + ldr r7, [sp, 0x3C]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ + movs r0, 0\n\ + str r0, [sp, 0xC]\n\ + ldrh r0, [r5, 0x2]\n\ + ldrh r1, [r3, 0x2]\n\ + cmp r0, r1\n\ + bcs _081D22B2\n\ + adds r2, r0, 0\n\ + mov r10, r2\n\ + ldrh r0, [r3, 0x2]\n\ + ldrh r1, [r5]\n\ + lsls r4, r1, 10\n\ + ldrh r3, [r3]\n\ + str r3, [sp, 0x8]\n\ + b _081D22C6\n\ +_081D22B2:\n\ + ldrh r0, [r5, 0x2]\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r1, [r1, 0x2]\n\ + mov r10, r1\n\ + ldr r2, [sp, 0x4]\n\ + ldrh r1, [r2]\n\ + lsls r4, r1, 10\n\ + ldrh r3, [r5]\n\ + str r3, [sp, 0x8]\n\ + mov r2, r10\n\ +_081D22C6:\n\ + subs r0, r2\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + cmp r0, 0\n\ + beq _081D22DE\n\ + subs r0, r3, r1\n\ + lsls r0, 10\n\ + mov r1, r8\n\ + bl __divsi3\n\ + str r0, [sp, 0xC]\n\ +_081D22DE:\n\ + mov r0, r8\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + cmp r7, 0\n\ + bne _081D2328\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + movs r5, 0\n\ + mov r3, r9\n\ + lsls r3, 1\n\ + mov r12, r3\n\ + ldr r0, [sp, 0x8]\n\ + add r0, r9\n\ + str r0, [sp, 0x10]\n\ + cmp r7, r8\n\ + bcs _081D23B6\n\ + movs r7, 0x1\n\ +_081D2308:\n\ + adds r2, r3, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r7\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r1, [sp, 0xC]\n\ + adds r4, r1\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D2308\n\ + b _081D23B6\n\ +_081D2328:\n\ + ldr r2, [sp, 0xC]\n\ + cmp r2, 0\n\ + ble _081D23C0\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r7, r0\n\ + movs r5, 0\n\ + mov r3, r9\n\ + lsls r3, 1\n\ + mov r12, r3\n\ + ldr r0, [sp, 0x8]\n\ + add r0, r9\n\ + str r0, [sp, 0x10]\n\ + cmp r5, r8\n\ + bcs _081D237A\n\ + ldr r0, =0x00026bff\n\ + cmp r4, r0\n\ + bgt _081D237A\n\ + mov r1, r12\n\ + str r1, [sp, 0x14]\n\ +_081D2352:\n\ + ldr r3, [sp, 0x14]\n\ + adds r2, r3, r7\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r3, 0x1\n\ + ands r0, r3\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r7, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcs _081D237A\n\ + ldr r1, =0x00026bff\n\ + cmp r4, r1\n\ + ble _081D2352\n\ +_081D237A:\n\ + mov r2, r10\n\ + adds r1, r2, r5\n\ + ldr r3, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r3, r2\n\ + strh r1, [r0]\n\ + ldrh r0, [r0]\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + cmp r5, r8\n\ + bcs _081D23B6\n\ + mov r3, r12\n\ + movs r7, 0x1\n\ +_081D2398:\n\ + adds r2, r3, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r7\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D2398\n\ +_081D23B6:\n\ + subs r0, r6, 0x4\n\ + b _081D248C\n\ + .pool\n\ +_081D23C0:\n\ + ldr r1, [sp, 0xC]\n\ + cmp r1, 0\n\ + bge _081D2464\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + movs r5, 0\n\ + mov r2, r9\n\ + lsls r2, 1\n\ + mov r12, r2\n\ + ldr r3, [sp, 0x8]\n\ + add r3, r9\n\ + str r3, [sp, 0x10]\n\ + cmp r5, r8\n\ + bcs _081D241E\n\ + adds r3, r2, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r2, 0x1\n\ + ands r0, r2\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r3]\n\ + b _081D2414\n\ +_081D23F2:\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcs _081D241E\n\ + mov r1, r12\n\ + adds r3, r1, r6\n\ + asrs r2, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r1, 0x1\n\ + ands r0, r1\n\ + adds r2, r0\n\ + add r2, r9\n\ + strh r2, [r3]\n\ +_081D2414:\n\ + ldr r0, =0x00026bff\n\ + cmp r4, r0\n\ + bgt _081D23F2\n\ + movs r0, 0x9B\n\ + strh r0, [r3]\n\ +_081D241E:\n\ + mov r2, r10\n\ + adds r1, r2, r5\n\ + ldr r3, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r3, r2\n\ + strh r1, [r0]\n\ + ldrh r0, [r0]\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r7, r0\n\ + cmp r5, r8\n\ + bcs _081D245A\n\ + mov r3, r12\n\ + movs r6, 0x1\n\ +_081D243C:\n\ + adds r2, r3, r7\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r6\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r7, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D243C\n\ +_081D245A:\n\ + subs r0, r7, 0x4\n\ + b _081D248C\n\ + .pool\n\ +_081D2464:\n\ + ldr r1, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r1, r2\n\ + mov r3, r10\n\ + strh r3, [r0]\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + adds r7, r0\n\ + ldrh r0, [r5]\n\ + adds r0, 0x1\n\ + strh r0, [r6, 0x2]\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r0, [r1]\n\ + strh r0, [r7]\n\ + movs r0, 0x9B\n\ + strh r0, [r7, 0x2]\n\ + b _081D2494\n\ +_081D248C:\n\ + add r0, r12\n\ + mov r2, sp\n\ + ldrh r2, [r2, 0x10]\n\ + strh r2, [r0]\n\ +_081D2494:\n\ + add sp, 0x18\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +#endif +} + +NAKED +static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + sub sp, 0x8\n\ + adds r4, r0, 0\n\ + movs r0, 0x97\n\ + lsls r0, 1\n\ + adds r2, r4, r0\n\ + movs r3, 0x99\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r2]\n\ + ldrh r3, [r1]\n\ + cmp r0, r3\n\ + bcs _081D24E0\n\ + adds r7, r0, 0\n\ + movs r0, 0xA0\n\ + lsls r0, 1\n\ + adds r1, r4, r0\n\ + movs r3, 0x96\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + subs r0, 0x10\n\ + adds r3, r4, r0\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ + b _081D2500\n\ +_081D24E0:\n\ + ldrh r7, [r1]\n\ + movs r2, 0xA0\n\ + lsls r2, 1\n\ + adds r1, r4, r2\n\ + movs r3, 0x98\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r0, 0x96\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ +_081D2500:\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r5, r4, r1\n\ + movs r3, 0x98\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r0, 0x9A\n\ + lsls r0, 1\n\ + adds r6, r4, r0\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + adds r3, r6, 0\n\ + bl sub_81D2278\n\ + movs r2, 0\n\ + movs r1, 0x9B\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + movs r3, 0x9D\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r0]\n\ + ldrh r1, [r1]\n\ + cmp r0, r1\n\ + bhi _081D253C\n\ + movs r2, 0x1\n\ +_081D253C:\n\ + movs r0, 0x9C\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + str r2, [sp]\n\ + movs r1, 0x92\n\ + lsls r1, 2\n\ + adds r0, r4, r1\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + adds r2, r6, 0\n\ + bl sub_81D2278\n\ + movs r2, 0x38\n\ + cmp r2, r7\n\ + bcs _081D257E\n\ + adds r6, r5, 0\n\ + movs r3, 0\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r5, r4, r0\n\ +_081D2566:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + strh r3, [r1]\n\ + adds r0, r5, r0\n\ + strh r3, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, r7\n\ + bcc _081D2566\n\ +_081D257E:\n\ + movs r1, 0x97\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r2, [r0]\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r1, [r0]\n\ + cmp r2, r1\n\ + bhi _081D25B2\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r3, r4, r1\n\ + movs r5, 0x9B\n\ + adds r1, r0, 0\n\ +_081D259C:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r0, r3, r0\n\ + strh r5, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + ldrh r0, [r1]\n\ + cmp r2, r0\n\ + bls _081D259C\n\ +_081D25B2:\n\ + movs r2, 0x9B\n\ + lsls r2, 1\n\ + adds r1, r4, r2\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r0, [r0]\n\ + ldrh r1, [r1]\n\ + cmp r0, r1\n\ + bcs _081D25C8\n\ + adds r0, r1, 0\n\ +_081D25C8:\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bhi _081D25F8\n\ + movs r0, 0xA0\n\ + lsls r0, 1\n\ + adds r6, r4, r0\n\ + movs r3, 0\n\ + movs r1, 0xA1\n\ + lsls r1, 1\n\ + adds r5, r4, r1\n\ +_081D25E0:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + strh r3, [r1]\n\ + adds r0, r5, r0\n\ + strh r3, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bls _081D25E0\n\ +_081D25F8:\n\ + movs r2, 0x38\n\ + movs r3, 0xA0\n\ + lsls r3, 1\n\ + adds r5, r4, r3\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r4, r0\n\ + movs r6, 0x9B\n\ +_081D2608:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r1, r0, 2\n\ + adds r3, r5, r1\n\ + ldrh r0, [r3]\n\ + cmp r0, 0\n\ + bne _081D2620\n\ + adds r0, r4, r1\n\ + ldrh r0, [r0]\n\ + cmp r0, 0\n\ + beq _081D2620\n\ + strh r6, [r3]\n\ +_081D2620:\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bls _081D2608\n\ + add sp, 0x8\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +NAKED +static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + sub sp, 0x8\n\ + adds r4, r0, 0\n\ + movs r0, 0x97\n\ + lsls r0, 1\n\ + adds r2, r4, r0\n\ + movs r3, 0x9F\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r2]\n\ + ldrh r5, [r1]\n\ + cmp r0, r5\n\ + bcs _081D266E\n\ + adds r6, r0, 0\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r1, r4, r0\n\ + subs r3, 0x12\n\ + adds r2, r4, r3\n\ + movs r5, 0x9E\n\ + lsls r5, 1\n\ + adds r3, r4, r5\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ + b _081D2690\n\ +_081D266E:\n\ + ldrh r6, [r1]\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r1, r4, r0\n\ + movs r3, 0x9E\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r5, 0x96\n\ + lsls r5, 1\n\ + adds r3, r4, r5\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ +_081D2690:\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r5, r4, r0\n\ + movs r1, 0x9E\n\ + lsls r1, 1\n\ + adds r2, r4, r1\n\ + movs r0, 0x9C\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + bl sub_81D2278\n\ + cmp r6, 0x38\n\ + ble _081D26C8\n\ + movs r0, 0\n\ + adds r1, r5, 0\n\ + adds r2, r6, 0\n\ + subs r2, 0x38\n\ +_081D26BC:\n\ + strh r0, [r1]\n\ + strh r0, [r1, 0x2]\n\ + adds r1, 0x4\n\ + subs r2, 0x1\n\ + cmp r2, 0\n\ + bne _081D26BC\n\ +_081D26C8:\n\ + movs r1, 0x97\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r2, [r0]\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r5, [r0]\n\ + cmp r2, r5\n\ + bgt _081D26F6\n\ + movs r3, 0x9B\n\ + adds r1, r0, 0\n\ + lsls r0, r2, 2\n\ + movs r5, 0xB5\n\ + lsls r5, 1\n\ + adds r0, r5\n\ + adds r0, r4\n\ +_081D26EA:\n\ + strh r3, [r0]\n\ + adds r0, 0x4\n\ + adds r2, 0x1\n\ + ldrh r5, [r1]\n\ + cmp r2, r5\n\ + ble _081D26EA\n\ +_081D26F6:\n\ + movs r1, 0x9D\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r0, [r0]\n\ + adds r1, r0, 0x1\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r4, r2\n\ + ldrh r0, [r0]\n\ + cmp r0, r1\n\ + bge _081D270E\n\ + adds r0, r1, 0\n\ +_081D270E:\n\ + adds r2, r0, 0\n\ + cmp r2, 0x79\n\ + bgt _081D272C\n\ + movs r1, 0\n\ + lsls r0, r2, 2\n\ + movs r3, 0xB4\n\ + lsls r3, 1\n\ + adds r0, r3\n\ + adds r0, r4\n\ +_081D2720:\n\ + strh r1, [r0]\n\ + strh r1, [r0, 0x2]\n\ + adds r0, 0x4\n\ + adds r2, 0x1\n\ + cmp r2, 0x79\n\ + ble _081D2720\n\ +_081D272C:\n\ + movs r3, 0\n\ + movs r5, 0x92\n\ + lsls r5, 2\n\ + adds r1, r4, r5\n\ + movs r2, 0x41\n\ +_081D2736:\n\ + ldrh r0, [r1]\n\ + ldrh r4, [r1, 0x2]\n\ + cmp r0, r4\n\ + bcc _081D2742\n\ + strh r3, [r1, 0x2]\n\ + strh r3, [r1]\n\ +_081D2742:\n\ + adds r1, 0x4\n\ + subs r2, 0x1\n\ + cmp r2, 0\n\ + bge _081D2736\n\ + add sp, 0x8\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +NAKED +void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1) +{ + // There are some register-renaming issues here. The cause of the problem seems to be that + // GCC tries to save sUnknown_08625410 in a register, instead of loading the constant repeatedly. + // But this is one too many things to keep track of, so GCC is forced to use the stack. +#ifdef NONMATCHING + u8* v1; + u8 v2; + u8 v3; + s8 v4; + u16 v5; + + v1 = arg0->unk0[0]; + v2 = sUnknown_08625410[*v1]; + v1++; + arg1[0].unk0 = 0x9B; + arg1[0].unk2 = 0x5B - v2; + for (v3 = 0x40, v4 = 0, v5 = 1; v5 < 5; v5++) + { + v3 += 0x33; + v4--; + if (v4 < 0) + { + v4 = 4; + } + if (v4 == 2) + { + v3++; + } + + v2 = sUnknown_08625410[*v1]; + v1++; + arg1[v4].unk0 = ((gSineTable[v3 + 0x40] * v2) >> 8) + 0x9B; + arg1[v4].unk2 = ((gSineTable[v3] * v2) >> 8) - 0x5B; + if (v4 <= 2 && (v2 != 0x20 || v4 != 2)) + { + arg1[v4].unk0 = arg1[v4].unk0 + 1; + } + } +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + adds r6, r0, 0\n\ + mov r8, r1\n\ + ldr r1, =sUnknown_08625410\n\ + ldrb r0, [r6]\n\ + adds r0, r1\n\ + ldrb r2, [r0]\n\ + adds r6, 0x1\n\ + movs r0, 0x9B\n\ + mov r3, r8\n\ + strh r0, [r3]\n\ + movs r0, 0x5B\n\ + subs r0, r2\n\ + strh r0, [r3, 0x2]\n\ + movs r7, 0x40\n\ + movs r0, 0\n\ + mov r12, r0\n\ + movs r2, 0x1\n\ + mov r9, r2\n\ + ldr r3, =gSineTable\n\ + mov r10, r3\n\ +_081D2786:\n\ + adds r0, r7, 0\n\ + adds r0, 0x33\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + mov r1, r12\n\ + lsls r0, r1, 24\n\ + movs r2, 0xFF\n\ + lsls r2, 24\n\ + adds r0, r2\n\ + lsrs r3, r0, 24\n\ + mov r12, r3\n\ + cmp r0, 0\n\ + bge _081D27A4\n\ + movs r0, 0x4\n\ + mov r12, r0\n\ +_081D27A4:\n\ + mov r1, r12\n\ + lsls r0, r1, 24\n\ + asrs r4, r0, 24\n\ + cmp r4, 0x2\n\ + bne _081D27B4\n\ + adds r0, r7, 0x1\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ +_081D27B4:\n\ + ldrb r0, [r6]\n\ + ldr r2, =sUnknown_08625410\n\ + adds r0, r2\n\ + ldrb r2, [r0]\n\ + adds r6, 0x1\n\ + lsls r0, r4, 2\n\ + mov r1, r8\n\ + adds r3, r0, r1\n\ + adds r0, r7, 0\n\ + adds r0, 0x40\n\ + lsls r0, 1\n\ + add r0, r10\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + muls r0, r2\n\ + asrs r5, r0, 8\n\ + adds r0, r5, 0\n\ + adds r0, 0x9B\n\ + strh r0, [r3]\n\ + lsls r0, r7, 1\n\ + add r0, r10\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + adds r1, r2, 0\n\ + muls r1, r0\n\ + asrs r1, 8\n\ + movs r0, 0x5B\n\ + subs r0, r1\n\ + strh r0, [r3, 0x2]\n\ + cmp r4, 0x2\n\ + bgt _081D2800\n\ + cmp r2, 0x20\n\ + bne _081D27FA\n\ + cmp r4, 0x2\n\ + beq _081D2800\n\ +_081D27FA:\n\ + adds r0, r5, 0\n\ + adds r0, 0x9C\n\ + strh r0, [r3]\n\ +_081D2800:\n\ + mov r0, r9\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r9, r0\n\ + cmp r0, 0x4\n\ + bls _081D2786\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +void InitMoveRelearnerWindows(bool8 useContextWindow) +{ + u8 i; + + InitWindows(sMoveRelearnerWindowTemplates); + DeactivateAllTextPrinters(); + LoadUserWindowBorderGfx(0, 1, 0xE0); + LoadPalette(gUnknown_0860F074, 0xF0, 0x20); + + for (i = 0; i < 5; i++) + { + FillWindowPixelBuffer(i, 0x11); + } + + if (!useContextWindow) + { + PutWindowTilemap(0); + SetWindowBorderStyle(0, 0, 0x1, 0xE); + } + else + { + PutWindowTilemap(1); + SetWindowBorderStyle(1, 0, 1, 0xE); + } + PutWindowTilemap(2); + PutWindowTilemap(3); + SetWindowBorderStyle(2, 0, 1, 0xE); + SetWindowBorderStyle(3, 0, 1, 0xE); + nullsub_79(); + schedule_bg_copy_tilemap_to_vram(1); +} + +static void nullsub_79(void) +{ + +} + +u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices) +{ + gMultiuseListMenuTemplate = sMoveRelearnerMovesListTemplate; + gMultiuseListMenuTemplate.totalItems = numChoices; + gMultiuseListMenuTemplate.items = items; + + if (numChoices < 6) + { + gMultiuseListMenuTemplate.maxShowed = numChoices; + } + else + { + gMultiuseListMenuTemplate.maxShowed = 6; + } + return gMultiuseListMenuTemplate.maxShowed; +} + +NAKED +static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) +{ + // Two small issues, and a few renamed registers. +#ifdef NONMATCHING + u8 offset; + s32 width; + const struct BattleMove *move; + u8 buffer[0x20]; + const u8 *labelStr; + + FillWindowPixelBuffer(0, 0x11); + labelStr = gText_MoveRelearnerBattleMoves; + offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); + AddTextPrinterParameterized(0, 1, labelStr, offset, 1, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerPP; + AddTextPrinterParameterized(0, 1, labelStr, 4, 0x29, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerPower; + offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); + AddTextPrinterParameterized(0, 1, labelStr, offset, 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerAccuracy; + offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); + AddTextPrinterParameterized(0, 1, labelStr, offset, 0x29, TEXT_SPEED_FF, NULL); + if (chosenMove == LIST_CANCEL) + { + CopyWindowToVram(0, 2); + return; + } + move = &gBattleMoves[chosenMove]; + labelStr = gTypeNames[move->type]; + // GCC tries to be smart, and preserves the same 0x19 from above for this. + // The original asm just loads the constant 0x19 twice. + AddTextPrinterParameterized(0, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); + + // GCC tries to generate this as: + // add r4, r0, 0 + // add r4, r4, 4 + // But the original asm is: + // add r4, r0, 4 + width = 4 + GetStringWidth(1, gText_MoveRelearnerPP, 0); + + ConvertIntToDecimalStringN(buffer, move->pp, 0, 2); + AddTextPrinterParameterized(0, 1, buffer, width, 0x29, TEXT_SPEED_FF, NULL); + + + if (move->power < 2) + { + labelStr = gText_ThreeDashes; + } + else + { + ConvertIntToDecimalStringN(buffer, move->power, 0, 3); + labelStr = buffer; + } + AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x19, TEXT_SPEED_FF, NULL); + + if (move->accuracy == 0) + { + labelStr = gText_ThreeDashes; + } + else + { + ConvertIntToDecimalStringN(buffer, move->accuracy, 0, 3); + labelStr = buffer; + } + AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x29, TEXT_SPEED_FF, NULL); + labelStr = gMoveDescriptionPointers[chosenMove - 1]; + AddTextPrinterParameterized(0, 7, labelStr, 0, 0x41, 0, NULL); +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x2C\n\ + mov r9, r0\n\ + movs r0, 0\n\ + movs r1, 0x11\n\ + bl FillWindowPixelBuffer\n\ + ldr r5, =gText_MoveRelearnerBattleMoves\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x80\n\ + bl GetStringCenterAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + mov r8, r0\n\ + str r0, [sp, 0x4]\n\ + movs r7, 0\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerPP\n\ + movs r1, 0x29\n\ + mov r10, r1\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerPower\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x6A\n\ + bl GetStringRightAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + movs r1, 0x19\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerAccuracy\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x6A\n\ + bl GetStringRightAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + mov r1, r10\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + cmp r9, r0\n\ + bne _081D29C4\n\ + movs r0, 0\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ + b _081D2AB6\n\ + .pool\n\ +_081D29C4:\n\ + mov r1, r9\n\ + lsls r0, r1, 1\n\ + add r0, r9\n\ + lsls r0, 2\n\ + ldr r1, =gBattleMoves\n\ + adds r6, r0, r1\n\ + ldrb r1, [r6, 0x2]\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + ldr r1, =gTypeNames\n\ + adds r5, r0, r1\n\ + movs r0, 0x19\n\ + str r0, [sp]\n\ + mov r1, r8\n\ + str r1, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gText_MoveRelearnerPP\n\ + movs r0, 0x1\n\ + movs r2, 0\n\ + bl GetStringWidth\n\ + adds r4, r0, 0x4\n\ + ldrb r1, [r6, 0x4]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x2\n\ + bl ConvertIntToDecimalStringN\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + mov r0, r10\n\ + str r0, [sp]\n\ + mov r1, r8\n\ + str r1, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + add r2, sp, 0xC\n\ + bl AddTextPrinterParameterized\n\ + ldrb r0, [r6, 0x1]\n\ + cmp r0, 0x1\n\ + bhi _081D2A3C\n\ + ldr r5, =gText_ThreeDashes\n\ + b _081D2A4A\n\ + .pool\n\ +_081D2A3C:\n\ + ldrb r1, [r6, 0x1]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x3\n\ + bl ConvertIntToDecimalStringN\n\ + add r5, sp, 0xC\n\ +_081D2A4A:\n\ + movs r0, 0x19\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + str r0, [sp, 0x4]\n\ + movs r0, 0\n\ + str r0, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x6A\n\ + bl AddTextPrinterParameterized\n\ + ldrb r0, [r6, 0x3]\n\ + cmp r0, 0\n\ + bne _081D2A70\n\ + ldr r5, =gText_ThreeDashes\n\ + b _081D2A7E\n\ + .pool\n\ +_081D2A70:\n\ + ldrb r1, [r6, 0x3]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x3\n\ + bl ConvertIntToDecimalStringN\n\ + add r5, sp, 0xC\n\ +_081D2A7E:\n\ + movs r0, 0x29\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + str r0, [sp, 0x4]\n\ + movs r4, 0\n\ + str r4, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x6A\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gMoveDescriptionPointers\n\ + mov r0, r9\n\ + subs r0, 0x1\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + movs r0, 0x41\n\ + str r0, [sp]\n\ + str r4, [sp, 0x4]\n\ + str r4, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x7\n\ + adds r2, r5, 0\n\ + movs r3, 0\n\ + bl AddTextPrinterParameterized\n\ +_081D2AB6:\n\ + add sp, 0x2C\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +NAKED +static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) +{ +#ifdef NONMATCHING + //u8 offset; + const u8 *labelStr; + const struct ContestMove *move; + u8 category; + const u8 **temp; + + MoveRelearnerShowHideHearts(chosenMove); + FillWindowPixelBuffer(1, 0x11); + labelStr = gText_MoveRelearnerContestMovesTitle; + // GCC compiles these as: + // add r3, r0, 0 + // lsls r3, r3, 24 + // lsrs r3, r3, 24 + // But in the original asm: + // lsls r3, r0, 24 + // lsrs r3, r3, 24 + //offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x80), 1, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerAppeal; + //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerJam; + //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x29, TEXT_SPEED_FF, NULL); + + if (chosenMove == MENU_NOTHING_CHOSEN) + { + CopyWindowToVram(1, 2); + return; + } + + move = &gContestMoves[chosenMove]; + temp = (const u8**)gContestMoveTypeTextPointers; + category = move->contestCategory; + labelStr = temp[category]; + AddTextPrinterParameterized(1, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gContestEffectDescriptionPointers[move->effect]; + AddTextPrinterParameterized(1, 1, labelStr, 0, 0x41, TEXT_SPEED_FF, NULL); + + CopyWindowToVram(1, 2); +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + sub sp, 0xC\n\ + adds r4, r0, 0\n\ + bl MoveRelearnerShowHideHearts\n\ + movs r0, 0x1\n\ + movs r1, 0x11\n\ + bl FillWindowPixelBuffer\n\ + ldr r5, =gText_MoveRelearnerContestMovesTitle\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x80\n\ + bl GetStringCenterAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r7, 0xFF\n\ + str r7, [sp, 0x4]\n\ + movs r6, 0\n\ + str r6, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerAppeal\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x5C\n\ + bl GetStringRightAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x19\n\ + mov r8, r0\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerJam\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x5C\n\ + bl GetStringRightAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x29\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + cmp r4, r0\n\ + bne _081D2B6C\n\ + movs r0, 0x1\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ + b _081D2BB8\n\ + .pool\n\ +_081D2B6C:\n\ + lsls r4, 3\n\ + ldr r0, =gContestMoves\n\ + adds r4, r0\n\ + ldr r1, =gContestMoveTypeTextPointers\n\ + ldrb r0, [r4, 0x1]\n\ + lsls r0, 29\n\ + lsrs r0, 27\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + mov r0, r8\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gContestEffectDescriptionPointers\n\ + ldrb r0, [r4]\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + movs r0, 0x41\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x7\n\ + adds r2, r5, 0\n\ + movs r3, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x1\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ +_081D2BB8:\n\ + add sp, 0xC\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (onInit != TRUE) + PlaySE(SE_SELECT); + MoveRelearnerLoadBattleMoveDescription(itemIndex); + MoveRelearnerMenuLoadContestMoveDescription(itemIndex); +} + +void MoveRelearnerPrintText(u8 *str) +{ + u8 speed; + + FillWindowPixelBuffer(3, 0x11); + gTextFlags.canABSpeedUpPrint = TRUE; + speed = GetPlayerTextSpeedDelay(); + AddTextPrinterParameterized2(3, 1, str, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); +} + +bool16 MoveRelearnerRunTextPrinters(void) +{ + RunTextPrinters(); + return IsTextPrinterActive(3); +} + +void MoveRelearnerCreateYesNoMenu(void) +{ + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); +} \ No newline at end of file diff --git a/src/menu_unknown.c b/src/menu_unknown.c deleted file mode 100644 index 21e19cacc..000000000 --- a/src/menu_unknown.c +++ /dev/null @@ -1,2094 +0,0 @@ -#include "global.h" -#include "alloc.h" -#include "battle_main.h" -#include "contest_effect.h" -#include "gpu_regs.h" -#include "menu.h" -#include "international_string_util.h" -#include "menu.h" -#include "menu_unknown.h" -#include "move_relearner.h" -#include "palette.h" -#include "player_pc.h" -#include "pokemon_summary_screen.h" -#include "scanline_effect.h" -#include "sound.h" -#include "strings.h" -#include "string_util.h" -#include "text_window.h" -#include "trig.h" -#include "window.h" -#include "constants/songs.h" -#include "gba/io_reg.h" - -EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; -EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; - -static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); -static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); -static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); -static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); -static void nullsub_79(void); - -static const struct WindowTemplate sUnknown_086253E8[] = -{ - { - .bg = 0, - .tilemapLeft = 1, - .tilemapTop = 1, - .width = 8, - .height = 2, - .paletteNum = 0xF, - .baseBlock = 0x8 - }, - { - .bg = 0, - .tilemapLeft = 21, - .tilemapTop = 1, - .width = 8, - .height = 18, - .paletteNum = 0xF, - .baseBlock = 0x18 - }, - { - .bg = 0, - .tilemapLeft = 1, - .tilemapTop = 1, - .width = 11, - .height = 8, - .paletteNum = 0xF, - .baseBlock = 0x18 - } -}; - -static const u8 sUnknown_08625400[] = -{ - 1, 2, 3 -}; - -static const u8 sEmptyItemName[] = _(""); - -static const struct ScanlineEffectParams sUnknown_08625404 = -{ - .dmaDest = (void*)REG_ADDR_WIN0H, - .dmaControl = SCANLINE_EFFECT_DMACNT_32BIT, - .initState = 1, - .unused9 = 0 -}; - - -static const u8 sUnknown_08625410[] = -{ - 4, - 5, - 6, - 7, - 8, - 9, 9, - 10, 10, - 0xB, 0xB, - 0xC, 0xC, - 0xD, 0xD, - 0xD, 0xD, - 0xE, 0xE, 0xE, 0xE, - 0xF, 0xF, 0xF, 0xF, - 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, - 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, - 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, - 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, - 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, - 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, - 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, - 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, - 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, - 0x23 -}; - - -static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = -{ - { - .bg = 1, - .tilemapLeft = 1, - .tilemapTop = 1, - .width = 16, - .height = 12, - .paletteNum = 0xF, - .baseBlock = 0xA - }, - { - .bg = 1, - .tilemapLeft = 1, - .tilemapTop = 1, - .width = 16, - .height = 12, - .paletteNum = 0xF, - .baseBlock = 0xCA - }, - { - .bg = 1, - .tilemapLeft = 19, - .tilemapTop = 1, - .width = 10, - .height = 12, - .paletteNum = 0xF, - .baseBlock = 0x18A - }, - { - .bg = 1, - .tilemapLeft = 4, - .tilemapTop = 15, - .width = 22, - .height = 4, - .paletteNum = 0xF, - .baseBlock = 0x202 - }, - { - .bg = 0, - .tilemapLeft = 22, - .tilemapTop = 8, - .width = 5, - .height = 4, - .paletteNum = 0xF, - .baseBlock = 0x25A - }, - DUMMY_WIN_TEMPLATE -}; - -static const struct WindowTemplate sMoveRelearnerYesNoMenuTemplate = -{ - .bg = 0, - .tilemapLeft = 22, - .tilemapTop = 8, - .width = 5, - .height = 4, - .paletteNum = 0xF, - .baseBlock = 0x25A -}; - - -static const struct ListMenuTemplate sMoveRelearnerMovesListTemplate = -{ - .items = NULL, - .moveCursorFunc = MoveRelearnerCursorCallback, - .itemPrintFunc = NULL, - .totalItems = 0, - .maxShowed = 0, - .windowId = 2, - .header_X = 0, - .item_X = 8, - .cursor_X = 0, - .upText_Y = 1, - .cursorPal = 2, - .fillValue = 1, - .cursorShadowPal = 3, - .lettersSpacing = 0, - .itemVerticalPadding = 0, - .scrollMultiple = LIST_NO_MULTIPLE_SCROLL, - .fontId = 1, - .cursorKind = 0 -}; - -bool8 sub_81D1C44(u8 count) -{ - u32 i; - struct ListMenuItem **v1; - v1 = &sUnknown_0203CF4C; - *v1 = Alloc(count * sizeof(struct ListMenuItem) + sizeof(struct ListMenuItem)); - - if (sUnknown_0203CF4C == NULL) - return FALSE; - - for (i = 0; i < ARRAY_COUNT(sUnknown_0203CF48); i = (u8)(i + 1)) - { - sUnknown_0203CF48[i] |= 0xFF; - } - - return TRUE; -} - -u8 sub_81D1C84(u8 a0) -{ - struct WindowTemplate template; - - u8 windowId = sUnknown_0203CF48[a0]; - if (windowId == 0xFF) - { - if (a0 == 2) - { - u32 v1; - u32 v2; - s32 v3; - - template = sUnknown_086253E8[2]; - v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); - template.width = v3; - sUnknown_0203CF48[2] = AddWindow(&template); - } - else - { - sUnknown_0203CF48[a0] = AddWindow(&sUnknown_086253E8[a0]); - } - SetStandardWindowBorderStyle(sUnknown_0203CF48[a0], 0); - } - return sUnknown_0203CF48[a0]; -} - -void sub_81D1D04(u8 a0) -{ - sub_8198070(sUnknown_0203CF48[a0], 0); - ClearWindowTilemap(sUnknown_0203CF48[a0]); - RemoveWindow(sUnknown_0203CF48[a0]); - sUnknown_0203CF48[a0] = 0xFF; -} - -static u8 sub_81D1D34(u8 a0) -{ - return sUnknown_0203CF48[a0]; -} - -static void sub_81D1D44(u8 windowId, s32 itemId, u8 y) -{ - u8 buffer[30]; - u16 length; - - if (itemId == LIST_CANCEL) - return; - - StringCopy(buffer, gSaveBlock1Ptr->mail[6 + itemId].playerName); - sub_81DB52C(buffer); - length = StringLength(buffer); - if (length <= 5) - ConvertInternationalString(buffer, LANGUAGE_JAPANESE); - AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, sUnknown_08625400, -1, buffer); -} - -u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) -{ - u16 i; - for (i = 0; i < page->count; i++) - { - sUnknown_0203CF4C[i].name = sEmptyItemName; - sUnknown_0203CF4C[i].id = i; - } - - sUnknown_0203CF4C[i].name = gText_Cancel2; - sUnknown_0203CF4C[i].id = LIST_CANCEL; - - gMultiuseListMenuTemplate.items = sUnknown_0203CF4C; - gMultiuseListMenuTemplate.totalItems = page->count + 1; - gMultiuseListMenuTemplate.windowId = sUnknown_0203CF48[1]; - gMultiuseListMenuTemplate.header_X = 0; - gMultiuseListMenuTemplate.item_X = 8; - gMultiuseListMenuTemplate.cursor_X = 0; - gMultiuseListMenuTemplate.maxShowed = 8; - gMultiuseListMenuTemplate.upText_Y = 9; - gMultiuseListMenuTemplate.cursorPal = 2; - gMultiuseListMenuTemplate.fillValue = 1; - gMultiuseListMenuTemplate.cursorShadowPal = 3; - gMultiuseListMenuTemplate.moveCursorFunc = sub_81D1E7C; - gMultiuseListMenuTemplate.itemPrintFunc = sub_81D1D44; - gMultiuseListMenuTemplate.fontId = 1; - gMultiuseListMenuTemplate.cursorKind = 0; - gMultiuseListMenuTemplate.lettersSpacing = 0; - gMultiuseListMenuTemplate.itemVerticalPadding = 0; - gMultiuseListMenuTemplate.scrollMultiple = LIST_NO_MULTIPLE_SCROLL; - return ListMenuInit(&gMultiuseListMenuTemplate, page->itemsAbove, page->cursorPos); -} - -static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list) -{ - if (onInit != TRUE) - PlaySE(SE_SELECT); -} - -void sub_81D1E90(struct PlayerPCItemPageStruct *page) -{ - page->scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(2, 0xC8, 12, 0x94, page->count - page->pageItems + 1, 0x6E, 0x6E, &page->itemsAbove); -} - -void sub_81D1EC0(void) -{ - Free(sUnknown_0203CF4C); -} - -void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) -{ - u8 j; - u8 i; - for (j = 0; j < 5; j++) - { - for (i = 0; i < 10; i++) - { - a0->unk64[i][j].unk0 = 0; - a0->unk64[i][j].unk2 = 0; - } - for (i = 0; i < 4; i++) - { - a0->unk0[i][j] = 0; - a0->unk14[i][j].unk0 = 0x9B; - a0->unk14[i][j].unk2 = 0x5B; - } - - a0->unk12C[j].unk0 = 0; - a0->unk12C[j].unk2 = 0; - } - - a0->unk354 = 0; - a0->unk352 = 0; -} - -NAKED -void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 arg1[4][5], struct UnknownSubStruct_81D1ED4 arg2[4][5]) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x8\n\ - mov r8, r0\n\ - str r1, [sp]\n\ - mov r9, r2\n\ - movs r7, 0\n\ -_081D1F98:\n\ - lsls r4, r7, 2\n\ - ldr r1, [sp]\n\ - adds r0, r4, r1\n\ - ldrh r1, [r0]\n\ - lsls r5, r1, 8\n\ - mov r2, r9\n\ - adds r0, r4, r2\n\ - ldrh r0, [r0]\n\ - subs r0, r1\n\ - lsls r0, 8\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - adds r6, r0, 0\n\ - movs r3, 0\n\ - adds r7, 0x1\n\ - mov r10, r7\n\ - mov r12, r4\n\ -_081D1FBC:\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - add r0, r12\n\ - add r0, r8\n\ - asrs r2, r5, 8\n\ - asrs r1, r5, 7\n\ - movs r7, 0x1\n\ - ands r1, r7\n\ - adds r2, r1\n\ - adds r0, 0x64\n\ - strh r2, [r0]\n\ - adds r5, r6\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x8\n\ - bls _081D1FBC\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - add r0, r8\n\ - mov r1, r9\n\ - adds r2, r4, r1\n\ - ldrh r1, [r2]\n\ - adds r0, 0x64\n\ - strh r1, [r0]\n\ - ldr r7, [sp]\n\ - adds r0, r4, r7\n\ - ldrh r1, [r0, 0x2]\n\ - lsls r5, r1, 8\n\ - ldrh r0, [r2, 0x2]\n\ - subs r0, r1\n\ - lsls r0, 8\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - adds r6, r0, 0\n\ - movs r3, 0\n\ - str r4, [sp, 0x4]\n\ - movs r0, 0x1\n\ - mov r12, r0\n\ -_081D2012:\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - ldr r1, [sp, 0x4]\n\ - adds r0, r1, r0\n\ - add r0, r8\n\ - asrs r2, r5, 8\n\ - asrs r1, r5, 7\n\ - mov r7, r12\n\ - ands r1, r7\n\ - adds r2, r1\n\ - adds r0, 0x66\n\ - strh r2, [r0]\n\ - adds r5, r6\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x8\n\ - bls _081D2012\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - add r0, r8\n\ - mov r2, r9\n\ - adds r1, r4, r2\n\ - ldrh r1, [r1, 0x2]\n\ - adds r0, 0x66\n\ - strh r1, [r0]\n\ - mov r7, r10\n\ - lsls r0, r7, 16\n\ - lsrs r7, r0, 16\n\ - cmp r7, 0x4\n\ - bls _081D1F98\n\ - ldr r1, =0x00000352\n\ - add r1, r8\n\ - movs r0, 0\n\ - strh r0, [r1]\n\ - add sp, 0x8\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} - -bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) -{ - if (a0->unk352 < 10) - { - sub_81D2230(a0); - return ++a0->unk352 != 10; - } - else - { - return FALSE; - } - -} - -void sub_81D20AC(struct UnknownStruct_81D1ED4 *a0) -{ - a0->unk355 = 0; -} - -bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) -{ - struct ScanlineEffectParams params; - switch (arg0->unk355) - { - case 0: - ScanlineEffect_Clear(); - arg0->unk355++; - return TRUE; - case 1: - params = sUnknown_08625404; - ScanlineEffect_SetParams(params); - arg0->unk355++; - return FALSE; - default: - return FALSE; - } -} - -NAKED -void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0) -{ - // Three of the additions are in the wrong order. -#ifdef NONMATCHING - u16 i; - u32 v3; - u32 v4; - u16 *scanBuffer1; - u16 *scanBuffer2; - u32 scanBufferWidth; - u32 mask; - u16 *unkBuff1; - u16 *unkBuff2; - u16 *unkBuff3; - u16 *unkBuff4; - - if (arg0->unk354 == 0) - return; - - sub_81D24A4(arg0); - sub_81D2634(arg0); - - i = 0; - scanBuffer1 = gScanlineEffectRegBuffers[0]; - scanBufferWidth = ARRAY_COUNT(gScanlineEffectRegBuffers[0]); - scanBuffer2 = scanBuffer1 + scanBufferWidth; - - // This function accesses the arrays "manually", where every other entry - // is just handled differently, rather than a pairwise struct. - unkBuff1 = (u16*)&arg0->unk13C[0].unk0; - mask = 0xFFFF; - unkBuff2 = (u16*)&arg0->unk13C[0].unk2; - unkBuff3 = (u16*)&arg0->unk248[0].unk0; - unkBuff4 = (u16*)&arg0->unk248[0].unk2; - - for (; i < 0x42; i++) - { - u32 offset1; - register u32 offset2 asm("r2"); - u32 offset3; - - offset1 = (i + 0x37) * 2; - offset2 = i + 0x37; - scanBuffer2[offset1] = (scanBuffer1[offset1] = (unkBuff1[i * 2] << 8) | unkBuff2[i * 2]) & mask; - - offset3 = offset2 * 2 + 1; - scanBuffer2[offset3] = (scanBuffer1[offset3] = (unkBuff3[i * 2] << 8) | unkBuff4[i * 2]) & mask; - } - - arg0->unk354 = 0; -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x10\n\ - adds r6, r0, 0\n\ - movs r1, 0xD5\n\ - lsls r1, 2\n\ - adds r0, r6, r1\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _081D21BE\n\ - adds r0, r6, 0\n\ - bl sub_81D24A4\n\ - adds r0, r6, 0\n\ - bl sub_81D2634\n\ - movs r7, 0\n\ - ldr r5, =gScanlineEffectRegBuffers\n\ - mov r12, r5\n\ - movs r0, 0xF0\n\ - lsls r0, 3\n\ - add r0, r12\n\ - mov r9, r0\n\ - movs r1, 0xA0\n\ - lsls r1, 1\n\ - adds r1, r6, r1\n\ - str r1, [sp]\n\ - ldr r5, =0x0000ffff\n\ - mov r8, r5\n\ - movs r0, 0xA1\n\ - lsls r0, 1\n\ - adds r0, r6, r0\n\ - str r0, [sp, 0x4]\n\ - movs r1, 0x92\n\ - lsls r1, 2\n\ - adds r1, r6, r1\n\ - str r1, [sp, 0x8]\n\ - ldr r5, =0x0000024a\n\ - adds r5, r6\n\ - mov r10, r5\n\ -_081D215E:\n\ - adds r2, r7, 0\n\ - adds r2, 0x37\n\ - lsls r3, r2, 2\n\ - mov r0, r9\n\ - adds r0, r3, r0\n\ - str r0, [sp, 0xC]\n\ - add r3, r12\n\ - lsls r4, r7, 2\n\ - ldr r1, [sp]\n\ - adds r0, r1, r4\n\ - ldrh r0, [r0]\n\ - lsls r0, 8\n\ - ldr r5, [sp, 0x4]\n\ - adds r1, r5, r4\n\ - ldrh r1, [r1]\n\ - orrs r0, r1\n\ - strh r0, [r3]\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r5, [sp, 0xC]\n\ - strh r0, [r5]\n\ - lsls r2, 1\n\ - adds r2, 0x1\n\ - lsls r2, 1\n\ - mov r0, r9\n\ - adds r3, r2, r0\n\ - add r2, r12\n\ - ldr r1, [sp, 0x8]\n\ - adds r0, r1, r4\n\ - ldrh r0, [r0]\n\ - lsls r0, 8\n\ - add r4, r10\n\ - ldrh r1, [r4]\n\ - orrs r0, r1\n\ - strh r0, [r2]\n\ - mov r5, r8\n\ - ands r0, r5\n\ - strh r0, [r3]\n\ - adds r0, r7, 0x1\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ - cmp r7, 0x41\n\ - bls _081D215E\n\ - movs r0, 0xD5\n\ - lsls r0, 2\n\ - adds r1, r6, r0\n\ - movs r0, 0\n\ - strb r0, [r1]\n\ -_081D21BE:\n\ - add sp, 0x10\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif -} - -void sub_81D21DC(u8 bg) -{ - u8 flags; - - if (bg > 3) - bg = 0; - - // Unset the WINOUT flag for the bg. - flags = (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) & ~(1 << bg); - - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0)); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, 0x9B)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0x38, 0x79)); - SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0x38, 0x79)); - SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); - SetGpuReg(REG_OFFSET_WINOUT, flags); -} - -void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) -{ - u16 i; - for (i = 0; i < 5; i++) - { - arg0->unk12C[i] = arg0->unk64[arg0->unk352][i]; - } - arg0->unk354 = 1; -} - -NAKED -static void sub_81D2278(void *a0, void *a1, u16 *a2, u16 *a3, u8 a38, u32 a3C) -{ -#ifdef NONMATCHING - // a0 => sp0 - // a1 => r6 - // a2 => r5 - // a3 => sp4 - // a38 => r9 - // a3C => r7 - u32 v1; // r10 - u32 v2; // sp8 - u32 v3; // spC - u32 v4; - u32 v5; - u16 v6; // r8 - u32 v7; - u32 v8; // sp10 - - v3 = 0; - - // v4 => r4 - // v5 => r0 - // v7 => r1 - if (a2[1] < a3[1]) - { - v1 = a2[1]; - v5 = a3[1]; - v7 = a2[0]; - v4 = v7 << 10; - v2 = a3[0]; - } - else - { - v5 = a2[1]; - v1 = a3[1]; - v7 = a3[0]; - v4 = v7 << 10; - v2 = a2[0]; - } - - v6 = v5 - v1; - if (v6 != 0) - { - v3 = (v2 - v7) / v6; - } - v6++; - - if (a3C == 0) - { - v8 = - } -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x18\n\ - str r0, [sp]\n\ - adds r6, r1, 0\n\ - adds r5, r2, 0\n\ - str r3, [sp, 0x4]\n\ - ldr r0, [sp, 0x38]\n\ - ldr r7, [sp, 0x3C]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ - movs r0, 0\n\ - str r0, [sp, 0xC]\n\ - ldrh r0, [r5, 0x2]\n\ - ldrh r1, [r3, 0x2]\n\ - cmp r0, r1\n\ - bcs _081D22B2\n\ - adds r2, r0, 0\n\ - mov r10, r2\n\ - ldrh r0, [r3, 0x2]\n\ - ldrh r1, [r5]\n\ - lsls r4, r1, 10\n\ - ldrh r3, [r3]\n\ - str r3, [sp, 0x8]\n\ - b _081D22C6\n\ -_081D22B2:\n\ - ldrh r0, [r5, 0x2]\n\ - ldr r1, [sp, 0x4]\n\ - ldrh r1, [r1, 0x2]\n\ - mov r10, r1\n\ - ldr r2, [sp, 0x4]\n\ - ldrh r1, [r2]\n\ - lsls r4, r1, 10\n\ - ldrh r3, [r5]\n\ - str r3, [sp, 0x8]\n\ - mov r2, r10\n\ -_081D22C6:\n\ - subs r0, r2\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ - cmp r0, 0\n\ - beq _081D22DE\n\ - subs r0, r3, r1\n\ - lsls r0, 10\n\ - mov r1, r8\n\ - bl __divsi3\n\ - str r0, [sp, 0xC]\n\ -_081D22DE:\n\ - mov r0, r8\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ - cmp r7, 0\n\ - bne _081D2328\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - movs r5, 0\n\ - mov r3, r9\n\ - lsls r3, 1\n\ - mov r12, r3\n\ - ldr r0, [sp, 0x8]\n\ - add r0, r9\n\ - str r0, [sp, 0x10]\n\ - cmp r7, r8\n\ - bcs _081D23B6\n\ - movs r7, 0x1\n\ -_081D2308:\n\ - adds r2, r3, r6\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - ands r0, r7\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r1, [sp, 0xC]\n\ - adds r4, r1\n\ - adds r6, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcc _081D2308\n\ - b _081D23B6\n\ -_081D2328:\n\ - ldr r2, [sp, 0xC]\n\ - cmp r2, 0\n\ - ble _081D23C0\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r7, r0\n\ - movs r5, 0\n\ - mov r3, r9\n\ - lsls r3, 1\n\ - mov r12, r3\n\ - ldr r0, [sp, 0x8]\n\ - add r0, r9\n\ - str r0, [sp, 0x10]\n\ - cmp r5, r8\n\ - bcs _081D237A\n\ - ldr r0, =0x00026bff\n\ - cmp r4, r0\n\ - bgt _081D237A\n\ - mov r1, r12\n\ - str r1, [sp, 0x14]\n\ -_081D2352:\n\ - ldr r3, [sp, 0x14]\n\ - adds r2, r3, r7\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - movs r3, 0x1\n\ - ands r0, r3\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r7, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcs _081D237A\n\ - ldr r1, =0x00026bff\n\ - cmp r4, r1\n\ - ble _081D2352\n\ -_081D237A:\n\ - mov r2, r10\n\ - adds r1, r2, r5\n\ - ldr r3, [sp]\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r3, r2\n\ - strh r1, [r0]\n\ - ldrh r0, [r0]\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - cmp r5, r8\n\ - bcs _081D23B6\n\ - mov r3, r12\n\ - movs r7, 0x1\n\ -_081D2398:\n\ - adds r2, r3, r6\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - ands r0, r7\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r6, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcc _081D2398\n\ -_081D23B6:\n\ - subs r0, r6, 0x4\n\ - b _081D248C\n\ - .pool\n\ -_081D23C0:\n\ - ldr r1, [sp, 0xC]\n\ - cmp r1, 0\n\ - bge _081D2464\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - movs r5, 0\n\ - mov r2, r9\n\ - lsls r2, 1\n\ - mov r12, r2\n\ - ldr r3, [sp, 0x8]\n\ - add r3, r9\n\ - str r3, [sp, 0x10]\n\ - cmp r5, r8\n\ - bcs _081D241E\n\ - adds r3, r2, r6\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - movs r2, 0x1\n\ - ands r0, r2\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r3]\n\ - b _081D2414\n\ -_081D23F2:\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r6, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcs _081D241E\n\ - mov r1, r12\n\ - adds r3, r1, r6\n\ - asrs r2, r4, 10\n\ - asrs r0, r4, 9\n\ - movs r1, 0x1\n\ - ands r0, r1\n\ - adds r2, r0\n\ - add r2, r9\n\ - strh r2, [r3]\n\ -_081D2414:\n\ - ldr r0, =0x00026bff\n\ - cmp r4, r0\n\ - bgt _081D23F2\n\ - movs r0, 0x9B\n\ - strh r0, [r3]\n\ -_081D241E:\n\ - mov r2, r10\n\ - adds r1, r2, r5\n\ - ldr r3, [sp]\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r3, r2\n\ - strh r1, [r0]\n\ - ldrh r0, [r0]\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r7, r0\n\ - cmp r5, r8\n\ - bcs _081D245A\n\ - mov r3, r12\n\ - movs r6, 0x1\n\ -_081D243C:\n\ - adds r2, r3, r7\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - ands r0, r6\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r7, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcc _081D243C\n\ -_081D245A:\n\ - subs r0, r7, 0x4\n\ - b _081D248C\n\ - .pool\n\ -_081D2464:\n\ - ldr r1, [sp]\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r1, r2\n\ - mov r3, r10\n\ - strh r3, [r0]\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - adds r7, r0\n\ - ldrh r0, [r5]\n\ - adds r0, 0x1\n\ - strh r0, [r6, 0x2]\n\ - ldr r1, [sp, 0x4]\n\ - ldrh r0, [r1]\n\ - strh r0, [r7]\n\ - movs r0, 0x9B\n\ - strh r0, [r7, 0x2]\n\ - b _081D2494\n\ -_081D248C:\n\ - add r0, r12\n\ - mov r2, sp\n\ - ldrh r2, [r2, 0x10]\n\ - strh r2, [r0]\n\ -_081D2494:\n\ - add sp, 0x18\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -#endif -} - -NAKED -static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - sub sp, 0x8\n\ - adds r4, r0, 0\n\ - movs r0, 0x97\n\ - lsls r0, 1\n\ - adds r2, r4, r0\n\ - movs r3, 0x99\n\ - lsls r3, 1\n\ - adds r1, r4, r3\n\ - ldrh r0, [r2]\n\ - ldrh r3, [r1]\n\ - cmp r0, r3\n\ - bcs _081D24E0\n\ - adds r7, r0, 0\n\ - movs r0, 0xA0\n\ - lsls r0, 1\n\ - adds r1, r4, r0\n\ - movs r3, 0x96\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - subs r0, 0x10\n\ - adds r3, r4, r0\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ - b _081D2500\n\ -_081D24E0:\n\ - ldrh r7, [r1]\n\ - movs r2, 0xA0\n\ - lsls r2, 1\n\ - adds r1, r4, r2\n\ - movs r3, 0x98\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - movs r0, 0x96\n\ - lsls r0, 1\n\ - adds r3, r4, r0\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ -_081D2500:\n\ - movs r1, 0xA0\n\ - lsls r1, 1\n\ - adds r5, r4, r1\n\ - movs r3, 0x98\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - movs r0, 0x9A\n\ - lsls r0, 1\n\ - adds r6, r4, r0\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - adds r3, r6, 0\n\ - bl sub_81D2278\n\ - movs r2, 0\n\ - movs r1, 0x9B\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - movs r3, 0x9D\n\ - lsls r3, 1\n\ - adds r1, r4, r3\n\ - ldrh r0, [r0]\n\ - ldrh r1, [r1]\n\ - cmp r0, r1\n\ - bhi _081D253C\n\ - movs r2, 0x1\n\ -_081D253C:\n\ - movs r0, 0x9C\n\ - lsls r0, 1\n\ - adds r3, r4, r0\n\ - str r2, [sp]\n\ - movs r1, 0x92\n\ - lsls r1, 2\n\ - adds r0, r4, r1\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - adds r2, r6, 0\n\ - bl sub_81D2278\n\ - movs r2, 0x38\n\ - cmp r2, r7\n\ - bcs _081D257E\n\ - adds r6, r5, 0\n\ - movs r3, 0\n\ - movs r0, 0xA1\n\ - lsls r0, 1\n\ - adds r5, r4, r0\n\ -_081D2566:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r1, r6, r0\n\ - strh r3, [r1]\n\ - adds r0, r5, r0\n\ - strh r3, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, r7\n\ - bcc _081D2566\n\ -_081D257E:\n\ - movs r1, 0x97\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - ldrh r2, [r0]\n\ - movs r3, 0xD4\n\ - lsls r3, 2\n\ - adds r0, r4, r3\n\ - ldrh r1, [r0]\n\ - cmp r2, r1\n\ - bhi _081D25B2\n\ - movs r1, 0xA0\n\ - lsls r1, 1\n\ - adds r3, r4, r1\n\ - movs r5, 0x9B\n\ - adds r1, r0, 0\n\ -_081D259C:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r0, r3, r0\n\ - strh r5, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - ldrh r0, [r1]\n\ - cmp r2, r0\n\ - bls _081D259C\n\ -_081D25B2:\n\ - movs r2, 0x9B\n\ - lsls r2, 1\n\ - adds r1, r4, r2\n\ - movs r3, 0xD4\n\ - lsls r3, 2\n\ - adds r0, r4, r3\n\ - ldrh r0, [r0]\n\ - ldrh r1, [r1]\n\ - cmp r0, r1\n\ - bcs _081D25C8\n\ - adds r0, r1, 0\n\ -_081D25C8:\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x79\n\ - bhi _081D25F8\n\ - movs r0, 0xA0\n\ - lsls r0, 1\n\ - adds r6, r4, r0\n\ - movs r3, 0\n\ - movs r1, 0xA1\n\ - lsls r1, 1\n\ - adds r5, r4, r1\n\ -_081D25E0:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r1, r6, r0\n\ - strh r3, [r1]\n\ - adds r0, r5, r0\n\ - strh r3, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x79\n\ - bls _081D25E0\n\ -_081D25F8:\n\ - movs r2, 0x38\n\ - movs r3, 0xA0\n\ - lsls r3, 1\n\ - adds r5, r4, r3\n\ - movs r0, 0xA1\n\ - lsls r0, 1\n\ - adds r4, r0\n\ - movs r6, 0x9B\n\ -_081D2608:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r1, r0, 2\n\ - adds r3, r5, r1\n\ - ldrh r0, [r3]\n\ - cmp r0, 0\n\ - bne _081D2620\n\ - adds r0, r4, r1\n\ - ldrh r0, [r0]\n\ - cmp r0, 0\n\ - beq _081D2620\n\ - strh r6, [r3]\n\ -_081D2620:\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x79\n\ - bls _081D2608\n\ - add sp, 0x8\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -} - -NAKED -static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - sub sp, 0x8\n\ - adds r4, r0, 0\n\ - movs r0, 0x97\n\ - lsls r0, 1\n\ - adds r2, r4, r0\n\ - movs r3, 0x9F\n\ - lsls r3, 1\n\ - adds r1, r4, r3\n\ - ldrh r0, [r2]\n\ - ldrh r5, [r1]\n\ - cmp r0, r5\n\ - bcs _081D266E\n\ - adds r6, r0, 0\n\ - movs r0, 0x92\n\ - lsls r0, 2\n\ - adds r1, r4, r0\n\ - subs r3, 0x12\n\ - adds r2, r4, r3\n\ - movs r5, 0x9E\n\ - lsls r5, 1\n\ - adds r3, r4, r5\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ - b _081D2690\n\ -_081D266E:\n\ - ldrh r6, [r1]\n\ - movs r0, 0x92\n\ - lsls r0, 2\n\ - adds r1, r4, r0\n\ - movs r3, 0x9E\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - movs r5, 0x96\n\ - lsls r5, 1\n\ - adds r3, r4, r5\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ -_081D2690:\n\ - movs r0, 0x92\n\ - lsls r0, 2\n\ - adds r5, r4, r0\n\ - movs r1, 0x9E\n\ - lsls r1, 1\n\ - adds r2, r4, r1\n\ - movs r0, 0x9C\n\ - lsls r0, 1\n\ - adds r3, r4, r0\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - bl sub_81D2278\n\ - cmp r6, 0x38\n\ - ble _081D26C8\n\ - movs r0, 0\n\ - adds r1, r5, 0\n\ - adds r2, r6, 0\n\ - subs r2, 0x38\n\ -_081D26BC:\n\ - strh r0, [r1]\n\ - strh r0, [r1, 0x2]\n\ - adds r1, 0x4\n\ - subs r2, 0x1\n\ - cmp r2, 0\n\ - bne _081D26BC\n\ -_081D26C8:\n\ - movs r1, 0x97\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - ldrh r2, [r0]\n\ - movs r3, 0xD4\n\ - lsls r3, 2\n\ - adds r0, r4, r3\n\ - ldrh r5, [r0]\n\ - cmp r2, r5\n\ - bgt _081D26F6\n\ - movs r3, 0x9B\n\ - adds r1, r0, 0\n\ - lsls r0, r2, 2\n\ - movs r5, 0xB5\n\ - lsls r5, 1\n\ - adds r0, r5\n\ - adds r0, r4\n\ -_081D26EA:\n\ - strh r3, [r0]\n\ - adds r0, 0x4\n\ - adds r2, 0x1\n\ - ldrh r5, [r1]\n\ - cmp r2, r5\n\ - ble _081D26EA\n\ -_081D26F6:\n\ - movs r1, 0x9D\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - ldrh r0, [r0]\n\ - adds r1, r0, 0x1\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r4, r2\n\ - ldrh r0, [r0]\n\ - cmp r0, r1\n\ - bge _081D270E\n\ - adds r0, r1, 0\n\ -_081D270E:\n\ - adds r2, r0, 0\n\ - cmp r2, 0x79\n\ - bgt _081D272C\n\ - movs r1, 0\n\ - lsls r0, r2, 2\n\ - movs r3, 0xB4\n\ - lsls r3, 1\n\ - adds r0, r3\n\ - adds r0, r4\n\ -_081D2720:\n\ - strh r1, [r0]\n\ - strh r1, [r0, 0x2]\n\ - adds r0, 0x4\n\ - adds r2, 0x1\n\ - cmp r2, 0x79\n\ - ble _081D2720\n\ -_081D272C:\n\ - movs r3, 0\n\ - movs r5, 0x92\n\ - lsls r5, 2\n\ - adds r1, r4, r5\n\ - movs r2, 0x41\n\ -_081D2736:\n\ - ldrh r0, [r1]\n\ - ldrh r4, [r1, 0x2]\n\ - cmp r0, r4\n\ - bcc _081D2742\n\ - strh r3, [r1, 0x2]\n\ - strh r3, [r1]\n\ -_081D2742:\n\ - adds r1, 0x4\n\ - subs r2, 0x1\n\ - cmp r2, 0\n\ - bge _081D2736\n\ - add sp, 0x8\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -} - -NAKED -void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1) -{ - // There are some register-renaming issues here. The cause of the problem seems to be that - // GCC tries to save sUnknown_08625410 in a register, instead of loading the constant repeatedly. - // But this is one too many things to keep track of, so GCC is forced to use the stack. -#ifdef NONMATCHING - u8* v1; - u8 v2; - u8 v3; - s8 v4; - u16 v5; - - v1 = arg0->unk0[0]; - v2 = sUnknown_08625410[*v1]; - v1++; - arg1[0].unk0 = 0x9B; - arg1[0].unk2 = 0x5B - v2; - for (v3 = 0x40, v4 = 0, v5 = 1; v5 < 5; v5++) - { - v3 += 0x33; - v4--; - if (v4 < 0) - { - v4 = 4; - } - if (v4 == 2) - { - v3++; - } - - v2 = sUnknown_08625410[*v1]; - v1++; - arg1[v4].unk0 = ((gSineTable[v3 + 0x40] * v2) >> 8) + 0x9B; - arg1[v4].unk2 = ((gSineTable[v3] * v2) >> 8) - 0x5B; - if (v4 <= 2 && (v2 != 0x20 || v4 != 2)) - { - arg1[v4].unk0 = arg1[v4].unk0 + 1; - } - } -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - adds r6, r0, 0\n\ - mov r8, r1\n\ - ldr r1, =sUnknown_08625410\n\ - ldrb r0, [r6]\n\ - adds r0, r1\n\ - ldrb r2, [r0]\n\ - adds r6, 0x1\n\ - movs r0, 0x9B\n\ - mov r3, r8\n\ - strh r0, [r3]\n\ - movs r0, 0x5B\n\ - subs r0, r2\n\ - strh r0, [r3, 0x2]\n\ - movs r7, 0x40\n\ - movs r0, 0\n\ - mov r12, r0\n\ - movs r2, 0x1\n\ - mov r9, r2\n\ - ldr r3, =gSineTable\n\ - mov r10, r3\n\ -_081D2786:\n\ - adds r0, r7, 0\n\ - adds r0, 0x33\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ - mov r1, r12\n\ - lsls r0, r1, 24\n\ - movs r2, 0xFF\n\ - lsls r2, 24\n\ - adds r0, r2\n\ - lsrs r3, r0, 24\n\ - mov r12, r3\n\ - cmp r0, 0\n\ - bge _081D27A4\n\ - movs r0, 0x4\n\ - mov r12, r0\n\ -_081D27A4:\n\ - mov r1, r12\n\ - lsls r0, r1, 24\n\ - asrs r4, r0, 24\n\ - cmp r4, 0x2\n\ - bne _081D27B4\n\ - adds r0, r7, 0x1\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ -_081D27B4:\n\ - ldrb r0, [r6]\n\ - ldr r2, =sUnknown_08625410\n\ - adds r0, r2\n\ - ldrb r2, [r0]\n\ - adds r6, 0x1\n\ - lsls r0, r4, 2\n\ - mov r1, r8\n\ - adds r3, r0, r1\n\ - adds r0, r7, 0\n\ - adds r0, 0x40\n\ - lsls r0, 1\n\ - add r0, r10\n\ - movs r1, 0\n\ - ldrsh r0, [r0, r1]\n\ - muls r0, r2\n\ - asrs r5, r0, 8\n\ - adds r0, r5, 0\n\ - adds r0, 0x9B\n\ - strh r0, [r3]\n\ - lsls r0, r7, 1\n\ - add r0, r10\n\ - movs r1, 0\n\ - ldrsh r0, [r0, r1]\n\ - adds r1, r2, 0\n\ - muls r1, r0\n\ - asrs r1, 8\n\ - movs r0, 0x5B\n\ - subs r0, r1\n\ - strh r0, [r3, 0x2]\n\ - cmp r4, 0x2\n\ - bgt _081D2800\n\ - cmp r2, 0x20\n\ - bne _081D27FA\n\ - cmp r4, 0x2\n\ - beq _081D2800\n\ -_081D27FA:\n\ - adds r0, r5, 0\n\ - adds r0, 0x9C\n\ - strh r0, [r3]\n\ -_081D2800:\n\ - mov r0, r9\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r9, r0\n\ - cmp r0, 0x4\n\ - bls _081D2786\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif -} - -void InitMoveRelearnerWindows(bool8 useContextWindow) -{ - u8 i; - - InitWindows(sMoveRelearnerWindowTemplates); - DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, 0xE0); - LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - - for (i = 0; i < 5; i++) - { - FillWindowPixelBuffer(i, 0x11); - } - - if (!useContextWindow) - { - PutWindowTilemap(0); - SetWindowBorderStyle(0, 0, 0x1, 0xE); - } - else - { - PutWindowTilemap(1); - SetWindowBorderStyle(1, 0, 1, 0xE); - } - PutWindowTilemap(2); - PutWindowTilemap(3); - SetWindowBorderStyle(2, 0, 1, 0xE); - SetWindowBorderStyle(3, 0, 1, 0xE); - nullsub_79(); - schedule_bg_copy_tilemap_to_vram(1); -} - -static void nullsub_79(void) -{ - -} - -u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices) -{ - gMultiuseListMenuTemplate = sMoveRelearnerMovesListTemplate; - gMultiuseListMenuTemplate.totalItems = numChoices; - gMultiuseListMenuTemplate.items = items; - - if (numChoices < 6) - { - gMultiuseListMenuTemplate.maxShowed = numChoices; - } - else - { - gMultiuseListMenuTemplate.maxShowed = 6; - } - return gMultiuseListMenuTemplate.maxShowed; -} - -NAKED -static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) -{ - // Two small issues, and a few renamed registers. -#ifdef NONMATCHING - u8 offset; - s32 width; - const struct BattleMove *move; - u8 buffer[0x20]; - const u8 *labelStr; - - FillWindowPixelBuffer(0, 0x11); - labelStr = gText_MoveRelearnerBattleMoves; - offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); - AddTextPrinterParameterized(0, 1, labelStr, offset, 1, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerPP; - AddTextPrinterParameterized(0, 1, labelStr, 4, 0x29, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerPower; - offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); - AddTextPrinterParameterized(0, 1, labelStr, offset, 0x19, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerAccuracy; - offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); - AddTextPrinterParameterized(0, 1, labelStr, offset, 0x29, TEXT_SPEED_FF, NULL); - if (chosenMove == LIST_CANCEL) - { - CopyWindowToVram(0, 2); - return; - } - move = &gBattleMoves[chosenMove]; - labelStr = gTypeNames[move->type]; - // GCC tries to be smart, and preserves the same 0x19 from above for this. - // The original asm just loads the constant 0x19 twice. - AddTextPrinterParameterized(0, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); - - // GCC tries to generate this as: - // add r4, r0, 0 - // add r4, r4, 4 - // But the original asm is: - // add r4, r0, 4 - width = 4 + GetStringWidth(1, gText_MoveRelearnerPP, 0); - - ConvertIntToDecimalStringN(buffer, move->pp, 0, 2); - AddTextPrinterParameterized(0, 1, buffer, width, 0x29, TEXT_SPEED_FF, NULL); - - - if (move->power < 2) - { - labelStr = gText_ThreeDashes; - } - else - { - ConvertIntToDecimalStringN(buffer, move->power, 0, 3); - labelStr = buffer; - } - AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x19, TEXT_SPEED_FF, NULL); - - if (move->accuracy == 0) - { - labelStr = gText_ThreeDashes; - } - else - { - ConvertIntToDecimalStringN(buffer, move->accuracy, 0, 3); - labelStr = buffer; - } - AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x29, TEXT_SPEED_FF, NULL); - labelStr = gMoveDescriptionPointers[chosenMove - 1]; - AddTextPrinterParameterized(0, 7, labelStr, 0, 0x41, 0, NULL); -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x2C\n\ - mov r9, r0\n\ - movs r0, 0\n\ - movs r1, 0x11\n\ - bl FillWindowPixelBuffer\n\ - ldr r5, =gText_MoveRelearnerBattleMoves\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x80\n\ - bl GetStringCenterAlignXOffset\n\ - adds r4, r0, 0\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0xFF\n\ - mov r8, r0\n\ - str r0, [sp, 0x4]\n\ - movs r7, 0\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerPP\n\ - movs r1, 0x29\n\ - mov r10, r1\n\ - str r1, [sp]\n\ - mov r0, r8\n\ - str r0, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x4\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerPower\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x6A\n\ - bl GetStringRightAlignXOffset\n\ - adds r4, r0, 0\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - movs r1, 0x19\n\ - str r1, [sp]\n\ - mov r0, r8\n\ - str r0, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerAccuracy\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x6A\n\ - bl GetStringRightAlignXOffset\n\ - adds r4, r0, 0\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - mov r1, r10\n\ - str r1, [sp]\n\ - mov r0, r8\n\ - str r0, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - cmp r9, r0\n\ - bne _081D29C4\n\ - movs r0, 0\n\ - movs r1, 0x2\n\ - bl CopyWindowToVram\n\ - b _081D2AB6\n\ - .pool\n\ -_081D29C4:\n\ - mov r1, r9\n\ - lsls r0, r1, 1\n\ - add r0, r9\n\ - lsls r0, 2\n\ - ldr r1, =gBattleMoves\n\ - adds r6, r0, r1\n\ - ldrb r1, [r6, 0x2]\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - ldr r1, =gTypeNames\n\ - adds r5, r0, r1\n\ - movs r0, 0x19\n\ - str r0, [sp]\n\ - mov r1, r8\n\ - str r1, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x4\n\ - bl AddTextPrinterParameterized\n\ - ldr r1, =gText_MoveRelearnerPP\n\ - movs r0, 0x1\n\ - movs r2, 0\n\ - bl GetStringWidth\n\ - adds r4, r0, 0x4\n\ - ldrb r1, [r6, 0x4]\n\ - add r0, sp, 0xC\n\ - movs r2, 0\n\ - movs r3, 0x2\n\ - bl ConvertIntToDecimalStringN\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - mov r0, r10\n\ - str r0, [sp]\n\ - mov r1, r8\n\ - str r1, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - add r2, sp, 0xC\n\ - bl AddTextPrinterParameterized\n\ - ldrb r0, [r6, 0x1]\n\ - cmp r0, 0x1\n\ - bhi _081D2A3C\n\ - ldr r5, =gText_ThreeDashes\n\ - b _081D2A4A\n\ - .pool\n\ -_081D2A3C:\n\ - ldrb r1, [r6, 0x1]\n\ - add r0, sp, 0xC\n\ - movs r2, 0\n\ - movs r3, 0x3\n\ - bl ConvertIntToDecimalStringN\n\ - add r5, sp, 0xC\n\ -_081D2A4A:\n\ - movs r0, 0x19\n\ - str r0, [sp]\n\ - movs r0, 0xFF\n\ - str r0, [sp, 0x4]\n\ - movs r0, 0\n\ - str r0, [sp, 0x8]\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x6A\n\ - bl AddTextPrinterParameterized\n\ - ldrb r0, [r6, 0x3]\n\ - cmp r0, 0\n\ - bne _081D2A70\n\ - ldr r5, =gText_ThreeDashes\n\ - b _081D2A7E\n\ - .pool\n\ -_081D2A70:\n\ - ldrb r1, [r6, 0x3]\n\ - add r0, sp, 0xC\n\ - movs r2, 0\n\ - movs r3, 0x3\n\ - bl ConvertIntToDecimalStringN\n\ - add r5, sp, 0xC\n\ -_081D2A7E:\n\ - movs r0, 0x29\n\ - str r0, [sp]\n\ - movs r0, 0xFF\n\ - str r0, [sp, 0x4]\n\ - movs r4, 0\n\ - str r4, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x6A\n\ - bl AddTextPrinterParameterized\n\ - ldr r1, =gMoveDescriptionPointers\n\ - mov r0, r9\n\ - subs r0, 0x1\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldr r5, [r0]\n\ - movs r0, 0x41\n\ - str r0, [sp]\n\ - str r4, [sp, 0x4]\n\ - str r4, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x7\n\ - adds r2, r5, 0\n\ - movs r3, 0\n\ - bl AddTextPrinterParameterized\n\ -_081D2AB6:\n\ - add sp, 0x2C\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif -} - -NAKED -static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) -{ -#ifdef NONMATCHING - //u8 offset; - const u8 *labelStr; - const struct ContestMove *move; - u8 category; - const u8 **temp; - - MoveRelearnerShowHideHearts(chosenMove); - FillWindowPixelBuffer(1, 0x11); - labelStr = gText_MoveRelearnerContestMovesTitle; - // GCC compiles these as: - // add r3, r0, 0 - // lsls r3, r3, 24 - // lsrs r3, r3, 24 - // But in the original asm: - // lsls r3, r0, 24 - // lsrs r3, r3, 24 - //offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); - AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x80), 1, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerAppeal; - //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); - AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x19, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerJam; - //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); - AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x29, TEXT_SPEED_FF, NULL); - - if (chosenMove == MENU_NOTHING_CHOSEN) - { - CopyWindowToVram(1, 2); - return; - } - - move = &gContestMoves[chosenMove]; - temp = (const u8**)gContestMoveTypeTextPointers; - category = move->contestCategory; - labelStr = temp[category]; - AddTextPrinterParameterized(1, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); - - labelStr = gContestEffectDescriptionPointers[move->effect]; - AddTextPrinterParameterized(1, 1, labelStr, 0, 0x41, TEXT_SPEED_FF, NULL); - - CopyWindowToVram(1, 2); -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - sub sp, 0xC\n\ - adds r4, r0, 0\n\ - bl MoveRelearnerShowHideHearts\n\ - movs r0, 0x1\n\ - movs r1, 0x11\n\ - bl FillWindowPixelBuffer\n\ - ldr r5, =gText_MoveRelearnerContestMovesTitle\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x80\n\ - bl GetStringCenterAlignXOffset\n\ - lsls r3, r0, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r7, 0xFF\n\ - str r7, [sp, 0x4]\n\ - movs r6, 0\n\ - str r6, [sp, 0x8]\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerAppeal\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x5C\n\ - bl GetStringRightAlignXOffset\n\ - lsls r3, r0, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x19\n\ - mov r8, r0\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerJam\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x5C\n\ - bl GetStringRightAlignXOffset\n\ - lsls r3, r0, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x29\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - cmp r4, r0\n\ - bne _081D2B6C\n\ - movs r0, 0x1\n\ - movs r1, 0x2\n\ - bl CopyWindowToVram\n\ - b _081D2BB8\n\ - .pool\n\ -_081D2B6C:\n\ - lsls r4, 3\n\ - ldr r0, =gContestMoves\n\ - adds r4, r0\n\ - ldr r1, =gContestMoveTypeTextPointers\n\ - ldrb r0, [r4, 0x1]\n\ - lsls r0, 29\n\ - lsrs r0, 27\n\ - adds r0, r1\n\ - ldr r5, [r0]\n\ - mov r0, r8\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x4\n\ - bl AddTextPrinterParameterized\n\ - ldr r1, =gContestEffectDescriptionPointers\n\ - ldrb r0, [r4]\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldr r5, [r0]\n\ - movs r0, 0x41\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x7\n\ - adds r2, r5, 0\n\ - movs r3, 0\n\ - bl AddTextPrinterParameterized\n\ - movs r0, 0x1\n\ - movs r1, 0x2\n\ - bl CopyWindowToVram\n\ -_081D2BB8:\n\ - add sp, 0xC\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif -} - -static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) -{ - if (onInit != TRUE) - PlaySE(SE_SELECT); - MoveRelearnerLoadBattleMoveDescription(itemIndex); - MoveRelearnerMenuLoadContestMoveDescription(itemIndex); -} - -void MoveRelearnerPrintText(u8 *str) -{ - u8 speed; - - FillWindowPixelBuffer(3, 0x11); - gTextFlags.canABSpeedUpPrint = TRUE; - speed = GetPlayerTextSpeedDelay(); - AddTextPrinterParameterized2(3, 1, str, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); -} - -bool16 MoveRelearnerRunTextPrinters(void) -{ - RunTextPrinters(); - return IsTextPrinterActive(3); -} - -void MoveRelearnerCreateYesNoMenu(void) -{ - CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); -} \ No newline at end of file diff --git a/src/move_relearner.c b/src/move_relearner.c index 7d5b51899..e148b9ace 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -12,7 +12,7 @@ #include "alloc.h" #include "menu.h" #include "menu_helpers.h" -#include "menu_unknown.h" +#include "menu_specialized.h" #include "overworld.h" #include "palette.h" #include "pokemon_summary_screen.h" diff --git a/src/party_menu.c b/src/party_menu.c index 7e47cbf80..71609bf9e 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -37,7 +37,7 @@ #include "main.h" #include "menu.h" #include "menu_helpers.h" -#include "menu_unknown.h" +#include "menu_specialized.h" #include "metatile_behavior.h" #include "overworld.h" #include "palette.h" diff --git a/src/player_pc.c b/src/player_pc.c index f167062cb..38f556b28 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -28,7 +28,7 @@ #include "strings.h" #include "task.h" #include "window.h" -#include "menu_unknown.h" +#include "menu_specialized.h" // structures struct Struct203BCC4 diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 75e8da3f8..b06d0cba9 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -4,7 +4,7 @@ #include "alloc.h" #include "palette.h" #include "pokenav.h" -#include "menu_unknown.h" +#include "menu_specialized.h" #include "scanline_effect.h" #include "text.h" #include "bg.h" -- cgit v1.2.3 From eaddf396b2b19e342a03585f0527906aa7dcecd5 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 02:35:19 -0500 Subject: I was dumb and forgot to add merge fixes --- src/menu_specialized.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c index d9b2270f4..bf5d2ec56 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -246,7 +246,7 @@ u8 sub_81D1C84(u8 a0) void sub_81D1D04(u8 a0) { - sub_8198070(sUnknown_0203CF48[a0], 0); + ClearStdWindowAndFrameToTransparent(sUnknown_0203CF48[a0], 0); ClearWindowTilemap(sUnknown_0203CF48[a0]); RemoveWindow(sUnknown_0203CF48[a0]); sUnknown_0203CF48[a0] = 0xFF; @@ -1587,17 +1587,17 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) if (!useContextWindow) { PutWindowTilemap(0); - SetWindowBorderStyle(0, 0, 0x1, 0xE); + DrawStdFrameWithCustomTileAndPalette(0, 0, 0x1, 0xE); } else { PutWindowTilemap(1); - SetWindowBorderStyle(1, 0, 1, 0xE); + DrawStdFrameWithCustomTileAndPalette(1, 0, 1, 0xE); } PutWindowTilemap(2); PutWindowTilemap(3); - SetWindowBorderStyle(2, 0, 1, 0xE); - SetWindowBorderStyle(3, 0, 1, 0xE); + DrawStdFrameWithCustomTileAndPalette(2, 0, 1, 0xE); + DrawStdFrameWithCustomTileAndPalette(3, 0, 1, 0xE); nullsub_79(); schedule_bg_copy_tilemap_to_vram(1); } -- cgit v1.2.3 From c3feb9871f4d05cd9874dd8fc0c2016eaa072864 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 04:02:05 -0500 Subject: Use PIXEL_FILL macro --- src/menu_specialized.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c index bf5d2ec56..8371c7a70 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -1581,7 +1581,7 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) for (i = 0; i < 5; i++) { - FillWindowPixelBuffer(i, 0x11); + FillWindowPixelBuffer(i, PIXEL_FILL(1)); } if (!useContextWindow) @@ -1635,7 +1635,7 @@ static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) u8 buffer[0x20]; const u8 *labelStr; - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); labelStr = gText_MoveRelearnerBattleMoves; offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); AddTextPrinterParameterized(0, 1, labelStr, offset, 1, TEXT_SPEED_FF, NULL); @@ -1913,7 +1913,7 @@ static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) const u8 **temp; MoveRelearnerShowHideHearts(chosenMove); - FillWindowPixelBuffer(1, 0x11); + FillWindowPixelBuffer(1, PIXEL_FILL(1)); labelStr = gText_MoveRelearnerContestMovesTitle; // GCC compiles these as: // add r3, r0, 0 @@ -2076,7 +2076,7 @@ void MoveRelearnerPrintText(u8 *str) { u8 speed; - FillWindowPixelBuffer(3, 0x11); + FillWindowPixelBuffer(3, PIXEL_FILL(1)); gTextFlags.canABSpeedUpPrint = TRUE; speed = GetPlayerTextSpeedDelay(); AddTextPrinterParameterized2(3, 1, str, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); -- cgit v1.2.3 From b7cfa9d36537b8ae53012eb88d59f8b842fb35c4 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 21:39:51 -0500 Subject: Move more contest constants into C --- src/contest.c | 337 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 322 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 114a1fb69..241d38e48 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) { } -- cgit v1.2.3 From 88c37818800e1216dc7d40cfefa0a9ab5f249671 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 22:33:40 -0500 Subject: Move text pointer tables into C --- src/contest.c | 6 +- src/data/contest_text_tables.h | 414 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 416 insertions(+), 4 deletions(-) create mode 100644 src/data/contest_text_tables.h (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 241d38e48..afb1c94d7 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 000000000..fa32f33b5 --- /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 -- cgit v1.2.3 From 5b4b0a245be14b7485c3e2cc40e40c78eeaa7ce0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Mar 2019 00:00:10 -0500 Subject: Move contest winner list to C --- src/contest.c | 149 ++++++++++++++++++++++++++++++++++++++++++- src/data/contest_opponents.h | 80 +++++++++++++++++++++++ 2 files changed, 226 insertions(+), 3 deletions(-) create mode 100644 src/data/contest_opponents.h (limited to 'src') diff --git a/src/contest.c b/src/contest.c index afb1c94d7..09847f6b6 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 000000000..580d7916e --- /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 -- cgit v1.2.3 From 153499ed6f08b6546349ba1ec33ea9e18840f44b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Mar 2019 01:38:38 -0500 Subject: Clean up contest_opponents.inc --- src/data/contest_opponents.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index 580d7916e..07d41d824 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 -- cgit v1.2.3 From a32e8e7405dc66c29ae04bb85bf9b07cd3cb21a9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Mar 2019 20:56:36 -0500 Subject: Move gContestOpponents into C 2,400 LOC by hand. --- src/contest.c | 1 - src/data/contest_opponents.h | 2790 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 2786 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 09847f6b6..3ef8d4b06 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 07d41d824..8937e9914 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 -- cgit v1.2.3 From 0c935a8bd500535ba67fad4f25ea50199cfc1871 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Mar 2019 22:54:17 -0500 Subject: Move the contest opponent filter to C --- src/contest.c | 7 +- src/data/contest_opponents.h | 390 ++++++++++++++++++++++++++++++++----------- 2 files changed, 297 insertions(+), 100 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 3ef8d4b06..bebe344b9 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 8937e9914..2ebfd1dfd 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 -- cgit v1.2.3 From 13c2f91b11a9ae773fd22b045f37b85c6e1ed984 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Mar 2019 23:51:39 -0500 Subject: Moved last contest data into C --- src/contest.c | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 134 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index bebe344b9..da3075e65 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; -- cgit v1.2.3 From 7f70b629f569ce9a4c1b90cca3a3ce86ebd3e1c2 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Mar 2019 05:35:15 -0400 Subject: Document sAreaGlowTilemapMapping I used a script to generate the format for the array, so I can easily change its formatting if needed. --- src/pokedex_area_screen.c | 223 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 167 insertions(+), 56 deletions(-) (limited to 'src') diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index eeea3c210..d43c556c8 100755 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -23,6 +23,19 @@ #include "constants/species.h" #include "constants/vars.h" +#define AREA_SCREEN_WIDTH 32 +#define AREA_SCREEN_HEIGHT 20 + +#define GLOW_TILE_FULL 0xFFFF +#define GLOW_TILE_LEFT (1 << 0) +#define GLOW_TILE_RIGHT (1 << 1) +#define GLOW_TILE_TOP (1 << 2) +#define GLOW_TILE_BOTTOM (1 << 3) +#define GLOW_TILE_BOTTOM_RIGHT (1 << 4) +#define GLOW_TILE_TOP_RIGHT (1 << 5) +#define GLOW_TILE_BOTTOM_LEFT (1 << 6) +#define GLOW_TILE_TOP_LEFT (1 << 7) + struct PokeDexAreaScreenMapIdentity { u8 mapGroup; @@ -100,23 +113,114 @@ static const u16 sLandmarkData[][2] = { {MAPSEC_NONE} }; +// Only some parts of this array are acutally used, because corner flags that overlap +// with edge flags are cancelled out before lookup. For example, GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_RIGHT +// will never be read. +// +// The rest of the bytes seem to be old data from before the cancellation was implemented. +// Most of them line up as you would expect ([BOTTOM_RIGHT | RIGHT] has the same value as [RIGHT]). +// +// Any unreachable entries are simply listed in order, without the fancy "[FLAGS] = 0xXX" notation. static const u8 sAreaGlowTilemapMapping[] = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x11, 0x20, 0x02, 0x03, 0x27, 0x2d, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x12, 0x21, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x2a, 0x2e, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x13, 0x22, 0x02, 0x03, 0x27, 0x2d, 0x06, 0x07, 0x2a, 0x2e, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x14, 0x01, 0x23, 0x03, 0x26, 0x05, 0x2c, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x15, 0x20, 0x23, 0x03, 0x28, 0x2d, 0x2c, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x16, 0x21, 0x23, 0x03, 0x26, 0x05, 0x2c, 0x07, 0x2a, 0x2e, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x17, 0x22, 0x23, 0x03, 0x28, 0x2d, 0x2c, 0x07, 0x2a, 0x2e, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x18, 0x01, 0x24, 0x03, 0x04, 0x05, 0x06, 0x07, 0x29, 0x09, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x19, 0x20, 0x24, 0x03, 0x27, 0x2d, 0x06, 0x07, 0x29, 0x09, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x1a, 0x21, 0x24, 0x03, 0x04, 0x05, 0x06, 0x07, 0x2b, 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x1b, 0x22, 0x24, 0x03, 0x27, 0x2d, 0x06, 0x07, 0x2b, 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x1c, 0x01, 0x25, 0x03, 0x26, 0x05, 0x2c, 0x07, 0x29, 0x09, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x1d, 0x20, 0x25, 0x03, 0x28, 0x2d, 0x2c, 0x07, 0x29, 0x09, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x1e, 0x21, 0x25, 0x03, 0x26, 0x05, 0x2c, 0x07, 0x2b, 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x1f, 0x22, 0x25, 0x03, 0x28, 0x2d, 0x2c, 0x07, 0x2b, 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + [0] = 0x00, + [GLOW_TILE_LEFT] = 0x01, + [GLOW_TILE_RIGHT] = 0x02, + [GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x03, + [GLOW_TILE_TOP] = 0x04, + [GLOW_TILE_TOP | GLOW_TILE_LEFT] = 0x05, + [GLOW_TILE_TOP | GLOW_TILE_RIGHT] = 0x06, + [GLOW_TILE_TOP | GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x07, + [GLOW_TILE_BOTTOM] = 0x08, + [GLOW_TILE_BOTTOM | GLOW_TILE_LEFT] = 0x09, + [GLOW_TILE_BOTTOM | GLOW_TILE_RIGHT] = 0x0a, + [GLOW_TILE_BOTTOM | GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x0b, + [GLOW_TILE_BOTTOM | GLOW_TILE_TOP] = 0x0c, + [GLOW_TILE_BOTTOM | GLOW_TILE_TOP | GLOW_TILE_LEFT] = 0x0d, + [GLOW_TILE_BOTTOM | GLOW_TILE_TOP | GLOW_TILE_RIGHT] = 0x0e, + [GLOW_TILE_BOTTOM | GLOW_TILE_TOP | GLOW_TILE_RIGHT | GLOW_TILE_LEFT] = 0x0f, + [GLOW_TILE_BOTTOM_RIGHT] = 0x11, + [GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_LEFT] = 0x20, + 0x02, 0x03, + [GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP] = 0x27, + [GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP | GLOW_TILE_LEFT] = 0x2d, + 0x06, 0x07, 0x08, 0x09, 0x0a, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + [GLOW_TILE_TOP_RIGHT] = 0x12, + [GLOW_TILE_TOP_RIGHT | GLOW_TILE_LEFT] = 0x21, + 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, + [GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM] = 0x2a, + [GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM | GLOW_TILE_LEFT] = 0x2e, + 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, + [GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x13, + [GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_LEFT] = 0x22, + 0x02, 0x03, 0x27, 0x2d, 0x06, + 0x07, 0x2a, 0x2e, 0x0a, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, + [GLOW_TILE_BOTTOM_LEFT] = 0x14, + 0x01, + [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_RIGHT] = 0x23, + 0x03, + [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP] = 0x26, + 0x05, + [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP | GLOW_TILE_RIGHT] = 0x2c, + 0x07, 0x08, 0x09, 0x0a, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, + [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT] = 0x15, + 0x20, 0x23, 0x03, + [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP] = 0x28, + 0x2d, 0x2c, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, + [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT] = 0x16, + 0x21, 0x23, 0x03, 0x26, 0x05, + 0x2c, 0x07, 0x2a, 0x2e, 0x0a, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + [GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x17, + 0x22, 0x23, 0x03, 0x28, 0x2d, + 0x2c, 0x07, 0x2a, 0x2e, 0x0a, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + [GLOW_TILE_TOP_LEFT] = 0x18, + 0x01, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_RIGHT] = 0x24, + 0x03, 0x04, 0x05, 0x06, 0x07, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM] = 0x29, + 0x09, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM | GLOW_TILE_RIGHT] = 0x2f, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_RIGHT] = 0x19, + 0x20, 0x24, 0x03, 0x27, 0x2d, + 0x06, 0x07, 0x29, 0x09, 0x2f, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT] = 0x1a, + 0x21, 0x24, 0x03, 0x04, 0x05, + 0x06, 0x07, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM] = 0x2b, + 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x1b, + 0x22, 0x24, 0x03, 0x27, 0x2d, + 0x06, 0x07, 0x2b, 0x2e, 0x2f, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT] = 0x1c, + 0x01, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_RIGHT] = 0x25, + 0x03, 0x26, 0x05, 0x2c, 0x07, + 0x29, 0x09, 0x2f, 0x0b, 0x0c, + 0x0d, 0x0e, 0x0f, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT] = 0x1d, + 0x20, 0x25, 0x03, 0x28, 0x2d, + 0x2c, 0x07, 0x29, 0x09, 0x2f, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT] = 0x1e, + 0x21, 0x25, 0x03, 0x26, 0x05, + 0x2c, 0x07, 0x2b, 0x2e, 0x2f, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + [GLOW_TILE_TOP_LEFT | GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_RIGHT | GLOW_TILE_BOTTOM_RIGHT] = 0x1f, + 0x22, 0x25, 0x03, 0x28, 0x2d, + 0x2c, 0x07, 0x2b, 0x2e, 0x2f, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, }; static const struct UnkStruct_1C4D70 sUnknown_085B4018 = { @@ -237,11 +341,11 @@ static void FindMapsWithMon(u16 species) { switch (sFeebasData[i][1]) { - case MAP_GROUP(PETALBURG_CITY): + case MAP_AREA_OVERWORLD_MONS: SetAreaHasMon(sFeebasData[i][1], sFeebasData[i][2]); break; - case MAP_GROUP(METEOR_FALLS_1F_1R): - case MAP_GROUP(SAFARI_ZONE_NORTHWEST): + case MAP_AREA_SPECIAL_MONS_1: + case MAP_AREA_SPECIAL_MONS_2: SetSpecialMapHasMon(sFeebasData[i][1], sFeebasData[i][2]); break; } @@ -250,15 +354,15 @@ static void FindMapsWithMon(u16 species) for (i = 0; gWildMonHeaders[i].mapGroup != 0xFF; i++) { - if (MapHasMon(gWildMonHeaders + i, species)) + if (MapHasMon(&gWildMonHeaders[i], species)) { switch (gWildMonHeaders[i].mapGroup) { - case MAP_GROUP(PETALBURG_CITY): + case MAP_AREA_OVERWORLD_MONS: SetAreaHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); break; - case MAP_GROUP(METEOR_FALLS_1F_1R): - case MAP_GROUP(SAFARI_ZONE_NORTHWEST): + case MAP_AREA_SPECIAL_MONS_1: + case MAP_AREA_SPECIAL_MONS_2: SetSpecialMapHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); break; } @@ -372,18 +476,18 @@ static void BuildAreaGlowTilemap(void) u16 i, y, x, j; u16 val; - for (i = 0; i < 0x280; i++) + for (i = 0; i < ARRAY_COUNT(sPokedexAreaScreen->areaGlowTilemap); i++) sPokedexAreaScreen->areaGlowTilemap[i] = 0; for (i = 0; i < sPokedexAreaScreen->numOverworldAreas; i++) { j = 0; - for (y = 0; y < 20; y++) + for (y = 0; y < AREA_SCREEN_HEIGHT; y++) { - for (x = 0; x < 32; x++) + for (x = 0; x < AREA_SCREEN_WIDTH; x++) { if (GetRegionMapSectionIdAt(x, y) == sPokedexAreaScreen->overworldAreasWithMons[i].regionMapSectionId) - sPokedexAreaScreen->areaGlowTilemap[j] = 0xFFFF; + sPokedexAreaScreen->areaGlowTilemap[j] = GLOW_TILE_FULL; j++; } @@ -391,51 +495,58 @@ static void BuildAreaGlowTilemap(void) } j = 0; - for (y = 0; y < 20; y++) + for (y = 0; y < AREA_SCREEN_HEIGHT; y++) { - for (x = 0; x < 32; x++) + for (x = 0; x < AREA_SCREEN_WIDTH; x++) { - if (sPokedexAreaScreen->areaGlowTilemap[j] == 0xFFFF) + if (sPokedexAreaScreen->areaGlowTilemap[j] == GLOW_TILE_FULL) { - if (x != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 1] != 0xFFFF) - sPokedexAreaScreen->areaGlowTilemap[j - 1] |= 0x02; - if (x != 31 && sPokedexAreaScreen->areaGlowTilemap[j + 1] != 0xFFFF) - sPokedexAreaScreen->areaGlowTilemap[j + 1] |= 0x01; - if (y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 32] != 0xFFFF) - sPokedexAreaScreen->areaGlowTilemap[j - 32] |= 0x08; - if (y != 19 && sPokedexAreaScreen->areaGlowTilemap[j + 32] != 0xFFFF) - sPokedexAreaScreen->areaGlowTilemap[j + 32] |= 0x04; - if (x != 0 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 33] != 0xFFFF) - sPokedexAreaScreen->areaGlowTilemap[j - 33] |= 0x10; - if (x != 31 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 31] != 0xFFFF) - sPokedexAreaScreen->areaGlowTilemap[j - 31] |= 0x40; - if (x != 0 && y != 19 && sPokedexAreaScreen->areaGlowTilemap[j + 31] != 0xFFFF) - sPokedexAreaScreen->areaGlowTilemap[j + 31] |= 0x20; - if (x != 31 && y != 19 && sPokedexAreaScreen->areaGlowTilemap[j + 33] != 0xFFFF) - sPokedexAreaScreen->areaGlowTilemap[j + 33] |= 0x80; + // The "tile != GLOW_TILE_FULL" check is pointless in all of these conditionals, + // since there's no harm in OR'ing 0xFFFF with anything else. + + // Edges + if (x != 0 && sPokedexAreaScreen->areaGlowTilemap[j - 1] != GLOW_TILE_FULL) + sPokedexAreaScreen->areaGlowTilemap[j - 1] |= GLOW_TILE_RIGHT; + if (x != AREA_SCREEN_WIDTH - 1 && sPokedexAreaScreen->areaGlowTilemap[j + 1] != GLOW_TILE_FULL) + sPokedexAreaScreen->areaGlowTilemap[j + 1] |= GLOW_TILE_LEFT; + if (y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH] != GLOW_TILE_FULL) + sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH] |= GLOW_TILE_BOTTOM; + if (y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH] != GLOW_TILE_FULL) + sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH] |= GLOW_TILE_TOP; + + // Diagonals + if (x != 0 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH - 1] != GLOW_TILE_FULL) + sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH - 1] |= GLOW_TILE_BOTTOM_RIGHT; + if (x != AREA_SCREEN_WIDTH - 1 && y != 0 && sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH + 1] != GLOW_TILE_FULL) + sPokedexAreaScreen->areaGlowTilemap[j - AREA_SCREEN_WIDTH + 1] |= GLOW_TILE_BOTTOM_LEFT; + if (x != 0 && y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH - 1] != GLOW_TILE_FULL) + sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH - 1] |= GLOW_TILE_TOP_RIGHT; + if (x != AREA_SCREEN_WIDTH - 1 && y != AREA_SCREEN_HEIGHT - 1 && sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH + 1] != GLOW_TILE_FULL) + sPokedexAreaScreen->areaGlowTilemap[j + AREA_SCREEN_WIDTH + 1] |= GLOW_TILE_TOP_LEFT; } j++; } } - for (i = 0; i < 0x280; i++) + for (i = 0; i < ARRAY_COUNT(sPokedexAreaScreen->areaGlowTilemap); i++) { - if (sPokedexAreaScreen->areaGlowTilemap[i] == 0xFFFF) + if (sPokedexAreaScreen->areaGlowTilemap[i] == GLOW_TILE_FULL) { sPokedexAreaScreen->areaGlowTilemap[i] = 0x10; sPokedexAreaScreen->areaGlowTilemap[i] |= 0xA000; } else if (sPokedexAreaScreen->areaGlowTilemap[i]) { - if (sPokedexAreaScreen->areaGlowTilemap[i] & 0x02) - sPokedexAreaScreen->areaGlowTilemap[i] &= 0xFFCF; - if (sPokedexAreaScreen->areaGlowTilemap[i] & 0x01) - sPokedexAreaScreen->areaGlowTilemap[i] &= 0xFF3F; - if (sPokedexAreaScreen->areaGlowTilemap[i] & 0x08) - sPokedexAreaScreen->areaGlowTilemap[i] &= 0xFFAF; - if (sPokedexAreaScreen->areaGlowTilemap[i] & 0x04) - sPokedexAreaScreen->areaGlowTilemap[i] &= 0xFF5F; + // Get rid of overlapping flags + if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_RIGHT) + sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_BOTTOM_RIGHT | GLOW_TILE_TOP_RIGHT); + if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_LEFT) + sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_TOP_LEFT); + if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_BOTTOM) + sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_BOTTOM_LEFT | GLOW_TILE_BOTTOM_RIGHT); + if (sPokedexAreaScreen->areaGlowTilemap[i] & GLOW_TILE_TOP) + sPokedexAreaScreen->areaGlowTilemap[i] &= ~(GLOW_TILE_TOP_LEFT | GLOW_TILE_TOP_RIGHT); sPokedexAreaScreen->areaGlowTilemap[i] = sAreaGlowTilemapMapping[sPokedexAreaScreen->areaGlowTilemap[i]]; sPokedexAreaScreen->areaGlowTilemap[i] |= 0xA000; -- cgit v1.2.3 From 14211fb4953a25ada33b2aa1618b90cb46b211b7 Mon Sep 17 00:00:00 2001 From: garak Date: Thu, 14 Mar 2019 16:19:54 -0400 Subject: fix incbin paths --- src/anim_mon_front_pics.c | 830 +++---- src/data/graphics/pokemon.h | 5562 +++++++++++++++++++++---------------------- 2 files changed, 3196 insertions(+), 3196 deletions(-) (limited to 'src') diff --git a/src/anim_mon_front_pics.c b/src/anim_mon_front_pics.c index ba53ba193..f2480ea20 100644 --- a/src/anim_mon_front_pics.c +++ b/src/anim_mon_front_pics.c @@ -1,424 +1,424 @@ #include "global.h" -const u32 gMonFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/anim_front_pics/circled_question_mark_front_pic.4bpp.lz"); +const u32 gMonFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/anim_front_pics/bulbasaur_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ivysaur_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/anim_front_pics/venusaur_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/anim_front_pics/charmander_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/charmeleon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/anim_front_pics/charizard_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/squirtle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wartortle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/anim_front_pics/blastoise_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/anim_front_pics/caterpie_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/anim_front_pics/metapod_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/anim_front_pics/butterfree_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/weedle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kakuna_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/anim_front_pics/beedrill_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pidgey_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pidgeotto_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pidgeot_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/anim_front_pics/rattata_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/anim_front_pics/raticate_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/anim_front_pics/spearow_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/anim_front_pics/fearow_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ekans_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/anim_front_pics/arbok_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pikachu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/raichu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sandshrew_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sandslash_front_pic.4bpp.lz"); -const u32 gMonFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidoran_f_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidorina_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidoqueen_front_pic.4bpp.lz"); -const u32 gMonFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidoran_m_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidorino_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidoking_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/anim_front_pics/clefairy_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/anim_front_pics/clefable_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/anim_front_pics/vulpix_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ninetales_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/anim_front_pics/jigglypuff_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wigglytuff_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/anim_front_pics/zubat_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/anim_front_pics/golbat_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/anim_front_pics/oddish_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gloom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/anim_front_pics/vileplume_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/anim_front_pics/paras_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/anim_front_pics/parasect_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/anim_front_pics/venonat_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/anim_front_pics/venomoth_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/anim_front_pics/diglett_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dugtrio_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/anim_front_pics/meowth_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/anim_front_pics/persian_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/anim_front_pics/psyduck_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/anim_front_pics/golduck_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mankey_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/anim_front_pics/primeape_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/anim_front_pics/growlithe_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/anim_front_pics/arcanine_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/anim_front_pics/poliwag_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/anim_front_pics/poliwhirl_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/anim_front_pics/poliwrath_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/anim_front_pics/abra_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kadabra_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/anim_front_pics/alakazam_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/anim_front_pics/machop_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/anim_front_pics/machoke_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/anim_front_pics/machamp_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/anim_front_pics/bellsprout_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/anim_front_pics/weepinbell_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/victreebel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tentacool_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tentacruel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/anim_front_pics/geodude_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/anim_front_pics/graveler_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/anim_front_pics/golem_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ponyta_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/anim_front_pics/rapidash_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slowpoke_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slowbro_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magnemite_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magneton_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/anim_front_pics/farfetch_d_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/doduo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dodrio_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/seel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dewgong_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/anim_front_pics/grimer_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/anim_front_pics/muk_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shellder_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cloyster_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gastly_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/anim_front_pics/haunter_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gengar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/anim_front_pics/onix_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/anim_front_pics/drowzee_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hypno_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/anim_front_pics/krabby_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kingler_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/anim_front_pics/voltorb_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/anim_front_pics/electrode_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/anim_front_pics/exeggcute_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/anim_front_pics/exeggutor_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cubone_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/anim_front_pics/marowak_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hitmonlee_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hitmonchan_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lickitung_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/anim_front_pics/koffing_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/anim_front_pics/weezing_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/anim_front_pics/rhyhorn_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/rhydon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/anim_front_pics/chansey_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tangela_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kangaskhan_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/anim_front_pics/horsea_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/anim_front_pics/seadra_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/anim_front_pics/goldeen_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/anim_front_pics/seaking_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/staryu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/anim_front_pics/starmie_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mrmime[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mr_mime_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/anim_front_pics/scyther_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/anim_front_pics/jynx_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/anim_front_pics/electabuzz_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magmar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pinsir_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tauros_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magikarp_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gyarados_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lapras_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ditto_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/anim_front_pics/eevee_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/vaporeon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/jolteon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/flareon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/porygon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/anim_front_pics/omanyte_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/omastar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kabuto_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kabutops_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/anim_front_pics/aerodactyl_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/anim_front_pics/snorlax_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/anim_front_pics/articuno_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/anim_front_pics/zapdos_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/anim_front_pics/moltres_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dratini_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dragonair_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dragonite_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mewtwo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mew_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/anim_front.4bpp.lz"); +const u32 gMonFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/anim_front.4bpp.lz"); +const u32 gMonFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/anim_front_pics/chikorita_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/anim_front_pics/bayleef_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/anim_front_pics/meganium_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cyndaquil_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/anim_front_pics/quilava_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/anim_front_pics/typhlosion_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/anim_front_pics/totodile_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/anim_front_pics/croconaw_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/anim_front_pics/feraligatr_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sentret_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/anim_front_pics/furret_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hoothoot_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/anim_front_pics/noctowl_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ledyba_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ledian_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/anim_front_pics/spinarak_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ariados_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/anim_front_pics/crobat_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/anim_front_pics/chinchou_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lanturn_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pichu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cleffa_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/anim_front_pics/igglybuff_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/anim_front_pics/togepi_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/anim_front_pics/togetic_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/natu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/xatu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mareep_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/anim_front_pics/flaaffy_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ampharos_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/bellossom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/anim_front_pics/marill_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/anim_front_pics/azumarill_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sudowoodo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/anim_front_pics/politoed_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hoppip_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/skiploom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/anim_front_pics/jumpluff_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/aipom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sunkern_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sunflora_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/anim_front_pics/yanma_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wooper_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/anim_front_pics/quagsire_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/espeon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/umbreon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/anim_front_pics/murkrow_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slowking_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/anim_front_pics/misdreavus_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_a_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wobbuffet_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/anim_front_pics/girafarig_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pineco_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/anim_front_pics/forretress_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dunsparce_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gligar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/anim_front_pics/steelix_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/anim_front_pics/snubbull_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/anim_front_pics/granbull_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/anim_front_pics/qwilfish_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/anim_front_pics/scizor_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shuckle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/anim_front_pics/heracross_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sneasel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/anim_front_pics/teddiursa_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ursaring_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slugma_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magcargo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/anim_front_pics/swinub_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/anim_front_pics/piloswine_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/anim_front_pics/corsola_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/anim_front_pics/remoraid_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/anim_front_pics/octillery_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/anim_front_pics/delibird_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mantine_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/anim_front_pics/skarmory_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/anim_front_pics/houndour_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/houndoom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kingdra_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/anim_front_pics/phanpy_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/anim_front_pics/donphan_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/anim_front_a.4bpp.lz"); +const u32 gMonFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/anim_front.4bpp.lz"); const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/anim_front_pics/porygon2_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/anim_front_pics/stantler_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/smeargle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tyrogue_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hitmontop_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/anim_front_pics/smoochum_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/anim_front_pics/elekid_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magby_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/anim_front_pics/miltank_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/anim_front_pics/blissey_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/anim_front_pics/raikou_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/anim_front_pics/entei_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/anim_front_pics/suicune_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/larvitar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pupitar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tyranitar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lugia_front_pic.4bpp.lz"); -const u32 gMonFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ho_oh_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/anim_front_pics/celebi_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/anim_front.4bpp.lz"); +const u32 gMonFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/anim_front_pics/double_question_mark_front_pic.4bpp.lz"); +const u32 gMonFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/anim_front_pics/treecko_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/grovyle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sceptile_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/anim_front_pics/torchic_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/anim_front_pics/combusken_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/anim_front_pics/blaziken_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mudkip_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/anim_front_pics/marshtomp_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/anim_front_pics/swampert_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/anim_front_pics/poochyena_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mightyena_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/zigzagoon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/anim_front_pics/linoone_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wurmple_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/silcoon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/anim_front_pics/beautifly_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cascoon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dustox_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lotad_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lombre_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ludicolo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/anim_front_pics/seedot_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nuzleaf_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shiftry_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nincada_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ninjask_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shedinja_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/anim_front_pics/taillow_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/anim_front_pics/swellow_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shroomish_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/breloom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Spinda[] = INCBIN_U32("graphics/pokemon/anim_front_pics/spinda_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wingull_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pelipper_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/anim_front_pics/surskit_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/anim_front_pics/masquerain_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wailmer_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wailord_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/anim_front_pics/skitty_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/anim_front_pics/delcatty_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kecleon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/anim_front_pics/baltoy_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/anim_front_pics/claydol_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nosepass_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/anim_front_pics/torkoal_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sableye_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/anim_front_pics/barboach_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/anim_front_pics/whiscash_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/anim_front_pics/luvdisc_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/anim_front_pics/corphish_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/anim_front_pics/crawdaunt_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/anim_front_pics/feebas_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/anim_front_pics/milotic_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/anim_front_pics/carvanha_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sharpedo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/anim_front_pics/trapinch_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/anim_front_pics/vibrava_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/flygon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/anim_front_pics/makuhita_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hariyama_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/anim_front_pics/electrike_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/anim_front_pics/manectric_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/numel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/anim_front_pics/camerupt_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/anim_front_pics/spheal_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sealeo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/anim_front_pics/walrein_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cacnea_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cacturne_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/anim_front_pics/snorunt_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/anim_front_pics/glalie_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lunatone_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/anim_front_pics/solrock_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/anim_front_pics/azurill_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/anim_front_pics/spoink_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/anim_front_pics/grumpig_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/plusle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/anim_front_pics/minun_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mawile_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/anim_front_pics/meditite_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/anim_front_pics/medicham_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/swablu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/anim_front_pics/altaria_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wynaut_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/anim_front_pics/duskull_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dusclops_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/anim_front_pics/roselia_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slakoth_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/anim_front_pics/vigoroth_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slaking_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gulpin_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/anim_front_pics/swalot_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tropius_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/anim_front_pics/whismur_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/anim_front_pics/loudred_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/anim_front_pics/exploud_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/anim_front_pics/clamperl_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/anim_front_pics/huntail_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gorebyss_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/anim_front_pics/absol_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shuppet_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/anim_front_pics/banette_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/anim_front_pics/seviper_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/anim_front_pics/zangoose_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/anim_front_pics/relicanth_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/anim_front_pics/aron_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lairon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/anim_front_pics/aggron_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Castform[] = INCBIN_U32("graphics/pokemon/anim_front_pics/castform_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/anim_front_pics/volbeat_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/anim_front_pics/illumise_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lileep_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cradily_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/anim_front_pics/anorith_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/armaldo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ralts_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kirlia_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gardevoir_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/bagon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shelgon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/anim_front_pics/salamence_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/anim_front_pics/beldum_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/anim_front_pics/metang_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/anim_front_pics/metagross_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/anim_front_pics/regirock_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/anim_front_pics/regice_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/registeel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kyogre_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/groudon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/anim_front_pics/rayquaza_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/anim_front_pics/latias_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/anim_front_pics/latios_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/anim_front_pics/jirachi_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Deoxys[] = INCBIN_U32("graphics/pokemon/anim_front_pics/deoxys_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/anim_front_pics/chimecho_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Castform[] = INCBIN_U32("graphics/pokemon/castform/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/anim_front_pics/egg_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_b_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_c_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_d_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_e_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_f_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_g_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_h_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_i_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_j_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_k_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_l_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_m_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_n_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_o_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_p_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_q_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_r_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_s_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_t_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_u_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_v_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_w_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_x_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_y_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_z_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_exclamation_mark_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_question_mark_front_pic.4bpp.lz"); +const u32 gMonFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/anim_front_b.4bpp.lz"); +const u32 gMonFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/anim_front_c.4bpp.lz"); +const u32 gMonFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/anim_front_d.4bpp.lz"); +const u32 gMonFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/anim_front_e.4bpp.lz"); +const u32 gMonFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/anim_front_f.4bpp.lz"); +const u32 gMonFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/anim_front_g.4bpp.lz"); +const u32 gMonFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/anim_front_h.4bpp.lz"); +const u32 gMonFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/anim_front_i.4bpp.lz"); +const u32 gMonFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/anim_front_j.4bpp.lz"); +const u32 gMonFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/anim_front_k.4bpp.lz"); +const u32 gMonFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/anim_front_l.4bpp.lz"); +const u32 gMonFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/anim_front_m.4bpp.lz"); +const u32 gMonFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/anim_front_n.4bpp.lz"); +const u32 gMonFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/anim_front_o.4bpp.lz"); +const u32 gMonFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/anim_front_p.4bpp.lz"); +const u32 gMonFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/anim_front_q.4bpp.lz"); +const u32 gMonFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/anim_front_r.4bpp.lz"); +const u32 gMonFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/anim_front_s.4bpp.lz"); +const u32 gMonFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/anim_front_t.4bpp.lz"); +const u32 gMonFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/anim_front_u.4bpp.lz"); +const u32 gMonFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/anim_front_v.4bpp.lz"); +const u32 gMonFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/anim_front_w.4bpp.lz"); +const u32 gMonFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/anim_front_x.4bpp.lz"); +const u32 gMonFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/anim_front_y.4bpp.lz"); +const u32 gMonFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/anim_front_z.4bpp.lz"); +const u32 gMonFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/anim_front_exclamation_mark.4bpp.lz"); +const u32 gMonFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/anim_front_question_mark.4bpp.lz"); diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 40ebdf9e4..67d1fbd3f 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -1,1625 +1,1625 @@ -const u32 gMonStillFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/front_pics/bulbasaur_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/palettes/bulbasaur_palette.gbapal.lz"); -const u32 gMonBackPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/back_pics/bulbasaur_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/palettes/bulbasaur_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Bulbasaur[] = INCBIN_U8("graphics/pokemon/icons/bulbasaur_icon.4bpp"); -const u8 gMonFootprint_Bulbasaur[] = INCBIN_U8("graphics/pokemon/footprints/bulbasaur_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/front_pics/ivysaur_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/palettes/ivysaur_palette.gbapal.lz"); -const u32 gMonBackPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/back_pics/ivysaur_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/palettes/ivysaur_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ivysaur[] = INCBIN_U8("graphics/pokemon/icons/ivysaur_icon.4bpp"); -const u8 gMonFootprint_Ivysaur[] = INCBIN_U8("graphics/pokemon/footprints/ivysaur_footprint.1bpp"); - -const u32 gMonStillFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/front_pics/venusaur_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/palettes/venusaur_palette.gbapal.lz"); -const u32 gMonBackPic_Venusaur[] = INCBIN_U32("graphics/pokemon/back_pics/venusaur_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/palettes/venusaur_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Venusaur[] = INCBIN_U8("graphics/pokemon/icons/venusaur_icon.4bpp"); -const u8 gMonFootprint_Venusaur[] = INCBIN_U8("graphics/pokemon/footprints/venusaur_footprint.1bpp"); - -const u32 gMonStillFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/front_pics/charmander_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Charmander[] = INCBIN_U32("graphics/pokemon/palettes/charmander_palette.gbapal.lz"); -const u32 gMonBackPic_Charmander[] = INCBIN_U32("graphics/pokemon/back_pics/charmander_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Charmander[] = INCBIN_U32("graphics/pokemon/palettes/charmander_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Charmander[] = INCBIN_U8("graphics/pokemon/icons/charmander_icon.4bpp"); -const u8 gMonFootprint_Charmander[] = INCBIN_U8("graphics/pokemon/footprints/charmander_footprint.1bpp"); - -const u32 gMonStillFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/front_pics/charmeleon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/palettes/charmeleon_palette.gbapal.lz"); -const u32 gMonBackPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/back_pics/charmeleon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/palettes/charmeleon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Charmeleon[] = INCBIN_U8("graphics/pokemon/icons/charmeleon_icon.4bpp"); -const u8 gMonFootprint_Charmeleon[] = INCBIN_U8("graphics/pokemon/footprints/charmeleon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/front_pics/charizard_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Charizard[] = INCBIN_U32("graphics/pokemon/palettes/charizard_palette.gbapal.lz"); -const u32 gMonBackPic_Charizard[] = INCBIN_U32("graphics/pokemon/back_pics/charizard_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Charizard[] = INCBIN_U32("graphics/pokemon/palettes/charizard_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Charizard[] = INCBIN_U8("graphics/pokemon/icons/charizard_icon.4bpp"); -const u8 gMonFootprint_Charizard[] = INCBIN_U8("graphics/pokemon/footprints/charizard_footprint.1bpp"); - -const u32 gMonStillFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/front_pics/squirtle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/palettes/squirtle_palette.gbapal.lz"); -const u32 gMonBackPic_Squirtle[] = INCBIN_U32("graphics/pokemon/back_pics/squirtle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/palettes/squirtle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Squirtle[] = INCBIN_U8("graphics/pokemon/icons/squirtle_icon.4bpp"); -const u8 gMonFootprint_Squirtle[] = INCBIN_U8("graphics/pokemon/footprints/squirtle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/front_pics/wartortle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/palettes/wartortle_palette.gbapal.lz"); -const u32 gMonBackPic_Wartortle[] = INCBIN_U32("graphics/pokemon/back_pics/wartortle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/palettes/wartortle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wartortle[] = INCBIN_U8("graphics/pokemon/icons/wartortle_icon.4bpp"); -const u8 gMonFootprint_Wartortle[] = INCBIN_U8("graphics/pokemon/footprints/wartortle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/front_pics/blastoise_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/palettes/blastoise_palette.gbapal.lz"); -const u32 gMonBackPic_Blastoise[] = INCBIN_U32("graphics/pokemon/back_pics/blastoise_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/palettes/blastoise_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Blastoise[] = INCBIN_U8("graphics/pokemon/icons/blastoise_icon.4bpp"); -const u8 gMonFootprint_Blastoise[] = INCBIN_U8("graphics/pokemon/footprints/blastoise_footprint.1bpp"); - -const u32 gMonStillFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/front_pics/caterpie_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/palettes/caterpie_palette.gbapal.lz"); -const u32 gMonBackPic_Caterpie[] = INCBIN_U32("graphics/pokemon/back_pics/caterpie_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/palettes/caterpie_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Caterpie[] = INCBIN_U8("graphics/pokemon/icons/caterpie_icon.4bpp"); -const u8 gMonFootprint_Caterpie[] = INCBIN_U8("graphics/pokemon/footprints/caterpie_footprint.1bpp"); - -const u32 gMonStillFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/front_pics/metapod_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Metapod[] = INCBIN_U32("graphics/pokemon/palettes/metapod_palette.gbapal.lz"); -const u32 gMonBackPic_Metapod[] = INCBIN_U32("graphics/pokemon/back_pics/metapod_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Metapod[] = INCBIN_U32("graphics/pokemon/palettes/metapod_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Metapod[] = INCBIN_U8( "graphics/pokemon/icons/metapod_icon.4bpp"); -const u8 gMonFootprint_Metapod[] = INCBIN_U8("graphics/pokemon/footprints/metapod_footprint.1bpp"); - -const u32 gMonStillFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/front_pics/butterfree_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/palettes/butterfree_palette.gbapal.lz"); -const u32 gMonBackPic_Butterfree[] = INCBIN_U32("graphics/pokemon/back_pics/butterfree_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/palettes/butterfree_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Butterfree[] = INCBIN_U8("graphics/pokemon/icons/butterfree_icon.4bpp"); -const u8 gMonFootprint_Butterfree[] = INCBIN_U8("graphics/pokemon/footprints/butterfree_footprint.1bpp"); - -const u32 gMonStillFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/front_pics/weedle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Weedle[] = INCBIN_U32("graphics/pokemon/palettes/weedle_palette.gbapal.lz"); -const u32 gMonBackPic_Weedle[] = INCBIN_U32("graphics/pokemon/back_pics/weedle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Weedle[] = INCBIN_U32("graphics/pokemon/palettes/weedle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Weedle[] = INCBIN_U8("graphics/pokemon/icons/weedle_icon.4bpp"); -const u8 gMonFootprint_Weedle[] = INCBIN_U8("graphics/pokemon/footprints/weedle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/front_pics/kakuna_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/palettes/kakuna_palette.gbapal.lz"); -const u32 gMonBackPic_Kakuna[] = INCBIN_U32("graphics/pokemon/back_pics/kakuna_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/palettes/kakuna_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kakuna[] = INCBIN_U8("graphics/pokemon/icons/kakuna_icon.4bpp"); -const u8 gMonFootprint_Kakuna[] = INCBIN_U8("graphics/pokemon/footprints/kakuna_footprint.1bpp"); - -const u32 gMonStillFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/front_pics/beedrill_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/palettes/beedrill_palette.gbapal.lz"); -const u32 gMonBackPic_Beedrill[] = INCBIN_U32("graphics/pokemon/back_pics/beedrill_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/palettes/beedrill_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Beedrill[] = INCBIN_U8("graphics/pokemon/icons/beedrill_icon.4bpp"); -const u8 gMonFootprint_Beedrill[] = INCBIN_U8("graphics/pokemon/footprints/beedrill_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/front_pics/pidgey_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/palettes/pidgey_palette.gbapal.lz"); -const u32 gMonBackPic_Pidgey[] = INCBIN_U32("graphics/pokemon/back_pics/pidgey_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/palettes/pidgey_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pidgey[] = INCBIN_U8("graphics/pokemon/icons/pidgey_icon.4bpp"); -const u8 gMonFootprint_Pidgey[] = INCBIN_U8("graphics/pokemon/footprints/pidgey_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/front_pics/pidgeotto_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/palettes/pidgeotto_palette.gbapal.lz"); -const u32 gMonBackPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/back_pics/pidgeotto_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/palettes/pidgeotto_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pidgeotto[] = INCBIN_U8("graphics/pokemon/icons/pidgeotto_icon.4bpp"); -const u8 gMonFootprint_Pidgeotto[] = INCBIN_U8("graphics/pokemon/footprints/pidgeotto_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/front_pics/pidgeot_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/palettes/pidgeot_palette.gbapal.lz"); -const u32 gMonBackPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/back_pics/pidgeot_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/palettes/pidgeot_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pidgeot[] = INCBIN_U8("graphics/pokemon/icons/pidgeot_icon.4bpp"); -const u8 gMonFootprint_Pidgeot[] = INCBIN_U8("graphics/pokemon/footprints/pidgeot_footprint.1bpp"); - -const u32 gMonStillFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/front_pics/rattata_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Rattata[] = INCBIN_U32("graphics/pokemon/palettes/rattata_palette.gbapal.lz"); -const u32 gMonBackPic_Rattata[] = INCBIN_U32("graphics/pokemon/back_pics/rattata_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Rattata[] = INCBIN_U32("graphics/pokemon/palettes/rattata_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Rattata[] = INCBIN_U8("graphics/pokemon/icons/rattata_icon.4bpp"); -const u8 gMonFootprint_Rattata[] = INCBIN_U8("graphics/pokemon/footprints/rattata_footprint.1bpp"); - -const u32 gMonStillFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/front_pics/raticate_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Raticate[] = INCBIN_U32("graphics/pokemon/palettes/raticate_palette.gbapal.lz"); -const u32 gMonBackPic_Raticate[] = INCBIN_U32("graphics/pokemon/back_pics/raticate_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Raticate[] = INCBIN_U32("graphics/pokemon/palettes/raticate_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Raticate[] = INCBIN_U8("graphics/pokemon/icons/raticate_icon.4bpp"); -const u8 gMonFootprint_Raticate[] = INCBIN_U8("graphics/pokemon/footprints/raticate_footprint.1bpp"); - -const u32 gMonStillFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/front_pics/spearow_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Spearow[] = INCBIN_U32("graphics/pokemon/palettes/spearow_palette.gbapal.lz"); -const u32 gMonBackPic_Spearow[] = INCBIN_U32("graphics/pokemon/back_pics/spearow_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Spearow[] = INCBIN_U32("graphics/pokemon/palettes/spearow_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Spearow[] = INCBIN_U8("graphics/pokemon/icons/spearow_icon.4bpp"); -const u8 gMonFootprint_Spearow[] = INCBIN_U8("graphics/pokemon/footprints/spearow_footprint.1bpp"); - -const u32 gMonStillFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/front_pics/fearow_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Fearow[] = INCBIN_U32("graphics/pokemon/palettes/fearow_palette.gbapal.lz"); -const u32 gMonBackPic_Fearow[] = INCBIN_U32("graphics/pokemon/back_pics/fearow_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Fearow[] = INCBIN_U32("graphics/pokemon/palettes/fearow_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Fearow[] = INCBIN_U8("graphics/pokemon/icons/fearow_icon.4bpp"); -const u8 gMonFootprint_Fearow[] = INCBIN_U8("graphics/pokemon/footprints/fearow_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/front_pics/ekans_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ekans[] = INCBIN_U32("graphics/pokemon/palettes/ekans_palette.gbapal.lz"); -const u32 gMonBackPic_Ekans[] = INCBIN_U32("graphics/pokemon/back_pics/ekans_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ekans[] = INCBIN_U32("graphics/pokemon/palettes/ekans_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ekans[] = INCBIN_U8("graphics/pokemon/icons/ekans_icon.4bpp"); -const u8 gMonFootprint_Ekans[] = INCBIN_U8("graphics/pokemon/footprints/ekans_footprint.1bpp"); - -const u32 gMonStillFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/front_pics/arbok_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Arbok[] = INCBIN_U32("graphics/pokemon/palettes/arbok_palette.gbapal.lz"); -const u32 gMonBackPic_Arbok[] = INCBIN_U32("graphics/pokemon/back_pics/arbok_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Arbok[] = INCBIN_U32("graphics/pokemon/palettes/arbok_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Arbok[] = INCBIN_U8("graphics/pokemon/icons/arbok_icon.4bpp"); -const u8 gMonFootprint_Arbok[] = INCBIN_U8("graphics/pokemon/footprints/arbok_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/front_pics/pikachu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/palettes/pikachu_palette.gbapal.lz"); -const u32 gMonBackPic_Pikachu[] = INCBIN_U32("graphics/pokemon/back_pics/pikachu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/palettes/pikachu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pikachu[] = INCBIN_U8("graphics/pokemon/icons/pikachu_icon.4bpp"); -const u8 gMonFootprint_Pikachu[] = INCBIN_U8("graphics/pokemon/footprints/pikachu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/front_pics/raichu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Raichu[] = INCBIN_U32("graphics/pokemon/palettes/raichu_palette.gbapal.lz"); -const u32 gMonBackPic_Raichu[] = INCBIN_U32("graphics/pokemon/back_pics/raichu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Raichu[] = INCBIN_U32("graphics/pokemon/palettes/raichu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Raichu[] = INCBIN_U8("graphics/pokemon/icons/raichu_icon.4bpp"); -const u8 gMonFootprint_Raichu[] = INCBIN_U8("graphics/pokemon/footprints/raichu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/front_pics/sandshrew_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/palettes/sandshrew_palette.gbapal.lz"); -const u32 gMonBackPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/back_pics/sandshrew_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/palettes/sandshrew_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sandshrew[] = INCBIN_U8("graphics/pokemon/icons/sandshrew_icon.4bpp"); -const u8 gMonFootprint_Sandshrew[] = INCBIN_U8("graphics/pokemon/footprints/sandshrew_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/front_pics/sandslash_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/palettes/sandslash_palette.gbapal.lz"); -const u32 gMonBackPic_Sandslash[] = INCBIN_U32("graphics/pokemon/back_pics/sandslash_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/palettes/sandslash_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sandslash[] = INCBIN_U8("graphics/pokemon/icons/sandslash_icon.4bpp"); -const u8 gMonFootprint_Sandslash[] = INCBIN_U8("graphics/pokemon/footprints/sandslash_footprint.1bpp"); - -const u32 gMonStillFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/front_pics/nidoran_f_still_front_pic.4bpp.lz"); -const u32 gMonPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/palettes/nidoran_f_palette.gbapal.lz"); -const u32 gMonBackPic_NidoranF[] = INCBIN_U32("graphics/pokemon/back_pics/nidoran_f_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/palettes/nidoran_f_shiny_palette.gbapal.lz"); -const u8 gMonIcon_NidoranF[] = INCBIN_U8("graphics/pokemon/icons/nidoran_f_icon.4bpp"); -const u8 gMonFootprint_NidoranF[] = INCBIN_U8("graphics/pokemon/footprints/nidoran_f_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/front_pics/nidorina_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/palettes/nidorina_palette.gbapal.lz"); -const u32 gMonBackPic_Nidorina[] = INCBIN_U32("graphics/pokemon/back_pics/nidorina_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/palettes/nidorina_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nidorina[] = INCBIN_U8("graphics/pokemon/icons/nidorina_icon.4bpp"); -const u8 gMonFootprint_Nidorina[] = INCBIN_U8("graphics/pokemon/footprints/nidorina_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/front_pics/nidoqueen_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/palettes/nidoqueen_palette.gbapal.lz"); -const u32 gMonBackPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/back_pics/nidoqueen_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/palettes/nidoqueen_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nidoqueen[] = INCBIN_U8("graphics/pokemon/icons/nidoqueen_icon.4bpp"); -const u8 gMonFootprint_Nidoqueen[] = INCBIN_U8("graphics/pokemon/footprints/nidoqueen_footprint.1bpp"); - -const u32 gMonStillFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/front_pics/nidoran_m_still_front_pic.4bpp.lz"); -const u32 gMonPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/palettes/nidoran_m_palette.gbapal.lz"); -const u32 gMonBackPic_NidoranM[] = INCBIN_U32("graphics/pokemon/back_pics/nidoran_m_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/palettes/nidoran_m_shiny_palette.gbapal.lz"); -const u8 gMonIcon_NidoranM[] = INCBIN_U8("graphics/pokemon/icons/nidoran_m_icon.4bpp"); -const u8 gMonFootprint_NidoranM[] = INCBIN_U8("graphics/pokemon/footprints/nidoran_m_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/front_pics/nidorino_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/palettes/nidorino_palette.gbapal.lz"); -const u32 gMonBackPic_Nidorino[] = INCBIN_U32("graphics/pokemon/back_pics/nidorino_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/palettes/nidorino_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nidorino[] = INCBIN_U8("graphics/pokemon/icons/nidorino_icon.4bpp"); -const u8 gMonFootprint_Nidorino[] = INCBIN_U8("graphics/pokemon/footprints/nidorino_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/front_pics/nidoking_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/palettes/nidoking_palette.gbapal.lz"); -const u32 gMonBackPic_Nidoking[] = INCBIN_U32("graphics/pokemon/back_pics/nidoking_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/palettes/nidoking_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nidoking[] = INCBIN_U8("graphics/pokemon/icons/nidoking_icon.4bpp"); -const u8 gMonFootprint_Nidoking[] = INCBIN_U8("graphics/pokemon/footprints/nidoking_footprint.1bpp"); - -const u32 gMonStillFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/front_pics/clefairy_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/palettes/clefairy_palette.gbapal.lz"); -const u32 gMonBackPic_Clefairy[] = INCBIN_U32("graphics/pokemon/back_pics/clefairy_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/palettes/clefairy_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Clefairy[] = INCBIN_U8("graphics/pokemon/icons/clefairy_icon.4bpp"); -const u8 gMonFootprint_Clefairy[] = INCBIN_U8("graphics/pokemon/footprints/clefairy_footprint.1bpp"); - -const u32 gMonStillFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/front_pics/clefable_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Clefable[] = INCBIN_U32("graphics/pokemon/palettes/clefable_palette.gbapal.lz"); -const u32 gMonBackPic_Clefable[] = INCBIN_U32("graphics/pokemon/back_pics/clefable_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Clefable[] = INCBIN_U32("graphics/pokemon/palettes/clefable_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Clefable[] = INCBIN_U8("graphics/pokemon/icons/clefable_icon.4bpp"); -const u8 gMonFootprint_Clefable[] = INCBIN_U8("graphics/pokemon/footprints/clefable_footprint.1bpp"); - -const u32 gMonStillFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/front_pics/vulpix_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/palettes/vulpix_palette.gbapal.lz"); -const u32 gMonBackPic_Vulpix[] = INCBIN_U32("graphics/pokemon/back_pics/vulpix_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/palettes/vulpix_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Vulpix[] = INCBIN_U8("graphics/pokemon/icons/vulpix_icon.4bpp"); -const u8 gMonFootprint_Vulpix[] = INCBIN_U8("graphics/pokemon/footprints/vulpix_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/front_pics/ninetales_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/palettes/ninetales_palette.gbapal.lz"); -const u32 gMonBackPic_Ninetales[] = INCBIN_U32("graphics/pokemon/back_pics/ninetales_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/palettes/ninetales_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ninetales[] = INCBIN_U8("graphics/pokemon/icons/ninetales_icon.4bpp"); -const u8 gMonFootprint_Ninetales[] = INCBIN_U8("graphics/pokemon/footprints/ninetales_footprint.1bpp"); - -const u32 gMonStillFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/front_pics/jigglypuff_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/palettes/jigglypuff_palette.gbapal.lz"); -const u32 gMonBackPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/back_pics/jigglypuff_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/palettes/jigglypuff_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Jigglypuff[] = INCBIN_U8("graphics/pokemon/icons/jigglypuff_icon.4bpp"); -const u8 gMonFootprint_Jigglypuff[] = INCBIN_U8("graphics/pokemon/footprints/jigglypuff_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/front_pics/wigglytuff_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/palettes/wigglytuff_palette.gbapal.lz"); -const u32 gMonBackPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/back_pics/wigglytuff_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/palettes/wigglytuff_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wigglytuff[] = INCBIN_U8("graphics/pokemon/icons/wigglytuff_icon.4bpp"); -const u8 gMonFootprint_Wigglytuff[] = INCBIN_U8("graphics/pokemon/footprints/wigglytuff_footprint.1bpp"); - -const u32 gMonStillFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/front_pics/zubat_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Zubat[] = INCBIN_U32("graphics/pokemon/palettes/zubat_palette.gbapal.lz"); -const u32 gMonBackPic_Zubat[] = INCBIN_U32("graphics/pokemon/back_pics/zubat_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Zubat[] = INCBIN_U32("graphics/pokemon/palettes/zubat_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Zubat[] = INCBIN_U8("graphics/pokemon/icons/zubat_icon.4bpp"); -const u8 gMonFootprint_Zubat[] = INCBIN_U8("graphics/pokemon/footprints/zubat_footprint.1bpp"); - -const u32 gMonStillFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/front_pics/golbat_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Golbat[] = INCBIN_U32("graphics/pokemon/palettes/golbat_palette.gbapal.lz"); -const u32 gMonBackPic_Golbat[] = INCBIN_U32("graphics/pokemon/back_pics/golbat_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Golbat[] = INCBIN_U32("graphics/pokemon/palettes/golbat_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Golbat[] = INCBIN_U8("graphics/pokemon/icons/golbat_icon.4bpp"); -const u8 gMonFootprint_Golbat[] = INCBIN_U8("graphics/pokemon/footprints/golbat_footprint.1bpp"); - -const u32 gMonStillFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/front_pics/oddish_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Oddish[] = INCBIN_U32("graphics/pokemon/palettes/oddish_palette.gbapal.lz"); -const u32 gMonBackPic_Oddish[] = INCBIN_U32("graphics/pokemon/back_pics/oddish_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Oddish[] = INCBIN_U32("graphics/pokemon/palettes/oddish_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Oddish[] = INCBIN_U8("graphics/pokemon/icons/oddish_icon.4bpp"); -const u8 gMonFootprint_Oddish[] = INCBIN_U8("graphics/pokemon/footprints/oddish_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/front_pics/gloom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gloom[] = INCBIN_U32("graphics/pokemon/palettes/gloom_palette.gbapal.lz"); -const u32 gMonBackPic_Gloom[] = INCBIN_U32("graphics/pokemon/back_pics/gloom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gloom[] = INCBIN_U32("graphics/pokemon/palettes/gloom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gloom[] = INCBIN_U8("graphics/pokemon/icons/gloom_icon.4bpp"); -const u8 gMonFootprint_Gloom[] = INCBIN_U8("graphics/pokemon/footprints/gloom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/front_pics/vileplume_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/palettes/vileplume_palette.gbapal.lz"); -const u32 gMonBackPic_Vileplume[] = INCBIN_U32("graphics/pokemon/back_pics/vileplume_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/palettes/vileplume_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Vileplume[] = INCBIN_U8("graphics/pokemon/icons/vileplume_icon.4bpp"); -const u8 gMonFootprint_Vileplume[] = INCBIN_U8("graphics/pokemon/footprints/vileplume_footprint.1bpp"); - -const u32 gMonStillFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/front_pics/paras_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Paras[] = INCBIN_U32("graphics/pokemon/palettes/paras_palette.gbapal.lz"); -const u32 gMonBackPic_Paras[] = INCBIN_U32("graphics/pokemon/back_pics/paras_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Paras[] = INCBIN_U32("graphics/pokemon/palettes/paras_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Paras[] = INCBIN_U8("graphics/pokemon/icons/paras_icon.4bpp"); -const u8 gMonFootprint_Paras[] = INCBIN_U8("graphics/pokemon/footprints/paras_footprint.1bpp"); - -const u32 gMonStillFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/front_pics/parasect_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Parasect[] = INCBIN_U32("graphics/pokemon/palettes/parasect_palette.gbapal.lz"); -const u32 gMonBackPic_Parasect[] = INCBIN_U32("graphics/pokemon/back_pics/parasect_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Parasect[] = INCBIN_U32("graphics/pokemon/palettes/parasect_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Parasect[] = INCBIN_U8("graphics/pokemon/icons/parasect_icon.4bpp"); -const u8 gMonFootprint_Parasect[] = INCBIN_U8("graphics/pokemon/footprints/parasect_footprint.1bpp"); - -const u32 gMonStillFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/front_pics/venonat_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Venonat[] = INCBIN_U32("graphics/pokemon/palettes/venonat_palette.gbapal.lz"); -const u32 gMonBackPic_Venonat[] = INCBIN_U32("graphics/pokemon/back_pics/venonat_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Venonat[] = INCBIN_U32("graphics/pokemon/palettes/venonat_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Venonat[] = INCBIN_U8("graphics/pokemon/icons/venonat_icon.4bpp"); -const u8 gMonFootprint_Venonat[] = INCBIN_U8("graphics/pokemon/footprints/venonat_footprint.1bpp"); - -const u32 gMonStillFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/front_pics/venomoth_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/palettes/venomoth_palette.gbapal.lz"); -const u32 gMonBackPic_Venomoth[] = INCBIN_U32("graphics/pokemon/back_pics/venomoth_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/palettes/venomoth_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Venomoth[] = INCBIN_U8("graphics/pokemon/icons/venomoth_icon.4bpp"); -const u8 gMonFootprint_Venomoth[] = INCBIN_U8("graphics/pokemon/footprints/venomoth_footprint.1bpp"); - -const u32 gMonStillFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/front_pics/diglett_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Diglett[] = INCBIN_U32("graphics/pokemon/palettes/diglett_palette.gbapal.lz"); -const u32 gMonBackPic_Diglett[] = INCBIN_U32("graphics/pokemon/back_pics/diglett_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Diglett[] = INCBIN_U32("graphics/pokemon/palettes/diglett_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Diglett[] = INCBIN_U8("graphics/pokemon/icons/diglett_icon.4bpp"); -const u8 gMonFootprint_Diglett[] = INCBIN_U8("graphics/pokemon/footprints/diglett_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/front_pics/dugtrio_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/palettes/dugtrio_palette.gbapal.lz"); -const u32 gMonBackPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/back_pics/dugtrio_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/palettes/dugtrio_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dugtrio[] = INCBIN_U8("graphics/pokemon/icons/dugtrio_icon.4bpp"); -const u8 gMonFootprint_Dugtrio[] = INCBIN_U8("graphics/pokemon/footprints/dugtrio_footprint.1bpp"); - -const u32 gMonStillFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/front_pics/meowth_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Meowth[] = INCBIN_U32("graphics/pokemon/palettes/meowth_palette.gbapal.lz"); -const u32 gMonBackPic_Meowth[] = INCBIN_U32("graphics/pokemon/back_pics/meowth_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Meowth[] = INCBIN_U32("graphics/pokemon/palettes/meowth_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Meowth[] = INCBIN_U8("graphics/pokemon/icons/meowth_icon.4bpp"); -const u8 gMonFootprint_Meowth[] = INCBIN_U8("graphics/pokemon/footprints/meowth_footprint.1bpp"); - -const u32 gMonStillFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/front_pics/persian_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Persian[] = INCBIN_U32("graphics/pokemon/palettes/persian_palette.gbapal.lz"); -const u32 gMonBackPic_Persian[] = INCBIN_U32("graphics/pokemon/back_pics/persian_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Persian[] = INCBIN_U32("graphics/pokemon/palettes/persian_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Persian[] = INCBIN_U8("graphics/pokemon/icons/persian_icon.4bpp"); -const u8 gMonFootprint_Persian[] = INCBIN_U8("graphics/pokemon/footprints/persian_footprint.1bpp"); - -const u32 gMonStillFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/front_pics/psyduck_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/palettes/psyduck_palette.gbapal.lz"); -const u32 gMonBackPic_Psyduck[] = INCBIN_U32("graphics/pokemon/back_pics/psyduck_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/palettes/psyduck_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Psyduck[] = INCBIN_U8("graphics/pokemon/icons/psyduck_icon.4bpp"); -const u8 gMonFootprint_Psyduck[] = INCBIN_U8("graphics/pokemon/footprints/psyduck_footprint.1bpp"); - -const u32 gMonStillFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/front_pics/golduck_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Golduck[] = INCBIN_U32("graphics/pokemon/palettes/golduck_palette.gbapal.lz"); -const u32 gMonBackPic_Golduck[] = INCBIN_U32("graphics/pokemon/back_pics/golduck_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Golduck[] = INCBIN_U32("graphics/pokemon/palettes/golduck_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Golduck[] = INCBIN_U8("graphics/pokemon/icons/golduck_icon.4bpp"); -const u8 gMonFootprint_Golduck[] = INCBIN_U8("graphics/pokemon/footprints/golduck_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/front_pics/mankey_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mankey[] = INCBIN_U32("graphics/pokemon/palettes/mankey_palette.gbapal.lz"); -const u32 gMonBackPic_Mankey[] = INCBIN_U32("graphics/pokemon/back_pics/mankey_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mankey[] = INCBIN_U32("graphics/pokemon/palettes/mankey_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mankey[] = INCBIN_U8("graphics/pokemon/icons/mankey_icon.4bpp"); -const u8 gMonFootprint_Mankey[] = INCBIN_U8("graphics/pokemon/footprints/mankey_footprint.1bpp"); - -const u32 gMonStillFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/front_pics/primeape_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Primeape[] = INCBIN_U32("graphics/pokemon/palettes/primeape_palette.gbapal.lz"); -const u32 gMonBackPic_Primeape[] = INCBIN_U32("graphics/pokemon/back_pics/primeape_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Primeape[] = INCBIN_U32("graphics/pokemon/palettes/primeape_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Primeape[] = INCBIN_U8("graphics/pokemon/icons/primeape_icon.4bpp"); -const u8 gMonFootprint_Primeape[] = INCBIN_U8("graphics/pokemon/footprints/primeape_footprint.1bpp"); - -const u32 gMonStillFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/front_pics/growlithe_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/palettes/growlithe_palette.gbapal.lz"); -const u32 gMonBackPic_Growlithe[] = INCBIN_U32("graphics/pokemon/back_pics/growlithe_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/palettes/growlithe_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Growlithe[] = INCBIN_U8("graphics/pokemon/icons/growlithe_icon.4bpp"); -const u8 gMonFootprint_Growlithe[] = INCBIN_U8("graphics/pokemon/footprints/growlithe_footprint.1bpp"); - -const u32 gMonStillFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/front_pics/arcanine_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/palettes/arcanine_palette.gbapal.lz"); -const u32 gMonBackPic_Arcanine[] = INCBIN_U32("graphics/pokemon/back_pics/arcanine_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/palettes/arcanine_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Arcanine[] = INCBIN_U8("graphics/pokemon/icons/arcanine_icon.4bpp"); -const u8 gMonFootprint_Arcanine[] = INCBIN_U8("graphics/pokemon/footprints/arcanine_footprint.1bpp"); - -const u32 gMonStillFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/front_pics/poliwag_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/palettes/poliwag_palette.gbapal.lz"); -const u32 gMonBackPic_Poliwag[] = INCBIN_U32("graphics/pokemon/back_pics/poliwag_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/palettes/poliwag_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Poliwag[] = INCBIN_U8("graphics/pokemon/icons/poliwag_icon.4bpp"); -const u8 gMonFootprint_Poliwag[] = INCBIN_U8("graphics/pokemon/footprints/poliwag_footprint.1bpp"); - -const u32 gMonStillFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/front_pics/poliwhirl_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/palettes/poliwhirl_palette.gbapal.lz"); -const u32 gMonBackPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/back_pics/poliwhirl_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/palettes/poliwhirl_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Poliwhirl[] = INCBIN_U8("graphics/pokemon/icons/poliwhirl_icon.4bpp"); -const u8 gMonFootprint_Poliwhirl[] = INCBIN_U8("graphics/pokemon/footprints/poliwhirl_footprint.1bpp"); - -const u32 gMonStillFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/front_pics/poliwrath_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/palettes/poliwrath_palette.gbapal.lz"); -const u32 gMonBackPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/back_pics/poliwrath_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/palettes/poliwrath_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Poliwrath[] = INCBIN_U8("graphics/pokemon/icons/poliwrath_icon.4bpp"); -const u8 gMonFootprint_Poliwrath[] = INCBIN_U8("graphics/pokemon/footprints/poliwrath_footprint.1bpp"); - -const u32 gMonStillFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/front_pics/abra_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Abra[] = INCBIN_U32("graphics/pokemon/palettes/abra_palette.gbapal.lz"); -const u32 gMonBackPic_Abra[] = INCBIN_U32("graphics/pokemon/back_pics/abra_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Abra[] = INCBIN_U32("graphics/pokemon/palettes/abra_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Abra[] = INCBIN_U8("graphics/pokemon/icons/abra_icon.4bpp"); -const u8 gMonFootprint_Abra[] = INCBIN_U8("graphics/pokemon/footprints/abra_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/front_pics/kadabra_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/palettes/kadabra_palette.gbapal.lz"); -const u32 gMonBackPic_Kadabra[] = INCBIN_U32("graphics/pokemon/back_pics/kadabra_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/palettes/kadabra_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kadabra[] = INCBIN_U8("graphics/pokemon/icons/kadabra_icon.4bpp"); -const u8 gMonFootprint_Kadabra[] = INCBIN_U8("graphics/pokemon/footprints/kadabra_footprint.1bpp"); - -const u32 gMonStillFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/front_pics/alakazam_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/palettes/alakazam_palette.gbapal.lz"); -const u32 gMonBackPic_Alakazam[] = INCBIN_U32("graphics/pokemon/back_pics/alakazam_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/palettes/alakazam_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Alakazam[] = INCBIN_U8("graphics/pokemon/icons/alakazam_icon.4bpp"); -const u8 gMonFootprint_Alakazam[] = INCBIN_U8("graphics/pokemon/footprints/alakazam_footprint.1bpp"); - -const u32 gMonStillFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/front_pics/machop_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Machop[] = INCBIN_U32("graphics/pokemon/palettes/machop_palette.gbapal.lz"); -const u32 gMonBackPic_Machop[] = INCBIN_U32("graphics/pokemon/back_pics/machop_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Machop[] = INCBIN_U32("graphics/pokemon/palettes/machop_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Machop[] = INCBIN_U8("graphics/pokemon/icons/machop_icon.4bpp"); -const u8 gMonFootprint_Machop[] = INCBIN_U8("graphics/pokemon/footprints/machop_footprint.1bpp"); - -const u32 gMonStillFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/front_pics/machoke_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Machoke[] = INCBIN_U32("graphics/pokemon/palettes/machoke_palette.gbapal.lz"); -const u32 gMonBackPic_Machoke[] = INCBIN_U32("graphics/pokemon/back_pics/machoke_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Machoke[] = INCBIN_U32("graphics/pokemon/palettes/machoke_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Machoke[] = INCBIN_U8("graphics/pokemon/icons/machoke_icon.4bpp"); -const u8 gMonFootprint_Machoke[] = INCBIN_U8("graphics/pokemon/footprints/machoke_footprint.1bpp"); - -const u32 gMonStillFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/front_pics/machamp_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Machamp[] = INCBIN_U32("graphics/pokemon/palettes/machamp_palette.gbapal.lz"); -const u32 gMonBackPic_Machamp[] = INCBIN_U32("graphics/pokemon/back_pics/machamp_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Machamp[] = INCBIN_U32("graphics/pokemon/palettes/machamp_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Machamp[] = INCBIN_U8("graphics/pokemon/icons/machamp_icon.4bpp"); -const u8 gMonFootprint_Machamp[] = INCBIN_U8("graphics/pokemon/footprints/machamp_footprint.1bpp"); - -const u32 gMonStillFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/front_pics/bellsprout_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/palettes/bellsprout_palette.gbapal.lz"); -const u32 gMonBackPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/back_pics/bellsprout_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/palettes/bellsprout_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Bellsprout[] = INCBIN_U8("graphics/pokemon/icons/bellsprout_icon.4bpp"); -const u8 gMonFootprint_Bellsprout[] = INCBIN_U8("graphics/pokemon/footprints/bellsprout_footprint.1bpp"); - -const u32 gMonStillFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/front_pics/weepinbell_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/palettes/weepinbell_palette.gbapal.lz"); -const u32 gMonBackPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/back_pics/weepinbell_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/palettes/weepinbell_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Weepinbell[] = INCBIN_U8("graphics/pokemon/icons/weepinbell_icon.4bpp"); -const u8 gMonFootprint_Weepinbell[] = INCBIN_U8("graphics/pokemon/footprints/weepinbell_footprint.1bpp"); - -const u32 gMonStillFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/front_pics/victreebel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/palettes/victreebel_palette.gbapal.lz"); -const u32 gMonBackPic_Victreebel[] = INCBIN_U32("graphics/pokemon/back_pics/victreebel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/palettes/victreebel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Victreebel[] = INCBIN_U8("graphics/pokemon/icons/victreebel_icon.4bpp"); -const u8 gMonFootprint_Victreebel[] = INCBIN_U8("graphics/pokemon/footprints/victreebel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/front_pics/tentacool_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/palettes/tentacool_palette.gbapal.lz"); -const u32 gMonBackPic_Tentacool[] = INCBIN_U32("graphics/pokemon/back_pics/tentacool_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/palettes/tentacool_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tentacool[] = INCBIN_U8("graphics/pokemon/icons/tentacool_icon.4bpp"); -const u8 gMonFootprint_Tentacool[] = INCBIN_U8("graphics/pokemon/footprints/tentacool_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/front_pics/tentacruel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/palettes/tentacruel_palette.gbapal.lz"); -const u32 gMonBackPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/back_pics/tentacruel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/palettes/tentacruel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tentacruel[] = INCBIN_U8("graphics/pokemon/icons/tentacruel_icon.4bpp"); -const u8 gMonFootprint_Tentacruel[] = INCBIN_U8("graphics/pokemon/footprints/tentacruel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/front_pics/geodude_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Geodude[] = INCBIN_U32("graphics/pokemon/palettes/geodude_palette.gbapal.lz"); -const u32 gMonBackPic_Geodude[] = INCBIN_U32("graphics/pokemon/back_pics/geodude_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Geodude[] = INCBIN_U32("graphics/pokemon/palettes/geodude_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Geodude[] = INCBIN_U8("graphics/pokemon/icons/geodude_icon.4bpp"); -const u8 gMonFootprint_Geodude[] = INCBIN_U8("graphics/pokemon/footprints/geodude_footprint.1bpp"); - -const u32 gMonStillFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/front_pics/graveler_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Graveler[] = INCBIN_U32("graphics/pokemon/palettes/graveler_palette.gbapal.lz"); -const u32 gMonBackPic_Graveler[] = INCBIN_U32("graphics/pokemon/back_pics/graveler_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Graveler[] = INCBIN_U32("graphics/pokemon/palettes/graveler_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Graveler[] = INCBIN_U8("graphics/pokemon/icons/graveler_icon.4bpp"); -const u8 gMonFootprint_Graveler[] = INCBIN_U8("graphics/pokemon/footprints/graveler_footprint.1bpp"); - -const u32 gMonStillFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/front_pics/golem_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Golem[] = INCBIN_U32("graphics/pokemon/palettes/golem_palette.gbapal.lz"); -const u32 gMonBackPic_Golem[] = INCBIN_U32("graphics/pokemon/back_pics/golem_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Golem[] = INCBIN_U32("graphics/pokemon/palettes/golem_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Golem[] = INCBIN_U8("graphics/pokemon/icons/golem_icon.4bpp"); -const u8 gMonFootprint_Golem[] = INCBIN_U8("graphics/pokemon/footprints/golem_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/front_pics/ponyta_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/palettes/ponyta_palette.gbapal.lz"); -const u32 gMonBackPic_Ponyta[] = INCBIN_U32("graphics/pokemon/back_pics/ponyta_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/palettes/ponyta_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ponyta[] = INCBIN_U8("graphics/pokemon/icons/ponyta_icon.4bpp"); -const u8 gMonFootprint_Ponyta[] = INCBIN_U8("graphics/pokemon/footprints/ponyta_footprint.1bpp"); - -const u32 gMonStillFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/front_pics/rapidash_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/palettes/rapidash_palette.gbapal.lz"); -const u32 gMonBackPic_Rapidash[] = INCBIN_U32("graphics/pokemon/back_pics/rapidash_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/palettes/rapidash_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Rapidash[] = INCBIN_U8("graphics/pokemon/icons/rapidash_icon.4bpp"); -const u8 gMonFootprint_Rapidash[] = INCBIN_U8("graphics/pokemon/footprints/rapidash_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/front_pics/slowpoke_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/palettes/slowpoke_palette.gbapal.lz"); -const u32 gMonBackPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/back_pics/slowpoke_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/palettes/slowpoke_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slowpoke[] = INCBIN_U8("graphics/pokemon/icons/slowpoke_icon.4bpp"); -const u8 gMonFootprint_Slowpoke[] = INCBIN_U8("graphics/pokemon/footprints/slowpoke_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/front_pics/slowbro_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/palettes/slowbro_palette.gbapal.lz"); -const u32 gMonBackPic_Slowbro[] = INCBIN_U32("graphics/pokemon/back_pics/slowbro_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/palettes/slowbro_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slowbro[] = INCBIN_U8("graphics/pokemon/icons/slowbro_icon.4bpp"); -const u8 gMonFootprint_Slowbro[] = INCBIN_U8("graphics/pokemon/footprints/slowbro_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/front_pics/magnemite_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/palettes/magnemite_palette.gbapal.lz"); -const u32 gMonBackPic_Magnemite[] = INCBIN_U32("graphics/pokemon/back_pics/magnemite_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/palettes/magnemite_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magnemite[] = INCBIN_U8("graphics/pokemon/icons/magnemite_icon.4bpp"); -const u8 gMonFootprint_Magnemite[] = INCBIN_U8("graphics/pokemon/footprints/magnemite_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/front_pics/magneton_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magneton[] = INCBIN_U32("graphics/pokemon/palettes/magneton_palette.gbapal.lz"); -const u32 gMonBackPic_Magneton[] = INCBIN_U32("graphics/pokemon/back_pics/magneton_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magneton[] = INCBIN_U32("graphics/pokemon/palettes/magneton_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/icons/magneton_icon.4bpp"); -const u8 gMonFootprint_Magneton[] = INCBIN_U8("graphics/pokemon/footprints/magneton_footprint.1bpp"); - -const u32 gMonStillFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/front_pics/farfetch_d_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/palettes/farfetch_d_palette.gbapal.lz"); -const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/back_pics/farfetch_d_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/palettes/farfetch_d_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/icons/farfetch_d_icon.4bpp"); -const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/footprints/farfetch_d_footprint.1bpp"); - -const u32 gMonStillFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/front_pics/doduo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Doduo[] = INCBIN_U32("graphics/pokemon/palettes/doduo_palette.gbapal.lz"); -const u32 gMonBackPic_Doduo[] = INCBIN_U32("graphics/pokemon/back_pics/doduo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Doduo[] = INCBIN_U32("graphics/pokemon/palettes/doduo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Doduo[] = INCBIN_U8("graphics/pokemon/icons/doduo_icon.4bpp"); -const u8 gMonFootprint_Doduo[] = INCBIN_U8("graphics/pokemon/footprints/doduo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/front_pics/dodrio_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/palettes/dodrio_palette.gbapal.lz"); -const u32 gMonBackPic_Dodrio[] = INCBIN_U32("graphics/pokemon/back_pics/dodrio_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/palettes/dodrio_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dodrio[] = INCBIN_U8("graphics/pokemon/icons/dodrio_icon.4bpp"); -const u8 gMonFootprint_Dodrio[] = INCBIN_U8("graphics/pokemon/footprints/dodrio_footprint.1bpp"); - -const u32 gMonStillFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/front_pics/seel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Seel[] = INCBIN_U32("graphics/pokemon/palettes/seel_palette.gbapal.lz"); -const u32 gMonBackPic_Seel[] = INCBIN_U32("graphics/pokemon/back_pics/seel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Seel[] = INCBIN_U32("graphics/pokemon/palettes/seel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Seel[] = INCBIN_U8("graphics/pokemon/icons/seel_icon.4bpp"); -const u8 gMonFootprint_Seel[] = INCBIN_U8("graphics/pokemon/footprints/seel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/front_pics/dewgong_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/palettes/dewgong_palette.gbapal.lz"); -const u32 gMonBackPic_Dewgong[] = INCBIN_U32("graphics/pokemon/back_pics/dewgong_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/palettes/dewgong_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dewgong[] = INCBIN_U8("graphics/pokemon/icons/dewgong_icon.4bpp"); -const u8 gMonFootprint_Dewgong[] = INCBIN_U8("graphics/pokemon/footprints/dewgong_footprint.1bpp"); - -const u32 gMonStillFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/front_pics/grimer_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Grimer[] = INCBIN_U32("graphics/pokemon/palettes/grimer_palette.gbapal.lz"); -const u32 gMonBackPic_Grimer[] = INCBIN_U32("graphics/pokemon/back_pics/grimer_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Grimer[] = INCBIN_U32("graphics/pokemon/palettes/grimer_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Grimer[] = INCBIN_U8("graphics/pokemon/icons/grimer_icon.4bpp"); -const u8 gMonFootprint_Grimer[] = INCBIN_U8("graphics/pokemon/footprints/grimer_footprint.1bpp"); - -const u32 gMonStillFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/front_pics/muk_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Muk[] = INCBIN_U32("graphics/pokemon/palettes/muk_palette.gbapal.lz"); -const u32 gMonBackPic_Muk[] = INCBIN_U32("graphics/pokemon/back_pics/muk_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Muk[] = INCBIN_U32("graphics/pokemon/palettes/muk_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Muk[] = INCBIN_U8("graphics/pokemon/icons/muk_icon.4bpp"); -const u8 gMonFootprint_Muk[] = INCBIN_U8("graphics/pokemon/footprints/muk_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/front_pics/shellder_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shellder[] = INCBIN_U32("graphics/pokemon/palettes/shellder_palette.gbapal.lz"); -const u32 gMonBackPic_Shellder[] = INCBIN_U32("graphics/pokemon/back_pics/shellder_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shellder[] = INCBIN_U32("graphics/pokemon/palettes/shellder_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shellder[] = INCBIN_U8("graphics/pokemon/icons/shellder_icon.4bpp"); -const u8 gMonFootprint_Shellder[] = INCBIN_U8("graphics/pokemon/footprints/shellder_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/front_pics/cloyster_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/palettes/cloyster_palette.gbapal.lz"); -const u32 gMonBackPic_Cloyster[] = INCBIN_U32("graphics/pokemon/back_pics/cloyster_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/palettes/cloyster_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cloyster[] = INCBIN_U8("graphics/pokemon/icons/cloyster_icon.4bpp"); -const u8 gMonFootprint_Cloyster[] = INCBIN_U8("graphics/pokemon/footprints/cloyster_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/front_pics/gastly_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gastly[] = INCBIN_U32("graphics/pokemon/palettes/gastly_palette.gbapal.lz"); -const u32 gMonBackPic_Gastly[] = INCBIN_U32("graphics/pokemon/back_pics/gastly_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gastly[] = INCBIN_U32("graphics/pokemon/palettes/gastly_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gastly[] = INCBIN_U8("graphics/pokemon/icons/gastly_icon.4bpp"); -const u8 gMonFootprint_Gastly[] = INCBIN_U8("graphics/pokemon/footprints/gastly_footprint.1bpp"); - -const u32 gMonStillFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/front_pics/haunter_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Haunter[] = INCBIN_U32("graphics/pokemon/palettes/haunter_palette.gbapal.lz"); -const u32 gMonBackPic_Haunter[] = INCBIN_U32("graphics/pokemon/back_pics/haunter_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Haunter[] = INCBIN_U32("graphics/pokemon/palettes/haunter_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Haunter[] = INCBIN_U8("graphics/pokemon/icons/haunter_icon.4bpp"); -const u8 gMonFootprint_Haunter[] = INCBIN_U8("graphics/pokemon/footprints/haunter_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/front_pics/gengar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gengar[] = INCBIN_U32("graphics/pokemon/palettes/gengar_palette.gbapal.lz"); -const u32 gMonBackPic_Gengar[] = INCBIN_U32("graphics/pokemon/back_pics/gengar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gengar[] = INCBIN_U32("graphics/pokemon/palettes/gengar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gengar[] = INCBIN_U8("graphics/pokemon/icons/gengar_icon.4bpp"); -const u8 gMonFootprint_Gengar[] = INCBIN_U8("graphics/pokemon/footprints/gengar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/front_pics/onix_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Onix[] = INCBIN_U32("graphics/pokemon/palettes/onix_palette.gbapal.lz"); -const u32 gMonBackPic_Onix[] = INCBIN_U32("graphics/pokemon/back_pics/onix_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Onix[] = INCBIN_U32("graphics/pokemon/palettes/onix_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Onix[] = INCBIN_U8("graphics/pokemon/icons/onix_icon.4bpp"); -const u8 gMonFootprint_Onix[] = INCBIN_U8("graphics/pokemon/footprints/onix_footprint.1bpp"); - -const u32 gMonStillFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/front_pics/drowzee_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/palettes/drowzee_palette.gbapal.lz"); -const u32 gMonBackPic_Drowzee[] = INCBIN_U32("graphics/pokemon/back_pics/drowzee_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/palettes/drowzee_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Drowzee[] = INCBIN_U8("graphics/pokemon/icons/drowzee_icon.4bpp"); -const u8 gMonFootprint_Drowzee[] = INCBIN_U8("graphics/pokemon/footprints/drowzee_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/front_pics/hypno_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hypno[] = INCBIN_U32("graphics/pokemon/palettes/hypno_palette.gbapal.lz"); -const u32 gMonBackPic_Hypno[] = INCBIN_U32("graphics/pokemon/back_pics/hypno_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hypno[] = INCBIN_U32("graphics/pokemon/palettes/hypno_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hypno[] = INCBIN_U8("graphics/pokemon/icons/hypno_icon.4bpp"); -const u8 gMonFootprint_Hypno[] = INCBIN_U8("graphics/pokemon/footprints/hypno_footprint.1bpp"); - -const u32 gMonStillFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/front_pics/krabby_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Krabby[] = INCBIN_U32("graphics/pokemon/palettes/krabby_palette.gbapal.lz"); -const u32 gMonBackPic_Krabby[] = INCBIN_U32("graphics/pokemon/back_pics/krabby_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Krabby[] = INCBIN_U32("graphics/pokemon/palettes/krabby_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Krabby[] = INCBIN_U8("graphics/pokemon/icons/krabby_icon.4bpp"); -const u8 gMonFootprint_Krabby[] = INCBIN_U8("graphics/pokemon/footprints/krabby_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/front_pics/kingler_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kingler[] = INCBIN_U32("graphics/pokemon/palettes/kingler_palette.gbapal.lz"); -const u32 gMonBackPic_Kingler[] = INCBIN_U32("graphics/pokemon/back_pics/kingler_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kingler[] = INCBIN_U32("graphics/pokemon/palettes/kingler_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kingler[] = INCBIN_U8("graphics/pokemon/icons/kingler_icon.4bpp"); -const u8 gMonFootprint_Kingler[] = INCBIN_U8("graphics/pokemon/footprints/kingler_footprint.1bpp"); - -const u32 gMonStillFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/front_pics/voltorb_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/palettes/voltorb_palette.gbapal.lz"); -const u32 gMonBackPic_Voltorb[] = INCBIN_U32("graphics/pokemon/back_pics/voltorb_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/palettes/voltorb_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Voltorb[] = INCBIN_U8("graphics/pokemon/icons/voltorb_icon.4bpp"); -const u8 gMonFootprint_Voltorb[] = INCBIN_U8("graphics/pokemon/footprints/voltorb_footprint.1bpp"); - -const u32 gMonStillFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/front_pics/electrode_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Electrode[] = INCBIN_U32("graphics/pokemon/palettes/electrode_palette.gbapal.lz"); -const u32 gMonBackPic_Electrode[] = INCBIN_U32("graphics/pokemon/back_pics/electrode_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Electrode[] = INCBIN_U32("graphics/pokemon/palettes/electrode_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Electrode[] = INCBIN_U8("graphics/pokemon/icons/electrode_icon.4bpp"); -const u8 gMonFootprint_Electrode[] = INCBIN_U8("graphics/pokemon/footprints/electrode_footprint.1bpp"); - -const u32 gMonStillFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/front_pics/exeggcute_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/palettes/exeggcute_palette.gbapal.lz"); -const u32 gMonBackPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/back_pics/exeggcute_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/palettes/exeggcute_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Exeggcute[] = INCBIN_U8("graphics/pokemon/icons/exeggcute_icon.4bpp"); -const u8 gMonFootprint_Exeggcute[] = INCBIN_U8("graphics/pokemon/footprints/exeggcute_footprint.1bpp"); - -const u32 gMonStillFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/front_pics/exeggutor_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/palettes/exeggutor_palette.gbapal.lz"); -const u32 gMonBackPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/back_pics/exeggutor_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/palettes/exeggutor_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Exeggutor[] = INCBIN_U8("graphics/pokemon/icons/exeggutor_icon.4bpp"); -const u8 gMonFootprint_Exeggutor[] = INCBIN_U8("graphics/pokemon/footprints/exeggutor_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/front_pics/cubone_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cubone[] = INCBIN_U32("graphics/pokemon/palettes/cubone_palette.gbapal.lz"); -const u32 gMonBackPic_Cubone[] = INCBIN_U32("graphics/pokemon/back_pics/cubone_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cubone[] = INCBIN_U32("graphics/pokemon/palettes/cubone_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cubone[] = INCBIN_U8("graphics/pokemon/icons/cubone_icon.4bpp"); -const u8 gMonFootprint_Cubone[] = INCBIN_U8("graphics/pokemon/footprints/cubone_footprint.1bpp"); - -const u32 gMonStillFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/front_pics/marowak_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Marowak[] = INCBIN_U32("graphics/pokemon/palettes/marowak_palette.gbapal.lz"); -const u32 gMonBackPic_Marowak[] = INCBIN_U32("graphics/pokemon/back_pics/marowak_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Marowak[] = INCBIN_U32("graphics/pokemon/palettes/marowak_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Marowak[] = INCBIN_U8("graphics/pokemon/icons/marowak_icon.4bpp"); -const u8 gMonFootprint_Marowak[] = INCBIN_U8("graphics/pokemon/footprints/marowak_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/front_pics/hitmonlee_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/palettes/hitmonlee_palette.gbapal.lz"); -const u32 gMonBackPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/back_pics/hitmonlee_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/palettes/hitmonlee_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hitmonlee[] = INCBIN_U8("graphics/pokemon/icons/hitmonlee_icon.4bpp"); -const u8 gMonFootprint_Hitmonlee[] = INCBIN_U8("graphics/pokemon/footprints/hitmonlee_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/front_pics/hitmonchan_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/palettes/hitmonchan_palette.gbapal.lz"); -const u32 gMonBackPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/back_pics/hitmonchan_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/palettes/hitmonchan_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hitmonchan[] = INCBIN_U8("graphics/pokemon/icons/hitmonchan_icon.4bpp"); -const u8 gMonFootprint_Hitmonchan[] = INCBIN_U8("graphics/pokemon/footprints/hitmonchan_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/front_pics/lickitung_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/palettes/lickitung_palette.gbapal.lz"); -const u32 gMonBackPic_Lickitung[] = INCBIN_U32("graphics/pokemon/back_pics/lickitung_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/palettes/lickitung_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lickitung[] = INCBIN_U8("graphics/pokemon/icons/lickitung_icon.4bpp"); -const u8 gMonFootprint_Lickitung[] = INCBIN_U8("graphics/pokemon/footprints/lickitung_footprint.1bpp"); - -const u32 gMonStillFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/front_pics/koffing_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Koffing[] = INCBIN_U32("graphics/pokemon/palettes/koffing_palette.gbapal.lz"); -const u32 gMonBackPic_Koffing[] = INCBIN_U32("graphics/pokemon/back_pics/koffing_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Koffing[] = INCBIN_U32("graphics/pokemon/palettes/koffing_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Koffing[] = INCBIN_U8("graphics/pokemon/icons/koffing_icon.4bpp"); -const u8 gMonFootprint_Koffing[] = INCBIN_U8("graphics/pokemon/footprints/koffing_footprint.1bpp"); - -const u32 gMonStillFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/front_pics/weezing_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Weezing[] = INCBIN_U32("graphics/pokemon/palettes/weezing_palette.gbapal.lz"); -const u32 gMonBackPic_Weezing[] = INCBIN_U32("graphics/pokemon/back_pics/weezing_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Weezing[] = INCBIN_U32("graphics/pokemon/palettes/weezing_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Weezing[] = INCBIN_U8("graphics/pokemon/icons/weezing_icon.4bpp"); -const u8 gMonFootprint_Weezing[] = INCBIN_U8("graphics/pokemon/footprints/weezing_footprint.1bpp"); - -const u32 gMonStillFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/front_pics/rhyhorn_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/palettes/rhyhorn_palette.gbapal.lz"); -const u32 gMonBackPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/back_pics/rhyhorn_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/palettes/rhyhorn_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Rhyhorn[] = INCBIN_U8("graphics/pokemon/icons/rhyhorn_icon.4bpp"); -const u8 gMonFootprint_Rhyhorn[] = INCBIN_U8("graphics/pokemon/footprints/rhyhorn_footprint.1bpp"); - -const u32 gMonStillFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/front_pics/rhydon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/palettes/rhydon_palette.gbapal.lz"); -const u32 gMonBackPic_Rhydon[] = INCBIN_U32("graphics/pokemon/back_pics/rhydon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/palettes/rhydon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Rhydon[] = INCBIN_U8("graphics/pokemon/icons/rhydon_icon.4bpp"); -const u8 gMonFootprint_Rhydon[] = INCBIN_U8("graphics/pokemon/footprints/rhydon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/front_pics/chansey_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Chansey[] = INCBIN_U32("graphics/pokemon/palettes/chansey_palette.gbapal.lz"); -const u32 gMonBackPic_Chansey[] = INCBIN_U32("graphics/pokemon/back_pics/chansey_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Chansey[] = INCBIN_U32("graphics/pokemon/palettes/chansey_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Chansey[] = INCBIN_U8("graphics/pokemon/icons/chansey_icon.4bpp"); -const u8 gMonFootprint_Chansey[] = INCBIN_U8("graphics/pokemon/footprints/chansey_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/front_pics/tangela_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tangela[] = INCBIN_U32("graphics/pokemon/palettes/tangela_palette.gbapal.lz"); -const u32 gMonBackPic_Tangela[] = INCBIN_U32("graphics/pokemon/back_pics/tangela_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tangela[] = INCBIN_U32("graphics/pokemon/palettes/tangela_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tangela[] = INCBIN_U8("graphics/pokemon/icons/tangela_icon.4bpp"); -const u8 gMonFootprint_Tangela[] = INCBIN_U8("graphics/pokemon/footprints/tangela_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/front_pics/kangaskhan_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/palettes/kangaskhan_palette.gbapal.lz"); -const u32 gMonBackPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/back_pics/kangaskhan_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/palettes/kangaskhan_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kangaskhan[] = INCBIN_U8("graphics/pokemon/icons/kangaskhan_icon.4bpp"); -const u8 gMonFootprint_Kangaskhan[] = INCBIN_U8("graphics/pokemon/footprints/kangaskhan_footprint.1bpp"); - -const u32 gMonStillFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/front_pics/horsea_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Horsea[] = INCBIN_U32("graphics/pokemon/palettes/horsea_palette.gbapal.lz"); -const u32 gMonBackPic_Horsea[] = INCBIN_U32("graphics/pokemon/back_pics/horsea_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Horsea[] = INCBIN_U32("graphics/pokemon/palettes/horsea_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Horsea[] = INCBIN_U8("graphics/pokemon/icons/horsea_icon.4bpp"); -const u8 gMonFootprint_Horsea[] = INCBIN_U8("graphics/pokemon/footprints/horsea_footprint.1bpp"); - -const u32 gMonStillFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/front_pics/seadra_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Seadra[] = INCBIN_U32("graphics/pokemon/palettes/seadra_palette.gbapal.lz"); -const u32 gMonBackPic_Seadra[] = INCBIN_U32("graphics/pokemon/back_pics/seadra_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Seadra[] = INCBIN_U32("graphics/pokemon/palettes/seadra_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Seadra[] = INCBIN_U8("graphics/pokemon/icons/seadra_icon.4bpp"); -const u8 gMonFootprint_Seadra[] = INCBIN_U8("graphics/pokemon/footprints/seadra_footprint.1bpp"); - -const u32 gMonStillFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/front_pics/goldeen_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/palettes/goldeen_palette.gbapal.lz"); -const u32 gMonBackPic_Goldeen[] = INCBIN_U32("graphics/pokemon/back_pics/goldeen_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/palettes/goldeen_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Goldeen[] = INCBIN_U8("graphics/pokemon/icons/goldeen_icon.4bpp"); -const u8 gMonFootprint_Goldeen[] = INCBIN_U8("graphics/pokemon/footprints/goldeen_footprint.1bpp"); - -const u32 gMonStillFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/front_pics/seaking_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Seaking[] = INCBIN_U32("graphics/pokemon/palettes/seaking_palette.gbapal.lz"); -const u32 gMonBackPic_Seaking[] = INCBIN_U32("graphics/pokemon/back_pics/seaking_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Seaking[] = INCBIN_U32("graphics/pokemon/palettes/seaking_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Seaking[] = INCBIN_U8("graphics/pokemon/icons/seaking_icon.4bpp"); -const u8 gMonFootprint_Seaking[] = INCBIN_U8("graphics/pokemon/footprints/seaking_footprint.1bpp"); - -const u32 gMonStillFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/front_pics/staryu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Staryu[] = INCBIN_U32("graphics/pokemon/palettes/staryu_palette.gbapal.lz"); -const u32 gMonBackPic_Staryu[] = INCBIN_U32("graphics/pokemon/back_pics/staryu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Staryu[] = INCBIN_U32("graphics/pokemon/palettes/staryu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Staryu[] = INCBIN_U8("graphics/pokemon/icons/staryu_icon.4bpp"); -const u8 gMonFootprint_Staryu[] = INCBIN_U8("graphics/pokemon/footprints/staryu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/front_pics/starmie_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Starmie[] = INCBIN_U32("graphics/pokemon/palettes/starmie_palette.gbapal.lz"); -const u32 gMonBackPic_Starmie[] = INCBIN_U32("graphics/pokemon/back_pics/starmie_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Starmie[] = INCBIN_U32("graphics/pokemon/palettes/starmie_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Starmie[] = INCBIN_U8("graphics/pokemon/icons/starmie_icon.4bpp"); -const u8 gMonFootprint_Starmie[] = INCBIN_U8("graphics/pokemon/footprints/starmie_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mrmime[] = INCBIN_U32("graphics/pokemon/front_pics/mr_mime_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mrmime[] = INCBIN_U32("graphics/pokemon/palettes/mr_mime_palette.gbapal.lz"); -const u32 gMonBackPic_Mrmime[] = INCBIN_U32("graphics/pokemon/back_pics/mr_mime_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mrmime[] = INCBIN_U32("graphics/pokemon/palettes/mr_mime_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mrmime[] = INCBIN_U8("graphics/pokemon/icons/mr_mime_icon.4bpp"); -const u8 gMonFootprint_Mrmime[] = INCBIN_U8("graphics/pokemon/footprints/mr_mime_footprint.1bpp"); - -const u32 gMonStillFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/front_pics/scyther_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Scyther[] = INCBIN_U32("graphics/pokemon/palettes/scyther_palette.gbapal.lz"); -const u32 gMonBackPic_Scyther[] = INCBIN_U32("graphics/pokemon/back_pics/scyther_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Scyther[] = INCBIN_U32("graphics/pokemon/palettes/scyther_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Scyther[] = INCBIN_U8("graphics/pokemon/icons/scyther_icon.4bpp"); -const u8 gMonFootprint_Scyther[] = INCBIN_U8("graphics/pokemon/footprints/scyther_footprint.1bpp"); - -const u32 gMonStillFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/front_pics/jynx_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Jynx[] = INCBIN_U32("graphics/pokemon/palettes/jynx_palette.gbapal.lz"); -const u32 gMonBackPic_Jynx[] = INCBIN_U32("graphics/pokemon/back_pics/jynx_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Jynx[] = INCBIN_U32("graphics/pokemon/palettes/jynx_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Jynx[] = INCBIN_U8("graphics/pokemon/icons/jynx_icon.4bpp"); -const u8 gMonFootprint_Jynx[] = INCBIN_U8("graphics/pokemon/footprints/jynx_footprint.1bpp"); - -const u32 gMonStillFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/front_pics/electabuzz_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/palettes/electabuzz_palette.gbapal.lz"); -const u32 gMonBackPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/back_pics/electabuzz_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/palettes/electabuzz_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Electabuzz[] = INCBIN_U8("graphics/pokemon/icons/electabuzz_icon.4bpp"); -const u8 gMonFootprint_Electabuzz[] = INCBIN_U8("graphics/pokemon/footprints/electabuzz_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/front_pics/magmar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magmar[] = INCBIN_U32("graphics/pokemon/palettes/magmar_palette.gbapal.lz"); -const u32 gMonBackPic_Magmar[] = INCBIN_U32("graphics/pokemon/back_pics/magmar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magmar[] = INCBIN_U32("graphics/pokemon/palettes/magmar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magmar[] = INCBIN_U8("graphics/pokemon/icons/magmar_icon.4bpp"); -const u8 gMonFootprint_Magmar[] = INCBIN_U8("graphics/pokemon/footprints/magmar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/front_pics/pinsir_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/palettes/pinsir_palette.gbapal.lz"); -const u32 gMonBackPic_Pinsir[] = INCBIN_U32("graphics/pokemon/back_pics/pinsir_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/palettes/pinsir_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pinsir[] = INCBIN_U8("graphics/pokemon/icons/pinsir_icon.4bpp"); -const u8 gMonFootprint_Pinsir[] = INCBIN_U8("graphics/pokemon/footprints/pinsir_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/front_pics/tauros_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tauros[] = INCBIN_U32("graphics/pokemon/palettes/tauros_palette.gbapal.lz"); -const u32 gMonBackPic_Tauros[] = INCBIN_U32("graphics/pokemon/back_pics/tauros_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tauros[] = INCBIN_U32("graphics/pokemon/palettes/tauros_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tauros[] = INCBIN_U8("graphics/pokemon/icons/tauros_icon.4bpp"); -const u8 gMonFootprint_Tauros[] = INCBIN_U8("graphics/pokemon/footprints/tauros_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/front_pics/magikarp_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/palettes/magikarp_palette.gbapal.lz"); -const u32 gMonBackPic_Magikarp[] = INCBIN_U32("graphics/pokemon/back_pics/magikarp_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/palettes/magikarp_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magikarp[] = INCBIN_U8("graphics/pokemon/icons/magikarp_icon.4bpp"); -const u8 gMonFootprint_Magikarp[] = INCBIN_U8("graphics/pokemon/footprints/magikarp_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/front_pics/gyarados_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/palettes/gyarados_palette.gbapal.lz"); -const u32 gMonBackPic_Gyarados[] = INCBIN_U32("graphics/pokemon/back_pics/gyarados_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/palettes/gyarados_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gyarados[] = INCBIN_U8("graphics/pokemon/icons/gyarados_icon.4bpp"); -const u8 gMonFootprint_Gyarados[] = INCBIN_U8("graphics/pokemon/footprints/gyarados_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/front_pics/lapras_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lapras[] = INCBIN_U32("graphics/pokemon/palettes/lapras_palette.gbapal.lz"); -const u32 gMonBackPic_Lapras[] = INCBIN_U32("graphics/pokemon/back_pics/lapras_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lapras[] = INCBIN_U32("graphics/pokemon/palettes/lapras_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lapras[] = INCBIN_U8("graphics/pokemon/icons/lapras_icon.4bpp"); -const u8 gMonFootprint_Lapras[] = INCBIN_U8("graphics/pokemon/footprints/lapras_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/front_pics/ditto_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ditto[] = INCBIN_U32("graphics/pokemon/palettes/ditto_palette.gbapal.lz"); -const u32 gMonBackPic_Ditto[] = INCBIN_U32("graphics/pokemon/back_pics/ditto_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ditto[] = INCBIN_U32("graphics/pokemon/palettes/ditto_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ditto[] = INCBIN_U8("graphics/pokemon/icons/ditto_icon.4bpp"); -const u8 gMonFootprint_Ditto[] = INCBIN_U8("graphics/pokemon/footprints/ditto_footprint.1bpp"); - -const u32 gMonStillFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/front_pics/eevee_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Eevee[] = INCBIN_U32("graphics/pokemon/palettes/eevee_palette.gbapal.lz"); -const u32 gMonBackPic_Eevee[] = INCBIN_U32("graphics/pokemon/back_pics/eevee_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Eevee[] = INCBIN_U32("graphics/pokemon/palettes/eevee_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Eevee[] = INCBIN_U8("graphics/pokemon/icons/eevee_icon.4bpp"); -const u8 gMonFootprint_Eevee[] = INCBIN_U8("graphics/pokemon/footprints/eevee_footprint.1bpp"); - -const u32 gMonStillFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/front_pics/vaporeon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/palettes/vaporeon_palette.gbapal.lz"); -const u32 gMonBackPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/back_pics/vaporeon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/palettes/vaporeon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Vaporeon[] = INCBIN_U8("graphics/pokemon/icons/vaporeon_icon.4bpp"); -const u8 gMonFootprint_Vaporeon[] = INCBIN_U8("graphics/pokemon/footprints/vaporeon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/front_pics/jolteon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/palettes/jolteon_palette.gbapal.lz"); -const u32 gMonBackPic_Jolteon[] = INCBIN_U32("graphics/pokemon/back_pics/jolteon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/palettes/jolteon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Jolteon[] = INCBIN_U8("graphics/pokemon/icons/jolteon_icon.4bpp"); -const u8 gMonFootprint_Jolteon[] = INCBIN_U8("graphics/pokemon/footprints/jolteon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/front_pics/flareon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Flareon[] = INCBIN_U32("graphics/pokemon/palettes/flareon_palette.gbapal.lz"); -const u32 gMonBackPic_Flareon[] = INCBIN_U32("graphics/pokemon/back_pics/flareon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Flareon[] = INCBIN_U32("graphics/pokemon/palettes/flareon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Flareon[] = INCBIN_U8("graphics/pokemon/icons/flareon_icon.4bpp"); -const u8 gMonFootprint_Flareon[] = INCBIN_U8("graphics/pokemon/footprints/flareon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/front_pics/porygon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Porygon[] = INCBIN_U32("graphics/pokemon/palettes/porygon_palette.gbapal.lz"); -const u32 gMonBackPic_Porygon[] = INCBIN_U32("graphics/pokemon/back_pics/porygon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Porygon[] = INCBIN_U32("graphics/pokemon/palettes/porygon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Porygon[] = INCBIN_U8("graphics/pokemon/icons/porygon_icon.4bpp"); -const u8 gMonFootprint_Porygon[] = INCBIN_U8("graphics/pokemon/footprints/porygon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/front_pics/omanyte_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/palettes/omanyte_palette.gbapal.lz"); -const u32 gMonBackPic_Omanyte[] = INCBIN_U32("graphics/pokemon/back_pics/omanyte_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/palettes/omanyte_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Omanyte[] = INCBIN_U8("graphics/pokemon/icons/omanyte_icon.4bpp"); -const u8 gMonFootprint_Omanyte[] = INCBIN_U8("graphics/pokemon/footprints/omanyte_footprint.1bpp"); - -const u32 gMonStillFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/front_pics/omastar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Omastar[] = INCBIN_U32("graphics/pokemon/palettes/omastar_palette.gbapal.lz"); -const u32 gMonBackPic_Omastar[] = INCBIN_U32("graphics/pokemon/back_pics/omastar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Omastar[] = INCBIN_U32("graphics/pokemon/palettes/omastar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Omastar[] = INCBIN_U8("graphics/pokemon/icons/omastar_icon.4bpp"); -const u8 gMonFootprint_Omastar[] = INCBIN_U8("graphics/pokemon/footprints/omastar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/front_pics/kabuto_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/palettes/kabuto_palette.gbapal.lz"); -const u32 gMonBackPic_Kabuto[] = INCBIN_U32("graphics/pokemon/back_pics/kabuto_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/palettes/kabuto_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kabuto[] = INCBIN_U8("graphics/pokemon/icons/kabuto_icon.4bpp"); -const u8 gMonFootprint_Kabuto[] = INCBIN_U8("graphics/pokemon/footprints/kabuto_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/front_pics/kabutops_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/palettes/kabutops_palette.gbapal.lz"); -const u32 gMonBackPic_Kabutops[] = INCBIN_U32("graphics/pokemon/back_pics/kabutops_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/palettes/kabutops_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kabutops[] = INCBIN_U8("graphics/pokemon/icons/kabutops_icon.4bpp"); -const u8 gMonFootprint_Kabutops[] = INCBIN_U8("graphics/pokemon/footprints/kabutops_footprint.1bpp"); - -const u32 gMonStillFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/front_pics/aerodactyl_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/palettes/aerodactyl_palette.gbapal.lz"); -const u32 gMonBackPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/back_pics/aerodactyl_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/palettes/aerodactyl_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Aerodactyl[] = INCBIN_U8("graphics/pokemon/icons/aerodactyl_icon.4bpp"); -const u8 gMonFootprint_Aerodactyl[] = INCBIN_U8("graphics/pokemon/footprints/aerodactyl_footprint.1bpp"); - -const u32 gMonStillFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/front_pics/snorlax_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/palettes/snorlax_palette.gbapal.lz"); -const u32 gMonBackPic_Snorlax[] = INCBIN_U32("graphics/pokemon/back_pics/snorlax_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/palettes/snorlax_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Snorlax[] = INCBIN_U8("graphics/pokemon/icons/snorlax_icon.4bpp"); -const u8 gMonFootprint_Snorlax[] = INCBIN_U8("graphics/pokemon/footprints/snorlax_footprint.1bpp"); - -const u32 gMonStillFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/front_pics/articuno_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Articuno[] = INCBIN_U32("graphics/pokemon/palettes/articuno_palette.gbapal.lz"); -const u32 gMonBackPic_Articuno[] = INCBIN_U32("graphics/pokemon/back_pics/articuno_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Articuno[] = INCBIN_U32("graphics/pokemon/palettes/articuno_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Articuno[] = INCBIN_U8("graphics/pokemon/icons/articuno_icon.4bpp"); -const u8 gMonFootprint_Articuno[] = INCBIN_U8("graphics/pokemon/footprints/articuno_footprint.1bpp"); - -const u32 gMonStillFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/front_pics/zapdos_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/palettes/zapdos_palette.gbapal.lz"); -const u32 gMonBackPic_Zapdos[] = INCBIN_U32("graphics/pokemon/back_pics/zapdos_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/palettes/zapdos_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Zapdos[] = INCBIN_U8("graphics/pokemon/icons/zapdos_icon.4bpp"); -const u8 gMonFootprint_Zapdos[] = INCBIN_U8("graphics/pokemon/footprints/zapdos_footprint.1bpp"); - -const u32 gMonStillFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/front_pics/moltres_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Moltres[] = INCBIN_U32("graphics/pokemon/palettes/moltres_palette.gbapal.lz"); -const u32 gMonBackPic_Moltres[] = INCBIN_U32("graphics/pokemon/back_pics/moltres_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Moltres[] = INCBIN_U32("graphics/pokemon/palettes/moltres_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Moltres[] = INCBIN_U8("graphics/pokemon/icons/moltres_icon.4bpp"); -const u8 gMonFootprint_Moltres[] = INCBIN_U8("graphics/pokemon/footprints/moltres_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/front_pics/dratini_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dratini[] = INCBIN_U32("graphics/pokemon/palettes/dratini_palette.gbapal.lz"); -const u32 gMonBackPic_Dratini[] = INCBIN_U32("graphics/pokemon/back_pics/dratini_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dratini[] = INCBIN_U32("graphics/pokemon/palettes/dratini_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dratini[] = INCBIN_U8("graphics/pokemon/icons/dratini_icon.4bpp"); -const u8 gMonFootprint_Dratini[] = INCBIN_U8("graphics/pokemon/footprints/dratini_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/front_pics/dragonair_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/palettes/dragonair_palette.gbapal.lz"); -const u32 gMonBackPic_Dragonair[] = INCBIN_U32("graphics/pokemon/back_pics/dragonair_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/palettes/dragonair_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dragonair[] = INCBIN_U8("graphics/pokemon/icons/dragonair_icon.4bpp"); -const u8 gMonFootprint_Dragonair[] = INCBIN_U8("graphics/pokemon/footprints/dragonair_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/front_pics/dragonite_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/palettes/dragonite_palette.gbapal.lz"); -const u32 gMonBackPic_Dragonite[] = INCBIN_U32("graphics/pokemon/back_pics/dragonite_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/palettes/dragonite_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dragonite[] = INCBIN_U8("graphics/pokemon/icons/dragonite_icon.4bpp"); -const u8 gMonFootprint_Dragonite[] = INCBIN_U8("graphics/pokemon/footprints/dragonite_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/front_pics/mewtwo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/palettes/mewtwo_palette.gbapal.lz"); -const u32 gMonBackPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/back_pics/mewtwo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/palettes/mewtwo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mewtwo[] = INCBIN_U8("graphics/pokemon/icons/mewtwo_icon.4bpp"); -const u8 gMonFootprint_Mewtwo[] = INCBIN_U8("graphics/pokemon/footprints/mewtwo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/front_pics/mew_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mew[] = INCBIN_U32("graphics/pokemon/palettes/mew_palette.gbapal.lz"); -const u32 gMonBackPic_Mew[] = INCBIN_U32("graphics/pokemon/back_pics/mew_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mew[] = INCBIN_U32("graphics/pokemon/palettes/mew_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mew[] = INCBIN_U8("graphics/pokemon/icons/mew_icon.4bpp"); -const u8 gMonFootprint_Mew[] = INCBIN_U8("graphics/pokemon/footprints/mew_footprint.1bpp"); - -const u32 gMonStillFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/front_pics/chikorita_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/palettes/chikorita_palette.gbapal.lz"); -const u32 gMonBackPic_Chikorita[] = INCBIN_U32("graphics/pokemon/back_pics/chikorita_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/palettes/chikorita_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Chikorita[] = INCBIN_U8("graphics/pokemon/icons/chikorita_icon.4bpp"); -const u8 gMonFootprint_Chikorita[] = INCBIN_U8("graphics/pokemon/footprints/chikorita_footprint.1bpp"); - -const u32 gMonStillFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/front_pics/bayleef_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/palettes/bayleef_palette.gbapal.lz"); -const u32 gMonBackPic_Bayleef[] = INCBIN_U32("graphics/pokemon/back_pics/bayleef_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/palettes/bayleef_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Bayleef[] = INCBIN_U8("graphics/pokemon/icons/bayleef_icon.4bpp"); -const u8 gMonFootprint_Bayleef[] = INCBIN_U8("graphics/pokemon/footprints/bayleef_footprint.1bpp"); - -const u32 gMonStillFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/front_pics/meganium_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Meganium[] = INCBIN_U32("graphics/pokemon/palettes/meganium_palette.gbapal.lz"); -const u32 gMonBackPic_Meganium[] = INCBIN_U32("graphics/pokemon/back_pics/meganium_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Meganium[] = INCBIN_U32("graphics/pokemon/palettes/meganium_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Meganium[] = INCBIN_U8("graphics/pokemon/icons/meganium_icon.4bpp"); -const u8 gMonFootprint_Meganium[] = INCBIN_U8("graphics/pokemon/footprints/meganium_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/front_pics/cyndaquil_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/palettes/cyndaquil_palette.gbapal.lz"); -const u32 gMonBackPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/back_pics/cyndaquil_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/palettes/cyndaquil_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cyndaquil[] = INCBIN_U8("graphics/pokemon/icons/cyndaquil_icon.4bpp"); -const u8 gMonFootprint_Cyndaquil[] = INCBIN_U8("graphics/pokemon/footprints/cyndaquil_footprint.1bpp"); - -const u32 gMonStillFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/front_pics/quilava_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Quilava[] = INCBIN_U32("graphics/pokemon/palettes/quilava_palette.gbapal.lz"); -const u32 gMonBackPic_Quilava[] = INCBIN_U32("graphics/pokemon/back_pics/quilava_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Quilava[] = INCBIN_U32("graphics/pokemon/palettes/quilava_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Quilava[] = INCBIN_U8("graphics/pokemon/icons/quilava_icon.4bpp"); -const u8 gMonFootprint_Quilava[] = INCBIN_U8("graphics/pokemon/footprints/quilava_footprint.1bpp"); - -const u32 gMonStillFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/front_pics/typhlosion_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/palettes/typhlosion_palette.gbapal.lz"); -const u32 gMonBackPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/back_pics/typhlosion_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/palettes/typhlosion_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Typhlosion[] = INCBIN_U8("graphics/pokemon/icons/typhlosion_icon.4bpp"); -const u8 gMonFootprint_Typhlosion[] = INCBIN_U8("graphics/pokemon/footprints/typhlosion_footprint.1bpp"); - -const u32 gMonStillFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/front_pics/totodile_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Totodile[] = INCBIN_U32("graphics/pokemon/palettes/totodile_palette.gbapal.lz"); -const u32 gMonBackPic_Totodile[] = INCBIN_U32("graphics/pokemon/back_pics/totodile_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Totodile[] = INCBIN_U32("graphics/pokemon/palettes/totodile_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Totodile[] = INCBIN_U8("graphics/pokemon/icons/totodile_icon.4bpp"); -const u8 gMonFootprint_Totodile[] = INCBIN_U8("graphics/pokemon/footprints/totodile_footprint.1bpp"); - -const u32 gMonStillFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/front_pics/croconaw_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/palettes/croconaw_palette.gbapal.lz"); -const u32 gMonBackPic_Croconaw[] = INCBIN_U32("graphics/pokemon/back_pics/croconaw_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/palettes/croconaw_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Croconaw[] = INCBIN_U8("graphics/pokemon/icons/croconaw_icon.4bpp"); -const u8 gMonFootprint_Croconaw[] = INCBIN_U8("graphics/pokemon/footprints/croconaw_footprint.1bpp"); - -const u32 gMonStillFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/front_pics/feraligatr_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/palettes/feraligatr_palette.gbapal.lz"); -const u32 gMonBackPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/back_pics/feraligatr_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/palettes/feraligatr_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Feraligatr[] = INCBIN_U8("graphics/pokemon/icons/feraligatr_icon.4bpp"); -const u8 gMonFootprint_Feraligatr[] = INCBIN_U8("graphics/pokemon/footprints/feraligatr_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/front_pics/sentret_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sentret[] = INCBIN_U32("graphics/pokemon/palettes/sentret_palette.gbapal.lz"); -const u32 gMonBackPic_Sentret[] = INCBIN_U32("graphics/pokemon/back_pics/sentret_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sentret[] = INCBIN_U32("graphics/pokemon/palettes/sentret_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sentret[] = INCBIN_U8("graphics/pokemon/icons/sentret_icon.4bpp"); -const u8 gMonFootprint_Sentret[] = INCBIN_U8("graphics/pokemon/footprints/sentret_footprint.1bpp"); - -const u32 gMonStillFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/front_pics/furret_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Furret[] = INCBIN_U32("graphics/pokemon/palettes/furret_palette.gbapal.lz"); -const u32 gMonBackPic_Furret[] = INCBIN_U32("graphics/pokemon/back_pics/furret_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Furret[] = INCBIN_U32("graphics/pokemon/palettes/furret_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Furret[] = INCBIN_U8("graphics/pokemon/icons/furret_icon.4bpp"); -const u8 gMonFootprint_Furret[] = INCBIN_U8("graphics/pokemon/footprints/furret_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/front_pics/hoothoot_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/palettes/hoothoot_palette.gbapal.lz"); -const u32 gMonBackPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/back_pics/hoothoot_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/palettes/hoothoot_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hoothoot[] = INCBIN_U8("graphics/pokemon/icons/hoothoot_icon.4bpp"); -const u8 gMonFootprint_Hoothoot[] = INCBIN_U8("graphics/pokemon/footprints/hoothoot_footprint.1bpp"); - -const u32 gMonStillFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/front_pics/noctowl_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/palettes/noctowl_palette.gbapal.lz"); -const u32 gMonBackPic_Noctowl[] = INCBIN_U32("graphics/pokemon/back_pics/noctowl_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/palettes/noctowl_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Noctowl[] = INCBIN_U8("graphics/pokemon/icons/noctowl_icon.4bpp"); -const u8 gMonFootprint_Noctowl[] = INCBIN_U8("graphics/pokemon/footprints/noctowl_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/front_pics/ledyba_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/palettes/ledyba_palette.gbapal.lz"); -const u32 gMonBackPic_Ledyba[] = INCBIN_U32("graphics/pokemon/back_pics/ledyba_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/palettes/ledyba_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ledyba[] = INCBIN_U8("graphics/pokemon/icons/ledyba_icon.4bpp"); -const u8 gMonFootprint_Ledyba[] = INCBIN_U8("graphics/pokemon/footprints/ledyba_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/front_pics/ledian_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ledian[] = INCBIN_U32("graphics/pokemon/palettes/ledian_palette.gbapal.lz"); -const u32 gMonBackPic_Ledian[] = INCBIN_U32("graphics/pokemon/back_pics/ledian_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ledian[] = INCBIN_U32("graphics/pokemon/palettes/ledian_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ledian[] = INCBIN_U8("graphics/pokemon/icons/ledian_icon.4bpp"); -const u8 gMonFootprint_Ledian[] = INCBIN_U8("graphics/pokemon/footprints/ledian_footprint.1bpp"); - -const u32 gMonStillFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/front_pics/spinarak_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/palettes/spinarak_palette.gbapal.lz"); -const u32 gMonBackPic_Spinarak[] = INCBIN_U32("graphics/pokemon/back_pics/spinarak_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/palettes/spinarak_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Spinarak[] = INCBIN_U8("graphics/pokemon/icons/spinarak_icon.4bpp"); -const u8 gMonFootprint_Spinarak[] = INCBIN_U8("graphics/pokemon/footprints/spinarak_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/front_pics/ariados_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ariados[] = INCBIN_U32("graphics/pokemon/palettes/ariados_palette.gbapal.lz"); -const u32 gMonBackPic_Ariados[] = INCBIN_U32("graphics/pokemon/back_pics/ariados_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ariados[] = INCBIN_U32("graphics/pokemon/palettes/ariados_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ariados[] = INCBIN_U8("graphics/pokemon/icons/ariados_icon.4bpp"); -const u8 gMonFootprint_Ariados[] = INCBIN_U8("graphics/pokemon/footprints/ariados_footprint.1bpp"); - -const u32 gMonStillFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/front_pics/crobat_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Crobat[] = INCBIN_U32("graphics/pokemon/palettes/crobat_palette.gbapal.lz"); -const u32 gMonBackPic_Crobat[] = INCBIN_U32("graphics/pokemon/back_pics/crobat_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Crobat[] = INCBIN_U32("graphics/pokemon/palettes/crobat_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Crobat[] = INCBIN_U8("graphics/pokemon/icons/crobat_icon.4bpp"); -const u8 gMonFootprint_Crobat[] = INCBIN_U8("graphics/pokemon/footprints/crobat_footprint.1bpp"); - -const u32 gMonStillFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/front_pics/chinchou_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/palettes/chinchou_palette.gbapal.lz"); -const u32 gMonBackPic_Chinchou[] = INCBIN_U32("graphics/pokemon/back_pics/chinchou_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/palettes/chinchou_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Chinchou[] = INCBIN_U8("graphics/pokemon/icons/chinchou_icon.4bpp"); -const u8 gMonFootprint_Chinchou[] = INCBIN_U8("graphics/pokemon/footprints/chinchou_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/front_pics/lanturn_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/palettes/lanturn_palette.gbapal.lz"); -const u32 gMonBackPic_Lanturn[] = INCBIN_U32("graphics/pokemon/back_pics/lanturn_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/palettes/lanturn_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lanturn[] = INCBIN_U8("graphics/pokemon/icons/lanturn_icon.4bpp"); -const u8 gMonFootprint_Lanturn[] = INCBIN_U8("graphics/pokemon/footprints/lanturn_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/front_pics/pichu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pichu[] = INCBIN_U32("graphics/pokemon/palettes/pichu_palette.gbapal.lz"); -const u32 gMonBackPic_Pichu[] = INCBIN_U32("graphics/pokemon/back_pics/pichu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pichu[] = INCBIN_U32("graphics/pokemon/palettes/pichu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pichu[] = INCBIN_U8("graphics/pokemon/icons/pichu_icon.4bpp"); -const u8 gMonFootprint_Pichu[] = INCBIN_U8("graphics/pokemon/footprints/pichu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/front_pics/cleffa_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/palettes/cleffa_palette.gbapal.lz"); -const u32 gMonBackPic_Cleffa[] = INCBIN_U32("graphics/pokemon/back_pics/cleffa_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/palettes/cleffa_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cleffa[] = INCBIN_U8("graphics/pokemon/icons/cleffa_icon.4bpp"); -const u8 gMonFootprint_Cleffa[] = INCBIN_U8("graphics/pokemon/footprints/cleffa_footprint.1bpp"); - -const u32 gMonStillFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/front_pics/igglybuff_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/palettes/igglybuff_palette.gbapal.lz"); -const u32 gMonBackPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/back_pics/igglybuff_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/palettes/igglybuff_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Igglybuff[] = INCBIN_U8("graphics/pokemon/icons/igglybuff_icon.4bpp"); -const u8 gMonFootprint_Igglybuff[] = INCBIN_U8("graphics/pokemon/footprints/igglybuff_footprint.1bpp"); - -const u32 gMonStillFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/front_pics/togepi_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Togepi[] = INCBIN_U32("graphics/pokemon/palettes/togepi_palette.gbapal.lz"); -const u32 gMonBackPic_Togepi[] = INCBIN_U32("graphics/pokemon/back_pics/togepi_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Togepi[] = INCBIN_U32("graphics/pokemon/palettes/togepi_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Togepi[] = INCBIN_U8("graphics/pokemon/icons/togepi_icon.4bpp"); -const u8 gMonFootprint_Togepi[] = INCBIN_U8("graphics/pokemon/footprints/togepi_footprint.1bpp"); - -const u32 gMonStillFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/front_pics/togetic_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Togetic[] = INCBIN_U32("graphics/pokemon/palettes/togetic_palette.gbapal.lz"); -const u32 gMonBackPic_Togetic[] = INCBIN_U32("graphics/pokemon/back_pics/togetic_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Togetic[] = INCBIN_U32("graphics/pokemon/palettes/togetic_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Togetic[] = INCBIN_U8("graphics/pokemon/icons/togetic_icon.4bpp"); -const u8 gMonFootprint_Togetic[] = INCBIN_U8("graphics/pokemon/footprints/togetic_footprint.1bpp"); - -const u32 gMonStillFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/front_pics/natu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Natu[] = INCBIN_U32("graphics/pokemon/palettes/natu_palette.gbapal.lz"); -const u32 gMonBackPic_Natu[] = INCBIN_U32("graphics/pokemon/back_pics/natu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Natu[] = INCBIN_U32("graphics/pokemon/palettes/natu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Natu[] = INCBIN_U8("graphics/pokemon/icons/natu_icon.4bpp"); -const u8 gMonFootprint_Natu[] = INCBIN_U8("graphics/pokemon/footprints/natu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/front_pics/xatu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Xatu[] = INCBIN_U32("graphics/pokemon/palettes/xatu_palette.gbapal.lz"); -const u32 gMonBackPic_Xatu[] = INCBIN_U32("graphics/pokemon/back_pics/xatu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Xatu[] = INCBIN_U32("graphics/pokemon/palettes/xatu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Xatu[] = INCBIN_U8("graphics/pokemon/icons/xatu_icon.4bpp"); -const u8 gMonFootprint_Xatu[] = INCBIN_U8("graphics/pokemon/footprints/xatu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/front_pics/mareep_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mareep[] = INCBIN_U32("graphics/pokemon/palettes/mareep_palette.gbapal.lz"); -const u32 gMonBackPic_Mareep[] = INCBIN_U32("graphics/pokemon/back_pics/mareep_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mareep[] = INCBIN_U32("graphics/pokemon/palettes/mareep_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mareep[] = INCBIN_U8("graphics/pokemon/icons/mareep_icon.4bpp"); -const u8 gMonFootprint_Mareep[] = INCBIN_U8("graphics/pokemon/footprints/mareep_footprint.1bpp"); - -const u32 gMonStillFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/front_pics/flaaffy_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/palettes/flaaffy_palette.gbapal.lz"); -const u32 gMonBackPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/back_pics/flaaffy_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/palettes/flaaffy_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Flaaffy[] = INCBIN_U8("graphics/pokemon/icons/flaaffy_icon.4bpp"); -const u8 gMonFootprint_Flaaffy[] = INCBIN_U8("graphics/pokemon/footprints/flaaffy_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/front_pics/ampharos_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/palettes/ampharos_palette.gbapal.lz"); -const u32 gMonBackPic_Ampharos[] = INCBIN_U32("graphics/pokemon/back_pics/ampharos_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/palettes/ampharos_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ampharos[] = INCBIN_U8("graphics/pokemon/icons/ampharos_icon.4bpp"); -const u8 gMonFootprint_Ampharos[] = INCBIN_U8("graphics/pokemon/footprints/ampharos_footprint.1bpp"); - -const u32 gMonStillFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/front_pics/bellossom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/palettes/bellossom_palette.gbapal.lz"); -const u32 gMonBackPic_Bellossom[] = INCBIN_U32("graphics/pokemon/back_pics/bellossom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/palettes/bellossom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Bellossom[] = INCBIN_U8("graphics/pokemon/icons/bellossom_icon.4bpp"); -const u8 gMonFootprint_Bellossom[] = INCBIN_U8("graphics/pokemon/footprints/bellossom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/front_pics/marill_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Marill[] = INCBIN_U32("graphics/pokemon/palettes/marill_palette.gbapal.lz"); -const u32 gMonBackPic_Marill[] = INCBIN_U32("graphics/pokemon/back_pics/marill_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Marill[] = INCBIN_U32("graphics/pokemon/palettes/marill_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Marill[] = INCBIN_U8("graphics/pokemon/icons/marill_icon.4bpp"); -const u8 gMonFootprint_Marill[] = INCBIN_U8("graphics/pokemon/footprints/marill_footprint.1bpp"); - -const u32 gMonStillFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/front_pics/azumarill_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/palettes/azumarill_palette.gbapal.lz"); -const u32 gMonBackPic_Azumarill[] = INCBIN_U32("graphics/pokemon/back_pics/azumarill_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/palettes/azumarill_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Azumarill[] = INCBIN_U8("graphics/pokemon/icons/azumarill_icon.4bpp"); -const u8 gMonFootprint_Azumarill[] = INCBIN_U8("graphics/pokemon/footprints/azumarill_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/front_pics/sudowoodo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/palettes/sudowoodo_palette.gbapal.lz"); -const u32 gMonBackPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/back_pics/sudowoodo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/palettes/sudowoodo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sudowoodo[] = INCBIN_U8("graphics/pokemon/icons/sudowoodo_icon.4bpp"); -const u8 gMonFootprint_Sudowoodo[] = INCBIN_U8("graphics/pokemon/footprints/sudowoodo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/front_pics/politoed_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Politoed[] = INCBIN_U32("graphics/pokemon/palettes/politoed_palette.gbapal.lz"); -const u32 gMonBackPic_Politoed[] = INCBIN_U32("graphics/pokemon/back_pics/politoed_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Politoed[] = INCBIN_U32("graphics/pokemon/palettes/politoed_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Politoed[] = INCBIN_U8("graphics/pokemon/icons/politoed_icon.4bpp"); -const u8 gMonFootprint_Politoed[] = INCBIN_U8("graphics/pokemon/footprints/politoed_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/front_pics/hoppip_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/palettes/hoppip_palette.gbapal.lz"); -const u32 gMonBackPic_Hoppip[] = INCBIN_U32("graphics/pokemon/back_pics/hoppip_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/palettes/hoppip_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hoppip[] = INCBIN_U8("graphics/pokemon/icons/hoppip_icon.4bpp"); -const u8 gMonFootprint_Hoppip[] = INCBIN_U8("graphics/pokemon/footprints/hoppip_footprint.1bpp"); - -const u32 gMonStillFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/front_pics/skiploom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/palettes/skiploom_palette.gbapal.lz"); -const u32 gMonBackPic_Skiploom[] = INCBIN_U32("graphics/pokemon/back_pics/skiploom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/palettes/skiploom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Skiploom[] = INCBIN_U8("graphics/pokemon/icons/skiploom_icon.4bpp"); -const u8 gMonFootprint_Skiploom[] = INCBIN_U8("graphics/pokemon/footprints/skiploom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/front_pics/jumpluff_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/palettes/jumpluff_palette.gbapal.lz"); -const u32 gMonBackPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/back_pics/jumpluff_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/palettes/jumpluff_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Jumpluff[] = INCBIN_U8("graphics/pokemon/icons/jumpluff_icon.4bpp"); -const u8 gMonFootprint_Jumpluff[] = INCBIN_U8("graphics/pokemon/footprints/jumpluff_footprint.1bpp"); - -const u32 gMonStillFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/front_pics/aipom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Aipom[] = INCBIN_U32("graphics/pokemon/palettes/aipom_palette.gbapal.lz"); -const u32 gMonBackPic_Aipom[] = INCBIN_U32("graphics/pokemon/back_pics/aipom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Aipom[] = INCBIN_U32("graphics/pokemon/palettes/aipom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Aipom[] = INCBIN_U8("graphics/pokemon/icons/aipom_icon.4bpp"); -const u8 gMonFootprint_Aipom[] = INCBIN_U8("graphics/pokemon/footprints/aipom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/front_pics/sunkern_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/palettes/sunkern_palette.gbapal.lz"); -const u32 gMonBackPic_Sunkern[] = INCBIN_U32("graphics/pokemon/back_pics/sunkern_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/palettes/sunkern_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sunkern[] = INCBIN_U8("graphics/pokemon/icons/sunkern_icon.4bpp"); -const u8 gMonFootprint_Sunkern[] = INCBIN_U8("graphics/pokemon/footprints/sunkern_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/front_pics/sunflora_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/palettes/sunflora_palette.gbapal.lz"); -const u32 gMonBackPic_Sunflora[] = INCBIN_U32("graphics/pokemon/back_pics/sunflora_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/palettes/sunflora_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sunflora[] = INCBIN_U8("graphics/pokemon/icons/sunflora_icon.4bpp"); -const u8 gMonFootprint_Sunflora[] = INCBIN_U8("graphics/pokemon/footprints/sunflora_footprint.1bpp"); - -const u32 gMonStillFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/front_pics/yanma_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Yanma[] = INCBIN_U32("graphics/pokemon/palettes/yanma_palette.gbapal.lz"); -const u32 gMonBackPic_Yanma[] = INCBIN_U32("graphics/pokemon/back_pics/yanma_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Yanma[] = INCBIN_U32("graphics/pokemon/palettes/yanma_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Yanma[] = INCBIN_U8("graphics/pokemon/icons/yanma_icon.4bpp"); -const u8 gMonFootprint_Yanma[] = INCBIN_U8("graphics/pokemon/footprints/yanma_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/front_pics/wooper_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wooper[] = INCBIN_U32("graphics/pokemon/palettes/wooper_palette.gbapal.lz"); -const u32 gMonBackPic_Wooper[] = INCBIN_U32("graphics/pokemon/back_pics/wooper_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wooper[] = INCBIN_U32("graphics/pokemon/palettes/wooper_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wooper[] = INCBIN_U8("graphics/pokemon/icons/wooper_icon.4bpp"); -const u8 gMonFootprint_Wooper[] = INCBIN_U8("graphics/pokemon/footprints/wooper_footprint.1bpp"); - -const u32 gMonStillFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/front_pics/quagsire_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/palettes/quagsire_palette.gbapal.lz"); -const u32 gMonBackPic_Quagsire[] = INCBIN_U32("graphics/pokemon/back_pics/quagsire_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/palettes/quagsire_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Quagsire[] = INCBIN_U8("graphics/pokemon/icons/quagsire_icon.4bpp"); -const u8 gMonFootprint_Quagsire[] = INCBIN_U8("graphics/pokemon/footprints/quagsire_footprint.1bpp"); - -const u32 gMonStillFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/front_pics/espeon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Espeon[] = INCBIN_U32("graphics/pokemon/palettes/espeon_palette.gbapal.lz"); -const u32 gMonBackPic_Espeon[] = INCBIN_U32("graphics/pokemon/back_pics/espeon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Espeon[] = INCBIN_U32("graphics/pokemon/palettes/espeon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Espeon[] = INCBIN_U8("graphics/pokemon/icons/espeon_icon.4bpp"); -const u8 gMonFootprint_Espeon[] = INCBIN_U8("graphics/pokemon/footprints/espeon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/front_pics/umbreon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/palettes/umbreon_palette.gbapal.lz"); -const u32 gMonBackPic_Umbreon[] = INCBIN_U32("graphics/pokemon/back_pics/umbreon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/palettes/umbreon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Umbreon[] = INCBIN_U8("graphics/pokemon/icons/umbreon_icon.4bpp"); -const u8 gMonFootprint_Umbreon[] = INCBIN_U8("graphics/pokemon/footprints/umbreon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/front_pics/murkrow_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/palettes/murkrow_palette.gbapal.lz"); -const u32 gMonBackPic_Murkrow[] = INCBIN_U32("graphics/pokemon/back_pics/murkrow_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/palettes/murkrow_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Murkrow[] = INCBIN_U8("graphics/pokemon/icons/murkrow_icon.4bpp"); -const u8 gMonFootprint_Murkrow[] = INCBIN_U8("graphics/pokemon/footprints/murkrow_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/front_pics/slowking_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slowking[] = INCBIN_U32("graphics/pokemon/palettes/slowking_palette.gbapal.lz"); -const u32 gMonBackPic_Slowking[] = INCBIN_U32("graphics/pokemon/back_pics/slowking_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slowking[] = INCBIN_U32("graphics/pokemon/palettes/slowking_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slowking[] = INCBIN_U8("graphics/pokemon/icons/slowking_icon.4bpp"); -const u8 gMonFootprint_Slowking[] = INCBIN_U8("graphics/pokemon/footprints/slowking_footprint.1bpp"); - -const u32 gMonStillFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/front_pics/misdreavus_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/palettes/misdreavus_palette.gbapal.lz"); -const u32 gMonBackPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/back_pics/misdreavus_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/palettes/misdreavus_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/icons/misdreavus_icon.4bpp"); -const u8 gMonFootprint_Misdreavus[] = INCBIN_U8("graphics/pokemon/footprints/misdreavus_footprint.1bpp"); - -const u32 gMonStillFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/front_pics/unown_a_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Unown[] = INCBIN_U32("graphics/pokemon/palettes/unown_palette.gbapal.lz"); -const u32 gMonBackPic_UnownA[] = INCBIN_U32("graphics/pokemon/back_pics/unown_a_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Unown[] = INCBIN_U32("graphics/pokemon/palettes/unown_shiny_palette.gbapal.lz"); -const u8 gMonIcon_UnownA[] = INCBIN_U8("graphics/pokemon/icons/unown_a_icon.4bpp"); -const u8 gMonFootprint_Unown[] = INCBIN_U8("graphics/pokemon/footprints/unown_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/front_pics/wobbuffet_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/palettes/wobbuffet_palette.gbapal.lz"); -const u32 gMonBackPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/back_pics/wobbuffet_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/palettes/wobbuffet_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wobbuffet[] = INCBIN_U8("graphics/pokemon/icons/wobbuffet_icon.4bpp"); -const u8 gMonFootprint_Wobbuffet[] = INCBIN_U8("graphics/pokemon/footprints/wobbuffet_footprint.1bpp"); - -const u32 gMonStillFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/front_pics/girafarig_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/palettes/girafarig_palette.gbapal.lz"); -const u32 gMonBackPic_Girafarig[] = INCBIN_U32("graphics/pokemon/back_pics/girafarig_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/palettes/girafarig_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Girafarig[] = INCBIN_U8("graphics/pokemon/icons/girafarig_icon.4bpp"); -const u8 gMonFootprint_Girafarig[] = INCBIN_U8("graphics/pokemon/footprints/girafarig_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/front_pics/pineco_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pineco[] = INCBIN_U32("graphics/pokemon/palettes/pineco_palette.gbapal.lz"); -const u32 gMonBackPic_Pineco[] = INCBIN_U32("graphics/pokemon/back_pics/pineco_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pineco[] = INCBIN_U32("graphics/pokemon/palettes/pineco_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pineco[] = INCBIN_U8("graphics/pokemon/icons/pineco_icon.4bpp"); -const u8 gMonFootprint_Pineco[] = INCBIN_U8("graphics/pokemon/footprints/pineco_footprint.1bpp"); - -const u32 gMonStillFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/front_pics/forretress_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Forretress[] = INCBIN_U32("graphics/pokemon/palettes/forretress_palette.gbapal.lz"); -const u32 gMonBackPic_Forretress[] = INCBIN_U32("graphics/pokemon/back_pics/forretress_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Forretress[] = INCBIN_U32("graphics/pokemon/palettes/forretress_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Forretress[] = INCBIN_U8("graphics/pokemon/icons/forretress_icon.4bpp"); -const u8 gMonFootprint_Forretress[] = INCBIN_U8("graphics/pokemon/footprints/forretress_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/front_pics/dunsparce_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/palettes/dunsparce_palette.gbapal.lz"); -const u32 gMonBackPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/back_pics/dunsparce_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/palettes/dunsparce_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dunsparce[] = INCBIN_U8("graphics/pokemon/icons/dunsparce_icon.4bpp"); -const u8 gMonFootprint_Dunsparce[] = INCBIN_U8("graphics/pokemon/footprints/dunsparce_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/front_pics/gligar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gligar[] = INCBIN_U32("graphics/pokemon/palettes/gligar_palette.gbapal.lz"); -const u32 gMonBackPic_Gligar[] = INCBIN_U32("graphics/pokemon/back_pics/gligar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gligar[] = INCBIN_U32("graphics/pokemon/palettes/gligar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gligar[] = INCBIN_U8("graphics/pokemon/icons/gligar_icon.4bpp"); -const u8 gMonFootprint_Gligar[] = INCBIN_U8("graphics/pokemon/footprints/gligar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/front_pics/steelix_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Steelix[] = INCBIN_U32("graphics/pokemon/palettes/steelix_palette.gbapal.lz"); -const u32 gMonBackPic_Steelix[] = INCBIN_U32("graphics/pokemon/back_pics/steelix_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Steelix[] = INCBIN_U32("graphics/pokemon/palettes/steelix_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Steelix[] = INCBIN_U8("graphics/pokemon/icons/steelix_icon.4bpp"); -const u8 gMonFootprint_Steelix[] = INCBIN_U8("graphics/pokemon/footprints/steelix_footprint.1bpp"); - -const u32 gMonStillFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/front_pics/snubbull_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/palettes/snubbull_palette.gbapal.lz"); -const u32 gMonBackPic_Snubbull[] = INCBIN_U32("graphics/pokemon/back_pics/snubbull_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/palettes/snubbull_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Snubbull[] = INCBIN_U8("graphics/pokemon/icons/snubbull_icon.4bpp"); -const u8 gMonFootprint_Snubbull[] = INCBIN_U8("graphics/pokemon/footprints/snubbull_footprint.1bpp"); - -const u32 gMonStillFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/front_pics/granbull_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Granbull[] = INCBIN_U32("graphics/pokemon/palettes/granbull_palette.gbapal.lz"); -const u32 gMonBackPic_Granbull[] = INCBIN_U32("graphics/pokemon/back_pics/granbull_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Granbull[] = INCBIN_U32("graphics/pokemon/palettes/granbull_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Granbull[] = INCBIN_U8("graphics/pokemon/icons/granbull_icon.4bpp"); -const u8 gMonFootprint_Granbull[] = INCBIN_U8("graphics/pokemon/footprints/granbull_footprint.1bpp"); - -const u32 gMonStillFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/front_pics/qwilfish_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/palettes/qwilfish_palette.gbapal.lz"); -const u32 gMonBackPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/back_pics/qwilfish_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/palettes/qwilfish_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Qwilfish[] = INCBIN_U8("graphics/pokemon/icons/qwilfish_icon.4bpp"); -const u8 gMonFootprint_Qwilfish[] = INCBIN_U8("graphics/pokemon/footprints/qwilfish_footprint.1bpp"); - -const u32 gMonStillFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/front_pics/scizor_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Scizor[] = INCBIN_U32("graphics/pokemon/palettes/scizor_palette.gbapal.lz"); -const u32 gMonBackPic_Scizor[] = INCBIN_U32("graphics/pokemon/back_pics/scizor_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Scizor[] = INCBIN_U32("graphics/pokemon/palettes/scizor_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Scizor[] = INCBIN_U8("graphics/pokemon/icons/scizor_icon.4bpp"); -const u8 gMonFootprint_Scizor[] = INCBIN_U8("graphics/pokemon/footprints/scizor_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/front_pics/shuckle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/palettes/shuckle_palette.gbapal.lz"); -const u32 gMonBackPic_Shuckle[] = INCBIN_U32("graphics/pokemon/back_pics/shuckle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/palettes/shuckle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shuckle[] = INCBIN_U8("graphics/pokemon/icons/shuckle_icon.4bpp"); -const u8 gMonFootprint_Shuckle[] = INCBIN_U8("graphics/pokemon/footprints/shuckle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/front_pics/heracross_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Heracross[] = INCBIN_U32("graphics/pokemon/palettes/heracross_palette.gbapal.lz"); -const u32 gMonBackPic_Heracross[] = INCBIN_U32("graphics/pokemon/back_pics/heracross_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Heracross[] = INCBIN_U32("graphics/pokemon/palettes/heracross_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Heracross[] = INCBIN_U8("graphics/pokemon/icons/heracross_icon.4bpp"); -const u8 gMonFootprint_Heracross[] = INCBIN_U8("graphics/pokemon/footprints/heracross_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/front_pics/sneasel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/palettes/sneasel_palette.gbapal.lz"); -const u32 gMonBackPic_Sneasel[] = INCBIN_U32("graphics/pokemon/back_pics/sneasel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/palettes/sneasel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sneasel[] = INCBIN_U8("graphics/pokemon/icons/sneasel_icon.4bpp"); -const u8 gMonFootprint_Sneasel[] = INCBIN_U8("graphics/pokemon/footprints/sneasel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/front_pics/teddiursa_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/palettes/teddiursa_palette.gbapal.lz"); -const u32 gMonBackPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/back_pics/teddiursa_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/palettes/teddiursa_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Teddiursa[] = INCBIN_U8("graphics/pokemon/icons/teddiursa_icon.4bpp"); -const u8 gMonFootprint_Teddiursa[] = INCBIN_U8("graphics/pokemon/footprints/teddiursa_footprint.1bpp"); -const u32 gMonStillFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/front_pics/ursaring_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/palettes/ursaring_palette.gbapal.lz"); -const u32 gMonBackPic_Ursaring[] = INCBIN_U32("graphics/pokemon/back_pics/ursaring_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/palettes/ursaring_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ursaring[] = INCBIN_U8("graphics/pokemon/icons/ursaring_icon.4bpp"); -const u8 gMonFootprint_Ursaring[] = INCBIN_U8("graphics/pokemon/footprints/ursaring_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/front_pics/slugma_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slugma[] = INCBIN_U32("graphics/pokemon/palettes/slugma_palette.gbapal.lz"); -const u32 gMonBackPic_Slugma[] = INCBIN_U32("graphics/pokemon/back_pics/slugma_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slugma[] = INCBIN_U32("graphics/pokemon/palettes/slugma_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slugma[] = INCBIN_U8("graphics/pokemon/icons/slugma_icon.4bpp"); -const u8 gMonFootprint_Slugma[] = INCBIN_U8("graphics/pokemon/footprints/slugma_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/front_pics/magcargo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/palettes/magcargo_palette.gbapal.lz"); -const u32 gMonBackPic_Magcargo[] = INCBIN_U32("graphics/pokemon/back_pics/magcargo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/palettes/magcargo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magcargo[] = INCBIN_U8("graphics/pokemon/icons/magcargo_icon.4bpp"); -const u8 gMonFootprint_Magcargo[] = INCBIN_U8("graphics/pokemon/footprints/magcargo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/front_pics/swinub_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Swinub[] = INCBIN_U32("graphics/pokemon/palettes/swinub_palette.gbapal.lz"); -const u32 gMonBackPic_Swinub[] = INCBIN_U32("graphics/pokemon/back_pics/swinub_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Swinub[] = INCBIN_U32("graphics/pokemon/palettes/swinub_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Swinub[] = INCBIN_U8("graphics/pokemon/icons/swinub_icon.4bpp"); -const u8 gMonFootprint_Swinub[] = INCBIN_U8("graphics/pokemon/footprints/swinub_footprint.1bpp"); - -const u32 gMonStillFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/front_pics/piloswine_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/palettes/piloswine_palette.gbapal.lz"); -const u32 gMonBackPic_Piloswine[] = INCBIN_U32("graphics/pokemon/back_pics/piloswine_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/palettes/piloswine_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Piloswine[] = INCBIN_U8("graphics/pokemon/icons/piloswine_icon.4bpp"); -const u8 gMonFootprint_Piloswine[] = INCBIN_U8("graphics/pokemon/footprints/piloswine_footprint.1bpp"); - -const u32 gMonStillFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/front_pics/corsola_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Corsola[] = INCBIN_U32("graphics/pokemon/palettes/corsola_palette.gbapal.lz"); -const u32 gMonBackPic_Corsola[] = INCBIN_U32("graphics/pokemon/back_pics/corsola_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Corsola[] = INCBIN_U32("graphics/pokemon/palettes/corsola_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Corsola[] = INCBIN_U8("graphics/pokemon/icons/corsola_icon.4bpp"); -const u8 gMonFootprint_Corsola[] = INCBIN_U8("graphics/pokemon/footprints/corsola_footprint.1bpp"); - -const u32 gMonStillFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/front_pics/remoraid_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/palettes/remoraid_palette.gbapal.lz"); -const u32 gMonBackPic_Remoraid[] = INCBIN_U32("graphics/pokemon/back_pics/remoraid_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/palettes/remoraid_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Remoraid[] = INCBIN_U8("graphics/pokemon/icons/remoraid_icon.4bpp"); -const u8 gMonFootprint_Remoraid[] = INCBIN_U8("graphics/pokemon/footprints/remoraid_footprint.1bpp"); - -const u32 gMonStillFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/front_pics/octillery_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Octillery[] = INCBIN_U32("graphics/pokemon/palettes/octillery_palette.gbapal.lz"); -const u32 gMonBackPic_Octillery[] = INCBIN_U32("graphics/pokemon/back_pics/octillery_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Octillery[] = INCBIN_U32("graphics/pokemon/palettes/octillery_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Octillery[] = INCBIN_U8("graphics/pokemon/icons/octillery_icon.4bpp"); -const u8 gMonFootprint_Octillery[] = INCBIN_U8("graphics/pokemon/footprints/octillery_footprint.1bpp"); - -const u32 gMonStillFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/front_pics/delibird_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Delibird[] = INCBIN_U32("graphics/pokemon/palettes/delibird_palette.gbapal.lz"); -const u32 gMonBackPic_Delibird[] = INCBIN_U32("graphics/pokemon/back_pics/delibird_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Delibird[] = INCBIN_U32("graphics/pokemon/palettes/delibird_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Delibird[] = INCBIN_U8("graphics/pokemon/icons/delibird_icon.4bpp"); -const u8 gMonFootprint_Delibird[] = INCBIN_U8("graphics/pokemon/footprints/delibird_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/front_pics/mantine_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mantine[] = INCBIN_U32("graphics/pokemon/palettes/mantine_palette.gbapal.lz"); -const u32 gMonBackPic_Mantine[] = INCBIN_U32("graphics/pokemon/back_pics/mantine_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mantine[] = INCBIN_U32("graphics/pokemon/palettes/mantine_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mantine[] = INCBIN_U8("graphics/pokemon/icons/mantine_icon.4bpp"); -const u8 gMonFootprint_Mantine[] = INCBIN_U8("graphics/pokemon/footprints/mantine_footprint.1bpp"); - -const u32 gMonStillFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/front_pics/skarmory_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/palettes/skarmory_palette.gbapal.lz"); -const u32 gMonBackPic_Skarmory[] = INCBIN_U32("graphics/pokemon/back_pics/skarmory_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/palettes/skarmory_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Skarmory[] = INCBIN_U8("graphics/pokemon/icons/skarmory_icon.4bpp"); -const u8 gMonFootprint_Skarmory[] = INCBIN_U8("graphics/pokemon/footprints/skarmory_footprint.1bpp"); - -const u32 gMonStillFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/front_pics/houndour_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Houndour[] = INCBIN_U32("graphics/pokemon/palettes/houndour_palette.gbapal.lz"); -const u32 gMonBackPic_Houndour[] = INCBIN_U32("graphics/pokemon/back_pics/houndour_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Houndour[] = INCBIN_U32("graphics/pokemon/palettes/houndour_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Houndour[] = INCBIN_U8("graphics/pokemon/icons/houndour_icon.4bpp"); -const u8 gMonFootprint_Houndour[] = INCBIN_U8("graphics/pokemon/footprints/houndour_footprint.1bpp"); - -const u32 gMonStillFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/front_pics/houndoom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/palettes/houndoom_palette.gbapal.lz"); -const u32 gMonBackPic_Houndoom[] = INCBIN_U32("graphics/pokemon/back_pics/houndoom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/palettes/houndoom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Houndoom[] = INCBIN_U8("graphics/pokemon/icons/houndoom_icon.4bpp"); -const u8 gMonFootprint_Houndoom[] = INCBIN_U8("graphics/pokemon/footprints/houndoom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/front_pics/kingdra_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/palettes/kingdra_palette.gbapal.lz"); -const u32 gMonBackPic_Kingdra[] = INCBIN_U32("graphics/pokemon/back_pics/kingdra_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/palettes/kingdra_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kingdra[] = INCBIN_U8("graphics/pokemon/icons/kingdra_icon.4bpp"); -const u8 gMonFootprint_Kingdra[] = INCBIN_U8("graphics/pokemon/footprints/kingdra_footprint.1bpp"); - -const u32 gMonStillFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/front_pics/phanpy_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/palettes/phanpy_palette.gbapal.lz"); -const u32 gMonBackPic_Phanpy[] = INCBIN_U32("graphics/pokemon/back_pics/phanpy_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/palettes/phanpy_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Phanpy[] = INCBIN_U8("graphics/pokemon/icons/phanpy_icon.4bpp"); -const u8 gMonFootprint_Phanpy[] = INCBIN_U8("graphics/pokemon/footprints/phanpy_footprint.1bpp"); - -const u32 gMonStillFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/front_pics/donphan_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Donphan[] = INCBIN_U32("graphics/pokemon/palettes/donphan_palette.gbapal.lz"); -const u32 gMonBackPic_Donphan[] = INCBIN_U32("graphics/pokemon/back_pics/donphan_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/palettes/donphan_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/icons/donphan_icon.4bpp"); -const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/footprints/donphan_footprint.1bpp"); +const u32 gMonStillFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/front.4bpp.lz"); +const u32 gMonPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/normal.gbapal.lz"); +const u32 gMonBackPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/back.4bpp.lz"); +const u32 gMonShinyPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/shiny.gbapal.lz"); +const u8 gMonIcon_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/icon.4bpp"); +const u8 gMonFootprint_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/front.4bpp.lz"); +const u32 gMonPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/normal.gbapal.lz"); +const u32 gMonBackPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/back.4bpp.lz"); +const u32 gMonShinyPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/shiny.gbapal.lz"); +const u8 gMonIcon_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/icon.4bpp"); +const u8 gMonFootprint_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/footprint.1bpp"); + +const u32 gMonStillFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/front.4bpp.lz"); +const u32 gMonPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/normal.gbapal.lz"); +const u32 gMonBackPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/back.4bpp.lz"); +const u32 gMonShinyPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/shiny.gbapal.lz"); +const u8 gMonIcon_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/icon.4bpp"); +const u8 gMonFootprint_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/footprint.1bpp"); + +const u32 gMonStillFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/front.4bpp.lz"); +const u32 gMonPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/normal.gbapal.lz"); +const u32 gMonBackPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/back.4bpp.lz"); +const u32 gMonShinyPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/shiny.gbapal.lz"); +const u8 gMonIcon_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/icon.4bpp"); +const u8 gMonFootprint_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/footprint.1bpp"); + +const u32 gMonStillFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/front.4bpp.lz"); +const u32 gMonPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/normal.gbapal.lz"); +const u32 gMonBackPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/back.4bpp.lz"); +const u32 gMonShinyPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/shiny.gbapal.lz"); +const u8 gMonIcon_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/icon.4bpp"); +const u8 gMonFootprint_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/front.4bpp.lz"); +const u32 gMonPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/normal.gbapal.lz"); +const u32 gMonBackPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/back.4bpp.lz"); +const u32 gMonShinyPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/shiny.gbapal.lz"); +const u8 gMonIcon_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/icon.4bpp"); +const u8 gMonFootprint_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/footprint.1bpp"); + +const u32 gMonStillFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/front.4bpp.lz"); +const u32 gMonPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/normal.gbapal.lz"); +const u32 gMonBackPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/back.4bpp.lz"); +const u32 gMonShinyPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/shiny.gbapal.lz"); +const u8 gMonIcon_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/icon.4bpp"); +const u8 gMonFootprint_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/front.4bpp.lz"); +const u32 gMonPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/normal.gbapal.lz"); +const u32 gMonBackPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/back.4bpp.lz"); +const u32 gMonShinyPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/shiny.gbapal.lz"); +const u8 gMonIcon_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/icon.4bpp"); +const u8 gMonFootprint_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/front.4bpp.lz"); +const u32 gMonPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/normal.gbapal.lz"); +const u32 gMonBackPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/back.4bpp.lz"); +const u32 gMonShinyPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/shiny.gbapal.lz"); +const u8 gMonIcon_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/icon.4bpp"); +const u8 gMonFootprint_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/footprint.1bpp"); + +const u32 gMonStillFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/front.4bpp.lz"); +const u32 gMonPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/normal.gbapal.lz"); +const u32 gMonBackPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/back.4bpp.lz"); +const u32 gMonShinyPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/shiny.gbapal.lz"); +const u8 gMonIcon_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/icon.4bpp"); +const u8 gMonFootprint_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/footprint.1bpp"); + +const u32 gMonStillFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/front.4bpp.lz"); +const u32 gMonPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/normal.gbapal.lz"); +const u32 gMonBackPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/back.4bpp.lz"); +const u32 gMonShinyPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/shiny.gbapal.lz"); +const u8 gMonIcon_Metapod[] = INCBIN_U8( "graphics/pokemon/metapod/icon.4bpp"); +const u8 gMonFootprint_Metapod[] = INCBIN_U8("graphics/pokemon/metapod/footprint.1bpp"); + +const u32 gMonStillFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/front.4bpp.lz"); +const u32 gMonPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/normal.gbapal.lz"); +const u32 gMonBackPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/back.4bpp.lz"); +const u32 gMonShinyPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/shiny.gbapal.lz"); +const u8 gMonIcon_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/icon.4bpp"); +const u8 gMonFootprint_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/footprint.1bpp"); + +const u32 gMonStillFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/front.4bpp.lz"); +const u32 gMonPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/normal.gbapal.lz"); +const u32 gMonBackPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/back.4bpp.lz"); +const u32 gMonShinyPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/shiny.gbapal.lz"); +const u8 gMonIcon_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/icon.4bpp"); +const u8 gMonFootprint_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/front.4bpp.lz"); +const u32 gMonPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/normal.gbapal.lz"); +const u32 gMonBackPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/back.4bpp.lz"); +const u32 gMonShinyPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/shiny.gbapal.lz"); +const u8 gMonIcon_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/icon.4bpp"); +const u8 gMonFootprint_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/footprint.1bpp"); + +const u32 gMonStillFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/front.4bpp.lz"); +const u32 gMonPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/normal.gbapal.lz"); +const u32 gMonBackPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/back.4bpp.lz"); +const u32 gMonShinyPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/shiny.gbapal.lz"); +const u8 gMonIcon_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/icon.4bpp"); +const u8 gMonFootprint_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/front.4bpp.lz"); +const u32 gMonPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/normal.gbapal.lz"); +const u32 gMonBackPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/back.4bpp.lz"); +const u32 gMonShinyPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/shiny.gbapal.lz"); +const u8 gMonIcon_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/icon.4bpp"); +const u8 gMonFootprint_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/front.4bpp.lz"); +const u32 gMonPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/normal.gbapal.lz"); +const u32 gMonBackPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/back.4bpp.lz"); +const u32 gMonShinyPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/shiny.gbapal.lz"); +const u8 gMonIcon_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/icon.4bpp"); +const u8 gMonFootprint_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/front.4bpp.lz"); +const u32 gMonPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/normal.gbapal.lz"); +const u32 gMonBackPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/back.4bpp.lz"); +const u32 gMonShinyPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/shiny.gbapal.lz"); +const u8 gMonIcon_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/icon.4bpp"); +const u8 gMonFootprint_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/footprint.1bpp"); + +const u32 gMonStillFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/front.4bpp.lz"); +const u32 gMonPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/normal.gbapal.lz"); +const u32 gMonBackPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/back.4bpp.lz"); +const u32 gMonShinyPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/shiny.gbapal.lz"); +const u8 gMonIcon_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/icon.4bpp"); +const u8 gMonFootprint_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/footprint.1bpp"); + +const u32 gMonStillFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/front.4bpp.lz"); +const u32 gMonPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/normal.gbapal.lz"); +const u32 gMonBackPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/back.4bpp.lz"); +const u32 gMonShinyPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/shiny.gbapal.lz"); +const u8 gMonIcon_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/icon.4bpp"); +const u8 gMonFootprint_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/footprint.1bpp"); + +const u32 gMonStillFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/front.4bpp.lz"); +const u32 gMonPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/normal.gbapal.lz"); +const u32 gMonBackPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/back.4bpp.lz"); +const u32 gMonShinyPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/shiny.gbapal.lz"); +const u8 gMonIcon_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/icon.4bpp"); +const u8 gMonFootprint_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/footprint.1bpp"); + +const u32 gMonStillFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/front.4bpp.lz"); +const u32 gMonPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/normal.gbapal.lz"); +const u32 gMonBackPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/back.4bpp.lz"); +const u32 gMonShinyPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/shiny.gbapal.lz"); +const u8 gMonIcon_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/icon.4bpp"); +const u8 gMonFootprint_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/front.4bpp.lz"); +const u32 gMonPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/normal.gbapal.lz"); +const u32 gMonBackPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/back.4bpp.lz"); +const u32 gMonShinyPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/shiny.gbapal.lz"); +const u8 gMonIcon_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/icon.4bpp"); +const u8 gMonFootprint_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/footprint.1bpp"); + +const u32 gMonStillFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/front.4bpp.lz"); +const u32 gMonPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/normal.gbapal.lz"); +const u32 gMonBackPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/back.4bpp.lz"); +const u32 gMonShinyPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/shiny.gbapal.lz"); +const u8 gMonIcon_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/icon.4bpp"); +const u8 gMonFootprint_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/front.4bpp.lz"); +const u32 gMonPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/normal.gbapal.lz"); +const u32 gMonBackPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/back.4bpp.lz"); +const u32 gMonShinyPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/shiny.gbapal.lz"); +const u8 gMonIcon_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/icon.4bpp"); +const u8 gMonFootprint_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/front.4bpp.lz"); +const u32 gMonPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/normal.gbapal.lz"); +const u32 gMonBackPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/back.4bpp.lz"); +const u32 gMonShinyPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/shiny.gbapal.lz"); +const u8 gMonIcon_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/icon.4bpp"); +const u8 gMonFootprint_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/front.4bpp.lz"); +const u32 gMonPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/normal.gbapal.lz"); +const u32 gMonBackPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/back.4bpp.lz"); +const u32 gMonShinyPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/shiny.gbapal.lz"); +const u8 gMonIcon_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/icon.4bpp"); +const u8 gMonFootprint_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/front.4bpp.lz"); +const u32 gMonPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/normal.gbapal.lz"); +const u32 gMonBackPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/back.4bpp.lz"); +const u32 gMonShinyPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/shiny.gbapal.lz"); +const u8 gMonIcon_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/icon.4bpp"); +const u8 gMonFootprint_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/footprint.1bpp"); + +const u32 gMonStillFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/front.4bpp.lz"); +const u32 gMonPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/normal.gbapal.lz"); +const u32 gMonBackPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/back.4bpp.lz"); +const u32 gMonShinyPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/shiny.gbapal.lz"); +const u8 gMonIcon_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/icon.4bpp"); +const u8 gMonFootprint_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/front.4bpp.lz"); +const u32 gMonPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/normal.gbapal.lz"); +const u32 gMonBackPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/back.4bpp.lz"); +const u32 gMonShinyPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/shiny.gbapal.lz"); +const u8 gMonIcon_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/icon.4bpp"); +const u8 gMonFootprint_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/front.4bpp.lz"); +const u32 gMonPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/normal.gbapal.lz"); +const u32 gMonBackPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/back.4bpp.lz"); +const u32 gMonShinyPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/shiny.gbapal.lz"); +const u8 gMonIcon_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/icon.4bpp"); +const u8 gMonFootprint_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/footprint.1bpp"); + +const u32 gMonStillFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/front.4bpp.lz"); +const u32 gMonPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/normal.gbapal.lz"); +const u32 gMonBackPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/back.4bpp.lz"); +const u32 gMonShinyPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/shiny.gbapal.lz"); +const u8 gMonIcon_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/icon.4bpp"); +const u8 gMonFootprint_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/front.4bpp.lz"); +const u32 gMonPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/normal.gbapal.lz"); +const u32 gMonBackPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/back.4bpp.lz"); +const u32 gMonShinyPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/shiny.gbapal.lz"); +const u8 gMonIcon_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/icon.4bpp"); +const u8 gMonFootprint_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/front.4bpp.lz"); +const u32 gMonPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/normal.gbapal.lz"); +const u32 gMonBackPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/back.4bpp.lz"); +const u32 gMonShinyPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/shiny.gbapal.lz"); +const u8 gMonIcon_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/icon.4bpp"); +const u8 gMonFootprint_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/footprint.1bpp"); + +const u32 gMonStillFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/front.4bpp.lz"); +const u32 gMonPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/normal.gbapal.lz"); +const u32 gMonBackPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/back.4bpp.lz"); +const u32 gMonShinyPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/shiny.gbapal.lz"); +const u8 gMonIcon_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/icon.4bpp"); +const u8 gMonFootprint_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/footprint.1bpp"); + +const u32 gMonStillFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/front.4bpp.lz"); +const u32 gMonPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/normal.gbapal.lz"); +const u32 gMonBackPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/back.4bpp.lz"); +const u32 gMonShinyPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/shiny.gbapal.lz"); +const u8 gMonIcon_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/icon.4bpp"); +const u8 gMonFootprint_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/footprint.1bpp"); + +const u32 gMonStillFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/front.4bpp.lz"); +const u32 gMonPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/normal.gbapal.lz"); +const u32 gMonBackPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/back.4bpp.lz"); +const u32 gMonShinyPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/shiny.gbapal.lz"); +const u8 gMonIcon_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/icon.4bpp"); +const u8 gMonFootprint_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/front.4bpp.lz"); +const u32 gMonPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/normal.gbapal.lz"); +const u32 gMonBackPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/back.4bpp.lz"); +const u32 gMonShinyPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/shiny.gbapal.lz"); +const u8 gMonIcon_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/icon.4bpp"); +const u8 gMonFootprint_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/footprint.1bpp"); + +const u32 gMonStillFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/front.4bpp.lz"); +const u32 gMonPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/normal.gbapal.lz"); +const u32 gMonBackPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/back.4bpp.lz"); +const u32 gMonShinyPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/shiny.gbapal.lz"); +const u8 gMonIcon_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/icon.4bpp"); +const u8 gMonFootprint_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/front.4bpp.lz"); +const u32 gMonPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/normal.gbapal.lz"); +const u32 gMonBackPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/back.4bpp.lz"); +const u32 gMonShinyPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/shiny.gbapal.lz"); +const u8 gMonIcon_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/icon.4bpp"); +const u8 gMonFootprint_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/footprint.1bpp"); + +const u32 gMonStillFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/front.4bpp.lz"); +const u32 gMonPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/normal.gbapal.lz"); +const u32 gMonBackPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/back.4bpp.lz"); +const u32 gMonShinyPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/shiny.gbapal.lz"); +const u8 gMonIcon_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/icon.4bpp"); +const u8 gMonFootprint_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/footprint.1bpp"); + +const u32 gMonStillFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/front.4bpp.lz"); +const u32 gMonPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/normal.gbapal.lz"); +const u32 gMonBackPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/back.4bpp.lz"); +const u32 gMonShinyPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/shiny.gbapal.lz"); +const u8 gMonIcon_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/icon.4bpp"); +const u8 gMonFootprint_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/footprint.1bpp"); + +const u32 gMonStillFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/front.4bpp.lz"); +const u32 gMonPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/normal.gbapal.lz"); +const u32 gMonBackPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/back.4bpp.lz"); +const u32 gMonShinyPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/shiny.gbapal.lz"); +const u8 gMonIcon_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/icon.4bpp"); +const u8 gMonFootprint_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/front.4bpp.lz"); +const u32 gMonPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/normal.gbapal.lz"); +const u32 gMonBackPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/back.4bpp.lz"); +const u32 gMonShinyPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/shiny.gbapal.lz"); +const u8 gMonIcon_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/icon.4bpp"); +const u8 gMonFootprint_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/front.4bpp.lz"); +const u32 gMonPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/normal.gbapal.lz"); +const u32 gMonBackPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/back.4bpp.lz"); +const u32 gMonShinyPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/shiny.gbapal.lz"); +const u8 gMonIcon_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/icon.4bpp"); +const u8 gMonFootprint_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/footprint.1bpp"); + +const u32 gMonStillFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/front.4bpp.lz"); +const u32 gMonPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/normal.gbapal.lz"); +const u32 gMonBackPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/back.4bpp.lz"); +const u32 gMonShinyPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/shiny.gbapal.lz"); +const u8 gMonIcon_Paras[] = INCBIN_U8("graphics/pokemon/paras/icon.4bpp"); +const u8 gMonFootprint_Paras[] = INCBIN_U8("graphics/pokemon/paras/footprint.1bpp"); + +const u32 gMonStillFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/front.4bpp.lz"); +const u32 gMonPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/normal.gbapal.lz"); +const u32 gMonBackPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/back.4bpp.lz"); +const u32 gMonShinyPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/shiny.gbapal.lz"); +const u8 gMonIcon_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/icon.4bpp"); +const u8 gMonFootprint_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/footprint.1bpp"); + +const u32 gMonStillFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/front.4bpp.lz"); +const u32 gMonPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/normal.gbapal.lz"); +const u32 gMonBackPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/back.4bpp.lz"); +const u32 gMonShinyPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/shiny.gbapal.lz"); +const u8 gMonIcon_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/icon.4bpp"); +const u8 gMonFootprint_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/footprint.1bpp"); + +const u32 gMonStillFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/front.4bpp.lz"); +const u32 gMonPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/normal.gbapal.lz"); +const u32 gMonBackPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/back.4bpp.lz"); +const u32 gMonShinyPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/shiny.gbapal.lz"); +const u8 gMonIcon_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/icon.4bpp"); +const u8 gMonFootprint_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/footprint.1bpp"); + +const u32 gMonStillFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/front.4bpp.lz"); +const u32 gMonPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/normal.gbapal.lz"); +const u32 gMonBackPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/back.4bpp.lz"); +const u32 gMonShinyPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/shiny.gbapal.lz"); +const u8 gMonIcon_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/icon.4bpp"); +const u8 gMonFootprint_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/front.4bpp.lz"); +const u32 gMonPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/normal.gbapal.lz"); +const u32 gMonBackPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/back.4bpp.lz"); +const u32 gMonShinyPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/shiny.gbapal.lz"); +const u8 gMonIcon_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/icon.4bpp"); +const u8 gMonFootprint_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/footprint.1bpp"); + +const u32 gMonStillFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/front.4bpp.lz"); +const u32 gMonPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/normal.gbapal.lz"); +const u32 gMonBackPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/back.4bpp.lz"); +const u32 gMonShinyPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/shiny.gbapal.lz"); +const u8 gMonIcon_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/icon.4bpp"); +const u8 gMonFootprint_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/footprint.1bpp"); + +const u32 gMonStillFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/front.4bpp.lz"); +const u32 gMonPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/normal.gbapal.lz"); +const u32 gMonBackPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/back.4bpp.lz"); +const u32 gMonShinyPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/shiny.gbapal.lz"); +const u8 gMonIcon_Persian[] = INCBIN_U8("graphics/pokemon/persian/icon.4bpp"); +const u8 gMonFootprint_Persian[] = INCBIN_U8("graphics/pokemon/persian/footprint.1bpp"); + +const u32 gMonStillFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/front.4bpp.lz"); +const u32 gMonPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/normal.gbapal.lz"); +const u32 gMonBackPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/back.4bpp.lz"); +const u32 gMonShinyPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/shiny.gbapal.lz"); +const u8 gMonIcon_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/icon.4bpp"); +const u8 gMonFootprint_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/footprint.1bpp"); + +const u32 gMonStillFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/front.4bpp.lz"); +const u32 gMonPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/normal.gbapal.lz"); +const u32 gMonBackPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/back.4bpp.lz"); +const u32 gMonShinyPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/shiny.gbapal.lz"); +const u8 gMonIcon_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/icon.4bpp"); +const u8 gMonFootprint_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/front.4bpp.lz"); +const u32 gMonPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/normal.gbapal.lz"); +const u32 gMonBackPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/back.4bpp.lz"); +const u32 gMonShinyPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/shiny.gbapal.lz"); +const u8 gMonIcon_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/icon.4bpp"); +const u8 gMonFootprint_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/footprint.1bpp"); + +const u32 gMonStillFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/front.4bpp.lz"); +const u32 gMonPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/normal.gbapal.lz"); +const u32 gMonBackPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/back.4bpp.lz"); +const u32 gMonShinyPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/shiny.gbapal.lz"); +const u8 gMonIcon_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/icon.4bpp"); +const u8 gMonFootprint_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/footprint.1bpp"); + +const u32 gMonStillFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/front.4bpp.lz"); +const u32 gMonPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/normal.gbapal.lz"); +const u32 gMonBackPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/back.4bpp.lz"); +const u32 gMonShinyPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/shiny.gbapal.lz"); +const u8 gMonIcon_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/icon.4bpp"); +const u8 gMonFootprint_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/footprint.1bpp"); + +const u32 gMonStillFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/front.4bpp.lz"); +const u32 gMonPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/normal.gbapal.lz"); +const u32 gMonBackPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/back.4bpp.lz"); +const u32 gMonShinyPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/shiny.gbapal.lz"); +const u8 gMonIcon_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/icon.4bpp"); +const u8 gMonFootprint_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/footprint.1bpp"); + +const u32 gMonStillFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/front.4bpp.lz"); +const u32 gMonPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/normal.gbapal.lz"); +const u32 gMonBackPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/back.4bpp.lz"); +const u32 gMonShinyPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/shiny.gbapal.lz"); +const u8 gMonIcon_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/icon.4bpp"); +const u8 gMonFootprint_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/footprint.1bpp"); + +const u32 gMonStillFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/front.4bpp.lz"); +const u32 gMonPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/normal.gbapal.lz"); +const u32 gMonBackPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/back.4bpp.lz"); +const u32 gMonShinyPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/shiny.gbapal.lz"); +const u8 gMonIcon_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/icon.4bpp"); +const u8 gMonFootprint_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/footprint.1bpp"); + +const u32 gMonStillFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/front.4bpp.lz"); +const u32 gMonPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/normal.gbapal.lz"); +const u32 gMonBackPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/back.4bpp.lz"); +const u32 gMonShinyPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/shiny.gbapal.lz"); +const u8 gMonIcon_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/icon.4bpp"); +const u8 gMonFootprint_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/footprint.1bpp"); + +const u32 gMonStillFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/front.4bpp.lz"); +const u32 gMonPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/normal.gbapal.lz"); +const u32 gMonBackPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/back.4bpp.lz"); +const u32 gMonShinyPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/shiny.gbapal.lz"); +const u8 gMonIcon_Abra[] = INCBIN_U8("graphics/pokemon/abra/icon.4bpp"); +const u8 gMonFootprint_Abra[] = INCBIN_U8("graphics/pokemon/abra/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/front.4bpp.lz"); +const u32 gMonPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/normal.gbapal.lz"); +const u32 gMonBackPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/back.4bpp.lz"); +const u32 gMonShinyPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/shiny.gbapal.lz"); +const u8 gMonIcon_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/icon.4bpp"); +const u8 gMonFootprint_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/footprint.1bpp"); + +const u32 gMonStillFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/front.4bpp.lz"); +const u32 gMonPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/normal.gbapal.lz"); +const u32 gMonBackPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/back.4bpp.lz"); +const u32 gMonShinyPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/shiny.gbapal.lz"); +const u8 gMonIcon_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/icon.4bpp"); +const u8 gMonFootprint_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/footprint.1bpp"); + +const u32 gMonStillFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/front.4bpp.lz"); +const u32 gMonPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/normal.gbapal.lz"); +const u32 gMonBackPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/back.4bpp.lz"); +const u32 gMonShinyPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/shiny.gbapal.lz"); +const u8 gMonIcon_Machop[] = INCBIN_U8("graphics/pokemon/machop/icon.4bpp"); +const u8 gMonFootprint_Machop[] = INCBIN_U8("graphics/pokemon/machop/footprint.1bpp"); + +const u32 gMonStillFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/front.4bpp.lz"); +const u32 gMonPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/normal.gbapal.lz"); +const u32 gMonBackPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/back.4bpp.lz"); +const u32 gMonShinyPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/shiny.gbapal.lz"); +const u8 gMonIcon_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/icon.4bpp"); +const u8 gMonFootprint_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/footprint.1bpp"); + +const u32 gMonStillFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/front.4bpp.lz"); +const u32 gMonPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/normal.gbapal.lz"); +const u32 gMonBackPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/back.4bpp.lz"); +const u32 gMonShinyPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/shiny.gbapal.lz"); +const u8 gMonIcon_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/icon.4bpp"); +const u8 gMonFootprint_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/footprint.1bpp"); + +const u32 gMonStillFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/front.4bpp.lz"); +const u32 gMonPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/normal.gbapal.lz"); +const u32 gMonBackPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/back.4bpp.lz"); +const u32 gMonShinyPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/shiny.gbapal.lz"); +const u8 gMonIcon_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/icon.4bpp"); +const u8 gMonFootprint_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/footprint.1bpp"); + +const u32 gMonStillFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/front.4bpp.lz"); +const u32 gMonPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/normal.gbapal.lz"); +const u32 gMonBackPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/back.4bpp.lz"); +const u32 gMonShinyPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/shiny.gbapal.lz"); +const u8 gMonIcon_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/icon.4bpp"); +const u8 gMonFootprint_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/footprint.1bpp"); + +const u32 gMonStillFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/front.4bpp.lz"); +const u32 gMonPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/normal.gbapal.lz"); +const u32 gMonBackPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/back.4bpp.lz"); +const u32 gMonShinyPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/shiny.gbapal.lz"); +const u8 gMonIcon_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/icon.4bpp"); +const u8 gMonFootprint_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/front.4bpp.lz"); +const u32 gMonPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/normal.gbapal.lz"); +const u32 gMonBackPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/back.4bpp.lz"); +const u32 gMonShinyPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/shiny.gbapal.lz"); +const u8 gMonIcon_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/icon.4bpp"); +const u8 gMonFootprint_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/front.4bpp.lz"); +const u32 gMonPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/normal.gbapal.lz"); +const u32 gMonBackPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/back.4bpp.lz"); +const u32 gMonShinyPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/shiny.gbapal.lz"); +const u8 gMonIcon_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/icon.4bpp"); +const u8 gMonFootprint_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/front.4bpp.lz"); +const u32 gMonPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/normal.gbapal.lz"); +const u32 gMonBackPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/back.4bpp.lz"); +const u32 gMonShinyPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/shiny.gbapal.lz"); +const u8 gMonIcon_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/icon.4bpp"); +const u8 gMonFootprint_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/footprint.1bpp"); + +const u32 gMonStillFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/front.4bpp.lz"); +const u32 gMonPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/normal.gbapal.lz"); +const u32 gMonBackPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/back.4bpp.lz"); +const u32 gMonShinyPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/shiny.gbapal.lz"); +const u8 gMonIcon_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/icon.4bpp"); +const u8 gMonFootprint_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/footprint.1bpp"); + +const u32 gMonStillFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/front.4bpp.lz"); +const u32 gMonPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/normal.gbapal.lz"); +const u32 gMonBackPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/back.4bpp.lz"); +const u32 gMonShinyPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/shiny.gbapal.lz"); +const u8 gMonIcon_Golem[] = INCBIN_U8("graphics/pokemon/golem/icon.4bpp"); +const u8 gMonFootprint_Golem[] = INCBIN_U8("graphics/pokemon/golem/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/front.4bpp.lz"); +const u32 gMonPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/normal.gbapal.lz"); +const u32 gMonBackPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/back.4bpp.lz"); +const u32 gMonShinyPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/shiny.gbapal.lz"); +const u8 gMonIcon_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/icon.4bpp"); +const u8 gMonFootprint_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/footprint.1bpp"); + +const u32 gMonStillFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/front.4bpp.lz"); +const u32 gMonPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/normal.gbapal.lz"); +const u32 gMonBackPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/back.4bpp.lz"); +const u32 gMonShinyPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/shiny.gbapal.lz"); +const u8 gMonIcon_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/icon.4bpp"); +const u8 gMonFootprint_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/front.4bpp.lz"); +const u32 gMonPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/normal.gbapal.lz"); +const u32 gMonBackPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/back.4bpp.lz"); +const u32 gMonShinyPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/shiny.gbapal.lz"); +const u8 gMonIcon_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/icon.4bpp"); +const u8 gMonFootprint_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/front.4bpp.lz"); +const u32 gMonPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/normal.gbapal.lz"); +const u32 gMonBackPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/back.4bpp.lz"); +const u32 gMonShinyPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/shiny.gbapal.lz"); +const u8 gMonIcon_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/icon.4bpp"); +const u8 gMonFootprint_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/front.4bpp.lz"); +const u32 gMonPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/normal.gbapal.lz"); +const u32 gMonBackPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/back.4bpp.lz"); +const u32 gMonShinyPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/shiny.gbapal.lz"); +const u8 gMonIcon_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/icon.4bpp"); +const u8 gMonFootprint_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/front.4bpp.lz"); +const u32 gMonPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/normal.gbapal.lz"); +const u32 gMonBackPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/back.4bpp.lz"); +const u32 gMonShinyPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/shiny.gbapal.lz"); +const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/icon.4bpp"); +const u8 gMonFootprint_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/footprint.1bpp"); + +const u32 gMonStillFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/front.4bpp.lz"); +const u32 gMonPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/normal.gbapal.lz"); +const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/back.4bpp.lz"); +const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/shiny.gbapal.lz"); +const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetch_d/icon.4bpp"); +const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetch_d/footprint.1bpp"); + +const u32 gMonStillFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/front.4bpp.lz"); +const u32 gMonPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/normal.gbapal.lz"); +const u32 gMonBackPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/back.4bpp.lz"); +const u32 gMonShinyPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/shiny.gbapal.lz"); +const u8 gMonIcon_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/icon.4bpp"); +const u8 gMonFootprint_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/front.4bpp.lz"); +const u32 gMonPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/normal.gbapal.lz"); +const u32 gMonBackPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/back.4bpp.lz"); +const u32 gMonShinyPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/shiny.gbapal.lz"); +const u8 gMonIcon_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/icon.4bpp"); +const u8 gMonFootprint_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/footprint.1bpp"); + +const u32 gMonStillFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/front.4bpp.lz"); +const u32 gMonPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/normal.gbapal.lz"); +const u32 gMonBackPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/back.4bpp.lz"); +const u32 gMonShinyPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/shiny.gbapal.lz"); +const u8 gMonIcon_Seel[] = INCBIN_U8("graphics/pokemon/seel/icon.4bpp"); +const u8 gMonFootprint_Seel[] = INCBIN_U8("graphics/pokemon/seel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/front.4bpp.lz"); +const u32 gMonPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/normal.gbapal.lz"); +const u32 gMonBackPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/back.4bpp.lz"); +const u32 gMonShinyPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/shiny.gbapal.lz"); +const u8 gMonIcon_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/icon.4bpp"); +const u8 gMonFootprint_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/footprint.1bpp"); + +const u32 gMonStillFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/front.4bpp.lz"); +const u32 gMonPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/normal.gbapal.lz"); +const u32 gMonBackPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/back.4bpp.lz"); +const u32 gMonShinyPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/shiny.gbapal.lz"); +const u8 gMonIcon_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/icon.4bpp"); +const u8 gMonFootprint_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/footprint.1bpp"); + +const u32 gMonStillFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/front.4bpp.lz"); +const u32 gMonPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/normal.gbapal.lz"); +const u32 gMonBackPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/back.4bpp.lz"); +const u32 gMonShinyPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/shiny.gbapal.lz"); +const u8 gMonIcon_Muk[] = INCBIN_U8("graphics/pokemon/muk/icon.4bpp"); +const u8 gMonFootprint_Muk[] = INCBIN_U8("graphics/pokemon/muk/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/front.4bpp.lz"); +const u32 gMonPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/normal.gbapal.lz"); +const u32 gMonBackPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/back.4bpp.lz"); +const u32 gMonShinyPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/shiny.gbapal.lz"); +const u8 gMonIcon_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/icon.4bpp"); +const u8 gMonFootprint_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/front.4bpp.lz"); +const u32 gMonPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/normal.gbapal.lz"); +const u32 gMonBackPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/back.4bpp.lz"); +const u32 gMonShinyPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/shiny.gbapal.lz"); +const u8 gMonIcon_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/icon.4bpp"); +const u8 gMonFootprint_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/front.4bpp.lz"); +const u32 gMonPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/normal.gbapal.lz"); +const u32 gMonBackPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/back.4bpp.lz"); +const u32 gMonShinyPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/shiny.gbapal.lz"); +const u8 gMonIcon_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/icon.4bpp"); +const u8 gMonFootprint_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/footprint.1bpp"); + +const u32 gMonStillFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/front.4bpp.lz"); +const u32 gMonPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/normal.gbapal.lz"); +const u32 gMonBackPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/back.4bpp.lz"); +const u32 gMonShinyPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/shiny.gbapal.lz"); +const u8 gMonIcon_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/icon.4bpp"); +const u8 gMonFootprint_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/front.4bpp.lz"); +const u32 gMonPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/normal.gbapal.lz"); +const u32 gMonBackPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/back.4bpp.lz"); +const u32 gMonShinyPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/shiny.gbapal.lz"); +const u8 gMonIcon_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/icon.4bpp"); +const u8 gMonFootprint_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/front.4bpp.lz"); +const u32 gMonPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/normal.gbapal.lz"); +const u32 gMonBackPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/back.4bpp.lz"); +const u32 gMonShinyPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/shiny.gbapal.lz"); +const u8 gMonIcon_Onix[] = INCBIN_U8("graphics/pokemon/onix/icon.4bpp"); +const u8 gMonFootprint_Onix[] = INCBIN_U8("graphics/pokemon/onix/footprint.1bpp"); + +const u32 gMonStillFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/front.4bpp.lz"); +const u32 gMonPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/normal.gbapal.lz"); +const u32 gMonBackPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/back.4bpp.lz"); +const u32 gMonShinyPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/shiny.gbapal.lz"); +const u8 gMonIcon_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/icon.4bpp"); +const u8 gMonFootprint_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/front.4bpp.lz"); +const u32 gMonPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/normal.gbapal.lz"); +const u32 gMonBackPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/back.4bpp.lz"); +const u32 gMonShinyPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/shiny.gbapal.lz"); +const u8 gMonIcon_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/icon.4bpp"); +const u8 gMonFootprint_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/footprint.1bpp"); + +const u32 gMonStillFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/front.4bpp.lz"); +const u32 gMonPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/normal.gbapal.lz"); +const u32 gMonBackPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/back.4bpp.lz"); +const u32 gMonShinyPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/shiny.gbapal.lz"); +const u8 gMonIcon_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/icon.4bpp"); +const u8 gMonFootprint_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/front.4bpp.lz"); +const u32 gMonPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/normal.gbapal.lz"); +const u32 gMonBackPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/back.4bpp.lz"); +const u32 gMonShinyPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/shiny.gbapal.lz"); +const u8 gMonIcon_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/icon.4bpp"); +const u8 gMonFootprint_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/footprint.1bpp"); + +const u32 gMonStillFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/front.4bpp.lz"); +const u32 gMonPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/normal.gbapal.lz"); +const u32 gMonBackPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/back.4bpp.lz"); +const u32 gMonShinyPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/shiny.gbapal.lz"); +const u8 gMonIcon_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/icon.4bpp"); +const u8 gMonFootprint_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/footprint.1bpp"); + +const u32 gMonStillFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/front.4bpp.lz"); +const u32 gMonPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/normal.gbapal.lz"); +const u32 gMonBackPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/back.4bpp.lz"); +const u32 gMonShinyPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/shiny.gbapal.lz"); +const u8 gMonIcon_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/icon.4bpp"); +const u8 gMonFootprint_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/footprint.1bpp"); + +const u32 gMonStillFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/front.4bpp.lz"); +const u32 gMonPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/normal.gbapal.lz"); +const u32 gMonBackPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/back.4bpp.lz"); +const u32 gMonShinyPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/shiny.gbapal.lz"); +const u8 gMonIcon_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/icon.4bpp"); +const u8 gMonFootprint_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/footprint.1bpp"); + +const u32 gMonStillFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/front.4bpp.lz"); +const u32 gMonPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/normal.gbapal.lz"); +const u32 gMonBackPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/back.4bpp.lz"); +const u32 gMonShinyPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/shiny.gbapal.lz"); +const u8 gMonIcon_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/icon.4bpp"); +const u8 gMonFootprint_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/front.4bpp.lz"); +const u32 gMonPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/normal.gbapal.lz"); +const u32 gMonBackPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/back.4bpp.lz"); +const u32 gMonShinyPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/shiny.gbapal.lz"); +const u8 gMonIcon_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/icon.4bpp"); +const u8 gMonFootprint_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/footprint.1bpp"); + +const u32 gMonStillFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/front.4bpp.lz"); +const u32 gMonPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/normal.gbapal.lz"); +const u32 gMonBackPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/back.4bpp.lz"); +const u32 gMonShinyPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/shiny.gbapal.lz"); +const u8 gMonIcon_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/icon.4bpp"); +const u8 gMonFootprint_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/front.4bpp.lz"); +const u32 gMonPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/normal.gbapal.lz"); +const u32 gMonBackPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/back.4bpp.lz"); +const u32 gMonShinyPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/shiny.gbapal.lz"); +const u8 gMonIcon_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/icon.4bpp"); +const u8 gMonFootprint_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/front.4bpp.lz"); +const u32 gMonPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/normal.gbapal.lz"); +const u32 gMonBackPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/back.4bpp.lz"); +const u32 gMonShinyPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/shiny.gbapal.lz"); +const u8 gMonIcon_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/icon.4bpp"); +const u8 gMonFootprint_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/front.4bpp.lz"); +const u32 gMonPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/normal.gbapal.lz"); +const u32 gMonBackPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/back.4bpp.lz"); +const u32 gMonShinyPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/shiny.gbapal.lz"); +const u8 gMonIcon_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/icon.4bpp"); +const u8 gMonFootprint_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/footprint.1bpp"); + +const u32 gMonStillFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/front.4bpp.lz"); +const u32 gMonPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/normal.gbapal.lz"); +const u32 gMonBackPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/back.4bpp.lz"); +const u32 gMonShinyPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/shiny.gbapal.lz"); +const u8 gMonIcon_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/icon.4bpp"); +const u8 gMonFootprint_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/footprint.1bpp"); + +const u32 gMonStillFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/front.4bpp.lz"); +const u32 gMonPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/normal.gbapal.lz"); +const u32 gMonBackPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/back.4bpp.lz"); +const u32 gMonShinyPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/shiny.gbapal.lz"); +const u8 gMonIcon_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/icon.4bpp"); +const u8 gMonFootprint_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/footprint.1bpp"); + +const u32 gMonStillFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/front.4bpp.lz"); +const u32 gMonPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/normal.gbapal.lz"); +const u32 gMonBackPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/back.4bpp.lz"); +const u32 gMonShinyPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/shiny.gbapal.lz"); +const u8 gMonIcon_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/icon.4bpp"); +const u8 gMonFootprint_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/footprint.1bpp"); + +const u32 gMonStillFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/front.4bpp.lz"); +const u32 gMonPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/normal.gbapal.lz"); +const u32 gMonBackPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/back.4bpp.lz"); +const u32 gMonShinyPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/shiny.gbapal.lz"); +const u8 gMonIcon_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/icon.4bpp"); +const u8 gMonFootprint_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/front.4bpp.lz"); +const u32 gMonPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/normal.gbapal.lz"); +const u32 gMonBackPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/back.4bpp.lz"); +const u32 gMonShinyPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/shiny.gbapal.lz"); +const u8 gMonIcon_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/icon.4bpp"); +const u8 gMonFootprint_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/front.4bpp.lz"); +const u32 gMonPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/normal.gbapal.lz"); +const u32 gMonBackPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/back.4bpp.lz"); +const u32 gMonShinyPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/shiny.gbapal.lz"); +const u8 gMonIcon_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/icon.4bpp"); +const u8 gMonFootprint_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/front.4bpp.lz"); +const u32 gMonPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/normal.gbapal.lz"); +const u32 gMonBackPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/back.4bpp.lz"); +const u32 gMonShinyPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/shiny.gbapal.lz"); +const u8 gMonIcon_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/icon.4bpp"); +const u8 gMonFootprint_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/footprint.1bpp"); + +const u32 gMonStillFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/front.4bpp.lz"); +const u32 gMonPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/normal.gbapal.lz"); +const u32 gMonBackPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/back.4bpp.lz"); +const u32 gMonShinyPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/shiny.gbapal.lz"); +const u8 gMonIcon_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/icon.4bpp"); +const u8 gMonFootprint_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/footprint.1bpp"); + +const u32 gMonStillFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/front.4bpp.lz"); +const u32 gMonPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/normal.gbapal.lz"); +const u32 gMonBackPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/back.4bpp.lz"); +const u32 gMonShinyPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/shiny.gbapal.lz"); +const u8 gMonIcon_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/icon.4bpp"); +const u8 gMonFootprint_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/footprint.1bpp"); + +const u32 gMonStillFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/front.4bpp.lz"); +const u32 gMonPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/normal.gbapal.lz"); +const u32 gMonBackPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/back.4bpp.lz"); +const u32 gMonShinyPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/shiny.gbapal.lz"); +const u8 gMonIcon_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/icon.4bpp"); +const u8 gMonFootprint_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/footprint.1bpp"); + +const u32 gMonStillFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/front.4bpp.lz"); +const u32 gMonPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/normal.gbapal.lz"); +const u32 gMonBackPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/back.4bpp.lz"); +const u32 gMonShinyPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/shiny.gbapal.lz"); +const u8 gMonIcon_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/icon.4bpp"); +const u8 gMonFootprint_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/footprint.1bpp"); + +const u32 gMonStillFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/front.4bpp.lz"); +const u32 gMonPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/normal.gbapal.lz"); +const u32 gMonBackPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/back.4bpp.lz"); +const u32 gMonShinyPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/shiny.gbapal.lz"); +const u8 gMonIcon_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/icon.4bpp"); +const u8 gMonFootprint_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/front.4bpp.lz"); +const u32 gMonPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/normal.gbapal.lz"); +const u32 gMonBackPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/back.4bpp.lz"); +const u32 gMonShinyPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/shiny.gbapal.lz"); +const u8 gMonIcon_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/icon.4bpp"); +const u8 gMonFootprint_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/front.4bpp.lz"); +const u32 gMonPalette_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/normal.gbapal.lz"); +const u32 gMonBackPic_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/back.4bpp.lz"); +const u32 gMonShinyPalette_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/shiny.gbapal.lz"); +const u8 gMonIcon_Mrmime[] = INCBIN_U8("graphics/pokemon/mr_mime/icon.4bpp"); +const u8 gMonFootprint_Mrmime[] = INCBIN_U8("graphics/pokemon/mr_mime/footprint.1bpp"); + +const u32 gMonStillFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/front.4bpp.lz"); +const u32 gMonPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/normal.gbapal.lz"); +const u32 gMonBackPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/back.4bpp.lz"); +const u32 gMonShinyPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/shiny.gbapal.lz"); +const u8 gMonIcon_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/icon.4bpp"); +const u8 gMonFootprint_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/footprint.1bpp"); + +const u32 gMonStillFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/front.4bpp.lz"); +const u32 gMonPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/normal.gbapal.lz"); +const u32 gMonBackPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/back.4bpp.lz"); +const u32 gMonShinyPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/shiny.gbapal.lz"); +const u8 gMonIcon_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/icon.4bpp"); +const u8 gMonFootprint_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/footprint.1bpp"); + +const u32 gMonStillFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/front.4bpp.lz"); +const u32 gMonPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/normal.gbapal.lz"); +const u32 gMonBackPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/back.4bpp.lz"); +const u32 gMonShinyPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/shiny.gbapal.lz"); +const u8 gMonIcon_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/icon.4bpp"); +const u8 gMonFootprint_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/front.4bpp.lz"); +const u32 gMonPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/normal.gbapal.lz"); +const u32 gMonBackPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/back.4bpp.lz"); +const u32 gMonShinyPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/shiny.gbapal.lz"); +const u8 gMonIcon_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/icon.4bpp"); +const u8 gMonFootprint_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/front.4bpp.lz"); +const u32 gMonPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/normal.gbapal.lz"); +const u32 gMonBackPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/back.4bpp.lz"); +const u32 gMonShinyPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/shiny.gbapal.lz"); +const u8 gMonIcon_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/icon.4bpp"); +const u8 gMonFootprint_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/front.4bpp.lz"); +const u32 gMonPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/normal.gbapal.lz"); +const u32 gMonBackPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/back.4bpp.lz"); +const u32 gMonShinyPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/shiny.gbapal.lz"); +const u8 gMonIcon_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/icon.4bpp"); +const u8 gMonFootprint_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/front.4bpp.lz"); +const u32 gMonPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/normal.gbapal.lz"); +const u32 gMonBackPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/back.4bpp.lz"); +const u32 gMonShinyPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/shiny.gbapal.lz"); +const u8 gMonIcon_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/icon.4bpp"); +const u8 gMonFootprint_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/front.4bpp.lz"); +const u32 gMonPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/normal.gbapal.lz"); +const u32 gMonBackPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/back.4bpp.lz"); +const u32 gMonShinyPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/shiny.gbapal.lz"); +const u8 gMonIcon_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/icon.4bpp"); +const u8 gMonFootprint_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/front.4bpp.lz"); +const u32 gMonPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/normal.gbapal.lz"); +const u32 gMonBackPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/back.4bpp.lz"); +const u32 gMonShinyPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/shiny.gbapal.lz"); +const u8 gMonIcon_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/icon.4bpp"); +const u8 gMonFootprint_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/front.4bpp.lz"); +const u32 gMonPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/normal.gbapal.lz"); +const u32 gMonBackPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/back.4bpp.lz"); +const u32 gMonShinyPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/shiny.gbapal.lz"); +const u8 gMonIcon_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/icon.4bpp"); +const u8 gMonFootprint_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/footprint.1bpp"); + +const u32 gMonStillFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/front.4bpp.lz"); +const u32 gMonPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/normal.gbapal.lz"); +const u32 gMonBackPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/back.4bpp.lz"); +const u32 gMonShinyPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/shiny.gbapal.lz"); +const u8 gMonIcon_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/icon.4bpp"); +const u8 gMonFootprint_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/footprint.1bpp"); + +const u32 gMonStillFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/front.4bpp.lz"); +const u32 gMonPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/normal.gbapal.lz"); +const u32 gMonBackPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/back.4bpp.lz"); +const u32 gMonShinyPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/shiny.gbapal.lz"); +const u8 gMonIcon_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/icon.4bpp"); +const u8 gMonFootprint_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/front.4bpp.lz"); +const u32 gMonPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/normal.gbapal.lz"); +const u32 gMonBackPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/back.4bpp.lz"); +const u32 gMonShinyPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/shiny.gbapal.lz"); +const u8 gMonIcon_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/icon.4bpp"); +const u8 gMonFootprint_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/front.4bpp.lz"); +const u32 gMonPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/normal.gbapal.lz"); +const u32 gMonBackPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/back.4bpp.lz"); +const u32 gMonShinyPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/shiny.gbapal.lz"); +const u8 gMonIcon_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/icon.4bpp"); +const u8 gMonFootprint_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/front.4bpp.lz"); +const u32 gMonPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/normal.gbapal.lz"); +const u32 gMonBackPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/back.4bpp.lz"); +const u32 gMonShinyPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/shiny.gbapal.lz"); +const u8 gMonIcon_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/icon.4bpp"); +const u8 gMonFootprint_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/front.4bpp.lz"); +const u32 gMonPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/normal.gbapal.lz"); +const u32 gMonBackPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/back.4bpp.lz"); +const u32 gMonShinyPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/shiny.gbapal.lz"); +const u8 gMonIcon_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/icon.4bpp"); +const u8 gMonFootprint_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/footprint.1bpp"); + +const u32 gMonStillFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/front.4bpp.lz"); +const u32 gMonPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/normal.gbapal.lz"); +const u32 gMonBackPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/back.4bpp.lz"); +const u32 gMonShinyPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/shiny.gbapal.lz"); +const u8 gMonIcon_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/icon.4bpp"); +const u8 gMonFootprint_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/front.4bpp.lz"); +const u32 gMonPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/normal.gbapal.lz"); +const u32 gMonBackPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/back.4bpp.lz"); +const u32 gMonShinyPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/shiny.gbapal.lz"); +const u8 gMonIcon_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/icon.4bpp"); +const u8 gMonFootprint_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/front.4bpp.lz"); +const u32 gMonPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/normal.gbapal.lz"); +const u32 gMonBackPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/back.4bpp.lz"); +const u32 gMonShinyPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/shiny.gbapal.lz"); +const u8 gMonIcon_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/icon.4bpp"); +const u8 gMonFootprint_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/footprint.1bpp"); + +const u32 gMonStillFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/front.4bpp.lz"); +const u32 gMonPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/normal.gbapal.lz"); +const u32 gMonBackPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/back.4bpp.lz"); +const u32 gMonShinyPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/shiny.gbapal.lz"); +const u8 gMonIcon_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/icon.4bpp"); +const u8 gMonFootprint_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/footprint.1bpp"); + +const u32 gMonStillFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/front.4bpp.lz"); +const u32 gMonPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/normal.gbapal.lz"); +const u32 gMonBackPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/back.4bpp.lz"); +const u32 gMonShinyPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/shiny.gbapal.lz"); +const u8 gMonIcon_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/icon.4bpp"); +const u8 gMonFootprint_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/footprint.1bpp"); + +const u32 gMonStillFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/front.4bpp.lz"); +const u32 gMonPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/normal.gbapal.lz"); +const u32 gMonBackPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/back.4bpp.lz"); +const u32 gMonShinyPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/shiny.gbapal.lz"); +const u8 gMonIcon_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/icon.4bpp"); +const u8 gMonFootprint_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/footprint.1bpp"); + +const u32 gMonStillFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/front.4bpp.lz"); +const u32 gMonPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/normal.gbapal.lz"); +const u32 gMonBackPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/back.4bpp.lz"); +const u32 gMonShinyPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/shiny.gbapal.lz"); +const u8 gMonIcon_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/icon.4bpp"); +const u8 gMonFootprint_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/footprint.1bpp"); + +const u32 gMonStillFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/front.4bpp.lz"); +const u32 gMonPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/normal.gbapal.lz"); +const u32 gMonBackPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/back.4bpp.lz"); +const u32 gMonShinyPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/shiny.gbapal.lz"); +const u8 gMonIcon_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/icon.4bpp"); +const u8 gMonFootprint_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/front.4bpp.lz"); +const u32 gMonPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/normal.gbapal.lz"); +const u32 gMonBackPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/back.4bpp.lz"); +const u32 gMonShinyPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/shiny.gbapal.lz"); +const u8 gMonIcon_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/icon.4bpp"); +const u8 gMonFootprint_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/front.4bpp.lz"); +const u32 gMonPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/normal.gbapal.lz"); +const u32 gMonBackPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/back.4bpp.lz"); +const u32 gMonShinyPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/shiny.gbapal.lz"); +const u8 gMonIcon_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/icon.4bpp"); +const u8 gMonFootprint_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/front.4bpp.lz"); +const u32 gMonPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/normal.gbapal.lz"); +const u32 gMonBackPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/back.4bpp.lz"); +const u32 gMonShinyPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/shiny.gbapal.lz"); +const u8 gMonIcon_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/icon.4bpp"); +const u8 gMonFootprint_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/front.4bpp.lz"); +const u32 gMonPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/normal.gbapal.lz"); +const u32 gMonBackPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/back.4bpp.lz"); +const u32 gMonShinyPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/shiny.gbapal.lz"); +const u8 gMonIcon_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/icon.4bpp"); +const u8 gMonFootprint_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/front.4bpp.lz"); +const u32 gMonPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/normal.gbapal.lz"); +const u32 gMonBackPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/back.4bpp.lz"); +const u32 gMonShinyPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/shiny.gbapal.lz"); +const u8 gMonIcon_Mew[] = INCBIN_U8("graphics/pokemon/mew/icon.4bpp"); +const u8 gMonFootprint_Mew[] = INCBIN_U8("graphics/pokemon/mew/footprint.1bpp"); + +const u32 gMonStillFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/front.4bpp.lz"); +const u32 gMonPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/normal.gbapal.lz"); +const u32 gMonBackPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/back.4bpp.lz"); +const u32 gMonShinyPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/shiny.gbapal.lz"); +const u8 gMonIcon_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/icon.4bpp"); +const u8 gMonFootprint_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/footprint.1bpp"); + +const u32 gMonStillFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/front.4bpp.lz"); +const u32 gMonPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/normal.gbapal.lz"); +const u32 gMonBackPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/back.4bpp.lz"); +const u32 gMonShinyPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/shiny.gbapal.lz"); +const u8 gMonIcon_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/icon.4bpp"); +const u8 gMonFootprint_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/footprint.1bpp"); + +const u32 gMonStillFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/front.4bpp.lz"); +const u32 gMonPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/normal.gbapal.lz"); +const u32 gMonBackPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/back.4bpp.lz"); +const u32 gMonShinyPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/shiny.gbapal.lz"); +const u8 gMonIcon_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/icon.4bpp"); +const u8 gMonFootprint_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/front.4bpp.lz"); +const u32 gMonPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/normal.gbapal.lz"); +const u32 gMonBackPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/back.4bpp.lz"); +const u32 gMonShinyPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/shiny.gbapal.lz"); +const u8 gMonIcon_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/icon.4bpp"); +const u8 gMonFootprint_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/footprint.1bpp"); + +const u32 gMonStillFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/front.4bpp.lz"); +const u32 gMonPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/normal.gbapal.lz"); +const u32 gMonBackPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/back.4bpp.lz"); +const u32 gMonShinyPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/shiny.gbapal.lz"); +const u8 gMonIcon_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/icon.4bpp"); +const u8 gMonFootprint_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/footprint.1bpp"); + +const u32 gMonStillFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/front.4bpp.lz"); +const u32 gMonPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/normal.gbapal.lz"); +const u32 gMonBackPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/back.4bpp.lz"); +const u32 gMonShinyPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/shiny.gbapal.lz"); +const u8 gMonIcon_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/icon.4bpp"); +const u8 gMonFootprint_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/footprint.1bpp"); + +const u32 gMonStillFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/front.4bpp.lz"); +const u32 gMonPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/normal.gbapal.lz"); +const u32 gMonBackPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/back.4bpp.lz"); +const u32 gMonShinyPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/shiny.gbapal.lz"); +const u8 gMonIcon_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/icon.4bpp"); +const u8 gMonFootprint_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/footprint.1bpp"); + +const u32 gMonStillFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/front.4bpp.lz"); +const u32 gMonPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/normal.gbapal.lz"); +const u32 gMonBackPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/back.4bpp.lz"); +const u32 gMonShinyPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/shiny.gbapal.lz"); +const u8 gMonIcon_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/icon.4bpp"); +const u8 gMonFootprint_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/footprint.1bpp"); + +const u32 gMonStillFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/front.4bpp.lz"); +const u32 gMonPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/normal.gbapal.lz"); +const u32 gMonBackPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/back.4bpp.lz"); +const u32 gMonShinyPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/shiny.gbapal.lz"); +const u8 gMonIcon_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/icon.4bpp"); +const u8 gMonFootprint_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/front.4bpp.lz"); +const u32 gMonPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/normal.gbapal.lz"); +const u32 gMonBackPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/back.4bpp.lz"); +const u32 gMonShinyPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/shiny.gbapal.lz"); +const u8 gMonIcon_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/icon.4bpp"); +const u8 gMonFootprint_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/footprint.1bpp"); + +const u32 gMonStillFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/front.4bpp.lz"); +const u32 gMonPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/normal.gbapal.lz"); +const u32 gMonBackPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/back.4bpp.lz"); +const u32 gMonShinyPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/shiny.gbapal.lz"); +const u8 gMonIcon_Furret[] = INCBIN_U8("graphics/pokemon/furret/icon.4bpp"); +const u8 gMonFootprint_Furret[] = INCBIN_U8("graphics/pokemon/furret/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/front.4bpp.lz"); +const u32 gMonPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/normal.gbapal.lz"); +const u32 gMonBackPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/back.4bpp.lz"); +const u32 gMonShinyPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/shiny.gbapal.lz"); +const u8 gMonIcon_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/icon.4bpp"); +const u8 gMonFootprint_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/footprint.1bpp"); + +const u32 gMonStillFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/front.4bpp.lz"); +const u32 gMonPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/normal.gbapal.lz"); +const u32 gMonBackPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/back.4bpp.lz"); +const u32 gMonShinyPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/shiny.gbapal.lz"); +const u8 gMonIcon_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/icon.4bpp"); +const u8 gMonFootprint_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/front.4bpp.lz"); +const u32 gMonPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/normal.gbapal.lz"); +const u32 gMonBackPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/back.4bpp.lz"); +const u32 gMonShinyPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/shiny.gbapal.lz"); +const u8 gMonIcon_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/icon.4bpp"); +const u8 gMonFootprint_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/front.4bpp.lz"); +const u32 gMonPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/normal.gbapal.lz"); +const u32 gMonBackPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/back.4bpp.lz"); +const u32 gMonShinyPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/shiny.gbapal.lz"); +const u8 gMonIcon_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/icon.4bpp"); +const u8 gMonFootprint_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/footprint.1bpp"); + +const u32 gMonStillFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/front.4bpp.lz"); +const u32 gMonPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/normal.gbapal.lz"); +const u32 gMonBackPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/back.4bpp.lz"); +const u32 gMonShinyPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/shiny.gbapal.lz"); +const u8 gMonIcon_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/icon.4bpp"); +const u8 gMonFootprint_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/front.4bpp.lz"); +const u32 gMonPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/normal.gbapal.lz"); +const u32 gMonBackPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/back.4bpp.lz"); +const u32 gMonShinyPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/shiny.gbapal.lz"); +const u8 gMonIcon_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/icon.4bpp"); +const u8 gMonFootprint_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/footprint.1bpp"); + +const u32 gMonStillFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/front.4bpp.lz"); +const u32 gMonPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/normal.gbapal.lz"); +const u32 gMonBackPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/back.4bpp.lz"); +const u32 gMonShinyPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/shiny.gbapal.lz"); +const u8 gMonIcon_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/icon.4bpp"); +const u8 gMonFootprint_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/footprint.1bpp"); + +const u32 gMonStillFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/front.4bpp.lz"); +const u32 gMonPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/normal.gbapal.lz"); +const u32 gMonBackPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/back.4bpp.lz"); +const u32 gMonShinyPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/shiny.gbapal.lz"); +const u8 gMonIcon_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/icon.4bpp"); +const u8 gMonFootprint_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/front.4bpp.lz"); +const u32 gMonPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/normal.gbapal.lz"); +const u32 gMonBackPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/back.4bpp.lz"); +const u32 gMonShinyPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/shiny.gbapal.lz"); +const u8 gMonIcon_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/icon.4bpp"); +const u8 gMonFootprint_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/front.4bpp.lz"); +const u32 gMonPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/normal.gbapal.lz"); +const u32 gMonBackPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/back.4bpp.lz"); +const u32 gMonShinyPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/shiny.gbapal.lz"); +const u8 gMonIcon_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/icon.4bpp"); +const u8 gMonFootprint_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/front.4bpp.lz"); +const u32 gMonPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/normal.gbapal.lz"); +const u32 gMonBackPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/back.4bpp.lz"); +const u32 gMonShinyPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/shiny.gbapal.lz"); +const u8 gMonIcon_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/icon.4bpp"); +const u8 gMonFootprint_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/footprint.1bpp"); + +const u32 gMonStillFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/front.4bpp.lz"); +const u32 gMonPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/normal.gbapal.lz"); +const u32 gMonBackPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/back.4bpp.lz"); +const u32 gMonShinyPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/shiny.gbapal.lz"); +const u8 gMonIcon_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/icon.4bpp"); +const u8 gMonFootprint_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/footprint.1bpp"); + +const u32 gMonStillFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/front.4bpp.lz"); +const u32 gMonPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/normal.gbapal.lz"); +const u32 gMonBackPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/back.4bpp.lz"); +const u32 gMonShinyPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/shiny.gbapal.lz"); +const u8 gMonIcon_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/icon.4bpp"); +const u8 gMonFootprint_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/footprint.1bpp"); + +const u32 gMonStillFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/front.4bpp.lz"); +const u32 gMonPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/normal.gbapal.lz"); +const u32 gMonBackPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/back.4bpp.lz"); +const u32 gMonShinyPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/shiny.gbapal.lz"); +const u8 gMonIcon_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/icon.4bpp"); +const u8 gMonFootprint_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/footprint.1bpp"); + +const u32 gMonStillFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/front.4bpp.lz"); +const u32 gMonPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/normal.gbapal.lz"); +const u32 gMonBackPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/back.4bpp.lz"); +const u32 gMonShinyPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/shiny.gbapal.lz"); +const u8 gMonIcon_Natu[] = INCBIN_U8("graphics/pokemon/natu/icon.4bpp"); +const u8 gMonFootprint_Natu[] = INCBIN_U8("graphics/pokemon/natu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/front.4bpp.lz"); +const u32 gMonPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/normal.gbapal.lz"); +const u32 gMonBackPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/back.4bpp.lz"); +const u32 gMonShinyPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/shiny.gbapal.lz"); +const u8 gMonIcon_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/icon.4bpp"); +const u8 gMonFootprint_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/front.4bpp.lz"); +const u32 gMonPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/normal.gbapal.lz"); +const u32 gMonBackPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/back.4bpp.lz"); +const u32 gMonShinyPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/shiny.gbapal.lz"); +const u8 gMonIcon_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/icon.4bpp"); +const u8 gMonFootprint_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/footprint.1bpp"); + +const u32 gMonStillFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/front.4bpp.lz"); +const u32 gMonPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/normal.gbapal.lz"); +const u32 gMonBackPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/back.4bpp.lz"); +const u32 gMonShinyPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/shiny.gbapal.lz"); +const u8 gMonIcon_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/icon.4bpp"); +const u8 gMonFootprint_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/front.4bpp.lz"); +const u32 gMonPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/normal.gbapal.lz"); +const u32 gMonBackPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/back.4bpp.lz"); +const u32 gMonShinyPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/shiny.gbapal.lz"); +const u8 gMonIcon_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/icon.4bpp"); +const u8 gMonFootprint_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/footprint.1bpp"); + +const u32 gMonStillFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/front.4bpp.lz"); +const u32 gMonPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/normal.gbapal.lz"); +const u32 gMonBackPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/back.4bpp.lz"); +const u32 gMonShinyPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/shiny.gbapal.lz"); +const u8 gMonIcon_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/icon.4bpp"); +const u8 gMonFootprint_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/front.4bpp.lz"); +const u32 gMonPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/normal.gbapal.lz"); +const u32 gMonBackPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/back.4bpp.lz"); +const u32 gMonShinyPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/shiny.gbapal.lz"); +const u8 gMonIcon_Marill[] = INCBIN_U8("graphics/pokemon/marill/icon.4bpp"); +const u8 gMonFootprint_Marill[] = INCBIN_U8("graphics/pokemon/marill/footprint.1bpp"); + +const u32 gMonStillFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/front.4bpp.lz"); +const u32 gMonPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/normal.gbapal.lz"); +const u32 gMonBackPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/back.4bpp.lz"); +const u32 gMonShinyPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/shiny.gbapal.lz"); +const u8 gMonIcon_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/icon.4bpp"); +const u8 gMonFootprint_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/front.4bpp.lz"); +const u32 gMonPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/normal.gbapal.lz"); +const u32 gMonBackPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/back.4bpp.lz"); +const u32 gMonShinyPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/shiny.gbapal.lz"); +const u8 gMonIcon_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/icon.4bpp"); +const u8 gMonFootprint_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/front.4bpp.lz"); +const u32 gMonPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/normal.gbapal.lz"); +const u32 gMonBackPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/back.4bpp.lz"); +const u32 gMonShinyPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/shiny.gbapal.lz"); +const u8 gMonIcon_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/icon.4bpp"); +const u8 gMonFootprint_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/front.4bpp.lz"); +const u32 gMonPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/normal.gbapal.lz"); +const u32 gMonBackPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/back.4bpp.lz"); +const u32 gMonShinyPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/shiny.gbapal.lz"); +const u8 gMonIcon_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/icon.4bpp"); +const u8 gMonFootprint_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/footprint.1bpp"); + +const u32 gMonStillFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/front.4bpp.lz"); +const u32 gMonPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/normal.gbapal.lz"); +const u32 gMonBackPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/back.4bpp.lz"); +const u32 gMonShinyPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/shiny.gbapal.lz"); +const u8 gMonIcon_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/icon.4bpp"); +const u8 gMonFootprint_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/front.4bpp.lz"); +const u32 gMonPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/normal.gbapal.lz"); +const u32 gMonBackPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/back.4bpp.lz"); +const u32 gMonShinyPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/shiny.gbapal.lz"); +const u8 gMonIcon_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/icon.4bpp"); +const u8 gMonFootprint_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/footprint.1bpp"); + +const u32 gMonStillFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/front.4bpp.lz"); +const u32 gMonPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/normal.gbapal.lz"); +const u32 gMonBackPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/back.4bpp.lz"); +const u32 gMonShinyPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/shiny.gbapal.lz"); +const u8 gMonIcon_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/icon.4bpp"); +const u8 gMonFootprint_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/front.4bpp.lz"); +const u32 gMonPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/normal.gbapal.lz"); +const u32 gMonBackPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/back.4bpp.lz"); +const u32 gMonShinyPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/shiny.gbapal.lz"); +const u8 gMonIcon_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/icon.4bpp"); +const u8 gMonFootprint_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/front.4bpp.lz"); +const u32 gMonPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/normal.gbapal.lz"); +const u32 gMonBackPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/back.4bpp.lz"); +const u32 gMonShinyPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/shiny.gbapal.lz"); +const u8 gMonIcon_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/icon.4bpp"); +const u8 gMonFootprint_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/footprint.1bpp"); + +const u32 gMonStillFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/front.4bpp.lz"); +const u32 gMonPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/normal.gbapal.lz"); +const u32 gMonBackPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/back.4bpp.lz"); +const u32 gMonShinyPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/shiny.gbapal.lz"); +const u8 gMonIcon_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/icon.4bpp"); +const u8 gMonFootprint_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/front.4bpp.lz"); +const u32 gMonPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/normal.gbapal.lz"); +const u32 gMonBackPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/back.4bpp.lz"); +const u32 gMonShinyPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/shiny.gbapal.lz"); +const u8 gMonIcon_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/icon.4bpp"); +const u8 gMonFootprint_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/footprint.1bpp"); + +const u32 gMonStillFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/front.4bpp.lz"); +const u32 gMonPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/normal.gbapal.lz"); +const u32 gMonBackPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/back.4bpp.lz"); +const u32 gMonShinyPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/shiny.gbapal.lz"); +const u8 gMonIcon_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/icon.4bpp"); +const u8 gMonFootprint_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/footprint.1bpp"); + +const u32 gMonStillFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/front.4bpp.lz"); +const u32 gMonPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/normal.gbapal.lz"); +const u32 gMonBackPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/back.4bpp.lz"); +const u32 gMonShinyPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/shiny.gbapal.lz"); +const u8 gMonIcon_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/icon.4bpp"); +const u8 gMonFootprint_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/front.4bpp.lz"); +const u32 gMonPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/normal.gbapal.lz"); +const u32 gMonBackPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/back.4bpp.lz"); +const u32 gMonShinyPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/shiny.gbapal.lz"); +const u8 gMonIcon_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/icon.4bpp"); +const u8 gMonFootprint_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/front.4bpp.lz"); +const u32 gMonPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/normal.gbapal.lz"); +const u32 gMonBackPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/back.4bpp.lz"); +const u32 gMonShinyPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/shiny.gbapal.lz"); +const u8 gMonIcon_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/icon.4bpp"); +const u8 gMonFootprint_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/front.4bpp.lz"); +const u32 gMonPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/normal.gbapal.lz"); +const u32 gMonBackPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/back.4bpp.lz"); +const u32 gMonShinyPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/shiny.gbapal.lz"); +const u8 gMonIcon_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/icon.4bpp"); +const u8 gMonFootprint_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/footprint.1bpp"); + +const u32 gMonStillFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/front.4bpp.lz"); +const u32 gMonPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/normal.gbapal.lz"); +const u32 gMonBackPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/back.4bpp.lz"); +const u32 gMonShinyPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/shiny.gbapal.lz"); +const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/icon.4bpp"); +const u8 gMonFootprint_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/footprint.1bpp"); + +const u32 gMonStillFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/front_a.4bpp.lz"); +const u32 gMonPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/normal.gbapal.lz"); +const u32 gMonBackPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/back_a.4bpp.lz"); +const u32 gMonShinyPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/shiny.gbapal.lz"); +const u8 gMonIcon_UnownA[] = INCBIN_U8("graphics/pokemon/unown/icon_a.4bpp"); +const u8 gMonFootprint_Unown[] = INCBIN_U8("graphics/pokemon/unown/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/front.4bpp.lz"); +const u32 gMonPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/normal.gbapal.lz"); +const u32 gMonBackPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/back.4bpp.lz"); +const u32 gMonShinyPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/shiny.gbapal.lz"); +const u8 gMonIcon_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/icon.4bpp"); +const u8 gMonFootprint_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/footprint.1bpp"); + +const u32 gMonStillFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/front.4bpp.lz"); +const u32 gMonPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/normal.gbapal.lz"); +const u32 gMonBackPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/back.4bpp.lz"); +const u32 gMonShinyPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/shiny.gbapal.lz"); +const u8 gMonIcon_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/icon.4bpp"); +const u8 gMonFootprint_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/front.4bpp.lz"); +const u32 gMonPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/normal.gbapal.lz"); +const u32 gMonBackPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/back.4bpp.lz"); +const u32 gMonShinyPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/shiny.gbapal.lz"); +const u8 gMonIcon_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/icon.4bpp"); +const u8 gMonFootprint_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/footprint.1bpp"); + +const u32 gMonStillFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/front.4bpp.lz"); +const u32 gMonPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/normal.gbapal.lz"); +const u32 gMonBackPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/back.4bpp.lz"); +const u32 gMonShinyPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/shiny.gbapal.lz"); +const u8 gMonIcon_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/icon.4bpp"); +const u8 gMonFootprint_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/front.4bpp.lz"); +const u32 gMonPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/normal.gbapal.lz"); +const u32 gMonBackPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/back.4bpp.lz"); +const u32 gMonShinyPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/shiny.gbapal.lz"); +const u8 gMonIcon_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/icon.4bpp"); +const u8 gMonFootprint_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/front.4bpp.lz"); +const u32 gMonPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/normal.gbapal.lz"); +const u32 gMonBackPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/back.4bpp.lz"); +const u32 gMonShinyPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/shiny.gbapal.lz"); +const u8 gMonIcon_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/icon.4bpp"); +const u8 gMonFootprint_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/front.4bpp.lz"); +const u32 gMonPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/normal.gbapal.lz"); +const u32 gMonBackPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/back.4bpp.lz"); +const u32 gMonShinyPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/shiny.gbapal.lz"); +const u8 gMonIcon_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/icon.4bpp"); +const u8 gMonFootprint_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/footprint.1bpp"); + +const u32 gMonStillFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/front.4bpp.lz"); +const u32 gMonPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/normal.gbapal.lz"); +const u32 gMonBackPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/back.4bpp.lz"); +const u32 gMonShinyPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/shiny.gbapal.lz"); +const u8 gMonIcon_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/icon.4bpp"); +const u8 gMonFootprint_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/footprint.1bpp"); + +const u32 gMonStillFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/front.4bpp.lz"); +const u32 gMonPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/normal.gbapal.lz"); +const u32 gMonBackPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/back.4bpp.lz"); +const u32 gMonShinyPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/shiny.gbapal.lz"); +const u8 gMonIcon_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/icon.4bpp"); +const u8 gMonFootprint_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/footprint.1bpp"); + +const u32 gMonStillFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/front.4bpp.lz"); +const u32 gMonPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/normal.gbapal.lz"); +const u32 gMonBackPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/back.4bpp.lz"); +const u32 gMonShinyPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/shiny.gbapal.lz"); +const u8 gMonIcon_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/icon.4bpp"); +const u8 gMonFootprint_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/footprint.1bpp"); + +const u32 gMonStillFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/front.4bpp.lz"); +const u32 gMonPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/normal.gbapal.lz"); +const u32 gMonBackPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/back.4bpp.lz"); +const u32 gMonShinyPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/shiny.gbapal.lz"); +const u8 gMonIcon_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/icon.4bpp"); +const u8 gMonFootprint_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/front.4bpp.lz"); +const u32 gMonPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/normal.gbapal.lz"); +const u32 gMonBackPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/back.4bpp.lz"); +const u32 gMonShinyPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/shiny.gbapal.lz"); +const u8 gMonIcon_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/icon.4bpp"); +const u8 gMonFootprint_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/front.4bpp.lz"); +const u32 gMonPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/normal.gbapal.lz"); +const u32 gMonBackPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/back.4bpp.lz"); +const u32 gMonShinyPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/shiny.gbapal.lz"); +const u8 gMonIcon_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/icon.4bpp"); +const u8 gMonFootprint_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/front.4bpp.lz"); +const u32 gMonPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/normal.gbapal.lz"); +const u32 gMonBackPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/back.4bpp.lz"); +const u32 gMonShinyPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/shiny.gbapal.lz"); +const u8 gMonIcon_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/icon.4bpp"); +const u8 gMonFootprint_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/front.4bpp.lz"); +const u32 gMonPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/normal.gbapal.lz"); +const u32 gMonBackPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/back.4bpp.lz"); +const u32 gMonShinyPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/shiny.gbapal.lz"); +const u8 gMonIcon_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/icon.4bpp"); +const u8 gMonFootprint_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/footprint.1bpp"); +const u32 gMonStillFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/front.4bpp.lz"); +const u32 gMonPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/normal.gbapal.lz"); +const u32 gMonBackPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/back.4bpp.lz"); +const u32 gMonShinyPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/shiny.gbapal.lz"); +const u8 gMonIcon_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/icon.4bpp"); +const u8 gMonFootprint_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/front.4bpp.lz"); +const u32 gMonPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/normal.gbapal.lz"); +const u32 gMonBackPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/back.4bpp.lz"); +const u32 gMonShinyPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/shiny.gbapal.lz"); +const u8 gMonIcon_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/icon.4bpp"); +const u8 gMonFootprint_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/front.4bpp.lz"); +const u32 gMonPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/normal.gbapal.lz"); +const u32 gMonBackPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/back.4bpp.lz"); +const u32 gMonShinyPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/shiny.gbapal.lz"); +const u8 gMonIcon_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/icon.4bpp"); +const u8 gMonFootprint_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/front.4bpp.lz"); +const u32 gMonPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/normal.gbapal.lz"); +const u32 gMonBackPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/back.4bpp.lz"); +const u32 gMonShinyPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/shiny.gbapal.lz"); +const u8 gMonIcon_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/icon.4bpp"); +const u8 gMonFootprint_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/footprint.1bpp"); + +const u32 gMonStillFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/front.4bpp.lz"); +const u32 gMonPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/normal.gbapal.lz"); +const u32 gMonBackPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/back.4bpp.lz"); +const u32 gMonShinyPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/shiny.gbapal.lz"); +const u8 gMonIcon_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/icon.4bpp"); +const u8 gMonFootprint_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/footprint.1bpp"); + +const u32 gMonStillFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/front.4bpp.lz"); +const u32 gMonPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/normal.gbapal.lz"); +const u32 gMonBackPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/back.4bpp.lz"); +const u32 gMonShinyPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/shiny.gbapal.lz"); +const u8 gMonIcon_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/icon.4bpp"); +const u8 gMonFootprint_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/footprint.1bpp"); + +const u32 gMonStillFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/front.4bpp.lz"); +const u32 gMonPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/normal.gbapal.lz"); +const u32 gMonBackPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/back.4bpp.lz"); +const u32 gMonShinyPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/shiny.gbapal.lz"); +const u8 gMonIcon_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/icon.4bpp"); +const u8 gMonFootprint_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/footprint.1bpp"); + +const u32 gMonStillFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/front.4bpp.lz"); +const u32 gMonPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/normal.gbapal.lz"); +const u32 gMonBackPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/back.4bpp.lz"); +const u32 gMonShinyPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/shiny.gbapal.lz"); +const u8 gMonIcon_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/icon.4bpp"); +const u8 gMonFootprint_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/footprint.1bpp"); + +const u32 gMonStillFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/front.4bpp.lz"); +const u32 gMonPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/normal.gbapal.lz"); +const u32 gMonBackPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/back.4bpp.lz"); +const u32 gMonShinyPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/shiny.gbapal.lz"); +const u8 gMonIcon_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/icon.4bpp"); +const u8 gMonFootprint_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/front.4bpp.lz"); +const u32 gMonPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/normal.gbapal.lz"); +const u32 gMonBackPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/back.4bpp.lz"); +const u32 gMonShinyPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/shiny.gbapal.lz"); +const u8 gMonIcon_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/icon.4bpp"); +const u8 gMonFootprint_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/footprint.1bpp"); + +const u32 gMonStillFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/front.4bpp.lz"); +const u32 gMonPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/normal.gbapal.lz"); +const u32 gMonBackPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/back.4bpp.lz"); +const u32 gMonShinyPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/shiny.gbapal.lz"); +const u8 gMonIcon_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/icon.4bpp"); +const u8 gMonFootprint_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/footprint.1bpp"); + +const u32 gMonStillFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/front.4bpp.lz"); +const u32 gMonPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/normal.gbapal.lz"); +const u32 gMonBackPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/back.4bpp.lz"); +const u32 gMonShinyPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/shiny.gbapal.lz"); +const u8 gMonIcon_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/icon.4bpp"); +const u8 gMonFootprint_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/footprint.1bpp"); + +const u32 gMonStillFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/front.4bpp.lz"); +const u32 gMonPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/normal.gbapal.lz"); +const u32 gMonBackPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/back.4bpp.lz"); +const u32 gMonShinyPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/shiny.gbapal.lz"); +const u8 gMonIcon_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/icon.4bpp"); +const u8 gMonFootprint_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/front.4bpp.lz"); +const u32 gMonPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/normal.gbapal.lz"); +const u32 gMonBackPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/back.4bpp.lz"); +const u32 gMonShinyPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/shiny.gbapal.lz"); +const u8 gMonIcon_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/icon.4bpp"); +const u8 gMonFootprint_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/footprint.1bpp"); + +const u32 gMonStillFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/front.4bpp.lz"); +const u32 gMonPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/normal.gbapal.lz"); +const u32 gMonBackPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/back.4bpp.lz"); +const u32 gMonShinyPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/shiny.gbapal.lz"); +const u8 gMonIcon_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/icon.4bpp"); +const u8 gMonFootprint_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/footprint.1bpp"); + +const u32 gMonStillFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/front.4bpp.lz"); +const u32 gMonPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/normal.gbapal.lz"); +const u32 gMonBackPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/back.4bpp.lz"); +const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/shiny.gbapal.lz"); +const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/icon.4bpp"); +const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/footprint.1bpp"); const u32 gMonStillFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/front_pics/porygon2_still_front_pic.4bpp.lz"); const u32 gMonPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/palettes/porygon2_palette.gbapal.lz"); @@ -1628,1196 +1628,1196 @@ const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/palettes/po const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/icons/porygon2_icon.4bpp"); const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/footprints/porygon2_footprint.1bpp"); -const u32 gMonStillFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/front_pics/stantler_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Stantler[] = INCBIN_U32("graphics/pokemon/palettes/stantler_palette.gbapal.lz"); -const u32 gMonBackPic_Stantler[] = INCBIN_U32("graphics/pokemon/back_pics/stantler_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Stantler[] = INCBIN_U32("graphics/pokemon/palettes/stantler_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Stantler[] = INCBIN_U8("graphics/pokemon/icons/stantler_icon.4bpp"); -const u8 gMonFootprint_Stantler[] = INCBIN_U8("graphics/pokemon/footprints/stantler_footprint.1bpp"); - -const u32 gMonStillFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/front_pics/smeargle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/palettes/smeargle_palette.gbapal.lz"); -const u32 gMonBackPic_Smeargle[] = INCBIN_U32("graphics/pokemon/back_pics/smeargle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/palettes/smeargle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Smeargle[] = INCBIN_U8("graphics/pokemon/icons/smeargle_icon.4bpp"); -const u8 gMonFootprint_Smeargle[] = INCBIN_U8("graphics/pokemon/footprints/smeargle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/front_pics/tyrogue_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/palettes/tyrogue_palette.gbapal.lz"); -const u32 gMonBackPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/back_pics/tyrogue_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/palettes/tyrogue_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tyrogue[] = INCBIN_U8("graphics/pokemon/icons/tyrogue_icon.4bpp"); -const u8 gMonFootprint_Tyrogue[] = INCBIN_U8("graphics/pokemon/footprints/tyrogue_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/front_pics/hitmontop_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/palettes/hitmontop_palette.gbapal.lz"); -const u32 gMonBackPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/back_pics/hitmontop_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/palettes/hitmontop_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hitmontop[] = INCBIN_U8("graphics/pokemon/icons/hitmontop_icon.4bpp"); -const u8 gMonFootprint_Hitmontop[] = INCBIN_U8("graphics/pokemon/footprints/hitmontop_footprint.1bpp"); - -const u32 gMonStillFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/front_pics/smoochum_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/palettes/smoochum_palette.gbapal.lz"); -const u32 gMonBackPic_Smoochum[] = INCBIN_U32("graphics/pokemon/back_pics/smoochum_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/palettes/smoochum_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Smoochum[] = INCBIN_U8("graphics/pokemon/icons/smoochum_icon.4bpp"); -const u8 gMonFootprint_Smoochum[] = INCBIN_U8("graphics/pokemon/footprints/smoochum_footprint.1bpp"); - -const u32 gMonStillFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/front_pics/elekid_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Elekid[] = INCBIN_U32("graphics/pokemon/palettes/elekid_palette.gbapal.lz"); -const u32 gMonBackPic_Elekid[] = INCBIN_U32("graphics/pokemon/back_pics/elekid_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Elekid[] = INCBIN_U32("graphics/pokemon/palettes/elekid_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Elekid[] = INCBIN_U8("graphics/pokemon/icons/elekid_icon.4bpp"); -const u8 gMonFootprint_Elekid[] = INCBIN_U8("graphics/pokemon/footprints/elekid_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/front_pics/magby_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magby[] = INCBIN_U32("graphics/pokemon/palettes/magby_palette.gbapal.lz"); -const u32 gMonBackPic_Magby[] = INCBIN_U32("graphics/pokemon/back_pics/magby_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magby[] = INCBIN_U32("graphics/pokemon/palettes/magby_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magby[] = INCBIN_U8("graphics/pokemon/icons/magby_icon.4bpp"); -const u8 gMonFootprint_Magby[] = INCBIN_U8("graphics/pokemon/footprints/magby_footprint.1bpp"); - -const u32 gMonStillFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/front_pics/miltank_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Miltank[] = INCBIN_U32("graphics/pokemon/palettes/miltank_palette.gbapal.lz"); -const u32 gMonBackPic_Miltank[] = INCBIN_U32("graphics/pokemon/back_pics/miltank_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Miltank[] = INCBIN_U32("graphics/pokemon/palettes/miltank_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Miltank[] = INCBIN_U8("graphics/pokemon/icons/miltank_icon.4bpp"); -const u8 gMonFootprint_Miltank[] = INCBIN_U8("graphics/pokemon/footprints/miltank_footprint.1bpp"); - -const u32 gMonStillFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/front_pics/blissey_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Blissey[] = INCBIN_U32("graphics/pokemon/palettes/blissey_palette.gbapal.lz"); -const u32 gMonBackPic_Blissey[] = INCBIN_U32("graphics/pokemon/back_pics/blissey_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Blissey[] = INCBIN_U32("graphics/pokemon/palettes/blissey_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Blissey[] = INCBIN_U8("graphics/pokemon/icons/blissey_icon.4bpp"); -const u8 gMonFootprint_Blissey[] = INCBIN_U8("graphics/pokemon/footprints/blissey_footprint.1bpp"); - -const u32 gMonStillFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/front_pics/raikou_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Raikou[] = INCBIN_U32("graphics/pokemon/palettes/raikou_palette.gbapal.lz"); -const u32 gMonBackPic_Raikou[] = INCBIN_U32("graphics/pokemon/back_pics/raikou_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Raikou[] = INCBIN_U32("graphics/pokemon/palettes/raikou_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Raikou[] = INCBIN_U8("graphics/pokemon/icons/raikou_icon.4bpp"); -const u8 gMonFootprint_Raikou[] = INCBIN_U8("graphics/pokemon/footprints/raikou_footprint.1bpp"); - -const u32 gMonStillFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/front_pics/entei_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Entei[] = INCBIN_U32("graphics/pokemon/palettes/entei_palette.gbapal.lz"); -const u32 gMonBackPic_Entei[] = INCBIN_U32("graphics/pokemon/back_pics/entei_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Entei[] = INCBIN_U32("graphics/pokemon/palettes/entei_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Entei[] = INCBIN_U8("graphics/pokemon/icons/entei_icon.4bpp"); -const u8 gMonFootprint_Entei[] = INCBIN_U8("graphics/pokemon/footprints/entei_footprint.1bpp"); - -const u32 gMonStillFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/front_pics/suicune_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Suicune[] = INCBIN_U32("graphics/pokemon/palettes/suicune_palette.gbapal.lz"); -const u32 gMonBackPic_Suicune[] = INCBIN_U32("graphics/pokemon/back_pics/suicune_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Suicune[] = INCBIN_U32("graphics/pokemon/palettes/suicune_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Suicune[] = INCBIN_U8("graphics/pokemon/icons/suicune_icon.4bpp"); -const u8 gMonFootprint_Suicune[] = INCBIN_U8("graphics/pokemon/footprints/suicune_footprint.1bpp"); - -const u32 gMonStillFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/front_pics/larvitar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/palettes/larvitar_palette.gbapal.lz"); -const u32 gMonBackPic_Larvitar[] = INCBIN_U32("graphics/pokemon/back_pics/larvitar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/palettes/larvitar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Larvitar[] = INCBIN_U8("graphics/pokemon/icons/larvitar_icon.4bpp"); -const u8 gMonFootprint_Larvitar[] = INCBIN_U8("graphics/pokemon/footprints/larvitar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/front_pics/pupitar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/palettes/pupitar_palette.gbapal.lz"); -const u32 gMonBackPic_Pupitar[] = INCBIN_U32("graphics/pokemon/back_pics/pupitar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/palettes/pupitar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pupitar[] = INCBIN_U8("graphics/pokemon/icons/pupitar_icon.4bpp"); -const u8 gMonFootprint_Pupitar[] = INCBIN_U8("graphics/pokemon/footprints/pupitar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/front_pics/tyranitar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/palettes/tyranitar_palette.gbapal.lz"); -const u32 gMonBackPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/back_pics/tyranitar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/palettes/tyranitar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tyranitar[] = INCBIN_U8("graphics/pokemon/icons/tyranitar_icon.4bpp"); -const u8 gMonFootprint_Tyranitar[] = INCBIN_U8("graphics/pokemon/footprints/tyranitar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/front_pics/lugia_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lugia[] = INCBIN_U32("graphics/pokemon/palettes/lugia_palette.gbapal.lz"); -const u32 gMonBackPic_Lugia[] = INCBIN_U32("graphics/pokemon/back_pics/lugia_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lugia[] = INCBIN_U32("graphics/pokemon/palettes/lugia_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lugia[] = INCBIN_U8("graphics/pokemon/icons/lugia_icon.4bpp"); -const u8 gMonFootprint_Lugia[] = INCBIN_U8("graphics/pokemon/footprints/lugia_footprint.1bpp"); - -const u32 gMonStillFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/front_pics/ho_oh_still_front_pic.4bpp.lz"); -const u32 gMonPalette_HoOh[] = INCBIN_U32("graphics/pokemon/palettes/ho_oh_palette.gbapal.lz"); -const u32 gMonBackPic_HoOh[] = INCBIN_U32("graphics/pokemon/back_pics/ho_oh_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_HoOh[] = INCBIN_U32("graphics/pokemon/palettes/ho_oh_shiny_palette.gbapal.lz"); -const u8 gMonIcon_HoOh[] = INCBIN_U8("graphics/pokemon/icons/ho_oh_icon.4bpp"); -const u8 gMonFootprint_HoOh[] = INCBIN_U8("graphics/pokemon/footprints/ho_oh_footprint.1bpp"); - -const u32 gMonStillFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/front_pics/celebi_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Celebi[] = INCBIN_U32("graphics/pokemon/palettes/celebi_palette.gbapal.lz"); -const u32 gMonBackPic_Celebi[] = INCBIN_U32("graphics/pokemon/back_pics/celebi_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Celebi[] = INCBIN_U32("graphics/pokemon/palettes/celebi_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/icons/celebi_icon.4bpp"); -const u8 gMonFootprint_Celebi[] = INCBIN_U8("graphics/pokemon/footprints/celebi_footprint.1bpp"); - -const u32 gMonStillFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/front_pics/double_question_mark_still_front_pic.4bpp.lz"); -const u32 gMonPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/palettes/double_question_mark_palette.gbapal.lz"); -const u32 gMonBackPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/back_pics/double_question_mark_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/palettes/double_question_mark_shiny_palette.gbapal.lz"); - -const u32 gMonStillFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/front_pics/treecko_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Treecko[] = INCBIN_U32("graphics/pokemon/palettes/treecko_palette.gbapal.lz"); -const u32 gMonBackPic_Treecko[] = INCBIN_U32("graphics/pokemon/back_pics/treecko_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Treecko[] = INCBIN_U32("graphics/pokemon/palettes/treecko_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Treecko[] = INCBIN_U8("graphics/pokemon/icons/treecko_icon.4bpp"); -const u8 gMonFootprint_Treecko[] = INCBIN_U8("graphics/pokemon/footprints/treecko_footprint.1bpp"); - -const u32 gMonStillFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/front_pics/grovyle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/palettes/grovyle_palette.gbapal.lz"); -const u32 gMonBackPic_Grovyle[] = INCBIN_U32("graphics/pokemon/back_pics/grovyle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/palettes/grovyle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Grovyle[] = INCBIN_U8("graphics/pokemon/icons/grovyle_icon.4bpp"); -const u8 gMonFootprint_Grovyle[] = INCBIN_U8("graphics/pokemon/footprints/grovyle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/front_pics/sceptile_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/palettes/sceptile_palette.gbapal.lz"); -const u32 gMonBackPic_Sceptile[] = INCBIN_U32("graphics/pokemon/back_pics/sceptile_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/palettes/sceptile_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sceptile[] = INCBIN_U8("graphics/pokemon/icons/sceptile_icon.4bpp"); -const u8 gMonFootprint_Sceptile[] = INCBIN_U8("graphics/pokemon/footprints/sceptile_footprint.1bpp"); - -const u32 gMonStillFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/front_pics/torchic_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Torchic[] = INCBIN_U32("graphics/pokemon/palettes/torchic_palette.gbapal.lz"); -const u32 gMonBackPic_Torchic[] = INCBIN_U32("graphics/pokemon/back_pics/torchic_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Torchic[] = INCBIN_U32("graphics/pokemon/palettes/torchic_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Torchic[] = INCBIN_U8("graphics/pokemon/icons/torchic_icon.4bpp"); -const u8 gMonFootprint_Torchic[] = INCBIN_U8("graphics/pokemon/footprints/torchic_footprint.1bpp"); - -const u32 gMonStillFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/front_pics/combusken_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Combusken[] = INCBIN_U32("graphics/pokemon/palettes/combusken_palette.gbapal.lz"); -const u32 gMonBackPic_Combusken[] = INCBIN_U32("graphics/pokemon/back_pics/combusken_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Combusken[] = INCBIN_U32("graphics/pokemon/palettes/combusken_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Combusken[] = INCBIN_U8("graphics/pokemon/icons/combusken_icon.4bpp"); -const u8 gMonFootprint_Combusken[] = INCBIN_U8("graphics/pokemon/footprints/combusken_footprint.1bpp"); - -const u32 gMonStillFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/front_pics/blaziken_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/palettes/blaziken_palette.gbapal.lz"); -const u32 gMonBackPic_Blaziken[] = INCBIN_U32("graphics/pokemon/back_pics/blaziken_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/palettes/blaziken_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Blaziken[] = INCBIN_U8("graphics/pokemon/icons/blaziken_icon.4bpp"); -const u8 gMonFootprint_Blaziken[] = INCBIN_U8("graphics/pokemon/footprints/blaziken_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/front_pics/mudkip_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/palettes/mudkip_palette.gbapal.lz"); -const u32 gMonBackPic_Mudkip[] = INCBIN_U32("graphics/pokemon/back_pics/mudkip_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/palettes/mudkip_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mudkip[] = INCBIN_U8("graphics/pokemon/icons/mudkip_icon.4bpp"); -const u8 gMonFootprint_Mudkip[] = INCBIN_U8("graphics/pokemon/footprints/mudkip_footprint.1bpp"); - -const u32 gMonStillFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/front_pics/marshtomp_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/palettes/marshtomp_palette.gbapal.lz"); -const u32 gMonBackPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/back_pics/marshtomp_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/palettes/marshtomp_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Marshtomp[] = INCBIN_U8("graphics/pokemon/icons/marshtomp_icon.4bpp"); -const u8 gMonFootprint_Marshtomp[] = INCBIN_U8("graphics/pokemon/footprints/marshtomp_footprint.1bpp"); - -const u32 gMonStillFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/front_pics/swampert_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Swampert[] = INCBIN_U32("graphics/pokemon/palettes/swampert_palette.gbapal.lz"); -const u32 gMonBackPic_Swampert[] = INCBIN_U32("graphics/pokemon/back_pics/swampert_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Swampert[] = INCBIN_U32("graphics/pokemon/palettes/swampert_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Swampert[] = INCBIN_U8("graphics/pokemon/icons/swampert_icon.4bpp"); -const u8 gMonFootprint_Swampert[] = INCBIN_U8("graphics/pokemon/footprints/swampert_footprint.1bpp"); - -const u32 gMonStillFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/front_pics/poochyena_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/palettes/poochyena_palette.gbapal.lz"); -const u32 gMonBackPic_Poochyena[] = INCBIN_U32("graphics/pokemon/back_pics/poochyena_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/palettes/poochyena_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Poochyena[] = INCBIN_U8("graphics/pokemon/icons/poochyena_icon.4bpp"); -const u8 gMonFootprint_Poochyena[] = INCBIN_U8("graphics/pokemon/footprints/poochyena_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/front_pics/mightyena_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/palettes/mightyena_palette.gbapal.lz"); -const u32 gMonBackPic_Mightyena[] = INCBIN_U32("graphics/pokemon/back_pics/mightyena_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/palettes/mightyena_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mightyena[] = INCBIN_U8("graphics/pokemon/icons/mightyena_icon.4bpp"); -const u8 gMonFootprint_Mightyena[] = INCBIN_U8("graphics/pokemon/footprints/mightyena_footprint.1bpp"); - -const u32 gMonStillFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/front_pics/zigzagoon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/palettes/zigzagoon_palette.gbapal.lz"); -const u32 gMonBackPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/back_pics/zigzagoon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/palettes/zigzagoon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Zigzagoon[] = INCBIN_U8("graphics/pokemon/icons/zigzagoon_icon.4bpp"); -const u8 gMonFootprint_Zigzagoon[] = INCBIN_U8("graphics/pokemon/footprints/zigzagoon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/front_pics/linoone_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Linoone[] = INCBIN_U32("graphics/pokemon/palettes/linoone_palette.gbapal.lz"); -const u32 gMonBackPic_Linoone[] = INCBIN_U32("graphics/pokemon/back_pics/linoone_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Linoone[] = INCBIN_U32("graphics/pokemon/palettes/linoone_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Linoone[] = INCBIN_U8("graphics/pokemon/icons/linoone_icon.4bpp"); -const u8 gMonFootprint_Linoone[] = INCBIN_U8("graphics/pokemon/footprints/linoone_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/front_pics/wurmple_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/palettes/wurmple_palette.gbapal.lz"); -const u32 gMonBackPic_Wurmple[] = INCBIN_U32("graphics/pokemon/back_pics/wurmple_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/palettes/wurmple_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wurmple[] = INCBIN_U8("graphics/pokemon/icons/wurmple_icon.4bpp"); -const u8 gMonFootprint_Wurmple[] = INCBIN_U8("graphics/pokemon/footprints/wurmple_footprint.1bpp"); - -const u32 gMonStillFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/front_pics/silcoon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/palettes/silcoon_palette.gbapal.lz"); -const u32 gMonBackPic_Silcoon[] = INCBIN_U32("graphics/pokemon/back_pics/silcoon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/palettes/silcoon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Silcoon[] = INCBIN_U8("graphics/pokemon/icons/silcoon_icon.4bpp"); -const u8 gMonFootprint_Silcoon[] = INCBIN_U8("graphics/pokemon/footprints/silcoon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/front_pics/beautifly_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/palettes/beautifly_palette.gbapal.lz"); -const u32 gMonBackPic_Beautifly[] = INCBIN_U32("graphics/pokemon/back_pics/beautifly_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/palettes/beautifly_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Beautifly[] = INCBIN_U8("graphics/pokemon/icons/beautifly_icon.4bpp"); -const u8 gMonFootprint_Beautifly[] = INCBIN_U8("graphics/pokemon/footprints/beautifly_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/front_pics/cascoon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/palettes/cascoon_palette.gbapal.lz"); -const u32 gMonBackPic_Cascoon[] = INCBIN_U32("graphics/pokemon/back_pics/cascoon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/palettes/cascoon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cascoon[] = INCBIN_U8("graphics/pokemon/icons/cascoon_icon.4bpp"); -const u8 gMonFootprint_Cascoon[] = INCBIN_U8("graphics/pokemon/footprints/cascoon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/front_pics/dustox_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dustox[] = INCBIN_U32("graphics/pokemon/palettes/dustox_palette.gbapal.lz"); -const u32 gMonBackPic_Dustox[] = INCBIN_U32("graphics/pokemon/back_pics/dustox_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dustox[] = INCBIN_U32("graphics/pokemon/palettes/dustox_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dustox[] = INCBIN_U8("graphics/pokemon/icons/dustox_icon.4bpp"); -const u8 gMonFootprint_Dustox[] = INCBIN_U8("graphics/pokemon/footprints/dustox_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/front_pics/lotad_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lotad[] = INCBIN_U32("graphics/pokemon/palettes/lotad_palette.gbapal.lz"); -const u32 gMonBackPic_Lotad[] = INCBIN_U32("graphics/pokemon/back_pics/lotad_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lotad[] = INCBIN_U32("graphics/pokemon/palettes/lotad_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lotad[] = INCBIN_U8("graphics/pokemon/icons/lotad_icon.4bpp"); -const u8 gMonFootprint_Lotad[] = INCBIN_U8("graphics/pokemon/footprints/lotad_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/front_pics/lombre_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lombre[] = INCBIN_U32("graphics/pokemon/palettes/lombre_palette.gbapal.lz"); -const u32 gMonBackPic_Lombre[] = INCBIN_U32("graphics/pokemon/back_pics/lombre_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lombre[] = INCBIN_U32("graphics/pokemon/palettes/lombre_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lombre[] = INCBIN_U8("graphics/pokemon/icons/lombre_icon.4bpp"); -const u8 gMonFootprint_Lombre[] = INCBIN_U8("graphics/pokemon/footprints/lombre_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/front_pics/ludicolo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/palettes/ludicolo_palette.gbapal.lz"); -const u32 gMonBackPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/back_pics/ludicolo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/palettes/ludicolo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ludicolo[] = INCBIN_U8("graphics/pokemon/icons/ludicolo_icon.4bpp"); -const u8 gMonFootprint_Ludicolo[] = INCBIN_U8("graphics/pokemon/footprints/ludicolo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/front_pics/seedot_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Seedot[] = INCBIN_U32("graphics/pokemon/palettes/seedot_palette.gbapal.lz"); -const u32 gMonBackPic_Seedot[] = INCBIN_U32("graphics/pokemon/back_pics/seedot_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Seedot[] = INCBIN_U32("graphics/pokemon/palettes/seedot_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Seedot[] = INCBIN_U8("graphics/pokemon/icons/seedot_icon.4bpp"); -const u8 gMonFootprint_Seedot[] = INCBIN_U8("graphics/pokemon/footprints/seedot_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/front_pics/nuzleaf_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/palettes/nuzleaf_palette.gbapal.lz"); -const u32 gMonBackPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/back_pics/nuzleaf_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/palettes/nuzleaf_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nuzleaf[] = INCBIN_U8("graphics/pokemon/icons/nuzleaf_icon.4bpp"); -const u8 gMonFootprint_Nuzleaf[] = INCBIN_U8("graphics/pokemon/footprints/nuzleaf_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/front_pics/shiftry_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/palettes/shiftry_palette.gbapal.lz"); -const u32 gMonBackPic_Shiftry[] = INCBIN_U32("graphics/pokemon/back_pics/shiftry_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/palettes/shiftry_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shiftry[] = INCBIN_U8("graphics/pokemon/icons/shiftry_icon.4bpp"); -const u8 gMonFootprint_Shiftry[] = INCBIN_U8("graphics/pokemon/footprints/shiftry_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/front_pics/nincada_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nincada[] = INCBIN_U32("graphics/pokemon/palettes/nincada_palette.gbapal.lz"); -const u32 gMonBackPic_Nincada[] = INCBIN_U32("graphics/pokemon/back_pics/nincada_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nincada[] = INCBIN_U32("graphics/pokemon/palettes/nincada_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nincada[] = INCBIN_U8("graphics/pokemon/icons/nincada_icon.4bpp"); -const u8 gMonFootprint_Nincada[] = INCBIN_U8("graphics/pokemon/footprints/nincada_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/front_pics/ninjask_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/palettes/ninjask_palette.gbapal.lz"); -const u32 gMonBackPic_Ninjask[] = INCBIN_U32("graphics/pokemon/back_pics/ninjask_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/palettes/ninjask_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ninjask[] = INCBIN_U8("graphics/pokemon/icons/ninjask_icon.4bpp"); -const u8 gMonFootprint_Ninjask[] = INCBIN_U8("graphics/pokemon/footprints/ninjask_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/front_pics/shedinja_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/palettes/shedinja_palette.gbapal.lz"); -const u32 gMonBackPic_Shedinja[] = INCBIN_U32("graphics/pokemon/back_pics/shedinja_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/palettes/shedinja_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shedinja[] = INCBIN_U8("graphics/pokemon/icons/shedinja_icon.4bpp"); -const u8 gMonFootprint_Shedinja[] = INCBIN_U8("graphics/pokemon/footprints/shedinja_footprint.1bpp"); - -const u32 gMonStillFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/front_pics/taillow_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Taillow[] = INCBIN_U32("graphics/pokemon/palettes/taillow_palette.gbapal.lz"); -const u32 gMonBackPic_Taillow[] = INCBIN_U32("graphics/pokemon/back_pics/taillow_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Taillow[] = INCBIN_U32("graphics/pokemon/palettes/taillow_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Taillow[] = INCBIN_U8("graphics/pokemon/icons/taillow_icon.4bpp"); -const u8 gMonFootprint_Taillow[] = INCBIN_U8("graphics/pokemon/footprints/taillow_footprint.1bpp"); - -const u32 gMonStillFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/front_pics/swellow_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Swellow[] = INCBIN_U32("graphics/pokemon/palettes/swellow_palette.gbapal.lz"); -const u32 gMonBackPic_Swellow[] = INCBIN_U32("graphics/pokemon/back_pics/swellow_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Swellow[] = INCBIN_U32("graphics/pokemon/palettes/swellow_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Swellow[] = INCBIN_U8("graphics/pokemon/icons/swellow_icon.4bpp"); -const u8 gMonFootprint_Swellow[] = INCBIN_U8("graphics/pokemon/footprints/swellow_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/front_pics/shroomish_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/palettes/shroomish_palette.gbapal.lz"); -const u32 gMonBackPic_Shroomish[] = INCBIN_U32("graphics/pokemon/back_pics/shroomish_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/palettes/shroomish_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shroomish[] = INCBIN_U8("graphics/pokemon/icons/shroomish_icon.4bpp"); -const u8 gMonFootprint_Shroomish[] = INCBIN_U8("graphics/pokemon/footprints/shroomish_footprint.1bpp"); - -const u32 gMonStillFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/front_pics/breloom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Breloom[] = INCBIN_U32("graphics/pokemon/palettes/breloom_palette.gbapal.lz"); -const u32 gMonBackPic_Breloom[] = INCBIN_U32("graphics/pokemon/back_pics/breloom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Breloom[] = INCBIN_U32("graphics/pokemon/palettes/breloom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Breloom[] = INCBIN_U8("graphics/pokemon/icons/breloom_icon.4bpp"); -const u8 gMonFootprint_Breloom[] = INCBIN_U8("graphics/pokemon/footprints/breloom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Spinda[] = INCBIN_U32("graphics/pokemon/front_pics/spinda_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Spinda[] = INCBIN_U32("graphics/pokemon/palettes/spinda_palette.gbapal.lz"); -const u32 gMonBackPic_Spinda[] = INCBIN_U32("graphics/pokemon/back_pics/spinda_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Spinda[] = INCBIN_U32("graphics/pokemon/palettes/spinda_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Spinda[] = INCBIN_U8("graphics/pokemon/icons/spinda_icon.4bpp"); -const u8 gMonFootprint_Spinda[] = INCBIN_U8("graphics/pokemon/footprints/spinda_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/front_pics/wingull_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wingull[] = INCBIN_U32("graphics/pokemon/palettes/wingull_palette.gbapal.lz"); -const u32 gMonBackPic_Wingull[] = INCBIN_U32("graphics/pokemon/back_pics/wingull_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wingull[] = INCBIN_U32("graphics/pokemon/palettes/wingull_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wingull[] = INCBIN_U8("graphics/pokemon/icons/wingull_icon.4bpp"); -const u8 gMonFootprint_Wingull[] = INCBIN_U8("graphics/pokemon/footprints/wingull_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/front_pics/pelipper_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/palettes/pelipper_palette.gbapal.lz"); -const u32 gMonBackPic_Pelipper[] = INCBIN_U32("graphics/pokemon/back_pics/pelipper_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/palettes/pelipper_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pelipper[] = INCBIN_U8("graphics/pokemon/icons/pelipper_icon.4bpp"); -const u8 gMonFootprint_Pelipper[] = INCBIN_U8("graphics/pokemon/footprints/pelipper_footprint.1bpp"); - -const u32 gMonStillFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/front_pics/surskit_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Surskit[] = INCBIN_U32("graphics/pokemon/palettes/surskit_palette.gbapal.lz"); -const u32 gMonBackPic_Surskit[] = INCBIN_U32("graphics/pokemon/back_pics/surskit_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Surskit[] = INCBIN_U32("graphics/pokemon/palettes/surskit_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Surskit[] = INCBIN_U8("graphics/pokemon/icons/surskit_icon.4bpp"); -const u8 gMonFootprint_Surskit[] = INCBIN_U8("graphics/pokemon/footprints/surskit_footprint.1bpp"); - -const u32 gMonStillFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/front_pics/masquerain_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/palettes/masquerain_palette.gbapal.lz"); -const u32 gMonBackPic_Masquerain[] = INCBIN_U32("graphics/pokemon/back_pics/masquerain_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/palettes/masquerain_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Masquerain[] = INCBIN_U8("graphics/pokemon/icons/masquerain_icon.4bpp"); -const u8 gMonFootprint_Masquerain[] = INCBIN_U8("graphics/pokemon/footprints/masquerain_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/front_pics/wailmer_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/palettes/wailmer_palette.gbapal.lz"); -const u32 gMonBackPic_Wailmer[] = INCBIN_U32("graphics/pokemon/back_pics/wailmer_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/palettes/wailmer_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wailmer[] = INCBIN_U8("graphics/pokemon/icons/wailmer_icon.4bpp"); -const u8 gMonFootprint_Wailmer[] = INCBIN_U8("graphics/pokemon/footprints/wailmer_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/front_pics/wailord_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wailord[] = INCBIN_U32("graphics/pokemon/palettes/wailord_palette.gbapal.lz"); -const u32 gMonBackPic_Wailord[] = INCBIN_U32("graphics/pokemon/back_pics/wailord_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wailord[] = INCBIN_U32("graphics/pokemon/palettes/wailord_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wailord[] = INCBIN_U8("graphics/pokemon/icons/wailord_icon.4bpp"); -const u8 gMonFootprint_Wailord[] = INCBIN_U8("graphics/pokemon/footprints/wailord_footprint.1bpp"); - -const u32 gMonStillFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/front_pics/skitty_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Skitty[] = INCBIN_U32("graphics/pokemon/palettes/skitty_palette.gbapal.lz"); -const u32 gMonBackPic_Skitty[] = INCBIN_U32("graphics/pokemon/back_pics/skitty_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Skitty[] = INCBIN_U32("graphics/pokemon/palettes/skitty_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Skitty[] = INCBIN_U8("graphics/pokemon/icons/skitty_icon.4bpp"); -const u8 gMonFootprint_Skitty[] = INCBIN_U8("graphics/pokemon/footprints/skitty_footprint.1bpp"); - -const u32 gMonStillFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/front_pics/delcatty_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/palettes/delcatty_palette.gbapal.lz"); -const u32 gMonBackPic_Delcatty[] = INCBIN_U32("graphics/pokemon/back_pics/delcatty_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/palettes/delcatty_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Delcatty[] = INCBIN_U8("graphics/pokemon/icons/delcatty_icon.4bpp"); -const u8 gMonFootprint_Delcatty[] = INCBIN_U8("graphics/pokemon/footprints/delcatty_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/front_pics/kecleon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/palettes/kecleon_palette.gbapal.lz"); -const u32 gMonBackPic_Kecleon[] = INCBIN_U32("graphics/pokemon/back_pics/kecleon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/palettes/kecleon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kecleon[] = INCBIN_U8("graphics/pokemon/icons/kecleon_icon.4bpp"); -const u8 gMonFootprint_Kecleon[] = INCBIN_U8("graphics/pokemon/footprints/kecleon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/front_pics/baltoy_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/palettes/baltoy_palette.gbapal.lz"); -const u32 gMonBackPic_Baltoy[] = INCBIN_U32("graphics/pokemon/back_pics/baltoy_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/palettes/baltoy_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Baltoy[] = INCBIN_U8("graphics/pokemon/icons/baltoy_icon.4bpp"); -const u8 gMonFootprint_Baltoy[] = INCBIN_U8("graphics/pokemon/footprints/baltoy_footprint.1bpp"); - -const u32 gMonStillFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/front_pics/claydol_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Claydol[] = INCBIN_U32("graphics/pokemon/palettes/claydol_palette.gbapal.lz"); -const u32 gMonBackPic_Claydol[] = INCBIN_U32("graphics/pokemon/back_pics/claydol_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Claydol[] = INCBIN_U32("graphics/pokemon/palettes/claydol_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Claydol[] = INCBIN_U8("graphics/pokemon/icons/claydol_icon.4bpp"); -const u8 gMonFootprint_Claydol[] = INCBIN_U8("graphics/pokemon/footprints/claydol_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/front_pics/nosepass_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/palettes/nosepass_palette.gbapal.lz"); -const u32 gMonBackPic_Nosepass[] = INCBIN_U32("graphics/pokemon/back_pics/nosepass_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/palettes/nosepass_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nosepass[] = INCBIN_U8("graphics/pokemon/icons/nosepass_icon.4bpp"); -const u8 gMonFootprint_Nosepass[] = INCBIN_U8("graphics/pokemon/footprints/nosepass_footprint.1bpp"); - -const u32 gMonStillFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/front_pics/torkoal_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/palettes/torkoal_palette.gbapal.lz"); -const u32 gMonBackPic_Torkoal[] = INCBIN_U32("graphics/pokemon/back_pics/torkoal_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/palettes/torkoal_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Torkoal[] = INCBIN_U8("graphics/pokemon/icons/torkoal_icon.4bpp"); -const u8 gMonFootprint_Torkoal[] = INCBIN_U8("graphics/pokemon/footprints/torkoal_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/front_pics/sableye_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sableye[] = INCBIN_U32("graphics/pokemon/palettes/sableye_palette.gbapal.lz"); -const u32 gMonBackPic_Sableye[] = INCBIN_U32("graphics/pokemon/back_pics/sableye_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sableye[] = INCBIN_U32("graphics/pokemon/palettes/sableye_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sableye[] = INCBIN_U8("graphics/pokemon/icons/sableye_icon.4bpp"); -const u8 gMonFootprint_Sableye[] = INCBIN_U8("graphics/pokemon/footprints/sableye_footprint.1bpp"); - -const u32 gMonStillFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/front_pics/barboach_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Barboach[] = INCBIN_U32("graphics/pokemon/palettes/barboach_palette.gbapal.lz"); -const u32 gMonBackPic_Barboach[] = INCBIN_U32("graphics/pokemon/back_pics/barboach_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Barboach[] = INCBIN_U32("graphics/pokemon/palettes/barboach_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Barboach[] = INCBIN_U8("graphics/pokemon/icons/barboach_icon.4bpp"); -const u8 gMonFootprint_Barboach[] = INCBIN_U8("graphics/pokemon/footprints/barboach_footprint.1bpp"); - -const u32 gMonStillFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/front_pics/whiscash_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/palettes/whiscash_palette.gbapal.lz"); -const u32 gMonBackPic_Whiscash[] = INCBIN_U32("graphics/pokemon/back_pics/whiscash_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/palettes/whiscash_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Whiscash[] = INCBIN_U8("graphics/pokemon/icons/whiscash_icon.4bpp"); -const u8 gMonFootprint_Whiscash[] = INCBIN_U8("graphics/pokemon/footprints/whiscash_footprint.1bpp"); - -const u32 gMonStillFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/front_pics/luvdisc_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/palettes/luvdisc_palette.gbapal.lz"); -const u32 gMonBackPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/back_pics/luvdisc_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/palettes/luvdisc_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Luvdisc[] = INCBIN_U8("graphics/pokemon/icons/luvdisc_icon.4bpp"); -const u8 gMonFootprint_Luvdisc[] = INCBIN_U8("graphics/pokemon/footprints/luvdisc_footprint.1bpp"); - -const u32 gMonStillFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/front_pics/corphish_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Corphish[] = INCBIN_U32("graphics/pokemon/palettes/corphish_palette.gbapal.lz"); -const u32 gMonBackPic_Corphish[] = INCBIN_U32("graphics/pokemon/back_pics/corphish_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Corphish[] = INCBIN_U32("graphics/pokemon/palettes/corphish_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Corphish[] = INCBIN_U8("graphics/pokemon/icons/corphish_icon.4bpp"); -const u8 gMonFootprint_Corphish[] = INCBIN_U8("graphics/pokemon/footprints/corphish_footprint.1bpp"); - -const u32 gMonStillFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/front_pics/crawdaunt_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/palettes/crawdaunt_palette.gbapal.lz"); -const u32 gMonBackPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/back_pics/crawdaunt_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/palettes/crawdaunt_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Crawdaunt[] = INCBIN_U8("graphics/pokemon/icons/crawdaunt_icon.4bpp"); -const u8 gMonFootprint_Crawdaunt[] = INCBIN_U8("graphics/pokemon/footprints/crawdaunt_footprint.1bpp"); - -const u32 gMonStillFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/front_pics/feebas_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Feebas[] = INCBIN_U32("graphics/pokemon/palettes/feebas_palette.gbapal.lz"); -const u32 gMonBackPic_Feebas[] = INCBIN_U32("graphics/pokemon/back_pics/feebas_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Feebas[] = INCBIN_U32("graphics/pokemon/palettes/feebas_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Feebas[] = INCBIN_U8("graphics/pokemon/icons/feebas_icon.4bpp"); -const u8 gMonFootprint_Feebas[] = INCBIN_U8("graphics/pokemon/footprints/feebas_footprint.1bpp"); - -const u32 gMonStillFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/front_pics/milotic_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Milotic[] = INCBIN_U32("graphics/pokemon/palettes/milotic_palette.gbapal.lz"); -const u32 gMonBackPic_Milotic[] = INCBIN_U32("graphics/pokemon/back_pics/milotic_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Milotic[] = INCBIN_U32("graphics/pokemon/palettes/milotic_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Milotic[] = INCBIN_U8("graphics/pokemon/icons/milotic_icon.4bpp"); -const u8 gMonFootprint_Milotic[] = INCBIN_U8("graphics/pokemon/footprints/milotic_footprint.1bpp"); - -const u32 gMonStillFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/front_pics/carvanha_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/palettes/carvanha_palette.gbapal.lz"); -const u32 gMonBackPic_Carvanha[] = INCBIN_U32("graphics/pokemon/back_pics/carvanha_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/palettes/carvanha_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Carvanha[] = INCBIN_U8("graphics/pokemon/icons/carvanha_icon.4bpp"); -const u8 gMonFootprint_Carvanha[] = INCBIN_U8("graphics/pokemon/footprints/carvanha_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/front_pics/sharpedo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/palettes/sharpedo_palette.gbapal.lz"); -const u32 gMonBackPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/back_pics/sharpedo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/palettes/sharpedo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sharpedo[] = INCBIN_U8("graphics/pokemon/icons/sharpedo_icon.4bpp"); -const u8 gMonFootprint_Sharpedo[] = INCBIN_U8("graphics/pokemon/footprints/sharpedo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/front_pics/trapinch_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/palettes/trapinch_palette.gbapal.lz"); -const u32 gMonBackPic_Trapinch[] = INCBIN_U32("graphics/pokemon/back_pics/trapinch_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/palettes/trapinch_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Trapinch[] = INCBIN_U8("graphics/pokemon/icons/trapinch_icon.4bpp"); -const u8 gMonFootprint_Trapinch[] = INCBIN_U8("graphics/pokemon/footprints/trapinch_footprint.1bpp"); - -const u32 gMonStillFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/front_pics/vibrava_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/palettes/vibrava_palette.gbapal.lz"); -const u32 gMonBackPic_Vibrava[] = INCBIN_U32("graphics/pokemon/back_pics/vibrava_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/palettes/vibrava_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Vibrava[] = INCBIN_U8("graphics/pokemon/icons/vibrava_icon.4bpp"); -const u8 gMonFootprint_Vibrava[] = INCBIN_U8("graphics/pokemon/footprints/vibrava_footprint.1bpp"); - -const u32 gMonStillFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/front_pics/flygon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Flygon[] = INCBIN_U32("graphics/pokemon/palettes/flygon_palette.gbapal.lz"); -const u32 gMonBackPic_Flygon[] = INCBIN_U32("graphics/pokemon/back_pics/flygon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Flygon[] = INCBIN_U32("graphics/pokemon/palettes/flygon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Flygon[] = INCBIN_U8("graphics/pokemon/icons/flygon_icon.4bpp"); -const u8 gMonFootprint_Flygon[] = INCBIN_U8("graphics/pokemon/footprints/flygon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/front_pics/makuhita_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/palettes/makuhita_palette.gbapal.lz"); -const u32 gMonBackPic_Makuhita[] = INCBIN_U32("graphics/pokemon/back_pics/makuhita_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/palettes/makuhita_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Makuhita[] = INCBIN_U8("graphics/pokemon/icons/makuhita_icon.4bpp"); -const u8 gMonFootprint_Makuhita[] = INCBIN_U8("graphics/pokemon/footprints/makuhita_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/front_pics/hariyama_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/palettes/hariyama_palette.gbapal.lz"); -const u32 gMonBackPic_Hariyama[] = INCBIN_U32("graphics/pokemon/back_pics/hariyama_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/palettes/hariyama_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hariyama[] = INCBIN_U8("graphics/pokemon/icons/hariyama_icon.4bpp"); -const u8 gMonFootprint_Hariyama[] = INCBIN_U8("graphics/pokemon/footprints/hariyama_footprint.1bpp"); - -const u32 gMonStillFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/front_pics/electrike_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Electrike[] = INCBIN_U32("graphics/pokemon/palettes/electrike_palette.gbapal.lz"); -const u32 gMonBackPic_Electrike[] = INCBIN_U32("graphics/pokemon/back_pics/electrike_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Electrike[] = INCBIN_U32("graphics/pokemon/palettes/electrike_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Electrike[] = INCBIN_U8("graphics/pokemon/icons/electrike_icon.4bpp"); -const u8 gMonFootprint_Electrike[] = INCBIN_U8("graphics/pokemon/footprints/electrike_footprint.1bpp"); - -const u32 gMonStillFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/front_pics/manectric_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Manectric[] = INCBIN_U32("graphics/pokemon/palettes/manectric_palette.gbapal.lz"); -const u32 gMonBackPic_Manectric[] = INCBIN_U32("graphics/pokemon/back_pics/manectric_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Manectric[] = INCBIN_U32("graphics/pokemon/palettes/manectric_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Manectric[] = INCBIN_U8("graphics/pokemon/icons/manectric_icon.4bpp"); -const u8 gMonFootprint_Manectric[] = INCBIN_U8("graphics/pokemon/footprints/manectric_footprint.1bpp"); - -const u32 gMonStillFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/front_pics/numel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Numel[] = INCBIN_U32("graphics/pokemon/palettes/numel_palette.gbapal.lz"); -const u32 gMonBackPic_Numel[] = INCBIN_U32("graphics/pokemon/back_pics/numel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Numel[] = INCBIN_U32("graphics/pokemon/palettes/numel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Numel[] = INCBIN_U8("graphics/pokemon/icons/numel_icon.4bpp"); -const u8 gMonFootprint_Numel[] = INCBIN_U8("graphics/pokemon/footprints/numel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/front_pics/camerupt_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/palettes/camerupt_palette.gbapal.lz"); -const u32 gMonBackPic_Camerupt[] = INCBIN_U32("graphics/pokemon/back_pics/camerupt_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/palettes/camerupt_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Camerupt[] = INCBIN_U8("graphics/pokemon/icons/camerupt_icon.4bpp"); -const u8 gMonFootprint_Camerupt[] = INCBIN_U8("graphics/pokemon/footprints/camerupt_footprint.1bpp"); - -const u32 gMonStillFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/front_pics/spheal_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Spheal[] = INCBIN_U32("graphics/pokemon/palettes/spheal_palette.gbapal.lz"); -const u32 gMonBackPic_Spheal[] = INCBIN_U32("graphics/pokemon/back_pics/spheal_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Spheal[] = INCBIN_U32("graphics/pokemon/palettes/spheal_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Spheal[] = INCBIN_U8("graphics/pokemon/icons/spheal_icon.4bpp"); -const u8 gMonFootprint_Spheal[] = INCBIN_U8("graphics/pokemon/footprints/spheal_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/front_pics/sealeo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/palettes/sealeo_palette.gbapal.lz"); -const u32 gMonBackPic_Sealeo[] = INCBIN_U32("graphics/pokemon/back_pics/sealeo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/palettes/sealeo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sealeo[] = INCBIN_U8("graphics/pokemon/icons/sealeo_icon.4bpp"); -const u8 gMonFootprint_Sealeo[] = INCBIN_U8("graphics/pokemon/footprints/sealeo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/front_pics/walrein_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Walrein[] = INCBIN_U32("graphics/pokemon/palettes/walrein_palette.gbapal.lz"); -const u32 gMonBackPic_Walrein[] = INCBIN_U32("graphics/pokemon/back_pics/walrein_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Walrein[] = INCBIN_U32("graphics/pokemon/palettes/walrein_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Walrein[] = INCBIN_U8("graphics/pokemon/icons/walrein_icon.4bpp"); -const u8 gMonFootprint_Walrein[] = INCBIN_U8("graphics/pokemon/footprints/walrein_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/front_pics/cacnea_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/palettes/cacnea_palette.gbapal.lz"); -const u32 gMonBackPic_Cacnea[] = INCBIN_U32("graphics/pokemon/back_pics/cacnea_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/palettes/cacnea_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cacnea[] = INCBIN_U8("graphics/pokemon/icons/cacnea_icon.4bpp"); -const u8 gMonFootprint_Cacnea[] = INCBIN_U8("graphics/pokemon/footprints/cacnea_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/front_pics/cacturne_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/palettes/cacturne_palette.gbapal.lz"); -const u32 gMonBackPic_Cacturne[] = INCBIN_U32("graphics/pokemon/back_pics/cacturne_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/palettes/cacturne_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cacturne[] = INCBIN_U8("graphics/pokemon/icons/cacturne_icon.4bpp"); -const u8 gMonFootprint_Cacturne[] = INCBIN_U8("graphics/pokemon/footprints/cacturne_footprint.1bpp"); - -const u32 gMonStillFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/front_pics/snorunt_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/palettes/snorunt_palette.gbapal.lz"); -const u32 gMonBackPic_Snorunt[] = INCBIN_U32("graphics/pokemon/back_pics/snorunt_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/palettes/snorunt_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Snorunt[] = INCBIN_U8("graphics/pokemon/icons/snorunt_icon.4bpp"); -const u8 gMonFootprint_Snorunt[] = INCBIN_U8("graphics/pokemon/footprints/snorunt_footprint.1bpp"); - -const u32 gMonStillFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/front_pics/glalie_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Glalie[] = INCBIN_U32("graphics/pokemon/palettes/glalie_palette.gbapal.lz"); -const u32 gMonBackPic_Glalie[] = INCBIN_U32("graphics/pokemon/back_pics/glalie_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Glalie[] = INCBIN_U32("graphics/pokemon/palettes/glalie_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Glalie[] = INCBIN_U8("graphics/pokemon/icons/glalie_icon.4bpp"); -const u8 gMonFootprint_Glalie[] = INCBIN_U8("graphics/pokemon/footprints/glalie_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/front_pics/lunatone_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/palettes/lunatone_palette.gbapal.lz"); -const u32 gMonBackPic_Lunatone[] = INCBIN_U32("graphics/pokemon/back_pics/lunatone_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/palettes/lunatone_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lunatone[] = INCBIN_U8("graphics/pokemon/icons/lunatone_icon.4bpp"); -const u8 gMonFootprint_Lunatone[] = INCBIN_U8("graphics/pokemon/footprints/lunatone_footprint.1bpp"); - -const u32 gMonStillFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/front_pics/solrock_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Solrock[] = INCBIN_U32("graphics/pokemon/palettes/solrock_palette.gbapal.lz"); -const u32 gMonBackPic_Solrock[] = INCBIN_U32("graphics/pokemon/back_pics/solrock_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Solrock[] = INCBIN_U32("graphics/pokemon/palettes/solrock_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Solrock[] = INCBIN_U8("graphics/pokemon/icons/solrock_icon.4bpp"); -const u8 gMonFootprint_Solrock[] = INCBIN_U8("graphics/pokemon/footprints/solrock_footprint.1bpp"); - -const u32 gMonStillFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/front_pics/azurill_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Azurill[] = INCBIN_U32("graphics/pokemon/palettes/azurill_palette.gbapal.lz"); -const u32 gMonBackPic_Azurill[] = INCBIN_U32("graphics/pokemon/back_pics/azurill_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Azurill[] = INCBIN_U32("graphics/pokemon/palettes/azurill_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Azurill[] = INCBIN_U8("graphics/pokemon/icons/azurill_icon.4bpp"); -const u8 gMonFootprint_Azurill[] = INCBIN_U8("graphics/pokemon/footprints/azurill_footprint.1bpp"); - -const u32 gMonStillFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/front_pics/spoink_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Spoink[] = INCBIN_U32("graphics/pokemon/palettes/spoink_palette.gbapal.lz"); -const u32 gMonBackPic_Spoink[] = INCBIN_U32("graphics/pokemon/back_pics/spoink_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Spoink[] = INCBIN_U32("graphics/pokemon/palettes/spoink_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Spoink[] = INCBIN_U8("graphics/pokemon/icons/spoink_icon.4bpp"); -const u8 gMonFootprint_Spoink[] = INCBIN_U8("graphics/pokemon/footprints/spoink_footprint.1bpp"); - -const u32 gMonStillFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/front_pics/grumpig_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/palettes/grumpig_palette.gbapal.lz"); -const u32 gMonBackPic_Grumpig[] = INCBIN_U32("graphics/pokemon/back_pics/grumpig_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/palettes/grumpig_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Grumpig[] = INCBIN_U8("graphics/pokemon/icons/grumpig_icon.4bpp"); -const u8 gMonFootprint_Grumpig[] = INCBIN_U8("graphics/pokemon/footprints/grumpig_footprint.1bpp"); - -const u32 gMonStillFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/front_pics/plusle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Plusle[] = INCBIN_U32("graphics/pokemon/palettes/plusle_palette.gbapal.lz"); -const u32 gMonBackPic_Plusle[] = INCBIN_U32("graphics/pokemon/back_pics/plusle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Plusle[] = INCBIN_U32("graphics/pokemon/palettes/plusle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Plusle[] = INCBIN_U8("graphics/pokemon/icons/plusle_icon.4bpp"); -const u8 gMonFootprint_Plusle[] = INCBIN_U8("graphics/pokemon/footprints/plusle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/front_pics/minun_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Minun[] = INCBIN_U32("graphics/pokemon/palettes/minun_palette.gbapal.lz"); -const u32 gMonBackPic_Minun[] = INCBIN_U32("graphics/pokemon/back_pics/minun_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Minun[] = INCBIN_U32("graphics/pokemon/palettes/minun_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Minun[] = INCBIN_U8("graphics/pokemon/icons/minun_icon.4bpp"); -const u8 gMonFootprint_Minun[] = INCBIN_U8("graphics/pokemon/footprints/minun_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/front_pics/mawile_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mawile[] = INCBIN_U32("graphics/pokemon/palettes/mawile_palette.gbapal.lz"); -const u32 gMonBackPic_Mawile[] = INCBIN_U32("graphics/pokemon/back_pics/mawile_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mawile[] = INCBIN_U32("graphics/pokemon/palettes/mawile_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mawile[] = INCBIN_U8("graphics/pokemon/icons/mawile_icon.4bpp"); -const u8 gMonFootprint_Mawile[] = INCBIN_U8("graphics/pokemon/footprints/mawile_footprint.1bpp"); - -const u32 gMonStillFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/front_pics/meditite_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Meditite[] = INCBIN_U32("graphics/pokemon/palettes/meditite_palette.gbapal.lz"); -const u32 gMonBackPic_Meditite[] = INCBIN_U32("graphics/pokemon/back_pics/meditite_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Meditite[] = INCBIN_U32("graphics/pokemon/palettes/meditite_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Meditite[] = INCBIN_U8("graphics/pokemon/icons/meditite_icon.4bpp"); -const u8 gMonFootprint_Meditite[] = INCBIN_U8("graphics/pokemon/footprints/meditite_footprint.1bpp"); - -const u32 gMonStillFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/front_pics/medicham_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Medicham[] = INCBIN_U32("graphics/pokemon/palettes/medicham_palette.gbapal.lz"); -const u32 gMonBackPic_Medicham[] = INCBIN_U32("graphics/pokemon/back_pics/medicham_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Medicham[] = INCBIN_U32("graphics/pokemon/palettes/medicham_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Medicham[] = INCBIN_U8("graphics/pokemon/icons/medicham_icon.4bpp"); -const u8 gMonFootprint_Medicham[] = INCBIN_U8("graphics/pokemon/footprints/medicham_footprint.1bpp"); - -const u32 gMonStillFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/front_pics/swablu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Swablu[] = INCBIN_U32("graphics/pokemon/palettes/swablu_palette.gbapal.lz"); -const u32 gMonBackPic_Swablu[] = INCBIN_U32("graphics/pokemon/back_pics/swablu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Swablu[] = INCBIN_U32("graphics/pokemon/palettes/swablu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Swablu[] = INCBIN_U8("graphics/pokemon/icons/swablu_icon.4bpp"); -const u8 gMonFootprint_Swablu[] = INCBIN_U8("graphics/pokemon/footprints/swablu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/front_pics/altaria_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Altaria[] = INCBIN_U32("graphics/pokemon/palettes/altaria_palette.gbapal.lz"); -const u32 gMonBackPic_Altaria[] = INCBIN_U32("graphics/pokemon/back_pics/altaria_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Altaria[] = INCBIN_U32("graphics/pokemon/palettes/altaria_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Altaria[] = INCBIN_U8("graphics/pokemon/icons/altaria_icon.4bpp"); -const u8 gMonFootprint_Altaria[] = INCBIN_U8("graphics/pokemon/footprints/altaria_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/front_pics/wynaut_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/palettes/wynaut_palette.gbapal.lz"); -const u32 gMonBackPic_Wynaut[] = INCBIN_U32("graphics/pokemon/back_pics/wynaut_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/palettes/wynaut_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wynaut[] = INCBIN_U8("graphics/pokemon/icons/wynaut_icon.4bpp"); -const u8 gMonFootprint_Wynaut[] = INCBIN_U8("graphics/pokemon/footprints/wynaut_footprint.1bpp"); - -const u32 gMonStillFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/front_pics/duskull_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Duskull[] = INCBIN_U32("graphics/pokemon/palettes/duskull_palette.gbapal.lz"); -const u32 gMonBackPic_Duskull[] = INCBIN_U32("graphics/pokemon/back_pics/duskull_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Duskull[] = INCBIN_U32("graphics/pokemon/palettes/duskull_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Duskull[] = INCBIN_U8("graphics/pokemon/icons/duskull_icon.4bpp"); -const u8 gMonFootprint_Duskull[] = INCBIN_U8("graphics/pokemon/footprints/duskull_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/front_pics/dusclops_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/palettes/dusclops_palette.gbapal.lz"); -const u32 gMonBackPic_Dusclops[] = INCBIN_U32("graphics/pokemon/back_pics/dusclops_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/palettes/dusclops_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dusclops[] = INCBIN_U8("graphics/pokemon/icons/dusclops_icon.4bpp"); -const u8 gMonFootprint_Dusclops[] = INCBIN_U8("graphics/pokemon/footprints/dusclops_footprint.1bpp"); - -const u32 gMonStillFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/front_pics/roselia_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Roselia[] = INCBIN_U32("graphics/pokemon/palettes/roselia_palette.gbapal.lz"); -const u32 gMonBackPic_Roselia[] = INCBIN_U32("graphics/pokemon/back_pics/roselia_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Roselia[] = INCBIN_U32("graphics/pokemon/palettes/roselia_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Roselia[] = INCBIN_U8("graphics/pokemon/icons/roselia_icon.4bpp"); -const u8 gMonFootprint_Roselia[] = INCBIN_U8("graphics/pokemon/footprints/roselia_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/front_pics/slakoth_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/palettes/slakoth_palette.gbapal.lz"); -const u32 gMonBackPic_Slakoth[] = INCBIN_U32("graphics/pokemon/back_pics/slakoth_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/palettes/slakoth_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slakoth[] = INCBIN_U8("graphics/pokemon/icons/slakoth_icon.4bpp"); -const u8 gMonFootprint_Slakoth[] = INCBIN_U8("graphics/pokemon/footprints/slakoth_footprint.1bpp"); - -const u32 gMonStillFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/front_pics/vigoroth_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/palettes/vigoroth_palette.gbapal.lz"); -const u32 gMonBackPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/back_pics/vigoroth_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/palettes/vigoroth_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Vigoroth[] = INCBIN_U8("graphics/pokemon/icons/vigoroth_icon.4bpp"); -const u8 gMonFootprint_Vigoroth[] = INCBIN_U8("graphics/pokemon/footprints/vigoroth_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/front_pics/slaking_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slaking[] = INCBIN_U32("graphics/pokemon/palettes/slaking_palette.gbapal.lz"); -const u32 gMonBackPic_Slaking[] = INCBIN_U32("graphics/pokemon/back_pics/slaking_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slaking[] = INCBIN_U32("graphics/pokemon/palettes/slaking_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slaking[] = INCBIN_U8("graphics/pokemon/icons/slaking_icon.4bpp"); -const u8 gMonFootprint_Slaking[] = INCBIN_U8("graphics/pokemon/footprints/slaking_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/front_pics/gulpin_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/palettes/gulpin_palette.gbapal.lz"); -const u32 gMonBackPic_Gulpin[] = INCBIN_U32("graphics/pokemon/back_pics/gulpin_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/palettes/gulpin_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gulpin[] = INCBIN_U8("graphics/pokemon/icons/gulpin_icon.4bpp"); -const u8 gMonFootprint_Gulpin[] = INCBIN_U8("graphics/pokemon/footprints/gulpin_footprint.1bpp"); - -const u32 gMonStillFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/front_pics/swalot_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Swalot[] = INCBIN_U32("graphics/pokemon/palettes/swalot_palette.gbapal.lz"); -const u32 gMonBackPic_Swalot[] = INCBIN_U32("graphics/pokemon/back_pics/swalot_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Swalot[] = INCBIN_U32("graphics/pokemon/palettes/swalot_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Swalot[] = INCBIN_U8("graphics/pokemon/icons/swalot_icon.4bpp"); -const u8 gMonFootprint_Swalot[] = INCBIN_U8("graphics/pokemon/footprints/swalot_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/front_pics/tropius_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tropius[] = INCBIN_U32("graphics/pokemon/palettes/tropius_palette.gbapal.lz"); -const u32 gMonBackPic_Tropius[] = INCBIN_U32("graphics/pokemon/back_pics/tropius_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tropius[] = INCBIN_U32("graphics/pokemon/palettes/tropius_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tropius[] = INCBIN_U8("graphics/pokemon/icons/tropius_icon.4bpp"); -const u8 gMonFootprint_Tropius[] = INCBIN_U8("graphics/pokemon/footprints/tropius_footprint.1bpp"); - -const u32 gMonStillFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/front_pics/whismur_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Whismur[] = INCBIN_U32("graphics/pokemon/palettes/whismur_palette.gbapal.lz"); -const u32 gMonBackPic_Whismur[] = INCBIN_U32("graphics/pokemon/back_pics/whismur_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Whismur[] = INCBIN_U32("graphics/pokemon/palettes/whismur_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Whismur[] = INCBIN_U8("graphics/pokemon/icons/whismur_icon.4bpp"); -const u8 gMonFootprint_Whismur[] = INCBIN_U8("graphics/pokemon/footprints/whismur_footprint.1bpp"); - -const u32 gMonStillFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/front_pics/loudred_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Loudred[] = INCBIN_U32("graphics/pokemon/palettes/loudred_palette.gbapal.lz"); -const u32 gMonBackPic_Loudred[] = INCBIN_U32("graphics/pokemon/back_pics/loudred_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Loudred[] = INCBIN_U32("graphics/pokemon/palettes/loudred_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Loudred[] = INCBIN_U8("graphics/pokemon/icons/loudred_icon.4bpp"); -const u8 gMonFootprint_Loudred[] = INCBIN_U8("graphics/pokemon/footprints/loudred_footprint.1bpp"); - -const u32 gMonStillFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/front_pics/exploud_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Exploud[] = INCBIN_U32("graphics/pokemon/palettes/exploud_palette.gbapal.lz"); -const u32 gMonBackPic_Exploud[] = INCBIN_U32("graphics/pokemon/back_pics/exploud_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Exploud[] = INCBIN_U32("graphics/pokemon/palettes/exploud_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Exploud[] = INCBIN_U8("graphics/pokemon/icons/exploud_icon.4bpp"); -const u8 gMonFootprint_Exploud[] = INCBIN_U8("graphics/pokemon/footprints/exploud_footprint.1bpp"); - -const u32 gMonStillFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/front_pics/clamperl_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/palettes/clamperl_palette.gbapal.lz"); -const u32 gMonBackPic_Clamperl[] = INCBIN_U32("graphics/pokemon/back_pics/clamperl_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/palettes/clamperl_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Clamperl[] = INCBIN_U8("graphics/pokemon/icons/clamperl_icon.4bpp"); -const u8 gMonFootprint_Clamperl[] = INCBIN_U8("graphics/pokemon/footprints/clamperl_footprint.1bpp"); - -const u32 gMonStillFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/front_pics/huntail_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Huntail[] = INCBIN_U32("graphics/pokemon/palettes/huntail_palette.gbapal.lz"); -const u32 gMonBackPic_Huntail[] = INCBIN_U32("graphics/pokemon/back_pics/huntail_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Huntail[] = INCBIN_U32("graphics/pokemon/palettes/huntail_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Huntail[] = INCBIN_U8("graphics/pokemon/icons/huntail_icon.4bpp"); -const u8 gMonFootprint_Huntail[] = INCBIN_U8("graphics/pokemon/footprints/huntail_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/front_pics/gorebyss_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/palettes/gorebyss_palette.gbapal.lz"); -const u32 gMonBackPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/back_pics/gorebyss_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/palettes/gorebyss_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gorebyss[] = INCBIN_U8("graphics/pokemon/icons/gorebyss_icon.4bpp"); -const u8 gMonFootprint_Gorebyss[] = INCBIN_U8("graphics/pokemon/footprints/gorebyss_footprint.1bpp"); - -const u32 gMonStillFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/front_pics/absol_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Absol[] = INCBIN_U32("graphics/pokemon/palettes/absol_palette.gbapal.lz"); -const u32 gMonBackPic_Absol[] = INCBIN_U32("graphics/pokemon/back_pics/absol_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Absol[] = INCBIN_U32("graphics/pokemon/palettes/absol_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Absol[] = INCBIN_U8("graphics/pokemon/icons/absol_icon.4bpp"); -const u8 gMonFootprint_Absol[] = INCBIN_U8("graphics/pokemon/footprints/absol_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/front_pics/shuppet_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/palettes/shuppet_palette.gbapal.lz"); -const u32 gMonBackPic_Shuppet[] = INCBIN_U32("graphics/pokemon/back_pics/shuppet_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/palettes/shuppet_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shuppet[] = INCBIN_U8("graphics/pokemon/icons/shuppet_icon.4bpp"); -const u8 gMonFootprint_Shuppet[] = INCBIN_U8("graphics/pokemon/footprints/shuppet_footprint.1bpp"); - -const u32 gMonStillFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/front_pics/banette_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Banette[] = INCBIN_U32("graphics/pokemon/palettes/banette_palette.gbapal.lz"); -const u32 gMonBackPic_Banette[] = INCBIN_U32("graphics/pokemon/back_pics/banette_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Banette[] = INCBIN_U32("graphics/pokemon/palettes/banette_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Banette[] = INCBIN_U8("graphics/pokemon/icons/banette_icon.4bpp"); -const u8 gMonFootprint_Banette[] = INCBIN_U8("graphics/pokemon/footprints/banette_footprint.1bpp"); - -const u32 gMonStillFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/front_pics/seviper_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Seviper[] = INCBIN_U32("graphics/pokemon/palettes/seviper_palette.gbapal.lz"); -const u32 gMonBackPic_Seviper[] = INCBIN_U32("graphics/pokemon/back_pics/seviper_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Seviper[] = INCBIN_U32("graphics/pokemon/palettes/seviper_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Seviper[] = INCBIN_U8("graphics/pokemon/icons/seviper_icon.4bpp"); -const u8 gMonFootprint_Seviper[] = INCBIN_U8("graphics/pokemon/footprints/seviper_footprint.1bpp"); - -const u32 gMonStillFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/front_pics/zangoose_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/palettes/zangoose_palette.gbapal.lz"); -const u32 gMonBackPic_Zangoose[] = INCBIN_U32("graphics/pokemon/back_pics/zangoose_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/palettes/zangoose_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Zangoose[] = INCBIN_U8("graphics/pokemon/icons/zangoose_icon.4bpp"); -const u8 gMonFootprint_Zangoose[] = INCBIN_U8("graphics/pokemon/footprints/zangoose_footprint.1bpp"); - -const u32 gMonStillFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/front_pics/relicanth_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/palettes/relicanth_palette.gbapal.lz"); -const u32 gMonBackPic_Relicanth[] = INCBIN_U32("graphics/pokemon/back_pics/relicanth_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/palettes/relicanth_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Relicanth[] = INCBIN_U8("graphics/pokemon/icons/relicanth_icon.4bpp"); -const u8 gMonFootprint_Relicanth[] = INCBIN_U8("graphics/pokemon/footprints/relicanth_footprint.1bpp"); - -const u32 gMonStillFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/front_pics/aron_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Aron[] = INCBIN_U32("graphics/pokemon/palettes/aron_palette.gbapal.lz"); -const u32 gMonBackPic_Aron[] = INCBIN_U32("graphics/pokemon/back_pics/aron_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Aron[] = INCBIN_U32("graphics/pokemon/palettes/aron_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Aron[] = INCBIN_U8("graphics/pokemon/icons/aron_icon.4bpp"); -const u8 gMonFootprint_Aron[] = INCBIN_U8("graphics/pokemon/footprints/aron_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/front_pics/lairon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lairon[] = INCBIN_U32("graphics/pokemon/palettes/lairon_palette.gbapal.lz"); -const u32 gMonBackPic_Lairon[] = INCBIN_U32("graphics/pokemon/back_pics/lairon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lairon[] = INCBIN_U32("graphics/pokemon/palettes/lairon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lairon[] = INCBIN_U8("graphics/pokemon/icons/lairon_icon.4bpp"); -const u8 gMonFootprint_Lairon[] = INCBIN_U8("graphics/pokemon/footprints/lairon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/front_pics/aggron_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Aggron[] = INCBIN_U32("graphics/pokemon/palettes/aggron_palette.gbapal.lz"); -const u32 gMonBackPic_Aggron[] = INCBIN_U32("graphics/pokemon/back_pics/aggron_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Aggron[] = INCBIN_U32("graphics/pokemon/palettes/aggron_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Aggron[] = INCBIN_U8("graphics/pokemon/icons/aggron_icon.4bpp"); -const u8 gMonFootprint_Aggron[] = INCBIN_U8("graphics/pokemon/footprints/aggron_footprint.1bpp"); - -const u32 gMonStillFrontPic_Castform[] = INCBIN_U32("graphics/pokemon/front_pics/castform_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Castform[] = INCBIN_U32("graphics/pokemon/palettes/castform_palette.gbapal.lz"); -const u32 gMonBackPic_Castform[] = INCBIN_U32("graphics/pokemon/back_pics/castform_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Castform[] = INCBIN_U32("graphics/pokemon/palettes/castform_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Castform[] = INCBIN_U8("graphics/pokemon/icons/castform_icon.4bpp"); -const u8 gMonFootprint_Castform[] = INCBIN_U8("graphics/pokemon/footprints/castform_footprint.1bpp"); - -const u32 gMonStillFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/front_pics/volbeat_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/palettes/volbeat_palette.gbapal.lz"); -const u32 gMonBackPic_Volbeat[] = INCBIN_U32("graphics/pokemon/back_pics/volbeat_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/palettes/volbeat_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Volbeat[] = INCBIN_U8("graphics/pokemon/icons/volbeat_icon.4bpp"); -const u8 gMonFootprint_Volbeat[] = INCBIN_U8("graphics/pokemon/footprints/volbeat_footprint.1bpp"); - -const u32 gMonStillFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/front_pics/illumise_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Illumise[] = INCBIN_U32("graphics/pokemon/palettes/illumise_palette.gbapal.lz"); -const u32 gMonBackPic_Illumise[] = INCBIN_U32("graphics/pokemon/back_pics/illumise_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Illumise[] = INCBIN_U32("graphics/pokemon/palettes/illumise_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Illumise[] = INCBIN_U8("graphics/pokemon/icons/illumise_icon.4bpp"); -const u8 gMonFootprint_Illumise[] = INCBIN_U8("graphics/pokemon/footprints/illumise_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/front_pics/lileep_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lileep[] = INCBIN_U32("graphics/pokemon/palettes/lileep_palette.gbapal.lz"); -const u32 gMonBackPic_Lileep[] = INCBIN_U32("graphics/pokemon/back_pics/lileep_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lileep[] = INCBIN_U32("graphics/pokemon/palettes/lileep_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lileep[] = INCBIN_U8("graphics/pokemon/icons/lileep_icon.4bpp"); -const u8 gMonFootprint_Lileep[] = INCBIN_U8("graphics/pokemon/footprints/lileep_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/front_pics/cradily_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cradily[] = INCBIN_U32("graphics/pokemon/palettes/cradily_palette.gbapal.lz"); -const u32 gMonBackPic_Cradily[] = INCBIN_U32("graphics/pokemon/back_pics/cradily_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cradily[] = INCBIN_U32("graphics/pokemon/palettes/cradily_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cradily[] = INCBIN_U8("graphics/pokemon/icons/cradily_icon.4bpp"); -const u8 gMonFootprint_Cradily[] = INCBIN_U8("graphics/pokemon/footprints/cradily_footprint.1bpp"); - -const u32 gMonStillFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/front_pics/anorith_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Anorith[] = INCBIN_U32("graphics/pokemon/palettes/anorith_palette.gbapal.lz"); -const u32 gMonBackPic_Anorith[] = INCBIN_U32("graphics/pokemon/back_pics/anorith_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Anorith[] = INCBIN_U32("graphics/pokemon/palettes/anorith_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Anorith[] = INCBIN_U8("graphics/pokemon/icons/anorith_icon.4bpp"); -const u8 gMonFootprint_Anorith[] = INCBIN_U8("graphics/pokemon/footprints/anorith_footprint.1bpp"); - -const u32 gMonStillFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/front_pics/armaldo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/palettes/armaldo_palette.gbapal.lz"); -const u32 gMonBackPic_Armaldo[] = INCBIN_U32("graphics/pokemon/back_pics/armaldo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/palettes/armaldo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Armaldo[] = INCBIN_U8("graphics/pokemon/icons/armaldo_icon.4bpp"); -const u8 gMonFootprint_Armaldo[] = INCBIN_U8("graphics/pokemon/footprints/armaldo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/front_pics/ralts_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ralts[] = INCBIN_U32("graphics/pokemon/palettes/ralts_palette.gbapal.lz"); -const u32 gMonBackPic_Ralts[] = INCBIN_U32("graphics/pokemon/back_pics/ralts_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ralts[] = INCBIN_U32("graphics/pokemon/palettes/ralts_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ralts[] = INCBIN_U8("graphics/pokemon/icons/ralts_icon.4bpp"); -const u8 gMonFootprint_Ralts[] = INCBIN_U8("graphics/pokemon/footprints/ralts_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/front_pics/kirlia_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/palettes/kirlia_palette.gbapal.lz"); -const u32 gMonBackPic_Kirlia[] = INCBIN_U32("graphics/pokemon/back_pics/kirlia_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/palettes/kirlia_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kirlia[] = INCBIN_U8("graphics/pokemon/icons/kirlia_icon.4bpp"); -const u8 gMonFootprint_Kirlia[] = INCBIN_U8("graphics/pokemon/footprints/kirlia_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/front_pics/gardevoir_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/palettes/gardevoir_palette.gbapal.lz"); -const u32 gMonBackPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/back_pics/gardevoir_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/palettes/gardevoir_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gardevoir[] = INCBIN_U8("graphics/pokemon/icons/gardevoir_icon.4bpp"); -const u8 gMonFootprint_Gardevoir[] = INCBIN_U8("graphics/pokemon/footprints/gardevoir_footprint.1bpp"); - -const u32 gMonStillFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/front_pics/bagon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Bagon[] = INCBIN_U32("graphics/pokemon/palettes/bagon_palette.gbapal.lz"); -const u32 gMonBackPic_Bagon[] = INCBIN_U32("graphics/pokemon/back_pics/bagon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Bagon[] = INCBIN_U32("graphics/pokemon/palettes/bagon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Bagon[] = INCBIN_U8("graphics/pokemon/icons/bagon_icon.4bpp"); -const u8 gMonFootprint_Bagon[] = INCBIN_U8("graphics/pokemon/footprints/bagon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/front_pics/shelgon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/palettes/shelgon_palette.gbapal.lz"); -const u32 gMonBackPic_Shelgon[] = INCBIN_U32("graphics/pokemon/back_pics/shelgon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/palettes/shelgon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shelgon[] = INCBIN_U8("graphics/pokemon/icons/shelgon_icon.4bpp"); -const u8 gMonFootprint_Shelgon[] = INCBIN_U8("graphics/pokemon/footprints/shelgon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/front_pics/salamence_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Salamence[] = INCBIN_U32("graphics/pokemon/palettes/salamence_palette.gbapal.lz"); -const u32 gMonBackPic_Salamence[] = INCBIN_U32("graphics/pokemon/back_pics/salamence_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Salamence[] = INCBIN_U32("graphics/pokemon/palettes/salamence_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Salamence[] = INCBIN_U8("graphics/pokemon/icons/salamence_icon.4bpp"); -const u8 gMonFootprint_Salamence[] = INCBIN_U8("graphics/pokemon/footprints/salamence_footprint.1bpp"); - -const u32 gMonStillFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/front_pics/beldum_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Beldum[] = INCBIN_U32("graphics/pokemon/palettes/beldum_palette.gbapal.lz"); -const u32 gMonBackPic_Beldum[] = INCBIN_U32("graphics/pokemon/back_pics/beldum_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Beldum[] = INCBIN_U32("graphics/pokemon/palettes/beldum_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Beldum[] = INCBIN_U8("graphics/pokemon/icons/beldum_icon.4bpp"); -const u8 gMonFootprint_Beldum[] = INCBIN_U8("graphics/pokemon/footprints/beldum_footprint.1bpp"); - -const u32 gMonStillFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/front_pics/metang_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Metang[] = INCBIN_U32("graphics/pokemon/palettes/metang_palette.gbapal.lz"); -const u32 gMonBackPic_Metang[] = INCBIN_U32("graphics/pokemon/back_pics/metang_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Metang[] = INCBIN_U32("graphics/pokemon/palettes/metang_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Metang[] = INCBIN_U8("graphics/pokemon/icons/metang_icon.4bpp"); -const u8 gMonFootprint_Metang[] = INCBIN_U8("graphics/pokemon/footprints/metang_footprint.1bpp"); - -const u32 gMonStillFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/front_pics/metagross_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Metagross[] = INCBIN_U32("graphics/pokemon/palettes/metagross_palette.gbapal.lz"); -const u32 gMonBackPic_Metagross[] = INCBIN_U32("graphics/pokemon/back_pics/metagross_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Metagross[] = INCBIN_U32("graphics/pokemon/palettes/metagross_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Metagross[] = INCBIN_U8("graphics/pokemon/icons/metagross_icon.4bpp"); -const u8 gMonFootprint_Metagross[] = INCBIN_U8("graphics/pokemon/footprints/metagross_footprint.1bpp"); - -const u32 gMonStillFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/front_pics/regirock_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Regirock[] = INCBIN_U32("graphics/pokemon/palettes/regirock_palette.gbapal.lz"); -const u32 gMonBackPic_Regirock[] = INCBIN_U32("graphics/pokemon/back_pics/regirock_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Regirock[] = INCBIN_U32("graphics/pokemon/palettes/regirock_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Regirock[] = INCBIN_U8("graphics/pokemon/icons/regirock_icon.4bpp"); -const u8 gMonFootprint_Regirock[] = INCBIN_U8("graphics/pokemon/footprints/regirock_footprint.1bpp"); - -const u32 gMonStillFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/front_pics/regice_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Regice[] = INCBIN_U32("graphics/pokemon/palettes/regice_palette.gbapal.lz"); -const u32 gMonBackPic_Regice[] = INCBIN_U32("graphics/pokemon/back_pics/regice_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Regice[] = INCBIN_U32("graphics/pokemon/palettes/regice_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Regice[] = INCBIN_U8("graphics/pokemon/icons/regice_icon.4bpp"); -const u8 gMonFootprint_Regice[] = INCBIN_U8("graphics/pokemon/footprints/regice_footprint.1bpp"); - -const u32 gMonStillFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/front_pics/registeel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Registeel[] = INCBIN_U32("graphics/pokemon/palettes/registeel_palette.gbapal.lz"); -const u32 gMonBackPic_Registeel[] = INCBIN_U32("graphics/pokemon/back_pics/registeel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Registeel[] = INCBIN_U32("graphics/pokemon/palettes/registeel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Registeel[] = INCBIN_U8("graphics/pokemon/icons/registeel_icon.4bpp"); -const u8 gMonFootprint_Registeel[] = INCBIN_U8("graphics/pokemon/footprints/registeel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/front_pics/kyogre_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/palettes/kyogre_palette.gbapal.lz"); -const u32 gMonBackPic_Kyogre[] = INCBIN_U32("graphics/pokemon/back_pics/kyogre_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/palettes/kyogre_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kyogre[] = INCBIN_U8("graphics/pokemon/icons/kyogre_icon.4bpp"); -const u8 gMonFootprint_Kyogre[] = INCBIN_U8("graphics/pokemon/footprints/kyogre_footprint.1bpp"); - -const u32 gMonStillFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/front_pics/groudon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Groudon[] = INCBIN_U32("graphics/pokemon/palettes/groudon_palette.gbapal.lz"); -const u32 gMonBackPic_Groudon[] = INCBIN_U32("graphics/pokemon/back_pics/groudon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Groudon[] = INCBIN_U32("graphics/pokemon/palettes/groudon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Groudon[] = INCBIN_U8("graphics/pokemon/icons/groudon_icon.4bpp"); -const u8 gMonFootprint_Groudon[] = INCBIN_U8("graphics/pokemon/footprints/groudon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/front_pics/rayquaza_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/palettes/rayquaza_palette.gbapal.lz"); -const u32 gMonBackPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/back_pics/rayquaza_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/palettes/rayquaza_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Rayquaza[] = INCBIN_U8("graphics/pokemon/icons/rayquaza_icon.4bpp"); -const u8 gMonFootprint_Rayquaza[] = INCBIN_U8("graphics/pokemon/footprints/rayquaza_footprint.1bpp"); - -const u32 gMonStillFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/front_pics/latias_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Latias[] = INCBIN_U32("graphics/pokemon/palettes/latias_palette.gbapal.lz"); -const u32 gMonBackPic_Latias[] = INCBIN_U32("graphics/pokemon/back_pics/latias_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Latias[] = INCBIN_U32("graphics/pokemon/palettes/latias_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Latias[] = INCBIN_U8("graphics/pokemon/icons/latias_icon.4bpp"); -const u8 gMonFootprint_Latias[] = INCBIN_U8("graphics/pokemon/footprints/latias_footprint.1bpp"); - -const u32 gMonStillFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/front_pics/latios_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Latios[] = INCBIN_U32("graphics/pokemon/palettes/latios_palette.gbapal.lz"); -const u32 gMonBackPic_Latios[] = INCBIN_U32("graphics/pokemon/back_pics/latios_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Latios[] = INCBIN_U32("graphics/pokemon/palettes/latios_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Latios[] = INCBIN_U8("graphics/pokemon/icons/latios_icon.4bpp"); -const u8 gMonFootprint_Latios[] = INCBIN_U8("graphics/pokemon/footprints/latios_footprint.1bpp"); - -const u32 gMonStillFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/front_pics/jirachi_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/palettes/jirachi_palette.gbapal.lz"); -const u32 gMonBackPic_Jirachi[] = INCBIN_U32("graphics/pokemon/back_pics/jirachi_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/palettes/jirachi_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Jirachi[] = INCBIN_U8("graphics/pokemon/icons/jirachi_icon.4bpp"); -const u8 gMonFootprint_Jirachi[] = INCBIN_U8("graphics/pokemon/footprints/jirachi_footprint.1bpp"); - -const u32 gMonStillFrontPic_Deoxys[] = INCBIN_U32("graphics/pokemon/front_pics/deoxys_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/palettes/deoxys_palette.gbapal.lz"); -const u32 gMonBackPic_Deoxys[] = INCBIN_U32("graphics/pokemon/back_pics/deoxys_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/palettes/deoxys_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Deoxys[] = INCBIN_U8("graphics/pokemon/icons/deoxys_icon.4bpp"); -const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/icons/deoxys_speed_icon.4bpp"); +const u32 gMonStillFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/front.4bpp.lz"); +const u32 gMonPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/normal.gbapal.lz"); +const u32 gMonBackPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/back.4bpp.lz"); +const u32 gMonShinyPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/shiny.gbapal.lz"); +const u8 gMonIcon_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/icon.4bpp"); +const u8 gMonFootprint_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/footprint.1bpp"); + +const u32 gMonStillFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/front.4bpp.lz"); +const u32 gMonPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/normal.gbapal.lz"); +const u32 gMonBackPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/back.4bpp.lz"); +const u32 gMonShinyPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/shiny.gbapal.lz"); +const u8 gMonIcon_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/icon.4bpp"); +const u8 gMonFootprint_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/front.4bpp.lz"); +const u32 gMonPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/normal.gbapal.lz"); +const u32 gMonBackPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/back.4bpp.lz"); +const u32 gMonShinyPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/shiny.gbapal.lz"); +const u8 gMonIcon_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/icon.4bpp"); +const u8 gMonFootprint_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/front.4bpp.lz"); +const u32 gMonPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/normal.gbapal.lz"); +const u32 gMonBackPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/back.4bpp.lz"); +const u32 gMonShinyPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/shiny.gbapal.lz"); +const u8 gMonIcon_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/icon.4bpp"); +const u8 gMonFootprint_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/footprint.1bpp"); + +const u32 gMonStillFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/front.4bpp.lz"); +const u32 gMonPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/normal.gbapal.lz"); +const u32 gMonBackPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/back.4bpp.lz"); +const u32 gMonShinyPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/shiny.gbapal.lz"); +const u8 gMonIcon_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/icon.4bpp"); +const u8 gMonFootprint_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/footprint.1bpp"); + +const u32 gMonStillFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/front.4bpp.lz"); +const u32 gMonPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/normal.gbapal.lz"); +const u32 gMonBackPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/back.4bpp.lz"); +const u32 gMonShinyPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/shiny.gbapal.lz"); +const u8 gMonIcon_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/icon.4bpp"); +const u8 gMonFootprint_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/front.4bpp.lz"); +const u32 gMonPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/normal.gbapal.lz"); +const u32 gMonBackPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/back.4bpp.lz"); +const u32 gMonShinyPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/shiny.gbapal.lz"); +const u8 gMonIcon_Magby[] = INCBIN_U8("graphics/pokemon/magby/icon.4bpp"); +const u8 gMonFootprint_Magby[] = INCBIN_U8("graphics/pokemon/magby/footprint.1bpp"); + +const u32 gMonStillFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/front.4bpp.lz"); +const u32 gMonPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/normal.gbapal.lz"); +const u32 gMonBackPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/back.4bpp.lz"); +const u32 gMonShinyPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/shiny.gbapal.lz"); +const u8 gMonIcon_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/icon.4bpp"); +const u8 gMonFootprint_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/footprint.1bpp"); + +const u32 gMonStillFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/front.4bpp.lz"); +const u32 gMonPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/normal.gbapal.lz"); +const u32 gMonBackPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/back.4bpp.lz"); +const u32 gMonShinyPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/shiny.gbapal.lz"); +const u8 gMonIcon_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/icon.4bpp"); +const u8 gMonFootprint_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/footprint.1bpp"); + +const u32 gMonStillFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/front.4bpp.lz"); +const u32 gMonPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/normal.gbapal.lz"); +const u32 gMonBackPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/back.4bpp.lz"); +const u32 gMonShinyPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/shiny.gbapal.lz"); +const u8 gMonIcon_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/icon.4bpp"); +const u8 gMonFootprint_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/footprint.1bpp"); + +const u32 gMonStillFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/front.4bpp.lz"); +const u32 gMonPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/normal.gbapal.lz"); +const u32 gMonBackPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/back.4bpp.lz"); +const u32 gMonShinyPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/shiny.gbapal.lz"); +const u8 gMonIcon_Entei[] = INCBIN_U8("graphics/pokemon/entei/icon.4bpp"); +const u8 gMonFootprint_Entei[] = INCBIN_U8("graphics/pokemon/entei/footprint.1bpp"); + +const u32 gMonStillFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/front.4bpp.lz"); +const u32 gMonPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/normal.gbapal.lz"); +const u32 gMonBackPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/back.4bpp.lz"); +const u32 gMonShinyPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/shiny.gbapal.lz"); +const u8 gMonIcon_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/icon.4bpp"); +const u8 gMonFootprint_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/footprint.1bpp"); + +const u32 gMonStillFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/front.4bpp.lz"); +const u32 gMonPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/normal.gbapal.lz"); +const u32 gMonBackPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/back.4bpp.lz"); +const u32 gMonShinyPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/shiny.gbapal.lz"); +const u8 gMonIcon_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/icon.4bpp"); +const u8 gMonFootprint_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/front.4bpp.lz"); +const u32 gMonPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/normal.gbapal.lz"); +const u32 gMonBackPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/back.4bpp.lz"); +const u32 gMonShinyPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/shiny.gbapal.lz"); +const u8 gMonIcon_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/icon.4bpp"); +const u8 gMonFootprint_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/front.4bpp.lz"); +const u32 gMonPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/normal.gbapal.lz"); +const u32 gMonBackPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/back.4bpp.lz"); +const u32 gMonShinyPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/shiny.gbapal.lz"); +const u8 gMonIcon_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/icon.4bpp"); +const u8 gMonFootprint_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/front.4bpp.lz"); +const u32 gMonPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/normal.gbapal.lz"); +const u32 gMonBackPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/back.4bpp.lz"); +const u32 gMonShinyPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/shiny.gbapal.lz"); +const u8 gMonIcon_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/icon.4bpp"); +const u8 gMonFootprint_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/footprint.1bpp"); + +const u32 gMonStillFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/front.4bpp.lz"); +const u32 gMonPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/normal.gbapal.lz"); +const u32 gMonBackPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/back.4bpp.lz"); +const u32 gMonShinyPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/shiny.gbapal.lz"); +const u8 gMonIcon_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/icon.4bpp"); +const u8 gMonFootprint_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/footprint.1bpp"); + +const u32 gMonStillFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/front.4bpp.lz"); +const u32 gMonPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/normal.gbapal.lz"); +const u32 gMonBackPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/back.4bpp.lz"); +const u32 gMonShinyPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/shiny.gbapal.lz"); +const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/icon.4bpp"); +const u8 gMonFootprint_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/footprint.1bpp"); + +const u32 gMonStillFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/front.4bpp.lz"); +const u32 gMonPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/normal.gbapal.lz"); +const u32 gMonBackPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/back.4bpp.lz"); +const u32 gMonShinyPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/shiny.gbapal.lz"); + +const u32 gMonStillFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/front.4bpp.lz"); +const u32 gMonPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/normal.gbapal.lz"); +const u32 gMonBackPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/back.4bpp.lz"); +const u32 gMonShinyPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/shiny.gbapal.lz"); +const u8 gMonIcon_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/icon.4bpp"); +const u8 gMonFootprint_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/footprint.1bpp"); + +const u32 gMonStillFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/front.4bpp.lz"); +const u32 gMonPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/normal.gbapal.lz"); +const u32 gMonBackPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/back.4bpp.lz"); +const u32 gMonShinyPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/shiny.gbapal.lz"); +const u8 gMonIcon_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/icon.4bpp"); +const u8 gMonFootprint_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/front.4bpp.lz"); +const u32 gMonPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/normal.gbapal.lz"); +const u32 gMonBackPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/back.4bpp.lz"); +const u32 gMonShinyPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/shiny.gbapal.lz"); +const u8 gMonIcon_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/icon.4bpp"); +const u8 gMonFootprint_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/footprint.1bpp"); + +const u32 gMonStillFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/front.4bpp.lz"); +const u32 gMonPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/normal.gbapal.lz"); +const u32 gMonBackPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/back.4bpp.lz"); +const u32 gMonShinyPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/shiny.gbapal.lz"); +const u8 gMonIcon_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/icon.4bpp"); +const u8 gMonFootprint_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/footprint.1bpp"); + +const u32 gMonStillFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/front.4bpp.lz"); +const u32 gMonPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/normal.gbapal.lz"); +const u32 gMonBackPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/back.4bpp.lz"); +const u32 gMonShinyPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/shiny.gbapal.lz"); +const u8 gMonIcon_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/icon.4bpp"); +const u8 gMonFootprint_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/footprint.1bpp"); + +const u32 gMonStillFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/front.4bpp.lz"); +const u32 gMonPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/normal.gbapal.lz"); +const u32 gMonBackPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/back.4bpp.lz"); +const u32 gMonShinyPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/shiny.gbapal.lz"); +const u8 gMonIcon_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/icon.4bpp"); +const u8 gMonFootprint_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/front.4bpp.lz"); +const u32 gMonPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/normal.gbapal.lz"); +const u32 gMonBackPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/back.4bpp.lz"); +const u32 gMonShinyPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/shiny.gbapal.lz"); +const u8 gMonIcon_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/icon.4bpp"); +const u8 gMonFootprint_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/footprint.1bpp"); + +const u32 gMonStillFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/front.4bpp.lz"); +const u32 gMonPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/normal.gbapal.lz"); +const u32 gMonBackPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/back.4bpp.lz"); +const u32 gMonShinyPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/shiny.gbapal.lz"); +const u8 gMonIcon_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/icon.4bpp"); +const u8 gMonFootprint_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/footprint.1bpp"); + +const u32 gMonStillFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/front.4bpp.lz"); +const u32 gMonPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/normal.gbapal.lz"); +const u32 gMonBackPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/back.4bpp.lz"); +const u32 gMonShinyPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/shiny.gbapal.lz"); +const u8 gMonIcon_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/icon.4bpp"); +const u8 gMonFootprint_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/footprint.1bpp"); + +const u32 gMonStillFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/front.4bpp.lz"); +const u32 gMonPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/normal.gbapal.lz"); +const u32 gMonBackPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/back.4bpp.lz"); +const u32 gMonShinyPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/shiny.gbapal.lz"); +const u8 gMonIcon_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/icon.4bpp"); +const u8 gMonFootprint_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/front.4bpp.lz"); +const u32 gMonPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/normal.gbapal.lz"); +const u32 gMonBackPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/back.4bpp.lz"); +const u32 gMonShinyPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/shiny.gbapal.lz"); +const u8 gMonIcon_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/icon.4bpp"); +const u8 gMonFootprint_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/footprint.1bpp"); + +const u32 gMonStillFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/front.4bpp.lz"); +const u32 gMonPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/normal.gbapal.lz"); +const u32 gMonBackPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/back.4bpp.lz"); +const u32 gMonShinyPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/shiny.gbapal.lz"); +const u8 gMonIcon_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/icon.4bpp"); +const u8 gMonFootprint_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/front.4bpp.lz"); +const u32 gMonPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/normal.gbapal.lz"); +const u32 gMonBackPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/back.4bpp.lz"); +const u32 gMonShinyPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/shiny.gbapal.lz"); +const u8 gMonIcon_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/icon.4bpp"); +const u8 gMonFootprint_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/front.4bpp.lz"); +const u32 gMonPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/normal.gbapal.lz"); +const u32 gMonBackPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/back.4bpp.lz"); +const u32 gMonShinyPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/shiny.gbapal.lz"); +const u8 gMonIcon_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/icon.4bpp"); +const u8 gMonFootprint_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/footprint.1bpp"); + +const u32 gMonStillFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/front.4bpp.lz"); +const u32 gMonPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/normal.gbapal.lz"); +const u32 gMonBackPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/back.4bpp.lz"); +const u32 gMonShinyPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/shiny.gbapal.lz"); +const u8 gMonIcon_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/icon.4bpp"); +const u8 gMonFootprint_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/front.4bpp.lz"); +const u32 gMonPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/normal.gbapal.lz"); +const u32 gMonBackPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/back.4bpp.lz"); +const u32 gMonShinyPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/shiny.gbapal.lz"); +const u8 gMonIcon_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/icon.4bpp"); +const u8 gMonFootprint_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/front.4bpp.lz"); +const u32 gMonPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/normal.gbapal.lz"); +const u32 gMonBackPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/back.4bpp.lz"); +const u32 gMonShinyPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/shiny.gbapal.lz"); +const u8 gMonIcon_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/icon.4bpp"); +const u8 gMonFootprint_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/front.4bpp.lz"); +const u32 gMonPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/normal.gbapal.lz"); +const u32 gMonBackPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/back.4bpp.lz"); +const u32 gMonShinyPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/shiny.gbapal.lz"); +const u8 gMonIcon_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/icon.4bpp"); +const u8 gMonFootprint_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/front.4bpp.lz"); +const u32 gMonPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/normal.gbapal.lz"); +const u32 gMonBackPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/back.4bpp.lz"); +const u32 gMonShinyPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/shiny.gbapal.lz"); +const u8 gMonIcon_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/icon.4bpp"); +const u8 gMonFootprint_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/front.4bpp.lz"); +const u32 gMonPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/normal.gbapal.lz"); +const u32 gMonBackPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/back.4bpp.lz"); +const u32 gMonShinyPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/shiny.gbapal.lz"); +const u8 gMonIcon_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/icon.4bpp"); +const u8 gMonFootprint_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/front.4bpp.lz"); +const u32 gMonPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/normal.gbapal.lz"); +const u32 gMonBackPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/back.4bpp.lz"); +const u32 gMonShinyPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/shiny.gbapal.lz"); +const u8 gMonIcon_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/icon.4bpp"); +const u8 gMonFootprint_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/front.4bpp.lz"); +const u32 gMonPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/normal.gbapal.lz"); +const u32 gMonBackPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/back.4bpp.lz"); +const u32 gMonShinyPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/shiny.gbapal.lz"); +const u8 gMonIcon_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/icon.4bpp"); +const u8 gMonFootprint_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/front.4bpp.lz"); +const u32 gMonPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/normal.gbapal.lz"); +const u32 gMonBackPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/back.4bpp.lz"); +const u32 gMonShinyPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/shiny.gbapal.lz"); +const u8 gMonIcon_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/icon.4bpp"); +const u8 gMonFootprint_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/front.4bpp.lz"); +const u32 gMonPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/normal.gbapal.lz"); +const u32 gMonBackPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/back.4bpp.lz"); +const u32 gMonShinyPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/shiny.gbapal.lz"); +const u8 gMonIcon_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/icon.4bpp"); +const u8 gMonFootprint_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/front.4bpp.lz"); +const u32 gMonPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/normal.gbapal.lz"); +const u32 gMonBackPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/back.4bpp.lz"); +const u32 gMonShinyPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/shiny.gbapal.lz"); +const u8 gMonIcon_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/icon.4bpp"); +const u8 gMonFootprint_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/front.4bpp.lz"); +const u32 gMonPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/normal.gbapal.lz"); +const u32 gMonBackPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/back.4bpp.lz"); +const u32 gMonShinyPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/shiny.gbapal.lz"); +const u8 gMonIcon_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/icon.4bpp"); +const u8 gMonFootprint_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/front.4bpp.lz"); +const u32 gMonPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/normal.gbapal.lz"); +const u32 gMonBackPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/back.4bpp.lz"); +const u32 gMonShinyPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/shiny.gbapal.lz"); +const u8 gMonIcon_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/icon.4bpp"); +const u8 gMonFootprint_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/footprint.1bpp"); + +const u32 gMonStillFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/front.4bpp.lz"); +const u32 gMonPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/normal.gbapal.lz"); +const u32 gMonBackPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/back.4bpp.lz"); +const u32 gMonShinyPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/shiny.gbapal.lz"); +const u8 gMonIcon_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/icon.4bpp"); +const u8 gMonFootprint_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/footprint.1bpp"); + +const u32 gMonStillFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/front.4bpp.lz"); +const u32 gMonPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/normal.gbapal.lz"); +const u32 gMonBackPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/back.4bpp.lz"); +const u32 gMonShinyPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/shiny.gbapal.lz"); +const u8 gMonIcon_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/icon.4bpp"); +const u8 gMonFootprint_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/front.4bpp.lz"); +const u32 gMonPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/normal.gbapal.lz"); +const u32 gMonBackPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/back.4bpp.lz"); +const u32 gMonShinyPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/shiny.gbapal.lz"); +const u8 gMonIcon_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/icon.4bpp"); +const u8 gMonFootprint_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/footprint.1bpp"); + +const u32 gMonStillFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/front.4bpp.lz"); +const u32 gMonPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/normal.gbapal.lz"); +const u32 gMonBackPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/back.4bpp.lz"); +const u32 gMonShinyPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/shiny.gbapal.lz"); +const u8 gMonIcon_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/icon.4bpp"); +const u8 gMonFootprint_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/front.4bpp.lz"); +const u32 gMonPalette_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/normal.gbapal.lz"); +const u32 gMonBackPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/back.4bpp.lz"); +const u32 gMonShinyPalette_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/shiny.gbapal.lz"); +const u8 gMonIcon_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/icon.4bpp"); +const u8 gMonFootprint_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/front.4bpp.lz"); +const u32 gMonPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/normal.gbapal.lz"); +const u32 gMonBackPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/back.4bpp.lz"); +const u32 gMonShinyPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/shiny.gbapal.lz"); +const u8 gMonIcon_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/icon.4bpp"); +const u8 gMonFootprint_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/front.4bpp.lz"); +const u32 gMonPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/normal.gbapal.lz"); +const u32 gMonBackPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/back.4bpp.lz"); +const u32 gMonShinyPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/shiny.gbapal.lz"); +const u8 gMonIcon_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/icon.4bpp"); +const u8 gMonFootprint_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/footprint.1bpp"); + +const u32 gMonStillFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/front.4bpp.lz"); +const u32 gMonPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/normal.gbapal.lz"); +const u32 gMonBackPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/back.4bpp.lz"); +const u32 gMonShinyPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/shiny.gbapal.lz"); +const u8 gMonIcon_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/icon.4bpp"); +const u8 gMonFootprint_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/footprint.1bpp"); + +const u32 gMonStillFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/front.4bpp.lz"); +const u32 gMonPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/normal.gbapal.lz"); +const u32 gMonBackPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/back.4bpp.lz"); +const u32 gMonShinyPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/shiny.gbapal.lz"); +const u8 gMonIcon_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/icon.4bpp"); +const u8 gMonFootprint_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/front.4bpp.lz"); +const u32 gMonPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/normal.gbapal.lz"); +const u32 gMonBackPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/back.4bpp.lz"); +const u32 gMonShinyPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/shiny.gbapal.lz"); +const u8 gMonIcon_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/icon.4bpp"); +const u8 gMonFootprint_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/front.4bpp.lz"); +const u32 gMonPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/normal.gbapal.lz"); +const u32 gMonBackPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/back.4bpp.lz"); +const u32 gMonShinyPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/shiny.gbapal.lz"); +const u8 gMonIcon_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/icon.4bpp"); +const u8 gMonFootprint_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/footprint.1bpp"); + +const u32 gMonStillFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/front.4bpp.lz"); +const u32 gMonPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/normal.gbapal.lz"); +const u32 gMonBackPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/back.4bpp.lz"); +const u32 gMonShinyPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/shiny.gbapal.lz"); +const u8 gMonIcon_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/icon.4bpp"); +const u8 gMonFootprint_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/footprint.1bpp"); + +const u32 gMonStillFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/front.4bpp.lz"); +const u32 gMonPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/normal.gbapal.lz"); +const u32 gMonBackPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/back.4bpp.lz"); +const u32 gMonShinyPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/shiny.gbapal.lz"); +const u8 gMonIcon_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/icon.4bpp"); +const u8 gMonFootprint_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/front.4bpp.lz"); +const u32 gMonPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/normal.gbapal.lz"); +const u32 gMonBackPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/back.4bpp.lz"); +const u32 gMonShinyPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/shiny.gbapal.lz"); +const u8 gMonIcon_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/icon.4bpp"); +const u8 gMonFootprint_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/front.4bpp.lz"); +const u32 gMonPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/normal.gbapal.lz"); +const u32 gMonBackPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/back.4bpp.lz"); +const u32 gMonShinyPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/shiny.gbapal.lz"); +const u8 gMonIcon_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/icon.4bpp"); +const u8 gMonFootprint_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/footprint.1bpp"); + +const u32 gMonStillFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/front.4bpp.lz"); +const u32 gMonPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/normal.gbapal.lz"); +const u32 gMonBackPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/back.4bpp.lz"); +const u32 gMonShinyPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/shiny.gbapal.lz"); +const u8 gMonIcon_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/icon.4bpp"); +const u8 gMonFootprint_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/front.4bpp.lz"); +const u32 gMonPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/normal.gbapal.lz"); +const u32 gMonBackPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/back.4bpp.lz"); +const u32 gMonShinyPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/shiny.gbapal.lz"); +const u8 gMonIcon_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/icon.4bpp"); +const u8 gMonFootprint_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/footprint.1bpp"); + +const u32 gMonStillFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/front.4bpp.lz"); +const u32 gMonPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/normal.gbapal.lz"); +const u32 gMonBackPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/back.4bpp.lz"); +const u32 gMonShinyPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/shiny.gbapal.lz"); +const u8 gMonIcon_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/icon.4bpp"); +const u8 gMonFootprint_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/front.4bpp.lz"); +const u32 gMonPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/normal.gbapal.lz"); +const u32 gMonBackPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/back.4bpp.lz"); +const u32 gMonShinyPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/shiny.gbapal.lz"); +const u8 gMonIcon_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/icon.4bpp"); +const u8 gMonFootprint_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/footprint.1bpp"); + +const u32 gMonStillFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/front.4bpp.lz"); +const u32 gMonPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/normal.gbapal.lz"); +const u32 gMonBackPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/back.4bpp.lz"); +const u32 gMonShinyPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/shiny.gbapal.lz"); +const u8 gMonIcon_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/icon.4bpp"); +const u8 gMonFootprint_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/footprint.1bpp"); + +const u32 gMonStillFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/front.4bpp.lz"); +const u32 gMonPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/normal.gbapal.lz"); +const u32 gMonBackPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/back.4bpp.lz"); +const u32 gMonShinyPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/shiny.gbapal.lz"); +const u8 gMonIcon_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/icon.4bpp"); +const u8 gMonFootprint_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/footprint.1bpp"); + +const u32 gMonStillFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/front.4bpp.lz"); +const u32 gMonPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/normal.gbapal.lz"); +const u32 gMonBackPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/back.4bpp.lz"); +const u32 gMonShinyPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/shiny.gbapal.lz"); +const u8 gMonIcon_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/icon.4bpp"); +const u8 gMonFootprint_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/footprint.1bpp"); + +const u32 gMonStillFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/front.4bpp.lz"); +const u32 gMonPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/normal.gbapal.lz"); +const u32 gMonBackPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/back.4bpp.lz"); +const u32 gMonShinyPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/shiny.gbapal.lz"); +const u8 gMonIcon_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/icon.4bpp"); +const u8 gMonFootprint_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/footprint.1bpp"); + +const u32 gMonStillFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/front.4bpp.lz"); +const u32 gMonPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/normal.gbapal.lz"); +const u32 gMonBackPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/back.4bpp.lz"); +const u32 gMonShinyPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/shiny.gbapal.lz"); +const u8 gMonIcon_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/icon.4bpp"); +const u8 gMonFootprint_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/footprint.1bpp"); + +const u32 gMonStillFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/front.4bpp.lz"); +const u32 gMonPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/normal.gbapal.lz"); +const u32 gMonBackPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/back.4bpp.lz"); +const u32 gMonShinyPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/shiny.gbapal.lz"); +const u8 gMonIcon_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/icon.4bpp"); +const u8 gMonFootprint_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/footprint.1bpp"); + +const u32 gMonStillFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/front.4bpp.lz"); +const u32 gMonPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/normal.gbapal.lz"); +const u32 gMonBackPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/back.4bpp.lz"); +const u32 gMonShinyPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/shiny.gbapal.lz"); +const u8 gMonIcon_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/icon.4bpp"); +const u8 gMonFootprint_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/footprint.1bpp"); + +const u32 gMonStillFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/front.4bpp.lz"); +const u32 gMonPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/normal.gbapal.lz"); +const u32 gMonBackPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/back.4bpp.lz"); +const u32 gMonShinyPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/shiny.gbapal.lz"); +const u8 gMonIcon_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/icon.4bpp"); +const u8 gMonFootprint_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/front.4bpp.lz"); +const u32 gMonPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/normal.gbapal.lz"); +const u32 gMonBackPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/back.4bpp.lz"); +const u32 gMonShinyPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/shiny.gbapal.lz"); +const u8 gMonIcon_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/icon.4bpp"); +const u8 gMonFootprint_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/front.4bpp.lz"); +const u32 gMonPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/normal.gbapal.lz"); +const u32 gMonBackPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/back.4bpp.lz"); +const u32 gMonShinyPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/shiny.gbapal.lz"); +const u8 gMonIcon_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/icon.4bpp"); +const u8 gMonFootprint_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/footprint.1bpp"); + +const u32 gMonStillFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/front.4bpp.lz"); +const u32 gMonPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/normal.gbapal.lz"); +const u32 gMonBackPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/back.4bpp.lz"); +const u32 gMonShinyPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/shiny.gbapal.lz"); +const u8 gMonIcon_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/icon.4bpp"); +const u8 gMonFootprint_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/footprint.1bpp"); + +const u32 gMonStillFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/front.4bpp.lz"); +const u32 gMonPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/normal.gbapal.lz"); +const u32 gMonBackPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/back.4bpp.lz"); +const u32 gMonShinyPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/shiny.gbapal.lz"); +const u8 gMonIcon_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/icon.4bpp"); +const u8 gMonFootprint_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/front.4bpp.lz"); +const u32 gMonPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/normal.gbapal.lz"); +const u32 gMonBackPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/back.4bpp.lz"); +const u32 gMonShinyPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/shiny.gbapal.lz"); +const u8 gMonIcon_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/icon.4bpp"); +const u8 gMonFootprint_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/front.4bpp.lz"); +const u32 gMonPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/normal.gbapal.lz"); +const u32 gMonBackPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/back.4bpp.lz"); +const u32 gMonShinyPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/shiny.gbapal.lz"); +const u8 gMonIcon_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/icon.4bpp"); +const u8 gMonFootprint_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/footprint.1bpp"); + +const u32 gMonStillFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/front.4bpp.lz"); +const u32 gMonPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/normal.gbapal.lz"); +const u32 gMonBackPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/back.4bpp.lz"); +const u32 gMonShinyPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/shiny.gbapal.lz"); +const u8 gMonIcon_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/icon.4bpp"); +const u8 gMonFootprint_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/footprint.1bpp"); + +const u32 gMonStillFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/front.4bpp.lz"); +const u32 gMonPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/normal.gbapal.lz"); +const u32 gMonBackPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/back.4bpp.lz"); +const u32 gMonShinyPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/shiny.gbapal.lz"); +const u8 gMonIcon_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/icon.4bpp"); +const u8 gMonFootprint_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/footprint.1bpp"); + +const u32 gMonStillFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/front.4bpp.lz"); +const u32 gMonPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/normal.gbapal.lz"); +const u32 gMonBackPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/back.4bpp.lz"); +const u32 gMonShinyPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/shiny.gbapal.lz"); +const u8 gMonIcon_Numel[] = INCBIN_U8("graphics/pokemon/numel/icon.4bpp"); +const u8 gMonFootprint_Numel[] = INCBIN_U8("graphics/pokemon/numel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/front.4bpp.lz"); +const u32 gMonPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/normal.gbapal.lz"); +const u32 gMonBackPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/back.4bpp.lz"); +const u32 gMonShinyPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/shiny.gbapal.lz"); +const u8 gMonIcon_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/icon.4bpp"); +const u8 gMonFootprint_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/footprint.1bpp"); + +const u32 gMonStillFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/front.4bpp.lz"); +const u32 gMonPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/normal.gbapal.lz"); +const u32 gMonBackPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/back.4bpp.lz"); +const u32 gMonShinyPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/shiny.gbapal.lz"); +const u8 gMonIcon_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/icon.4bpp"); +const u8 gMonFootprint_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/front.4bpp.lz"); +const u32 gMonPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/normal.gbapal.lz"); +const u32 gMonBackPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/back.4bpp.lz"); +const u32 gMonShinyPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/shiny.gbapal.lz"); +const u8 gMonIcon_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/icon.4bpp"); +const u8 gMonFootprint_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/front.4bpp.lz"); +const u32 gMonPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/normal.gbapal.lz"); +const u32 gMonBackPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/back.4bpp.lz"); +const u32 gMonShinyPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/shiny.gbapal.lz"); +const u8 gMonIcon_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/icon.4bpp"); +const u8 gMonFootprint_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/front.4bpp.lz"); +const u32 gMonPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/normal.gbapal.lz"); +const u32 gMonBackPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/back.4bpp.lz"); +const u32 gMonShinyPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/shiny.gbapal.lz"); +const u8 gMonIcon_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/icon.4bpp"); +const u8 gMonFootprint_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/front.4bpp.lz"); +const u32 gMonPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/normal.gbapal.lz"); +const u32 gMonBackPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/back.4bpp.lz"); +const u32 gMonShinyPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/shiny.gbapal.lz"); +const u8 gMonIcon_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/icon.4bpp"); +const u8 gMonFootprint_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/footprint.1bpp"); + +const u32 gMonStillFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/front.4bpp.lz"); +const u32 gMonPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/normal.gbapal.lz"); +const u32 gMonBackPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/back.4bpp.lz"); +const u32 gMonShinyPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/shiny.gbapal.lz"); +const u8 gMonIcon_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/icon.4bpp"); +const u8 gMonFootprint_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/footprint.1bpp"); + +const u32 gMonStillFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/front.4bpp.lz"); +const u32 gMonPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/normal.gbapal.lz"); +const u32 gMonBackPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/back.4bpp.lz"); +const u32 gMonShinyPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/shiny.gbapal.lz"); +const u8 gMonIcon_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/icon.4bpp"); +const u8 gMonFootprint_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/front.4bpp.lz"); +const u32 gMonPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/normal.gbapal.lz"); +const u32 gMonBackPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/back.4bpp.lz"); +const u32 gMonShinyPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/shiny.gbapal.lz"); +const u8 gMonIcon_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/icon.4bpp"); +const u8 gMonFootprint_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/footprint.1bpp"); + +const u32 gMonStillFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/front.4bpp.lz"); +const u32 gMonPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/normal.gbapal.lz"); +const u32 gMonBackPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/back.4bpp.lz"); +const u32 gMonShinyPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/shiny.gbapal.lz"); +const u8 gMonIcon_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/icon.4bpp"); +const u8 gMonFootprint_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/footprint.1bpp"); + +const u32 gMonStillFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/front.4bpp.lz"); +const u32 gMonPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/normal.gbapal.lz"); +const u32 gMonBackPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/back.4bpp.lz"); +const u32 gMonShinyPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/shiny.gbapal.lz"); +const u8 gMonIcon_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/icon.4bpp"); +const u8 gMonFootprint_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/footprint.1bpp"); + +const u32 gMonStillFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/front.4bpp.lz"); +const u32 gMonPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/normal.gbapal.lz"); +const u32 gMonBackPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/back.4bpp.lz"); +const u32 gMonShinyPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/shiny.gbapal.lz"); +const u8 gMonIcon_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/icon.4bpp"); +const u8 gMonFootprint_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/footprint.1bpp"); + +const u32 gMonStillFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/front.4bpp.lz"); +const u32 gMonPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/normal.gbapal.lz"); +const u32 gMonBackPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/back.4bpp.lz"); +const u32 gMonShinyPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/shiny.gbapal.lz"); +const u8 gMonIcon_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/icon.4bpp"); +const u8 gMonFootprint_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/footprint.1bpp"); + +const u32 gMonStillFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/front.4bpp.lz"); +const u32 gMonPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/normal.gbapal.lz"); +const u32 gMonBackPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/back.4bpp.lz"); +const u32 gMonShinyPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/shiny.gbapal.lz"); +const u8 gMonIcon_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/icon.4bpp"); +const u8 gMonFootprint_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/front.4bpp.lz"); +const u32 gMonPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/normal.gbapal.lz"); +const u32 gMonBackPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/back.4bpp.lz"); +const u32 gMonShinyPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/shiny.gbapal.lz"); +const u8 gMonIcon_Minun[] = INCBIN_U8("graphics/pokemon/minun/icon.4bpp"); +const u8 gMonFootprint_Minun[] = INCBIN_U8("graphics/pokemon/minun/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/front.4bpp.lz"); +const u32 gMonPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/normal.gbapal.lz"); +const u32 gMonBackPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/back.4bpp.lz"); +const u32 gMonShinyPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/shiny.gbapal.lz"); +const u8 gMonIcon_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/icon.4bpp"); +const u8 gMonFootprint_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/footprint.1bpp"); + +const u32 gMonStillFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/front.4bpp.lz"); +const u32 gMonPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/normal.gbapal.lz"); +const u32 gMonBackPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/back.4bpp.lz"); +const u32 gMonShinyPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/shiny.gbapal.lz"); +const u8 gMonIcon_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/icon.4bpp"); +const u8 gMonFootprint_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/footprint.1bpp"); + +const u32 gMonStillFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/front.4bpp.lz"); +const u32 gMonPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/normal.gbapal.lz"); +const u32 gMonBackPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/back.4bpp.lz"); +const u32 gMonShinyPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/shiny.gbapal.lz"); +const u8 gMonIcon_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/icon.4bpp"); +const u8 gMonFootprint_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/footprint.1bpp"); + +const u32 gMonStillFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/front.4bpp.lz"); +const u32 gMonPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/normal.gbapal.lz"); +const u32 gMonBackPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/back.4bpp.lz"); +const u32 gMonShinyPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/shiny.gbapal.lz"); +const u8 gMonIcon_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/icon.4bpp"); +const u8 gMonFootprint_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/front.4bpp.lz"); +const u32 gMonPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/normal.gbapal.lz"); +const u32 gMonBackPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/back.4bpp.lz"); +const u32 gMonShinyPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/shiny.gbapal.lz"); +const u8 gMonIcon_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/icon.4bpp"); +const u8 gMonFootprint_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/front.4bpp.lz"); +const u32 gMonPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/normal.gbapal.lz"); +const u32 gMonBackPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/back.4bpp.lz"); +const u32 gMonShinyPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/shiny.gbapal.lz"); +const u8 gMonIcon_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/icon.4bpp"); +const u8 gMonFootprint_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/footprint.1bpp"); + +const u32 gMonStillFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/front.4bpp.lz"); +const u32 gMonPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/normal.gbapal.lz"); +const u32 gMonBackPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/back.4bpp.lz"); +const u32 gMonShinyPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/shiny.gbapal.lz"); +const u8 gMonIcon_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/icon.4bpp"); +const u8 gMonFootprint_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/front.4bpp.lz"); +const u32 gMonPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/normal.gbapal.lz"); +const u32 gMonBackPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/back.4bpp.lz"); +const u32 gMonShinyPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/shiny.gbapal.lz"); +const u8 gMonIcon_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/icon.4bpp"); +const u8 gMonFootprint_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/footprint.1bpp"); + +const u32 gMonStillFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/front.4bpp.lz"); +const u32 gMonPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/normal.gbapal.lz"); +const u32 gMonBackPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/back.4bpp.lz"); +const u32 gMonShinyPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/shiny.gbapal.lz"); +const u8 gMonIcon_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/icon.4bpp"); +const u8 gMonFootprint_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/front.4bpp.lz"); +const u32 gMonPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/normal.gbapal.lz"); +const u32 gMonBackPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/back.4bpp.lz"); +const u32 gMonShinyPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/shiny.gbapal.lz"); +const u8 gMonIcon_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/icon.4bpp"); +const u8 gMonFootprint_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/footprint.1bpp"); + +const u32 gMonStillFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/front.4bpp.lz"); +const u32 gMonPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/normal.gbapal.lz"); +const u32 gMonBackPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/back.4bpp.lz"); +const u32 gMonShinyPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/shiny.gbapal.lz"); +const u8 gMonIcon_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/icon.4bpp"); +const u8 gMonFootprint_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/front.4bpp.lz"); +const u32 gMonPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/normal.gbapal.lz"); +const u32 gMonBackPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/back.4bpp.lz"); +const u32 gMonShinyPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/shiny.gbapal.lz"); +const u8 gMonIcon_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/icon.4bpp"); +const u8 gMonFootprint_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/front.4bpp.lz"); +const u32 gMonPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/normal.gbapal.lz"); +const u32 gMonBackPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/back.4bpp.lz"); +const u32 gMonShinyPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/shiny.gbapal.lz"); +const u8 gMonIcon_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/icon.4bpp"); +const u8 gMonFootprint_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/footprint.1bpp"); + +const u32 gMonStillFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/front.4bpp.lz"); +const u32 gMonPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/normal.gbapal.lz"); +const u32 gMonBackPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/back.4bpp.lz"); +const u32 gMonShinyPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/shiny.gbapal.lz"); +const u8 gMonIcon_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/icon.4bpp"); +const u8 gMonFootprint_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/front.4bpp.lz"); +const u32 gMonPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/normal.gbapal.lz"); +const u32 gMonBackPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/back.4bpp.lz"); +const u32 gMonShinyPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/shiny.gbapal.lz"); +const u8 gMonIcon_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/icon.4bpp"); +const u8 gMonFootprint_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/footprint.1bpp"); + +const u32 gMonStillFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/front.4bpp.lz"); +const u32 gMonPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/normal.gbapal.lz"); +const u32 gMonBackPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/back.4bpp.lz"); +const u32 gMonShinyPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/shiny.gbapal.lz"); +const u8 gMonIcon_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/icon.4bpp"); +const u8 gMonFootprint_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/footprint.1bpp"); + +const u32 gMonStillFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/front.4bpp.lz"); +const u32 gMonPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/normal.gbapal.lz"); +const u32 gMonBackPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/back.4bpp.lz"); +const u32 gMonShinyPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/shiny.gbapal.lz"); +const u8 gMonIcon_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/icon.4bpp"); +const u8 gMonFootprint_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/footprint.1bpp"); + +const u32 gMonStillFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/front.4bpp.lz"); +const u32 gMonPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/normal.gbapal.lz"); +const u32 gMonBackPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/back.4bpp.lz"); +const u32 gMonShinyPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/shiny.gbapal.lz"); +const u8 gMonIcon_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/icon.4bpp"); +const u8 gMonFootprint_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/footprint.1bpp"); + +const u32 gMonStillFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/front.4bpp.lz"); +const u32 gMonPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/normal.gbapal.lz"); +const u32 gMonBackPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/back.4bpp.lz"); +const u32 gMonShinyPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/shiny.gbapal.lz"); +const u8 gMonIcon_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/icon.4bpp"); +const u8 gMonFootprint_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/footprint.1bpp"); + +const u32 gMonStillFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/front.4bpp.lz"); +const u32 gMonPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/normal.gbapal.lz"); +const u32 gMonBackPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/back.4bpp.lz"); +const u32 gMonShinyPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/shiny.gbapal.lz"); +const u8 gMonIcon_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/icon.4bpp"); +const u8 gMonFootprint_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/front.4bpp.lz"); +const u32 gMonPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/normal.gbapal.lz"); +const u32 gMonBackPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/back.4bpp.lz"); +const u32 gMonShinyPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/shiny.gbapal.lz"); +const u8 gMonIcon_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/icon.4bpp"); +const u8 gMonFootprint_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/footprint.1bpp"); + +const u32 gMonStillFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/front.4bpp.lz"); +const u32 gMonPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/normal.gbapal.lz"); +const u32 gMonBackPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/back.4bpp.lz"); +const u32 gMonShinyPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/shiny.gbapal.lz"); +const u8 gMonIcon_Absol[] = INCBIN_U8("graphics/pokemon/absol/icon.4bpp"); +const u8 gMonFootprint_Absol[] = INCBIN_U8("graphics/pokemon/absol/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/front.4bpp.lz"); +const u32 gMonPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/normal.gbapal.lz"); +const u32 gMonBackPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/back.4bpp.lz"); +const u32 gMonShinyPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/shiny.gbapal.lz"); +const u8 gMonIcon_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/icon.4bpp"); +const u8 gMonFootprint_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/footprint.1bpp"); + +const u32 gMonStillFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/front.4bpp.lz"); +const u32 gMonPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/normal.gbapal.lz"); +const u32 gMonBackPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/back.4bpp.lz"); +const u32 gMonShinyPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/shiny.gbapal.lz"); +const u8 gMonIcon_Banette[] = INCBIN_U8("graphics/pokemon/banette/icon.4bpp"); +const u8 gMonFootprint_Banette[] = INCBIN_U8("graphics/pokemon/banette/footprint.1bpp"); + +const u32 gMonStillFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/front.4bpp.lz"); +const u32 gMonPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/normal.gbapal.lz"); +const u32 gMonBackPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/back.4bpp.lz"); +const u32 gMonShinyPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/shiny.gbapal.lz"); +const u8 gMonIcon_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/icon.4bpp"); +const u8 gMonFootprint_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/footprint.1bpp"); + +const u32 gMonStillFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/front.4bpp.lz"); +const u32 gMonPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/normal.gbapal.lz"); +const u32 gMonBackPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/back.4bpp.lz"); +const u32 gMonShinyPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/shiny.gbapal.lz"); +const u8 gMonIcon_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/icon.4bpp"); +const u8 gMonFootprint_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/footprint.1bpp"); + +const u32 gMonStillFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/front.4bpp.lz"); +const u32 gMonPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/normal.gbapal.lz"); +const u32 gMonBackPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/back.4bpp.lz"); +const u32 gMonShinyPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/shiny.gbapal.lz"); +const u8 gMonIcon_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/icon.4bpp"); +const u8 gMonFootprint_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/footprint.1bpp"); + +const u32 gMonStillFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/front.4bpp.lz"); +const u32 gMonPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/normal.gbapal.lz"); +const u32 gMonBackPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/back.4bpp.lz"); +const u32 gMonShinyPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/shiny.gbapal.lz"); +const u8 gMonIcon_Aron[] = INCBIN_U8("graphics/pokemon/aron/icon.4bpp"); +const u8 gMonFootprint_Aron[] = INCBIN_U8("graphics/pokemon/aron/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/front.4bpp.lz"); +const u32 gMonPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/normal.gbapal.lz"); +const u32 gMonBackPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/back.4bpp.lz"); +const u32 gMonShinyPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/shiny.gbapal.lz"); +const u8 gMonIcon_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/icon.4bpp"); +const u8 gMonFootprint_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/front.4bpp.lz"); +const u32 gMonPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/normal.gbapal.lz"); +const u32 gMonBackPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/back.4bpp.lz"); +const u32 gMonShinyPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/shiny.gbapal.lz"); +const u8 gMonIcon_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/icon.4bpp"); +const u8 gMonFootprint_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/footprint.1bpp"); + +const u32 gMonStillFrontPic_Castform[] = INCBIN_U32("graphics/pokemon/castform/front.4bpp.lz"); +const u32 gMonPalette_Castform[] = INCBIN_U32("graphics/pokemon/castform/normal.gbapal.lz"); +const u32 gMonBackPic_Castform[] = INCBIN_U32("graphics/pokemon/castform/back.4bpp.lz"); +const u32 gMonShinyPalette_Castform[] = INCBIN_U32("graphics/pokemon/castform/shiny.gbapal.lz"); +const u8 gMonIcon_Castform[] = INCBIN_U8("graphics/pokemon/castform/icon.4bpp"); +const u8 gMonFootprint_Castform[] = INCBIN_U8("graphics/pokemon/castform/footprint.1bpp"); + +const u32 gMonStillFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/front.4bpp.lz"); +const u32 gMonPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/normal.gbapal.lz"); +const u32 gMonBackPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/back.4bpp.lz"); +const u32 gMonShinyPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/shiny.gbapal.lz"); +const u8 gMonIcon_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/icon.4bpp"); +const u8 gMonFootprint_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/footprint.1bpp"); + +const u32 gMonStillFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/front.4bpp.lz"); +const u32 gMonPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/normal.gbapal.lz"); +const u32 gMonBackPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/back.4bpp.lz"); +const u32 gMonShinyPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/shiny.gbapal.lz"); +const u8 gMonIcon_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/icon.4bpp"); +const u8 gMonFootprint_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/front.4bpp.lz"); +const u32 gMonPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/normal.gbapal.lz"); +const u32 gMonBackPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/back.4bpp.lz"); +const u32 gMonShinyPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/shiny.gbapal.lz"); +const u8 gMonIcon_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/icon.4bpp"); +const u8 gMonFootprint_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/front.4bpp.lz"); +const u32 gMonPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/normal.gbapal.lz"); +const u32 gMonBackPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/back.4bpp.lz"); +const u32 gMonShinyPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/shiny.gbapal.lz"); +const u8 gMonIcon_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/icon.4bpp"); +const u8 gMonFootprint_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/footprint.1bpp"); + +const u32 gMonStillFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/front.4bpp.lz"); +const u32 gMonPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/normal.gbapal.lz"); +const u32 gMonBackPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/back.4bpp.lz"); +const u32 gMonShinyPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/shiny.gbapal.lz"); +const u8 gMonIcon_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/icon.4bpp"); +const u8 gMonFootprint_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/footprint.1bpp"); + +const u32 gMonStillFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/front.4bpp.lz"); +const u32 gMonPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/normal.gbapal.lz"); +const u32 gMonBackPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/back.4bpp.lz"); +const u32 gMonShinyPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/shiny.gbapal.lz"); +const u8 gMonIcon_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/icon.4bpp"); +const u8 gMonFootprint_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/front.4bpp.lz"); +const u32 gMonPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/normal.gbapal.lz"); +const u32 gMonBackPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/back.4bpp.lz"); +const u32 gMonShinyPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/shiny.gbapal.lz"); +const u8 gMonIcon_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/icon.4bpp"); +const u8 gMonFootprint_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/front.4bpp.lz"); +const u32 gMonPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/normal.gbapal.lz"); +const u32 gMonBackPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/back.4bpp.lz"); +const u32 gMonShinyPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/shiny.gbapal.lz"); +const u8 gMonIcon_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/icon.4bpp"); +const u8 gMonFootprint_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/front.4bpp.lz"); +const u32 gMonPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/normal.gbapal.lz"); +const u32 gMonBackPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/back.4bpp.lz"); +const u32 gMonShinyPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/shiny.gbapal.lz"); +const u8 gMonIcon_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/icon.4bpp"); +const u8 gMonFootprint_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/footprint.1bpp"); + +const u32 gMonStillFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/front.4bpp.lz"); +const u32 gMonPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/normal.gbapal.lz"); +const u32 gMonBackPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/back.4bpp.lz"); +const u32 gMonShinyPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/shiny.gbapal.lz"); +const u8 gMonIcon_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/icon.4bpp"); +const u8 gMonFootprint_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/front.4bpp.lz"); +const u32 gMonPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/normal.gbapal.lz"); +const u32 gMonBackPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/back.4bpp.lz"); +const u32 gMonShinyPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/shiny.gbapal.lz"); +const u8 gMonIcon_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/icon.4bpp"); +const u8 gMonFootprint_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/front.4bpp.lz"); +const u32 gMonPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/normal.gbapal.lz"); +const u32 gMonBackPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/back.4bpp.lz"); +const u32 gMonShinyPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/shiny.gbapal.lz"); +const u8 gMonIcon_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/icon.4bpp"); +const u8 gMonFootprint_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/footprint.1bpp"); + +const u32 gMonStillFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/front.4bpp.lz"); +const u32 gMonPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/normal.gbapal.lz"); +const u32 gMonBackPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/back.4bpp.lz"); +const u32 gMonShinyPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/shiny.gbapal.lz"); +const u8 gMonIcon_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/icon.4bpp"); +const u8 gMonFootprint_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/footprint.1bpp"); + +const u32 gMonStillFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/front.4bpp.lz"); +const u32 gMonPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/normal.gbapal.lz"); +const u32 gMonBackPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/back.4bpp.lz"); +const u32 gMonShinyPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/shiny.gbapal.lz"); +const u8 gMonIcon_Metang[] = INCBIN_U8("graphics/pokemon/metang/icon.4bpp"); +const u8 gMonFootprint_Metang[] = INCBIN_U8("graphics/pokemon/metang/footprint.1bpp"); + +const u32 gMonStillFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/front.4bpp.lz"); +const u32 gMonPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/normal.gbapal.lz"); +const u32 gMonBackPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/back.4bpp.lz"); +const u32 gMonShinyPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/shiny.gbapal.lz"); +const u8 gMonIcon_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/icon.4bpp"); +const u8 gMonFootprint_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/footprint.1bpp"); + +const u32 gMonStillFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/front.4bpp.lz"); +const u32 gMonPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/normal.gbapal.lz"); +const u32 gMonBackPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/back.4bpp.lz"); +const u32 gMonShinyPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/shiny.gbapal.lz"); +const u8 gMonIcon_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/icon.4bpp"); +const u8 gMonFootprint_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/footprint.1bpp"); + +const u32 gMonStillFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/front.4bpp.lz"); +const u32 gMonPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/normal.gbapal.lz"); +const u32 gMonBackPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/back.4bpp.lz"); +const u32 gMonShinyPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/shiny.gbapal.lz"); +const u8 gMonIcon_Regice[] = INCBIN_U8("graphics/pokemon/regice/icon.4bpp"); +const u8 gMonFootprint_Regice[] = INCBIN_U8("graphics/pokemon/regice/footprint.1bpp"); + +const u32 gMonStillFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/front.4bpp.lz"); +const u32 gMonPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/normal.gbapal.lz"); +const u32 gMonBackPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/back.4bpp.lz"); +const u32 gMonShinyPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/shiny.gbapal.lz"); +const u8 gMonIcon_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/icon.4bpp"); +const u8 gMonFootprint_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/front.4bpp.lz"); +const u32 gMonPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/normal.gbapal.lz"); +const u32 gMonBackPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/back.4bpp.lz"); +const u32 gMonShinyPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/shiny.gbapal.lz"); +const u8 gMonIcon_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/icon.4bpp"); +const u8 gMonFootprint_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/footprint.1bpp"); + +const u32 gMonStillFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/front.4bpp.lz"); +const u32 gMonPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/normal.gbapal.lz"); +const u32 gMonBackPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/back.4bpp.lz"); +const u32 gMonShinyPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/shiny.gbapal.lz"); +const u8 gMonIcon_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/icon.4bpp"); +const u8 gMonFootprint_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/front.4bpp.lz"); +const u32 gMonPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/normal.gbapal.lz"); +const u32 gMonBackPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/back.4bpp.lz"); +const u32 gMonShinyPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/shiny.gbapal.lz"); +const u8 gMonIcon_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/icon.4bpp"); +const u8 gMonFootprint_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/footprint.1bpp"); + +const u32 gMonStillFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/front.4bpp.lz"); +const u32 gMonPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/normal.gbapal.lz"); +const u32 gMonBackPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/back.4bpp.lz"); +const u32 gMonShinyPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/shiny.gbapal.lz"); +const u8 gMonIcon_Latias[] = INCBIN_U8("graphics/pokemon/latias/icon.4bpp"); +const u8 gMonFootprint_Latias[] = INCBIN_U8("graphics/pokemon/latias/footprint.1bpp"); + +const u32 gMonStillFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/front.4bpp.lz"); +const u32 gMonPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/normal.gbapal.lz"); +const u32 gMonBackPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/back.4bpp.lz"); +const u32 gMonShinyPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/shiny.gbapal.lz"); +const u8 gMonIcon_Latios[] = INCBIN_U8("graphics/pokemon/latios/icon.4bpp"); +const u8 gMonFootprint_Latios[] = INCBIN_U8("graphics/pokemon/latios/footprint.1bpp"); + +const u32 gMonStillFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/front.4bpp.lz"); +const u32 gMonPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/normal.gbapal.lz"); +const u32 gMonBackPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/back.4bpp.lz"); +const u32 gMonShinyPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/shiny.gbapal.lz"); +const u8 gMonIcon_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/icon.4bpp"); +const u8 gMonFootprint_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/footprint.1bpp"); + +const u32 gMonStillFrontPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/front.4bpp.lz"); +const u32 gMonPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/normal.gbapal.lz"); +const u32 gMonBackPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/back.4bpp.lz"); +const u32 gMonShinyPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/shiny.gbapal.lz"); +const u8 gMonIcon_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp"); +const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/deoxys_speed/icon.4bpp"); const u8 gMonIcon_DeoxysSpeedWide[] = INCBIN_U8("graphics/unused/deoxys_speed_icon_wide.4bpp"); asm(".space 0x6800"); const u16 gUnknown_D437F8[] = INCBIN_U16("graphics/unknown/unknown_D437F8.bin"); -const u8 gMonFootprint_Deoxys[] = INCBIN_U8("graphics/pokemon/footprints/deoxys_footprint.1bpp"); +const u8 gMonFootprint_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/footprint.1bpp"); -const u32 gMonStillFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/front_pics/chimecho_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/palettes/chimecho_palette.gbapal.lz"); -const u32 gMonBackPic_Chimecho[] = INCBIN_U32("graphics/pokemon/back_pics/chimecho_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/palettes/chimecho_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Chimecho[] = INCBIN_U8("graphics/pokemon/icons/chimecho_icon.4bpp"); -const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/footprints/chimecho_footprint.1bpp"); +const u32 gMonStillFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/front.4bpp.lz"); +const u32 gMonPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/normal.gbapal.lz"); +const u32 gMonBackPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/back.4bpp.lz"); +const u32 gMonShinyPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/shiny.gbapal.lz"); +const u8 gMonIcon_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/icon.4bpp"); +const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/footprint.1bpp"); -const u32 gMonStillFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/front_pics/egg_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/palettes/egg_palette.gbapal.lz"); +const u32 gMonStillFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/front.4bpp.lz"); +const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/egg/normal.gbapal.lz"); -const u32 gMonStillFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/front_pics/unown_b_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownB[] = INCBIN_U32("graphics/pokemon/back_pics/unown_b_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownB[] = INCBIN_U8("graphics/pokemon/icons/unown_B_icon.4bpp"); +const u32 gMonStillFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/front_b.4bpp.lz"); +const u32 gMonBackPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/back_b.4bpp.lz"); +const u8 gMonIcon_UnownB[] = INCBIN_U8("graphics/pokemon/unown/icon_b.4bpp"); -const u32 gMonStillFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/front_pics/unown_c_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownC[] = INCBIN_U32("graphics/pokemon/back_pics/unown_c_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownC[] = INCBIN_U8("graphics/pokemon/icons/unown_C_icon.4bpp"); +const u32 gMonStillFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/front_c.4bpp.lz"); +const u32 gMonBackPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/back_c.4bpp.lz"); +const u8 gMonIcon_UnownC[] = INCBIN_U8("graphics/pokemon/unown/icon_c.4bpp"); -const u32 gMonStillFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/front_pics/unown_d_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownD[] = INCBIN_U32("graphics/pokemon/back_pics/unown_d_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownD[] = INCBIN_U8("graphics/pokemon/icons/unown_D_icon.4bpp"); +const u32 gMonStillFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/front_d.4bpp.lz"); +const u32 gMonBackPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/back_d.4bpp.lz"); +const u8 gMonIcon_UnownD[] = INCBIN_U8("graphics/pokemon/unown/icon_d.4bpp"); -const u32 gMonStillFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/front_pics/unown_e_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownE[] = INCBIN_U32("graphics/pokemon/back_pics/unown_e_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownE[] = INCBIN_U8("graphics/pokemon/icons/unown_E_icon.4bpp"); +const u32 gMonStillFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/front_e.4bpp.lz"); +const u32 gMonBackPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/back_e.4bpp.lz"); +const u8 gMonIcon_UnownE[] = INCBIN_U8("graphics/pokemon/unown/icon_e.4bpp"); -const u32 gMonStillFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/front_pics/unown_f_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownF[] = INCBIN_U32("graphics/pokemon/back_pics/unown_f_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownF[] = INCBIN_U8("graphics/pokemon/icons/unown_F_icon.4bpp"); +const u32 gMonStillFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/front_f.4bpp.lz"); +const u32 gMonBackPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/back_f.4bpp.lz"); +const u8 gMonIcon_UnownF[] = INCBIN_U8("graphics/pokemon/unown/icon_f.4bpp"); -const u32 gMonStillFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/front_pics/unown_g_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownG[] = INCBIN_U32("graphics/pokemon/back_pics/unown_g_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownG[] = INCBIN_U8("graphics/pokemon/icons/unown_G_icon.4bpp"); +const u32 gMonStillFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/front_g.4bpp.lz"); +const u32 gMonBackPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/back_g.4bpp.lz"); +const u8 gMonIcon_UnownG[] = INCBIN_U8("graphics/pokemon/unown/icon_g.4bpp"); -const u32 gMonStillFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/front_pics/unown_h_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownH[] = INCBIN_U32("graphics/pokemon/back_pics/unown_h_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownH[] = INCBIN_U8("graphics/pokemon/icons/unown_H_icon.4bpp"); +const u32 gMonStillFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/front_h.4bpp.lz"); +const u32 gMonBackPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/back_h.4bpp.lz"); +const u8 gMonIcon_UnownH[] = INCBIN_U8("graphics/pokemon/unown/icon_h.4bpp"); -const u32 gMonStillFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/front_pics/unown_i_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownI[] = INCBIN_U32("graphics/pokemon/back_pics/unown_i_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownI[] = INCBIN_U8("graphics/pokemon/icons/unown_I_icon.4bpp"); +const u32 gMonStillFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/front_i.4bpp.lz"); +const u32 gMonBackPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/back_i.4bpp.lz"); +const u8 gMonIcon_UnownI[] = INCBIN_U8("graphics/pokemon/unown/icon_i.4bpp"); -const u32 gMonStillFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/front_pics/unown_j_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownJ[] = INCBIN_U32("graphics/pokemon/back_pics/unown_j_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownJ[] = INCBIN_U8("graphics/pokemon/icons/unown_J_icon.4bpp"); +const u32 gMonStillFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/front_j.4bpp.lz"); +const u32 gMonBackPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/back_j.4bpp.lz"); +const u8 gMonIcon_UnownJ[] = INCBIN_U8("graphics/pokemon/unown/icon_j.4bpp"); -const u32 gMonStillFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/front_pics/unown_k_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownK[] = INCBIN_U32("graphics/pokemon/back_pics/unown_k_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownK[] = INCBIN_U8("graphics/pokemon/icons/unown_K_icon.4bpp"); +const u32 gMonStillFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/front_k.4bpp.lz"); +const u32 gMonBackPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/back_k.4bpp.lz"); +const u8 gMonIcon_UnownK[] = INCBIN_U8("graphics/pokemon/unown/icon_k.4bpp"); -const u32 gMonStillFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/front_pics/unown_l_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownL[] = INCBIN_U32("graphics/pokemon/back_pics/unown_l_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownL[] = INCBIN_U8("graphics/pokemon/icons/unown_L_icon.4bpp"); +const u32 gMonStillFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/front_l.4bpp.lz"); +const u32 gMonBackPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/back_l.4bpp.lz"); +const u8 gMonIcon_UnownL[] = INCBIN_U8("graphics/pokemon/unown/icon_l.4bpp"); -const u32 gMonStillFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/front_pics/unown_m_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownM[] = INCBIN_U32("graphics/pokemon/back_pics/unown_m_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownM[] = INCBIN_U8("graphics/pokemon/icons/unown_M_icon.4bpp"); +const u32 gMonStillFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/front_m.4bpp.lz"); +const u32 gMonBackPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/back_m.4bpp.lz"); +const u8 gMonIcon_UnownM[] = INCBIN_U8("graphics/pokemon/unown/icon_m.4bpp"); -const u32 gMonStillFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/front_pics/unown_n_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownN[] = INCBIN_U32("graphics/pokemon/back_pics/unown_n_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownN[] = INCBIN_U8("graphics/pokemon/icons/unown_N_icon.4bpp"); +const u32 gMonStillFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/front_n.4bpp.lz"); +const u32 gMonBackPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/back_n.4bpp.lz"); +const u8 gMonIcon_UnownN[] = INCBIN_U8("graphics/pokemon/unown/icon_n.4bpp"); -const u32 gMonStillFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/front_pics/unown_o_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownO[] = INCBIN_U32("graphics/pokemon/back_pics/unown_o_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownO[] = INCBIN_U8("graphics/pokemon/icons/unown_O_icon.4bpp"); +const u32 gMonStillFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/front_o.4bpp.lz"); +const u32 gMonBackPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/back_o.4bpp.lz"); +const u8 gMonIcon_UnownO[] = INCBIN_U8("graphics/pokemon/unown/icon_o.4bpp"); -const u32 gMonStillFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/front_pics/unown_p_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownP[] = INCBIN_U32("graphics/pokemon/back_pics/unown_p_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownP[] = INCBIN_U8("graphics/pokemon/icons/unown_P_icon.4bpp"); +const u32 gMonStillFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/front_p.4bpp.lz"); +const u32 gMonBackPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/back_p.4bpp.lz"); +const u8 gMonIcon_UnownP[] = INCBIN_U8("graphics/pokemon/unown/icon_p.4bpp"); -const u32 gMonStillFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/front_pics/unown_q_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownQ[] = INCBIN_U32("graphics/pokemon/back_pics/unown_q_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownQ[] = INCBIN_U8("graphics/pokemon/icons/unown_Q_icon.4bpp"); +const u32 gMonStillFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/front_q.4bpp.lz"); +const u32 gMonBackPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/back_q.4bpp.lz"); +const u8 gMonIcon_UnownQ[] = INCBIN_U8("graphics/pokemon/unown/icon_q.4bpp"); -const u32 gMonStillFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/front_pics/unown_r_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownR[] = INCBIN_U32("graphics/pokemon/back_pics/unown_r_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownR[] = INCBIN_U8("graphics/pokemon/icons/unown_R_icon.4bpp"); +const u32 gMonStillFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/front_r.4bpp.lz"); +const u32 gMonBackPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/back_r.4bpp.lz"); +const u8 gMonIcon_UnownR[] = INCBIN_U8("graphics/pokemon/unown/icon_r.4bpp"); -const u32 gMonStillFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/front_pics/unown_s_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownS[] = INCBIN_U32("graphics/pokemon/back_pics/unown_s_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownS[] = INCBIN_U8("graphics/pokemon/icons/unown_S_icon.4bpp"); +const u32 gMonStillFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/front_s.4bpp.lz"); +const u32 gMonBackPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/back_s.4bpp.lz"); +const u8 gMonIcon_UnownS[] = INCBIN_U8("graphics/pokemon/unown/icon_s.4bpp"); -const u32 gMonStillFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/front_pics/unown_t_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownT[] = INCBIN_U32("graphics/pokemon/back_pics/unown_t_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownT[] = INCBIN_U8("graphics/pokemon/icons/unown_T_icon.4bpp"); +const u32 gMonStillFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/front_t.4bpp.lz"); +const u32 gMonBackPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/back_t.4bpp.lz"); +const u8 gMonIcon_UnownT[] = INCBIN_U8("graphics/pokemon/unown/icon_t.4bpp"); -const u32 gMonStillFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/front_pics/unown_u_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownU[] = INCBIN_U32("graphics/pokemon/back_pics/unown_u_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownU[] = INCBIN_U8("graphics/pokemon/icons/unown_U_icon.4bpp"); +const u32 gMonStillFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/front_u.4bpp.lz"); +const u32 gMonBackPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/back_u.4bpp.lz"); +const u8 gMonIcon_UnownU[] = INCBIN_U8("graphics/pokemon/unown/icon_u.4bpp"); -const u32 gMonStillFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/front_pics/unown_v_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownV[] = INCBIN_U32("graphics/pokemon/back_pics/unown_v_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownV[] = INCBIN_U8("graphics/pokemon/icons/unown_V_icon.4bpp"); +const u32 gMonStillFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/front_v.4bpp.lz"); +const u32 gMonBackPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/back_v.4bpp.lz"); +const u8 gMonIcon_UnownV[] = INCBIN_U8("graphics/pokemon/unown/icon_v.4bpp"); -const u32 gMonStillFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/front_pics/unown_w_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownW[] = INCBIN_U32("graphics/pokemon/back_pics/unown_w_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownW[] = INCBIN_U8("graphics/pokemon/icons/unown_W_icon.4bpp"); +const u32 gMonStillFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/front_w.4bpp.lz"); +const u32 gMonBackPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/back_w.4bpp.lz"); +const u8 gMonIcon_UnownW[] = INCBIN_U8("graphics/pokemon/unown/icon_w.4bpp"); -const u32 gMonStillFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/front_pics/unown_x_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownX[] = INCBIN_U32("graphics/pokemon/back_pics/unown_x_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownX[] = INCBIN_U8("graphics/pokemon/icons/unown_X_icon.4bpp"); - -const u32 gMonStillFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/front_pics/unown_y_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownY[] = INCBIN_U32("graphics/pokemon/back_pics/unown_y_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownY[] = INCBIN_U8("graphics/pokemon/icons/unown_Y_icon.4bpp"); +const u32 gMonStillFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/front_x.4bpp.lz"); +const u32 gMonBackPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/back_x.4bpp.lz"); +const u8 gMonIcon_UnownX[] = INCBIN_U8("graphics/pokemon/unown/icon_x.4bpp"); + +const u32 gMonStillFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/front_y.4bpp.lz"); +const u32 gMonBackPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/back_y.4bpp.lz"); +const u8 gMonIcon_UnownY[] = INCBIN_U8("graphics/pokemon/unown/icon_y.4bpp"); -const u32 gMonStillFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/front_pics/unown_z_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownZ[] = INCBIN_U32("graphics/pokemon/back_pics/unown_z_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownZ[] = INCBIN_U8("graphics/pokemon/icons/unown_Z_icon.4bpp"); +const u32 gMonStillFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/front_z.4bpp.lz"); +const u32 gMonBackPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/back_z.4bpp.lz"); +const u8 gMonIcon_UnownZ[] = INCBIN_U8("graphics/pokemon/unown/icon_z.4bpp"); -const u32 gMonStillFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/front_pics/unown_exclamation_mark_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/back_pics/unown_exclamation_mark_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/icons/unown_exclamation_mark_icon.4bpp"); +const u32 gMonStillFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/front_exclamation_mark.4bpp.lz"); +const u32 gMonBackPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/back_exclamation_mark.4bpp.lz"); +const u8 gMonIcon_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/unown/icon_exclamation_mark.4bpp"); -const u32 gMonStillFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/front_pics/unown_question_mark_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/back_pics/unown_question_mark_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/icons/unown_question_mark_icon.4bpp"); +const u32 gMonStillFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/front_question_mark.4bpp.lz"); +const u32 gMonBackPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/back_question_mark.4bpp.lz"); +const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/unown/icon_question_mark.4bpp"); -- cgit v1.2.3 From d0115db5656944bcb4f44323bbd01b9a30780abc Mon Sep 17 00:00:00 2001 From: garak Date: Thu, 14 Mar 2019 19:09:56 -0400 Subject: move pokemon graphics to mon-specific directories --- src/anim_mon_front_pics.c | 2 +- src/data/graphics/pokemon.h | 14 +++++++------- src/egg_hatch.c | 2 +- src/graphics.c | 14 +++++++------- 4 files changed, 16 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/anim_mon_front_pics.c b/src/anim_mon_front_pics.c index f2480ea20..b566b7760 100644 --- a/src/anim_mon_front_pics.c +++ b/src/anim_mon_front_pics.c @@ -235,7 +235,7 @@ const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/anim_f const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/anim_front.4bpp.lz"); const u32 gMonFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/anim_front.4bpp.lz"); const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/anim_front_pics/porygon2_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/anim_front.4bpp.lz"); const u32 gMonFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/anim_front.4bpp.lz"); const u32 gMonFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/anim_front.4bpp.lz"); const u32 gMonFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/anim_front.4bpp.lz"); diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 67d1fbd3f..07415949d 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -1621,12 +1621,12 @@ const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/shin const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/icon.4bpp"); const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/footprint.1bpp"); -const u32 gMonStillFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/front_pics/porygon2_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/palettes/porygon2_palette.gbapal.lz"); -const u32 gMonBackPic_Porygon2[] = INCBIN_U32("graphics/pokemon/back_pics/porygon2_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/palettes/porygon2_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/icons/porygon2_icon.4bpp"); -const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/footprints/porygon2_footprint.1bpp"); +const u32 gMonStillFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/front.4bpp.lz"); +const u32 gMonPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/normal.gbapal.lz"); +const u32 gMonBackPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/back.4bpp.lz"); +const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/shiny.gbapal.lz"); +const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/icon.4bpp"); +const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/footprint.1bpp"); const u32 gMonStillFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/front.4bpp.lz"); const u32 gMonPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/normal.gbapal.lz"); @@ -2695,7 +2695,7 @@ const u32 gMonPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/normal.gbap const u32 gMonBackPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/back.4bpp.lz"); const u32 gMonShinyPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/shiny.gbapal.lz"); const u8 gMonIcon_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp"); -const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/deoxys_speed/icon.4bpp"); +const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/deoxys/icon_speed.4bpp"); const u8 gMonIcon_DeoxysSpeedWide[] = INCBIN_U8("graphics/unused/deoxys_speed_icon_wide.4bpp"); asm(".space 0x6800"); diff --git a/src/egg_hatch.c b/src/egg_hatch.c index a9b6001ec..68728f818 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -75,7 +75,7 @@ static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 static IWRAM_DATA struct EggHatchData *sEggHatchData; // rom data -static const u16 sEggPalette[] = INCBIN_U16("graphics/pokemon/palettes/egg_palette.gbapal"); +static const u16 sEggPalette[] = INCBIN_U16("graphics/pokemon/egg/normal.gbapal"); static const u8 sEggHatchTiles[] = INCBIN_U8("graphics/misc/egg_hatch.4bpp"); static const u8 sEggShardTiles[] = INCBIN_U8("graphics/misc/egg_shard.4bpp"); diff --git a/src/graphics.c b/src/graphics.c index a3b9eb913..c243c64a5 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -4,10 +4,10 @@ const u32 gBattleTextboxTiles[] = INCBIN_U32("graphics/battle_interface/textbox. const u32 gBattleTextboxPalette[] = INCBIN_U32("graphics/battle_interface/textbox.gbapal.lz"); const u32 gBattleTextboxTilemap[] = INCBIN_U32("graphics/battle_interface/textbox_map.bin.lz"); -const u32 gMonStillFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/front_pics/circled_question_mark_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/back_pics/circled_question_mark_back_pic.4bpp.lz"); -const u32 gMonPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/palettes/circled_question_mark_palette.gbapal.lz"); -const u32 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/palettes/circled_question_mark_shiny_palette.gbapal.lz"); +const u32 gMonStillFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/front.4bpp.lz"); +const u32 gMonBackPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/back.4bpp.lz"); +const u32 gMonPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/normal.gbapal.lz"); +const u32 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/shiny.gbapal.lz"); const u32 gUnusedGfx_OldCharmap[] = INCBIN_U32("graphics/unused/old_charmap.4bpp.lz"); // japanese table and bunch of stuff const u32 gUnusedTimemap_OldCharmap[] = INCBIN_U32("graphics/unused/old_charmap.bin.lz"); @@ -953,8 +953,8 @@ const u32 gUnknownPal_C2F9E0[] = INCBIN_U32("graphics/unknown/unknown_C2F9E0.gba #include "data/graphics/pokemon.h" #include "data/graphics/trainers.h" -const u8 gMonIcon_QuestionMark[] = INCBIN_U8("graphics/pokemon/icons/question_mark_icon.4bpp"); -const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/footprints/question_mark_footprint.1bpp"); +const u8 gMonIcon_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/icon.4bpp"); +const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/footprint.1bpp"); const u32 gUnknown_08D778F0[] = INCBIN_U32("graphics/battle_transitions/vs_frame.4bpp.lz"); const u32 gUnknown_08D779D8[] = INCBIN_U32("graphics/battle_transitions/vs_frame.bin.lz"); @@ -1064,7 +1064,7 @@ const u32 gEnemyMonShadow_Gfx[] = INCBIN_U32("graphics/battle_interface/enemy_mo const u32 gBattleInterface_BallStatusBarGfx[] = INCBIN_U32("graphics/battle_interface/ball_status_bar.4bpp.lz"); -const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/icons/egg_icon.4bpp"); +const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp"); const u32 gBattleAnimBackgroundImage_02[] = INCBIN_U32("graphics/battle_anims/backgrounds/02.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_02[] = INCBIN_U32("graphics/battle_anims/backgrounds/02.gbapal.lz"); -- cgit v1.2.3 From 61344a4fee6500cd61a0bc2c2d3346db361134c4 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Mar 2019 22:56:53 -0400 Subject: Document the water droplet data. --- src/intro.c | 12 ++++++------ src/title_screen.c | 19 +++++++++++++++++-- 2 files changed, 23 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/intro.c b/src/intro.c index 23457f370..84127cf64 100644 --- a/src/intro.c +++ b/src/intro.c @@ -2427,7 +2427,7 @@ static void Task_IntroWaterDrops_1(u8 taskId) | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[31]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[31]); SetGpuReg(REG_OFFSET_BLDY, 0); gTasks[taskId].data[1] = 0x40; gTasks[taskId].data[0]++; @@ -2439,11 +2439,11 @@ static void Task_IntroWaterDrops_1(u8 taskId) gTasks[taskId].data[1]--; tmp = gTasks[taskId].data[1] / 2; - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[tmp]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[tmp]); } else { - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[0]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[0]); gTasks[taskId].data[1] = 0x10; gTasks[taskId].data[0]++; } @@ -2470,7 +2470,7 @@ static void Task_IntroWaterDrops_2(u8 taskId) | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[0]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[0]); SetGpuReg(REG_OFFSET_BLDY, 0); gTasks[taskId].data[1] = 0; gTasks[taskId].data[0]++; @@ -2482,11 +2482,11 @@ static void Task_IntroWaterDrops_2(u8 taskId) gTasks[taskId].data[1]++; tmp = gTasks[taskId].data[1] / 2; - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[tmp]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[tmp]); } else { - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[31]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[31]); gTasks[taskId].data[1] = 0x10; gTasks[taskId].data[0]++; } diff --git a/src/title_screen.c b/src/title_screen.c index ca34f90f8..23b0772bd 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -64,7 +64,22 @@ static const u32 sTitleScreenRayquazaTilemap[] = INCBIN_U32("graphics/title_scre static const u32 sTitleScreenLogoShineGfx[] = INCBIN_U32("graphics/title_screen/logo_shine.4bpp.lz"); static const u32 sTitleScreenCloudsGfx[] = INCBIN_U32("graphics/title_screen/clouds.4bpp.lz"); -const u16 gIntroWaterDropData[] = +// This is BLDALPHA data. It's equivalent to: +// +// BLDALPHA_BLEND(0, 16) +// BLDALPHA_BLEND(1, 16) +// ... +// BLDALPHA_BLEND(14, 16) +// BLDALPHA_BLEND(15, 16) +// BLDALPHA_BLEND(16, 15) +// BLDALPHA_BLEND(16, 14) +// ... +// BLDALPHA_BLEND(16, 1) +// BLDALPHA_BLEND(16, 0) +// BLDALPHA_BLEND(16, 0) +// BLDALPHA_BLEND(16, 0) +// ... (repeated until array has 32 entries) +const u16 gIntroWaterDropAlphaBlend[] = { 0x0010, 0x0110, 0x0210, 0x0310, 0x0410, 0x0510, 0x0610, 0x0710, 0x0810, 0x0910, 0x0a10, 0x0b10, 0x0c10, 0x0d10, 0x0e10, 0x0f10, @@ -324,7 +339,7 @@ static void SpriteCB_VersionBannerLeft(struct Sprite *sprite) sprite->pos1.y++; if (sprite->data[0] != 0) sprite->data[0]--; - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[sprite->data[0]]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[sprite->data[0]]); } } -- cgit v1.2.3 From 703554c4df08d8650dc9bb8bae72eb022783a617 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 13 Mar 2019 01:26:55 -0400 Subject: Ranges are magic --- src/title_screen.c | 56 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/title_screen.c b/src/title_screen.c index 23b0772bd..80d5464fa 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -64,31 +64,41 @@ static const u32 sTitleScreenRayquazaTilemap[] = INCBIN_U32("graphics/title_scre static const u32 sTitleScreenLogoShineGfx[] = INCBIN_U32("graphics/title_screen/logo_shine.4bpp.lz"); static const u32 sTitleScreenCloudsGfx[] = INCBIN_U32("graphics/title_screen/clouds.4bpp.lz"); -// This is BLDALPHA data. It's equivalent to: -// -// BLDALPHA_BLEND(0, 16) -// BLDALPHA_BLEND(1, 16) -// ... -// BLDALPHA_BLEND(14, 16) -// BLDALPHA_BLEND(15, 16) -// BLDALPHA_BLEND(16, 15) -// BLDALPHA_BLEND(16, 14) -// ... -// BLDALPHA_BLEND(16, 1) -// BLDALPHA_BLEND(16, 0) -// BLDALPHA_BLEND(16, 0) -// BLDALPHA_BLEND(16, 0) -// ... (repeated until array has 32 entries) const u16 gIntroWaterDropAlphaBlend[] = { - 0x0010, 0x0110, 0x0210, 0x0310, 0x0410, 0x0510, 0x0610, 0x0710, - 0x0810, 0x0910, 0x0a10, 0x0b10, 0x0c10, 0x0d10, 0x0e10, 0x0f10, - 0x100f, 0x100e, 0x100d, 0x100c, 0x100b, 0x100a, 0x1009, 0x1008, - 0x1007, 0x1006, 0x1005, 0x1004, 0x1003, 0x1002, 0x1001, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + BLDALPHA_BLEND(16, 0), + BLDALPHA_BLEND(16, 1), + BLDALPHA_BLEND(16, 2), + BLDALPHA_BLEND(16, 3), + BLDALPHA_BLEND(16, 4), + BLDALPHA_BLEND(16, 5), + BLDALPHA_BLEND(16, 6), + BLDALPHA_BLEND(16, 7), + BLDALPHA_BLEND(16, 8), + BLDALPHA_BLEND(16, 9), + BLDALPHA_BLEND(16, 10), + BLDALPHA_BLEND(16, 11), + BLDALPHA_BLEND(16, 12), + BLDALPHA_BLEND(16, 13), + BLDALPHA_BLEND(16, 14), + BLDALPHA_BLEND(16, 15), + BLDALPHA_BLEND(15, 16), + BLDALPHA_BLEND(14, 16), + BLDALPHA_BLEND(13, 16), + BLDALPHA_BLEND(12, 16), + BLDALPHA_BLEND(11, 16), + BLDALPHA_BLEND(10, 16), + BLDALPHA_BLEND(9, 16), + BLDALPHA_BLEND(8, 16), + BLDALPHA_BLEND(7, 16), + BLDALPHA_BLEND(6, 16), + BLDALPHA_BLEND(5, 16), + BLDALPHA_BLEND(4, 16), + BLDALPHA_BLEND(3, 16), + BLDALPHA_BLEND(2, 16), + BLDALPHA_BLEND(1, 16), + BLDALPHA_BLEND(0, 16), + [32 ... 63] = BLDALPHA_BLEND(0, 16) }; static const struct OamData sVersionBannerLeftOamData = -- cgit v1.2.3 From 291df27dcbc9b1d1ea4bdf2f7363d58409fbd81d Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Mar 2019 02:21:00 -0400 Subject: Use new MUS_NONE constant in sound.c --- src/sound.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/sound.c b/src/sound.c index ebb4fad75..16f024858 100644 --- a/src/sound.c +++ b/src/sound.c @@ -264,7 +264,7 @@ void FadeInNewBGM(u16 songNum, u8 speed) { if (gDisableMusic) songNum = 0; - if (songNum == 0xFFFF) + if (songNum == MUS_NONE) songNum = 0; m4aSongNumStart(songNum); m4aMPlayImmInit(&gMPlayInfo_BGM); @@ -561,7 +561,7 @@ void PlayBGM(u16 songNum) { if (gDisableMusic) songNum = 0; - if (songNum == 0xFFFF) + if (songNum == MUS_NONE) songNum = 0; m4aSongNumStart(songNum); } -- cgit v1.2.3 From 9848f84b9ec2d5950cb5dc4600b7651486ff986a Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Mar 2019 03:12:15 -0400 Subject: Use constants for Oam .shape and .size fields Also some general formatting fixes for constants. --- src/battle_anim.c | 288 +++++++++++++++---------------- src/battle_arena.c | 4 +- src/battle_bg.c | 8 +- src/battle_dome.c | 16 +- src/battle_factory_screen.c | 16 +- src/battle_interface.c | 16 +- src/battle_main.c | 8 +- src/battle_pyramid_bag.c | 4 +- src/battle_script_commands.c | 4 +- src/battle_transition.c | 4 +- src/berry_blender.c | 20 +-- src/cable_car.c | 9 +- src/contest_painting.c | 4 +- src/credits.c | 4 +- src/data/field_event_obj/base_oam.h | 32 ++-- src/decoration.c | 4 +- src/easy_chat.c | 24 +-- src/egg_hatch.c | 8 +- src/evolution_graphics.c | 4 +- src/field_effect.c | 144 +++++++++++----- src/field_weather_effect.c | 28 +-- src/fldeff_cut.c | 4 +- src/fldeff_misc.c | 8 +- src/hall_of_fame.c | 4 +- src/intro.c | 48 +++--- src/intro_credits_graphics.c | 159 +++++++++++------ src/item_icon.c | 4 +- src/item_menu_icons.c | 20 +-- src/link_rfu.c | 3 +- src/list_menu.c | 40 ++--- src/menu_helpers.c | 4 +- src/mirage_tower.c | 12 +- src/mon_markings.c | 12 +- src/money.c | 4 +- src/naming_screen.c | 12 +- src/party_menu.c | 16 +- src/pokeball.c | 4 +- src/pokeblock.c | 4 +- src/pokeblock_feed.c | 4 +- src/pokedex.c | 24 +-- src/pokedex_area_screen.c | 46 +++-- src/pokedex_cry_screen.c | 27 ++- src/pokemon.c | 4 +- src/pokemon_icon.c | 4 +- src/pokemon_storage_system.c | 35 ++-- src/pokemon_summary_screen.c | 12 +- src/rayquaza_scene.c | 32 ++-- src/region_map.c | 211 +++++++++++++++------- src/reset_rtc_screen.c | 4 +- src/rotating_gate.c | 8 +- src/roulette.c | 290 +++++++++++++++++++------------ src/save_failed_screen.c | 26 +-- src/sprite.c | 30 ++-- src/starter_choose.c | 40 +++-- src/title_screen.c | 49 ++++-- src/trade.c | 336 ++++++++++++++++++++++-------------- src/trainer_pokemon_sprites.c | 9 +- src/trainer_see.c | 19 +- src/unk_transition.c | 13 +- src/wallclock.c | 80 +++++++-- 60 files changed, 1398 insertions(+), 912 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index f1cff1de2..31ff11ee8 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -119,8 +119,8 @@ const struct OamData gUnknown_08524904 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -129,8 +129,8 @@ const struct OamData gUnknown_0852490C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -138,8 +138,8 @@ const struct OamData gUnknown_08524914 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -147,8 +147,8 @@ const struct OamData gUnknown_0852491C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -156,8 +156,8 @@ const struct OamData gUnknown_08524924 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -165,8 +165,8 @@ const struct OamData gUnknown_0852492C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -174,8 +174,8 @@ const struct OamData gUnknown_08524934 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -183,8 +183,8 @@ const struct OamData gUnknown_0852493C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -192,8 +192,8 @@ const struct OamData gUnknown_08524944 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -201,8 +201,8 @@ const struct OamData gUnknown_0852494C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -210,8 +210,8 @@ const struct OamData gUnknown_08524954 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -219,8 +219,8 @@ const struct OamData gUnknown_0852495C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; @@ -228,8 +228,8 @@ const struct OamData gUnknown_08524964 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -237,8 +237,8 @@ const struct OamData gUnknown_0852496C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -246,8 +246,8 @@ const struct OamData gUnknown_08524974 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -255,8 +255,8 @@ const struct OamData gUnknown_0852497C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -264,8 +264,8 @@ const struct OamData gUnknown_08524984 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -273,8 +273,8 @@ const struct OamData gUnknown_0852498C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -282,8 +282,8 @@ const struct OamData gUnknown_08524994 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -291,8 +291,8 @@ const struct OamData gUnknown_0852499C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -300,8 +300,8 @@ const struct OamData gUnknown_085249A4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -309,8 +309,8 @@ const struct OamData gUnknown_085249AC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -318,8 +318,8 @@ const struct OamData gUnknown_085249B4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -327,8 +327,8 @@ const struct OamData gUnknown_085249BC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; @@ -336,8 +336,8 @@ const struct OamData gUnknown_085249C4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -345,8 +345,8 @@ const struct OamData gUnknown_085249CC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -354,8 +354,8 @@ const struct OamData gUnknown_085249D4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -363,8 +363,8 @@ const struct OamData gUnknown_085249DC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -372,8 +372,8 @@ const struct OamData gUnknown_085249E4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -381,8 +381,8 @@ const struct OamData gUnknown_085249EC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -390,8 +390,8 @@ const struct OamData gUnknown_085249F4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -399,8 +399,8 @@ const struct OamData gUnknown_085249FC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -408,8 +408,8 @@ const struct OamData gUnknown_08524A04 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -417,8 +417,8 @@ const struct OamData gUnknown_08524A0C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -426,8 +426,8 @@ const struct OamData gUnknown_08524A14 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -435,8 +435,8 @@ const struct OamData gUnknown_08524A1C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; @@ -444,8 +444,8 @@ const struct OamData gUnknown_08524A24 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -453,8 +453,8 @@ const struct OamData gUnknown_08524A2C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -462,8 +462,8 @@ const struct OamData gUnknown_08524A34 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -471,8 +471,8 @@ const struct OamData gUnknown_08524A3C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -480,8 +480,8 @@ const struct OamData gUnknown_08524A44 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -489,8 +489,8 @@ const struct OamData gUnknown_08524A4C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -498,8 +498,8 @@ const struct OamData gUnknown_08524A54 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -507,8 +507,8 @@ const struct OamData gUnknown_08524A5C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -516,8 +516,8 @@ const struct OamData gUnknown_08524A64 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -525,8 +525,8 @@ const struct OamData gUnknown_08524A6C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -534,8 +534,8 @@ const struct OamData gUnknown_08524A74 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -543,8 +543,8 @@ const struct OamData gUnknown_08524A7C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; @@ -552,8 +552,8 @@ const struct OamData gUnknown_08524A84 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -561,8 +561,8 @@ const struct OamData gUnknown_08524A8C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -570,8 +570,8 @@ const struct OamData gUnknown_08524A94 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -579,8 +579,8 @@ const struct OamData gUnknown_08524A9C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -588,8 +588,8 @@ const struct OamData gUnknown_08524AA4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -597,8 +597,8 @@ const struct OamData gUnknown_08524AAC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -606,8 +606,8 @@ const struct OamData gUnknown_08524AB4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -615,8 +615,8 @@ const struct OamData gUnknown_08524ABC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -624,8 +624,8 @@ const struct OamData gUnknown_08524AC4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -633,8 +633,8 @@ const struct OamData gUnknown_08524ACC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -642,8 +642,8 @@ const struct OamData gUnknown_08524AD4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -651,8 +651,8 @@ const struct OamData gUnknown_08524ADC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; @@ -660,8 +660,8 @@ const struct OamData gUnknown_08524AE4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -669,8 +669,8 @@ const struct OamData gUnknown_08524AEC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -678,8 +678,8 @@ const struct OamData gUnknown_08524AF4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -687,8 +687,8 @@ const struct OamData gUnknown_08524AFC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -696,8 +696,8 @@ const struct OamData gUnknown_08524B04 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -705,8 +705,8 @@ const struct OamData gUnknown_08524B0C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -714,8 +714,8 @@ const struct OamData gUnknown_08524B14 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -723,8 +723,8 @@ const struct OamData gUnknown_08524B1C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -732,8 +732,8 @@ const struct OamData gUnknown_08524B24 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -741,8 +741,8 @@ const struct OamData gUnknown_08524B2C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -750,8 +750,8 @@ const struct OamData gUnknown_08524B34 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -759,8 +759,8 @@ const struct OamData gUnknown_08524B3C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; diff --git a/src/battle_arena.c b/src/battle_arena.c index 8146f5b38..f785fa7c3 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -406,10 +406,10 @@ static const struct OamData sJudgementIconOamData = .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 = 15, diff --git a/src/battle_bg.c b/src/battle_bg.c index 9ca0f8b84..524f73abf 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -42,10 +42,10 @@ static const struct OamData gUnknown_0831A988 = .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 = 0, .paletteNum = 0, @@ -59,10 +59,10 @@ static const struct OamData gUnknown_0831A990 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 64, .priority = 0, .paletteNum = 0, diff --git a/src/battle_dome.c b/src/battle_dome.c index f86faeffb..1b7953180 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -872,10 +872,10 @@ static const struct OamData gUnknown_0860CF70 = .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, @@ -889,10 +889,10 @@ static const struct OamData gUnknown_0860CF78 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 0, .paletteNum = 1, @@ -906,10 +906,10 @@ static const struct OamData gUnknown_0860CF80 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(16x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(16x8), .tileNum = 0, .priority = 0, .paletteNum = 2, @@ -923,10 +923,10 @@ static const struct OamData gUnknown_0860CF88 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 2, + .shape = SPRITE_SHAPE(8x16), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x16), .tileNum = 0, .priority = 0, .paletteNum = 2, diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 85c0b2808..367c1401f 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -385,10 +385,10 @@ static const struct OamData gUnknown_0861047C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 3, .paletteNum = 0, @@ -402,10 +402,10 @@ static const struct OamData gUnknown_08610484 = .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 = 3, .paletteNum = 0, @@ -419,10 +419,10 @@ static const struct OamData gUnknown_0861048C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -436,10 +436,10 @@ static const struct OamData gUnknown_08610494 = .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, diff --git a/src/battle_interface.c b/src/battle_interface.c index f2916012e..a8651f6cf 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -207,10 +207,10 @@ static const struct OamData sUnknown_0832C138 = .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 = 1, .paletteNum = 0, @@ -279,10 +279,10 @@ static const struct OamData sOamData_Healthbar = .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 = 1, .paletteNum = 0, @@ -446,10 +446,10 @@ static const struct OamData sUnknown_0832C354 = .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 = 1, .paletteNum = 0, @@ -463,10 +463,10 @@ static const struct OamData sOamData_StatusSummaryBalls = .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 = 1, .paletteNum = 0, diff --git a/src/battle_main.c b/src/battle_main.c index 2b0c5980e..0f593fef6 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -296,10 +296,10 @@ const struct OamData gOamData_831ACA8 = .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 = 2, .paletteNum = 0, @@ -313,10 +313,10 @@ const struct OamData gOamData_831ACB0 = .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 = 2, .paletteNum = 2, diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 2e13ea08b..3b8cac14f 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -282,10 +282,10 @@ static const struct OamData gOamData_861F378 = .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 = 1, .paletteNum = 0, diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index ac9fb3073..025d694e4 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -733,10 +733,10 @@ static const struct OamData sOamData_MonIconOnLvlUpBox = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/battle_transition.c b/src/battle_transition.c index 786d5e869..df6180d19 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -763,10 +763,10 @@ static const struct OamData gOamData_85C8E80 = .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 = 0, .paletteNum = 0, diff --git a/src/berry_blender.c b/src/berry_blender.c index 450bcae42..c792b9b40 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -404,10 +404,10 @@ static const struct OamData sOamData_8216314 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -547,10 +547,10 @@ static const struct OamData sOamData_821640C = .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, @@ -616,10 +616,10 @@ static const struct OamData sOamData_8216474 = .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 = 1, .paletteNum = 0, @@ -703,10 +703,10 @@ static const struct OamData sOamData_8216514 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -761,10 +761,10 @@ static const struct OamData sOamData_8216560 = .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 = 1, .paletteNum = 0, diff --git a/src/cable_car.c b/src/cable_car.c index 420bdd30f..ab7b5726a 100755 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -153,19 +153,22 @@ const struct SpritePalette gUnknown_085CDB74[] = { const struct OamData gOamData_85CDB84 = { .affineMode = ST_OAM_AFFINE_DOUBLE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2 }; const struct OamData gOamData_85CDB8C = { .affineMode = ST_OAM_AFFINE_DOUBLE, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2 }; const struct OamData gOamData_85CDB94 = { .affineMode = ST_OAM_AFFINE_DOUBLE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2 }; diff --git a/src/contest_painting.c b/src/contest_painting.c index 931deb01b..29f3c871d 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -154,10 +154,10 @@ const struct OamData gUnknown_085B0830 = .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 1, .bpp = ST_OAM_8BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/credits.c b/src/credits.c index 4483e3160..1e96514b1 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1056,10 +1056,10 @@ static const struct OamData gUnknown_085E703C = .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 = 1, .paletteNum = 0, diff --git a/src/data/field_event_obj/base_oam.h b/src/data/field_event_obj/base_oam.h index 543382d43..af961f492 100755 --- a/src/data/field_event_obj/base_oam.h +++ b/src/data/field_event_obj/base_oam.h @@ -1,47 +1,47 @@ const struct OamData gEventObjectBaseOam_8x8 = { - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2 }; const struct OamData gEventObjectBaseOam_16x8 = { - .shape = 1, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2 }; const struct OamData gEventObjectBaseOam_16x16 = { - .shape = 0, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2 }; const struct OamData gEventObjectBaseOam_32x8 = { - .shape = 1, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2 }; const struct OamData gEventObjectBaseOam_64x32 = { - .shape = 1, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2 }; const struct OamData gEventObjectBaseOam_16x32 = { - .shape = 2, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2 }; const struct OamData gEventObjectBaseOam_32x32 = { - .shape = 0, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2 }; const struct OamData gEventObjectBaseOam_64x64 = { - .shape = 0, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2 }; diff --git a/src/decoration.c b/src/decoration.c index 0712b5d32..47e3ae18c 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -392,7 +392,9 @@ const struct SpritePalette gUnknown_085A73E0 = { }; const struct OamData Unknown_085A73E8 = { - .size = 1, .priority = 1 + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .priority = 1 }; const union AnimCmd Unknown_085A73F0[] = { diff --git a/src/easy_chat.c b/src/easy_chat.c index b03058eb9..4cc8b9c5b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -772,10 +772,10 @@ static const struct OamData sOamData_8597D10 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 3, .paletteNum = 0, @@ -798,10 +798,10 @@ static const struct OamData sUnknown_08597D30 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -851,10 +851,10 @@ static const struct OamData sUnknown_08597D80 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -913,10 +913,10 @@ static const struct OamData sUnknown_08597DE8 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 3, .paletteNum = 0, @@ -939,10 +939,10 @@ static const struct OamData sUnknown_08597E08 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(32x8), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(32x8), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -955,10 +955,10 @@ static const struct OamData gUnknown_08597E10 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 68728f818..00b67a5d9 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -86,10 +86,10 @@ static const struct OamData sOamData_EggHatch = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -166,10 +166,10 @@ static const struct OamData sOamData_EggShard = .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 = 2, .paletteNum = 0, diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index bfd46978c..e36d47c2b 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -53,10 +53,10 @@ static const struct OamData sOamData_EvoSparkle = .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 = 1, .paletteNum = 0, diff --git a/src/field_effect.c b/src/field_effect.c index ee9dcb987..825efc380 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -270,7 +270,8 @@ const u8 gUnknown_0855C190[] = INCBIN_U8("graphics/unknown/unknown_55C190.4bpp") const u8 gUnknown_0855C1B0[] = INCBIN_U8("graphics/unknown/unknown_55C1B0.4bpp"); const u8 gUnknown_0855C1D0[] = INCBIN_U8("graphics/unknown/unknown_55C1D0.4bpp"); -bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = { +bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = +{ FieldEffectCmd_loadtiles, FieldEffectCmd_loadfadedpal, FieldEffectCmd_loadpal, @@ -281,25 +282,48 @@ bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = { FieldEffectCmd_loadfadedpal_callnative, }; -const struct OamData gNewGameBirchOamAttributes = {.size = 3}; -const struct OamData gOamData_855C218 = {.size = 0}; -const struct OamData gOamData_855C220 = {.size = 1}; +const struct OamData gNewGameBirchOamAttributes = +{ + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64) +}; -const struct SpriteFrameImage gNewGameBirchPicTable[] = { +const struct OamData gOamData_855C218 = +{ + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8) +}; + +const struct OamData gOamData_855C220 = +{ + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16) +}; + +const struct SpriteFrameImage gNewGameBirchPicTable[] = +{ obj_frame_tiles(gNewGameBirchPic) }; -const struct SpritePalette gNewGameBirchObjectPaletteInfo = {.data = gNewGameBirchPalette, .tag = 0x1006}; -const union AnimCmd gNewGameBirchImageAnim[] = { +const struct SpritePalette gNewGameBirchObjectPaletteInfo = +{ + .data = gNewGameBirchPalette, + .tag = 0x1006 +}; + +const union AnimCmd gNewGameBirchImageAnim[] = +{ ANIMCMD_FRAME(.imageValue = 0, .duration = 1), ANIMCMD_END }; -const union AnimCmd *const gNewGameBirchImageAnimTable[] = { +const union AnimCmd *const gNewGameBirchImageAnimTable[] = +{ gNewGameBirchImageAnim }; -const struct SpriteTemplate gNewGameBirchObjectTemplate = { +const struct SpriteTemplate gNewGameBirchObjectTemplate = +{ .tileTag = 0xFFFF, .paletteTag = 4102, .oam = &gNewGameBirchOamAttributes, @@ -309,31 +333,47 @@ const struct SpriteTemplate gNewGameBirchObjectTemplate = { .callback = SpriteCallbackDummy }; -const struct SpritePalette gFieldEffectObjectPaletteInfo4 = {.data = gFieldEffectObjectPalette4, .tag = 0x1007}; -const struct SpritePalette gFieldEffectObjectPaletteInfo5 = {.data = gFieldEffectObjectPalette5, .tag = 0x1010}; -const struct OamData gOamData_855C26C = { - .shape = 1, - .size = 2 +const struct SpritePalette gFieldEffectObjectPaletteInfo4 = +{ + .data = gFieldEffectObjectPalette4, + .tag = 0x1007 +}; + +const struct SpritePalette gFieldEffectObjectPaletteInfo5 = +{ + .data = gFieldEffectObjectPalette5, + .tag = 0x1010 +}; + +const struct OamData gOamData_855C26C = +{ + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16) }; -const struct SpriteFrameImage gSpriteImageTable_855C274[] = { +const struct SpriteFrameImage gSpriteImageTable_855C274[] = +{ obj_frame_tiles(gSpriteImage_855A970) }; -const struct SpriteFrameImage gSpriteImageTable_855C27C[] = { +const struct SpriteFrameImage gSpriteImageTable_855C27C[] = +{ obj_frame_tiles(gSpriteImage_855A9B0), obj_frame_tiles(gSpriteImage_855AA70) }; -const struct SpriteFrameImage gSpriteImageTable_855C28C[] = { +const struct SpriteFrameImage gSpriteImageTable_855C28C[] = +{ obj_frame_tiles(gSpriteImage_855AB30) }; -const struct SpriteFrameImage gSpriteImageTable_855C294[] = { +const struct SpriteFrameImage gSpriteImageTable_855C294[] = +{ {.data = gSpriteImage_855AD30, .size = 0x200} // the macro breaks down here }; -const struct Subsprite gSubspriteTable_855C29C[] = { +const struct Subsprite gSubspriteTable_855C29C[] = +{ {.x = -12, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 0}, {.x = 4, .y = -8, .priority = 2, .tileOffset = 2, .shape = 0, .size = 0}, {.x = -12, .y = 0, .priority = 2, .tileOffset = 3, .shape = 1, .size = 0}, @@ -342,7 +382,8 @@ const struct Subsprite gSubspriteTable_855C29C[] = { const struct SubspriteTable gUnknown_0855C2AC = subsprite_table(gSubspriteTable_855C29C); -const struct Subsprite gSubspriteTable_855C2B4[] = { +const struct Subsprite gSubspriteTable_855C2B4[] = +{ {.x = -32, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 1}, {.x = 0, .y = -8, .priority = 2, .tileOffset = 4, .shape = 1, .size = 1}, {.x = -32, .y = 0, .priority = 2, .tileOffset = 8, .shape = 1, .size = 1}, @@ -351,12 +392,14 @@ const struct Subsprite gSubspriteTable_855C2B4[] = { const struct SubspriteTable gUnknown_0855C2C4 = subsprite_table(gSubspriteTable_855C2B4); -const union AnimCmd gSpriteAnim_855C2CC[] = { +const union AnimCmd gSpriteAnim_855C2CC[] = +{ ANIMCMD_FRAME(.imageValue = 0, .duration = 1), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_855C2D4[] = { +const union AnimCmd gSpriteAnim_855C2D4[] = +{ ANIMCMD_FRAME(.imageValue = 0, .duration = 16), ANIMCMD_FRAME(.imageValue = 1, .duration = 16), ANIMCMD_FRAME(.imageValue = 0, .duration = 16), @@ -368,16 +411,19 @@ const union AnimCmd gSpriteAnim_855C2D4[] = { ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_855C2F8[] = { +const union AnimCmd *const gSpriteAnimTable_855C2F8[] = +{ gSpriteAnim_855C2CC, gSpriteAnim_855C2D4 }; -const union AnimCmd *const gSpriteAnimTable_855C300[] = { +const union AnimCmd *const gSpriteAnimTable_855C300[] = +{ gSpriteAnim_855C2CC }; -const struct SpriteTemplate gSpriteTemplate_855C304 = { +const struct SpriteTemplate gSpriteTemplate_855C304 = +{ .tileTag = 0xFFFF, .paletteTag = 4103, .oam = &gOamData_855C218, @@ -387,7 +433,8 @@ const struct SpriteTemplate gSpriteTemplate_855C304 = { .callback = SpriteCB_PokeballGlow }; -const struct SpriteTemplate gSpriteTemplate_855C31C = { +const struct SpriteTemplate gSpriteTemplate_855C31C = +{ .tileTag = 0xFFFF, .paletteTag = 4100, .oam = &gOamData_855C220, @@ -397,7 +444,8 @@ const struct SpriteTemplate gSpriteTemplate_855C31C = { .callback = SpriteCB_PokecenterMonitor }; -const struct SpriteTemplate gSpriteTemplate_855C334 = { +const struct SpriteTemplate gSpriteTemplate_855C334 = +{ .tileTag = 0xFFFF, .paletteTag = 4112, .oam = &gOamData_855C220, @@ -407,7 +455,8 @@ const struct SpriteTemplate gSpriteTemplate_855C334 = { .callback = SpriteCB_HallOfFameMonitor }; -const struct SpriteTemplate gSpriteTemplate_855C34C = { +const struct SpriteTemplate gSpriteTemplate_855C34C = +{ .tileTag = 0xFFFF, .paletteTag = 4112, .oam = &gOamData_855C26C, @@ -417,21 +466,24 @@ const struct SpriteTemplate gSpriteTemplate_855C34C = { .callback = SpriteCB_HallOfFameMonitor }; -void (*const gUnknown_0855C364[])(struct Task *) = { +void (*const gUnknown_0855C364[])(struct Task *) = +{ PokecenterHealEffect_0, PokecenterHealEffect_1, PokecenterHealEffect_2, PokecenterHealEffect_3 }; -void (*const gUnknown_0855C374[])(struct Task *) = { +void (*const gUnknown_0855C374[])(struct Task *) = +{ HallOfFameRecordEffect_0, HallOfFameRecordEffect_1, HallOfFameRecordEffect_2, HallOfFameRecordEffect_3 }; -void (*const gUnknown_0855C384[])(struct Sprite *) = { +void (*const gUnknown_0855C384[])(struct Sprite *) = +{ PokeballGlowEffect_0, PokeballGlowEffect_1, PokeballGlowEffect_2, @@ -442,7 +494,8 @@ void (*const gUnknown_0855C384[])(struct Sprite *) = { PokeballGlowEffect_7 }; -const struct Coords16 gUnknown_0855C3A4[] = { +const struct Coords16 gUnknown_0855C3A4[] = +{ {.x = 0, .y = 0}, {.x = 6, .y = 0}, {.x = 0, .y = 4}, @@ -455,7 +508,8 @@ const u8 gUnknown_0855C3BC[] = {16, 12, 8, 0}; const u8 gUnknown_0855C3C0[] = {16, 12, 8, 0}; const u8 gUnknown_0855C3C4[] = { 0, 0, 0, 0}; -bool8 (*const gUnknown_0855C3C8[])(struct Task *) = { +bool8 (*const gUnknown_0855C3C8[])(struct Task *) = +{ sub_80B6BCC, sub_80B6C74, sub_80B6C90, @@ -465,7 +519,8 @@ bool8 (*const gUnknown_0855C3C8[])(struct Task *) = { sub_80B6E18, }; -bool8 (*const gUnknown_0855C3E4[])(struct Task *) = { +bool8 (*const gUnknown_0855C3E4[])(struct Task *) = +{ sub_80B6EC0, sub_80B6EE0, sub_80B6F50, @@ -474,7 +529,8 @@ bool8 (*const gUnknown_0855C3E4[])(struct Task *) = { sub_80B6FA8, }; -bool8 (*const gUnknown_0855C3FC[])(struct Task *) = { +bool8 (*const gUnknown_0855C3FC[])(struct Task *) = +{ sub_80B7114, sub_80B7190, sub_80B71D0, @@ -484,7 +540,8 @@ bool8 (*const gUnknown_0855C3FC[])(struct Task *) = { sub_80B72F4, }; -bool8 (*const gUnknown_0855C418[])(struct Task *, struct EventObject *) = { +bool8 (*const gUnknown_0855C418[])(struct Task *, struct EventObject *) = +{ sub_80B73D0, waterfall_1_do_anim_probably, waterfall_2_wait_anim_finish_probably, @@ -492,13 +549,15 @@ bool8 (*const gUnknown_0855C418[])(struct Task *, struct EventObject *) = { sub_80B7478, }; -bool8 (*const gUnknown_0855C42C[])(struct Task *) = { +bool8 (*const gUnknown_0855C42C[])(struct Task *) = +{ dive_1_lock, dive_2_unknown, dive_3_unknown, }; -bool8 (*const gUnknown_0855C438[])(struct Task *, struct EventObject *, struct Sprite *) = { +bool8 (*const gUnknown_0855C438[])(struct Task *, struct EventObject *, struct Sprite *) = +{ sub_80B764C, sub_80B7684, sub_80B76B8, @@ -507,14 +566,16 @@ bool8 (*const gUnknown_0855C438[])(struct Task *, struct EventObject *, struct S sub_80B7814, }; -bool8 (*const gUnknown_0855C450[])(struct Task *, struct EventObject *, struct Sprite *) = { +bool8 (*const gUnknown_0855C450[])(struct Task *, struct EventObject *, struct Sprite *) = +{ sub_80B78EC, sub_80B791C, sub_80B7968, sub_80B79BC, }; -bool8 (*const gUnknown_0855C460[])(struct Task *, struct EventObject *, struct Sprite *) = { +bool8 (*const gUnknown_0855C460[])(struct Task *, struct EventObject *, struct Sprite *) = +{ sub_80B7AE8, sub_80B7B18, sub_80B7B94, @@ -522,7 +583,8 @@ bool8 (*const gUnknown_0855C460[])(struct Task *, struct EventObject *, struct S sub_80B7BF4, }; -void (*const gEscapeRopeFieldEffectFuncs[])(struct Task *) = { +void (*const gEscapeRopeFieldEffectFuncs[])(struct Task *) = +{ EscapeRopeFieldEffect_Step0, EscapeRopeFieldEffect_Step1, }; diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index be8fdc6cb..6ec83f1a0 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -48,10 +48,10 @@ static const struct OamData gOamData_839A9DC = .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 = 3, .paletteNum = 0, @@ -577,10 +577,10 @@ static const struct OamData gOamData_839AA68 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 2, + .shape = SPRITE_SHAPE(16x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(16x32), .tileNum = 0, .priority = 1, .paletteNum = 2, @@ -648,10 +648,10 @@ static const struct OamData gOamData_839AAD4 = .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 = 1, .paletteNum = 0, @@ -704,10 +704,10 @@ static const struct OamData gOamData_839AB2C = .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 = 2, .paletteNum = 0, @@ -1517,10 +1517,10 @@ const struct OamData gOamData_839ABB8 = .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 = 1, .paletteNum = 15, @@ -1754,10 +1754,10 @@ const struct OamData gOamData_839ABF0 = .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 = 2, .paletteNum = 0, @@ -1953,10 +1953,10 @@ const struct OamData gOamData_839AC1C = .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 = 1, .paletteNum = 0, diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index a715608c5..b1f4a6368 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -132,10 +132,10 @@ static const struct OamData sOamData_CutGrass = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 1, .priority = 1, .paletteNum = 1, diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index d4d6075f3..5d1920aac 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -93,8 +93,8 @@ static const struct OamData gOamData_858E4D8 = .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -246,8 +246,8 @@ static const struct OamData gOamData_858E658 = .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 2c31dba01..8eba90d96 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -178,10 +178,10 @@ static const struct OamData sOamData_85E53FC = .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, diff --git a/src/intro.c b/src/intro.c index 84127cf64..e97fbedb0 100644 --- a/src/intro.c +++ b/src/intro.c @@ -145,10 +145,10 @@ static const struct OamData gUnknown_085E4A94 = .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 = 1, .paletteNum = 0, @@ -214,10 +214,10 @@ static const struct OamData gUnknown_085E4B28 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -251,10 +251,10 @@ static const struct OamData gUnknown_085E4B58 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -307,10 +307,10 @@ static const struct OamData gUnknown_085E4BBC = .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 = 1, .paletteNum = 0, @@ -356,10 +356,10 @@ static const struct OamData gUnknown_085E4C14 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -441,10 +441,10 @@ static const struct OamData gUnknown_085E4CF0 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 2, + .shape = SPRITE_SHAPE(16x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(16x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -481,10 +481,10 @@ static const struct OamData gUnknown_085E4D2C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -572,10 +572,10 @@ static const struct OamData gUnknown_085E4DD4 = .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, @@ -588,10 +588,10 @@ static const struct OamData gUnknown_085E4DDC = .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, @@ -604,10 +604,10 @@ static const struct OamData gUnknown_085E4DE4 = .objMode = 1, .mosaic = 0, .bpp = 0, - .shape = 2, + .shape = SPRITE_SHAPE(32x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(32x64), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -804,10 +804,10 @@ static const struct OamData gUnknown_085E4FB0 = .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, @@ -857,10 +857,10 @@ static const struct OamData gUnknown_085E501C = .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 = 0, .paletteNum = 0, diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index b98708324..29ee2067f 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -57,43 +57,51 @@ static void nullsub_65(struct Sprite *sprite); static void sub_817B7C4(struct Sprite *sprite); static void nullsub_66(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085F504C = { +static const struct SpriteTemplate gUnknown_085F504C = +{ 2000, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_817B62C }; -static const struct CompressedSpriteSheet gUnknown_085F5064[] = { +static const struct CompressedSpriteSheet gUnknown_085F5064[] = +{ { gUnknown_085F16A8, 0x400, 2000 }, { NULL } }; -static const union AnimCmd gUnknown_085F5074[] = { +static const union AnimCmd gUnknown_085F5074[] = +{ ANIMCMD_FRAME( 0, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F507C[] = { +static const union AnimCmd gUnknown_085F507C[] = +{ ANIMCMD_FRAME(16, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F5084[] = { +static const union AnimCmd gUnknown_085F5084[] = +{ ANIMCMD_FRAME(20, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F508C[] = { +static const union AnimCmd gUnknown_085F508C[] = +{ ANIMCMD_FRAME(22, 30), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5094[] = { +static const union AnimCmd *const gUnknown_085F5094[] = +{ gUnknown_085F5074, gUnknown_085F507C, gUnknown_085F5084, gUnknown_085F508C }; -static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = { +static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = +{ { 0, ST_OAM_SQUARE, 2, 72, 32, 100, 0xc00 }, { 0, ST_OAM_SQUARE, 2, 158, 32, 100, 0xc00 }, { 1, ST_OAM_SQUARE, 1, 192, 40, 101, 0x800 }, @@ -105,33 +113,39 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = { { 3, ST_OAM_H_RECTANGLE, 0, 240, 46, 103, 0x100 }, }; -static const struct CompressedSpriteSheet gUnknown_085F50EC[] = { +static const struct CompressedSpriteSheet gUnknown_085F50EC[] = +{ { gIntro2TreeTiles, 0x400, 2000 }, { NULL } }; -static const union AnimCmd gUnknown_085F50FC[] = { +static const union AnimCmd gUnknown_085F50FC[] = +{ ANIMCMD_FRAME( 0, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F5104[] = { +static const union AnimCmd gUnknown_085F5104[] = +{ ANIMCMD_FRAME(16, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F510C[] = { +static const union AnimCmd gUnknown_085F510C[] = +{ ANIMCMD_FRAME(24, 30), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5114[] = { +static const union AnimCmd *const gUnknown_085F5114[] = +{ gUnknown_085F50FC, gUnknown_085F5104, gUnknown_085F510C }; -static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = { +static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = +{ { 0, ST_OAM_SQUARE, 2, 16, 88, 100, 0x2000 }, { 0, ST_OAM_SQUARE, 2, 80, 88, 100, 0x2000 }, { 0, ST_OAM_SQUARE, 2, 144, 88, 100, 0x2000 }, @@ -146,21 +160,25 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = { { 2, ST_OAM_V_RECTANGLE, 2, 248, 88, 102, 0x800 }, }; -static const struct CompressedSpriteSheet gUnknown_085F5180[] = { +static const struct CompressedSpriteSheet gUnknown_085F5180[] = +{ { gIntro2NightTiles, 0x400, 2000 }, { NULL } }; -static const union AnimCmd gUnknown_085F5190[] = { +static const union AnimCmd gUnknown_085F5190[] = +{ ANIMCMD_FRAME(0, 30), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5198[] = { +static const union AnimCmd *const gUnknown_085F5198[] = +{ gUnknown_085F5190 }; -static const struct IntroCreditsSpriteMetadata gUnknown_085F519C[] = { +static const struct IntroCreditsSpriteMetadata gUnknown_085F519C[] = +{ { 0, ST_OAM_SQUARE, 2, 24, 88, 100, 0x1000 }, { 0, ST_OAM_SQUARE, 2, 64, 88, 100, 0x1000 }, { 0, ST_OAM_SQUARE, 2, 104, 88, 100, 0x1000 }, @@ -169,11 +187,16 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F519C[] = { { 0, ST_OAM_SQUARE, 2, 224, 88, 100, 0x1000 }, }; -static const struct OamData gOamData_85F51CC = { - .y = 160, .shape = ST_OAM_SQUARE, .size = 3, .priority = 1 +static const struct OamData gOamData_85F51CC = +{ + .y = 160, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), + .priority = 1 }; -static const union AnimCmd gUnknown_085F51D4[] = { +static const union AnimCmd gUnknown_085F51D4[] = +{ ANIMCMD_FRAME( 0, 8), ANIMCMD_FRAME( 64, 8), ANIMCMD_FRAME(128, 8), @@ -181,23 +204,31 @@ static const union AnimCmd gUnknown_085F51D4[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gUnknown_085F51E8[] = { +static const union AnimCmd *const gUnknown_085F51E8[] = +{ gUnknown_085F51D4 }; -static const struct SpriteTemplate gUnknown_085F51EC = { +static const struct SpriteTemplate gUnknown_085F51EC = +{ 1002, 1002, &gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 }; -static const struct SpriteTemplate gUnknown_085F5204 = { +static const struct SpriteTemplate gUnknown_085F5204 = +{ 1003, 1003, &gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 }; -static const struct OamData gUnknown_085F521C = { - .y = 160, .shape = ST_OAM_H_RECTANGLE, .size = 3, .priority = 1 +static const struct OamData gUnknown_085F521C = +{ + .y = 160, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), + .priority = 1 }; -static const union AnimCmd gUnknown_085F5224[] = { +static const union AnimCmd gUnknown_085F5224[] = +{ ANIMCMD_FRAME( 0, 8), ANIMCMD_FRAME( 32, 8), ANIMCMD_FRAME( 64, 8), @@ -205,71 +236,89 @@ static const union AnimCmd gUnknown_085F5224[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gUnknown_085F5238[] = { +static const union AnimCmd *const gUnknown_085F5238[] = +{ gUnknown_085F5224 }; -static const struct SpriteTemplate gUnknown_085F523C = { +static const struct SpriteTemplate gUnknown_085F523C = +{ 1001, 1002, &gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 }; -static const struct SpriteTemplate gUnknown_085F5254 = { +static const struct SpriteTemplate gUnknown_085F5254 = +{ 1001, 1003, &gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 }; -static const struct OamData gUnknown_085F526C = { - .y = 160, .shape = ST_OAM_SQUARE, .size = 3, .priority = 1 +static const struct OamData gUnknown_085F526C = +{ + .y = 160, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), + .priority = 1 }; -static const union AnimCmd gUnknown_085F5274[] = { +static const union AnimCmd gUnknown_085F5274[] = +{ ANIMCMD_FRAME( 0, 16), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F527C[] = { +static const union AnimCmd gUnknown_085F527C[] = +{ ANIMCMD_FRAME( 64, 16), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5284[] = { +static const union AnimCmd *const gUnknown_085F5284[] = +{ gUnknown_085F5274, gUnknown_085F527C }; -static const struct SpriteTemplate gUnknown_085F528C = { +static const struct SpriteTemplate gUnknown_085F528C = +{ 1004, 1004, &gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 }; -static const struct SpriteTemplate gUnknown_085F52A4 = { +static const struct SpriteTemplate gUnknown_085F52A4 = +{ 1005, 1005, &gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 }; -const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[] = { +const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[] = +{ { gIntro2BrendanNoTurnGfx, 0x2000, 1002 }, { NULL } }; -const struct CompressedSpriteSheet gIntro2MaySpriteSheet[] = { +const struct CompressedSpriteSheet gIntro2MaySpriteSheet[] = +{ { gIntro2MayNoTurnGfx, 0x2000, 1003 }, { NULL } }; -const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[] = { +const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[] = +{ { gIntro2BicycleTiles, 0x1000, 1001 }, { NULL } }; -static const struct CompressedSpriteSheet gUnknown_085F52EC[] = { +static const struct CompressedSpriteSheet gUnknown_085F52EC[] = +{ { gIntro2FlygonGfx, 0x1000, 1004 }, { NULL } }; -const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[] = { +const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[] = +{ { gIntro2FlygonGfx, 0x1000, 1005 }, { NULL } }; -const struct SpritePalette gIntroBikeAndFlygonPalette[] = { +const struct SpritePalette gIntroBikeAndFlygonPalette[] = +{ { gIntro2BrendanNoTurnPal, 1002 }, { gIntro2BrendanNoTurnPal, 1003 }, { gIntro2FlygonPal, 1004 }, @@ -277,32 +326,38 @@ const struct SpritePalette gIntroBikeAndFlygonPalette[] = { { NULL } }; -const struct CompressedSpriteSheet gUnknown_085F5334[] = { +const struct CompressedSpriteSheet gUnknown_085F5334[] = +{ { gIntro2BrendanTiles, 0x3800, 1002 }, { NULL } }; -const struct CompressedSpriteSheet gUnknown_085F5344[] = { +const struct CompressedSpriteSheet gUnknown_085F5344[] = +{ { gIntro2MayTiles, 0x3800, 1003 }, { NULL } }; -const struct CompressedSpriteSheet gUnknown_085F5354[] = { +const struct CompressedSpriteSheet gUnknown_085F5354[] = +{ { gIntro2BicycleTiles, 0x1000, 1001 }, { NULL } }; -static const struct CompressedSpriteSheet gUnknown_085F5364[] = { +static const struct CompressedSpriteSheet gUnknown_085F5364[] = +{ { gIntro2LatiosTiles, 0x1000, 1004 }, { NULL } }; -static const struct CompressedSpriteSheet gUnknown_085F5374[] = { +static const struct CompressedSpriteSheet gUnknown_085F5374[] = +{ { gIntro2LatiasTiles, 0x1000, 1005 }, { NULL } }; -const struct SpritePalette gUnknown_085F5384[] = { +const struct SpritePalette gUnknown_085F5384[] = +{ { gIntro2BrendanPalette, 1002 }, { gIntro2MayPalette, 1003 }, { gIntro2LatiosPalette, 1004 }, @@ -310,12 +365,14 @@ const struct SpritePalette gUnknown_085F5384[] = { { NULL } }; -const struct CompressedSpriteSheet gUnknown_085F53AC[] = { +const struct CompressedSpriteSheet gUnknown_085F53AC[] = +{ { gIntro2BrendanTiles, 0x2000, 1002}, { NULL } }; -const struct CompressedSpriteSheet gUnknown_085F53BC[] = { +const struct CompressedSpriteSheet gUnknown_085F53BC[] = +{ { gIntro2MayTiles, 0x2000, 1003}, { NULL } }; diff --git a/src/item_icon.c b/src/item_icon.c index e9379dbba..7bf1a29ca 100644 --- a/src/item_icon.c +++ b/src/item_icon.c @@ -20,10 +20,10 @@ static const struct OamData sOamData_ItemIcon = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 2, diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index 669195b33..83ed3abfe 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -36,10 +36,10 @@ static const struct OamData sOamData_857FAA4 = .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 = 1, .paletteNum = 0, @@ -146,10 +146,10 @@ static const struct OamData sOamData_857FB64 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 4, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -217,10 +217,10 @@ static const struct OamData sOamData_857FBC8 = .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 = 1, .paletteNum = 7, @@ -234,10 +234,10 @@ static const struct OamData sOamData_857FBD0 = .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 = 0, .paletteNum = 7, @@ -374,10 +374,10 @@ static const struct OamData sOamData_857FDFC = .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 = 1, .paletteNum = 0, diff --git a/src/link_rfu.c b/src/link_rfu.c index d80ff2ae9..a557397f0 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -155,7 +155,8 @@ const u8 sWireless_RSEtoASCIITable[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00 }; const struct OamData sWirelessStatusIndicatorOamData = { - .size = 1 + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16) }; static const union AnimCmd sWirelessStatusIndicatorAnim0[] = { // 3 bars diff --git a/src/list_menu.c b/src/list_menu.c index 51d7dcb15..a5786754c 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -129,10 +129,10 @@ static const struct OamData sOamData_ScrollArrowIndicator = .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, @@ -186,8 +186,8 @@ static const struct Subsprite sSubsprite_RedOutline1 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 0, .priority = 0, }; @@ -196,8 +196,8 @@ static const struct Subsprite sSubsprite_RedOutline2 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 1, .priority = 0, }; @@ -206,8 +206,8 @@ static const struct Subsprite sSubsprite_RedOutline3 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 2, .priority = 0, }; @@ -216,8 +216,8 @@ static const struct Subsprite sSubsprite_RedOutline4 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 3, .priority = 0, }; @@ -226,8 +226,8 @@ static const struct Subsprite sSubsprite_RedOutline5 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 4, .priority = 0, }; @@ -236,8 +236,8 @@ static const struct Subsprite sSubsprite_RedOutline6 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 5, .priority = 0, }; @@ -246,8 +246,8 @@ static const struct Subsprite sSubsprite_RedOutline7 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 6, .priority = 0, }; @@ -256,8 +256,8 @@ static const struct Subsprite sSubsprite_RedOutline8 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 7, .priority = 0, }; @@ -269,10 +269,10 @@ static const struct OamData sOamData_RedArrowCursor = .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, diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 3fb5ca40d..b5745d812 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -37,10 +37,10 @@ static const struct OamData sOamData_859F4E8 = .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, diff --git a/src/mirage_tower.c b/src/mirage_tower.c index 4f5834db1..898180df4 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -142,10 +142,10 @@ static const struct OamData gOamData_8617DF4 = .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 = 3, @@ -192,10 +192,10 @@ static const struct OamData sCeilingCrumble2OamData = .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -230,10 +230,10 @@ static const struct OamData sCeilingCrumble1OamData = .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/mon_markings.c b/src/mon_markings.c index 48f0f5ecb..f8b128045 100644 --- a/src/mon_markings.c +++ b/src/mon_markings.c @@ -30,10 +30,10 @@ static const struct OamData gUnknown_0859EE7C = .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 = 0, .paletteNum = 0, @@ -47,10 +47,10 @@ static const struct OamData gUnknown_0859EE84 = .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, @@ -156,10 +156,10 @@ static const struct OamData gUnknown_0859EF1C = .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, diff --git a/src/money.c b/src/money.c index 4ff8086ea..7b95a75ab 100644 --- a/src/money.c +++ b/src/money.c @@ -24,10 +24,10 @@ static const struct OamData sOamData_MoneyLabel = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/naming_screen.c b/src/naming_screen.c index 22bbb84d7..75b7c8566 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1910,10 +1910,10 @@ const struct OamData gOamData_858BFEC = .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, @@ -1927,10 +1927,10 @@ const struct OamData gOamData_858BFF4 = .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, @@ -1944,10 +1944,10 @@ const struct OamData gOamData_858BFFC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/party_menu.c b/src/party_menu.c index ec35fc068..bedd0ce57 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -1175,10 +1175,10 @@ static const struct OamData gOamData_83765EC = .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 = 1, .paletteNum = 0, @@ -1231,10 +1231,10 @@ static const struct OamData sOamData_8615ED8 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -1287,10 +1287,10 @@ static const struct OamData sOamData_8615F20 = .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 = 2, .paletteNum = 0, @@ -1366,10 +1366,10 @@ static const struct OamData sOamData_8615F90 = .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 = 1, .paletteNum = 0, diff --git a/src/pokeball.c b/src/pokeball.c index d4605ccd8..793609ec2 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -99,10 +99,10 @@ static const struct OamData sBallOamData = .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 = 2, .paletteNum = 0, diff --git a/src/pokeblock.c b/src/pokeblock.c index 2682754aa..ee18d0251 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -222,10 +222,10 @@ static const struct OamData sOamData_PokeblockCase = .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 = 2, .paletteNum = 0, diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index da803f454..59ba1b4dc 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -463,10 +463,10 @@ static const struct OamData sThrownPokeblockOamData = .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 = 1, .paletteNum = 0, diff --git a/src/pokedex.c b/src/pokedex.c index 4bf8dff6d..cceb50ba1 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -248,10 +248,10 @@ static const struct OamData sOamData_855CFE4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -265,10 +265,10 @@ static const struct OamData sOamData_855CFEC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(16x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(16x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -282,10 +282,10 @@ static const struct OamData sOamData_855CFF4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -299,10 +299,10 @@ static const struct OamData sOamData_855CFFC = .objMode = 2, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -316,10 +316,10 @@ static const struct OamData sOamData_855D004 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -333,10 +333,10 @@ static const struct OamData sOamData_855D00C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_V_RECTANGLE, + .shape = SPRITE_SHAPE(8x16), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x16), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index eeea3c210..00fe9ab82 100755 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -83,14 +83,21 @@ static const u32 sAreaGlow_Gfx[] = INCBIN_U32("graphics/pokedex/area_glow.4bpp.l static const u16 sSpeciesHiddenFromAreaScreen[] = { SPECIES_WYNAUT }; -static const u16 sMovingRegionMapSections[3] = { MAPSEC_MARINE_CAVE, MAPSEC_UNDERWATER_MARINE_CAVE, MAPSEC_TERRA_CAVE }; +static const u16 sMovingRegionMapSections[3] = +{ + MAPSEC_MARINE_CAVE, + MAPSEC_UNDERWATER_MARINE_CAVE, + MAPSEC_TERRA_CAVE +}; -static const u16 sFeebasData[][3] = { +static const u16 sFeebasData[][3] = +{ {SPECIES_FEEBAS, MAP_GROUP(ROUTE119), MAP_NUM(ROUTE119)}, {NUM_SPECIES} }; -static const u16 sLandmarkData[][2] = { +static const u16 sLandmarkData[][2] = +{ {MAPSEC_SKY_PILLAR, FLAG_LANDMARK_SKY_PILLAR}, {MAPSEC_SEAFLOOR_CAVERN, FLAG_LANDMARK_SEAFLOOR_CAVERN}, {MAPSEC_ALTERING_CAVE_2, FLAG_LANDMARK_ALTERING_CAVE}, @@ -100,7 +107,8 @@ static const u16 sLandmarkData[][2] = { {MAPSEC_NONE} }; -static const u8 sAreaGlowTilemapMapping[] = { +static const u8 sAreaGlowTilemapMapping[] = +{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x11, 0x20, 0x02, 0x03, 0x27, 0x2d, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, 0x21, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x2a, 0x2e, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, @@ -119,7 +127,8 @@ static const u8 sAreaGlowTilemapMapping[] = { 0x1f, 0x22, 0x25, 0x03, 0x28, 0x2d, 0x2c, 0x07, 0x2b, 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, }; -static const struct UnkStruct_1C4D70 sUnknown_085B4018 = { +static const struct UnkStruct_1C4D70 sUnknown_085B4018 = +{ .bg = 3, .unk2 = 0, .unk10 = 0, @@ -127,21 +136,26 @@ static const struct UnkStruct_1C4D70 sUnknown_085B4018 = { }; static const u8 sAreaMarkerTiles[]; -static const struct SpriteSheet sAreaMarkerSpriteSheet = { +static const struct SpriteSheet sAreaMarkerSpriteSheet = +{ sAreaMarkerTiles, 0x80, 2 }; static const u16 sAreaMarkerPalette[]; -static const struct SpritePalette sAreaMarkerSpritePalette = { +static const struct SpritePalette sAreaMarkerSpritePalette = +{ sAreaMarkerPalette, 2 }; -static const struct OamData sAreaMarkerOamData = { - .size = 1, +static const struct OamData sAreaMarkerOamData = +{ + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 1 }; -static const struct SpriteTemplate sAreaMarkerSpriteTemplate = { +static const struct SpriteTemplate sAreaMarkerSpriteTemplate = +{ 2, 2, &sAreaMarkerOamData, @@ -154,16 +168,20 @@ static const struct SpriteTemplate sAreaMarkerSpriteTemplate = { static const u16 sAreaMarkerPalette[] = INCBIN_U16("graphics/pokedex/area_marker.gbapal"); static const u8 sAreaMarkerTiles[] = INCBIN_U8("graphics/pokedex/area_marker.4bpp"); -static const struct SpritePalette sAreaUnknownSpritePalette = { +static const struct SpritePalette sAreaUnknownSpritePalette = +{ gPokedexAreaScreenAreaUnknown_Pal, 3 }; -static const struct OamData sAreaUnknownOamData = { - .size = 2, +static const struct OamData sAreaUnknownOamData = +{ + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 1 }; -static const struct SpriteTemplate sAreaUnknownSpriteTemplate = { +static const struct SpriteTemplate sAreaUnknownSpriteTemplate = +{ 3, 3, &sAreaUnknownOamData, diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index c385141d5..8ca0c8d6e 100755 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -54,7 +54,8 @@ const u16 gUnknown_085B8378[] = INCBIN_U16("graphics/pokedex/cry_meter_map.bin") const u16 gUnknown_085B8418[] = INCBIN_U16("graphics/pokedex/cry_meter.gbapal"); const u8 gUnknown_085B8438[] = INCBIN_U8("graphics/pokedex/cry_meter.4bpp.lz"); -const u16 gUnknown_085B8770[][72] = { +const u16 gUnknown_085B8770[][72] = +{ { 0x0000, 0x0004, 0x0008, 0x000C, 0x0010, 0x0014, 0x0018, 0x001C, 0x0400, 0x0404, 0x0408, 0x040C, 0x0410, 0x0414, 0x0418, 0x041C, @@ -142,7 +143,8 @@ const u16 gUnknown_085B8BF0[] = INCBIN_U16("graphics/pokedex/85B8C10.gbapal"); const u8 gUnknown_085B8C10[] = INCBIN_U8("graphics/pokedex/85B8C10.4bpp"); const u8 gUnknown_085B8C30[] = {0xF0, 0x0F}; -const u8 gUnknown_085B8C32[][16] = { +const u8 gUnknown_085B8C32[][16] = +{ { 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F @@ -152,23 +154,28 @@ const u8 gUnknown_085B8C32[][16] = { } }; -const union AnimCmd gSpriteAnim_85B8C54[] = { +const union AnimCmd gSpriteAnim_85B8C54[] = +{ ANIMCMD_FRAME(0, 30), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_85B8C5C[] = { +const union AnimCmd *const gSpriteAnimTable_85B8C5C[] = +{ gSpriteAnim_85B8C54 }; -const struct OamData gOamData_85B8C60 = { +const struct OamData gOamData_85B8C60 = +{ .y = 160, .affineMode = ST_OAM_AFFINE_NORMAL, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 1 }; -const struct SpriteTemplate gUnknown_085B8C68 = { +const struct SpriteTemplate gUnknown_085B8C68 = +{ 0x2000, 0x2000, &gOamData_85B8C60, @@ -178,12 +185,14 @@ const struct SpriteTemplate gUnknown_085B8C68 = { sub_814596C }; -const struct SpriteSheet gCryMeterNeedleSpriteSheets[] = { +const struct SpriteSheet gCryMeterNeedleSpriteSheets[] = +{ {CryMeterNeedleTiles, 0x800, 0x2000}, {} }; -const struct SpritePalette gCryMeterNeedleSpritePalettes[] = { +const struct SpritePalette gCryMeterNeedleSpritePalettes[] = +{ {CryMeterNeedlePalette, 0x2000}, {} }; diff --git a/src/pokemon.c b/src/pokemon.c index a984abbb9..1ee9c4cff 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -2462,10 +2462,10 @@ static const struct OamData sOamData_8329F20 = .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 = 0, .paletteNum = 0, diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index ecb8f4950..4ff182a0e 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -931,10 +931,10 @@ const struct OamData sMonIconOamData = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index c5d40877b..30f5af14c 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -969,10 +969,10 @@ static const struct OamData sOamData_857286C = .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 = 0, .paletteNum = 0, @@ -986,10 +986,10 @@ static const struct OamData sOamData_8572874 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(16x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(16x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -1062,10 +1062,10 @@ static const struct OamData sOamData_85728EC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -1467,8 +1467,8 @@ static const struct SpriteSheet gUnknown_0857B080 = {gPCGfx_Arrow, 0x80, 6}; static const struct OamData gOamData_83BB298 = { - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2 }; @@ -1503,7 +1503,8 @@ static const struct SpriteTemplate gSpriteTemplate_857B0A8 = static const struct OamData gOamData_83BB2D0 = { - .shape = ST_OAM_V_RECTANGLE, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2 }; @@ -2004,7 +2005,7 @@ static void sub_80C7958(u8 curBox) u8 spriteId; struct SpriteTemplate template; struct OamData oamData = {}; - oamData.size = 3; + oamData.size = SPRITE_SIZE(64x64); oamData.paletteNum = 1; template = (struct SpriteTemplate){ 0, 0, &oamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy @@ -2017,8 +2018,8 @@ static void sub_80C7958(u8 curBox) spriteId = CreateSprite(&template, 160, 96, 0); gUnknown_02039D04->unk_0000 = gSprites + spriteId; - oamData.shape = ST_OAM_V_RECTANGLE; - oamData.size = 1; + oamData.shape = SPRITE_SHAPE(8x32); + oamData.size = SPRITE_SIZE(8x32); template.tileTag = gUnknown_02039D04->unk_0240 + 1; template.anims = sSpriteAnimTable_8571710; for (i = 0; i < 4; i++) @@ -8490,12 +8491,14 @@ static void sub_80CFC14(void) static const struct OamData sOamData_857BA0C = { - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 1, }; static const struct OamData sOamData_857BA14 = { - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 1, }; @@ -9358,10 +9361,10 @@ static const struct OamData sOamData_857BBA4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 3bbc832a0..3a5b06d45 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -710,10 +710,10 @@ static const struct OamData sOamData_MoveTypes = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -886,10 +886,10 @@ static const struct OamData gOamData_861CFF4 = .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 = 1, .paletteNum = 0, @@ -975,10 +975,10 @@ static const struct OamData sOamData_StatusCondition = .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 = 3, .paletteNum = 0, diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 00a73a0a2..e2497a8dc 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -105,10 +105,10 @@ static const struct OamData sOamData_862A6BC = .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 = 2, .paletteNum = 0, @@ -122,10 +122,10 @@ static const struct OamData sOamData_862A6C4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -139,10 +139,10 @@ static const struct OamData sOamData_862A6CC = .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 = 2, .paletteNum = 0, @@ -156,10 +156,10 @@ static const struct OamData sOamData_862A6D4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -173,10 +173,10 @@ static const struct OamData sOamData_862A6DC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(16x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(16x8), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -190,10 +190,10 @@ static const struct OamData sOamData_862A6E4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 2, + .shape = SPRITE_SHAPE(16x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(16x32), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -207,10 +207,10 @@ static const struct OamData sOamData_862A6EC = .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 = 2, .paletteNum = 0, @@ -224,10 +224,10 @@ static const struct OamData sOamData_862A6F4 = .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 = 2, .paletteNum = 0, diff --git a/src/region_map.c b/src/region_map.c index 8dadc78a7..a8b3fc3b2 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -106,7 +106,8 @@ static const u8 sRegionMap_MapSectionLayout[] = INCBIN_U8("graphics/pokenav/regi #include "data/region_map/region_map_entries.h" -static const u16 sRegionMap_SpecialPlaceLocations[][2] = { +static const u16 sRegionMap_SpecialPlaceLocations[][2] = +{ {MAPSEC_UNDERWATER_TERRA_CAVE, MAPSEC_ROUTE_105}, {MAPSEC_UNDERWATER_124, MAPSEC_ROUTE_124}, {MAPSEC_UNDERWATER_UNK1, MAPSEC_ROUTE_129}, @@ -133,13 +134,15 @@ static const u16 sRegionMap_SpecialPlaceLocations[][2] = { {MAPSEC_NONE, MAPSEC_NONE} }; -static const u16 sRegionMap_MarineCaveMapSecIds[] = { +static const u16 sRegionMap_MarineCaveMapSecIds[] = +{ MAPSEC_MARINE_CAVE, MAPSEC_UNDERWATER_MARINE_CAVE, MAPSEC_UNDERWATER_MARINE_CAVE }; -static const u16 sTerraCaveMapSectionIds[] = { +static const u16 sTerraCaveMapSectionIds[] = +{ MAPSEC_ROUTE_114, MAPSEC_ROUTE_114, MAPSEC_ROUTE_115, @@ -158,7 +161,8 @@ static const u16 sTerraCaveMapSectionIds[] = { MAPSEC_ROUTE_129 }; -static const struct UCoords16 sTerraCaveLocationCoords[] = { +static const struct UCoords16 sTerraCaveLocationCoords[] = +{ {0x00, 0x0a}, {0x00, 0x0c}, {0x18, 0x03}, @@ -169,21 +173,27 @@ static const struct UCoords16 sTerraCaveLocationCoords[] = { {0x18, 0x0a} }; -static const u8 sRegionMap_MapSecAquaHideoutOld[] = { +static const u8 sRegionMap_MapSecAquaHideoutOld[] = +{ MAPSEC_AQUA_HIDEOUT_OLD }; -static const struct OamData sRegionMapCursorOam = { - .size = 1, .priority = 1 +static const struct OamData sRegionMapCursorOam = +{ + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .priority = 1 }; -static const union AnimCmd sRegionMapCursorAnim1[] = { +static const union AnimCmd sRegionMapCursorAnim1[] = +{ ANIMCMD_FRAME(0, 20), ANIMCMD_FRAME(4, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sRegionMapCursorAnim2[] = { +static const union AnimCmd sRegionMapCursorAnim2[] = +{ ANIMCMD_FRAME( 0, 10), ANIMCMD_FRAME(16, 10), ANIMCMD_FRAME(32, 10), @@ -191,37 +201,49 @@ static const union AnimCmd sRegionMapCursorAnim2[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sRegionMapCursorAnimTable[] = { +static const union AnimCmd *const sRegionMapCursorAnimTable[] = +{ sRegionMapCursorAnim1, sRegionMapCursorAnim2 }; -static const struct SpritePalette sRegionMapCursorSpritePalette = { sRegionMapCursorPal, 0 }; +static const struct SpritePalette sRegionMapCursorSpritePalette = +{ + .data = sRegionMapCursorPal, + .tag = 0 +}; -static const struct SpriteTemplate sRegionMapCursorSpriteTemplate = { - 0, - 0, - &sRegionMapCursorOam, - sRegionMapCursorAnimTable, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallback_CursorFull +static const struct SpriteTemplate sRegionMapCursorSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &sRegionMapCursorOam, + .anims = sRegionMapCursorAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallback_CursorFull }; -static const struct OamData sRegionMapPlayerIconOam = { - .size = 1, .priority = 2 +static const struct OamData sRegionMapPlayerIconOam = +{ + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .priority = 2 }; -static const union AnimCmd sRegionMapPlayerIconAnim1[] = { +static const union AnimCmd sRegionMapPlayerIconAnim1[] = +{ ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd *const sRegionMapPlayerIconAnimTable[] = { +static const union AnimCmd *const sRegionMapPlayerIconAnimTable[] = +{ sRegionMapPlayerIconAnim1 }; -static const u8 sRegionMapEventSectionIds[] = { +static const u8 sRegionMapEventSectionIds[] = +{ MAPSEC_BIRTH_ISLAND_2, MAPSEC_FARAWAY_ISLAND, MAPSEC_NAVEL_ROCK2 @@ -237,7 +259,8 @@ static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_ic static const u32 sUnknown_085A1D68[] = INCBIN_U32("graphics/pokenav/fly_target_icons.4bpp.lz"); -static const u8 sMapHealLocations[][3] = { +static const u8 sMapHealLocations[][3] = +{ {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F}, {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), HEAL_LOCATION_OLDALE_TOWN}, {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), HEAL_LOCATION_DEWFORD_TOWN}, @@ -290,83 +313,154 @@ static const u8 sMapHealLocations[][3] = { {MAP_GROUP(ROUTE134), MAP_NUM(ROUTE134), 0} }; -static const u8 *const gUnknown_085A1ED4[] = { +static const u8 *const gUnknown_085A1ED4[] = +{ gText_PokemonLeague, gText_PokemonCenter }; -static const struct { +static const struct +{ const u8 *const *name; u16 mapSecId; u16 flag; -} gUnknown_085A1EDC[] = { +} +gUnknown_085A1EDC[] = +{ gUnknown_085A1ED4, MAPSEC_EVER_GRANDE_CITY, FLAG_LANDMARK_POKEMON_LEAGUE }; -static const struct BgTemplate gUnknown_085A1EE4[] = { - { .bg = 0, .charBaseIndex = 0, .mapBaseIndex = 31, .screenSize = 0, .paletteMode = 0, .priority = 0 }, - { .bg = 1, .charBaseIndex = 3, .mapBaseIndex = 30, .screenSize = 0, .paletteMode = 0, .priority = 1 }, - { .bg = 2, .charBaseIndex = 2, .mapBaseIndex = 28, .screenSize = 2, .paletteMode = 1, .priority = 2 } +static const struct BgTemplate gUnknown_085A1EE4[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0 + }, + { + .bg = 1, + .charBaseIndex = 3, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 28, + .screenSize = 2, + .paletteMode = 1, + .priority = 2 + } }; -static const struct WindowTemplate gUnknown_085A1EF0[] = { - { 0, 17, 17, 12, 2, 15, 0x01 }, - { 0, 17, 15, 12, 4, 15, 0x19 }, - { 0, 1, 18, 14, 2, 15, 0x49 }, +static const struct WindowTemplate gUnknown_085A1EF0[] = +{ + { + .bg = 0, + .tilemapLeft = 17, + .tilemapTop = 17, + .width = 12, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x01 + }, + { + .bg = 0, + .tilemapLeft = 17, + .tilemapTop = 15, + .width = 12, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x19 + }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 18, + .width = 14, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x49 + }, DUMMY_WIN_TEMPLATE }; -static const struct SpritePalette gUnknown_085A1F10 = { - Unknown_085A1D48, 2 +static const struct SpritePalette gUnknown_085A1F10 = +{ + .data = Unknown_085A1D48, + .tag = 2 }; -static const u16 sUnknown_085A1F18[][2] = { - {FLAG_LANDMARK_BATTLE_FRONTIER, MAPSEC_BATTLE_FRONTIER}, - {-1, MAPSEC_NONE} +static const u16 sUnknown_085A1F18[][2] = +{ + { + FLAG_LANDMARK_BATTLE_FRONTIER, + MAPSEC_BATTLE_FRONTIER + }, + { + -1, + MAPSEC_NONE + } }; -static const struct OamData gOamData_085A1F20 = { +static const struct OamData gOamData_085A1F20 = +{ + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2 }; -static const union AnimCmd gUnknown_085A1F28[] = { +static const union AnimCmd gUnknown_085A1F28[] = +{ ANIMCMD_FRAME( 0, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F30[] = { +static const union AnimCmd gUnknown_085A1F30[] = +{ ANIMCMD_FRAME( 1, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F38[] = { +static const union AnimCmd gUnknown_085A1F38[] = +{ ANIMCMD_FRAME( 3, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F40[] = { +static const union AnimCmd gUnknown_085A1F40[] = +{ ANIMCMD_FRAME( 5, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F48[] = { +static const union AnimCmd gUnknown_085A1F48[] = +{ ANIMCMD_FRAME( 6, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F50[] = { +static const union AnimCmd gUnknown_085A1F50[] = +{ ANIMCMD_FRAME( 8, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F58[] = { +static const union AnimCmd gUnknown_085A1F58[] = +{ ANIMCMD_FRAME(10, 5), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085A1F60[] = { +static const union AnimCmd *const gUnknown_085A1F60[] = +{ gUnknown_085A1F28, gUnknown_085A1F30, gUnknown_085A1F38, @@ -376,14 +470,15 @@ static const union AnimCmd *const gUnknown_085A1F60[] = { gUnknown_085A1F58 }; -static const struct SpriteTemplate gUnknown_085A1F7C = { - 2, - 2, - &gOamData_085A1F20, - gUnknown_085A1F60, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallbackDummy +static const struct SpriteTemplate gUnknown_085A1F7C = +{ + .tileTag = 2, + .paletteTag = 2, + .oam = &gOamData_085A1F20, + .anims = gUnknown_085A1F60, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; // .text diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index ce9f5b98b..6ee757607 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -108,10 +108,10 @@ static const struct OamData sOamData_08510464 = .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, diff --git a/src/rotating_gate.c b/src/rotating_gate.c index 3513f092e..44d291dc4 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -236,10 +236,10 @@ static const struct OamData sOamData_RotatingGateLarge = .objMode = 0, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, .paletteNum = 2, @@ -253,10 +253,10 @@ static const struct OamData sOamData_RotatingGateRegular = .objMode = 0, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 2, .paletteNum = 2, diff --git a/src/roulette.c b/src/roulette.c index 05d5006f0..5c08c99a0 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -2311,18 +2311,18 @@ static const u32 RouletteCursorTiles[] = INCBIN_U32("graphics/roulette/cursor.4b static const struct SpritePalette gUnknown_085B7384[] = { - { RouletteSpritePalette_01, 1 }, - { RouletteSpritePalette_02, 2 }, - { RouletteSpritePalette_03, 3 }, - { RouletteSpritePalette_04, 4 }, - { RouletteSpritePalette_05, 5 }, - { RouletteSpritePalette_06, 6 }, - { RouletteSpritePalette_07, 7 }, - { RouletteSpritePalette_08, 8 }, - { RouletteSpritePalette_09, 9 }, - { RouletteSpritePalette_10, 10 }, - { RouletteSpritePalette_11, 11 }, - { RouletteSpritePalette_12, 12 }, + { .data = RouletteSpritePalette_01, .tag = 1 }, + { .data = RouletteSpritePalette_02, .tag = 2 }, + { .data = RouletteSpritePalette_03, .tag = 3 }, + { .data = RouletteSpritePalette_04, .tag = 4 }, + { .data = RouletteSpritePalette_05, .tag = 5 }, + { .data = RouletteSpritePalette_06, .tag = 6 }, + { .data = RouletteSpritePalette_07, .tag = 7 }, + { .data = RouletteSpritePalette_08, .tag = 8 }, + { .data = RouletteSpritePalette_09, .tag = 9 }, + { .data = RouletteSpritePalette_10, .tag = 10 }, + { .data = RouletteSpritePalette_11, .tag = 11 }, + { .data = RouletteSpritePalette_12, .tag = 12 }, {} }; @@ -2330,8 +2330,8 @@ static const struct OamData gOamData_85B73EC = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 1, }; @@ -2339,8 +2339,8 @@ static const struct OamData gOamData_85B73F4 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 1, }; @@ -2349,35 +2349,41 @@ static const struct OamData gOamData_85B73FC = .y = 60, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; -static const union AnimCmd gSpriteAnim_85B7404[] = { +static const union AnimCmd gSpriteAnim_85B7404[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B740C[] = { +static const union AnimCmd *const gSpriteAnimTable_85B740C[] = +{ gSpriteAnim_85B7404 }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7410[] = { +static const union AffineAnimCmd gSpriteAffineAnim_85B7410[] = +{ AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7418[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7418[] = +{ gSpriteAffineAnim_85B7410 }; -static const struct CompressedSpriteSheet gUnknown_085B741C = { +static const struct CompressedSpriteSheet gUnknown_085B741C = +{ .data = RoulettePokeIcons2Tiles, .size = 0xC00, .tag = 0 }; -static const union AnimCmd gSpriteAnim_85B7420[] = { +static const union AnimCmd gSpriteAnim_85B7420[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(32, 0), ANIMCMD_FRAME(64, 0), @@ -2393,67 +2399,82 @@ static const union AnimCmd gSpriteAnim_85B7420[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7458[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7458[] = +{ &gSpriteAnim_85B7420[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B745C[] = { +static const union AnimCmd *const gSpriteAnimTable_85B745C[] = +{ &gSpriteAnim_85B7420[1] }; -static const union AnimCmd *const gSpriteAnimTable_85B7460[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7460[] = +{ &gSpriteAnim_85B7420[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B7464[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7464[] = +{ &gSpriteAnim_85B7420[3] }; -static const union AnimCmd *const gSpriteAnimTable_85B7468[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7468[] = +{ &gSpriteAnim_85B7420[4] }; -static const union AnimCmd *const gSpriteAnimTable_85B746C[] = { +static const union AnimCmd *const gSpriteAnimTable_85B746C[] = +{ &gSpriteAnim_85B7420[5] }; -static const union AnimCmd *const gSpriteAnimTable_85B7470[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7470[] = +{ &gSpriteAnim_85B7420[6] }; -static const union AnimCmd *const gSpriteAnimTable_85B7474[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7474[] = +{ &gSpriteAnim_85B7420[7] }; -static const union AnimCmd *const gSpriteAnimTable_85B7478[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7478[] = +{ &gSpriteAnim_85B7420[8] }; -static const union AnimCmd *const gSpriteAnimTable_85B747C[] = { +static const union AnimCmd *const gSpriteAnimTable_85B747C[] = +{ &gSpriteAnim_85B7420[9] }; -static const union AnimCmd *const gSpriteAnimTable_85B7480[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7480[] = +{ &gSpriteAnim_85B7420[10] }; -static const union AnimCmd *const gSpriteAnimTable_85B7484[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7484[] = +{ &gSpriteAnim_85B7420[11] }; -static const struct CompressedSpriteSheet gUnknown_085B7488 = { +static const struct CompressedSpriteSheet gUnknown_085B7488 = +{ .data = gRouletteHeadersTiles, .size = 0x1600, .tag = 4 }; -static const struct CompressedSpriteSheet gUnknown_085B7490 = { +static const struct CompressedSpriteSheet gUnknown_085B7490 = +{ .data = RoulettePokeIconsTiles, .size = 0x400, .tag = 5 }; -static const union AnimCmd gSpriteAnim_85B7498[] = { +static const union AnimCmd gSpriteAnim_85B7498[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(16, 0), ANIMCMD_FRAME(32, 0), @@ -2468,7 +2489,8 @@ static const union AnimCmd gSpriteAnim_85B7498[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B74C8[] = { +static const union AnimCmd gSpriteAnim_85B74C8[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(4, 0), ANIMCMD_FRAME(8, 0), @@ -2476,47 +2498,58 @@ static const union AnimCmd gSpriteAnim_85B74C8[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B74DC[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74DC[] = +{ &gSpriteAnim_85B7498[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E0[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74E0[] = +{ &gSpriteAnim_85B7498[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E4[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74E4[] = +{ &gSpriteAnim_85B7498[4] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E8[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74E8[] = +{ &gSpriteAnim_85B7498[6] }; -static const union AnimCmd *const gSpriteAnimTable_85B74EC[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74EC[] = +{ &gSpriteAnim_85B7498[8] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F0[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74F0[] = +{ &gSpriteAnim_85B7498[9] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F4[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74F4[] = +{ &gSpriteAnim_85B7498[10] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F8[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74F8[] = +{ &gSpriteAnim_85B74C8[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B74FC[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74FC[] = +{ &gSpriteAnim_85B74C8[1] }; -static const union AnimCmd *const gSpriteAnimTable_85B7500[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7500[] = +{ &gSpriteAnim_85B74C8[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B7504[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7504[] = +{ &gSpriteAnim_85B74C8[3] }; @@ -2747,8 +2780,8 @@ static const struct OamData gOamData_85B7730 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 1, }; @@ -2756,8 +2789,8 @@ static const struct OamData gOamData_85B7738 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 1, }; @@ -2765,8 +2798,8 @@ static const struct OamData gOamData_85B7740 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 1, }; @@ -2774,8 +2807,8 @@ static const struct OamData gOamData_85B7748 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 1, }; @@ -2809,7 +2842,8 @@ static const struct CompressedSpriteSheet gUnknown_085B7750[] = {} }; -static const union AnimCmd gSpriteAnim_85B7780[] = { +static const union AnimCmd gSpriteAnim_85B7780[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(2, 0), ANIMCMD_FRAME(4, 0), @@ -2824,11 +2858,13 @@ static const union AnimCmd gSpriteAnim_85B7780[] = { //ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77A8[] = { +static const union AnimCmd *const gSpriteAnimTable_85B77A8[] = +{ gSpriteAnim_85B7780 }; -static const union AnimCmd gSpriteAnim_85B77AC[] = { +static const union AnimCmd gSpriteAnim_85B77AC[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(8, 0), ANIMCMD_FRAME(16, 0), @@ -2837,11 +2873,13 @@ static const union AnimCmd gSpriteAnim_85B77AC[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77C4[] = { +static const union AnimCmd *const gSpriteAnimTable_85B77C4[] = +{ gSpriteAnim_85B77AC }; -static const union AnimCmd gSpriteAnim_85B77C8[] = { +static const union AnimCmd gSpriteAnim_85B77C8[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(2, 0), ANIMCMD_FRAME(4, 0), @@ -2850,7 +2888,8 @@ static const union AnimCmd gSpriteAnim_85B77C8[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77E0[] = { +static const union AnimCmd *const gSpriteAnimTable_85B77E0[] = +{ gSpriteAnim_85B77C8 }; @@ -2913,8 +2952,8 @@ static const struct OamData gOamData_85B785C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -2924,7 +2963,8 @@ static const struct CompressedSpriteSheet gUnknown_085B7864 = { .tag = 12 }; -static const union AnimCmd gSpriteAnim_85B786C[] = { +static const union AnimCmd gSpriteAnim_85B786C[] = +{ ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), ANIMCMD_FRAME(8, 5), @@ -2932,7 +2972,8 @@ static const union AnimCmd gSpriteAnim_85B786C[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B7880[] = { +static const union AnimCmd gSpriteAnim_85B7880[] = +{ ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(4, 10), ANIMCMD_FRAME(8, 10), @@ -2940,7 +2981,8 @@ static const union AnimCmd gSpriteAnim_85B7880[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B7894[] = { +static const union AnimCmd gSpriteAnim_85B7894[] = +{ ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(4, 15), ANIMCMD_FRAME(8, 15), @@ -2948,7 +2990,8 @@ static const union AnimCmd gSpriteAnim_85B7894[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B78A8[] = { +static const union AnimCmd gSpriteAnim_85B78A8[] = +{ ANIMCMD_FRAME(4, 2), ANIMCMD_FRAME(8, 5), ANIMCMD_FRAME(4, 5), @@ -2956,7 +2999,8 @@ static const union AnimCmd gSpriteAnim_85B78A8[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78BC[] = { +static const union AnimCmd gSpriteAnim_85B78BC[] = +{ ANIMCMD_FRAME(4, 2), ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(4, 4), @@ -2965,7 +3009,8 @@ static const union AnimCmd gSpriteAnim_85B78BC[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78D4[] = { +static const union AnimCmd gSpriteAnim_85B78D4[] = +{ ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(4, 5), ANIMCMD_FRAME(8, 5), @@ -2973,12 +3018,14 @@ static const union AnimCmd gSpriteAnim_85B78D4[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78E8[] = { +static const union AnimCmd gSpriteAnim_85B78E8[] = +{ ANIMCMD_FRAME(12, 0), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78F0[] = { +static const union AnimCmd gSpriteAnim_85B78F0[] = +{ ANIMCMD_FRAME(8, 2), ANIMCMD_FRAME(4, 5), ANIMCMD_FRAME(0, 5), @@ -2986,7 +3033,8 @@ static const union AnimCmd gSpriteAnim_85B78F0[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7904[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7904[] = +{ gSpriteAnim_85B786C, gSpriteAnim_85B7880, gSpriteAnim_85B7894, @@ -3014,12 +3062,13 @@ static const struct OamData gOamData_85B7940 = .y = 81, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7948 = { +static const struct CompressedSpriteSheet gUnknown_085B7948 = +{ .data = gRouletteCenter_Gfx, .size = 0x800, .tag = 6 @@ -3040,8 +3089,8 @@ static const struct OamData gOamData_85B7968 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -3049,18 +3098,20 @@ static const struct OamData gOamData_85B7970 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7978 = { +static const struct CompressedSpriteSheet gUnknown_085B7978 = +{ .data = gUnknown_085B67FC, .size = 0xE00, .tag = 13 }; -static const union AnimCmd gSpriteAnim_85B7980[] = { +static const union AnimCmd gSpriteAnim_85B7980[] = +{ ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(16, 6), ANIMCMD_FRAME(32, 6), @@ -3070,45 +3121,53 @@ static const union AnimCmd gSpriteAnim_85B7980[] = { ANIMCMD_JUMP(2) }; -static const union AnimCmd gSpriteAnim_85B799C[] = { +static const union AnimCmd gSpriteAnim_85B799C[] = +{ ANIMCMD_FRAME(80, 10), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B79A4[] = { +static const union AnimCmd gSpriteAnim_85B79A4[] = +{ ANIMCMD_FRAME(80, 10, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B79AC[] = { +static const union AnimCmd gSpriteAnim_85B79AC[] = +{ ANIMCMD_FRAME(80, 20), ANIMCMD_FRAME(96, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79B8[] = { +static const union AnimCmd gSpriteAnim_85B79B8[] = +{ ANIMCMD_FRAME(80, 20, .hFlip = TRUE), ANIMCMD_FRAME(96, 20, .hFlip = TRUE), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79C4[] = { +static const union AnimCmd gSpriteAnim_85B79C4[] = +{ ANIMCMD_FRAME(80, 10), ANIMCMD_FRAME(96, 10), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79D0[] = { +static const union AnimCmd gSpriteAnim_85B79D0[] = +{ ANIMCMD_FRAME(80, 10, .hFlip = TRUE), ANIMCMD_FRAME(96, 10, .hFlip = TRUE), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gSpriteAnimTable_85B79DC[] = { +static const union AnimCmd *const gSpriteAnimTable_85B79DC[] = +{ gSpriteAnim_85B7980 }; -static const union AnimCmd *const gSpriteAnimTable_85B79E0[] = { +static const union AnimCmd *const gSpriteAnimTable_85B79E0[] = +{ gSpriteAnim_85B799C, gSpriteAnim_85B79A4, gSpriteAnim_85B79AC, @@ -3143,8 +3202,8 @@ static const struct OamData gOamData_85B7A28 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -3152,8 +3211,8 @@ static const struct OamData gOamData_85B7A30 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -3161,24 +3220,27 @@ static const struct OamData gOamData_85B7A38 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7A40 = { +static const struct CompressedSpriteSheet gUnknown_085B7A40 = +{ .data = gUnknown_085B7290, .size = 0x180, .tag = 14 }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A48[] = { +static const union AffineAnimCmd gSpriteAffineAnim_85B7A48[] = +{ AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), AFFINEANIMCMD_FRAME(2, 2, 0, 60), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A60[] = { +static const union AffineAnimCmd gSpriteAffineAnim_85B7A60[] = +{ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-2, 0x0, 0, 15), AFFINEANIMCMD_FRAME(-1, -2, 0, 15), @@ -3186,38 +3248,46 @@ static const union AffineAnimCmd gSpriteAffineAnim_85B7A60[] = { AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A88[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A88[] = +{ gSpriteAffineAnim_85B7A48 }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A8C[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A8C[] = +{ gSpriteAffineAnim_85B7A60 }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A90[] = { +static const union AffineAnimCmd gSpriteAffineAnim_85B7A90[] = +{ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7AA0[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7AA0[] = +{ gSpriteAffineAnim_85B7A90 }; -static const union AnimCmd gSpriteAnim_85B7AA4[] = { +static const union AnimCmd gSpriteAnim_85B7AA4[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B7AAC[] = { +static const union AnimCmd gSpriteAnim_85B7AAC[] = +{ ANIMCMD_FRAME(4, 0), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7AB4[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7AB4[] = +{ gSpriteAnim_85B7AA4 }; -static const union AnimCmd *const gSpriteAnimTable_85B7AB8[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7AB8[] = +{ gSpriteAnim_85B7AAC }; diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 08f193890..415907585 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -47,19 +47,19 @@ EWRAM_DATA u8 gSaveFailedUnused2[4] = {0}; static const struct OamData sClockOamData = { - 160, // Y - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0 + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 }; static const struct BgTemplate gUnknown_085EFD88[3] = diff --git a/src/sprite.c b/src/sprite.c index 4087dd8c4..d2ea7889c 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -91,21 +91,21 @@ typedef void (*AnimFunc)(struct Sprite *); typedef void (*AnimCmdFunc)(struct Sprite *); typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *); -#define DUMMY_OAM_DATA \ -{ \ - 160, /* Y (off-screen) */ \ - 0, \ - 0, \ - 0, \ - 0, \ - 0, \ - 304, /* X */ \ - 0, \ - 0, \ - 0, \ - 3, /* lowest priority */ \ - 0, \ - 0 \ +#define DUMMY_OAM_DATA \ +{ \ + .y = 160, \ + .affineMode = 0, \ + .objMode = 0, \ + .mosaic = 0, \ + .bpp = 0, \ + .shape = SPRITE_SHAPE(8x8), \ + .x = 304, \ + .matrixNum = 0, \ + .size = SPRITE_SIZE(8x8), \ + .tileNum = 0, \ + .priority = 3, /* lowest priority */ \ + .paletteNum = 0, \ + .affineParam = 0 \ } #define ANIM_END 0xFFFF diff --git a/src/starter_choose.c b/src/starter_choose.c index 4ed53539f..c3d636175 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -170,10 +170,10 @@ static const struct OamData gOamData_85B1E10 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -187,10 +187,10 @@ static const struct OamData gOamData_85B1E18 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -204,10 +204,10 @@ static const struct OamData gOamData_85B1E20 = .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 = 1, .paletteNum = 0, @@ -296,21 +296,35 @@ static const union AffineAnimCmd * const gSpriteAffineAnimTable_85B1ED4[] = {gSp static const struct CompressedSpriteSheet gUnknown_085B1ED8[] = { - gUnknown_085B18AC, 0x0800, 0x1000, - NULL, + { + .data = gUnknown_085B18AC, + .size = 0x0800, + .tag = 0x1000 + }, + {} }; static const struct CompressedSpriteSheet gUnknown_085B1EE8[] = { - gUnknown_085B1BCC, 0x0800, 0x1001, - NULL, + { + .data = gUnknown_085B1BCC, + .size = 0x0800, + .tag = 0x1001 + }, + {} }; static const struct SpritePalette gUnknown_085B1EF8[] = { - gBirchBallarrow_Pal, 0x1000, - gBirchCircle_Pal, 0x1001, - NULL, + { + .data = gBirchBallarrow_Pal, + .tag = 0x1000 + }, + { + .data = gBirchCircle_Pal, + .tag = 0x1001 + }, + {}, }; static const struct SpriteTemplate sSpriteTemplate_Hand = diff --git a/src/title_screen.c b/src/title_screen.c index 80d5464fa..b9ef53000 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -23,9 +23,7 @@ #include "constants/rgb.h" #include "constants/songs.h" -#define VERSION_BANNER_SHAPE 1 #define VERSION_BANNER_RIGHT_TILEOFFSET 64 -#define VERSION_BANNER_BYTES 0x1000 #define VERSION_BANNER_LEFT_X 98 #define VERSION_BANNER_RIGHT_X 162 #define VERSION_BANNER_Y 2 @@ -108,10 +106,10 @@ static const struct OamData sVersionBannerLeftOamData = .objMode = 0, .mosaic = 0, .bpp = 1, - .shape = VERSION_BANNER_SHAPE, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -125,10 +123,10 @@ static const struct OamData sVersionBannerRightOamData = .objMode = 0, .mosaic = 0, .bpp = 1, - .shape = VERSION_BANNER_SHAPE, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -181,8 +179,12 @@ static const struct SpriteTemplate sVersionBannerRightSpriteTemplate = static const struct CompressedSpriteSheet sSpriteSheet_EmeraldVersion[] = { - {gTitleScreenEmeraldVersionGfx, VERSION_BANNER_BYTES, 1000}, - {NULL}, + { + .data = gTitleScreenEmeraldVersionGfx, + .size = 0x1000, + .tag = 1000 + }, + {}, }; static const struct OamData sOamData_CopyrightBanner = @@ -192,10 +194,10 @@ static const struct OamData sOamData_CopyrightBanner = .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, @@ -280,14 +282,21 @@ static const struct SpriteTemplate sStartCopyrightBannerSpriteTemplate = static const struct CompressedSpriteSheet sSpriteSheet_PressStart[] = { - {gTitleScreenPressStartGfx, 0x520, 1001}, - {NULL}, + { + .data = gTitleScreenPressStartGfx, + .size = 0x520, + .tag = 1001 + }, + {}, }; static const struct SpritePalette sSpritePalette_PressStart[] = { - {gTitleScreenPressStartPal, 1001}, - {NULL}, + { + .data = gTitleScreenPressStartPal, + .tag = 1001 + }, + {}, }; static const struct OamData sPokemonLogoShineOamData = @@ -297,10 +306,10 @@ static const struct OamData sPokemonLogoShineOamData = .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 = 0, .paletteNum = 0, @@ -331,8 +340,12 @@ static const struct SpriteTemplate sPokemonLogoShineSpriteTemplate = static const struct CompressedSpriteSheet sPokemonLogoShineSpriteSheet[] = { - {sTitleScreenLogoShineGfx, 0x800, 1002}, - {NULL}, + { + .data = sTitleScreenLogoShineGfx, + .size = 0x800, + .tag = 1002 + }, + {}, }; // code diff --git a/src/trade.c b/src/trade.c index 9a9828f34..be6768fe3 100644 --- a/src/trade.c +++ b/src/trade.c @@ -256,72 +256,89 @@ static const u8 gText_YourOnlyPkmnForBattle[] = _("That's your only\nPOKéMON fo static const u8 gText_WaitingForYourFriend[] = _("{COLOR DARK_GREY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GREY}Waiting for your friend\nto finish…"); static const u8 gText_YourFriendWantsToTrade[] = _("Your friend wants\nto trade POKéMON."); -static const struct OamData gOamData_832DC14 = { - .shape = ST_OAM_H_RECTANGLE, - .size = 2, +static const struct OamData gOamData_832DC14 = +{ + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 1 }; -static const struct OamData gOamData_832DC1C = { - .shape = ST_OAM_H_RECTANGLE, - .size = 3, +static const struct OamData gOamData_832DC1C = +{ + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_832DC24[] = { +static const union AnimCmd gSpriteAnim_832DC24[] = +{ ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC2C[] = { +static const union AnimCmd gSpriteAnim_832DC2C[] = +{ ANIMCMD_FRAME(32, 5), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_832DC34[] = { +static const union AnimCmd *const gSpriteAnimTable_832DC34[] = +{ gSpriteAnim_832DC24, gSpriteAnim_832DC2C }; -static const struct SpriteSheet gUnknown_0832DC3C = { - gUnknown_08DDC6E4, 0x800, 300 +static const struct SpriteSheet gUnknown_0832DC3C = +{ + .data = gUnknown_08DDC6E4, + .size = 0x800, + .tag = 300 }; -static const struct SpritePalette gUnknown_0832DC44 = { - gUnknown_08DDB444, 2345 +static const struct SpritePalette gUnknown_0832DC44 = +{ + .data = gUnknown_08DDB444, + .tag = 2345 }; -static const union AnimCmd gSpriteAnim_832DC4C[] = { +static const union AnimCmd gSpriteAnim_832DC4C[] = +{ ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC54[] = { +static const union AnimCmd gSpriteAnim_832DC54[] = +{ ANIMCMD_FRAME(8, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC5C[] = { +static const union AnimCmd gSpriteAnim_832DC5C[] = +{ ANIMCMD_FRAME(16, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC64[] = { +static const union AnimCmd gSpriteAnim_832DC64[] = +{ ANIMCMD_FRAME(24, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC6C[] = { +static const union AnimCmd gSpriteAnim_832DC6C[] = +{ ANIMCMD_FRAME(32, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC74[] = { +static const union AnimCmd gSpriteAnim_832DC74[] = +{ ANIMCMD_FRAME(40, 5), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_832DC7C[] = { +static const union AnimCmd *const gSpriteAnimTable_832DC7C[] = +{ gSpriteAnim_832DC4C, gSpriteAnim_832DC54, gSpriteAnim_832DC5C, @@ -355,7 +372,8 @@ static const struct SpriteTemplate gSpriteTemplate_832DCAC = static const u16 TradeScreenTextPalette[] = INCBIN_U16("graphics/trade/text.gbapal"); static const struct SpritePalette gSpritePalette_TradeScreenText = { - TradeScreenTextPalette, 4925 + .data = TradeScreenTextPalette, + .tag = 4925 }; // This is used to determine the next mon to select when the D-Pad is @@ -367,7 +385,6 @@ static const struct SpritePalette gSpritePalette_TradeScreenText = // 2 3 8 9 // 4 5 10 11 // 12 - static const u8 gTradeNextSelectedMonTable[][4][6] = { { @@ -471,7 +488,8 @@ static const u8 gTradeMonSpriteCoords[][2] = {23, 18} // CANCEL }; -static const u8 gTradeLevelDisplayCoords[][6][2] = { +static const u8 gTradeLevelDisplayCoords[][6][2] = +{ { // Your party {5, 4}, @@ -492,7 +510,8 @@ static const u8 gTradeLevelDisplayCoords[][6][2] = { } }; -static const u8 gTradeMonBoxCoords[][6][2] = { +static const u8 gTradeMonBoxCoords[][6][2] = +{ { // Your party {1, 3}, @@ -513,7 +532,8 @@ static const u8 gTradeMonBoxCoords[][6][2] = { } }; -static const u8 sUnref_0832DE6E[] = { +static const u8 sUnref_0832DE6E[] = +{ 0x00, 0x0e, 0x0f, 0x1d, 0x03, 0x05, @@ -544,7 +564,8 @@ static const u8 *const gUnknown_0832DE94[] = gJPText_832DB2E }; -static const struct MenuAction gUnknown_0832DEAC[] = { +static const struct MenuAction gUnknown_0832DEAC[] = +{ {gText_Summary4, sub_807A000}, {gText_Trade3, sub_807A024} }; @@ -817,12 +838,15 @@ static const u16 gUnknown_08337EA0[] = INCBIN_U16("graphics/trade/black.gbapal") static const u32 gUnknown_08337EC0[] = INCBIN_U32("graphics/trade/wireless_signal.4bpp.lz"); static const u32 gUnknown_08338550[] = INCBIN_U32("graphics/trade/wireless_signal.bin.lz"); -static const struct OamData gOamData_8338C44 = { +static const struct OamData gOamData_8338C44 = +{ .affineMode = 1, - .size = 1 + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16) }; -static const union AnimCmd gSpriteAnim_8338C4C[] = { +static const union AnimCmd gSpriteAnim_8338C4C[] = +{ ANIMCMD_FRAME( 0, 3), ANIMCMD_FRAME( 4, 3), ANIMCMD_FRAME( 8, 3), @@ -840,7 +864,8 @@ static const union AnimCmd gSpriteAnim_8338C4C[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_8338C88[] = { +static const union AnimCmd gSpriteAnim_8338C88[] = +{ ANIMCMD_FRAME( 0, 3), ANIMCMD_FRAME( 4, 3), ANIMCMD_FRAME( 8, 3), @@ -858,171 +883,213 @@ static const union AnimCmd gSpriteAnim_8338C88[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338C88[] = { +static const union AnimCmd *const gSpriteAnimTable_8338C88[] = +{ gSpriteAnim_8338C4C, gSpriteAnim_8338C88 }; -static const union AffineAnimCmd gSpriteAffineAnim_8338CCC[] = { +static const union AffineAnimCmd gSpriteAffineAnim_8338CCC[] = +{ AFFINEANIMCMD_FRAME(0, 0, 0, 1), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_8338CDC[] = { +static const union AffineAnimCmd gSpriteAffineAnim_8338CDC[] = +{ AFFINEANIMCMD_FRAME(-8, 0, 0, 20), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_8338CEC[] = { +static const union AffineAnimCmd gSpriteAffineAnim_8338CEC[] = +{ AFFINEANIMCMD_FRAME(0x60, 0x100, 0, 0), AFFINEANIMCMD_FRAME( 0, 0, 0, 5), AFFINEANIMCMD_FRAME( 8, 0, 0, 20), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D0C[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D0C[] = +{ gSpriteAffineAnim_8338CCC, gSpriteAffineAnim_8338CDC, gSpriteAffineAnim_8338CEC }; -static const struct SpriteSheet gUnknown_08338D18 = { - gTradeBallTiles, 0x600, 5557 +static const struct SpriteSheet gUnknown_08338D18 = +{ + .data = gTradeBallTiles, + .size = 0x600, + .tag = 5557 }; -static const struct SpritePalette gUnknown_08338D20 = { - gTradeBallPalette, 5558 +static const struct SpritePalette gUnknown_08338D20 = +{ + .data = gTradeBallPalette, + .tag = 5558 }; -static const struct SpriteTemplate gSpriteTemplate_8338D28 = { - 5557, - 5558, - &gOamData_8338C44, - gSpriteAnimTable_8338C88, - NULL, - gSpriteAffineAnimTable_8338D0C, - sub_807E55C +static const struct SpriteTemplate gSpriteTemplate_8338D28 = +{ + .tileTag = 5557, + .paletteTag = 5558, + .oam = &gOamData_8338C44, + .anims = gSpriteAnimTable_8338C88, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_8338D0C, + .callback = sub_807E55C }; -static const struct OamData gOamData_8338D40 = { +static const struct OamData gOamData_8338D40 = +{ .affineMode = 1, .objMode = 1, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338D48[] = { +static const union AnimCmd gSpriteAnim_8338D48[] = +{ ANIMCMD_FRAME(0, 5, .hFlip = TRUE, .vFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338D50[] = { +static const union AnimCmd *const gSpriteAnimTable_8338D50[] = +{ gSpriteAnim_8338D48 }; -static const union AffineAnimCmd gSpriteAffineAnim_8338D54[] = { +static const union AffineAnimCmd gSpriteAffineAnim_8338D54[] = +{ AFFINEANIMCMD_FRAME(-10, -10, 0, 5), AFFINEANIMCMD_FRAME(10, 10, 0, 5), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D6C[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D6C[] = +{ gSpriteAffineAnim_8338D54 }; -static const struct SpriteSheet gUnknown_08338D70 = { - gTradeGlow1Tiles, 0x200, 5550 +static const struct SpriteSheet gUnknown_08338D70 = +{ + .data = gTradeGlow1Tiles, + .size = 0x200, + .tag = 5550 }; -static const struct SpritePalette gUnknown_08338D78 = { - gUnknown_08330940, 5551 +static const struct SpritePalette gUnknown_08338D78 = +{ + .data = gUnknown_08330940, + .tag = 5551 }; -static const struct SpritePalette gUnknown_08338D80 = { - gUnknown_083308E0, 5555 +static const struct SpritePalette gUnknown_08338D80 = +{ + .data = gUnknown_083308E0, + .tag = 5555 }; -static const struct SpriteTemplate gUnknown_08338D88 = { - 5550, - 5551, - &gOamData_8338D40, - gSpriteAnimTable_8338D50, - NULL, - gSpriteAffineAnimTable_8338D6C, - sub_807AA28 +static const struct SpriteTemplate gUnknown_08338D88 = +{ + .tileTag = 5550, + .paletteTag = 5551, + .oam = &gOamData_8338D40, + .anims = gSpriteAnimTable_8338D50, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_8338D6C, + .callback = sub_807AA28 }; -static const struct OamData gOamData_8338DA0 = { - .shape = ST_OAM_V_RECTANGLE, - .size = 2, +static const struct OamData gOamData_8338DA0 = +{ + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338DA8[] = { +static const union AnimCmd gSpriteAnim_8338DA8[] = +{ ANIMCMD_FRAME(0, 5, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_8338DB0[] = { +static const union AnimCmd gSpriteAnim_8338DB0[] = +{ ANIMCMD_FRAME(8, 5, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338DB8[] = { +static const union AnimCmd *const gSpriteAnimTable_8338DB8[] = +{ gSpriteAnim_8338DA8, gSpriteAnim_8338DB0 }; -static const struct SpriteSheet gUnknown_08338DC0 = { - gTradeGlow2Tiles, 0x300, 5552 +static const struct SpriteSheet gUnknown_08338DC0 = +{ + .data = gTradeGlow2Tiles, + .size = 0x300, + .tag = 5552 }; -static const struct SpriteTemplate gSpriteTemplate_8338DC8 = { - 5552, - 5551, - &gOamData_8338DA0, - gSpriteAnimTable_8338DB8, - NULL, - gDummySpriteAffineAnimTable, - sub_807AA7C +static const struct SpriteTemplate gSpriteTemplate_8338DC8 = +{ + .tileTag = 5552, + .paletteTag = 5551, + .oam = &gOamData_8338DA0, + .anims = gSpriteAnimTable_8338DB8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_807AA7C }; -static const struct OamData gOamData_8338DE0 = { - .shape = ST_OAM_V_RECTANGLE, - .size = 2, +static const struct OamData gOamData_8338DE0 = +{ + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338DE8[] = { +static const union AnimCmd gSpriteAnim_8338DE8[] = +{ ANIMCMD_FRAME(0, 10), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338DF0[] = { +static const union AnimCmd *const gSpriteAnimTable_8338DF0[] = +{ gSpriteAnim_8338DE8 }; -static const struct SpriteSheet gUnknown_08338DF4 = { - gTradeCableEndTiles, 0x100, 5554 +static const struct SpriteSheet gUnknown_08338DF4 = +{ + .data = gTradeCableEndTiles, + .size = 0x100, + .tag = 5554 }; -static const struct SpriteTemplate gSpriteTemplate_8338DFC = { - 5554, - 5555, - &gOamData_8338DE0, - gSpriteAnimTable_8338DF0, - NULL, - gDummySpriteAffineAnimTable, - sub_807AABC +static const struct SpriteTemplate gSpriteTemplate_8338DFC = +{ + .tileTag = 5554, + .paletteTag = 5555, + .oam = &gOamData_8338DE0, + .anims = gSpriteAnimTable_8338DF0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_807AABC }; -static const struct OamData gOamData_8338E14 = { - .shape = ST_OAM_H_RECTANGLE, - .size = 3, +static const struct OamData gOamData_8338E14 = +{ + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338E1C[] = { +static const union AnimCmd gSpriteAnim_8338E1C[] = +{ ANIMCMD_FRAME( 0, 2, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 2, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(64, 2, .vFlip = TRUE, .hFlip = TRUE), @@ -1034,7 +1101,8 @@ static const union AnimCmd gSpriteAnim_8338E1C[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_8338E40[] = { +static const union AnimCmd gSpriteAnim_8338E40[] = +{ ANIMCMD_FRAME( 0, 2, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 2, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(64, 2, .vFlip = TRUE, .hFlip = TRUE), @@ -1046,50 +1114,60 @@ static const union AnimCmd gSpriteAnim_8338E40[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338E64[] = { +static const union AnimCmd *const gSpriteAnimTable_8338E64[] = +{ gSpriteAnim_8338E1C }; -static const union AnimCmd *const gSpriteAnimTable_8338E68[] = { +static const union AnimCmd *const gSpriteAnimTable_8338E68[] = +{ gSpriteAnim_8338E40 }; -static const struct SpriteSheet gUnknown_08338E6C = { - gTradeGBAScreenTiles, 0x1000, 5556 +static const struct SpriteSheet gUnknown_08338E6C = +{ + .data = gTradeGBAScreenTiles, + .size = 0x1000, + .tag = 5556 }; -static const struct SpriteTemplate gSpriteTemplate_8338E74 = { - 5556, - 5555, - &gOamData_8338E14, - gSpriteAnimTable_8338E64, - NULL, - gDummySpriteAffineAnimTable, - sub_807AB04 +static const struct SpriteTemplate gSpriteTemplate_8338E74 = +{ + .tileTag = 5556, + .paletteTag = 5555, + .oam = &gOamData_8338E14, + .anims = gSpriteAnimTable_8338E64, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_807AB04 }; -static const struct SpriteTemplate gSpriteTemplate_8338E8C = { - 5556, - 5555, - &gOamData_8338E14, - gSpriteAnimTable_8338E68, - NULL, - gDummySpriteAffineAnimTable, - sub_807AB04 +static const struct SpriteTemplate gSpriteTemplate_8338E8C = +{ + .tileTag = 5556, + .paletteTag = 5555, + .oam = &gOamData_8338E14, + .anims = gSpriteAnimTable_8338E68, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_807AB04 }; static const u16 gUnknown_08338EA4[] = INCBIN_U16("graphics/trade/unknown_338EA4.gbapal"); -static const union AffineAnimCmd gSpriteAffineAnim_8338EBC[] = { +static const union AffineAnimCmd gSpriteAffineAnim_8338EBC[] = +{ AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338ECC[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338ECC[] = +{ gSpriteAffineAnim_8338EBC }; -static const struct InGameTrade gIngameTrades[] = { +static const struct InGameTrade gIngameTrades[] = +{ { _("DOTS"), SPECIES_SEEDOT, 5, 4, 5, 4, 4, 4, @@ -1131,7 +1209,8 @@ static const struct InGameTrade gIngameTrades[] = { } }; -static const u16 gIngameTradeMail[][10] = { +static const u16 gIngameTradeMail[][10] = +{ { EC_WORD_BE, EC_WORD_NICE, @@ -1233,7 +1312,8 @@ static const struct BgTemplate gUnknown_08339014[] = }, }; -static const s8 gTradeBallVerticalVelocityTable[] = { +static const s8 gTradeBallVerticalVelocityTable[] = +{ 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 2, 2, diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index d57685423..8172f09e6 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -43,13 +43,18 @@ static EWRAM_DATA struct PicData sSpritePics[PICS_COUNT] = {}; // .rodata static const struct PicData sDummyPicData = {}; + static const struct OamData gUnknown_0860B064 = { - .size = 3 + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64) }; + static const struct OamData gUnknown_0860B06C = { - .affineMode = 1, .size = 3 + .affineMode = 1, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64) }; // .text diff --git a/src/trainer_see.c b/src/trainer_see.c index 16ea88a45..9925aa6bc 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -100,10 +100,10 @@ static const struct OamData sOamData_Icons = .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 = 1, .paletteNum = 0, @@ -112,13 +112,22 @@ static const struct OamData sOamData_Icons = static const struct SpriteFrameImage sSpriteImageTable_ExclamationQuestionMark[] = { - {sEmotion_ExclamationMarkGfx, 0x80}, - {sEmotion_QuestionMarkGfx, 0x80} + { + .data = sEmotion_ExclamationMarkGfx, + .size = 0x80 + }, + { + .data = sEmotion_QuestionMarkGfx, + .size = 0x80 + } }; static const struct SpriteFrameImage sSpriteImageTable_HeartIcon[] = { - {sEmotion_HeartGfx, 0x80} + { + .data = sEmotion_HeartGfx, + .size = 0x80 + } }; static const union AnimCmd sSpriteAnim_Icons1[] = diff --git a/src/unk_transition.c b/src/unk_transition.c index d56998b5b..99479c866 100644 --- a/src/unk_transition.c +++ b/src/unk_transition.c @@ -40,7 +40,7 @@ static const u32 gUnknown_0862AF30[] = INCBIN_U32("graphics/battle_transitions/f static const u32 gUnknown_0862B0DC[] = INCBIN_U32("graphics/battle_transitions/frontier_transition_circles.4bpp.lz"); static const u16 gUnknown_0862B53C[] = INCBIN_U16("graphics/battle_transitions/frontier_transition.gbapal"); -// Unused Empty data. Feel free to delete. +// Unused Empty data. static const u8 sFiller[0x1C0] = {0}; static const struct OamData sOamData_862B71C = @@ -50,10 +50,10 @@ static const struct OamData sOamData_862B71C = .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 = 1, .paletteNum = 0, @@ -62,12 +62,15 @@ static const struct OamData sOamData_862B71C = static const struct CompressedSpriteSheet sUnknown_0862B724 = { - gUnknown_0862B0DC, 0x1800, 11920 + .data = gUnknown_0862B0DC, + .size = 0x1800, + .tag = 11920 }; static const struct SpritePalette sUnknown_0862B72C = { - gUnknown_0862B53C, 11920 + .data = gUnknown_0862B53C, + .tag = 11920 }; static const union AnimCmd sSpriteAnim_862B734[] = diff --git a/src/wallclock.c b/src/wallclock.c index d3bbcf7a2..810abb1d1 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -93,6 +93,7 @@ static const struct WindowTemplate gUnknown_085B21DC[] = }, DUMMY_WIN_TEMPLATE }; + static const struct WindowTemplate gUnknown_085B21F4 = { .bg = 0, @@ -103,7 +104,9 @@ static const struct WindowTemplate gUnknown_085B21F4 = .paletteNum = 14, .baseBlock = 572 }; -static const struct BgTemplate gUnknown_085B21FC[] = { + +static const struct BgTemplate gUnknown_085B21FC[] = +{ { .bg = 0, .charBaseIndex = 2, @@ -123,34 +126,57 @@ static const struct BgTemplate gUnknown_085B21FC[] = { .priority = 2 } }; -static const struct CompressedSpriteSheet gUnknown_085B2208 = { + +static const struct CompressedSpriteSheet gUnknown_085B2208 = +{ sUnknown_085B1F58, 0x2000, TAG_GFX_WALL_CLOCK_HAND }; -static const u32 filler_85B2210[2] = {}; -static const struct SpritePalette gUnknown_085B2218[] = { - { gWallclockMale_Pal, TAG_PAL_WALL_CLOCK_HAND }, - { gWallclockFemale_Pal, 0x1001 }, + +static const u8 filler_85B2210[8] = {0}; + +static const struct SpritePalette gUnknown_085B2218[] = +{ + { + .data = gWallclockMale_Pal, + .tag = TAG_PAL_WALL_CLOCK_HAND + }, + { + .data = gWallclockFemale_Pal, + .tag = 0x1001 + }, {} }; -static const struct OamData Unknown_085B2230 = { + +static const struct OamData Unknown_085B2230 = +{ .y = 160, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 1, }; -static const union AnimCmd Unknown_085B2238[] = { + +static const union AnimCmd Unknown_085B2238[] = +{ ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; -static const union AnimCmd Unknown_085B2240[] = { + +static const union AnimCmd Unknown_085B2240[] = +{ ANIMCMD_FRAME(64, 30), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085B2248[] = { + +static const union AnimCmd *const gUnknown_085B2248[] = +{ Unknown_085B2238 }; -static const union AnimCmd *const gUnknown_085B224C[] = { + +static const union AnimCmd *const gUnknown_085B224C[] = +{ Unknown_085B2240 }; + static const struct SpriteTemplate gUnknown_085B2250 = { .tileTag = TAG_GFX_WALL_CLOCK_HAND, @@ -161,6 +187,7 @@ static const struct SpriteTemplate gUnknown_085B2250 = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_MinuteHand, }; + static const struct SpriteTemplate gUnknown_085B2268 = { .tileTag = TAG_GFX_WALL_CLOCK_HAND, @@ -171,25 +198,37 @@ static const struct SpriteTemplate gUnknown_085B2268 = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_HourHand, }; -static const struct OamData Unknown_085B2280 = { + +static const struct OamData Unknown_085B2280 = +{ .y = 160, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 3, }; -static const union AnimCmd Unknown_085B2288[] = { + +static const union AnimCmd Unknown_085B2288[] = +{ ANIMCMD_FRAME(132, 30), ANIMCMD_END, }; -static const union AnimCmd Unknown_085B2290[] = { + +static const union AnimCmd Unknown_085B2290[] = +{ ANIMCMD_FRAME(128, 30), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085B2298[] = { + +static const union AnimCmd *const gUnknown_085B2298[] = +{ Unknown_085B2288 }; -static const union AnimCmd *const gUnknown_085B229C[] = { + +static const union AnimCmd *const gUnknown_085B229C[] = +{ Unknown_085B2290 }; + static const struct SpriteTemplate gUnknown_085B22A0 = { .tileTag = TAG_GFX_WALL_CLOCK_HAND, @@ -200,6 +239,7 @@ static const struct SpriteTemplate gUnknown_085B22A0 = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_AMIndicator }; + static const struct SpriteTemplate gUnknown_085B22B8 = { .tileTag = TAG_GFX_WALL_CLOCK_HAND, @@ -210,7 +250,9 @@ static const struct SpriteTemplate gUnknown_085B22B8 = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_PMIndicator }; -static const s8 sClockHandCoords[][2] = { + +static const s8 sClockHandCoords[][2] = +{ { 0x00, -0x18}, { 0x01, -0x19}, { 0x01, -0x19}, -- cgit v1.2.3 From eeb329909c7caab645445849a2f75257a3c72be5 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Mar 2019 03:21:23 -0400 Subject: Fix anonymous struct --- src/region_map.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/region_map.c b/src/region_map.c index a8b3fc3b2..25b47479d 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -36,6 +36,13 @@ // Static type declarations +struct FlagControlledFlyDest +{ + const u8 *const *name; + u16 mapSecId; + u16 flag; +}; + // Static RAM declarations static EWRAM_DATA struct RegionMap *gRegionMap = NULL; @@ -319,17 +326,13 @@ static const u8 *const gUnknown_085A1ED4[] = gText_PokemonCenter }; -static const struct +static const struct FlagControlledFlyDest gUnknown_085A1EDC[] = { - const u8 *const *name; - u16 mapSecId; - u16 flag; -} -gUnknown_085A1EDC[] = -{ - gUnknown_085A1ED4, - MAPSEC_EVER_GRANDE_CITY, - FLAG_LANDMARK_POKEMON_LEAGUE + { + .name = gUnknown_085A1ED4, + .mapSecId = MAPSEC_EVER_GRANDE_CITY, + .flag = FLAG_LANDMARK_POKEMON_LEAGUE + } }; static const struct BgTemplate gUnknown_085A1EE4[] = @@ -1774,7 +1777,7 @@ static void sub_8124904(void) if (sFlyMap->regionMap.iconDrawType > MAPSECTYPE_NONE && sFlyMap->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER) { flag = FALSE; - for (i = 0; i < 1; i++) + for (i = 0; i < ARRAY_COUNT(gUnknown_085A1EDC); i++) { if (sFlyMap->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId) { -- cgit v1.2.3 From a029254faa152ae652eb35f6b9e1e80ddc33463a Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Mar 2019 04:15:44 -0400 Subject: Apply new macros to intro graphics struct --- src/intro_credits_graphics.c | 270 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 243 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index 29ee2067f..7ac11e1e0 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -102,15 +102,87 @@ static const union AnimCmd *const gUnknown_085F5094[] = static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = { - { 0, ST_OAM_SQUARE, 2, 72, 32, 100, 0xc00 }, - { 0, ST_OAM_SQUARE, 2, 158, 32, 100, 0xc00 }, - { 1, ST_OAM_SQUARE, 1, 192, 40, 101, 0x800 }, - { 1, ST_OAM_SQUARE, 1, 56, 40, 101, 0x800 }, - { 2, ST_OAM_H_RECTANGLE, 0, 100, 44, 102, 0x400 }, - { 2, ST_OAM_H_RECTANGLE, 0, 152, 44, 102, 0x400 }, - { 3, ST_OAM_H_RECTANGLE, 0, 8, 46, 103, 0x100 }, - { 3, ST_OAM_H_RECTANGLE, 0, 56, 46, 103, 0x100 }, - { 3, ST_OAM_H_RECTANGLE, 0, 240, 46, 103, 0x100 }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 72, + .y = 32, + .subpriority = 100, + .xOff = 0xc00 + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 158, + .y = 32, + .subpriority = 100, + .xOff = 0xc00 + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .x = 192, + .y = 40, + .subpriority = 101, + .xOff = 0x800 + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .x = 56, + .y = 40, + .subpriority = 101, + .xOff = 0x800 + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), + .x = 100, + .y = 44, + .subpriority = 102, + .xOff = 0x400 + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), + .x = 152, + .y = 44, + .subpriority = 102, + .xOff = 0x400 + }, + { + .animNum = 3, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), + .x = 8, + .y = 46, + .subpriority = 103, + .xOff = 0x100 + }, + { + .animNum = 3, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), + .x = 56, + .y = 46, + .subpriority = 103, + .xOff = 0x100 + }, + { + .animNum = 3, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), + .x = 240, + .y = 46, + .subpriority = 103, + .xOff = 0x100 + }, }; static const struct CompressedSpriteSheet gUnknown_085F50EC[] = @@ -146,18 +218,114 @@ static const union AnimCmd *const gUnknown_085F5114[] = static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = { - { 0, ST_OAM_SQUARE, 2, 16, 88, 100, 0x2000 }, - { 0, ST_OAM_SQUARE, 2, 80, 88, 100, 0x2000 }, - { 0, ST_OAM_SQUARE, 2, 144, 88, 100, 0x2000 }, - { 0, ST_OAM_SQUARE, 2, 208, 88, 100, 0x2000 }, - { 1, ST_OAM_V_RECTANGLE, 2, 40, 88, 101, 0x1000 }, - { 1, ST_OAM_V_RECTANGLE, 2, 104, 88, 101, 0x1000 }, - { 1, ST_OAM_V_RECTANGLE, 2, 168, 88, 101, 0x1000 }, - { 1, ST_OAM_V_RECTANGLE, 2, 232, 88, 101, 0x1000 }, - { 2, ST_OAM_V_RECTANGLE, 2, 56, 88, 102, 0x800 }, - { 2, ST_OAM_V_RECTANGLE, 2, 120, 88, 102, 0x800 }, - { 2, ST_OAM_V_RECTANGLE, 2, 184, 88, 102, 0x800 }, - { 2, ST_OAM_V_RECTANGLE, 2, 248, 88, 102, 0x800 }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 16, + .y = 88, + .subpriority = 100, + .xOff = 0x2000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 80, + .y = 88, + .subpriority = 100, + .xOff = 0x2000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 144, + .y = 88, + .subpriority = 100, + .xOff = 0x2000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 208, + .y = 88, + .subpriority = 100, + .xOff = 0x2000, + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 40, + .y = 88, + .subpriority = 101, + .xOff = 0x1000, + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 104, + .y = 88, + .subpriority = 101, + .xOff = 0x1000, + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 168, + .y = 88, + .subpriority = 101, + .xOff = 0x1000, + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 232, + .y = 88, + .subpriority = 101, + .xOff = 0x1000, + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 56, + .y = 88, + .subpriority = 102, + .xOff = 0x800, + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 120, + .y = 88, + .subpriority = 102, + .xOff = 0x800, + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 184, + .y = 88, + .subpriority = 102, + .xOff = 0x800, + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 248, + .y = 88, + .subpriority = 102, + .xOff = 0x800, + } }; static const struct CompressedSpriteSheet gUnknown_085F5180[] = @@ -179,12 +347,60 @@ static const union AnimCmd *const gUnknown_085F5198[] = static const struct IntroCreditsSpriteMetadata gUnknown_085F519C[] = { - { 0, ST_OAM_SQUARE, 2, 24, 88, 100, 0x1000 }, - { 0, ST_OAM_SQUARE, 2, 64, 88, 100, 0x1000 }, - { 0, ST_OAM_SQUARE, 2, 104, 88, 100, 0x1000 }, - { 0, ST_OAM_SQUARE, 2, 144, 88, 100, 0x1000 }, - { 0, ST_OAM_SQUARE, 2, 184, 88, 100, 0x1000 }, - { 0, ST_OAM_SQUARE, 2, 224, 88, 100, 0x1000 }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 24, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 64, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 104, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 144, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 184, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 224, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + } }; static const struct OamData gOamData_85F51CC = -- cgit v1.2.3 From 691392fd5ddbeae70e1daa9eee48085189667c39 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Mar 2019 04:28:43 -0400 Subject: Clean up intro_credits_graphics constants --- src/intro_credits_graphics.c | 196 ++++++++++++++++++++++++++++++++----------- 1 file changed, 149 insertions(+), 47 deletions(-) (limited to 'src') diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index 7ac11e1e0..059c1079e 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -59,13 +59,23 @@ static void nullsub_66(struct Sprite *sprite); static const struct SpriteTemplate gUnknown_085F504C = { - 2000, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_817B62C + .tileTag = 2000, + .paletteTag = 0xFFFF, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_817B62C }; static const struct CompressedSpriteSheet gUnknown_085F5064[] = { - { gUnknown_085F16A8, 0x400, 2000 }, - { NULL } + { + .data = gUnknown_085F16A8, + .size = 0x400, + .tag = 2000 + }, + {} }; static const union AnimCmd gUnknown_085F5074[] = @@ -187,8 +197,12 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = static const struct CompressedSpriteSheet gUnknown_085F50EC[] = { - { gIntro2TreeTiles, 0x400, 2000 }, - { NULL } + { + .data = gIntro2TreeTiles, + .size = 0x400, + .tag = 2000 + }, + {} }; static const union AnimCmd gUnknown_085F50FC[] = @@ -330,8 +344,12 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = static const struct CompressedSpriteSheet gUnknown_085F5180[] = { - { gIntro2NightTiles, 0x400, 2000 }, - { NULL } + { + .data = gIntro2NightTiles, + .size = 0x400, + .tag = 2000 + }, + {} }; static const union AnimCmd gUnknown_085F5190[] = @@ -427,12 +445,24 @@ static const union AnimCmd *const gUnknown_085F51E8[] = static const struct SpriteTemplate gUnknown_085F51EC = { - 1002, 1002, &gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 + .tileTag = 1002, + .paletteTag = 1002, + .oam = &gOamData_85F51CC, + .anims = gUnknown_085F51E8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_65 }; static const struct SpriteTemplate gUnknown_085F5204 = { - 1003, 1003, &gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 + .tileTag = 1003, + .paletteTag = 1003, + .oam = &gOamData_85F51CC, + .anims = gUnknown_085F51E8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_65 }; static const struct OamData gUnknown_085F521C = @@ -459,12 +489,24 @@ static const union AnimCmd *const gUnknown_085F5238[] = static const struct SpriteTemplate gUnknown_085F523C = { - 1001, 1002, &gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 + .tileTag = 1001, + .paletteTag = 1002, + .oam = &gUnknown_085F521C, + .anims = gUnknown_085F5238, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_817B7C4 }; static const struct SpriteTemplate gUnknown_085F5254 = { - 1001, 1003, &gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 + .tileTag = 1001, + .paletteTag = 1003, + .oam = &gUnknown_085F521C, + .anims = gUnknown_085F5238, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_817B7C4 }; static const struct OamData gUnknown_085F526C = @@ -495,102 +537,162 @@ static const union AnimCmd *const gUnknown_085F5284[] = static const struct SpriteTemplate gUnknown_085F528C = { - 1004, 1004, &gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 + .tileTag = 1004, + .paletteTag = 1004, + .oam = &gUnknown_085F526C, + .anims = gUnknown_085F5284, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_66 }; static const struct SpriteTemplate gUnknown_085F52A4 = { - 1005, 1005, &gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 + .tileTag = 1005, + .paletteTag = 1005, + .oam = &gUnknown_085F526C, + .anims = gUnknown_085F5284, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_66 }; const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[] = { - { gIntro2BrendanNoTurnGfx, 0x2000, 1002 }, - { NULL } + { + .data = gIntro2BrendanNoTurnGfx, + .size = 0x2000, + .tag = 1002 + }, + {} }; const struct CompressedSpriteSheet gIntro2MaySpriteSheet[] = { - { gIntro2MayNoTurnGfx, 0x2000, 1003 }, - { NULL } + { + .data = gIntro2MayNoTurnGfx, + .size = 0x2000, + .tag = 1003 + }, + {} }; const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[] = { - { gIntro2BicycleTiles, 0x1000, 1001 }, - { NULL } + { + .data = gIntro2BicycleTiles, + .size = 0x1000, + .tag = 1001 + }, + {} }; static const struct CompressedSpriteSheet gUnknown_085F52EC[] = { - { gIntro2FlygonGfx, 0x1000, 1004 }, - { NULL } + { + .data = gIntro2FlygonGfx, + .size = 0x1000, + .tag = 1004 + }, + {} }; const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[] = { - { gIntro2FlygonGfx, 0x1000, 1005 }, - { NULL } + { + .data = gIntro2FlygonGfx, + .size = 0x1000, + .tag = 1005 + }, + {} }; const struct SpritePalette gIntroBikeAndFlygonPalette[] = { - { gIntro2BrendanNoTurnPal, 1002 }, - { gIntro2BrendanNoTurnPal, 1003 }, - { gIntro2FlygonPal, 1004 }, - { gIntro2FlygonPal, 1005 }, - { NULL } + { .data = gIntro2BrendanNoTurnPal, .tag = 1002 }, + { .data = gIntro2BrendanNoTurnPal, .tag = 1003 }, + { .data = gIntro2FlygonPal, .tag = 1004 }, + { .data = gIntro2FlygonPal, .tag = 1005 }, + {} }; const struct CompressedSpriteSheet gUnknown_085F5334[] = { - { gIntro2BrendanTiles, 0x3800, 1002 }, - { NULL } + { + .data = gIntro2BrendanTiles, + .size = 0x3800, + .tag = 1002 + }, + {} }; const struct CompressedSpriteSheet gUnknown_085F5344[] = { - { gIntro2MayTiles, 0x3800, 1003 }, - { NULL } + { + .data = gIntro2MayTiles, + .size = 0x3800, + .tag = 1003 + }, + {} }; const struct CompressedSpriteSheet gUnknown_085F5354[] = { - { gIntro2BicycleTiles, 0x1000, 1001 }, - { NULL } + { + .data = gIntro2BicycleTiles, + .size = 0x1000, + .tag = 1001 + }, + {} }; static const struct CompressedSpriteSheet gUnknown_085F5364[] = { - { gIntro2LatiosTiles, 0x1000, 1004 }, - { NULL } + { + .data = gIntro2LatiosTiles, + .size = 0x1000, + .tag = 1004 + }, + {} }; static const struct CompressedSpriteSheet gUnknown_085F5374[] = { - { gIntro2LatiasTiles, 0x1000, 1005 }, - { NULL } + { + .data = gIntro2LatiasTiles, + .size = 0x1000, + .tag = 1005 + }, + {} }; const struct SpritePalette gUnknown_085F5384[] = { - { gIntro2BrendanPalette, 1002 }, - { gIntro2MayPalette, 1003 }, - { gIntro2LatiosPalette, 1004 }, - { gIntro2LatiasPalette, 1005 }, - { NULL } + { .data = gIntro2BrendanPalette, .tag = 1002 }, + { .data = gIntro2MayPalette, .tag = 1003 }, + { .data = gIntro2LatiosPalette, .tag = 1004 }, + { .data = gIntro2LatiasPalette, .tag = 1005 }, + {} }; const struct CompressedSpriteSheet gUnknown_085F53AC[] = { - { gIntro2BrendanTiles, 0x2000, 1002}, - { NULL } + { + .data = gIntro2BrendanTiles, + .size = 0x2000, + .tag = 1002 + }, + {} }; const struct CompressedSpriteSheet gUnknown_085F53BC[] = { - { gIntro2MayTiles, 0x2000, 1003}, - { NULL } + { + .data = gIntro2MayTiles, + .size = 0x2000, + .tag = 1003 + }, + {} }; EWRAM_DATA u16 gUnknown_0203BD24 = 0; -- cgit v1.2.3 From 4ae8a52473a0e4842cf140bf0c59f0276125a896 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 17 Mar 2019 16:19:42 -0500 Subject: Finish decompiling contest_painting_effects.c --- src/contest_painting_effects.c | 701 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 646 insertions(+), 55 deletions(-) (limited to 'src') diff --git a/src/contest_painting_effects.c b/src/contest_painting_effects.c index 142ad7bc9..a791df65c 100644 --- a/src/contest_painting_effects.c +++ b/src/contest_painting_effects.c @@ -3,6 +3,13 @@ #include "contest_painting.h" #include "constants/rgb.h" +struct Unk8125954 +{ + u8 unk0; + u8 unk1; + u16 unk2; +}; + // IWRAM common u8 gUnknown_03006164; u16 (*gUnknown_03006168)[][32]; @@ -12,32 +19,46 @@ u8 gUnknown_03006174; u8 gUnknown_03006178; u8 gUnknown_0300617C; u8 gUnknown_03006180; -u16 gUnknown_03006184; +u16 *gUnknown_03006184; u16 gUnknown_03006188; -// this file's functions -void sub_8125230(void); -void sub_81252E8(void); -void sub_81254E0(void); -void sub_8125630(void); -void sub_8125448(void); -void sub_81257F8(void); -void sub_81258A0(void); -void sub_81256C8(void); -void sub_8125250(void); -void sub_81253A4(u8); -void sub_81250B8(u8); -void sub_8125170(u8); -void sub_8125954(u16); -u16 ConvertColorToGrayscale(u16*); -u16 sub_8125E18(u16*, u16*, u16*); -u16 ConvertCoolColor(u16*, u8); -u16 ConvertToBlackOrWhite(u16*); -u16 sub_8125C98(u16*, u16*); -u16 InvertColor(u16*); -u16 sub_8125F38(u16*, u16*, u16*); -u16 sub_8125CF4(u16*, u16*); -u16 GetCoolColorFromPersonality(u8); +static void sub_8125230(void); +static void sub_81252E8(void); +static void sub_81254E0(void); +static void sub_8125630(void); +static void sub_8125448(void); +static void sub_81257F8(void); +static void sub_81258A0(void); +static void sub_81256C8(void); +static void sub_8125250(void); +static void sub_81253A4(u8); +static void sub_81250B8(u8); +static void sub_8125170(u8); +static void sub_8125954(u16); +static u16 ConvertColorToGrayscale(u16*); +static u16 sub_8125E18(u16*, u16*, u16*); +static u16 ConvertCoolColor(u16*, u8); +static u16 ConvertToBlackOrWhite(u16*); +static u16 sub_8125C98(u16*, u16*); +static u16 InvertColor(u16*); +static u16 sub_8125F38(u16*, u16*, u16*); +static u16 sub_8125CF4(u16*, u16*); +static u16 GetCoolColorFromPersonality(u8); +static void sub_81263A4(bool8); +static void sub_8126270(void); +static void sub_8126714(void); +static void sub_8126370(void); +static void sub_8126664(void); +static void sub_8126334(void); +static void sub_81265B4(void); +static void sub_8126318(void); +static void sub_81264FC(void); +static u16 sub_81267C4(u16*); +static u16 sub_8126908(u16*); +static u16 sub_812693C(u16*); +static u16 sub_8126838(u16*); + +extern const u8 gUnknown_085A1F94[][3]; void sub_8124F2C(struct Unk030061A0 *info) { @@ -104,7 +125,7 @@ void sub_8124F2C(struct Unk030061A0 *info) } } -void sub_81250B8(u8 a0) // it changes palette someway somehow... .__. +static void sub_81250B8(u8 a0) // it changes palette someway somehow... .__. { u8 i, j; @@ -127,7 +148,7 @@ void sub_81250B8(u8 a0) // it changes palette someway somehow... .__. } } -void sub_8125170(u8 a0) +static void sub_8125170(u8 a0) { u8 i, j; @@ -149,14 +170,14 @@ void sub_8125170(u8 a0) } } -void sub_8125230(void) +static void sub_8125230(void) { u32 i; for (i = 0; i < 3200; i++) sub_8125954(i); } -void sub_8125250(void) +static void sub_8125250(void) { u8 i, j; @@ -174,7 +195,7 @@ void sub_8125250(void) } } -void sub_81252E8(void) +static void sub_81252E8(void) { u8 i, j; @@ -200,7 +221,7 @@ void sub_81252E8(void) } } -void sub_81253A4(u8 arg0) +static void sub_81253A4(u8 arg0) { u8 i, j; @@ -218,7 +239,7 @@ void sub_81253A4(u8 arg0) } } -void sub_8125448(void) +static void sub_8125448(void) { u8 i, j; @@ -236,7 +257,7 @@ void sub_8125448(void) } } -void sub_81254E0(void) +static void sub_81254E0(void) { u8 i, j; u16 *palette; @@ -270,7 +291,7 @@ void sub_81254E0(void) } } -void sub_8125630(void) +static void sub_8125630(void) { u8 i, j; @@ -288,7 +309,7 @@ void sub_8125630(void) } } -void sub_81256C8(void) +static void sub_81256C8(void) { u8 i, j; u16 *palette; @@ -349,7 +370,7 @@ void sub_81256C8(void) } } -void sub_81257F8(void) +static void sub_81257F8(void) { u8 i, j; @@ -369,7 +390,7 @@ void sub_81257F8(void) } } -void sub_81258A0(void) +static void sub_81258A0(void) { u8 i, j; @@ -389,16 +410,7 @@ void sub_81258A0(void) } } -struct Unk8125954 -{ - u8 unk0; - u8 unk1; - u16 unk2; -}; - -extern const u8 gUnknown_085A1F94[][3]; - -void sub_8125954(u16 arg0) +static void sub_8125954(u16 arg0) { u8 i; u8 r5, r9; @@ -487,7 +499,7 @@ void sub_8125954(u16 arg0) } } -u16 ConvertColorToGrayscale(u16 *color) +static u16 ConvertColorToGrayscale(u16 *color) { s32 clr = *color; s32 r = clr & 0x1F; @@ -499,7 +511,7 @@ u16 ConvertColorToGrayscale(u16 *color) // The dark colors are the colored edges of the Cool painting effect. // Everything else is white. -u16 ConvertCoolColor(u16 *color, u8 personality) +static u16 ConvertCoolColor(u16 *color, u8 personality) { u16 red = *color & 0x1F; u16 green = (*color >> 5) & 0x1F; @@ -513,7 +525,7 @@ u16 ConvertCoolColor(u16 *color, u8 personality) // Based on the given value, which comes from the first 8 bits of // the mon's personality value, return a color. -u16 GetCoolColorFromPersonality(u8 personality) +static u16 GetCoolColorFromPersonality(u8 personality) { u16 red = 0; u16 green = 0; @@ -564,7 +576,7 @@ u16 GetCoolColorFromPersonality(u8 personality) return RGB2(red, green, blue); } -u16 ConvertToBlackOrWhite(u16 *color) +static u16 ConvertToBlackOrWhite(u16 *color) { u16 red = *color & 0x1F; u16 green = (*color >> 5) & 0x1F; @@ -576,7 +588,7 @@ u16 ConvertToBlackOrWhite(u16 *color) return RGB_WHITE; } -u16 sub_8125C98(u16 *colorA, u16 *colorB) +static u16 sub_8125C98(u16 *colorA, u16 *colorB) { if (*colorA) { @@ -591,7 +603,7 @@ u16 sub_8125C98(u16 *colorA, u16 *colorB) return RGB_BLACK; } -u16 InvertColor(u16 *color) +static u16 InvertColor(u16 *color) { u16 red = *color & 0x1F; u16 green = (*color >> 5) & 0x1F; @@ -604,7 +616,7 @@ u16 InvertColor(u16 *color) return RGB2(red, green, blue); } -u16 sub_8125CF4(u16 *a0, u16 *a1) +static u16 sub_8125CF4(u16 *a0, u16 *a1) { u16 sp0[2][3]; u16 spC[3]; @@ -660,7 +672,7 @@ u16 sub_8125CF4(u16 *a0, u16 *a1) return RGB2(r, g, b); } -u16 sub_8125E18(u16 * a0, u16 * a1, u16 * a2) +static u16 sub_8125E18(u16 * a0, u16 * a1, u16 * a2) { u16 red, green, blue; u16 avg0, avg1, avg2; @@ -704,7 +716,7 @@ u16 sub_8125E18(u16 * a0, u16 * a1, u16 * a2) return RGB2(red, green, blue); } -u16 sub_8125F38(u16 *a0, u16 *a1, u16 *a2) +static u16 sub_8125F38(u16 *a0, u16 *a1, u16 *a2) { u16 red, green, blue; u16 avg0, avg1, avg2; @@ -772,3 +784,582 @@ void sub_8126058(struct Unk030061A0 *arg0) } } */ + +NAKED +void sub_8126058(struct Unk030061A0 *arg0) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0xC\n\ + ldrb r1, [r0, 0x1D]\n\ + lsrs r5, r1, 3\n\ + ldrb r1, [r0, 0x1E]\n\ + lsrs r1, 3\n\ + str r1, [sp, 0x8]\n\ + ldr r1, [r0, 0x4]\n\ + str r1, [sp]\n\ + ldr r2, [r0, 0x10]\n\ + str r2, [sp, 0x4]\n\ + ldrh r0, [r0, 0x16]\n\ + cmp r0, 0x2\n\ + bne _08126108\n\ + movs r1, 0\n\ + ldr r0, [sp, 0x8]\n\ + cmp r1, r0\n\ + bcc _08126086\n\ + b _08126194\n\ +_08126086:\n\ + movs r0, 0\n\ + adds r2, r1, 0x1\n\ + mov r10, r2\n\ + cmp r0, r5\n\ + bcs _081260FA\n\ + adds r2, r1, 0\n\ + muls r2, r5\n\ + mov r9, r2\n\ + lsls r1, 3\n\ + mov r8, r1\n\ +_0812609A:\n\ + movs r4, 0\n\ + lsls r6, r0, 4\n\ + adds r7, r0, 0x1\n\ + add r0, r9\n\ + lsls r0, 6\n\ + ldr r1, [sp, 0x4]\n\ + adds r1, r0\n\ + mov r12, r1\n\ +_081260AA:\n\ + lsls r0, r4, 3\n\ + mov r2, r12\n\ + adds r3, r2, r0\n\ + mov r1, r8\n\ + adds r0, r1, r4\n\ + lsls r0, 3\n\ + muls r0, r5\n\ + lsls r0, 1\n\ + ldr r2, [sp]\n\ + adds r0, r2, r0\n\ + adds r2, r0, r6\n\ + ldrh r0, [r2, 0x2]\n\ + lsls r0, 8\n\ + ldrh r1, [r2]\n\ + orrs r0, r1\n\ + strh r0, [r3]\n\ + ldrh r0, [r2, 0x6]\n\ + lsls r0, 8\n\ + ldrh r1, [r2, 0x4]\n\ + orrs r0, r1\n\ + strh r0, [r3, 0x2]\n\ + ldrh r0, [r2, 0xA]\n\ + lsls r0, 8\n\ + ldrh r1, [r2, 0x8]\n\ + orrs r0, r1\n\ + strh r0, [r3, 0x4]\n\ + ldrh r0, [r2, 0xE]\n\ + lsls r0, 8\n\ + ldrh r1, [r2, 0xC]\n\ + orrs r0, r1\n\ + strh r0, [r3, 0x6]\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r4, 0x7\n\ + bls _081260AA\n\ + lsls r0, r7, 16\n\ + lsrs r0, 16\n\ + cmp r0, r5\n\ + bcc _0812609A\n\ +_081260FA:\n\ + mov r1, r10\n\ + lsls r0, r1, 16\n\ + lsrs r1, r0, 16\n\ + ldr r2, [sp, 0x8]\n\ + cmp r1, r2\n\ + bcc _08126086\n\ + b _08126194\n\ +_08126108:\n\ + movs r1, 0\n\ + ldr r0, [sp, 0x8]\n\ + cmp r1, r0\n\ + bcs _08126194\n\ +_08126110:\n\ + movs r0, 0\n\ + adds r2, r1, 0x1\n\ + mov r10, r2\n\ + cmp r0, r5\n\ + bcs _08126188\n\ + adds r2, r1, 0\n\ + muls r2, r5\n\ + mov r9, r2\n\ + lsls r1, 3\n\ + mov r8, r1\n\ +_08126124:\n\ + movs r4, 0\n\ + lsls r6, r0, 4\n\ + adds r7, r0, 0x1\n\ + add r0, r9\n\ + lsls r0, 5\n\ + ldr r1, [sp, 0x4]\n\ + adds r1, r0\n\ + mov r12, r1\n\ +_08126134:\n\ + lsls r0, r4, 2\n\ + mov r2, r12\n\ + adds r3, r2, r0\n\ + mov r1, r8\n\ + adds r0, r1, r4\n\ + lsls r0, 3\n\ + muls r0, r5\n\ + lsls r0, 1\n\ + ldr r2, [sp]\n\ + adds r0, r2, r0\n\ + adds r2, r0, r6\n\ + ldrh r1, [r2, 0x2]\n\ + lsls r1, 4\n\ + ldrh r0, [r2]\n\ + orrs r1, r0\n\ + ldrh r0, [r2, 0x4]\n\ + lsls r0, 8\n\ + orrs r1, r0\n\ + ldrh r0, [r2, 0x6]\n\ + lsls r0, 12\n\ + orrs r1, r0\n\ + strh r1, [r3]\n\ + ldrh r1, [r2, 0xA]\n\ + lsls r1, 4\n\ + ldrh r0, [r2, 0x8]\n\ + orrs r1, r0\n\ + ldrh r0, [r2, 0xC]\n\ + lsls r0, 8\n\ + orrs r1, r0\n\ + ldrh r0, [r2, 0xE]\n\ + lsls r0, 12\n\ + orrs r1, r0\n\ + strh r1, [r3, 0x2]\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r4, 0x7\n\ + bls _08126134\n\ + lsls r0, r7, 16\n\ + lsrs r0, 16\n\ + cmp r0, r5\n\ + bcc _08126124\n\ +_08126188:\n\ + mov r1, r10\n\ + lsls r0, r1, 16\n\ + lsrs r1, r0, 16\n\ + ldr r2, [sp, 0x8]\n\ + cmp r1, r2\n\ + bcc _08126110\n\ +_08126194:\n\ + add sp, 0xC\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0"); +} + +void sub_81261A4(struct Unk030061A0 *arg0) +{ + gUnknown_03006188 = arg0->var_18 * 16; + gUnknown_03006184 = &arg0->var_8[gUnknown_03006188]; + gUnknown_03006168 = arg0->var_4; + gUnknown_03006164 = arg0->var_19; + gUnknown_03006178 = arg0->var_1A; + gUnknown_03006174 = arg0->var_1B; + gUnknown_0300616C = arg0->var_1C; + gUnknown_03006180 = arg0->var_1D; + gUnknown_03006170 = arg0->var_1E; + + switch (arg0->var_14) + { + case 0: + sub_81263A4(FALSE); + break; + case 1: + sub_81263A4(TRUE); + break; + case 2: + sub_8126270(); + sub_8126714(); + break; + case 3: + sub_8126370(); + sub_8126664(); + break; + case 4: + sub_8126334(); + sub_81265B4(); + break; + case 5: + sub_8126318(); + sub_81264FC(); + break; + } +} + +static void sub_8126270(void) +{ + gUnknown_03006184[0] = RGB2(0, 0, 0); + gUnknown_03006184[1] = RGB2(6, 6, 6); + gUnknown_03006184[2] = RGB2(29, 29, 29); + gUnknown_03006184[3] = RGB2(11, 11, 11); + gUnknown_03006184[4] = RGB2(29, 6, 6); + gUnknown_03006184[5] = RGB2(6, 29, 6); + gUnknown_03006184[6] = RGB2(6, 6, 29); + gUnknown_03006184[7] = RGB2(29, 29, 6); + gUnknown_03006184[8] = RGB2(29, 6, 29); + gUnknown_03006184[9] = RGB2(6, 29, 29); + gUnknown_03006184[10] = RGB2(29, 11, 6); + gUnknown_03006184[11] = RGB2(11, 29, 6); + gUnknown_03006184[12] = RGB2(6, 11, 29); + gUnknown_03006184[13] = RGB2(29, 6, 11); + gUnknown_03006184[14] = RGB2(6, 29, 11); + gUnknown_03006184[15] = RGB2(11, 6, 29); +} + +static void sub_8126318(void) +{ + gUnknown_03006184[0] = RGB2(0, 0, 0); + gUnknown_03006184[1] = RGB2(0, 0, 0); + gUnknown_03006184[2] = RGB2(31, 31, 31); +} + +static void sub_8126334(void) +{ + u8 i; + + gUnknown_03006184[0] = RGB2(0, 0, 0); + gUnknown_03006184[1] = RGB2(0, 0, 0); + for (i = 0; i < 14; i++) + gUnknown_03006184[i + 2] = RGB2(2 * (i + 2), 2 * (i + 2), 2 * (i + 2)); +} + +static void sub_8126370(void) +{ + u8 i; + + gUnknown_03006184[0] = RGB2(0, 0, 0); + for (i = 0; i < 32; i++) + gUnknown_03006184[i + 1] = RGB2(i, i, i); +} + +static void sub_81263A4(bool8 arg0) +{ + u8 i, j; + u16 maxIndex; + + maxIndex = 0xDF; + if (!arg0) + maxIndex = 0xFF; + + for (j = 0; j < maxIndex; j++) + gUnknown_03006184[j] = 0; + + gUnknown_03006184[maxIndex] = RGB2(15, 15, 15); + for (i = 0; i < gUnknown_0300616C; i++) + { + u16* var2 = &(*gUnknown_03006168)[0][(gUnknown_03006178 + i) * gUnknown_03006180]; + u16* pal = &var2[gUnknown_03006164]; + for (j = 0; j < gUnknown_03006174; j++, pal++) + { + if (*pal & 0x8000) + { + *pal = gUnknown_03006188; + } + else + { + u16 color = sub_81267C4(pal); + u8 curIndex = 1; + if (curIndex < maxIndex) + { + if (gUnknown_03006184[curIndex] == RGB_BLACK) + { + gUnknown_03006184[curIndex] = color; + *pal = gUnknown_03006188 + curIndex; + } + else + { + while (curIndex < maxIndex) + { + if (gUnknown_03006184[curIndex] == RGB_BLACK) + { + gUnknown_03006184[curIndex] = color; + *pal = gUnknown_03006188 + curIndex; + break; + } + + if (gUnknown_03006184[curIndex] == color) + { + *pal = gUnknown_03006188 + curIndex; + break; + } + + curIndex++; + } + } + } + + if (curIndex == maxIndex) + { + curIndex = maxIndex; + *pal = curIndex; + } + } + } + } +} + +static void sub_81264FC(void) +{ + u8 i, j; + + for (i = 0; i < gUnknown_0300616C; i++) + { + u16* var2 = &(*gUnknown_03006168)[0][(gUnknown_03006178 + i) * gUnknown_03006180]; + u16* pal = &var2[gUnknown_03006164]; + for (j = 0; j < gUnknown_03006174; j++, pal++) + { + if (*pal & 0x8000) + { + *pal = gUnknown_03006188; + } + else + { + if (ConvertToBlackOrWhite(pal) == RGB_BLACK) + *pal = gUnknown_03006188 + 1; + else + *pal = gUnknown_03006188 + 2; + } + } + } +} + +static void sub_81265B4(void) +{ + u8 i, j; + + for (i = 0; i < gUnknown_0300616C; i++) + { + u16* var2 = &(*gUnknown_03006168)[0][(gUnknown_03006178 + i) * gUnknown_03006180]; + u16* pal = &var2[gUnknown_03006164]; + for (j = 0; j < gUnknown_03006174; j++, pal++) + { + if (*pal & 0x8000) + *pal = gUnknown_03006188; + else + *pal = sub_8126908(pal) + gUnknown_03006188; + } + } +} + +static void sub_8126664(void) +{ + u8 i, j; + + for (i = 0; i < gUnknown_0300616C; i++) + { + u16* var2 = &(*gUnknown_03006168)[0][(gUnknown_03006178 + i) * gUnknown_03006180]; + u16* pal = &var2[gUnknown_03006164]; + for (j = 0; j < gUnknown_03006174; j++, pal++) + { + if (*pal & 0x8000) + *pal = gUnknown_03006188; + else + *pal = sub_812693C(pal) + gUnknown_03006188; + } + } +} + +static void sub_8126714(void) +{ + u8 i, j; + + for (i = 0; i < gUnknown_0300616C; i++) + { + u16* var2 = &(*gUnknown_03006168)[0][(gUnknown_03006178 + i) * gUnknown_03006180]; + u16* pal = &var2[gUnknown_03006164]; + for (j = 0; j < gUnknown_03006174; j++, pal++) + { + if (*pal & 0x8000) + *pal = gUnknown_03006188; + else + *pal = sub_8126838(pal) + gUnknown_03006188; + } + } +} + +static u16 sub_81267C4(u16 *color) +{ + u16 red = *color & 0x1F; + u16 green = (*color >> 5) & 0x1F; + u16 blue = (*color >> 10) & 0x1F; + + if (red & 3) + red = (red & 0x1C) + 4; + if (green & 3) + green = (green & 0x1C) + 4; + if (blue & 3) + blue = (blue & 0x1C) + 4; + + if (red < 6) + red = 6; + if (red > 30) + red = 30; + + if (green < 6) + green = 6; + if (green > 30) + green = 30; + + if (blue < 6) + blue = 6; + if (blue > 30) + blue = 30; + + return RGB2(red, green, blue); +} + +static u16 sub_8126838(u16* color) +{ + u16 red = *color & 0x1F; + u16 green = (*color >> 5) & 0x1F; + u16 blue = (*color >> 10) & 0x1F; + + if (red < 12 && green < 11 && blue < 11) + return 1; + + if (red > 19 && green > 19 && blue > 19) + return 2; + + if (red > 19) + { + if (green > 19) + { + if (blue > 14) + return 2; + else + return 7; + } + else if (blue > 19) + { + if (green > 14) + return 2; + else + return 8; + } + } + + if (green > 19 && blue > 19) + { + if (red > 14) + return 2; + else + return 9; + } + + if (red > 19) + { + if (green > 11) + { + if (blue > 11) + { + if (green < blue) + return 8; + else + return 7; + } + else + { + return 10; + } + } + else if (blue > 11) + { + return 13; + } + else + { + return 4; + } + } + + if (green > 19) + { + if (red > 11) + { + if (blue > 11) + { + if (red < blue) + return 9; + else + return 7; + } + else + { + return 11; + } + } + else + { + if (blue > 11) + return 14; + else + return 5; + } + } + + if (blue > 19) + { + if (red > 11) + { + if (green > 11) + { + if (red < green) + return 9; + else + return 8; + } + } + else if (green > 11) + { + return 12; + } + + if (blue > 11) + return 15; + else + return 6; + } + + return 3; +} + +static u16 sub_8126908(u16 *color) +{ + u16 red = *color & 0x1F; + u16 green = (*color >> 5) & 0x1F; + u16 blue = (*color >> 10) & 0x1F; + u16 average = ((red + green + blue) / 3) & 0x1E; + if (average == 0) + return 1; + else + return average / 2; +} + +static u16 sub_812693C(u16 *color) +{ + u16 red = *color & 0x1F; + u16 green = (*color >> 5) & 0x1F; + u16 blue = (*color >> 10) & 0x1F; + u16 average = (red + green + blue) / 3; + return average + 1; +} -- cgit v1.2.3 From 7118462b9f58e4b9756c41fe1d464be70e9ac2b4 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 21 Mar 2019 18:15:47 -0500 Subject: Decompile ereader.c up to faraway island code --- src/ereader.c | 564 ++++++++++++++++++++++++++++++++++++++++++++ src/event_object_movement.c | 2 +- src/trainer_hill.c | 3 +- 3 files changed, 566 insertions(+), 3 deletions(-) create mode 100755 src/ereader.c (limited to 'src') diff --git a/src/ereader.c b/src/ereader.c new file mode 100755 index 000000000..053f82381 --- /dev/null +++ b/src/ereader.c @@ -0,0 +1,564 @@ +#include "global.h" +#include "alloc.h" +#include "event_object_movement.h" +#include "link.h" +#include "save.h" +#include "util.h" + +struct Unk81D38FC +{ + u8 unk0[0x270]; + int checksum; +}; + +struct Unknown030012C8 +{ + u8 unk0[8]; + u32 *unk8; + int unkC; + int unk10; + int unk14; +}; + +void sub_81D41A0(void); +static void sub_81D4170(void); +int sub_81D3D70(u8, u32, u32*, u32*); +void sub_81D41F4(void); +static u16 sub_81D3EE8(u8); +static void sub_81D413C(void); +static void sub_81D414C(void); +static void sub_81D3F1C(u32, u32*, u32*); +static void sub_81D3F68(void); + +extern struct Unknown030012C8 gUnknown_030012C8; +extern u16 gUnknown_030012E0; +extern u16 gUnknown_030012E2; +extern u16 gUnknown_030012E4; +extern u16 gUnknown_030012E6; +extern u32 gUnknown_030012E8; +extern u16 gUnknown_030012EC; +extern u16 gUnknown_030012EE; +extern u16 gUnknown_030012F0; +extern u16 gUnknown_030012F2; +extern u16 gUnknown_030012F4; + +extern const u8 gUnknown_08625B6C[]; + +static u8 sub_81D38D4(void) +{ + return (gSaveBlock1Ptr->trainerHill.unused + 1) % 256; +} + +static bool32 sub_81D38FC(struct Unk81D38FC *arg0) +{ + int checksum = CalcByteArraySum(arg0->unk0, 0x270); + if (checksum != arg0->checksum) + return FALSE; + + return TRUE; +} + +bool8 sub_81D3920(u8 *buffer) +{ + u32 i; + u32 checksum; + int var0 = buffer[0]; + if (var0 < 1 || var0 > 8) + return FALSE; + + for (i = 0; i < var0; i++) + { + struct Unk81D38FC *var1 = (struct Unk81D38FC *)(&buffer[i * (sizeof(struct Unk81D38FC)) + 8]); + if (!sub_81D38FC(var1)) + return FALSE; + } + + checksum = CalcByteArraySum(buffer + 8, var0 * 0x274); + if (checksum != ((int *)buffer)[1]) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D396C(u8 *buffer) +{ + u32 checksum; + int var0 = buffer[0]; + if (var0 < 1 || var0 > 8) + return FALSE; + + checksum = CalcByteArraySum(buffer + 8, 0xEE0); + if (checksum != ((int *)buffer)[1]) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D3998(struct Unk81D38FC *arg0, u8 *buffer2) +{ + int i; + const u8 *ereaderVals; + + memset(buffer2, 0, 0x1000); + buffer2[0] = arg0->unk0[0]; + buffer2[1] = sub_81D38D4(); + buffer2[2] = (arg0->unk0[0] + 1) / 2; + + for (i = 0; i < arg0->unk0[0]; i++) + { + if (!(i & 1)) + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + u8 *var1 = arg0[i].unk0; + var0[8] = var1[8]; + memcpy(&var0[0x29C], &var1[0x154], 0x124); + var0 += 0xC; + var1 += 0xC; + memcpy(var0, var1, 0x148); + } + else + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + u8 *var1 = arg0[i].unk0; + var0[9] = var1[8]; + memcpy(&var0[0x154], &var1[0xC], 0x148); + } + } + + if (i & 1) + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + var0 += 0x154; + + ereaderVals = gUnknown_08625B6C; + memcpy(var0, &ereaderVals[(i / 2) * 0x148], 0x148); + } + + ((int *)buffer2)[1] = CalcByteArraySum(buffer2 + 8, 0xEE0); + if (sub_8153634(SECTOR_ID_TRAINER_HILL, buffer2) != 1) + return FALSE; + + return TRUE; +} + +bool32 sub_81D3AB0(struct Unk81D38FC *arg0) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3998(arg0, var0); + Free(var0); + return result; +} + +static bool32 sub_81D3AD8(u8 *arg0, u8 *arg1) +{ + if (TryCopySpecialSaveSection(SECTOR_ID_TRAINER_HILL, arg1) != 1) + return FALSE; + + memcpy(arg0, arg1, 0xEE8); + if (!sub_81D396C(arg0)) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D3B0C(u8 *arg0) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3AD8(arg0, var0); + Free(var0); + return result; +} + +bool32 sub_81D3B34(void) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3B0C(var0); + Free(var0); + return result; +} + +static int unref_sub_81D3B54(int arg0, u32 *arg1) +{ + int result; + u16 var0; + int var1; + + sub_81D41A0(); + while (1) + { + sub_81D4170(); + if (gUnknown_030012E2 & 2) + gShouldAdvanceLinkState = 2; + + var1 = sub_81D3D70(1, arg0, arg1, NULL); + gUnknown_030012E4 = var1; + if ((gUnknown_030012E4 & 0x13) == 0x10) + { + result = 0; + break; + } + + if (gUnknown_030012E4 & 0x8) + { + result = 1; + break; + } + + var0 = gUnknown_030012E4 & 0x4; + if (var0) + { + result = 2; + break; + } + + gShouldAdvanceLinkState = var0; + VBlankIntrWait(); + } + + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + sub_81D41F4(); + return result; +} + +static int unref_sub_81D3BE8(u32 *arg0) +{ + int result; + u16 var0; + int var1; + + sub_81D41A0(); + while (1) + { + sub_81D4170(); + if (gUnknown_030012E2 & 2) + gShouldAdvanceLinkState = 2; + + var1 = sub_81D3D70(0, 0, NULL, arg0); + gUnknown_030012E4 = var1; + if ((gUnknown_030012E4 & 0x13) == 0x10) + { + result = 0; + break; + } + + if (gUnknown_030012E4 & 0x8) + { + result = 1; + break; + } + + var0 = gUnknown_030012E4 & 0x4; + if (var0) + { + result = 2; + break; + } + + gShouldAdvanceLinkState = var0; + VBlankIntrWait(); + } + + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + sub_81D41F4(); + return result; +} + +static void sub_81D3C7C(void) +{ + REG_IME = 0; + REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + REG_IME = 1; + REG_SIOCNT = 0; + REG_TM3CNT_H = 0; + REG_IF = INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL; +} + +static void sub_81D3CBC(void) +{ + REG_IME = 0; + REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + REG_IME = 1; + REG_RCNT = 0; + REG_SIOCNT = SIO_MULTI_MODE; + REG_SIOCNT |= SIO_INTR_ENABLE | SIO_115200_BPS; + REG_IME = 0; + REG_IE |= INTR_FLAG_SERIAL; + REG_IME = 1; + + if (!gUnknown_030012C8.unk0[1]) + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); +} + +static void sub_81D3D34(void) +{ + REG_RCNT = 0; + REG_SIOCNT = SIO_32BIT_MODE | SIO_INTR_ENABLE; + REG_SIOCNT |= SIO_MULTI_SD; + gShouldAdvanceLinkState = 0; + gUnknown_030012E6 = 0; + gUnknown_030012E8 = 0; +} + +int sub_81D3D70(u8 arg0, u32 arg1, u32 *arg2, u32 *arg3) +{ + switch (gUnknown_030012C8.unk0[1]) + { + case 0: + sub_81D3CBC(); + gUnknown_030012C8.unk0[2] = 1; + gUnknown_030012C8.unk0[1] = 1; + break; + case 1: + if (sub_81D3EE8(arg0)) + sub_81D413C(); + + if (gShouldAdvanceLinkState == 2) + { + gUnknown_030012C8.unk0[4] = 2; + gUnknown_030012C8.unk0[1] = 6; + } + break; + case 2: + sub_81D3D34(); + sub_81D3F1C(arg1, arg2, arg3); + gUnknown_030012C8.unk0[1] = 3; + // fall through + case 3: + if (gShouldAdvanceLinkState == 2) + { + gUnknown_030012C8.unk0[4] = 2; + gUnknown_030012C8.unk0[1] = 6; + } + else + { + gUnknown_030012E6++; + gUnknown_030012E8++; + if (!gUnknown_030012C8.unk0[0] && gUnknown_030012E8 > 60) + { + gUnknown_030012C8.unk0[4] = 1; + gUnknown_030012C8.unk0[1] = 6; + } + + if (gUnknown_030012C8.unk0[2] != 2) + { + if (gUnknown_030012C8.unk0[0] && gUnknown_030012E6 > 2) + { + sub_81D413C(); + gUnknown_030012C8.unk0[2] = 2; + } + else + { + sub_81D413C(); + gUnknown_030012C8.unk0[2] = 2; + } + } + } + break; + case 4: + sub_81D3CBC(); + gUnknown_030012C8.unk0[1] = 5; + break; + case 5: + if (gUnknown_030012C8.unk0[0] == 1 && gUnknown_030012E6 > 2) + sub_81D413C(); + + if (++gUnknown_030012E6 > 60) + { + gUnknown_030012C8.unk0[4] = 1; + gUnknown_030012C8.unk0[1] = 6; + } + break; + case 6: + if (gUnknown_030012C8.unk0[2]) + { + sub_81D3C7C(); + gUnknown_030012C8.unk0[2] = 0; + } + break; + } + + return gUnknown_030012C8.unk0[2] | (gUnknown_030012C8.unk0[4] << 2) | (gUnknown_030012C8.unk0[3] << 4); +} + +static u16 sub_81D3EE8(u8 arg0) +{ + u16 terminal = (*(vu32 *)REG_ADDR_SIOCNT) & (SIO_MULTI_SI | SIO_MULTI_SD); + if (terminal == SIO_MULTI_SD && arg0) + { + gUnknown_030012C8.unk0[0] = 1; + return 1; + } + else + { + gUnknown_030012C8.unk0[0] = 0; + return 0; + } +} + +static void sub_81D3F1C(u32 arg0, u32 *arg1, u32 *arg2) +{ + if (gUnknown_030012C8.unk0[0]) + { + REG_SIOCNT |= SIO_38400_BPS; + gUnknown_030012C8.unk8 = arg1; + REG_SIODATA32 = arg0; + gUnknown_030012C8.unk10 = arg0 / 4 + 1; + sub_81D3F68(); + } + else + { + REG_SIOCNT = REG_SIOCNT; + gUnknown_030012C8.unk8 = arg2; + } +} + +static void sub_81D3F68(void) +{ + REG_TM3CNT_L = 0xFDA7; + REG_TM3CNT_H = TIMER_INTR_ENABLE; + REG_IME = 0; + REG_IE |= INTR_FLAG_TIMER3; + REG_IME = 1; +} + +void sub_81D3F9C(void) +{ + sub_81D414C(); + sub_81D413C(); +} + +void sub_81D3FAC(void) +{ + u16 i, playerCount, k; + u32 value; + u16 var0; + u16 recvBuffer[4]; + + switch (gUnknown_030012C8.unk0[1]) + { + case 1: + REG_SIOMLT_SEND = 0xCCD0; // Handshake id + *(u64 *)recvBuffer = REG_SIOMLT_RECV; + for (i = 0, playerCount = 0, k = 0; i < 4; i++) + { + if (recvBuffer[i] == 0xCCD0) + playerCount++; + else if (recvBuffer[i] != 0xFFFF) + k++; + } + + if (playerCount == 2 && k == 0) + gUnknown_030012C8.unk0[1] = 2; + break; + case 3: + value = REG_SIODATA32; + if (!gUnknown_030012C8.unkC && !gUnknown_030012C8.unk0[0]) + gUnknown_030012C8.unk10 = value / 4 + 1; + + if (gUnknown_030012C8.unk0[0] == 1) + { + if (gUnknown_030012C8.unkC < gUnknown_030012C8.unk10) + { + REG_SIODATA32 = gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; + gUnknown_030012C8.unk14 += gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; + } + else + { + REG_SIODATA32 = gUnknown_030012C8.unk14; + } + } + else + { + if (gUnknown_030012C8.unkC > 0 && gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 1) + { + gUnknown_030012C8.unk8[gUnknown_030012C8.unkC - 1] = value; + gUnknown_030012C8.unk14 += value; + } + else if (gUnknown_030012C8.unkC) + { + if (gUnknown_030012C8.unk14 == value) + gUnknown_030012C8.unk0[3] = 1; + else + gUnknown_030012C8.unk0[3] = 2; + } + + gUnknown_030012E8 = 0; + } + + if (++gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 2) + { + if (gUnknown_030012C8.unk0[0]) + REG_TM3CNT_H |= TIMER_ENABLE; + else + sub_81D413C(); + } + else + { + gUnknown_030012C8.unk0[1] = 4; + gUnknown_030012E6 = 0; + } + break; + case 5: + if (!gUnknown_030012C8.unk0[0]) + REG_SIOMLT_SEND = gUnknown_030012C8.unk0[3]; + + *(u64 *)recvBuffer = REG_SIOMLT_RECV; + var0 = recvBuffer[1] - 1; + if (var0 < 2) + { + if (gUnknown_030012C8.unk0[0] == 1) + gUnknown_030012C8.unk0[3] = recvBuffer[1]; + + gUnknown_030012C8.unk0[1] = 6; + } + break; + } +} + +static void sub_81D413C(void) +{ + REG_SIOCNT |= SIO_ENABLE; +} + +static void sub_81D414C(void) +{ + REG_TM3CNT_H &= ~TIMER_ENABLE; + REG_TM3CNT_L = 0xFDA7; +} + +static void sub_81D4170(void) +{ + int keysMask = REG_KEYINPUT ^ KEYS_MASK; + gUnknown_030012E2 = keysMask & ~gUnknown_030012E0; + gUnknown_030012E0 = keysMask; +} + +void sub_81D41A0(void) +{ + gUnknown_030012EC = REG_IME; + gUnknown_030012EE = REG_IE; + gUnknown_030012F0 = REG_TM3CNT_H; + gUnknown_030012F2 = REG_SIOCNT; + gUnknown_030012F4 = REG_RCNT; +} + +void sub_81D41F4(void) +{ + REG_IME = gUnknown_030012EC; + REG_IE = gUnknown_030012EE; + REG_TM3CNT_H = gUnknown_030012F0; + REG_SIOCNT = gUnknown_030012F2; + REG_RCNT = gUnknown_030012F4; +} + +void sub_81D4238(void) +{ + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); +} + +u8 sub_81D4258(void) +{ + u8 eventObjectId; + TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); + return eventObjectId; +} diff --git a/src/event_object_movement.c b/src/event_object_movement.c index ba62db10d..8ebdd883f 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -3,6 +3,7 @@ #include "battle_pyramid.h" #include "berry.h" #include "decoration.h" +#include "ereader.h" #include "event_data.h" #include "event_object_movement.h" #include "event_scripts.h" @@ -15,7 +16,6 @@ #include "metatile_behavior.h" #include "overworld.h" #include "palette.h" -#include "pokenav.h" #include "random.h" #include "sprite.h" #include "task.h" diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 43b29e26e..7bb1b997a 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -3,6 +3,7 @@ #include "battle.h" #include "battle_tower.h" #include "battle_setup.h" +#include "ereader.h" #include "event_data.h" #include "event_scripts.h" #include "fieldmap.h" @@ -32,8 +33,6 @@ #include "constants/easy_chat.h" #include "constants/trainer_hill.h" -extern bool32 sub_81D3B34(void); - #define HILL_TAG_NORMAL 0 #define HILL_TAG_VARIETY 1 #define HILL_TAG_UNIQUE 2 -- cgit v1.2.3 From f4f666f5af6586203692427860a474fe020abd42 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 22 Mar 2019 13:36:06 -0500 Subject: Finish decompiling ereader.c --- src/ereader.c | 881 +++++++++++++++++++++++++++++++++++++++++++++ src/field_control_avatar.c | 4 +- src/fldeff_cut.c | 3 +- 3 files changed, 884 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/ereader.c b/src/ereader.c index 053f82381..9941994ed 100755 --- a/src/ereader.c +++ b/src/ereader.c @@ -1,9 +1,26 @@ #include "global.h" #include "alloc.h" +#include "decompress.h" +#include "event_data.h" #include "event_object_movement.h" +#include "field_weather.h" +#include "fieldmap.h" #include "link.h" +#include "main.h" +#include "metatile_behavior.h" +#include "rom_8011DC0.h" #include "save.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "strings.h" #include "util.h" +#include "constants/event_objects.h" +#include "constants/flags.h" +#include "constants/maps.h" +#include "constants/metatile_behaviors.h" +#include "constants/songs.h" +#include "constants/vars.h" struct Unk81D38FC { @@ -20,6 +37,29 @@ struct Unknown030012C8 int unk14; }; +struct Unk03006370 +{ + u16 unk0; + u32 unk4; + u32 *unk8; +}; + +struct Unk81D5014 +{ + u16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; + u8 unkD; + u8 unkE; + u8 *unk10; +}; + void sub_81D41A0(void); static void sub_81D4170(void); int sub_81D3D70(u8, u32, u32*, u32*); @@ -29,6 +69,14 @@ static void sub_81D413C(void); static void sub_81D414C(void); static void sub_81D3F1C(u32, u32*, u32*); static void sub_81D3F68(void); +bool8 sub_81D4834(s16, s16); +static bool8 sub_81D4C14(struct EventObject*, u8); +static u8 sub_81D4C9C(struct EventObject*, u8); +static u8 sub_81D4C58(struct EventObject*, u8); +static u8 sub_81D4CE0(struct EventObject*, u8); +static u8 sub_81D4D24(u8); +static u8 sub_81D4890(u8); +void sub_81D5084(u8); extern struct Unknown030012C8 gUnknown_030012C8; extern u16 gUnknown_030012E0; @@ -41,8 +89,19 @@ extern u16 gUnknown_030012EE; extern u16 gUnknown_030012F0; extern u16 gUnknown_030012F2; extern u16 gUnknown_030012F4; +extern s16 gUnknown_030012F8; +extern s16 gUnknown_030012FA; +extern u8 gUnknown_030012FC[4]; +extern u8 gUnknown_0203CF50; +extern struct Unk03006370 gUnknown_03006370; extern const u8 gUnknown_08625B6C[]; +extern const u8 gUnknown_089A3470[]; +extern const u8 gMultiBootProgram_BerryGlitchFix_Start[]; +extern const s16 gFarawayIslandRockCoords[4][2]; + +extern const struct SpritePalette gFieldEffectObjectPaletteInfo1; +extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; static u8 sub_81D38D4(void) { @@ -562,3 +621,825 @@ u8 sub_81D4258(void) TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); return eventObjectId; } + +u32 sub_81D427C(void) +{ + u8 i; + int skip; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + gUnknown_030012F8 = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x - mew->currentCoords.x; + gUnknown_030012FA = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y - mew->currentCoords.y; + for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) + gUnknown_030012FC[i] = DIR_NONE; + + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x + && gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y) + { + return DIR_NONE; + } + + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 8 == 0) + mew->invisible = 0; + else + mew->invisible = 1; + + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 9 == 0) + return DIR_NONE; + + for (i = 0; i < ARRAY_COUNT(gFarawayIslandRockCoords); i++) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == gFarawayIslandRockCoords[i][0]) + { + skip = 0; + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y < gFarawayIslandRockCoords[i][1]) + { + if (mew->currentCoords.y <= gFarawayIslandRockCoords[i][1]) + skip = 1; + } + else + { + if (mew->currentCoords.y >= gFarawayIslandRockCoords[i][1]) + skip = 1; + } + + if (!skip) + { + if (gUnknown_030012F8 > 0) + { + if (mew->currentCoords.x + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + } + else if (gUnknown_030012F8 < 0) + { + if (mew->currentCoords.x - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + } + + if (mew->currentCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (gUnknown_030012FA > 0) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + else + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + } + } + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == gFarawayIslandRockCoords[i][1]) + { + skip = 0; + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x < gFarawayIslandRockCoords[i][0]) + { + if (mew->currentCoords.x <= gFarawayIslandRockCoords[i][0]) + skip = 1; + } + else + { + if (mew->currentCoords.x >= gFarawayIslandRockCoords[i][0]) + skip = 1; + } + + if (!skip) + { + if (gUnknown_030012FA > 0) + { + if (mew->currentCoords.y + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + } + else if (gUnknown_030012FA < 0) + { + if (mew->currentCoords.y - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + } + + if (mew->currentCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (gUnknown_030012F8 > 0) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + else + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + } + } + } + } + + if (sub_81D4C14(mew, 0)) + { + if (sub_81D4C58(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4CE0(mew, 1)) + return sub_81D4D24(2); + else + return DIR_NORTH; + } + + if (sub_81D4C9C(mew, 0)) + { + if (sub_81D4C58(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4CE0(mew, 1)) + return sub_81D4D24(2); + else + return DIR_SOUTH; + } + + if (sub_81D4C58(mew, 0)) + { + if (sub_81D4C14(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4C9C(mew, 1)) + return sub_81D4D24(2); + else + return DIR_EAST; + } + + if (sub_81D4CE0(mew, 0)) + { + if (sub_81D4C14(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4C9C(mew, 1)) + return sub_81D4D24(2); + else + return DIR_WEST; + } + + if (gUnknown_030012FA == 0) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y > mew->currentCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y < mew->currentCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + + if (gUnknown_030012F8 == 0) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x > mew->currentCoords.x) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x < mew->currentCoords.x) + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + + return sub_81D4890(DIR_NONE); +} + +bool8 sub_81D4834(s16 x, s16 y) +{ + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x == x + && gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y == y) + { + return FALSE; + } + + return MetatileBehavior_IsPokeGrass(MapGridGetMetatileBehaviorAt(x, y)); +} + +static u8 sub_81D4890(u8 ignoredDir) +{ + u8 i; + u8 count = 0; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) + gUnknown_030012FC[i] = DIR_NONE; + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) + { + gUnknown_030012FC[count] = DIR_NORTH; + count++; + } + + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) + { + gUnknown_030012FC[count] = DIR_EAST; + count++; + } + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) + { + gUnknown_030012FC[count] = DIR_SOUTH; + count++; + } + + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) + { + gUnknown_030012FC[count] = DIR_WEST; + count++; + } + + if (count > 1) + return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % count]; + else + return gUnknown_030012FC[0]; +} + +void UpdateFarawayIslandStepCounter(void) +{ + u16 steps = VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER); + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + steps++; + if (steps >= 9999) + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0); + else + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, steps); + } +} + +bool8 EventObjectIsFarawayIslandMew(struct EventObject *eventObject) +{ + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + if (eventObject->graphicsId == EVENT_OBJ_GFX_MEW) + return TRUE; + } + + return FALSE; +} + +bool8 IsMewPlayingHideAndSeek(void) +{ + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + if (FlagGet(FLAG_CAUGHT_MEW) != TRUE && FlagGet(FLAG_HIDE_MEW) != TRUE) + return TRUE; + } + + return FALSE; +} + +bool8 sub_81D4A58(struct EventObject *eventObject) +{ + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) != 0xFFFF + && VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 4 == 0) + return TRUE; + + return FALSE; +} + +void sub_81D4A90(void) +{ + s16 x; + s16 y; + u8 spriteId; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + mew->invisible = 0; + if (gSpecialVar_0x8004 == 1) + { + mew->fixedPriority = 1; + gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; + gSprites[mew->spriteId].subpriority = 1; + } + else + { + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0xFFFF); + mew->fixedPriority = 1; + gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; + if (gSpecialVar_Facing != DIR_NORTH) + gSprites[mew->spriteId].subpriority = 1; + + LoadSpritePalette(&gFieldEffectObjectPaletteInfo1); + UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(gFieldEffectObjectPaletteInfo1.tag)); + + x = mew->currentCoords.x; + y = mew->currentCoords.y; + sub_80930E0(&x, &y, 8, 8); + gUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); + if (gUnknown_0203CF50 != MAX_SPRITES) + { + struct Sprite *sprite = &gSprites[gUnknown_0203CF50]; + sprite->coordOffsetEnabled = 1; + sprite->oam.priority = 2; + sprite->callback = SpriteCallbackDummy; + } + } +} + +void sub_81D4BEC(void) +{ + if (gUnknown_0203CF50 != MAX_SPRITES) + DestroySprite(&gSprites[gUnknown_0203CF50]); +} + +static bool8 sub_81D4C14(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012FA > 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + { + gUnknown_030012FC[index] = DIR_NORTH; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4C58(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012F8 < 0 && sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + { + gUnknown_030012FC[index] = DIR_EAST; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4C9C(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012FA < 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + { + gUnknown_030012FC[index] = DIR_SOUTH; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4CE0(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012F8 > 0 && sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + { + gUnknown_030012FC[index] = DIR_WEST; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4D24(u8 mod) +{ + return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % mod]; +} + +void sub_81D4D50(struct Unk03006370 *arg0, int arg1, u32 *arg2) +{ + volatile u16 backupIME = REG_IME; + REG_IME = 0; + gIntrTable[1] = sub_81D3FAC; + gIntrTable[2] = sub_81D3F9C; + sub_81D41A0(); + sub_81D4238(); + REG_IE |= INTR_FLAG_VCOUNT; + REG_IME = backupIME; + arg0->unk0 = 0; + arg0->unk4 = arg1; + arg0->unk8 = arg2; +} + +void sub_81D4DB8(struct Unk03006370 *arg0) +{ + volatile u16 backupIME = REG_IME; + REG_IME = 0; + sub_81D4238(); + sub_81D41F4(); + RestoreSerialTimer3IntrHandlers(); + REG_IME = backupIME; +} + +u8 sub_81D4DE8(struct Unk03006370 *arg0) +{ + u8 var0 = 0; + arg0->unk0 = sub_81D3D70(1, arg0->unk4, arg0->unk8, NULL); + if ((arg0->unk0 & 0x13) == 0x10) + var0 = 1; + + if (arg0->unk0 & 0x8) + var0 = 2; + + if (arg0->unk0 & 0x4) + var0 = 3; + + gShouldAdvanceLinkState = 0; + return var0; +} + +void sub_81D4E30(void) +{ + memset(gDecompressionBuffer, 0, 0x2000); + gLinkType = 0x5503; + OpenLink(); + SetSuppressLinkErrorMessage(TRUE); +} + +bool32 sub_81D4E60(void) +{ + volatile u16 backupIME; + u16 sp4[4]; + + backupIME = REG_IME; + REG_IME = 0; + *(u64 *)sp4 = *(u64 *)gLink.tempRecvBuffer; + REG_IME = backupIME; + if (sp4[0] == 0xB9A0 && sp4[1] == 0xCCD0 + && sp4[2] == 0xFFFF && sp4[3] == 0xFFFF) + { + return TRUE; + } + + return FALSE; +} + +bool32 sub_81D4EC0(void) +{ + if (IsLinkMaster() && GetLinkPlayerCount_2() == 2) + return TRUE; + + return FALSE; +} + +u32 sub_81D4EE4(u8 *arg0, u16 *arg1) +{ + u8 var0; + + var0 = *arg0 - 3; + if (var0 < 3 && HasLinkErrorOccurred()) + { + *arg0 = 0; + return 3; + } + + switch (*arg0) + { + case 0: + if (IsLinkMaster() && GetLinkPlayerCount_2() > 1) + { + *arg0 = 1; + } + else if (gMain.newKeys & B_BUTTON) + { + *arg0 = 0; + return 1; + } + break; + case 1: + if (++(*arg1) > 5) + { + *arg1 = 0; + *arg0 = 2; + } + break; + case 2: + if (GetLinkPlayerCount_2() == 2) + { + PlaySE(SE_PINPON); + CheckShouldAdvanceLinkState(); + *arg1 = 0; + *arg0 = 3; + } + else if (gMain.newKeys & B_BUTTON) + { + *arg0 = 0; + return 1; + } + break; + case 3: + if (++(*arg1) > 30) + { + *arg0 = 0; + return 5; + } + + if (IsLinkConnectionEstablished()) + { + if (gReceivedRemoteLinkPlayers) + { + if (IsLinkPlayerDataExchangeComplete()) + { + *arg0 = 0; + return 2; + } + else + { + *arg0 = 4; + } + } + else + { + *arg0 = 3; + } + } + break; + case 4: + sub_800ABF4(0); + *arg0 = 5; + break; + case 5: + if (!gReceivedRemoteLinkPlayers) + { + *arg0 = 0; + return 4; + } + break; + default: + return 0; + } + + return 0; +} + +void sub_81D5014(void) +{ + int value; + struct Unk81D5014 *data; + u8 taskId = CreateTask(sub_81D5084, 0); + data = (struct Unk81D5014 *)gTasks[taskId].data; + data->unk8 = 0; + data->unk9 = 0; + data->unkA = 0; + data->unkB = 0; + data->unkC = 0; + data->unkD = 0; + data->unk0 = 0; + data->unk2 = 0; + data->unk4 = 0; + data->unk6 = 0; + data->unkE = 0; + data->unk10 = AllocZeroed(0x40); +} + +void sub_81D505C(u16 *arg0) +{ + *arg0 = 0; +} + +bool32 sub_81D5064(u16 *arg0, u16 arg1) +{ + if (++(*arg0) > arg1) + { + *arg0 = 0; + return TRUE; + } + + return FALSE; +} + +void sub_81D5084(u8 taskId) +{ + struct Unk81D5014 *data = (struct Unk81D5014 *)gTasks[taskId].data; + switch (data->unk8) + { + case 0: + if (mevent_0814257C(&data->unk9, gUnknown_085EDFD6)) + data->unk8 = 1; + break; + case 1: + sub_81D4E30(); + sub_81D505C(&data->unk0); + data->unk8 = 2; + break; + case 2: + if (sub_81D5064(&data->unk0, 10)) + data->unk8 = 3; + break; + case 3: + if (!sub_81D4EC0()) + { + CloseLink(); + data->unk8 = 4; + } + else + { + data->unk8 = 13; + } + break; + case 4: + if (mevent_0814257C(&data->unk9, gUnknown_085EDFF5)) + { + sub_8018884(gUnknown_085EE014); + sub_81D505C(&data->unk0); + data->unk8 = 5; + } + break; + case 5: + if (sub_81D5064(&data->unk0, 90)) + { + sub_81D4E30(); + data->unk8 = 6; + } + else if (gMain.newKeys & B_BUTTON) + { + sub_81D505C(&data->unk0); + PlaySE(SE_SELECT); + data->unk8 = 23; + } + break; + case 6: + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + CloseLink(); + sub_81D505C(&data->unk0); + data->unk8 = 23; + } + else if (GetLinkPlayerCount_2() > 1) + { + sub_81D505C(&data->unk0); + CloseLink(); + data->unk8 = 7; + } + else if (sub_81D4E60()) + { + PlaySE(SE_SELECT); + CloseLink(); + sub_81D505C(&data->unk0); + data->unk8 = 8; + } + else if (sub_81D5064(&data->unk0, 10)) + { + CloseLink(); + sub_81D4E30(); + sub_81D505C(&data->unk0); + } + break; + case 7: + if (mevent_0814257C(&data->unk9, gUnknown_085EE05C)) + data->unk8 = 4; + break; + case 8: + sub_8018884(gUnknown_085EE097); + // XXX: This (u32*) cast is discarding the const qualifier from gUnknown_089A3470 + sub_81D4D50(&gUnknown_03006370, gMultiBootProgram_BerryGlitchFix_Start - gUnknown_089A3470, (u32*)gUnknown_089A3470); + data->unk8 = 9; + break; + case 9: + data->unkE = sub_81D4DE8(&gUnknown_03006370); + if (data->unkE) + data->unk8 = 10; + break; + case 10: + sub_81D4DB8(&gUnknown_03006370); + if (data->unkE == 3) + { + data->unk8 = 20; + } + else if (data->unkE == 1) + { + sub_81D505C(&data->unk0); + sub_8018884(gUnknown_085EE120); + data->unk8 = 11; + } + else + { + data->unk8 = 0; + } + break; + case 11: + if (sub_81D5064(&data->unk0, 840)) + data->unk8 = 12; + break; + case 12: + sub_81D4E30(); + sub_8018884(gUnknown_085EE0DC); + data->unk8 = 13; + break; + case 13: + switch (sub_81D4EE4(&data->unk9, &data->unk0)) + { + case 0: + break; + case 2: + sub_8018884(gUnknown_085EE097); + data->unk8 = 14; + break; + case 1: + PlaySE(SE_SELECT); + CloseLink(); + data->unk8 = 23; + break; + case 5: + CloseLink(); + data->unk8 = 21; + break; + case 3: + case 4: + CloseLink(); + data->unk8 = 20; + break; + } + break; + case 14: + if (HasLinkErrorOccurred()) + { + CloseLink(); + data->unk8 = 20; + } + else if (GetBlockReceivedStatus()) + { + ResetBlockReceivedFlags(); + data->unk8 = 15; + } + break; + case 15: + data->unkE = sub_81D3920(gDecompressionBuffer); + sub_800ABF4(data->unkE); + data->unk8 = 16; + break; + case 16: + if (!gReceivedRemoteLinkPlayers) + { + if (data->unkE == 1) + data->unk8 = 17; + else + data->unk8 = 20; + } + break; + case 17: + if (sub_81D3AB0((struct Unk81D38FC *)&gDecompressionBuffer)) + { + sub_8018884(gUnknown_085EE0FA); + sub_81D505C(&data->unk0); + data->unk8 = 18; + } + else + { + data->unk8 = 22; + } + break; + case 18: + if (sub_81D5064(&data->unk0, 120)) + { + sub_8018884(gUnknown_085EE107); + PlayFanfare(MUS_FANFA4); + data->unk8 = 19; + } + break; + case 19: + if (IsFanfareTaskInactive() && (gMain.newKeys & (A_BUTTON | B_BUTTON))) + data->unk8 = 26; + break; + case 23: + if (mevent_0814257C(&data->unk9,gUnknown_085EE06B)) + data->unk8 = 26; + break; + case 20: + if (mevent_0814257C(&data->unk9, gUnknown_085EE0A3)) + data->unk8 = 0; + break; + case 21: + if (mevent_0814257C(&data->unk9, gUnknown_085EE0BF)) + data->unk8 = 0; + break; + case 22: + if (mevent_0814257C(&data->unk9, gUnknown_085EE12D)) + data->unk8 = 0; + break; + case 26: + Free(data->unk10); + DestroyTask(taskId); + SetMainCallback2(sub_80186A4); + break; + } +} diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 680191bb3..b28052ee2 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -3,6 +3,7 @@ #include "bike.h" #include "coord_event_weather.h" #include "daycare.h" +#include "ereader.h" #include "event_data.h" #include "event_object_movement.h" #include "event_scripts.h" @@ -18,7 +19,6 @@ #include "metatile_behavior.h" #include "overworld.h" #include "pokemon.h" -#include "pokenav.h" #include "safari_zone.h" #include "script.h" #include "secret_base.h" @@ -541,7 +541,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) IncrementRematchStepCounter(); UpdateHappinessStepCounter(); - sub_81D4998(); + UpdateFarawayIslandStepCounter(); if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) { diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index b1f4a6368..f1a65cf8c 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -1,4 +1,5 @@ #include "global.h" +#include "ereader.h" #include "event_obj_lock.h" #include "event_object_movement.h" #include "field_camera.h" @@ -20,8 +21,6 @@ #include "constants/field_effects.h" #include "constants/songs.h" -extern bool8 IsMewPlayingHideAndSeek(void); - extern struct MapPosition gPlayerFacingPosition; extern const u8 Route103_EventScript_290705[]; -- cgit v1.2.3 From a7d5f032b17bf95d879a856d801731a7ae7f5b9b Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 22 Mar 2019 14:16:26 -0500 Subject: Split into ereader_helpers.c, faraway_island.c, and ereader_screen.c --- src/ereader.c | 1445 ------------------------------------------- src/ereader_helpers.c | 553 +++++++++++++++++ src/ereader_screen.c | 464 ++++++++++++++ src/event_object_movement.c | 2 +- src/faraway_island.c | 445 +++++++++++++ src/field_control_avatar.c | 2 +- src/fldeff_cut.c | 2 +- src/trainer_hill.c | 2 +- 8 files changed, 1466 insertions(+), 1449 deletions(-) delete mode 100755 src/ereader.c create mode 100755 src/ereader_helpers.c create mode 100755 src/ereader_screen.c create mode 100755 src/faraway_island.c (limited to 'src') diff --git a/src/ereader.c b/src/ereader.c deleted file mode 100755 index 9941994ed..000000000 --- a/src/ereader.c +++ /dev/null @@ -1,1445 +0,0 @@ -#include "global.h" -#include "alloc.h" -#include "decompress.h" -#include "event_data.h" -#include "event_object_movement.h" -#include "field_weather.h" -#include "fieldmap.h" -#include "link.h" -#include "main.h" -#include "metatile_behavior.h" -#include "rom_8011DC0.h" -#include "save.h" -#include "sound.h" -#include "sprite.h" -#include "task.h" -#include "strings.h" -#include "util.h" -#include "constants/event_objects.h" -#include "constants/flags.h" -#include "constants/maps.h" -#include "constants/metatile_behaviors.h" -#include "constants/songs.h" -#include "constants/vars.h" - -struct Unk81D38FC -{ - u8 unk0[0x270]; - int checksum; -}; - -struct Unknown030012C8 -{ - u8 unk0[8]; - u32 *unk8; - int unkC; - int unk10; - int unk14; -}; - -struct Unk03006370 -{ - u16 unk0; - u32 unk4; - u32 *unk8; -}; - -struct Unk81D5014 -{ - u16 unk0; - u16 unk2; - u16 unk4; - u16 unk6; - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; - u8 unkC; - u8 unkD; - u8 unkE; - u8 *unk10; -}; - -void sub_81D41A0(void); -static void sub_81D4170(void); -int sub_81D3D70(u8, u32, u32*, u32*); -void sub_81D41F4(void); -static u16 sub_81D3EE8(u8); -static void sub_81D413C(void); -static void sub_81D414C(void); -static void sub_81D3F1C(u32, u32*, u32*); -static void sub_81D3F68(void); -bool8 sub_81D4834(s16, s16); -static bool8 sub_81D4C14(struct EventObject*, u8); -static u8 sub_81D4C9C(struct EventObject*, u8); -static u8 sub_81D4C58(struct EventObject*, u8); -static u8 sub_81D4CE0(struct EventObject*, u8); -static u8 sub_81D4D24(u8); -static u8 sub_81D4890(u8); -void sub_81D5084(u8); - -extern struct Unknown030012C8 gUnknown_030012C8; -extern u16 gUnknown_030012E0; -extern u16 gUnknown_030012E2; -extern u16 gUnknown_030012E4; -extern u16 gUnknown_030012E6; -extern u32 gUnknown_030012E8; -extern u16 gUnknown_030012EC; -extern u16 gUnknown_030012EE; -extern u16 gUnknown_030012F0; -extern u16 gUnknown_030012F2; -extern u16 gUnknown_030012F4; -extern s16 gUnknown_030012F8; -extern s16 gUnknown_030012FA; -extern u8 gUnknown_030012FC[4]; -extern u8 gUnknown_0203CF50; -extern struct Unk03006370 gUnknown_03006370; - -extern const u8 gUnknown_08625B6C[]; -extern const u8 gUnknown_089A3470[]; -extern const u8 gMultiBootProgram_BerryGlitchFix_Start[]; -extern const s16 gFarawayIslandRockCoords[4][2]; - -extern const struct SpritePalette gFieldEffectObjectPaletteInfo1; -extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; - -static u8 sub_81D38D4(void) -{ - return (gSaveBlock1Ptr->trainerHill.unused + 1) % 256; -} - -static bool32 sub_81D38FC(struct Unk81D38FC *arg0) -{ - int checksum = CalcByteArraySum(arg0->unk0, 0x270); - if (checksum != arg0->checksum) - return FALSE; - - return TRUE; -} - -bool8 sub_81D3920(u8 *buffer) -{ - u32 i; - u32 checksum; - int var0 = buffer[0]; - if (var0 < 1 || var0 > 8) - return FALSE; - - for (i = 0; i < var0; i++) - { - struct Unk81D38FC *var1 = (struct Unk81D38FC *)(&buffer[i * (sizeof(struct Unk81D38FC)) + 8]); - if (!sub_81D38FC(var1)) - return FALSE; - } - - checksum = CalcByteArraySum(buffer + 8, var0 * 0x274); - if (checksum != ((int *)buffer)[1]) - return FALSE; - - return TRUE; -} - -static bool32 sub_81D396C(u8 *buffer) -{ - u32 checksum; - int var0 = buffer[0]; - if (var0 < 1 || var0 > 8) - return FALSE; - - checksum = CalcByteArraySum(buffer + 8, 0xEE0); - if (checksum != ((int *)buffer)[1]) - return FALSE; - - return TRUE; -} - -static bool32 sub_81D3998(struct Unk81D38FC *arg0, u8 *buffer2) -{ - int i; - const u8 *ereaderVals; - - memset(buffer2, 0, 0x1000); - buffer2[0] = arg0->unk0[0]; - buffer2[1] = sub_81D38D4(); - buffer2[2] = (arg0->unk0[0] + 1) / 2; - - for (i = 0; i < arg0->unk0[0]; i++) - { - if (!(i & 1)) - { - u8 *var0 = &buffer2[(i / 2) * 0x3B8]; - u8 *var1 = arg0[i].unk0; - var0[8] = var1[8]; - memcpy(&var0[0x29C], &var1[0x154], 0x124); - var0 += 0xC; - var1 += 0xC; - memcpy(var0, var1, 0x148); - } - else - { - u8 *var0 = &buffer2[(i / 2) * 0x3B8]; - u8 *var1 = arg0[i].unk0; - var0[9] = var1[8]; - memcpy(&var0[0x154], &var1[0xC], 0x148); - } - } - - if (i & 1) - { - u8 *var0 = &buffer2[(i / 2) * 0x3B8]; - var0 += 0x154; - - ereaderVals = gUnknown_08625B6C; - memcpy(var0, &ereaderVals[(i / 2) * 0x148], 0x148); - } - - ((int *)buffer2)[1] = CalcByteArraySum(buffer2 + 8, 0xEE0); - if (sub_8153634(SECTOR_ID_TRAINER_HILL, buffer2) != 1) - return FALSE; - - return TRUE; -} - -bool32 sub_81D3AB0(struct Unk81D38FC *arg0) -{ - u8 *var0 = AllocZeroed(0x1000); - bool32 result = sub_81D3998(arg0, var0); - Free(var0); - return result; -} - -static bool32 sub_81D3AD8(u8 *arg0, u8 *arg1) -{ - if (TryCopySpecialSaveSection(SECTOR_ID_TRAINER_HILL, arg1) != 1) - return FALSE; - - memcpy(arg0, arg1, 0xEE8); - if (!sub_81D396C(arg0)) - return FALSE; - - return TRUE; -} - -static bool32 sub_81D3B0C(u8 *arg0) -{ - u8 *var0 = AllocZeroed(0x1000); - bool32 result = sub_81D3AD8(arg0, var0); - Free(var0); - return result; -} - -bool32 sub_81D3B34(void) -{ - u8 *var0 = AllocZeroed(0x1000); - bool32 result = sub_81D3B0C(var0); - Free(var0); - return result; -} - -static int unref_sub_81D3B54(int arg0, u32 *arg1) -{ - int result; - u16 var0; - int var1; - - sub_81D41A0(); - while (1) - { - sub_81D4170(); - if (gUnknown_030012E2 & 2) - gShouldAdvanceLinkState = 2; - - var1 = sub_81D3D70(1, arg0, arg1, NULL); - gUnknown_030012E4 = var1; - if ((gUnknown_030012E4 & 0x13) == 0x10) - { - result = 0; - break; - } - - if (gUnknown_030012E4 & 0x8) - { - result = 1; - break; - } - - var0 = gUnknown_030012E4 & 0x4; - if (var0) - { - result = 2; - break; - } - - gShouldAdvanceLinkState = var0; - VBlankIntrWait(); - } - - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); - sub_81D41F4(); - return result; -} - -static int unref_sub_81D3BE8(u32 *arg0) -{ - int result; - u16 var0; - int var1; - - sub_81D41A0(); - while (1) - { - sub_81D4170(); - if (gUnknown_030012E2 & 2) - gShouldAdvanceLinkState = 2; - - var1 = sub_81D3D70(0, 0, NULL, arg0); - gUnknown_030012E4 = var1; - if ((gUnknown_030012E4 & 0x13) == 0x10) - { - result = 0; - break; - } - - if (gUnknown_030012E4 & 0x8) - { - result = 1; - break; - } - - var0 = gUnknown_030012E4 & 0x4; - if (var0) - { - result = 2; - break; - } - - gShouldAdvanceLinkState = var0; - VBlankIntrWait(); - } - - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); - sub_81D41F4(); - return result; -} - -static void sub_81D3C7C(void) -{ - REG_IME = 0; - REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); - REG_IME = 1; - REG_SIOCNT = 0; - REG_TM3CNT_H = 0; - REG_IF = INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL; -} - -static void sub_81D3CBC(void) -{ - REG_IME = 0; - REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); - REG_IME = 1; - REG_RCNT = 0; - REG_SIOCNT = SIO_MULTI_MODE; - REG_SIOCNT |= SIO_INTR_ENABLE | SIO_115200_BPS; - REG_IME = 0; - REG_IE |= INTR_FLAG_SERIAL; - REG_IME = 1; - - if (!gUnknown_030012C8.unk0[1]) - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); -} - -static void sub_81D3D34(void) -{ - REG_RCNT = 0; - REG_SIOCNT = SIO_32BIT_MODE | SIO_INTR_ENABLE; - REG_SIOCNT |= SIO_MULTI_SD; - gShouldAdvanceLinkState = 0; - gUnknown_030012E6 = 0; - gUnknown_030012E8 = 0; -} - -int sub_81D3D70(u8 arg0, u32 arg1, u32 *arg2, u32 *arg3) -{ - switch (gUnknown_030012C8.unk0[1]) - { - case 0: - sub_81D3CBC(); - gUnknown_030012C8.unk0[2] = 1; - gUnknown_030012C8.unk0[1] = 1; - break; - case 1: - if (sub_81D3EE8(arg0)) - sub_81D413C(); - - if (gShouldAdvanceLinkState == 2) - { - gUnknown_030012C8.unk0[4] = 2; - gUnknown_030012C8.unk0[1] = 6; - } - break; - case 2: - sub_81D3D34(); - sub_81D3F1C(arg1, arg2, arg3); - gUnknown_030012C8.unk0[1] = 3; - // fall through - case 3: - if (gShouldAdvanceLinkState == 2) - { - gUnknown_030012C8.unk0[4] = 2; - gUnknown_030012C8.unk0[1] = 6; - } - else - { - gUnknown_030012E6++; - gUnknown_030012E8++; - if (!gUnknown_030012C8.unk0[0] && gUnknown_030012E8 > 60) - { - gUnknown_030012C8.unk0[4] = 1; - gUnknown_030012C8.unk0[1] = 6; - } - - if (gUnknown_030012C8.unk0[2] != 2) - { - if (gUnknown_030012C8.unk0[0] && gUnknown_030012E6 > 2) - { - sub_81D413C(); - gUnknown_030012C8.unk0[2] = 2; - } - else - { - sub_81D413C(); - gUnknown_030012C8.unk0[2] = 2; - } - } - } - break; - case 4: - sub_81D3CBC(); - gUnknown_030012C8.unk0[1] = 5; - break; - case 5: - if (gUnknown_030012C8.unk0[0] == 1 && gUnknown_030012E6 > 2) - sub_81D413C(); - - if (++gUnknown_030012E6 > 60) - { - gUnknown_030012C8.unk0[4] = 1; - gUnknown_030012C8.unk0[1] = 6; - } - break; - case 6: - if (gUnknown_030012C8.unk0[2]) - { - sub_81D3C7C(); - gUnknown_030012C8.unk0[2] = 0; - } - break; - } - - return gUnknown_030012C8.unk0[2] | (gUnknown_030012C8.unk0[4] << 2) | (gUnknown_030012C8.unk0[3] << 4); -} - -static u16 sub_81D3EE8(u8 arg0) -{ - u16 terminal = (*(vu32 *)REG_ADDR_SIOCNT) & (SIO_MULTI_SI | SIO_MULTI_SD); - if (terminal == SIO_MULTI_SD && arg0) - { - gUnknown_030012C8.unk0[0] = 1; - return 1; - } - else - { - gUnknown_030012C8.unk0[0] = 0; - return 0; - } -} - -static void sub_81D3F1C(u32 arg0, u32 *arg1, u32 *arg2) -{ - if (gUnknown_030012C8.unk0[0]) - { - REG_SIOCNT |= SIO_38400_BPS; - gUnknown_030012C8.unk8 = arg1; - REG_SIODATA32 = arg0; - gUnknown_030012C8.unk10 = arg0 / 4 + 1; - sub_81D3F68(); - } - else - { - REG_SIOCNT = REG_SIOCNT; - gUnknown_030012C8.unk8 = arg2; - } -} - -static void sub_81D3F68(void) -{ - REG_TM3CNT_L = 0xFDA7; - REG_TM3CNT_H = TIMER_INTR_ENABLE; - REG_IME = 0; - REG_IE |= INTR_FLAG_TIMER3; - REG_IME = 1; -} - -void sub_81D3F9C(void) -{ - sub_81D414C(); - sub_81D413C(); -} - -void sub_81D3FAC(void) -{ - u16 i, playerCount, k; - u32 value; - u16 var0; - u16 recvBuffer[4]; - - switch (gUnknown_030012C8.unk0[1]) - { - case 1: - REG_SIOMLT_SEND = 0xCCD0; // Handshake id - *(u64 *)recvBuffer = REG_SIOMLT_RECV; - for (i = 0, playerCount = 0, k = 0; i < 4; i++) - { - if (recvBuffer[i] == 0xCCD0) - playerCount++; - else if (recvBuffer[i] != 0xFFFF) - k++; - } - - if (playerCount == 2 && k == 0) - gUnknown_030012C8.unk0[1] = 2; - break; - case 3: - value = REG_SIODATA32; - if (!gUnknown_030012C8.unkC && !gUnknown_030012C8.unk0[0]) - gUnknown_030012C8.unk10 = value / 4 + 1; - - if (gUnknown_030012C8.unk0[0] == 1) - { - if (gUnknown_030012C8.unkC < gUnknown_030012C8.unk10) - { - REG_SIODATA32 = gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; - gUnknown_030012C8.unk14 += gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; - } - else - { - REG_SIODATA32 = gUnknown_030012C8.unk14; - } - } - else - { - if (gUnknown_030012C8.unkC > 0 && gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 1) - { - gUnknown_030012C8.unk8[gUnknown_030012C8.unkC - 1] = value; - gUnknown_030012C8.unk14 += value; - } - else if (gUnknown_030012C8.unkC) - { - if (gUnknown_030012C8.unk14 == value) - gUnknown_030012C8.unk0[3] = 1; - else - gUnknown_030012C8.unk0[3] = 2; - } - - gUnknown_030012E8 = 0; - } - - if (++gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 2) - { - if (gUnknown_030012C8.unk0[0]) - REG_TM3CNT_H |= TIMER_ENABLE; - else - sub_81D413C(); - } - else - { - gUnknown_030012C8.unk0[1] = 4; - gUnknown_030012E6 = 0; - } - break; - case 5: - if (!gUnknown_030012C8.unk0[0]) - REG_SIOMLT_SEND = gUnknown_030012C8.unk0[3]; - - *(u64 *)recvBuffer = REG_SIOMLT_RECV; - var0 = recvBuffer[1] - 1; - if (var0 < 2) - { - if (gUnknown_030012C8.unk0[0] == 1) - gUnknown_030012C8.unk0[3] = recvBuffer[1]; - - gUnknown_030012C8.unk0[1] = 6; - } - break; - } -} - -static void sub_81D413C(void) -{ - REG_SIOCNT |= SIO_ENABLE; -} - -static void sub_81D414C(void) -{ - REG_TM3CNT_H &= ~TIMER_ENABLE; - REG_TM3CNT_L = 0xFDA7; -} - -static void sub_81D4170(void) -{ - int keysMask = REG_KEYINPUT ^ KEYS_MASK; - gUnknown_030012E2 = keysMask & ~gUnknown_030012E0; - gUnknown_030012E0 = keysMask; -} - -void sub_81D41A0(void) -{ - gUnknown_030012EC = REG_IME; - gUnknown_030012EE = REG_IE; - gUnknown_030012F0 = REG_TM3CNT_H; - gUnknown_030012F2 = REG_SIOCNT; - gUnknown_030012F4 = REG_RCNT; -} - -void sub_81D41F4(void) -{ - REG_IME = gUnknown_030012EC; - REG_IE = gUnknown_030012EE; - REG_TM3CNT_H = gUnknown_030012F0; - REG_SIOCNT = gUnknown_030012F2; - REG_RCNT = gUnknown_030012F4; -} - -void sub_81D4238(void) -{ - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); -} - -u8 sub_81D4258(void) -{ - u8 eventObjectId; - TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); - return eventObjectId; -} - -u32 sub_81D427C(void) -{ - u8 i; - int skip; - struct EventObject *mew = &gEventObjects[sub_81D4258()]; - - gUnknown_030012F8 = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x - mew->currentCoords.x; - gUnknown_030012FA = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y - mew->currentCoords.y; - for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) - gUnknown_030012FC[i] = DIR_NONE; - - if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x - && gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y) - { - return DIR_NONE; - } - - if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 8 == 0) - mew->invisible = 0; - else - mew->invisible = 1; - - if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 9 == 0) - return DIR_NONE; - - for (i = 0; i < ARRAY_COUNT(gFarawayIslandRockCoords); i++) - { - if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == gFarawayIslandRockCoords[i][0]) - { - skip = 0; - if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y < gFarawayIslandRockCoords[i][1]) - { - if (mew->currentCoords.y <= gFarawayIslandRockCoords[i][1]) - skip = 1; - } - else - { - if (mew->currentCoords.y >= gFarawayIslandRockCoords[i][1]) - skip = 1; - } - - if (!skip) - { - if (gUnknown_030012F8 > 0) - { - if (mew->currentCoords.x + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) - { - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) - return DIR_EAST; - } - } - else if (gUnknown_030012F8 < 0) - { - if (mew->currentCoords.x - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) - { - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) - return DIR_WEST; - } - } - - if (mew->currentCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) - { - if (gUnknown_030012FA > 0) - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) - return DIR_NORTH; - } - else - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) - return DIR_SOUTH; - } - } - } - } - - if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == gFarawayIslandRockCoords[i][1]) - { - skip = 0; - if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x < gFarawayIslandRockCoords[i][0]) - { - if (mew->currentCoords.x <= gFarawayIslandRockCoords[i][0]) - skip = 1; - } - else - { - if (mew->currentCoords.x >= gFarawayIslandRockCoords[i][0]) - skip = 1; - } - - if (!skip) - { - if (gUnknown_030012FA > 0) - { - if (mew->currentCoords.y + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) - return DIR_SOUTH; - } - } - else if (gUnknown_030012FA < 0) - { - if (mew->currentCoords.y - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) - return DIR_NORTH; - } - } - - if (mew->currentCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) - { - if (gUnknown_030012F8 > 0) - { - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) - return DIR_WEST; - } - else - { - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) - return DIR_EAST; - } - } - } - } - } - - if (sub_81D4C14(mew, 0)) - { - if (sub_81D4C58(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4CE0(mew, 1)) - return sub_81D4D24(2); - else - return DIR_NORTH; - } - - if (sub_81D4C9C(mew, 0)) - { - if (sub_81D4C58(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4CE0(mew, 1)) - return sub_81D4D24(2); - else - return DIR_SOUTH; - } - - if (sub_81D4C58(mew, 0)) - { - if (sub_81D4C14(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4C9C(mew, 1)) - return sub_81D4D24(2); - else - return DIR_EAST; - } - - if (sub_81D4CE0(mew, 0)) - { - if (sub_81D4C14(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4C9C(mew, 1)) - return sub_81D4D24(2); - else - return DIR_WEST; - } - - if (gUnknown_030012FA == 0) - { - if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y > mew->currentCoords.y) - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) - return DIR_NORTH; - } - - if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y < mew->currentCoords.y) - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) - return DIR_SOUTH; - } - - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) - return DIR_NORTH; - - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) - return DIR_SOUTH; - } - - if (gUnknown_030012F8 == 0) - { - if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x > mew->currentCoords.x) - { - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) - return DIR_WEST; - } - - if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x < mew->currentCoords.x) - { - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) - return DIR_EAST; - } - - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) - return DIR_EAST; - - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) - return DIR_WEST; - } - - return sub_81D4890(DIR_NONE); -} - -bool8 sub_81D4834(s16 x, s16 y) -{ - if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x == x - && gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y == y) - { - return FALSE; - } - - return MetatileBehavior_IsPokeGrass(MapGridGetMetatileBehaviorAt(x, y)); -} - -static u8 sub_81D4890(u8 ignoredDir) -{ - u8 i; - u8 count = 0; - struct EventObject *mew = &gEventObjects[sub_81D4258()]; - - for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) - gUnknown_030012FC[i] = DIR_NONE; - - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) - { - gUnknown_030012FC[count] = DIR_NORTH; - count++; - } - - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) - { - gUnknown_030012FC[count] = DIR_EAST; - count++; - } - - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) - { - gUnknown_030012FC[count] = DIR_SOUTH; - count++; - } - - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) - { - gUnknown_030012FC[count] = DIR_WEST; - count++; - } - - if (count > 1) - return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % count]; - else - return gUnknown_030012FC[0]; -} - -void UpdateFarawayIslandStepCounter(void) -{ - u16 steps = VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER); - if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) - && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) - { - steps++; - if (steps >= 9999) - VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0); - else - VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, steps); - } -} - -bool8 EventObjectIsFarawayIslandMew(struct EventObject *eventObject) -{ - if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) - && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) - { - if (eventObject->graphicsId == EVENT_OBJ_GFX_MEW) - return TRUE; - } - - return FALSE; -} - -bool8 IsMewPlayingHideAndSeek(void) -{ - if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) - && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) - { - if (FlagGet(FLAG_CAUGHT_MEW) != TRUE && FlagGet(FLAG_HIDE_MEW) != TRUE) - return TRUE; - } - - return FALSE; -} - -bool8 sub_81D4A58(struct EventObject *eventObject) -{ - if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) != 0xFFFF - && VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 4 == 0) - return TRUE; - - return FALSE; -} - -void sub_81D4A90(void) -{ - s16 x; - s16 y; - u8 spriteId; - struct EventObject *mew = &gEventObjects[sub_81D4258()]; - - mew->invisible = 0; - if (gSpecialVar_0x8004 == 1) - { - mew->fixedPriority = 1; - gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; - gSprites[mew->spriteId].subpriority = 1; - } - else - { - VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0xFFFF); - mew->fixedPriority = 1; - gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; - if (gSpecialVar_Facing != DIR_NORTH) - gSprites[mew->spriteId].subpriority = 1; - - LoadSpritePalette(&gFieldEffectObjectPaletteInfo1); - UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(gFieldEffectObjectPaletteInfo1.tag)); - - x = mew->currentCoords.x; - y = mew->currentCoords.y; - sub_80930E0(&x, &y, 8, 8); - gUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); - if (gUnknown_0203CF50 != MAX_SPRITES) - { - struct Sprite *sprite = &gSprites[gUnknown_0203CF50]; - sprite->coordOffsetEnabled = 1; - sprite->oam.priority = 2; - sprite->callback = SpriteCallbackDummy; - } - } -} - -void sub_81D4BEC(void) -{ - if (gUnknown_0203CF50 != MAX_SPRITES) - DestroySprite(&gSprites[gUnknown_0203CF50]); -} - -static bool8 sub_81D4C14(struct EventObject *mew, u8 index) -{ - if (gUnknown_030012FA > 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) - { - gUnknown_030012FC[index] = DIR_NORTH; - return TRUE; - } - - return FALSE; -} - -static u8 sub_81D4C58(struct EventObject *mew, u8 index) -{ - if (gUnknown_030012F8 < 0 && sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) - { - gUnknown_030012FC[index] = DIR_EAST; - return TRUE; - } - - return FALSE; -} - -static u8 sub_81D4C9C(struct EventObject *mew, u8 index) -{ - if (gUnknown_030012FA < 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) - { - gUnknown_030012FC[index] = DIR_SOUTH; - return TRUE; - } - - return FALSE; -} - -static u8 sub_81D4CE0(struct EventObject *mew, u8 index) -{ - if (gUnknown_030012F8 > 0 && sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) - { - gUnknown_030012FC[index] = DIR_WEST; - return TRUE; - } - - return FALSE; -} - -static u8 sub_81D4D24(u8 mod) -{ - return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % mod]; -} - -void sub_81D4D50(struct Unk03006370 *arg0, int arg1, u32 *arg2) -{ - volatile u16 backupIME = REG_IME; - REG_IME = 0; - gIntrTable[1] = sub_81D3FAC; - gIntrTable[2] = sub_81D3F9C; - sub_81D41A0(); - sub_81D4238(); - REG_IE |= INTR_FLAG_VCOUNT; - REG_IME = backupIME; - arg0->unk0 = 0; - arg0->unk4 = arg1; - arg0->unk8 = arg2; -} - -void sub_81D4DB8(struct Unk03006370 *arg0) -{ - volatile u16 backupIME = REG_IME; - REG_IME = 0; - sub_81D4238(); - sub_81D41F4(); - RestoreSerialTimer3IntrHandlers(); - REG_IME = backupIME; -} - -u8 sub_81D4DE8(struct Unk03006370 *arg0) -{ - u8 var0 = 0; - arg0->unk0 = sub_81D3D70(1, arg0->unk4, arg0->unk8, NULL); - if ((arg0->unk0 & 0x13) == 0x10) - var0 = 1; - - if (arg0->unk0 & 0x8) - var0 = 2; - - if (arg0->unk0 & 0x4) - var0 = 3; - - gShouldAdvanceLinkState = 0; - return var0; -} - -void sub_81D4E30(void) -{ - memset(gDecompressionBuffer, 0, 0x2000); - gLinkType = 0x5503; - OpenLink(); - SetSuppressLinkErrorMessage(TRUE); -} - -bool32 sub_81D4E60(void) -{ - volatile u16 backupIME; - u16 sp4[4]; - - backupIME = REG_IME; - REG_IME = 0; - *(u64 *)sp4 = *(u64 *)gLink.tempRecvBuffer; - REG_IME = backupIME; - if (sp4[0] == 0xB9A0 && sp4[1] == 0xCCD0 - && sp4[2] == 0xFFFF && sp4[3] == 0xFFFF) - { - return TRUE; - } - - return FALSE; -} - -bool32 sub_81D4EC0(void) -{ - if (IsLinkMaster() && GetLinkPlayerCount_2() == 2) - return TRUE; - - return FALSE; -} - -u32 sub_81D4EE4(u8 *arg0, u16 *arg1) -{ - u8 var0; - - var0 = *arg0 - 3; - if (var0 < 3 && HasLinkErrorOccurred()) - { - *arg0 = 0; - return 3; - } - - switch (*arg0) - { - case 0: - if (IsLinkMaster() && GetLinkPlayerCount_2() > 1) - { - *arg0 = 1; - } - else if (gMain.newKeys & B_BUTTON) - { - *arg0 = 0; - return 1; - } - break; - case 1: - if (++(*arg1) > 5) - { - *arg1 = 0; - *arg0 = 2; - } - break; - case 2: - if (GetLinkPlayerCount_2() == 2) - { - PlaySE(SE_PINPON); - CheckShouldAdvanceLinkState(); - *arg1 = 0; - *arg0 = 3; - } - else if (gMain.newKeys & B_BUTTON) - { - *arg0 = 0; - return 1; - } - break; - case 3: - if (++(*arg1) > 30) - { - *arg0 = 0; - return 5; - } - - if (IsLinkConnectionEstablished()) - { - if (gReceivedRemoteLinkPlayers) - { - if (IsLinkPlayerDataExchangeComplete()) - { - *arg0 = 0; - return 2; - } - else - { - *arg0 = 4; - } - } - else - { - *arg0 = 3; - } - } - break; - case 4: - sub_800ABF4(0); - *arg0 = 5; - break; - case 5: - if (!gReceivedRemoteLinkPlayers) - { - *arg0 = 0; - return 4; - } - break; - default: - return 0; - } - - return 0; -} - -void sub_81D5014(void) -{ - int value; - struct Unk81D5014 *data; - u8 taskId = CreateTask(sub_81D5084, 0); - data = (struct Unk81D5014 *)gTasks[taskId].data; - data->unk8 = 0; - data->unk9 = 0; - data->unkA = 0; - data->unkB = 0; - data->unkC = 0; - data->unkD = 0; - data->unk0 = 0; - data->unk2 = 0; - data->unk4 = 0; - data->unk6 = 0; - data->unkE = 0; - data->unk10 = AllocZeroed(0x40); -} - -void sub_81D505C(u16 *arg0) -{ - *arg0 = 0; -} - -bool32 sub_81D5064(u16 *arg0, u16 arg1) -{ - if (++(*arg0) > arg1) - { - *arg0 = 0; - return TRUE; - } - - return FALSE; -} - -void sub_81D5084(u8 taskId) -{ - struct Unk81D5014 *data = (struct Unk81D5014 *)gTasks[taskId].data; - switch (data->unk8) - { - case 0: - if (mevent_0814257C(&data->unk9, gUnknown_085EDFD6)) - data->unk8 = 1; - break; - case 1: - sub_81D4E30(); - sub_81D505C(&data->unk0); - data->unk8 = 2; - break; - case 2: - if (sub_81D5064(&data->unk0, 10)) - data->unk8 = 3; - break; - case 3: - if (!sub_81D4EC0()) - { - CloseLink(); - data->unk8 = 4; - } - else - { - data->unk8 = 13; - } - break; - case 4: - if (mevent_0814257C(&data->unk9, gUnknown_085EDFF5)) - { - sub_8018884(gUnknown_085EE014); - sub_81D505C(&data->unk0); - data->unk8 = 5; - } - break; - case 5: - if (sub_81D5064(&data->unk0, 90)) - { - sub_81D4E30(); - data->unk8 = 6; - } - else if (gMain.newKeys & B_BUTTON) - { - sub_81D505C(&data->unk0); - PlaySE(SE_SELECT); - data->unk8 = 23; - } - break; - case 6: - if (gMain.newKeys & B_BUTTON) - { - PlaySE(SE_SELECT); - CloseLink(); - sub_81D505C(&data->unk0); - data->unk8 = 23; - } - else if (GetLinkPlayerCount_2() > 1) - { - sub_81D505C(&data->unk0); - CloseLink(); - data->unk8 = 7; - } - else if (sub_81D4E60()) - { - PlaySE(SE_SELECT); - CloseLink(); - sub_81D505C(&data->unk0); - data->unk8 = 8; - } - else if (sub_81D5064(&data->unk0, 10)) - { - CloseLink(); - sub_81D4E30(); - sub_81D505C(&data->unk0); - } - break; - case 7: - if (mevent_0814257C(&data->unk9, gUnknown_085EE05C)) - data->unk8 = 4; - break; - case 8: - sub_8018884(gUnknown_085EE097); - // XXX: This (u32*) cast is discarding the const qualifier from gUnknown_089A3470 - sub_81D4D50(&gUnknown_03006370, gMultiBootProgram_BerryGlitchFix_Start - gUnknown_089A3470, (u32*)gUnknown_089A3470); - data->unk8 = 9; - break; - case 9: - data->unkE = sub_81D4DE8(&gUnknown_03006370); - if (data->unkE) - data->unk8 = 10; - break; - case 10: - sub_81D4DB8(&gUnknown_03006370); - if (data->unkE == 3) - { - data->unk8 = 20; - } - else if (data->unkE == 1) - { - sub_81D505C(&data->unk0); - sub_8018884(gUnknown_085EE120); - data->unk8 = 11; - } - else - { - data->unk8 = 0; - } - break; - case 11: - if (sub_81D5064(&data->unk0, 840)) - data->unk8 = 12; - break; - case 12: - sub_81D4E30(); - sub_8018884(gUnknown_085EE0DC); - data->unk8 = 13; - break; - case 13: - switch (sub_81D4EE4(&data->unk9, &data->unk0)) - { - case 0: - break; - case 2: - sub_8018884(gUnknown_085EE097); - data->unk8 = 14; - break; - case 1: - PlaySE(SE_SELECT); - CloseLink(); - data->unk8 = 23; - break; - case 5: - CloseLink(); - data->unk8 = 21; - break; - case 3: - case 4: - CloseLink(); - data->unk8 = 20; - break; - } - break; - case 14: - if (HasLinkErrorOccurred()) - { - CloseLink(); - data->unk8 = 20; - } - else if (GetBlockReceivedStatus()) - { - ResetBlockReceivedFlags(); - data->unk8 = 15; - } - break; - case 15: - data->unkE = sub_81D3920(gDecompressionBuffer); - sub_800ABF4(data->unkE); - data->unk8 = 16; - break; - case 16: - if (!gReceivedRemoteLinkPlayers) - { - if (data->unkE == 1) - data->unk8 = 17; - else - data->unk8 = 20; - } - break; - case 17: - if (sub_81D3AB0((struct Unk81D38FC *)&gDecompressionBuffer)) - { - sub_8018884(gUnknown_085EE0FA); - sub_81D505C(&data->unk0); - data->unk8 = 18; - } - else - { - data->unk8 = 22; - } - break; - case 18: - if (sub_81D5064(&data->unk0, 120)) - { - sub_8018884(gUnknown_085EE107); - PlayFanfare(MUS_FANFA4); - data->unk8 = 19; - } - break; - case 19: - if (IsFanfareTaskInactive() && (gMain.newKeys & (A_BUTTON | B_BUTTON))) - data->unk8 = 26; - break; - case 23: - if (mevent_0814257C(&data->unk9,gUnknown_085EE06B)) - data->unk8 = 26; - break; - case 20: - if (mevent_0814257C(&data->unk9, gUnknown_085EE0A3)) - data->unk8 = 0; - break; - case 21: - if (mevent_0814257C(&data->unk9, gUnknown_085EE0BF)) - data->unk8 = 0; - break; - case 22: - if (mevent_0814257C(&data->unk9, gUnknown_085EE12D)) - data->unk8 = 0; - break; - case 26: - Free(data->unk10); - DestroyTask(taskId); - SetMainCallback2(sub_80186A4); - break; - } -} diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c new file mode 100755 index 000000000..6c92b676f --- /dev/null +++ b/src/ereader_helpers.c @@ -0,0 +1,553 @@ +#include "global.h" +#include "alloc.h" +#include "decompress.h" +#include "ereader_helpers.h" +#include "link.h" +#include "main.h" +#include "rom_8011DC0.h" +#include "save.h" +#include "sprite.h" +#include "task.h" +#include "util.h" + +struct Unknown030012C8 +{ + u8 unk0[8]; + u32 *unk8; + int unkC; + int unk10; + int unk14; +}; + +static void sub_81D4170(void); +static u16 sub_81D3EE8(u8); +static void sub_81D413C(void); +static void sub_81D414C(void); +static void sub_81D3F1C(u32, u32*, u32*); +static void sub_81D3F68(void); + +extern struct Unknown030012C8 gUnknown_030012C8; +extern u16 gUnknown_030012E0; +extern u16 gUnknown_030012E2; +extern u16 gUnknown_030012E4; +extern u16 gUnknown_030012E6; +extern u32 gUnknown_030012E8; +extern u16 gUnknown_030012EC; +extern u16 gUnknown_030012EE; +extern u16 gUnknown_030012F0; +extern u16 gUnknown_030012F2; +extern u16 gUnknown_030012F4; + +extern const u8 gUnknown_08625B6C[]; + +static u8 sub_81D38D4(void) +{ + return (gSaveBlock1Ptr->trainerHill.unused + 1) % 256; +} + +static bool32 sub_81D38FC(struct Unk81D38FC *arg0) +{ + int checksum = CalcByteArraySum(arg0->unk0, 0x270); + if (checksum != arg0->checksum) + return FALSE; + + return TRUE; +} + +bool8 sub_81D3920(u8 *buffer) +{ + u32 i; + u32 checksum; + int var0 = buffer[0]; + if (var0 < 1 || var0 > 8) + return FALSE; + + for (i = 0; i < var0; i++) + { + struct Unk81D38FC *var1 = (struct Unk81D38FC *)(&buffer[i * (sizeof(struct Unk81D38FC)) + 8]); + if (!sub_81D38FC(var1)) + return FALSE; + } + + checksum = CalcByteArraySum(buffer + 8, var0 * 0x274); + if (checksum != ((int *)buffer)[1]) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D396C(u8 *buffer) +{ + u32 checksum; + int var0 = buffer[0]; + if (var0 < 1 || var0 > 8) + return FALSE; + + checksum = CalcByteArraySum(buffer + 8, 0xEE0); + if (checksum != ((int *)buffer)[1]) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D3998(struct Unk81D38FC *arg0, u8 *buffer2) +{ + int i; + const u8 *ereaderVals; + + memset(buffer2, 0, 0x1000); + buffer2[0] = arg0->unk0[0]; + buffer2[1] = sub_81D38D4(); + buffer2[2] = (arg0->unk0[0] + 1) / 2; + + for (i = 0; i < arg0->unk0[0]; i++) + { + if (!(i & 1)) + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + u8 *var1 = arg0[i].unk0; + var0[8] = var1[8]; + memcpy(&var0[0x29C], &var1[0x154], 0x124); + var0 += 0xC; + var1 += 0xC; + memcpy(var0, var1, 0x148); + } + else + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + u8 *var1 = arg0[i].unk0; + var0[9] = var1[8]; + memcpy(&var0[0x154], &var1[0xC], 0x148); + } + } + + if (i & 1) + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + var0 += 0x154; + + ereaderVals = gUnknown_08625B6C; + memcpy(var0, &ereaderVals[(i / 2) * 0x148], 0x148); + } + + ((int *)buffer2)[1] = CalcByteArraySum(buffer2 + 8, 0xEE0); + if (sub_8153634(SECTOR_ID_TRAINER_HILL, buffer2) != 1) + return FALSE; + + return TRUE; +} + +bool32 sub_81D3AB0(struct Unk81D38FC *arg0) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3998(arg0, var0); + Free(var0); + return result; +} + +static bool32 sub_81D3AD8(u8 *arg0, u8 *arg1) +{ + if (TryCopySpecialSaveSection(SECTOR_ID_TRAINER_HILL, arg1) != 1) + return FALSE; + + memcpy(arg0, arg1, 0xEE8); + if (!sub_81D396C(arg0)) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D3B0C(u8 *arg0) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3AD8(arg0, var0); + Free(var0); + return result; +} + +bool32 sub_81D3B34(void) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3B0C(var0); + Free(var0); + return result; +} + +static int unref_sub_81D3B54(int arg0, u32 *arg1) +{ + int result; + u16 var0; + int var1; + + sub_81D41A0(); + while (1) + { + sub_81D4170(); + if (gUnknown_030012E2 & 2) + gShouldAdvanceLinkState = 2; + + var1 = sub_81D3D70(1, arg0, arg1, NULL); + gUnknown_030012E4 = var1; + if ((gUnknown_030012E4 & 0x13) == 0x10) + { + result = 0; + break; + } + + if (gUnknown_030012E4 & 0x8) + { + result = 1; + break; + } + + var0 = gUnknown_030012E4 & 0x4; + if (var0) + { + result = 2; + break; + } + + gShouldAdvanceLinkState = var0; + VBlankIntrWait(); + } + + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + sub_81D41F4(); + return result; +} + +static int unref_sub_81D3BE8(u32 *arg0) +{ + int result; + u16 var0; + int var1; + + sub_81D41A0(); + while (1) + { + sub_81D4170(); + if (gUnknown_030012E2 & 2) + gShouldAdvanceLinkState = 2; + + var1 = sub_81D3D70(0, 0, NULL, arg0); + gUnknown_030012E4 = var1; + if ((gUnknown_030012E4 & 0x13) == 0x10) + { + result = 0; + break; + } + + if (gUnknown_030012E4 & 0x8) + { + result = 1; + break; + } + + var0 = gUnknown_030012E4 & 0x4; + if (var0) + { + result = 2; + break; + } + + gShouldAdvanceLinkState = var0; + VBlankIntrWait(); + } + + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + sub_81D41F4(); + return result; +} + +static void sub_81D3C7C(void) +{ + REG_IME = 0; + REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + REG_IME = 1; + REG_SIOCNT = 0; + REG_TM3CNT_H = 0; + REG_IF = INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL; +} + +static void sub_81D3CBC(void) +{ + REG_IME = 0; + REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + REG_IME = 1; + REG_RCNT = 0; + REG_SIOCNT = SIO_MULTI_MODE; + REG_SIOCNT |= SIO_INTR_ENABLE | SIO_115200_BPS; + REG_IME = 0; + REG_IE |= INTR_FLAG_SERIAL; + REG_IME = 1; + + if (!gUnknown_030012C8.unk0[1]) + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); +} + +static void sub_81D3D34(void) +{ + REG_RCNT = 0; + REG_SIOCNT = SIO_32BIT_MODE | SIO_INTR_ENABLE; + REG_SIOCNT |= SIO_MULTI_SD; + gShouldAdvanceLinkState = 0; + gUnknown_030012E6 = 0; + gUnknown_030012E8 = 0; +} + +int sub_81D3D70(u8 arg0, u32 arg1, u32 *arg2, u32 *arg3) +{ + switch (gUnknown_030012C8.unk0[1]) + { + case 0: + sub_81D3CBC(); + gUnknown_030012C8.unk0[2] = 1; + gUnknown_030012C8.unk0[1] = 1; + break; + case 1: + if (sub_81D3EE8(arg0)) + sub_81D413C(); + + if (gShouldAdvanceLinkState == 2) + { + gUnknown_030012C8.unk0[4] = 2; + gUnknown_030012C8.unk0[1] = 6; + } + break; + case 2: + sub_81D3D34(); + sub_81D3F1C(arg1, arg2, arg3); + gUnknown_030012C8.unk0[1] = 3; + // fall through + case 3: + if (gShouldAdvanceLinkState == 2) + { + gUnknown_030012C8.unk0[4] = 2; + gUnknown_030012C8.unk0[1] = 6; + } + else + { + gUnknown_030012E6++; + gUnknown_030012E8++; + if (!gUnknown_030012C8.unk0[0] && gUnknown_030012E8 > 60) + { + gUnknown_030012C8.unk0[4] = 1; + gUnknown_030012C8.unk0[1] = 6; + } + + if (gUnknown_030012C8.unk0[2] != 2) + { + if (gUnknown_030012C8.unk0[0] && gUnknown_030012E6 > 2) + { + sub_81D413C(); + gUnknown_030012C8.unk0[2] = 2; + } + else + { + sub_81D413C(); + gUnknown_030012C8.unk0[2] = 2; + } + } + } + break; + case 4: + sub_81D3CBC(); + gUnknown_030012C8.unk0[1] = 5; + break; + case 5: + if (gUnknown_030012C8.unk0[0] == 1 && gUnknown_030012E6 > 2) + sub_81D413C(); + + if (++gUnknown_030012E6 > 60) + { + gUnknown_030012C8.unk0[4] = 1; + gUnknown_030012C8.unk0[1] = 6; + } + break; + case 6: + if (gUnknown_030012C8.unk0[2]) + { + sub_81D3C7C(); + gUnknown_030012C8.unk0[2] = 0; + } + break; + } + + return gUnknown_030012C8.unk0[2] | (gUnknown_030012C8.unk0[4] << 2) | (gUnknown_030012C8.unk0[3] << 4); +} + +static u16 sub_81D3EE8(u8 arg0) +{ + u16 terminal = (*(vu32 *)REG_ADDR_SIOCNT) & (SIO_MULTI_SI | SIO_MULTI_SD); + if (terminal == SIO_MULTI_SD && arg0) + { + gUnknown_030012C8.unk0[0] = 1; + return 1; + } + else + { + gUnknown_030012C8.unk0[0] = 0; + return 0; + } +} + +static void sub_81D3F1C(u32 arg0, u32 *arg1, u32 *arg2) +{ + if (gUnknown_030012C8.unk0[0]) + { + REG_SIOCNT |= SIO_38400_BPS; + gUnknown_030012C8.unk8 = arg1; + REG_SIODATA32 = arg0; + gUnknown_030012C8.unk10 = arg0 / 4 + 1; + sub_81D3F68(); + } + else + { + REG_SIOCNT = REG_SIOCNT; + gUnknown_030012C8.unk8 = arg2; + } +} + +static void sub_81D3F68(void) +{ + REG_TM3CNT_L = 0xFDA7; + REG_TM3CNT_H = TIMER_INTR_ENABLE; + REG_IME = 0; + REG_IE |= INTR_FLAG_TIMER3; + REG_IME = 1; +} + +void sub_81D3F9C(void) +{ + sub_81D414C(); + sub_81D413C(); +} + +void sub_81D3FAC(void) +{ + u16 i, playerCount, k; + u32 value; + u16 var0; + u16 recvBuffer[4]; + + switch (gUnknown_030012C8.unk0[1]) + { + case 1: + REG_SIOMLT_SEND = 0xCCD0; // Handshake id + *(u64 *)recvBuffer = REG_SIOMLT_RECV; + for (i = 0, playerCount = 0, k = 0; i < 4; i++) + { + if (recvBuffer[i] == 0xCCD0) + playerCount++; + else if (recvBuffer[i] != 0xFFFF) + k++; + } + + if (playerCount == 2 && k == 0) + gUnknown_030012C8.unk0[1] = 2; + break; + case 3: + value = REG_SIODATA32; + if (!gUnknown_030012C8.unkC && !gUnknown_030012C8.unk0[0]) + gUnknown_030012C8.unk10 = value / 4 + 1; + + if (gUnknown_030012C8.unk0[0] == 1) + { + if (gUnknown_030012C8.unkC < gUnknown_030012C8.unk10) + { + REG_SIODATA32 = gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; + gUnknown_030012C8.unk14 += gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; + } + else + { + REG_SIODATA32 = gUnknown_030012C8.unk14; + } + } + else + { + if (gUnknown_030012C8.unkC > 0 && gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 1) + { + gUnknown_030012C8.unk8[gUnknown_030012C8.unkC - 1] = value; + gUnknown_030012C8.unk14 += value; + } + else if (gUnknown_030012C8.unkC) + { + if (gUnknown_030012C8.unk14 == value) + gUnknown_030012C8.unk0[3] = 1; + else + gUnknown_030012C8.unk0[3] = 2; + } + + gUnknown_030012E8 = 0; + } + + if (++gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 2) + { + if (gUnknown_030012C8.unk0[0]) + REG_TM3CNT_H |= TIMER_ENABLE; + else + sub_81D413C(); + } + else + { + gUnknown_030012C8.unk0[1] = 4; + gUnknown_030012E6 = 0; + } + break; + case 5: + if (!gUnknown_030012C8.unk0[0]) + REG_SIOMLT_SEND = gUnknown_030012C8.unk0[3]; + + *(u64 *)recvBuffer = REG_SIOMLT_RECV; + var0 = recvBuffer[1] - 1; + if (var0 < 2) + { + if (gUnknown_030012C8.unk0[0] == 1) + gUnknown_030012C8.unk0[3] = recvBuffer[1]; + + gUnknown_030012C8.unk0[1] = 6; + } + break; + } +} + +static void sub_81D413C(void) +{ + REG_SIOCNT |= SIO_ENABLE; +} + +static void sub_81D414C(void) +{ + REG_TM3CNT_H &= ~TIMER_ENABLE; + REG_TM3CNT_L = 0xFDA7; +} + +static void sub_81D4170(void) +{ + int keysMask = REG_KEYINPUT ^ KEYS_MASK; + gUnknown_030012E2 = keysMask & ~gUnknown_030012E0; + gUnknown_030012E0 = keysMask; +} + +void sub_81D41A0(void) +{ + gUnknown_030012EC = REG_IME; + gUnknown_030012EE = REG_IE; + gUnknown_030012F0 = REG_TM3CNT_H; + gUnknown_030012F2 = REG_SIOCNT; + gUnknown_030012F4 = REG_RCNT; +} + +void sub_81D41F4(void) +{ + REG_IME = gUnknown_030012EC; + REG_IE = gUnknown_030012EE; + REG_TM3CNT_H = gUnknown_030012F0; + REG_SIOCNT = gUnknown_030012F2; + REG_RCNT = gUnknown_030012F4; +} + +void sub_81D4238(void) +{ + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); +} diff --git a/src/ereader_screen.c b/src/ereader_screen.c new file mode 100755 index 000000000..b15c1fd0c --- /dev/null +++ b/src/ereader_screen.c @@ -0,0 +1,464 @@ +#include "global.h" +#include "alloc.h" +#include "decompress.h" +#include "ereader_helpers.h" +#include "link.h" +#include "main.h" +#include "rom_8011DC0.h" +#include "save.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "strings.h" +#include "util.h" +#include "constants/songs.h" + +struct Unk81D5014 +{ + u16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; + u8 unkD; + u8 unkE; + u8 *unk10; +}; + +struct Unk03006370 +{ + u16 unk0; + u32 unk4; + u32 *unk8; +}; + +static void sub_81D5084(u8); + +extern struct Unk03006370 gUnknown_03006370; + +extern const u8 gUnknown_089A3470[]; +extern const u8 gMultiBootProgram_BerryGlitchFix_Start[]; + +static void sub_81D4D50(struct Unk03006370 *arg0, int arg1, u32 *arg2) +{ + volatile u16 backupIME = REG_IME; + REG_IME = 0; + gIntrTable[1] = sub_81D3FAC; + gIntrTable[2] = sub_81D3F9C; + sub_81D41A0(); + sub_81D4238(); + REG_IE |= INTR_FLAG_VCOUNT; + REG_IME = backupIME; + arg0->unk0 = 0; + arg0->unk4 = arg1; + arg0->unk8 = arg2; +} + +static void sub_81D4DB8(struct Unk03006370 *arg0) +{ + volatile u16 backupIME = REG_IME; + REG_IME = 0; + sub_81D4238(); + sub_81D41F4(); + RestoreSerialTimer3IntrHandlers(); + REG_IME = backupIME; +} + +static u8 sub_81D4DE8(struct Unk03006370 *arg0) +{ + u8 var0 = 0; + arg0->unk0 = sub_81D3D70(1, arg0->unk4, arg0->unk8, NULL); + if ((arg0->unk0 & 0x13) == 0x10) + var0 = 1; + + if (arg0->unk0 & 0x8) + var0 = 2; + + if (arg0->unk0 & 0x4) + var0 = 3; + + gShouldAdvanceLinkState = 0; + return var0; +} + +static void sub_81D4E30(void) +{ + memset(gDecompressionBuffer, 0, 0x2000); + gLinkType = 0x5503; + OpenLink(); + SetSuppressLinkErrorMessage(TRUE); +} + +static bool32 sub_81D4E60(void) +{ + volatile u16 backupIME; + u16 sp4[4]; + + backupIME = REG_IME; + REG_IME = 0; + *(u64 *)sp4 = *(u64 *)gLink.tempRecvBuffer; + REG_IME = backupIME; + if (sp4[0] == 0xB9A0 && sp4[1] == 0xCCD0 + && sp4[2] == 0xFFFF && sp4[3] == 0xFFFF) + { + return TRUE; + } + + return FALSE; +} + +static bool32 sub_81D4EC0(void) +{ + if (IsLinkMaster() && GetLinkPlayerCount_2() == 2) + return TRUE; + + return FALSE; +} + +static u32 sub_81D4EE4(u8 *arg0, u16 *arg1) +{ + u8 var0; + + var0 = *arg0 - 3; + if (var0 < 3 && HasLinkErrorOccurred()) + { + *arg0 = 0; + return 3; + } + + switch (*arg0) + { + case 0: + if (IsLinkMaster() && GetLinkPlayerCount_2() > 1) + { + *arg0 = 1; + } + else if (gMain.newKeys & B_BUTTON) + { + *arg0 = 0; + return 1; + } + break; + case 1: + if (++(*arg1) > 5) + { + *arg1 = 0; + *arg0 = 2; + } + break; + case 2: + if (GetLinkPlayerCount_2() == 2) + { + PlaySE(SE_PINPON); + CheckShouldAdvanceLinkState(); + *arg1 = 0; + *arg0 = 3; + } + else if (gMain.newKeys & B_BUTTON) + { + *arg0 = 0; + return 1; + } + break; + case 3: + if (++(*arg1) > 30) + { + *arg0 = 0; + return 5; + } + + if (IsLinkConnectionEstablished()) + { + if (gReceivedRemoteLinkPlayers) + { + if (IsLinkPlayerDataExchangeComplete()) + { + *arg0 = 0; + return 2; + } + else + { + *arg0 = 4; + } + } + else + { + *arg0 = 3; + } + } + break; + case 4: + sub_800ABF4(0); + *arg0 = 5; + break; + case 5: + if (!gReceivedRemoteLinkPlayers) + { + *arg0 = 0; + return 4; + } + break; + default: + return 0; + } + + return 0; +} + +void sub_81D5014(void) +{ + int value; + struct Unk81D5014 *data; + u8 taskId = CreateTask(sub_81D5084, 0); + data = (struct Unk81D5014 *)gTasks[taskId].data; + data->unk8 = 0; + data->unk9 = 0; + data->unkA = 0; + data->unkB = 0; + data->unkC = 0; + data->unkD = 0; + data->unk0 = 0; + data->unk2 = 0; + data->unk4 = 0; + data->unk6 = 0; + data->unkE = 0; + data->unk10 = AllocZeroed(0x40); +} + +static void sub_81D505C(u16 *arg0) +{ + *arg0 = 0; +} + +static bool32 sub_81D5064(u16 *arg0, u16 arg1) +{ + if (++(*arg0) > arg1) + { + *arg0 = 0; + return TRUE; + } + + return FALSE; +} + +static void sub_81D5084(u8 taskId) +{ + struct Unk81D5014 *data = (struct Unk81D5014 *)gTasks[taskId].data; + switch (data->unk8) + { + case 0: + if (mevent_0814257C(&data->unk9, gUnknown_085EDFD6)) + data->unk8 = 1; + break; + case 1: + sub_81D4E30(); + sub_81D505C(&data->unk0); + data->unk8 = 2; + break; + case 2: + if (sub_81D5064(&data->unk0, 10)) + data->unk8 = 3; + break; + case 3: + if (!sub_81D4EC0()) + { + CloseLink(); + data->unk8 = 4; + } + else + { + data->unk8 = 13; + } + break; + case 4: + if (mevent_0814257C(&data->unk9, gUnknown_085EDFF5)) + { + sub_8018884(gUnknown_085EE014); + sub_81D505C(&data->unk0); + data->unk8 = 5; + } + break; + case 5: + if (sub_81D5064(&data->unk0, 90)) + { + sub_81D4E30(); + data->unk8 = 6; + } + else if (gMain.newKeys & B_BUTTON) + { + sub_81D505C(&data->unk0); + PlaySE(SE_SELECT); + data->unk8 = 23; + } + break; + case 6: + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + CloseLink(); + sub_81D505C(&data->unk0); + data->unk8 = 23; + } + else if (GetLinkPlayerCount_2() > 1) + { + sub_81D505C(&data->unk0); + CloseLink(); + data->unk8 = 7; + } + else if (sub_81D4E60()) + { + PlaySE(SE_SELECT); + CloseLink(); + sub_81D505C(&data->unk0); + data->unk8 = 8; + } + else if (sub_81D5064(&data->unk0, 10)) + { + CloseLink(); + sub_81D4E30(); + sub_81D505C(&data->unk0); + } + break; + case 7: + if (mevent_0814257C(&data->unk9, gUnknown_085EE05C)) + data->unk8 = 4; + break; + case 8: + sub_8018884(gUnknown_085EE097); + // XXX: This (u32*) cast is discarding the const qualifier from gUnknown_089A3470 + sub_81D4D50(&gUnknown_03006370, gMultiBootProgram_BerryGlitchFix_Start - gUnknown_089A3470, (u32*)gUnknown_089A3470); + data->unk8 = 9; + break; + case 9: + data->unkE = sub_81D4DE8(&gUnknown_03006370); + if (data->unkE) + data->unk8 = 10; + break; + case 10: + sub_81D4DB8(&gUnknown_03006370); + if (data->unkE == 3) + { + data->unk8 = 20; + } + else if (data->unkE == 1) + { + sub_81D505C(&data->unk0); + sub_8018884(gUnknown_085EE120); + data->unk8 = 11; + } + else + { + data->unk8 = 0; + } + break; + case 11: + if (sub_81D5064(&data->unk0, 840)) + data->unk8 = 12; + break; + case 12: + sub_81D4E30(); + sub_8018884(gUnknown_085EE0DC); + data->unk8 = 13; + break; + case 13: + switch (sub_81D4EE4(&data->unk9, &data->unk0)) + { + case 0: + break; + case 2: + sub_8018884(gUnknown_085EE097); + data->unk8 = 14; + break; + case 1: + PlaySE(SE_SELECT); + CloseLink(); + data->unk8 = 23; + break; + case 5: + CloseLink(); + data->unk8 = 21; + break; + case 3: + case 4: + CloseLink(); + data->unk8 = 20; + break; + } + break; + case 14: + if (HasLinkErrorOccurred()) + { + CloseLink(); + data->unk8 = 20; + } + else if (GetBlockReceivedStatus()) + { + ResetBlockReceivedFlags(); + data->unk8 = 15; + } + break; + case 15: + data->unkE = sub_81D3920(gDecompressionBuffer); + sub_800ABF4(data->unkE); + data->unk8 = 16; + break; + case 16: + if (!gReceivedRemoteLinkPlayers) + { + if (data->unkE == 1) + data->unk8 = 17; + else + data->unk8 = 20; + } + break; + case 17: + if (sub_81D3AB0((struct Unk81D38FC *)&gDecompressionBuffer)) + { + sub_8018884(gUnknown_085EE0FA); + sub_81D505C(&data->unk0); + data->unk8 = 18; + } + else + { + data->unk8 = 22; + } + break; + case 18: + if (sub_81D5064(&data->unk0, 120)) + { + sub_8018884(gUnknown_085EE107); + PlayFanfare(MUS_FANFA4); + data->unk8 = 19; + } + break; + case 19: + if (IsFanfareTaskInactive() && (gMain.newKeys & (A_BUTTON | B_BUTTON))) + data->unk8 = 26; + break; + case 23: + if (mevent_0814257C(&data->unk9,gUnknown_085EE06B)) + data->unk8 = 26; + break; + case 20: + if (mevent_0814257C(&data->unk9, gUnknown_085EE0A3)) + data->unk8 = 0; + break; + case 21: + if (mevent_0814257C(&data->unk9, gUnknown_085EE0BF)) + data->unk8 = 0; + break; + case 22: + if (mevent_0814257C(&data->unk9, gUnknown_085EE12D)) + data->unk8 = 0; + break; + case 26: + Free(data->unk10); + DestroyTask(taskId); + SetMainCallback2(sub_80186A4); + break; + } +} diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 8ebdd883f..30dffd8d7 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -3,10 +3,10 @@ #include "battle_pyramid.h" #include "berry.h" #include "decoration.h" -#include "ereader.h" #include "event_data.h" #include "event_object_movement.h" #include "event_scripts.h" +#include "faraway_island.h" #include "field_camera.h" #include "field_effect.h" #include "field_effect_helpers.h" diff --git a/src/faraway_island.c b/src/faraway_island.c new file mode 100755 index 000000000..1c8dff14e --- /dev/null +++ b/src/faraway_island.c @@ -0,0 +1,445 @@ +#include "global.h" +#include "event_data.h" +#include "event_object_movement.h" +#include "field_weather.h" +#include "fieldmap.h" +#include "metatile_behavior.h" +#include "sprite.h" +#include "constants/event_objects.h" +#include "constants/flags.h" +#include "constants/maps.h" +#include "constants/metatile_behaviors.h" +#include "constants/vars.h" + +static u8 sub_81D4890(u8); +static bool8 sub_81D4C14(struct EventObject*, u8); +static u8 sub_81D4C9C(struct EventObject*, u8); +static u8 sub_81D4C58(struct EventObject*, u8); +static u8 sub_81D4CE0(struct EventObject*, u8); +static u8 sub_81D4D24(u8); +static bool8 sub_81D4834(s16, s16); + +extern u8 gUnknown_0203CF50; +extern s16 gUnknown_030012F8; +extern s16 gUnknown_030012FA; +extern u8 gUnknown_030012FC[4]; + +extern const struct SpritePalette gFieldEffectObjectPaletteInfo1; +extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; + +static const s16 sFarawayIslandRockCoords[4][2] = +{ + {21, 16}, + {25, 16}, + {16, 17}, + {20, 20}, +}; + +static u8 sub_81D4258(void) +{ + u8 eventObjectId; + TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); + return eventObjectId; +} + +u32 sub_81D427C(void) +{ + u8 i; + int skip; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + gUnknown_030012F8 = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x - mew->currentCoords.x; + gUnknown_030012FA = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y - mew->currentCoords.y; + for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) + gUnknown_030012FC[i] = DIR_NONE; + + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x + && gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y) + { + return DIR_NONE; + } + + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 8 == 0) + mew->invisible = 0; + else + mew->invisible = 1; + + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 9 == 0) + return DIR_NONE; + + for (i = 0; i < ARRAY_COUNT(sFarawayIslandRockCoords); i++) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == sFarawayIslandRockCoords[i][0]) + { + skip = 0; + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y < sFarawayIslandRockCoords[i][1]) + { + if (mew->currentCoords.y <= sFarawayIslandRockCoords[i][1]) + skip = 1; + } + else + { + if (mew->currentCoords.y >= sFarawayIslandRockCoords[i][1]) + skip = 1; + } + + if (!skip) + { + if (gUnknown_030012F8 > 0) + { + if (mew->currentCoords.x + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + } + else if (gUnknown_030012F8 < 0) + { + if (mew->currentCoords.x - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + } + + if (mew->currentCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (gUnknown_030012FA > 0) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + else + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + } + } + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == sFarawayIslandRockCoords[i][1]) + { + skip = 0; + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x < sFarawayIslandRockCoords[i][0]) + { + if (mew->currentCoords.x <= sFarawayIslandRockCoords[i][0]) + skip = 1; + } + else + { + if (mew->currentCoords.x >= sFarawayIslandRockCoords[i][0]) + skip = 1; + } + + if (!skip) + { + if (gUnknown_030012FA > 0) + { + if (mew->currentCoords.y + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + } + else if (gUnknown_030012FA < 0) + { + if (mew->currentCoords.y - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + } + + if (mew->currentCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (gUnknown_030012F8 > 0) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + else + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + } + } + } + } + + if (sub_81D4C14(mew, 0)) + { + if (sub_81D4C58(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4CE0(mew, 1)) + return sub_81D4D24(2); + else + return DIR_NORTH; + } + + if (sub_81D4C9C(mew, 0)) + { + if (sub_81D4C58(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4CE0(mew, 1)) + return sub_81D4D24(2); + else + return DIR_SOUTH; + } + + if (sub_81D4C58(mew, 0)) + { + if (sub_81D4C14(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4C9C(mew, 1)) + return sub_81D4D24(2); + else + return DIR_EAST; + } + + if (sub_81D4CE0(mew, 0)) + { + if (sub_81D4C14(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4C9C(mew, 1)) + return sub_81D4D24(2); + else + return DIR_WEST; + } + + if (gUnknown_030012FA == 0) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y > mew->currentCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y < mew->currentCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + + if (gUnknown_030012F8 == 0) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x > mew->currentCoords.x) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x < mew->currentCoords.x) + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + + return sub_81D4890(DIR_NONE); +} + +static bool8 sub_81D4834(s16 x, s16 y) +{ + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x == x + && gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y == y) + { + return FALSE; + } + + return MetatileBehavior_IsPokeGrass(MapGridGetMetatileBehaviorAt(x, y)); +} + +static u8 sub_81D4890(u8 ignoredDir) +{ + u8 i; + u8 count = 0; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) + gUnknown_030012FC[i] = DIR_NONE; + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) + { + gUnknown_030012FC[count] = DIR_NORTH; + count++; + } + + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) + { + gUnknown_030012FC[count] = DIR_EAST; + count++; + } + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) + { + gUnknown_030012FC[count] = DIR_SOUTH; + count++; + } + + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) + { + gUnknown_030012FC[count] = DIR_WEST; + count++; + } + + if (count > 1) + return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % count]; + else + return gUnknown_030012FC[0]; +} + +void UpdateFarawayIslandStepCounter(void) +{ + u16 steps = VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER); + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + steps++; + if (steps >= 9999) + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0); + else + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, steps); + } +} + +bool8 EventObjectIsFarawayIslandMew(struct EventObject *eventObject) +{ + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + if (eventObject->graphicsId == EVENT_OBJ_GFX_MEW) + return TRUE; + } + + return FALSE; +} + +bool8 IsMewPlayingHideAndSeek(void) +{ + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + if (FlagGet(FLAG_CAUGHT_MEW) != TRUE && FlagGet(FLAG_HIDE_MEW) != TRUE) + return TRUE; + } + + return FALSE; +} + +bool8 sub_81D4A58(struct EventObject *eventObject) +{ + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) != 0xFFFF + && VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 4 == 0) + return TRUE; + + return FALSE; +} + +void sub_81D4A90(void) +{ + s16 x; + s16 y; + u8 spriteId; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + mew->invisible = 0; + if (gSpecialVar_0x8004 == 1) + { + mew->fixedPriority = 1; + gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; + gSprites[mew->spriteId].subpriority = 1; + } + else + { + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0xFFFF); + mew->fixedPriority = 1; + gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; + if (gSpecialVar_Facing != DIR_NORTH) + gSprites[mew->spriteId].subpriority = 1; + + LoadSpritePalette(&gFieldEffectObjectPaletteInfo1); + UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(gFieldEffectObjectPaletteInfo1.tag)); + + x = mew->currentCoords.x; + y = mew->currentCoords.y; + sub_80930E0(&x, &y, 8, 8); + gUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); + if (gUnknown_0203CF50 != MAX_SPRITES) + { + struct Sprite *sprite = &gSprites[gUnknown_0203CF50]; + sprite->coordOffsetEnabled = 1; + sprite->oam.priority = 2; + sprite->callback = SpriteCallbackDummy; + } + } +} + +void sub_81D4BEC(void) +{ + if (gUnknown_0203CF50 != MAX_SPRITES) + DestroySprite(&gSprites[gUnknown_0203CF50]); +} + +static bool8 sub_81D4C14(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012FA > 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + { + gUnknown_030012FC[index] = DIR_NORTH; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4C58(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012F8 < 0 && sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + { + gUnknown_030012FC[index] = DIR_EAST; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4C9C(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012FA < 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + { + gUnknown_030012FC[index] = DIR_SOUTH; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4CE0(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012F8 > 0 && sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + { + gUnknown_030012FC[index] = DIR_WEST; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4D24(u8 mod) +{ + return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % mod]; +} diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index b28052ee2..6735df3a0 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -3,7 +3,7 @@ #include "bike.h" #include "coord_event_weather.h" #include "daycare.h" -#include "ereader.h" +#include "faraway_island.h" #include "event_data.h" #include "event_object_movement.h" #include "event_scripts.h" diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index f1a65cf8c..3da1a9217 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -1,7 +1,7 @@ #include "global.h" -#include "ereader.h" #include "event_obj_lock.h" #include "event_object_movement.h" +#include "faraway_island.h" #include "field_camera.h" #include "field_effect.h" #include "field_player_avatar.h" diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 7bb1b997a..eafd1eb3d 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -3,7 +3,7 @@ #include "battle.h" #include "battle_tower.h" #include "battle_setup.h" -#include "ereader.h" +#include "ereader_helpers.h" #include "event_data.h" #include "event_scripts.h" #include "fieldmap.h" -- cgit v1.2.3 From 77c4856e62040531994f772e964118309fb74653 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 22 Mar 2019 17:27:18 +0100 Subject: Nonmatchings go away --- src/menu_specialized.c | 1445 +++++++----------------------------------------- 1 file changed, 196 insertions(+), 1249 deletions(-) (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 8371c7a70..5c24354ca 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -73,10 +73,8 @@ static const struct ScanlineEffectParams sUnknown_08625404 = .dmaDest = (void*)REG_ADDR_WIN0H, .dmaControl = SCANLINE_EFFECT_DMACNT_32BIT, .initState = 1, - .unused9 = 0 }; - static const u8 sUnknown_08625410[] = { 4, @@ -201,38 +199,26 @@ static const struct ListMenuTemplate sMoveRelearnerMovesListTemplate = bool8 sub_81D1C44(u8 count) { - u32 i; - struct ListMenuItem **v1; - v1 = &sUnknown_0203CF4C; - *v1 = Alloc(count * sizeof(struct ListMenuItem) + sizeof(struct ListMenuItem)); - + u8 i; + + sUnknown_0203CF4C = Alloc(count * sizeof(*sUnknown_0203CF4C) + sizeof(*sUnknown_0203CF4C)); if (sUnknown_0203CF4C == NULL) return FALSE; - - for (i = 0; i < ARRAY_COUNT(sUnknown_0203CF48); i = (u8)(i + 1)) - { - sUnknown_0203CF48[i] |= 0xFF; - } + + for (i = 0; i < ARRAY_COUNT(sUnknown_0203CF48); i++) + sUnknown_0203CF48[i] = 0xFF; return TRUE; } u8 sub_81D1C84(u8 a0) { - struct WindowTemplate template; - - u8 windowId = sUnknown_0203CF48[a0]; - if (windowId == 0xFF) + if (sUnknown_0203CF48[a0] == 0xFF) { if (a0 == 2) { - u32 v1; - u32 v2; - s32 v3; - - template = sUnknown_086253E8[2]; - v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); - template.width = v3; + struct WindowTemplate template = sUnknown_086253E8[2]; + template.width = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); sUnknown_0203CF48[2] = AddWindow(&template); } else @@ -264,7 +250,7 @@ static void sub_81D1D44(u8 windowId, s32 itemId, u8 y) if (itemId == LIST_CANCEL) return; - + StringCopy(buffer, gSaveBlock1Ptr->mail[6 + itemId].playerName); sub_81DB52C(buffer); length = StringLength(buffer); @@ -324,8 +310,8 @@ void sub_81D1EC0(void) void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) { - u8 j; - u8 i; + u8 i, j; + for (j = 0; j < 5; j++) { for (i = 0; i < 10; i++) @@ -348,130 +334,33 @@ void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) a0->unk352 = 0; } -NAKED -void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 arg1[4][5], struct UnknownSubStruct_81D1ED4 arg2[4][5]) +void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x8\n\ - mov r8, r0\n\ - str r1, [sp]\n\ - mov r9, r2\n\ - movs r7, 0\n\ -_081D1F98:\n\ - lsls r4, r7, 2\n\ - ldr r1, [sp]\n\ - adds r0, r4, r1\n\ - ldrh r1, [r0]\n\ - lsls r5, r1, 8\n\ - mov r2, r9\n\ - adds r0, r4, r2\n\ - ldrh r0, [r0]\n\ - subs r0, r1\n\ - lsls r0, 8\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - adds r6, r0, 0\n\ - movs r3, 0\n\ - adds r7, 0x1\n\ - mov r10, r7\n\ - mov r12, r4\n\ -_081D1FBC:\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - add r0, r12\n\ - add r0, r8\n\ - asrs r2, r5, 8\n\ - asrs r1, r5, 7\n\ - movs r7, 0x1\n\ - ands r1, r7\n\ - adds r2, r1\n\ - adds r0, 0x64\n\ - strh r2, [r0]\n\ - adds r5, r6\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x8\n\ - bls _081D1FBC\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - add r0, r8\n\ - mov r1, r9\n\ - adds r2, r4, r1\n\ - ldrh r1, [r2]\n\ - adds r0, 0x64\n\ - strh r1, [r0]\n\ - ldr r7, [sp]\n\ - adds r0, r4, r7\n\ - ldrh r1, [r0, 0x2]\n\ - lsls r5, r1, 8\n\ - ldrh r0, [r2, 0x2]\n\ - subs r0, r1\n\ - lsls r0, 8\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - adds r6, r0, 0\n\ - movs r3, 0\n\ - str r4, [sp, 0x4]\n\ - movs r0, 0x1\n\ - mov r12, r0\n\ -_081D2012:\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - ldr r1, [sp, 0x4]\n\ - adds r0, r1, r0\n\ - add r0, r8\n\ - asrs r2, r5, 8\n\ - asrs r1, r5, 7\n\ - mov r7, r12\n\ - ands r1, r7\n\ - adds r2, r1\n\ - adds r0, 0x66\n\ - strh r2, [r0]\n\ - adds r5, r6\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x8\n\ - bls _081D2012\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - add r0, r8\n\ - mov r2, r9\n\ - adds r1, r4, r2\n\ - ldrh r1, [r1, 0x2]\n\ - adds r0, 0x66\n\ - strh r1, [r0]\n\ - mov r7, r10\n\ - lsls r0, r7, 16\n\ - lsrs r7, r0, 16\n\ - cmp r7, 0x4\n\ - bls _081D1F98\n\ - ldr r1, =0x00000352\n\ - add r1, r8\n\ - movs r0, 0\n\ - strh r0, [r1]\n\ - add sp, 0x8\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); + u16 i, j; + s32 r5, r6; + + for (i = 0; i < 5; i++) + { + r5 = arg1[i].unk0 << 8; + r6 = ((arg2[i].unk0 - arg1[i].unk0) << 8) / 10; + for (j = 0; j < 9; j++) + { + arg0->unk64[j][i].unk0 = (r5 >> 8) + ((r5 >> 7) & 1); + r5 += r6; + } + arg0->unk64[j][i].unk0 = arg2[i].unk0; + + r5 = arg1[i].unk2 << 8; + r6 = ((arg2[i].unk2 - arg1[i].unk2) << 8) / 10; + for (j = 0; j < 9; j++) + { + arg0->unk64[j][i].unk2 = (r5 >> 8) + ((r5 >> 7) & 1); + r5 += r6; + } + arg0->unk64[j][i].unk2 = arg2[i].unk2; + } + + arg0->unk352 = 0; } bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) @@ -479,13 +368,12 @@ bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) if (a0->unk352 < 10) { sub_81D2230(a0); - return ++a0->unk352 != 10; + return (++a0->unk352 != 10); } else { return FALSE; } - } void sub_81D20AC(struct UnknownStruct_81D1ED4 *a0) @@ -496,6 +384,7 @@ void sub_81D20AC(struct UnknownStruct_81D1ED4 *a0) bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) { struct ScanlineEffectParams params; + switch (arg0->unk355) { case 0: @@ -512,170 +401,32 @@ bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) } } -NAKED void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0) { - // Three of the additions are in the wrong order. -#ifdef NONMATCHING u16 i; - u32 v3; - u32 v4; - u16 *scanBuffer1; - u16 *scanBuffer2; - u32 scanBufferWidth; - u32 mask; - u16 *unkBuff1; - u16 *unkBuff2; - u16 *unkBuff3; - u16 *unkBuff4; if (arg0->unk354 == 0) return; - + sub_81D24A4(arg0); sub_81D2634(arg0); - i = 0; - scanBuffer1 = gScanlineEffectRegBuffers[0]; - scanBufferWidth = ARRAY_COUNT(gScanlineEffectRegBuffers[0]); - scanBuffer2 = scanBuffer1 + scanBufferWidth; - - // This function accesses the arrays "manually", where every other entry - // is just handled differently, rather than a pairwise struct. - unkBuff1 = (u16*)&arg0->unk13C[0].unk0; - mask = 0xFFFF; - unkBuff2 = (u16*)&arg0->unk13C[0].unk2; - unkBuff3 = (u16*)&arg0->unk248[0].unk0; - unkBuff4 = (u16*)&arg0->unk248[0].unk2; - - for (; i < 0x42; i++) + for (i = 0; i < 66; i++) { - u32 offset1; - register u32 offset2 asm("r2"); - u32 offset3; - - offset1 = (i + 0x37) * 2; - offset2 = i + 0x37; - scanBuffer2[offset1] = (scanBuffer1[offset1] = (unkBuff1[i * 2] << 8) | unkBuff2[i * 2]) & mask; - - offset3 = offset2 * 2 + 1; - scanBuffer2[offset3] = (scanBuffer1[offset3] = (unkBuff3[i * 2] << 8) | unkBuff4[i * 2]) & mask; + gScanlineEffectRegBuffers[1][(i + 55) * 2] = gScanlineEffectRegBuffers[0][(i + 55) * 2] = (arg0->unk140[i][0] << 8) | (arg0->unk140[i][1]); + gScanlineEffectRegBuffers[1][(i + 55) * 2 + 1] = gScanlineEffectRegBuffers[0][(i + 55) * 2 + 1] = (arg0->unk248[i][0] << 8) | (arg0->unk248[i][1]); } arg0->unk354 = 0; -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x10\n\ - adds r6, r0, 0\n\ - movs r1, 0xD5\n\ - lsls r1, 2\n\ - adds r0, r6, r1\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _081D21BE\n\ - adds r0, r6, 0\n\ - bl sub_81D24A4\n\ - adds r0, r6, 0\n\ - bl sub_81D2634\n\ - movs r7, 0\n\ - ldr r5, =gScanlineEffectRegBuffers\n\ - mov r12, r5\n\ - movs r0, 0xF0\n\ - lsls r0, 3\n\ - add r0, r12\n\ - mov r9, r0\n\ - movs r1, 0xA0\n\ - lsls r1, 1\n\ - adds r1, r6, r1\n\ - str r1, [sp]\n\ - ldr r5, =0x0000ffff\n\ - mov r8, r5\n\ - movs r0, 0xA1\n\ - lsls r0, 1\n\ - adds r0, r6, r0\n\ - str r0, [sp, 0x4]\n\ - movs r1, 0x92\n\ - lsls r1, 2\n\ - adds r1, r6, r1\n\ - str r1, [sp, 0x8]\n\ - ldr r5, =0x0000024a\n\ - adds r5, r6\n\ - mov r10, r5\n\ -_081D215E:\n\ - adds r2, r7, 0\n\ - adds r2, 0x37\n\ - lsls r3, r2, 2\n\ - mov r0, r9\n\ - adds r0, r3, r0\n\ - str r0, [sp, 0xC]\n\ - add r3, r12\n\ - lsls r4, r7, 2\n\ - ldr r1, [sp]\n\ - adds r0, r1, r4\n\ - ldrh r0, [r0]\n\ - lsls r0, 8\n\ - ldr r5, [sp, 0x4]\n\ - adds r1, r5, r4\n\ - ldrh r1, [r1]\n\ - orrs r0, r1\n\ - strh r0, [r3]\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r5, [sp, 0xC]\n\ - strh r0, [r5]\n\ - lsls r2, 1\n\ - adds r2, 0x1\n\ - lsls r2, 1\n\ - mov r0, r9\n\ - adds r3, r2, r0\n\ - add r2, r12\n\ - ldr r1, [sp, 0x8]\n\ - adds r0, r1, r4\n\ - ldrh r0, [r0]\n\ - lsls r0, 8\n\ - add r4, r10\n\ - ldrh r1, [r4]\n\ - orrs r0, r1\n\ - strh r0, [r2]\n\ - mov r5, r8\n\ - ands r0, r5\n\ - strh r0, [r3]\n\ - adds r0, r7, 0x1\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ - cmp r7, 0x41\n\ - bls _081D215E\n\ - movs r0, 0xD5\n\ - lsls r0, 2\n\ - adds r1, r6, r0\n\ - movs r0, 0\n\ - strb r0, [r1]\n\ -_081D21BE:\n\ - add sp, 0x10\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif } void sub_81D21DC(u8 bg) { - u8 flags; + u32 flags; if (bg > 3) bg = 0; - + // Unset the WINOUT flag for the bg. flags = (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) & ~(1 << bg); @@ -691,65 +442,14 @@ void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) { u16 i; for (i = 0; i < 5; i++) - { arg0->unk12C[i] = arg0->unk64[arg0->unk352][i]; - } + arg0->unk354 = 1; } NAKED -static void sub_81D2278(void *a0, void *a1, u16 *a2, u16 *a3, u8 a38, u32 a3C) +static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 arg1[66][2], struct UnknownSubStruct_81D1ED4 *arg2, struct UnknownSubStruct_81D1ED4 *arg3, u8 arg4, u16 arg5[66][2]) { -#ifdef NONMATCHING - // a0 => sp0 - // a1 => r6 - // a2 => r5 - // a3 => sp4 - // a38 => r9 - // a3C => r7 - u32 v1; // r10 - u32 v2; // sp8 - u32 v3; // spC - u32 v4; - u32 v5; - u16 v6; // r8 - u32 v7; - u32 v8; // sp10 - - v3 = 0; - - // v4 => r4 - // v5 => r0 - // v7 => r1 - if (a2[1] < a3[1]) - { - v1 = a2[1]; - v5 = a3[1]; - v7 = a2[0]; - v4 = v7 << 10; - v2 = a3[0]; - } - else - { - v5 = a2[1]; - v1 = a3[1]; - v7 = a3[0]; - v4 = v7 << 10; - v2 = a2[0]; - } - - v6 = v5 - v1; - if (v6 != 0) - { - v3 = (v2 - v7) / v6; - } - v6++; - - if (a3C == 0) - { - v8 = - } -#else asm(".syntax unified\n\ push {r4-r7,lr}\n\ mov r7, r10\n\ @@ -1043,531 +743,121 @@ _081D2494:\n\ pop {r0}\n\ bx r0\n\ .syntax divided"); -#endif } -NAKED -static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0) +static void sub_81D24A4(struct UnknownStruct_81D1ED4 *arg0) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - sub sp, 0x8\n\ - adds r4, r0, 0\n\ - movs r0, 0x97\n\ - lsls r0, 1\n\ - adds r2, r4, r0\n\ - movs r3, 0x99\n\ - lsls r3, 1\n\ - adds r1, r4, r3\n\ - ldrh r0, [r2]\n\ - ldrh r3, [r1]\n\ - cmp r0, r3\n\ - bcs _081D24E0\n\ - adds r7, r0, 0\n\ - movs r0, 0xA0\n\ - lsls r0, 1\n\ - adds r1, r4, r0\n\ - movs r3, 0x96\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - subs r0, 0x10\n\ - adds r3, r4, r0\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ - b _081D2500\n\ -_081D24E0:\n\ - ldrh r7, [r1]\n\ - movs r2, 0xA0\n\ - lsls r2, 1\n\ - adds r1, r4, r2\n\ - movs r3, 0x98\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - movs r0, 0x96\n\ - lsls r0, 1\n\ - adds r3, r4, r0\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ -_081D2500:\n\ - movs r1, 0xA0\n\ - lsls r1, 1\n\ - adds r5, r4, r1\n\ - movs r3, 0x98\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - movs r0, 0x9A\n\ - lsls r0, 1\n\ - adds r6, r4, r0\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - adds r3, r6, 0\n\ - bl sub_81D2278\n\ - movs r2, 0\n\ - movs r1, 0x9B\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - movs r3, 0x9D\n\ - lsls r3, 1\n\ - adds r1, r4, r3\n\ - ldrh r0, [r0]\n\ - ldrh r1, [r1]\n\ - cmp r0, r1\n\ - bhi _081D253C\n\ - movs r2, 0x1\n\ -_081D253C:\n\ - movs r0, 0x9C\n\ - lsls r0, 1\n\ - adds r3, r4, r0\n\ - str r2, [sp]\n\ - movs r1, 0x92\n\ - lsls r1, 2\n\ - adds r0, r4, r1\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - adds r2, r6, 0\n\ - bl sub_81D2278\n\ - movs r2, 0x38\n\ - cmp r2, r7\n\ - bcs _081D257E\n\ - adds r6, r5, 0\n\ - movs r3, 0\n\ - movs r0, 0xA1\n\ - lsls r0, 1\n\ - adds r5, r4, r0\n\ -_081D2566:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r1, r6, r0\n\ - strh r3, [r1]\n\ - adds r0, r5, r0\n\ - strh r3, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, r7\n\ - bcc _081D2566\n\ -_081D257E:\n\ - movs r1, 0x97\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - ldrh r2, [r0]\n\ - movs r3, 0xD4\n\ - lsls r3, 2\n\ - adds r0, r4, r3\n\ - ldrh r1, [r0]\n\ - cmp r2, r1\n\ - bhi _081D25B2\n\ - movs r1, 0xA0\n\ - lsls r1, 1\n\ - adds r3, r4, r1\n\ - movs r5, 0x9B\n\ - adds r1, r0, 0\n\ -_081D259C:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r0, r3, r0\n\ - strh r5, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - ldrh r0, [r1]\n\ - cmp r2, r0\n\ - bls _081D259C\n\ -_081D25B2:\n\ - movs r2, 0x9B\n\ - lsls r2, 1\n\ - adds r1, r4, r2\n\ - movs r3, 0xD4\n\ - lsls r3, 2\n\ - adds r0, r4, r3\n\ - ldrh r0, [r0]\n\ - ldrh r1, [r1]\n\ - cmp r0, r1\n\ - bcs _081D25C8\n\ - adds r0, r1, 0\n\ -_081D25C8:\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x79\n\ - bhi _081D25F8\n\ - movs r0, 0xA0\n\ - lsls r0, 1\n\ - adds r6, r4, r0\n\ - movs r3, 0\n\ - movs r1, 0xA1\n\ - lsls r1, 1\n\ - adds r5, r4, r1\n\ -_081D25E0:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r1, r6, r0\n\ - strh r3, [r1]\n\ - adds r0, r5, r0\n\ - strh r3, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x79\n\ - bls _081D25E0\n\ -_081D25F8:\n\ - movs r2, 0x38\n\ - movs r3, 0xA0\n\ - lsls r3, 1\n\ - adds r5, r4, r3\n\ - movs r0, 0xA1\n\ - lsls r0, 1\n\ - adds r4, r0\n\ - movs r6, 0x9B\n\ -_081D2608:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r1, r0, 2\n\ - adds r3, r5, r1\n\ - ldrh r0, [r3]\n\ - cmp r0, 0\n\ - bne _081D2620\n\ - adds r0, r4, r1\n\ - ldrh r0, [r0]\n\ - cmp r0, 0\n\ - beq _081D2620\n\ - strh r6, [r3]\n\ -_081D2620:\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x79\n\ - bls _081D2608\n\ - add sp, 0x8\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -} + u16 i, r6, varMax; -NAKED -static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - sub sp, 0x8\n\ - adds r4, r0, 0\n\ - movs r0, 0x97\n\ - lsls r0, 1\n\ - adds r2, r4, r0\n\ - movs r3, 0x9F\n\ - lsls r3, 1\n\ - adds r1, r4, r3\n\ - ldrh r0, [r2]\n\ - ldrh r5, [r1]\n\ - cmp r0, r5\n\ - bcs _081D266E\n\ - adds r6, r0, 0\n\ - movs r0, 0x92\n\ - lsls r0, 2\n\ - adds r1, r4, r0\n\ - subs r3, 0x12\n\ - adds r2, r4, r3\n\ - movs r5, 0x9E\n\ - lsls r5, 1\n\ - adds r3, r4, r5\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ - b _081D2690\n\ -_081D266E:\n\ - ldrh r6, [r1]\n\ - movs r0, 0x92\n\ - lsls r0, 2\n\ - adds r1, r4, r0\n\ - movs r3, 0x9E\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - movs r5, 0x96\n\ - lsls r5, 1\n\ - adds r3, r4, r5\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ -_081D2690:\n\ - movs r0, 0x92\n\ - lsls r0, 2\n\ - adds r5, r4, r0\n\ - movs r1, 0x9E\n\ - lsls r1, 1\n\ - adds r2, r4, r1\n\ - movs r0, 0x9C\n\ - lsls r0, 1\n\ - adds r3, r4, r0\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - bl sub_81D2278\n\ - cmp r6, 0x38\n\ - ble _081D26C8\n\ - movs r0, 0\n\ - adds r1, r5, 0\n\ - adds r2, r6, 0\n\ - subs r2, 0x38\n\ -_081D26BC:\n\ - strh r0, [r1]\n\ - strh r0, [r1, 0x2]\n\ - adds r1, 0x4\n\ - subs r2, 0x1\n\ - cmp r2, 0\n\ - bne _081D26BC\n\ -_081D26C8:\n\ - movs r1, 0x97\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - ldrh r2, [r0]\n\ - movs r3, 0xD4\n\ - lsls r3, 2\n\ - adds r0, r4, r3\n\ - ldrh r5, [r0]\n\ - cmp r2, r5\n\ - bgt _081D26F6\n\ - movs r3, 0x9B\n\ - adds r1, r0, 0\n\ - lsls r0, r2, 2\n\ - movs r5, 0xB5\n\ - lsls r5, 1\n\ - adds r0, r5\n\ - adds r0, r4\n\ -_081D26EA:\n\ - strh r3, [r0]\n\ - adds r0, 0x4\n\ - adds r2, 0x1\n\ - ldrh r5, [r1]\n\ - cmp r2, r5\n\ - ble _081D26EA\n\ -_081D26F6:\n\ - movs r1, 0x9D\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - ldrh r0, [r0]\n\ - adds r1, r0, 0x1\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r4, r2\n\ - ldrh r0, [r0]\n\ - cmp r0, r1\n\ - bge _081D270E\n\ - adds r0, r1, 0\n\ -_081D270E:\n\ - adds r2, r0, 0\n\ - cmp r2, 0x79\n\ - bgt _081D272C\n\ - movs r1, 0\n\ - lsls r0, r2, 2\n\ - movs r3, 0xB4\n\ - lsls r3, 1\n\ - adds r0, r3\n\ - adds r0, r4\n\ -_081D2720:\n\ - strh r1, [r0]\n\ - strh r1, [r0, 0x2]\n\ - adds r0, 0x4\n\ - adds r2, 0x1\n\ - cmp r2, 0x79\n\ - ble _081D2720\n\ -_081D272C:\n\ - movs r3, 0\n\ - movs r5, 0x92\n\ - lsls r5, 2\n\ - adds r1, r4, r5\n\ - movs r2, 0x41\n\ -_081D2736:\n\ - ldrh r0, [r1]\n\ - ldrh r4, [r1, 0x2]\n\ - cmp r0, r4\n\ - bcc _081D2742\n\ - strh r3, [r1, 0x2]\n\ - strh r3, [r1]\n\ -_081D2742:\n\ - adds r1, 0x4\n\ - subs r2, 0x1\n\ - cmp r2, 0\n\ - bge _081D2736\n\ - add sp, 0x8\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); + if (arg0->unk12C[0].unk2 < arg0->unk12C[1].unk2) + { + r6 = arg0->unk12C[0].unk2; + sub_81D2278(arg0, arg0->unk140, &arg0->unk12C[0], &arg0->unk12C[1], 1, NULL); + } + else + { + r6 = arg0->unk12C[1].unk2; + sub_81D2278(arg0, arg0->unk140, &arg0->unk12C[1], &arg0->unk12C[0], 0, NULL); + } + + sub_81D2278(arg0, arg0->unk140, &arg0->unk12C[1], &arg0->unk12C[2], 1, NULL); + + i = (arg0->unk12C[2].unk2 <= arg0->unk12C[3].unk2); + sub_81D2278(arg0, arg0->unk140, &arg0->unk12C[2], &arg0->unk12C[3], i, arg0->unk248); + for (i = 56; i < r6; i++) + { + arg0->unk140[i - 56][0] = 0; + arg0->unk140[i - 56][1] = 0; + } + + for (i = arg0->unk12C[0].unk2; i <= arg0->unk350; i++) + arg0->unk140[i - 56][0] = 155; + + varMax = max(arg0->unk350, arg0->unk12C[2].unk2); + for (i = varMax + 1; i < 122; i++) + { + arg0->unk140[i - 56][0] = 0; + arg0->unk140[i - 56][1] = 0; + } + + for (i = 56; i < 122; i++) + { + if (arg0->unk140[i - 56][0] == 0 && arg0->unk140[i - 56][1] != 0) + arg0->unk140[i - 56][0] = 155; + } } -NAKED -void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1) +static void sub_81D2634(struct UnknownStruct_81D1ED4 *arg0) { - // There are some register-renaming issues here. The cause of the problem seems to be that - // GCC tries to save sUnknown_08625410 in a register, instead of loading the constant repeatedly. - // But this is one too many things to keep track of, so GCC is forced to use the stack. -#ifdef NONMATCHING - u8* v1; - u8 v2; - u8 v3; - s8 v4; - u16 v5; - - v1 = arg0->unk0[0]; - v2 = sUnknown_08625410[*v1]; - v1++; - arg1[0].unk0 = 0x9B; - arg1[0].unk2 = 0x5B - v2; - for (v3 = 0x40, v4 = 0, v5 = 1; v5 < 5; v5++) + s32 i, r6, varMax; + + if (arg0->unk12C[0].unk2 < arg0->unk12C[4].unk2) { - v3 += 0x33; - v4--; - if (v4 < 0) - { - v4 = 4; - } - if (v4 == 2) - { - v3++; - } + r6 = arg0->unk12C[0].unk2; + sub_81D2278(arg0, arg0->unk248, &arg0->unk12C[0], &arg0->unk12C[4], 0, NULL); + } + else + { + r6 = arg0->unk12C[4].unk2; + sub_81D2278(arg0, arg0->unk248, &arg0->unk12C[4], &arg0->unk12C[0], 1, NULL); + } + + sub_81D2278(arg0, arg0->unk248, &arg0->unk12C[4], &arg0->unk12C[3], 0, NULL); + + for (i = 56; i < r6; i++) + { + arg0->unk140[i + 10][0] = 0; + arg0->unk140[i + 10][1] = 0; + } + + for (i = arg0->unk12C[0].unk2; i <= arg0->unk350; i++) + arg0->unk140[i + 10][1] = 155; - v2 = sUnknown_08625410[*v1]; - v1++; - arg1[v4].unk0 = ((gSineTable[v3 + 0x40] * v2) >> 8) + 0x9B; - arg1[v4].unk2 = ((gSineTable[v3] * v2) >> 8) - 0x5B; - if (v4 <= 2 && (v2 != 0x20 || v4 != 2)) + varMax = max(arg0->unk350, arg0->unk12C[3].unk2 + 1); + for (i = varMax; i < 122; i++) + { + arg0->unk140[i + 10][0] = 0; + arg0->unk140[i + 10][1] = 0; + } + + for (i = 0; i < 66; i++) + { + if (arg0->unk248[i][0] >= arg0->unk248[i][1]) { - arg1[v4].unk0 = arg1[v4].unk0 + 1; + arg0->unk248[i][1] = 0; + arg0->unk248[i][0] = 0; } } -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - adds r6, r0, 0\n\ - mov r8, r1\n\ - ldr r1, =sUnknown_08625410\n\ - ldrb r0, [r6]\n\ - adds r0, r1\n\ - ldrb r2, [r0]\n\ - adds r6, 0x1\n\ - movs r0, 0x9B\n\ - mov r3, r8\n\ - strh r0, [r3]\n\ - movs r0, 0x5B\n\ - subs r0, r2\n\ - strh r0, [r3, 0x2]\n\ - movs r7, 0x40\n\ - movs r0, 0\n\ - mov r12, r0\n\ - movs r2, 0x1\n\ - mov r9, r2\n\ - ldr r3, =gSineTable\n\ - mov r10, r3\n\ -_081D2786:\n\ - adds r0, r7, 0\n\ - adds r0, 0x33\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ - mov r1, r12\n\ - lsls r0, r1, 24\n\ - movs r2, 0xFF\n\ - lsls r2, 24\n\ - adds r0, r2\n\ - lsrs r3, r0, 24\n\ - mov r12, r3\n\ - cmp r0, 0\n\ - bge _081D27A4\n\ - movs r0, 0x4\n\ - mov r12, r0\n\ -_081D27A4:\n\ - mov r1, r12\n\ - lsls r0, r1, 24\n\ - asrs r4, r0, 24\n\ - cmp r4, 0x2\n\ - bne _081D27B4\n\ - adds r0, r7, 0x1\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ -_081D27B4:\n\ - ldrb r0, [r6]\n\ - ldr r2, =sUnknown_08625410\n\ - adds r0, r2\n\ - ldrb r2, [r0]\n\ - adds r6, 0x1\n\ - lsls r0, r4, 2\n\ - mov r1, r8\n\ - adds r3, r0, r1\n\ - adds r0, r7, 0\n\ - adds r0, 0x40\n\ - lsls r0, 1\n\ - add r0, r10\n\ - movs r1, 0\n\ - ldrsh r0, [r0, r1]\n\ - muls r0, r2\n\ - asrs r5, r0, 8\n\ - adds r0, r5, 0\n\ - adds r0, 0x9B\n\ - strh r0, [r3]\n\ - lsls r0, r7, 1\n\ - add r0, r10\n\ - movs r1, 0\n\ - ldrsh r0, [r0, r1]\n\ - adds r1, r2, 0\n\ - muls r1, r0\n\ - asrs r1, 8\n\ - movs r0, 0x5B\n\ - subs r0, r1\n\ - strh r0, [r3, 0x2]\n\ - cmp r4, 0x2\n\ - bgt _081D2800\n\ - cmp r2, 0x20\n\ - bne _081D27FA\n\ - cmp r4, 0x2\n\ - beq _081D2800\n\ -_081D27FA:\n\ - adds r0, r5, 0\n\ - adds r0, 0x9C\n\ - strh r0, [r3]\n\ -_081D2800:\n\ - mov r0, r9\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r9, r0\n\ - cmp r0, 0x4\n\ - bls _081D2786\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif +} + +void sub_81D2754(u8 *arg0, struct UnknownSubStruct_81D1ED4 *arg1) +{ + u8 r2, r7; + s8 r12; + u16 i; + + r2 = sUnknown_08625410[*(arg0++)]; + arg1->unk0 = 155; + arg1->unk2 = 91 - r2; + + r7 = 64; + r12 = 0; + for (i = 1; i < 5; i++) + { + r7 += 51; + if (--r12 < 0) + r12 = 4; + + if (r12 == 2) + r7++; + + r2 = sUnknown_08625410[*(arg0++)]; + arg1[r12].unk0 = 155 + ((r2 * gSineTable[64 + r7]) >> 8); + arg1[r12].unk2 = 91 - ((r2 * gSineTable[r7]) >> 8); + + if (r12 < 3 && (r2 != 32 || r12 != 2)) + arg1[r12].unk0 = 156 + ((r2 * gSineTable[64 + r7]) >> 8); + } } void InitMoveRelearnerWindows(bool8 useContextWindow) @@ -1578,7 +868,7 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 1, 0xE0); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - + for (i = 0; i < 5; i++) { FillWindowPixelBuffer(i, PIXEL_FILL(1)); @@ -1624,314 +914,86 @@ u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices) return gMultiuseListMenuTemplate.maxShowed; } -NAKED static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) { - // Two small issues, and a few renamed registers. -#ifdef NONMATCHING - u8 offset; - s32 width; + s32 x; const struct BattleMove *move; u8 buffer[0x20]; - const u8 *labelStr; + const u8 *str; FillWindowPixelBuffer(0, PIXEL_FILL(1)); - labelStr = gText_MoveRelearnerBattleMoves; - offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); - AddTextPrinterParameterized(0, 1, labelStr, offset, 1, TEXT_SPEED_FF, NULL); + str = gText_MoveRelearnerBattleMoves; + x = GetStringCenterAlignXOffset(1, str, 0x80); + AddTextPrinterParameterized(0, 1, str, x, 1, TEXT_SPEED_FF, NULL); - labelStr = gText_MoveRelearnerPP; - AddTextPrinterParameterized(0, 1, labelStr, 4, 0x29, TEXT_SPEED_FF, NULL); + str = gText_MoveRelearnerPP; + AddTextPrinterParameterized(0, 1, str, 4, 0x29, TEXT_SPEED_FF, NULL); - labelStr = gText_MoveRelearnerPower; - offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); - AddTextPrinterParameterized(0, 1, labelStr, offset, 0x19, TEXT_SPEED_FF, NULL); + str = gText_MoveRelearnerPower; + x = GetStringRightAlignXOffset(1, str, 0x6A); + AddTextPrinterParameterized(0, 1, str, x, 0x19, TEXT_SPEED_FF, NULL); - labelStr = gText_MoveRelearnerAccuracy; - offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); - AddTextPrinterParameterized(0, 1, labelStr, offset, 0x29, TEXT_SPEED_FF, NULL); + str = gText_MoveRelearnerAccuracy; + x = GetStringRightAlignXOffset(1, str, 0x6A); + AddTextPrinterParameterized(0, 1, str, x, 0x29, TEXT_SPEED_FF, NULL); if (chosenMove == LIST_CANCEL) { CopyWindowToVram(0, 2); return; } move = &gBattleMoves[chosenMove]; - labelStr = gTypeNames[move->type]; - // GCC tries to be smart, and preserves the same 0x19 from above for this. - // The original asm just loads the constant 0x19 twice. - AddTextPrinterParameterized(0, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); - - // GCC tries to generate this as: - // add r4, r0, 0 - // add r4, r4, 4 - // But the original asm is: - // add r4, r0, 4 - width = 4 + GetStringWidth(1, gText_MoveRelearnerPP, 0); + str = gTypeNames[move->type]; + AddTextPrinterParameterized(0, 1, str, 4, 0x19, TEXT_SPEED_FF, NULL); + x = 4 + GetStringWidth(1, gText_MoveRelearnerPP, 0); ConvertIntToDecimalStringN(buffer, move->pp, 0, 2); - AddTextPrinterParameterized(0, 1, buffer, width, 0x29, TEXT_SPEED_FF, NULL); - + AddTextPrinterParameterized(0, 1, buffer, x, 0x29, TEXT_SPEED_FF, NULL); if (move->power < 2) { - labelStr = gText_ThreeDashes; + str = gText_ThreeDashes; } else { ConvertIntToDecimalStringN(buffer, move->power, 0, 3); - labelStr = buffer; + str = buffer; } - AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x19, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(0, 1, str, 0x6A, 0x19, TEXT_SPEED_FF, NULL); if (move->accuracy == 0) { - labelStr = gText_ThreeDashes; + str = gText_ThreeDashes; } else { ConvertIntToDecimalStringN(buffer, move->accuracy, 0, 3); - labelStr = buffer; + str = buffer; } - AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x29, TEXT_SPEED_FF, NULL); - labelStr = gMoveDescriptionPointers[chosenMove - 1]; - AddTextPrinterParameterized(0, 7, labelStr, 0, 0x41, 0, NULL); -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x2C\n\ - mov r9, r0\n\ - movs r0, 0\n\ - movs r1, 0x11\n\ - bl FillWindowPixelBuffer\n\ - ldr r5, =gText_MoveRelearnerBattleMoves\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x80\n\ - bl GetStringCenterAlignXOffset\n\ - adds r4, r0, 0\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0xFF\n\ - mov r8, r0\n\ - str r0, [sp, 0x4]\n\ - movs r7, 0\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerPP\n\ - movs r1, 0x29\n\ - mov r10, r1\n\ - str r1, [sp]\n\ - mov r0, r8\n\ - str r0, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x4\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerPower\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x6A\n\ - bl GetStringRightAlignXOffset\n\ - adds r4, r0, 0\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - movs r1, 0x19\n\ - str r1, [sp]\n\ - mov r0, r8\n\ - str r0, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerAccuracy\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x6A\n\ - bl GetStringRightAlignXOffset\n\ - adds r4, r0, 0\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - mov r1, r10\n\ - str r1, [sp]\n\ - mov r0, r8\n\ - str r0, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - cmp r9, r0\n\ - bne _081D29C4\n\ - movs r0, 0\n\ - movs r1, 0x2\n\ - bl CopyWindowToVram\n\ - b _081D2AB6\n\ - .pool\n\ -_081D29C4:\n\ - mov r1, r9\n\ - lsls r0, r1, 1\n\ - add r0, r9\n\ - lsls r0, 2\n\ - ldr r1, =gBattleMoves\n\ - adds r6, r0, r1\n\ - ldrb r1, [r6, 0x2]\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - ldr r1, =gTypeNames\n\ - adds r5, r0, r1\n\ - movs r0, 0x19\n\ - str r0, [sp]\n\ - mov r1, r8\n\ - str r1, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x4\n\ - bl AddTextPrinterParameterized\n\ - ldr r1, =gText_MoveRelearnerPP\n\ - movs r0, 0x1\n\ - movs r2, 0\n\ - bl GetStringWidth\n\ - adds r4, r0, 0x4\n\ - ldrb r1, [r6, 0x4]\n\ - add r0, sp, 0xC\n\ - movs r2, 0\n\ - movs r3, 0x2\n\ - bl ConvertIntToDecimalStringN\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - mov r0, r10\n\ - str r0, [sp]\n\ - mov r1, r8\n\ - str r1, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - add r2, sp, 0xC\n\ - bl AddTextPrinterParameterized\n\ - ldrb r0, [r6, 0x1]\n\ - cmp r0, 0x1\n\ - bhi _081D2A3C\n\ - ldr r5, =gText_ThreeDashes\n\ - b _081D2A4A\n\ - .pool\n\ -_081D2A3C:\n\ - ldrb r1, [r6, 0x1]\n\ - add r0, sp, 0xC\n\ - movs r2, 0\n\ - movs r3, 0x3\n\ - bl ConvertIntToDecimalStringN\n\ - add r5, sp, 0xC\n\ -_081D2A4A:\n\ - movs r0, 0x19\n\ - str r0, [sp]\n\ - movs r0, 0xFF\n\ - str r0, [sp, 0x4]\n\ - movs r0, 0\n\ - str r0, [sp, 0x8]\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x6A\n\ - bl AddTextPrinterParameterized\n\ - ldrb r0, [r6, 0x3]\n\ - cmp r0, 0\n\ - bne _081D2A70\n\ - ldr r5, =gText_ThreeDashes\n\ - b _081D2A7E\n\ - .pool\n\ -_081D2A70:\n\ - ldrb r1, [r6, 0x3]\n\ - add r0, sp, 0xC\n\ - movs r2, 0\n\ - movs r3, 0x3\n\ - bl ConvertIntToDecimalStringN\n\ - add r5, sp, 0xC\n\ -_081D2A7E:\n\ - movs r0, 0x29\n\ - str r0, [sp]\n\ - movs r0, 0xFF\n\ - str r0, [sp, 0x4]\n\ - movs r4, 0\n\ - str r4, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x6A\n\ - bl AddTextPrinterParameterized\n\ - ldr r1, =gMoveDescriptionPointers\n\ - mov r0, r9\n\ - subs r0, 0x1\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldr r5, [r0]\n\ - movs r0, 0x41\n\ - str r0, [sp]\n\ - str r4, [sp, 0x4]\n\ - str r4, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x7\n\ - adds r2, r5, 0\n\ - movs r3, 0\n\ - bl AddTextPrinterParameterized\n\ -_081D2AB6:\n\ - add sp, 0x2C\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif + AddTextPrinterParameterized(0, 1, str, 0x6A, 0x29, TEXT_SPEED_FF, NULL); + + str = gMoveDescriptionPointers[chosenMove - 1]; + AddTextPrinterParameterized(0, 7, str, 0, 0x41, 0, NULL); } -NAKED static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) { -#ifdef NONMATCHING - //u8 offset; - const u8 *labelStr; + s32 x; + const u8 *str; const struct ContestMove *move; - u8 category; - const u8 **temp; MoveRelearnerShowHideHearts(chosenMove); FillWindowPixelBuffer(1, PIXEL_FILL(1)); - labelStr = gText_MoveRelearnerContestMovesTitle; - // GCC compiles these as: - // add r3, r0, 0 - // lsls r3, r3, 24 - // lsrs r3, r3, 24 - // But in the original asm: - // lsls r3, r0, 24 - // lsrs r3, r3, 24 - //offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); - AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x80), 1, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerAppeal; - //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); - AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x19, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerJam; - //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); - AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x29, TEXT_SPEED_FF, NULL); + str = gText_MoveRelearnerContestMovesTitle; + x = GetStringCenterAlignXOffset(1, str, 0x80); + AddTextPrinterParameterized(1, 1, str, x, 1, TEXT_SPEED_FF, NULL); + + str = gText_MoveRelearnerAppeal; + x = GetStringRightAlignXOffset(1, str, 0x5C); + AddTextPrinterParameterized(1, 1, str, x, 0x19, TEXT_SPEED_FF, NULL); + + str = gText_MoveRelearnerJam; + x = GetStringRightAlignXOffset(1, str, 0x5C); + AddTextPrinterParameterized(1, 1, str, x, 0x29, TEXT_SPEED_FF, NULL); if (chosenMove == MENU_NOTHING_CHOSEN) { @@ -1940,128 +1002,13 @@ static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) } move = &gContestMoves[chosenMove]; - temp = (const u8**)gContestMoveTypeTextPointers; - category = move->contestCategory; - labelStr = temp[category]; - AddTextPrinterParameterized(1, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); + str = gContestMoveTypeTextPointers[move->contestCategory]; + AddTextPrinterParameterized(1, 1, str, 4, 0x19, TEXT_SPEED_FF, NULL); - labelStr = gContestEffectDescriptionPointers[move->effect]; - AddTextPrinterParameterized(1, 1, labelStr, 0, 0x41, TEXT_SPEED_FF, NULL); + str = gContestEffectDescriptionPointers[move->effect]; + AddTextPrinterParameterized(1, 7, str, 0, 0x41, TEXT_SPEED_FF, NULL); CopyWindowToVram(1, 2); -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - sub sp, 0xC\n\ - adds r4, r0, 0\n\ - bl MoveRelearnerShowHideHearts\n\ - movs r0, 0x1\n\ - movs r1, 0x11\n\ - bl FillWindowPixelBuffer\n\ - ldr r5, =gText_MoveRelearnerContestMovesTitle\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x80\n\ - bl GetStringCenterAlignXOffset\n\ - lsls r3, r0, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r7, 0xFF\n\ - str r7, [sp, 0x4]\n\ - movs r6, 0\n\ - str r6, [sp, 0x8]\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerAppeal\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x5C\n\ - bl GetStringRightAlignXOffset\n\ - lsls r3, r0, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x19\n\ - mov r8, r0\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerJam\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x5C\n\ - bl GetStringRightAlignXOffset\n\ - lsls r3, r0, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x29\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - cmp r4, r0\n\ - bne _081D2B6C\n\ - movs r0, 0x1\n\ - movs r1, 0x2\n\ - bl CopyWindowToVram\n\ - b _081D2BB8\n\ - .pool\n\ -_081D2B6C:\n\ - lsls r4, 3\n\ - ldr r0, =gContestMoves\n\ - adds r4, r0\n\ - ldr r1, =gContestMoveTypeTextPointers\n\ - ldrb r0, [r4, 0x1]\n\ - lsls r0, 29\n\ - lsrs r0, 27\n\ - adds r0, r1\n\ - ldr r5, [r0]\n\ - mov r0, r8\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x4\n\ - bl AddTextPrinterParameterized\n\ - ldr r1, =gContestEffectDescriptionPointers\n\ - ldrb r0, [r4]\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldr r5, [r0]\n\ - movs r0, 0x41\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x7\n\ - adds r2, r5, 0\n\ - movs r3, 0\n\ - bl AddTextPrinterParameterized\n\ - movs r0, 0x1\n\ - movs r1, 0x2\n\ - bl CopyWindowToVram\n\ -_081D2BB8:\n\ - add sp, 0xC\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif } static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) @@ -2091,4 +1038,4 @@ bool16 MoveRelearnerRunTextPrinters(void) void MoveRelearnerCreateYesNoMenu(void) { CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); -} \ No newline at end of file +} -- cgit v1.2.3 From cbdecf2f8de14a6c5526678011f4fc5088f1c6a6 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 23 Mar 2019 15:46:47 +0100 Subject: Make it compile --- src/menu_specialized.c | 622 ++++++++++++++++++++++++++----------------------- src/use_pokeblock.c | 4 +- 2 files changed, 331 insertions(+), 295 deletions(-) (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 5c24354ca..3dadc7f80 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -447,302 +447,338 @@ void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) arg0->unk354 = 1; } +/* TODO +static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 arg1[66][2], struct UnknownSubStruct_81D1ED4 *arg2, struct UnknownSubStruct_81D1ED4 *arg3, u8 arg4, u16 arg5[66][2]) +{ + s32 var_2C = 0; + u16 r8; + s32 r10, r4, r2, r0, r1, var_30; + + if (arg2->unk2 < arg3->unk2) + { + r2 = arg2->unk2; + r10 = arg2->unk2; + r0 = arg3->unk2; + r1 = arg2->unk0; + r4 = r1 << 10; + var_30 = arg3->unk0; + } + else + { + r0 = arg2->unk0; + r10 = arg3->unk2; + r1 = arg3->unk0; + r4 = r1 << 10; + var_30 = arg2->unk0; + r2 = arg3->unk2; + } + r8 = r0 - r2; + if (r8 != 0) + var_2C = ((var_30 - r1) << 10) / r8; + + r8++; + if (arg5 == NULL) + { + + } +} +*/ NAKED static void sub_81D2278(struct UnknownStruct_81D1ED4 *arg0, u16 arg1[66][2], struct UnknownSubStruct_81D1ED4 *arg2, struct UnknownSubStruct_81D1ED4 *arg3, u8 arg4, u16 arg5[66][2]) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x18\n\ - str r0, [sp]\n\ - adds r6, r1, 0\n\ - adds r5, r2, 0\n\ - str r3, [sp, 0x4]\n\ - ldr r0, [sp, 0x38]\n\ - ldr r7, [sp, 0x3C]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ - movs r0, 0\n\ - str r0, [sp, 0xC]\n\ - ldrh r0, [r5, 0x2]\n\ - ldrh r1, [r3, 0x2]\n\ - cmp r0, r1\n\ - bcs _081D22B2\n\ - adds r2, r0, 0\n\ - mov r10, r2\n\ - ldrh r0, [r3, 0x2]\n\ - ldrh r1, [r5]\n\ - lsls r4, r1, 10\n\ - ldrh r3, [r3]\n\ - str r3, [sp, 0x8]\n\ - b _081D22C6\n\ -_081D22B2:\n\ - ldrh r0, [r5, 0x2]\n\ - ldr r1, [sp, 0x4]\n\ - ldrh r1, [r1, 0x2]\n\ - mov r10, r1\n\ - ldr r2, [sp, 0x4]\n\ - ldrh r1, [r2]\n\ - lsls r4, r1, 10\n\ - ldrh r3, [r5]\n\ - str r3, [sp, 0x8]\n\ - mov r2, r10\n\ -_081D22C6:\n\ - subs r0, r2\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ - cmp r0, 0\n\ - beq _081D22DE\n\ - subs r0, r3, r1\n\ - lsls r0, 10\n\ - mov r1, r8\n\ - bl __divsi3\n\ - str r0, [sp, 0xC]\n\ -_081D22DE:\n\ - mov r0, r8\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ - cmp r7, 0\n\ - bne _081D2328\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - movs r5, 0\n\ - mov r3, r9\n\ - lsls r3, 1\n\ - mov r12, r3\n\ - ldr r0, [sp, 0x8]\n\ - add r0, r9\n\ - str r0, [sp, 0x10]\n\ - cmp r7, r8\n\ - bcs _081D23B6\n\ - movs r7, 0x1\n\ -_081D2308:\n\ - adds r2, r3, r6\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - ands r0, r7\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r1, [sp, 0xC]\n\ - adds r4, r1\n\ - adds r6, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcc _081D2308\n\ - b _081D23B6\n\ -_081D2328:\n\ - ldr r2, [sp, 0xC]\n\ - cmp r2, 0\n\ - ble _081D23C0\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r7, r0\n\ - movs r5, 0\n\ - mov r3, r9\n\ - lsls r3, 1\n\ - mov r12, r3\n\ - ldr r0, [sp, 0x8]\n\ - add r0, r9\n\ - str r0, [sp, 0x10]\n\ - cmp r5, r8\n\ - bcs _081D237A\n\ - ldr r0, =0x00026bff\n\ - cmp r4, r0\n\ - bgt _081D237A\n\ - mov r1, r12\n\ - str r1, [sp, 0x14]\n\ -_081D2352:\n\ - ldr r3, [sp, 0x14]\n\ - adds r2, r3, r7\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - movs r3, 0x1\n\ - ands r0, r3\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r7, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcs _081D237A\n\ - ldr r1, =0x00026bff\n\ - cmp r4, r1\n\ - ble _081D2352\n\ -_081D237A:\n\ - mov r2, r10\n\ - adds r1, r2, r5\n\ - ldr r3, [sp]\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r3, r2\n\ - strh r1, [r0]\n\ - ldrh r0, [r0]\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - cmp r5, r8\n\ - bcs _081D23B6\n\ - mov r3, r12\n\ - movs r7, 0x1\n\ -_081D2398:\n\ - adds r2, r3, r6\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - ands r0, r7\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r6, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcc _081D2398\n\ -_081D23B6:\n\ - subs r0, r6, 0x4\n\ - b _081D248C\n\ - .pool\n\ -_081D23C0:\n\ - ldr r1, [sp, 0xC]\n\ - cmp r1, 0\n\ - bge _081D2464\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - movs r5, 0\n\ - mov r2, r9\n\ - lsls r2, 1\n\ - mov r12, r2\n\ - ldr r3, [sp, 0x8]\n\ - add r3, r9\n\ - str r3, [sp, 0x10]\n\ - cmp r5, r8\n\ - bcs _081D241E\n\ - adds r3, r2, r6\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - movs r2, 0x1\n\ - ands r0, r2\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r3]\n\ - b _081D2414\n\ -_081D23F2:\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r6, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcs _081D241E\n\ - mov r1, r12\n\ - adds r3, r1, r6\n\ - asrs r2, r4, 10\n\ - asrs r0, r4, 9\n\ - movs r1, 0x1\n\ - ands r0, r1\n\ - adds r2, r0\n\ - add r2, r9\n\ - strh r2, [r3]\n\ -_081D2414:\n\ - ldr r0, =0x00026bff\n\ - cmp r4, r0\n\ - bgt _081D23F2\n\ - movs r0, 0x9B\n\ - strh r0, [r3]\n\ -_081D241E:\n\ - mov r2, r10\n\ - adds r1, r2, r5\n\ - ldr r3, [sp]\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r3, r2\n\ - strh r1, [r0]\n\ - ldrh r0, [r0]\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r7, r0\n\ - cmp r5, r8\n\ - bcs _081D245A\n\ - mov r3, r12\n\ - movs r6, 0x1\n\ -_081D243C:\n\ - adds r2, r3, r7\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - ands r0, r6\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r7, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcc _081D243C\n\ -_081D245A:\n\ - subs r0, r7, 0x4\n\ - b _081D248C\n\ - .pool\n\ -_081D2464:\n\ - ldr r1, [sp]\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r1, r2\n\ - mov r3, r10\n\ - strh r3, [r0]\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - adds r7, r0\n\ - ldrh r0, [r5]\n\ - adds r0, 0x1\n\ - strh r0, [r6, 0x2]\n\ - ldr r1, [sp, 0x4]\n\ - ldrh r0, [r1]\n\ - strh r0, [r7]\n\ - movs r0, 0x9B\n\ - strh r0, [r7, 0x2]\n\ - b _081D2494\n\ -_081D248C:\n\ - add r0, r12\n\ - mov r2, sp\n\ - ldrh r2, [r2, 0x10]\n\ - strh r2, [r0]\n\ -_081D2494:\n\ - add sp, 0x18\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x18\n\ + str r0, [sp]\n\ + adds r6, r1, 0\n\ + adds r5, r2, 0\n\ + str r3, [sp, 0x4]\n\ + ldr r0, [sp, 0x38]\n\ + ldr r7, [sp, 0x3C]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ + movs r0, 0\n\ + str r0, [sp, 0xC]\n\ + ldrh r0, [r5, 0x2]\n\ + ldrh r1, [r3, 0x2]\n\ + cmp r0, r1\n\ + bcs _081D22B2\n\ + adds r2, r0, 0\n\ + mov r10, r2\n\ + ldrh r0, [r3, 0x2]\n\ + ldrh r1, [r5]\n\ + lsls r4, r1, 10\n\ + ldrh r3, [r3]\n\ + str r3, [sp, 0x8]\n\ + b _081D22C6\n\ + _081D22B2:\n\ + ldrh r0, [r5, 0x2]\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r1, [r1, 0x2]\n\ + mov r10, r1\n\ + ldr r2, [sp, 0x4]\n\ + ldrh r1, [r2]\n\ + lsls r4, r1, 10\n\ + ldrh r3, [r5]\n\ + str r3, [sp, 0x8]\n\ + mov r2, r10\n\ + _081D22C6:\n\ + subs r0, r2\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + cmp r0, 0\n\ + beq _081D22DE\n\ + subs r0, r3, r1\n\ + lsls r0, 10\n\ + mov r1, r8\n\ + bl __divsi3\n\ + str r0, [sp, 0xC]\n\ + _081D22DE:\n\ + mov r0, r8\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + cmp r7, 0\n\ + bne _081D2328\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + movs r5, 0\n\ + mov r3, r9\n\ + lsls r3, 1\n\ + mov r12, r3\n\ + ldr r0, [sp, 0x8]\n\ + add r0, r9\n\ + str r0, [sp, 0x10]\n\ + cmp r7, r8\n\ + bcs _081D23B6\n\ + movs r7, 0x1\n\ + _081D2308:\n\ + adds r2, r3, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r7\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r1, [sp, 0xC]\n\ + adds r4, r1\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D2308\n\ + b _081D23B6\n\ + _081D2328:\n\ + ldr r2, [sp, 0xC]\n\ + cmp r2, 0\n\ + ble _081D23C0\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r7, r0\n\ + movs r5, 0\n\ + mov r3, r9\n\ + lsls r3, 1\n\ + mov r12, r3\n\ + ldr r0, [sp, 0x8]\n\ + add r0, r9\n\ + str r0, [sp, 0x10]\n\ + cmp r5, r8\n\ + bcs _081D237A\n\ + ldr r0, =0x00026bff\n\ + cmp r4, r0\n\ + bgt _081D237A\n\ + mov r1, r12\n\ + str r1, [sp, 0x14]\n\ + _081D2352:\n\ + ldr r3, [sp, 0x14]\n\ + adds r2, r3, r7\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r3, 0x1\n\ + ands r0, r3\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r7, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcs _081D237A\n\ + ldr r1, =0x00026bff\n\ + cmp r4, r1\n\ + ble _081D2352\n\ + _081D237A:\n\ + mov r2, r10\n\ + adds r1, r2, r5\n\ + ldr r3, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r3, r2\n\ + strh r1, [r0]\n\ + ldrh r0, [r0]\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + cmp r5, r8\n\ + bcs _081D23B6\n\ + mov r3, r12\n\ + movs r7, 0x1\n\ + _081D2398:\n\ + adds r2, r3, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r7\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D2398\n\ + _081D23B6:\n\ + subs r0, r6, 0x4\n\ + b _081D248C\n\ + .pool\n\ + _081D23C0:\n\ + ldr r1, [sp, 0xC]\n\ + cmp r1, 0\n\ + bge _081D2464\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + movs r5, 0\n\ + mov r2, r9\n\ + lsls r2, 1\n\ + mov r12, r2\n\ + ldr r3, [sp, 0x8]\n\ + add r3, r9\n\ + str r3, [sp, 0x10]\n\ + cmp r5, r8\n\ + bcs _081D241E\n\ + adds r3, r2, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r2, 0x1\n\ + ands r0, r2\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r3]\n\ + b _081D2414\n\ + _081D23F2:\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcs _081D241E\n\ + mov r1, r12\n\ + adds r3, r1, r6\n\ + asrs r2, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r1, 0x1\n\ + ands r0, r1\n\ + adds r2, r0\n\ + add r2, r9\n\ + strh r2, [r3]\n\ + _081D2414:\n\ + ldr r0, =0x00026bff\n\ + cmp r4, r0\n\ + bgt _081D23F2\n\ + movs r0, 0x9B\n\ + strh r0, [r3]\n\ + _081D241E:\n\ + mov r2, r10\n\ + adds r1, r2, r5\n\ + ldr r3, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r3, r2\n\ + strh r1, [r0]\n\ + ldrh r0, [r0]\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r7, r0\n\ + cmp r5, r8\n\ + bcs _081D245A\n\ + mov r3, r12\n\ + movs r6, 0x1\n\ + _081D243C:\n\ + adds r2, r3, r7\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r6\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r7, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D243C\n\ + _081D245A:\n\ + subs r0, r7, 0x4\n\ + b _081D248C\n\ + .pool\n\ + _081D2464:\n\ + ldr r1, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r1, r2\n\ + mov r3, r10\n\ + strh r3, [r0]\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + adds r7, r0\n\ + ldrh r0, [r5]\n\ + adds r0, 0x1\n\ + strh r0, [r6, 0x2]\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r0, [r1]\n\ + strh r0, [r7]\n\ + movs r0, 0x9B\n\ + strh r0, [r7, 0x2]\n\ + b _081D2494\n\ + _081D248C:\n\ + add r0, r12\n\ + mov r2, sp\n\ + ldrh r2, [r2, 0x10]\n\ + strh r2, [r0]\n\ + _081D2494:\n\ + add sp, 0x18\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + "); } static void sub_81D24A4(struct UnknownStruct_81D1ED4 *arg0) diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index b06d0cba9..155b7ed6d 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -203,14 +203,14 @@ void sub_8166380(void) gUnknown_0203BC90->field_50++; break; case 11: - sub_81D2754(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[0]); + sub_81D2754(gUnknown_0203BCAC->field_7C58.unk0[0], gUnknown_0203BCAC->field_7C58.unk14[0]); sub_81D20AC(&gUnknown_0203BCAC->field_7C58); gUnknown_0203BC90->field_50++; break; case 12: if (!sub_81D20BC(&gUnknown_0203BCAC->field_7C58)) { - sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14, gUnknown_0203BCAC->field_7C58.unk14); + sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[0], gUnknown_0203BCAC->field_7C58.unk14[0]); gUnknown_0203BC90->field_50++; } break; -- cgit v1.2.3 From 7d54c2b9600060c2b0cc37bac7fbdcdad6ee3178 Mon Sep 17 00:00:00 2001 From: Fontbane Date: Thu, 21 Mar 2019 22:10:56 -0400 Subject: EventScript and Text Documentation In event_script.s. Also renamed a couple events for consistency/detail. --- src/field_control_avatar.c | 4 ++-- src/item_menu.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 6735df3a0..5b685173e 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -390,11 +390,11 @@ static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 me if (MetatileBehavior_IsBookShelf(metatileBehavior) == TRUE) return EventScript_BookShelf; if (MetatileBehavior_IsPokeCenterBookShelf(metatileBehavior) == TRUE) - return EventScript_PokemonCenterBookshelf; + return EventScript_PokemonCenterBookShelf; if (MetatileBehavior_IsVase(metatileBehavior) == TRUE) return EventScript_Vase; if (MetatileBehavior_IsTrashCan(metatileBehavior) == TRUE) - return EventScript_TrashCan; + return EventScript_EmptyTrashCan; if (MetatileBehavior_IsShopShelf(metatileBehavior) == TRUE) return EventScript_ShopShelf; if (MetatileBehavior_IsBlueprint(metatileBehavior) == TRUE) diff --git a/src/item_menu.c b/src/item_menu.c index 81bc120a8..8edf6f279 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -447,7 +447,7 @@ static EWRAM_DATA struct TempWallyStruct *gUnknown_0203CE80 = 0; extern u8 *const gPocketNamesStringsTable[]; extern u8* gReturnToXStringsTable[]; -extern const u8 EventScript_2736B3[]; +extern const u8 EventScript_SelectWithoutRegisteredItem[]; extern const u16 gUnknown_0860F074[]; void ResetBagScrollPositions(void) @@ -1900,7 +1900,7 @@ bool8 UseRegisteredKeyItemOnField(void) else gSaveBlock1Ptr->registeredItem = ITEM_NONE; } - ScriptContext1_SetupScript(EventScript_2736B3); + ScriptContext1_SetupScript(EventScript_SelectWithoutRegisteredItem); return TRUE; } -- cgit v1.2.3 From e8add87bf3ccc3563a3d4fa94e109251f4a06eea Mon Sep 17 00:00:00 2001 From: Fontbane Date: Fri, 22 Mar 2019 12:25:51 -0400 Subject: Document Field Effects and some related text Also VAR_TRICK_HOUSE_LEVEL --- src/field_effect_helpers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 651b2baca..3f75fbb84 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -1508,7 +1508,7 @@ void sub_8155F80(struct Sprite *sprite) } } SetGpuReg(REG_OFFSET_BG0VOFS, 0); - FieldEffectStop(sprite, FLDEFF_64); + FieldEffectStop(sprite, FLDEFF_RAYQUAZA); break; } -- cgit v1.2.3 From 91fa5faf4acf617db0625992b2caf116e64f0888 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 23 Mar 2019 10:10:51 -0500 Subject: Match sub_8166564 --- src/use_pokeblock.c | 115 +++++++--------------------------------------------- 1 file changed, 14 insertions(+), 101 deletions(-) (limited to 'src') diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 7569b2052..49aff99ab 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -48,9 +48,12 @@ struct UsePokeblockStruct { /*0x0000*/ u8 field_0[0x7B0E]; /*0x7B0E*/ u16 field_7B0E; - /*0x7B10*/ u8 field_7B10[0x148]; + /*0x7B10*/ u8 field_7B10[0xC]; + /*0x7B1C*/ u8 field_7B1C[0x13C]; /*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58; - /*0x7FB0*/ u8 unk7FB0[0x20]; + /*0x7FB0*/ u8 unk7FB0[3]; + /*0x7FB3*/ s8 unk7FB3; + /*0x7FB4*/ u8 filler7FB4[0x1C]; /*0x7FD0*/ struct UsePokeblockSubStruct info; }; @@ -296,7 +299,6 @@ void sub_8166380(void) } } -#ifdef NONMATCHING void sub_8166564(void) { switch (gUnknown_0203BC90->field_50) @@ -311,110 +313,21 @@ void sub_8166564(void) gUnknown_0203BC90->field_50++; break; case 1: - if (!gPaletteFade.active) { - sub_81D3464((&gUnknown_0203BCAC + 0x7b1c)); - if (*(&gUnknown_0203BCAC + 0x8041) != *(&gUnknown_0203BCAC + 0x8040) - 1){ - sub_81D3480(*(&gUnknown_0203BCAC - 0x7b1c), *(&gUnknown_0203BCAC + 0x7b1c - 0xC), *(&gUnknown_0203BCAC + 0x8041 - 0x91) + *(&gUnknown_0203BCAC + 0x7fb3)); - } - else { - sub_816636C(sub_8166634); + if (!gPaletteFade.active) + { + sub_81D3464(&gUnknown_0203BCAC->field_7B1C); + if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + { + u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->unk7FB3]; + sub_81D3480(&gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10[0], var0); } + + sub_816636C(sub_8166634); } break; } } -#else -NAKED -void sub_8166564(void) -{ - asm(".syntax unified\n\ - push {r4,lr}\n\ - sub sp, 0x4\n\ - ldr r4, =gUnknown_0203BC90\n\ - ldr r0, [r4]\n\ - adds r0, 0x50\n\ - ldrb r1, [r0]\n\ - cmp r1, 0\n\ - beq _08166580\n\ - cmp r1, 0x1\n\ - beq _081665C0\n\ - b _08166610\n\ - .pool\n\ -_08166580:\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - str r1, [sp]\n\ - movs r1, 0\n\ - movs r2, 0x10\n\ - movs r3, 0\n\ - bl BeginNormalPaletteFade\n\ - ldr r0, =sub_8166340\n\ - bl SetVBlankCallback\n\ - movs r0, 0\n\ - bl ShowBg\n\ - movs r0, 0x1\n\ - bl ShowBg\n\ - movs r0, 0x3\n\ - bl ShowBg\n\ - movs r0, 0x2\n\ - bl ShowBg\n\ - ldr r1, [r4]\n\ - adds r1, 0x50\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - b _08166610\n\ - .pool\n\ -_081665C0:\n\ - ldr r0, =gPaletteFade\n\ - ldrb r1, [r0, 0x7]\n\ - movs r0, 0x80\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08166610\n\ - ldr r4, =gUnknown_0203BCAC\n\ - ldr r0, [r4]\n\ - ldr r1, =0x00007b1c\n\ - adds r0, r1\n\ - bl sub_81D3464\n\ - ldr r4, [r4]\n\ - ldr r2, =0x00008041\n\ - adds r0, r4, r2\n\ - ldrb r1, [r0]\n\ - ldr r3, =0x00008040\n\ - adds r0, r4, r3\n\ - ldrb r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r1, r0\n\ - beq _0816660A\n\ - ldr r1, =0x00007fb3\n\ - adds r0, r4, r1\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - subs r2, 0x91\n\ - adds r0, r4, r2\n\ - adds r0, r1\n\ - ldrb r2, [r0]\n\ - ldr r3, =0x00007b1c\n\ - adds r0, r4, r3\n\ - subs r3, 0xC\n\ - adds r1, r4, r3\n\ - ldrb r1, [r1]\n\ - bl sub_81D3480\n\ -_0816660A:\n\ - ldr r0, =sub_8166634\n\ - bl sub_816636C\n\ -_08166610:\n\ - add sp, 0x4\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif - void sub_8166634(void) { u8 var; -- cgit v1.2.3 From 511ff2f20f14a1e74109416a0b0d704c8c2692fc Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 23 Mar 2019 10:41:09 -0500 Subject: Match sub_8166BEC and do some cleanup --- src/use_pokeblock.c | 2768 ++++++++++++++++++++++++--------------------------- 1 file changed, 1295 insertions(+), 1473 deletions(-) (limited to 'src') diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 59077b059..6c9400b37 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -38,23 +38,27 @@ struct UsePokeblockSubStruct /*0x5C*/ u8 field_5c[5]; /*0x61*/ u8 field_61[5]; /*0x66*/ s16 field_66[5]; - /*0x70*/ u8 field_70; + /*0x70*/ u8 field_70; /*0x71*/ u8 field_71; - /*0x74*/ u8 (*unk74)(void); - /*0x78*/ u8 unk78; + /*0x74*/ u8 (*unk74)(void); + /*0x78*/ u8 unk78; }; struct UsePokeblockStruct { - /*0x0000*/ u8 field_0[0x7B0E]; - /*0x7B0E*/ u16 field_7B0E; - /*0x7B10*/ u8 field_7B10[0xC]; - /*0x7B1C*/ u8 field_7B1C[0x13C]; + /*0x0000*/ u8 field_0[0x7B06]; + /*0x7B06*/ u8 field_7B06[7]; + /*0x7B0E*/ u16 field_7B0E; + /*0x7B10*/ u8 field_7B10; + /*0x7B11*/ u8 field_7B11[0xB]; + /*0x7B1C*/ struct Sprite *field_7B1C[10]; + /*0x7B44*/ struct Sprite *field_7B44[0x45]; /*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58; /*0x7FB0*/ u8 unk7FB0[3]; /*0x7FB3*/ s8 unk7FB3; /*0x7FB4*/ u8 filler7FB4[0x1C]; /*0x7FD0*/ struct UsePokeblockSubStruct info; + /*0x804C*/ u8 filler804C[0x20]; }; extern u16 gKeyRepeatStartDelay; @@ -76,7 +80,6 @@ void sub_8167608(u8 arg0); void sub_8167BA0(u16 arg0, u8 copyToVramMode); void sub_8166634(void); void sub_8167CA0(bool8); -extern void sub_81D3520(u8*); void sub_8166BEC(void); void sub_8166D44(void); s8 sub_8166DE4(void); @@ -92,7 +95,6 @@ extern void sub_81D2074(void); void sub_81681F4(u8); void sub_8166E24(void); bool8 sub_8166EDC(void); -void sub_81D354C(u8*); void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2); void Pokeblock_MenuWindowTextPrint(const u8 *message); void sub_8167184(struct Pokeblock *, struct Pokemon *); @@ -145,7 +147,7 @@ EWRAM_DATA struct UsePokeblockStruct *gUnknown_0203BCAC = NULL; // code void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void)) { - gUnknown_0203BCAC = AllocZeroed(0x806C); + gUnknown_0203BCAC = AllocZeroed(sizeof(*gUnknown_0203BCAC)); gUnknown_0203BC90 = &gUnknown_0203BCAC->info; gUnknown_0203BC90->pokeblock = pokeblock; gUnknown_0203BC90->callback = callback; @@ -155,7 +157,7 @@ void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void void CB2_ReturnAndChooseMonToGivePokeblock(void) { - gUnknown_0203BCAC = AllocZeroed(0x806C); + gUnknown_0203BCAC = AllocZeroed(sizeof(*gUnknown_0203BCAC)); gUnknown_0203BC90 = &gUnknown_0203BCAC->info; gUnknown_0203BC90->pokeblock = gUnknown_0203BC98; gUnknown_0203BC90->callback = gUnknown_0203BC94; @@ -214,88 +216,82 @@ void sub_8166380(void) { switch (gUnknown_0203BC90->field_50) { - case 0: - gUnknown_0203BCAC->field_0[0x7B10] = 0xFF; - sub_81D1ED4(&gUnknown_0203BCAC->field_7C58); - gUnknown_0203BC90->field_50++; - break; - case 1: - ResetSpriteData(); - FreeAllSpritePalettes(); - gUnknown_0203BC90->field_50++; - break; - case 2: - SetVBlankCallback(NULL); - CpuFill32(0, (void*)(VRAM), VRAM_SIZE); - gUnknown_0203BC90->field_50++; - break; - case 3: - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085DFCCC, ARRAY_COUNT(gUnknown_085DFCCC)); - InitWindows(gUnknown_085DFCDC); - DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x97, 0xE0); - gUnknown_0203BC90->field_50++; - break; - case 4: - gUnknown_0203BC90->field_50++; - break; - case 5: - if (!sub_8168328()) - { - gUnknown_0203BC90->field_50++; - } - break; - case 6: - gKeyRepeatStartDelay = 20; - sub_8167420(); - gUnknown_0203BC90->field_50++; - break; - case 7: - if (!sub_8167930()) - { - gUnknown_0203BC90->field_50++; - } - break; - case 8: - sub_8167608(0); - sub_8167760(); - gUnknown_0203BC90->field_50++; - break; - case 9: - if (!sub_81D312C(&gUnknown_0203BCAC->field_0[0x7B0E])) - { - gUnknown_0203BC90->field_50++; - } - break; - case 10: + case 0: + gUnknown_0203BCAC->field_7B10 = 0xFF; + sub_81D1ED4(&gUnknown_0203BCAC->field_7C58); + gUnknown_0203BC90->field_50++; + break; + case 1: + ResetSpriteData(); + FreeAllSpritePalettes(); + gUnknown_0203BC90->field_50++; + break; + case 2: + SetVBlankCallback(NULL); + CpuFill32(0, (void*)(VRAM), VRAM_SIZE); + gUnknown_0203BC90->field_50++; + break; + case 3: + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_085DFCCC, ARRAY_COUNT(gUnknown_085DFCCC)); + InitWindows(gUnknown_085DFCDC); + DeactivateAllTextPrinters(); + LoadUserWindowBorderGfx(0, 0x97, 0xE0); + gUnknown_0203BC90->field_50++; + break; + case 4: + gUnknown_0203BC90->field_50++; + break; + case 5: + if (!sub_8168328()) gUnknown_0203BC90->field_50++; - break; - case 11: - sub_81D2754(gUnknown_0203BCAC->field_7C58.unk0[0], gUnknown_0203BCAC->field_7C58.unk14[0]); - sub_81D20AC(&gUnknown_0203BCAC->field_7C58); + break; + case 6: + gKeyRepeatStartDelay = 20; + sub_8167420(); + gUnknown_0203BC90->field_50++; + break; + case 7: + if (!sub_8167930()) gUnknown_0203BC90->field_50++; - break; - case 12: - if (!sub_81D20BC(&gUnknown_0203BCAC->field_7C58)) - { - sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[0], gUnknown_0203BCAC->field_7C58.unk14[0]); - gUnknown_0203BC90->field_50++; - } - break; - case 13: - sub_81D2230(&gUnknown_0203BCAC->field_7C58); + break; + case 8: + sub_8167608(0); + sub_8167760(); + gUnknown_0203BC90->field_50++; + break; + case 9: + if (!sub_81D312C(&gUnknown_0203BCAC->field_7B0E)) gUnknown_0203BC90->field_50++; - break; - case 14: - PutWindowTilemap(0); - PutWindowTilemap(1); - sub_8167BA0(0, 1); + break; + case 10: + gUnknown_0203BC90->field_50++; + break; + case 11: + sub_81D2754(gUnknown_0203BCAC->field_7C58.unk0[0], gUnknown_0203BCAC->field_7C58.unk14[0]); + sub_81D20AC(&gUnknown_0203BCAC->field_7C58); + gUnknown_0203BC90->field_50++; + break; + case 12: + if (!sub_81D20BC(&gUnknown_0203BCAC->field_7C58)) + { + sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[0], gUnknown_0203BCAC->field_7C58.unk14[0]); gUnknown_0203BC90->field_50++; - break; - case 15: - sub_816636C(sub_8166564); - break; + } + break; + case 13: + sub_81D2230(&gUnknown_0203BCAC->field_7C58); + gUnknown_0203BC90->field_50++; + break; + case 14: + PutWindowTilemap(0); + PutWindowTilemap(1); + sub_8167BA0(0, 1); + gUnknown_0203BC90->field_50++; + break; + case 15: + sub_816636C(sub_8166564); + break; } } @@ -303,113 +299,108 @@ void sub_8166564(void) { switch (gUnknown_0203BC90->field_50) { - case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); - SetVBlankCallback(sub_8166340); - ShowBg(0); - ShowBg(1); - ShowBg(3); - ShowBg(2); - gUnknown_0203BC90->field_50++; - break; - case 1: - if (!gPaletteFade.active) + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + SetVBlankCallback(sub_8166340); + ShowBg(0); + ShowBg(1); + ShowBg(3); + ShowBg(2); + gUnknown_0203BC90->field_50++; + break; + case 1: + if (!gPaletteFade.active) + { + sub_81D3464(gUnknown_0203BCAC->field_7B1C); + if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) { - sub_81D3464(&gUnknown_0203BCAC->field_7B1C); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) - { - u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->unk7FB3]; - sub_81D3480(&gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10[0], var0); - } - - sub_816636C(sub_8166634); + u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->unk7FB3]; + sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); } - break; + + sub_816636C(sub_8166634); + } + break; } } void sub_8166634(void) -{ - u8 var; +{ + u8 var; switch (gUnknown_0203BC90->field_50) { - case 0: - if (gMain.heldKeys & DPAD_UP) - { - PlaySE(SE_SELECT); - sub_8167CA0(TRUE); - sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]); - gUnknown_0203BC90->field_50 = 1; - } - else if (gMain.heldKeys & DPAD_DOWN) - { - PlaySE(SE_SELECT); - sub_8167CA0(FALSE); - sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]); - gUnknown_0203BC90->field_50 = 1; - } - else if (gMain.newKeys & B_BUTTON) - { - PlaySE(SE_SELECT); + case 0: + if (gMain.heldKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sub_8167CA0(TRUE); + sub_81D3520(gUnknown_0203BCAC->field_7B1C); + gUnknown_0203BC90->field_50 = 1; + } + else if (gMain.heldKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sub_8167CA0(FALSE); + sub_81D3520(gUnknown_0203BCAC->field_7B1C); + gUnknown_0203BC90->field_50 = 1; + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_0203BC90->field_50 = 3; + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) gUnknown_0203BC90->field_50 = 3; - } - else if (gMain.newKeys & A_BUTTON) - { - PlaySE(SE_SELECT); - if (gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) - { - gUnknown_0203BC90->field_50 = 3; - } - else - { - gUnknown_0203BC90->field_50 = 5; - } - } - - break; + else + gUnknown_0203BC90->field_50 = 5; + } + break; + case 1: + var = gUnknown_0203BCAC->info.unk74(); + if(!var) + gUnknown_0203BC90->field_50 = var; + break; + case 2: + break; + case 3: + sub_816636C(sub_8166BEC); + break; + case 4: + break; + case 5: + sub_8166D44(); + gUnknown_0203BC90->field_50++; + break; + case 6: + switch (sub_8166DE4()) + { case 1: - var = gUnknown_0203BCAC->info.unk74(); - if(!var) - gUnknown_0203BC90->field_50 = var; - break; - case 2: + case -1: + gUnknown_0203BC90->field_50 = 0; break; - case 3: - sub_816636C(sub_8166BEC); - break; - case 4: - break; - case 5: - sub_8166D44(); - gUnknown_0203BC90->field_50++; - break; - case 6: - switch (sub_8166DE4()) + case 0: + if (sub_8167268()) { - case 1: - case -1: - gUnknown_0203BC90->field_50 = 0; - break; - case 0: - if (sub_8167268()) - { - sub_8166F50(); - gUnknown_0203BC90->field_50 = 7; - } - else - { - sub_816636C(sub_816681C); - } - break; + sub_8166F50(); + gUnknown_0203BC90->field_50 = 7; } - break; - case 7: - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + else { - sub_8166F94(); - gUnknown_0203BC90->field_50 = 0; + sub_816636C(sub_816681C); } break; + } + break; + case 7: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + sub_8166F94(); + gUnknown_0203BC90->field_50 = 0; + } + break; } } @@ -417,82 +408,80 @@ void sub_816681C(void) { switch (gUnknown_0203BC90->field_50) { - case 0: - gPokeblockMonId = sub_81672A4(gUnknown_0203BCAC->info.field_71); - gUnknown_0203BC94 = gUnknown_0203BC90->callback; - gUnknown_0203BC98 = gUnknown_0203BC90->pokeblock; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - gUnknown_0203BC90->field_50++; - break; - case 1: - if (!gPaletteFade.active) - { - SetVBlankCallback(NULL); - Free(gUnknown_0203BCA0); - gUnknown_0203BCA0 = NULL; - Free(gUnknown_0203BCA4); - gUnknown_0203BCA4 = NULL; - Free(gUnknown_0203BCA8); - gUnknown_0203BCA8 = NULL; - Free(gUnknown_0203BCAC); - gUnknown_0203BCAC = NULL; - FreeAllWindowBuffers(); - gMain.savedCallback = CB2_ReturnAndChooseMonToGivePokeblock; - CB2_PreparePokeblockFeedScene(); - } - break; + case 0: + gPokeblockMonId = sub_81672A4(gUnknown_0203BCAC->info.field_71); + gUnknown_0203BC94 = gUnknown_0203BC90->callback; + gUnknown_0203BC98 = gUnknown_0203BC90->pokeblock; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gUnknown_0203BC90->field_50++; + break; + case 1: + if (!gPaletteFade.active) + { + SetVBlankCallback(NULL); + Free(gUnknown_0203BCA0); + gUnknown_0203BCA0 = NULL; + Free(gUnknown_0203BCA4); + gUnknown_0203BCA4 = NULL; + Free(gUnknown_0203BCA8); + gUnknown_0203BCA8 = NULL; + Free(gUnknown_0203BCAC); + gUnknown_0203BCAC = NULL; + FreeAllWindowBuffers(); + gMain.savedCallback = CB2_ReturnAndChooseMonToGivePokeblock; + CB2_PreparePokeblockFeedScene(); + } + break; } } void sub_81668F8(void) { + u16 var; switch (gUnknown_0203BC90->field_50) { - u16 var; - case 0: - if (gUnknown_0203BCAC->info.field_71 != gPokeblockMonId) - { - sub_8167CA0(gUnknown_0203BC90->field_56); - gUnknown_0203BC90->field_50++; - } - else - { - gUnknown_0203BC90->field_50 = 3; - } - break; - case 1: - var = gUnknown_0203BCAC->info.unk74(); - if (!var) - { - gUnknown_0203BC90->field_50 = var; - } - break; - case 2: - break; - case 3: - BlendPalettes(0xFFFFFFFF, 16, RGB(0, 0, 0)); - gUnknown_0203BC90->field_50++; - break; - case 4: - ShowBg(0); - ShowBg(1); - ShowBg(3); - ShowBg(2); - gUnknown_0203BC90->field_50++; - break; - case 5: - SetVBlankCallback(sub_8166340); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + case 0: + if (gUnknown_0203BCAC->info.field_71 != gPokeblockMonId) + { + sub_8167CA0(gUnknown_0203BC90->field_56); gUnknown_0203BC90->field_50++; - break; - case 6: - if (!gPaletteFade.active) - { - sub_81D3464(&gUnknown_0203BCAC->field_0[0x7B1C]); - sub_816636C(sub_8166A34); - SetMainCallback2(sub_816631C); - } - break; + } + else + { + gUnknown_0203BC90->field_50 = 3; + } + break; + case 1: + var = gUnknown_0203BCAC->info.unk74(); + if (!var) + gUnknown_0203BC90->field_50 = var; + break; + case 2: + break; + case 3: + BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + gUnknown_0203BC90->field_50++; + break; + case 4: + ShowBg(0); + ShowBg(1); + ShowBg(3); + ShowBg(2); + gUnknown_0203BC90->field_50++; + break; + case 5: + SetVBlankCallback(sub_8166340); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + gUnknown_0203BC90->field_50++; + break; + case 6: + if (!gPaletteFade.active) + { + sub_81D3464(gUnknown_0203BCAC->field_7B1C); + sub_816636C(sub_8166A34); + SetMainCallback2(sub_816631C); + } + break; } } @@ -502,11 +491,11 @@ void sub_8166A34(void) switch (gUnknown_0203BC90->field_50) { u8 var; - case 0: - gUnknown_0203BC90->field_5c[0] = (u8) &gPlayerParty; + case 0: + gUnknown_0203BC90->field_5c[0] = (u8) &gPlayerParty; gUnknown_0203BCAC->info.field_71 = (u32) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_71]; - gUnknown_0203BC90->field_5c[0] = &gPlayerParty - sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]); + gUnknown_0203BC90->field_5c[0] = &gPlayerParty + sub_81D3520(gUnknown_0203BCAC->field_7B1C); /*gUnknown_0203BCAC->pokemon = &gPlayerParty[gUnknown_083DFEC4->unk893c[gUnknown_0203BCAC->field_0[0x7B1C]].partyIdx]; move_anim_execute();*/ gUnknown_0203BC90->field_50++; @@ -523,19 +512,19 @@ void sub_8166A34(void) gUnknown_0203BC90->field_50++; break; case 3: - var = gUnknown_0203BCAC->field_7C58[0]; - sub_81D2074(); + var = gUnknown_0203BCAC->field_7C58[0]; + sub_81D2074(); if (!var) { sub_81681F4(sub_81672A4(gUnknown_0203BCAC->info.field_71)); /*sub_80F3D00(); gUnknown_0203BCAC->unk52 = 0;*/ - if(gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) - { - gUnknown_0203BC90->field_52 = var; - } - - sub_81D3480(&gUnknown_0203BCAC->field_7C58[0x35B], gUnknown_0203BCAC->field_7C58[0x35B + gUnknown_0203BCAC->field_7C58[0x358]]); + if(gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) + { + gUnknown_0203BC90->field_52 = var; + } + + sub_81D3480(&gUnknown_0203BCAC->field_7C58[0x35B], gUnknown_0203BCAC->field_7C58[0x35B + gUnknown_0203BCAC->field_7C58[0x358]]); } break; @@ -559,412 +548,246 @@ void sub_8166A34(void) NAKED void sub_8166A34(void) { - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r1, =gUnknown_0203BC90\n\ - ldr r0, [r1]\n\ - adds r0, 0x50\n\ - ldrb r0, [r0]\n\ - adds r5, r1, 0\n\ - cmp r0, 0x5\n\ - bls _08166A46\n\ - b _08166BDA\n\ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + ldr r1, =gUnknown_0203BC90\n\ + ldr r0, [r1]\n\ + adds r0, 0x50\n\ + ldrb r0, [r0]\n\ + adds r5, r1, 0\n\ + cmp r0, 0x5\n\ + bls _08166A46\n\ + b _08166BDA\n\ _08166A46:\n\ - lsls r0, 2\n\ - ldr r1, =_08166A58\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .pool\n\ - .align 2, 0\n\ + lsls r0, 2\n\ + ldr r1, =_08166A58\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .pool\n\ + .align 2, 0\n\ _08166A58:\n\ - .4byte _08166A70\n\ - .4byte _08166AAC\n\ - .4byte _08166AC0\n\ - .4byte _08166B14\n\ - .4byte _08166B94\n\ - .4byte _08166BB6\n\ + .4byte _08166A70\n\ + .4byte _08166AAC\n\ + .4byte _08166AC0\n\ + .4byte _08166B14\n\ + .4byte _08166B94\n\ + .4byte _08166BB6\n\ _08166A70:\n\ - ldr r4, [r5]\n\ - ldr r3, =gPlayerParty\n\ - str r3, [r4, 0xC]\n\ - ldr r0, =gUnknown_0203BCAC\n\ - ldr r0, [r0]\n\ - ldr r2, =0x00008041\n\ - adds r1, r0, r2\n\ - ldrb r1, [r1]\n\ - lsls r1, 2\n\ - adds r1, r0, r1\n\ - subs r2, 0x88\n\ - adds r1, r2\n\ - ldrb r2, [r1]\n\ - movs r1, 0x64\n\ - muls r1, r2\n\ - adds r1, r3\n\ - str r1, [r4, 0xC]\n\ - ldr r3, =0x00007b1c\n\ - adds r0, r3\n\ - bl sub_81D3520\n\ - b _08166BAA\n\ - .pool\n\ + ldr r4, [r5]\n\ + ldr r3, =gPlayerParty\n\ + str r3, [r4, 0xC]\n\ + ldr r0, =gUnknown_0203BCAC\n\ + ldr r0, [r0]\n\ + ldr r2, =0x00008041\n\ + adds r1, r0, r2\n\ + ldrb r1, [r1]\n\ + lsls r1, 2\n\ + adds r1, r0, r1\n\ + subs r2, 0x88\n\ + adds r1, r2\n\ + ldrb r2, [r1]\n\ + movs r1, 0x64\n\ + muls r1, r2\n\ + adds r1, r3\n\ + str r1, [r4, 0xC]\n\ + ldr r3, =0x00007b1c\n\ + adds r0, r3\n\ + bl sub_81D3520\n\ + b _08166BAA\n\ + .pool\n\ _08166AAC:\n\ - ldr r0, =gMain\n\ - ldrh r1, [r0, 0x2E]\n\ - movs r0, 0x3\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08166ABA\n\ - b _08166BDA\n\ + ldr r0, =gMain\n\ + ldrh r1, [r0, 0x2E]\n\ + movs r0, 0x3\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08166ABA\n\ + b _08166BDA\n\ _08166ABA:\n\ - b _08166BAA\n\ - .pool\n\ + b _08166BAA\n\ + .pool\n\ _08166AC0:\n\ - bl sub_8167104\n\ - ldr r6, =gUnknown_0203BC90\n\ - ldr r0, [r6]\n\ - adds r0, 0x5C\n\ - ldr r4, =gUnknown_0203BCAC\n\ - ldr r1, [r4]\n\ - ldr r5, =0x00007ca8\n\ - adds r1, r5\n\ - bl sub_81D2754\n\ - ldr r2, [r4]\n\ - ldr r4, =0x00007c58\n\ - adds r0, r2, r4\n\ - ldr r3, =0x00007fb3\n\ - adds r1, r2, r3\n\ - movs r3, 0\n\ - ldrsb r3, [r1, r3]\n\ - lsls r1, r3, 2\n\ - adds r1, r3\n\ - lsls r1, 2\n\ - adds r4, 0x14\n\ - adds r1, r4\n\ - adds r1, r2, r1\n\ - adds r2, r5\n\ - bl sub_81D1F84\n\ - bl sub_8167338\n\ - ldr r1, [r6]\n\ - b _08166BAC\n\ - .pool\n\ + bl sub_8167104\n\ + ldr r6, =gUnknown_0203BC90\n\ + ldr r0, [r6]\n\ + adds r0, 0x5C\n\ + ldr r4, =gUnknown_0203BCAC\n\ + ldr r1, [r4]\n\ + ldr r5, =0x00007ca8\n\ + adds r1, r5\n\ + bl sub_81D2754\n\ + ldr r2, [r4]\n\ + ldr r4, =0x00007c58\n\ + adds r0, r2, r4\n\ + ldr r3, =0x00007fb3\n\ + adds r1, r2, r3\n\ + movs r3, 0\n\ + ldrsb r3, [r1, r3]\n\ + lsls r1, r3, 2\n\ + adds r1, r3\n\ + lsls r1, 2\n\ + adds r4, 0x14\n\ + adds r1, r4\n\ + adds r1, r2, r1\n\ + adds r2, r5\n\ + bl sub_81D1F84\n\ + bl sub_8167338\n\ + ldr r1, [r6]\n\ + b _08166BAC\n\ + .pool\n\ _08166B14:\n\ - ldr r5, =gUnknown_0203BCAC\n\ - ldr r0, [r5]\n\ - ldr r1, =0x00007c58\n\ - adds r0, r1\n\ - bl sub_81D2074\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - cmp r6, 0\n\ - bne _08166BDA\n\ - ldr r0, [r5]\n\ - ldr r4, =0x00008041\n\ - adds r0, r4\n\ - ldrb r0, [r0]\n\ - bl sub_81672A4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - bl sub_81681F4\n\ - ldr r3, [r5]\n\ - adds r4, r3, r4\n\ - ldrb r1, [r4]\n\ - ldr r2, =0x00008040\n\ - adds r0, r3, r2\n\ - ldrb r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r1, r0\n\ - beq _08166B6C\n\ - ldr r4, =0x00007fb3\n\ - adds r0, r3, r4\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - subs r2, 0x90\n\ - adds r0, r3, r2\n\ - adds r0, r1\n\ - ldrb r2, [r0]\n\ - ldr r4, =0x00007b1c\n\ - adds r0, r3, r4\n\ - subs r4, 0xC\n\ - adds r1, r3, r4\n\ - ldrb r1, [r1]\n\ - bl sub_81D3480\n\ + ldr r5, =gUnknown_0203BCAC\n\ + ldr r0, [r5]\n\ + ldr r1, =0x00007c58\n\ + adds r0, r1\n\ + bl sub_81D2074\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + cmp r6, 0\n\ + bne _08166BDA\n\ + ldr r0, [r5]\n\ + ldr r4, =0x00008041\n\ + adds r0, r4\n\ + ldrb r0, [r0]\n\ + bl sub_81672A4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + bl sub_81681F4\n\ + ldr r3, [r5]\n\ + adds r4, r3, r4\n\ + ldrb r1, [r4]\n\ + ldr r2, =0x00008040\n\ + adds r0, r3, r2\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + cmp r1, r0\n\ + beq _08166B6C\n\ + ldr r4, =0x00007fb3\n\ + adds r0, r3, r4\n\ + movs r1, 0\n\ + ldrsb r1, [r0, r1]\n\ + subs r2, 0x90\n\ + adds r0, r3, r2\n\ + adds r0, r1\n\ + ldrb r2, [r0]\n\ + ldr r4, =0x00007b1c\n\ + adds r0, r3, r4\n\ + subs r4, 0xC\n\ + adds r1, r3, r4\n\ + ldrb r1, [r1]\n\ + bl sub_81D3480\n\ _08166B6C:\n\ - ldr r1, =gUnknown_0203BC90\n\ - ldr r0, [r1]\n\ - adds r0, 0x52\n\ - strb r6, [r0]\n\ - ldr r1, [r1]\n\ - b _08166BAC\n\ - .pool\n\ + ldr r1, =gUnknown_0203BC90\n\ + ldr r0, [r1]\n\ + adds r0, 0x52\n\ + strb r6, [r0]\n\ + ldr r1, [r1]\n\ + b _08166BAC\n\ + .pool\n\ _08166B94:\n\ - ldr r1, [r5]\n\ - adds r1, 0x52\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x10\n\ - bls _08166BDA\n\ - bl sub_8166E24\n\ + ldr r1, [r5]\n\ + adds r1, 0x52\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x10\n\ + bls _08166BDA\n\ + bl sub_8166E24\n\ _08166BAA:\n\ - ldr r1, [r5]\n\ + ldr r1, [r5]\n\ _08166BAC:\n\ - adds r1, 0x50\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - b _08166BDA\n\ + adds r1, 0x50\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + b _08166BDA\n\ _08166BB6:\n\ - ldr r0, =gMain\n\ - ldrh r1, [r0, 0x2E]\n\ - movs r0, 0x3\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08166BDA\n\ - bl sub_8166EDC\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _08166BDA\n\ - ldr r0, =gSpecialVar_ItemId\n\ - ldrb r0, [r0]\n\ - bl TryClearPokeblock\n\ - ldr r0, =sub_8166BEC\n\ - bl sub_816636C\n\ + ldr r0, =gMain\n\ + ldrh r1, [r0, 0x2E]\n\ + movs r0, 0x3\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08166BDA\n\ + bl sub_8166EDC\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _08166BDA\n\ + ldr r0, =gSpecialVar_ItemId\n\ + ldrb r0, [r0]\n\ + bl TryClearPokeblock\n\ + ldr r0, =sub_8166BEC\n\ + bl sub_816636C\n\ _08166BDA:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif -#ifdef NONMATCHING void sub_8166BEC(void) { - u8 i; - u8 var; + u8 i; + u8 var; switch (gUnknown_0203BC90->field_50) - { - case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - gUnknown_0203BC90->field_50++; - break; - case 1: - if (!gPaletteFade.active) - { - gUnknown_0203BC90->field_50 = 2; - } - break; - case 2: - gScanlineEffect.state = 3; - ScanlineEffect_InitHBlankDmaTransfer(); - gUnknown_0203BC90->field_50++; - break; - case 3: - SetMainCallback2(gUnknown_0203BC90->callback); - sub_81D354C(&gUnknown_0203BCAC->field_0[0x7B1C]); - for(i = 0; i < 7; i++) - { - DestroySprite(&gSprites[gUnknown_0203BCAC->field_0[0x7B06 + i]]); - } - - FreeSpriteTilesByTag(0); - FreeSpriteTilesByTag(1); - FreeSpriteTilesByTag(0); - FreeSpriteTilesByTag(1); - - for(i = 0; i < 2; i++) - { - DestroySprite(&gUnknown_0203BCAC->sprite7B44[i*4]); - } - - if(gUnknown_0203BCAC->field_0[0x7B10] != 255) - { - DestroySprite(&gSprites[gUnknown_0203BCAC->field_0[0x7B10]]); - return; - - } - - SetVBlankCallback(NULL); - Free(gUnknown_0203BCA0); - gUnknown_0203BCA0 = NULL; - Free(gUnknown_0203BCA4); - gUnknown_0203BCA0 = NULL; - Free(gUnknown_0203BCA8); - gUnknown_0203BCA8 = NULL; - Free(gUnknown_0203BCAC); - gUnknown_0203BCAC = NULL; - FreeAllWindowBuffers(); - break; + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gUnknown_0203BC90->field_50++; + break; + case 1: + if (!gPaletteFade.active) + gUnknown_0203BC90->field_50 = 2; + break; + case 2: + gScanlineEffect.state = 3; + ScanlineEffect_InitHBlankDmaTransfer(); + gUnknown_0203BC90->field_50++; + break; + case 3: + SetMainCallback2(gUnknown_0203BC90->callback); + sub_81D354C(gUnknown_0203BCAC->field_7B1C); + for (i = 0; i < 7; i++) + DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B06[i]]); + + FreeSpriteTilesByTag(0); + FreeSpriteTilesByTag(1); + FreeSpritePaletteByTag(0); + FreeSpritePaletteByTag(1); + + for (i = 0; i < 2; i++) + DestroySprite(gUnknown_0203BCAC->field_7B44[i]); + + if (gUnknown_0203BCAC->field_7B10 != 0xFF) + DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B10]); + + SetVBlankCallback(NULL); + FREE_AND_SET_NULL(gUnknown_0203BCA0); + FREE_AND_SET_NULL(gUnknown_0203BCA4); + FREE_AND_SET_NULL(gUnknown_0203BCA8); + FREE_AND_SET_NULL(gUnknown_0203BCAC); + FreeAllWindowBuffers(); + break; } } -#else -NAKED -void sub_8166BEC(void) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - sub sp, 0x4\n\ - ldr r4, =gUnknown_0203BC90\n\ - ldr r0, [r4]\n\ - adds r2, r0, 0\n\ - adds r2, 0x50\n\ - ldrb r1, [r2]\n\ - cmp r1, 0x1\n\ - beq _08166C28\n\ - cmp r1, 0x1\n\ - bgt _08166C0C\n\ - cmp r1, 0\n\ - beq _08166C16\n\ - b _08166D18\n\ - .pool\n\ -_08166C0C:\n\ - cmp r1, 0x2\n\ - beq _08166C40\n\ - cmp r1, 0x3\n\ - beq _08166C5C\n\ - b _08166D18\n\ -_08166C16:\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - str r1, [sp]\n\ - movs r1, 0\n\ - movs r2, 0\n\ - movs r3, 0x10\n\ - bl BeginNormalPaletteFade\n\ - b _08166C4A\n\ -_08166C28:\n\ - ldr r0, =gPaletteFade\n\ - ldrb r1, [r0, 0x7]\n\ - movs r0, 0x80\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08166D18\n\ - movs r0, 0x2\n\ - strb r0, [r2]\n\ - b _08166D18\n\ - .pool\n\ -_08166C40:\n\ - ldr r1, =gScanlineEffect\n\ - movs r0, 0x3\n\ - strb r0, [r1, 0x15]\n\ - bl ScanlineEffect_InitHBlankDmaTransfer\n\ -_08166C4A:\n\ - ldr r1, [r4]\n\ - adds r1, 0x50\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - b _08166D18\n\ - .pool\n\ -_08166C5C:\n\ - ldr r0, [r0, 0x4]\n\ - bl SetMainCallback2\n\ - ldr r0, =gUnknown_0203BCAC\n\ - ldr r0, [r0]\n\ - ldr r1, =0x00007b1c\n\ - adds r0, r1\n\ - bl sub_81D354C\n\ - movs r4, 0\n\ -_08166C70:\n\ - ldr r5, =gUnknown_0203BCAC\n\ - ldr r0, [r5]\n\ - ldr r2, =0x00007b06\n\ - adds r0, r2\n\ - adds r0, r4\n\ - ldrb r1, [r0]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - ldr r1, =gSprites\n\ - adds r0, r1\n\ - bl DestroySprite\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x6\n\ - bls _08166C70\n\ - movs r0, 0\n\ - bl FreeSpriteTilesByTag\n\ - movs r0, 0x1\n\ - bl FreeSpriteTilesByTag\n\ - movs r0, 0\n\ - bl FreeSpritePaletteByTag\n\ - movs r0, 0x1\n\ - bl FreeSpritePaletteByTag\n\ - movs r4, 0\n\ -_08166CAE:\n\ - ldr r0, [r5]\n\ - lsls r1, r4, 2\n\ - ldr r2, =0x00007b44\n\ - adds r0, r2\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - bl DestroySprite\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x1\n\ - bls _08166CAE\n\ - ldr r6, =gUnknown_0203BCAC\n\ - ldr r0, [r6]\n\ - ldr r2, =0x00007b10\n\ - adds r1, r0, r2\n\ - ldrb r0, [r1]\n\ - cmp r0, 0xFF\n\ - beq _08166CE6\n\ - adds r1, r0, 0\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - ldr r1, =gSprites\n\ - adds r0, r1\n\ - bl DestroySprite\n\ -_08166CE6:\n\ - movs r0, 0\n\ - bl SetVBlankCallback\n\ - ldr r4, =gUnknown_0203BCA0\n\ - ldr r0, [r4]\n\ - bl Free\n\ - movs r5, 0\n\ - str r5, [r4]\n\ - ldr r4, =gUnknown_0203BCA4\n\ - ldr r0, [r4]\n\ - bl Free\n\ - str r5, [r4]\n\ - ldr r4, =gUnknown_0203BCA8\n\ - ldr r0, [r4]\n\ - bl Free\n\ - str r5, [r4]\n\ - ldr r0, [r6]\n\ - bl Free\n\ - str r5, [r6]\n\ - bl FreeAllWindowBuffers\n\ -_08166D18:\n\ - add sp, 0x4\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif void sub_8166D44(void) { - u8 stringBuffer[0x40]; + u8 stringBuffer[0x40]; GetMonData(&gPlayerParty[sub_81672A4(gUnknown_0203BCAC->info.field_71)], MON_DATA_NICKNAME, stringBuffer); StringGetEnd10(stringBuffer); StringAppend(stringBuffer, gText_GetsAPokeBlockQuestion); - StringCopy(gStringVar4, stringBuffer); - FillWindowPixelBuffer(2, 17); - sub_8098858(2, 151, 14); - AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); - CreateYesNoMenu(sUsePokeblockYesNoWinTemplate, 151, 14, 0); + StringCopy(gStringVar4, stringBuffer); + FillWindowPixelBuffer(2, 17); + sub_8098858(2, 151, 14); + AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); + PutWindowTilemap(2); + CopyWindowToVram(2, 3); + CreateYesNoMenu(sUsePokeblockYesNoWinTemplate, 151, 14, 0); } s8 sub_8166DE4(void) @@ -972,44 +795,43 @@ s8 sub_8166DE4(void) s8 retval = Menu_ProcessInputNoWrapClearOnChoose(); switch(retval) { - case 0: - break; - case -1: - case 1: - PlaySE(SE_SELECT); - rbox_fill_rectangle(2); - ClearWindowTilemap(2); - break; - + case 0: + break; + case -1: + case 1: + PlaySE(SE_SELECT); + rbox_fill_rectangle(2); + ClearWindowTilemap(2); + break; } return retval; } void sub_8166E24(void) { - sub_8098858(2, 151, 14); - FillWindowPixelBuffer(2, 17); + sub_8098858(2, 151, 14); + FillWindowPixelBuffer(2, 17); for (gUnknown_0203BC90->field_53 = 0; gUnknown_0203BC90->field_53 < 5 && gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53] == 0; gUnknown_0203BC90->field_53++); - - if (gUnknown_0203BC90->field_53 < 5) - { - Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); - } - else - { - Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, 0); - } - - Pokeblock_MenuWindowTextPrint(gStringVar4); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); + + if (gUnknown_0203BC90->field_53 < 5) + { + Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); + } + else + { + Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, 0); + } + + Pokeblock_MenuWindowTextPrint(gStringVar4); + PutWindowTilemap(2); + CopyWindowToVram(2, 3); } bool8 sub_8166EDC(void) { - FillWindowPixelBuffer(2, 17); - + FillWindowPixelBuffer(2, 17); + while (1) { gUnknown_0203BC90->field_53++; @@ -1024,33 +846,33 @@ bool8 sub_8166EDC(void) return FALSE; } } - + Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); Pokeblock_MenuWindowTextPrint(gStringVar4); - CopyWindowToVram(2, 2); + CopyWindowToVram(2, 2); - return TRUE; + return TRUE; } void sub_8166F50(void) { - FillWindowPixelBuffer(2, 17); - sub_8098858(2, 151, 14); - AddTextPrinterParameterized(2, 1, gText_WontEatAnymore, 0, 1, 0, NULL); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); + FillWindowPixelBuffer(2, 17); + sub_8098858(2, 151, 14); + AddTextPrinterParameterized(2, 1, gText_WontEatAnymore, 0, 1, 0, NULL); + PutWindowTilemap(2); + CopyWindowToVram(2, 3); } void sub_8166F94(void) { - rbox_fill_rectangle(2); - ClearWindowTilemap(2); - CopyWindowToVram(2, 3); + rbox_fill_rectangle(2); + ClearWindowTilemap(2); + CopyWindowToVram(2, 3); } void Pokeblock_MenuWindowTextPrint(const u8 *message) { - AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); + AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); } #ifdef NONMATCHING @@ -1058,59 +880,59 @@ void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2) { if (a2 != 0) { - if(a2 > 0) - { - statID = 0; - } + if(a2 > 0) + { + statID = 0; + } - StringCopy(dest, sContestStatNames[statID]); + StringCopy(dest, sContestStatNames[statID]); StringAppend(dest, gText_WasEnhanced); } - else - { - StringCopy(dest, gText_NothingChanged); - } + else + { + StringCopy(dest, gText_NothingChanged); + } } #else NAKED void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2) { - asm(".syntax unified\n\ + asm(".syntax unified\n\ push {r4,lr}\n\ - adds r4, r0, 0\n\ - lsls r1, 24\n\ - lsrs r3, r1, 24\n\ - lsls r2, 16\n\ - lsrs r0, r2, 16\n\ - asrs r2, 16\n\ - cmp r2, 0\n\ - beq _08167010\n\ - cmp r2, 0\n\ - ble _08166FEC\n\ - movs r0, 0\n\ + adds r4, r0, 0\n\ + lsls r1, 24\n\ + lsrs r3, r1, 24\n\ + lsls r2, 16\n\ + lsrs r0, r2, 16\n\ + asrs r2, 16\n\ + cmp r2, 0\n\ + beq _08167010\n\ + cmp r2, 0\n\ + ble _08166FEC\n\ + movs r0, 0\n\ _08166FEC:\n\ - lsls r0, 16\n\ - ldr r1, =sContestStatNames\n\ - lsls r0, r3, 2\n\ - adds r0, r1\n\ - ldr r1, [r0]\n\ - adds r0, r4, 0\n\ - bl StringCopy\n\ - ldr r1, =gText_WasEnhanced\n\ - adds r0, r4, 0\n\ - bl StringAppend\n\ - b _08167018\n\ - .pool\n\ + lsls r0, 16\n\ + ldr r1, =sContestStatNames\n\ + lsls r0, r3, 2\n\ + adds r0, r1\n\ + ldr r1, [r0]\n\ + adds r0, r4, 0\n\ + bl StringCopy\n\ + ldr r1, =gText_WasEnhanced\n\ + adds r0, r4, 0\n\ + bl StringAppend\n\ + b _08167018\n\ + .pool\n\ _08167010:\n\ - ldr r1, =gText_NothingChanged\n\ - adds r0, r4, 0\n\ - bl StringCopy\n\ + ldr r1, =gText_NothingChanged\n\ + adds r0, r4, 0\n\ + bl StringCopy\n\ _08167018:\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif @@ -1200,8 +1022,8 @@ void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *pokemon) bool8 sub_8167268(void) { - u8 *mon; - mon = (u8 *) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_71 * 4]; + u8 *mon; + mon = (u8 *) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_71 * 4]; if (sub_81D2C68(*(mon + 864 + 0x7C58), *(mon + 865 + 0x7C58), MON_DATA_SHEEN, 0) == 255) return TRUE; return FALSE; @@ -1281,838 +1103,838 @@ void sub_81673DC(struct Sprite *sprite) #ifdef NONMATCHING void sub_8167420(void) { - u16 i; - u16 ct; - + u16 i; + u16 ct; + for (i=0, ct=0; i < CalculatePlayerPartyCount(); i++) { if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { - *(&gUnknown_0203BCAC->field_7FB8 + ct * 4) = 14; - *(&gUnknown_0203BCAC->field_7FB9 + ct * 4)= i; - *(&gUnknown_0203BCAC->field_7FBA + ct * 2) = 0; - ct++; + *(&gUnknown_0203BCAC->field_7FB8 + ct * 4) = 14; + *(&gUnknown_0203BCAC->field_7FB9 + ct * 4)= i; + *(&gUnknown_0203BCAC->field_7FBA + ct * 2) = 0; + ct++; } } - gUnknown_0203BCAC->info.field_71 = 0; - gUnknown_0203BCAC->info.field_70 = ct + 1; - sub_81674BC(); + gUnknown_0203BCAC->info.field_71 = 0; + gUnknown_0203BCAC->info.field_70 = ct + 1; + sub_81674BC(); } #else NAKED void sub_8167420(void) { - asm(".syntax unified\n\ + asm(".syntax unified\n\ push {r4-r6,lr}\n\ - movs r4, 0\n\ - movs r5, 0\n\ - ldr r6, =gUnknown_0203BCAC\n\ - b _08167472\n\ - .pool\n\ + movs r4, 0\n\ + movs r5, 0\n\ + ldr r6, =gUnknown_0203BCAC\n\ + b _08167472\n\ + .pool\n\ _08167430:\n\ - movs r0, 0x64\n\ - muls r0, r4\n\ - ldr r1, =gPlayerParty\n\ - adds r0, r1\n\ - movs r1, 0x2D\n\ - bl GetMonData\n\ - adds r3, r0, 0\n\ - cmp r3, 0\n\ - bne _0816746C\n\ - ldr r1, [r6]\n\ - lsls r2, r5, 2\n\ - adds r1, r2\n\ - ldr r0, =0x00007fb8\n\ - adds r1, r0\n\ - movs r0, 0xE\n\ - strb r0, [r1]\n\ - ldr r0, [r6]\n\ - adds r0, r2\n\ - ldr r1, =0x00007fb9\n\ - adds r0, r1\n\ - strb r4, [r0]\n\ - ldr r0, [r6]\n\ - adds r0, r2\n\ - ldr r2, =0x00007fba\n\ - adds r0, r2\n\ - strh r3, [r0]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ + movs r0, 0x64\n\ + muls r0, r4\n\ + ldr r1, =gPlayerParty\n\ + adds r0, r1\n\ + movs r1, 0x2D\n\ + bl GetMonData\n\ + adds r3, r0, 0\n\ + cmp r3, 0\n\ + bne _0816746C\n\ + ldr r1, [r6]\n\ + lsls r2, r5, 2\n\ + adds r1, r2\n\ + ldr r0, =0x00007fb8\n\ + adds r1, r0\n\ + movs r0, 0xE\n\ + strb r0, [r1]\n\ + ldr r0, [r6]\n\ + adds r0, r2\n\ + ldr r1, =0x00007fb9\n\ + adds r0, r1\n\ + strb r4, [r0]\n\ + ldr r0, [r6]\n\ + adds r0, r2\n\ + ldr r2, =0x00007fba\n\ + adds r0, r2\n\ + strh r3, [r0]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ _0816746C:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ _08167472:\n\ - bl CalculatePlayerPartyCount\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r4, r0\n\ - bcc _08167430\n\ - ldr r2, =gUnknown_0203BCAC\n\ - ldr r0, [r2]\n\ - ldr r1, =0x00008041\n\ - adds r0, r1\n\ - movs r1, 0\n\ - strb r1, [r0]\n\ - ldr r0, [r2]\n\ - adds r1, r5, 0x1\n\ - ldr r2, =0x00008040\n\ - adds r0, r2\n\ - strb r1, [r0]\n\ - bl sub_81674BC\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + bl CalculatePlayerPartyCount\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r4, r0\n\ + bcc _08167430\n\ + ldr r2, =gUnknown_0203BCAC\n\ + ldr r0, [r2]\n\ + ldr r1, =0x00008041\n\ + adds r0, r1\n\ + movs r1, 0\n\ + strb r1, [r0]\n\ + ldr r0, [r2]\n\ + adds r1, r5, 0x1\n\ + ldr r2, =0x00008040\n\ + adds r0, r2\n\ + strb r1, [r0]\n\ + bl sub_81674BC\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif #ifdef NONMATCHING void sub_81674BC(void) { - s16 var; - s16 var2; - - sub_816753C(gUnknown_0203BCAC->info.field_71, 0); - gUnknown_0203BCAC->field_7FB3 = 0; - gUnknown_0203BCAC->field_7FB4 = 1; - gUnknown_0203BCAC->field_7FB5 = 2; - - var = gUnknown_0203BCAC->info.field_71 + 1; - - if(var >= gUnknown_0203BCAC->info.field_70) - { - var = 0; - - } - - var2 = var - 1; - - if(var2 < 0) - { - var2 = gUnknown_0203BCAC->info.field_70 - 1; - } - - sub_816753C(var, 1); - sub_816753C(var2, 2); + s16 var; + s16 var2; + + sub_816753C(gUnknown_0203BCAC->info.field_71, 0); + gUnknown_0203BCAC->field_7FB3 = 0; + gUnknown_0203BCAC->field_7FB4 = 1; + gUnknown_0203BCAC->field_7FB5 = 2; + + var = gUnknown_0203BCAC->info.field_71 + 1; + + if(var >= gUnknown_0203BCAC->info.field_70) + { + var = 0; + + } + + var2 = var - 1; + + if(var2 < 0) + { + var2 = gUnknown_0203BCAC->info.field_70 - 1; + } + + sub_816753C(var, 1); + sub_816753C(var2, 2); } #else NAKED void sub_81674BC(void) { - asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - ldr r4, =gUnknown_0203BCAC\n\ - ldr r0, [r4]\n\ - ldr r5, =0x00008041\n\ - adds r0, r5\n\ - ldrb r0, [r0]\n\ - movs r1, 0\n\ - bl sub_816753C\n\ - ldr r0, [r4]\n\ - ldr r1, =0x00007fb3\n\ - adds r0, r1\n\ - movs r1, 0\n\ - strb r1, [r0]\n\ - ldr r0, [r4]\n\ - ldr r2, =0x00007fb4\n\ - adds r0, r2\n\ - movs r1, 0x1\n\ - strb r1, [r0]\n\ - ldr r0, [r4]\n\ - ldr r1, =0x00007fb5\n\ - adds r0, r1\n\ - movs r1, 0x2\n\ - strb r1, [r0]\n\ - ldr r0, [r4]\n\ - adds r5, r0, r5\n\ - ldrb r3, [r5]\n\ - adds r1, r3, 0x1\n\ - adds r2, 0x8C\n\ - adds r0, r2\n\ - ldrb r2, [r0]\n\ - cmp r1, r2\n\ - blt _08167500\n\ - movs r1, 0\n\ + asm(".syntax unified\n\ + push {r4,r5,lr}\n\ + ldr r4, =gUnknown_0203BCAC\n\ + ldr r0, [r4]\n\ + ldr r5, =0x00008041\n\ + adds r0, r5\n\ + ldrb r0, [r0]\n\ + movs r1, 0\n\ + bl sub_816753C\n\ + ldr r0, [r4]\n\ + ldr r1, =0x00007fb3\n\ + adds r0, r1\n\ + movs r1, 0\n\ + strb r1, [r0]\n\ + ldr r0, [r4]\n\ + ldr r2, =0x00007fb4\n\ + adds r0, r2\n\ + movs r1, 0x1\n\ + strb r1, [r0]\n\ + ldr r0, [r4]\n\ + ldr r1, =0x00007fb5\n\ + adds r0, r1\n\ + movs r1, 0x2\n\ + strb r1, [r0]\n\ + ldr r0, [r4]\n\ + adds r5, r0, r5\n\ + ldrb r3, [r5]\n\ + adds r1, r3, 0x1\n\ + adds r2, 0x8C\n\ + adds r0, r2\n\ + ldrb r2, [r0]\n\ + cmp r1, r2\n\ + blt _08167500\n\ + movs r1, 0\n\ _08167500:\n\ - subs r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r0, 0\n\ - bge _08167510\n\ - subs r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ + subs r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r0, 0\n\ + bge _08167510\n\ + subs r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ _08167510:\n\ - adds r0, r1, 0\n\ - movs r1, 0x1\n\ - bl sub_816753C\n\ - lsls r0, r4, 16\n\ - asrs r0, 16\n\ - movs r1, 0x2\n\ - bl sub_816753C\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + adds r0, r1, 0\n\ + movs r1, 0x1\n\ + bl sub_816753C\n\ + lsls r0, r4, 16\n\ + asrs r0, 16\n\ + movs r1, 0x2\n\ + bl sub_816753C\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif #ifdef NONMATCHING void sub_816753C(s16 a1, u8 a2) { - u8 *v3; - int v5; - int v6; - - v3 = &gUnknown_0203BCAC->field_0[a1 << 16 >> 14]; - v5 = *(0x7FB8 + v3); - v6 = *(0x7FB9 + v3); - - sub_81D2ED4(gUnknown_0203BCAC->field_0[0x7B4D + 24 * a2], gUnknown_0203BCAC->field_0[0x7B95 + 64 * a2], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); - sub_81D2F78(gUnknown_0203BCAC->field_7C58[0], gUnknown_0203BCAC->field_0[0x7FB0], v5, v6, a1, a2, gUnknown_0203BCAC->info.field_70, 0); - sub_81D3094(gUnknown_0203BCAC->field_0[(a2 << 13) + 0x304], gUnknown_0203BCAC->field_0[(a2 << 7) + 4], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); - //gUnknown_0203BCAC->field_0[0x7B4D + a1 * 40], gUnknown_0203BCAC->field_7FB8, gUnknown_0203BCAC->field_7FB9, gUnknown_203BCAC->field_0[0], gUnknown_203BCAC->info.field_70, 0) + u8 *v3; + int v5; + int v6; + + v3 = &gUnknown_0203BCAC->field_0[a1 << 16 >> 14]; + v5 = *(0x7FB8 + v3); + v6 = *(0x7FB9 + v3); + + sub_81D2ED4(gUnknown_0203BCAC->field_0[0x7B4D + 24 * a2], gUnknown_0203BCAC->field_0[0x7B95 + 64 * a2], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); + sub_81D2F78(gUnknown_0203BCAC->field_7C58[0], gUnknown_0203BCAC->field_0[0x7FB0], v5, v6, a1, a2, gUnknown_0203BCAC->info.field_70, 0); + sub_81D3094(gUnknown_0203BCAC->field_0[(a2 << 13) + 0x304], gUnknown_0203BCAC->field_0[(a2 << 7) + 4], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); + //gUnknown_0203BCAC->field_0[0x7B4D + a1 * 40], gUnknown_0203BCAC->field_7FB8, gUnknown_0203BCAC->field_7FB9, gUnknown_203BCAC->field_0[0], gUnknown_203BCAC->info.field_70, 0) } #else NAKED void sub_816753C(s16 a1, u8 a2) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x10\n\ - adds r5, r0, 0\n\ - adds r4, r1, 0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - ldr r0, =gUnknown_0203BCAC\n\ - mov r9, r0\n\ - ldr r1, [r0]\n\ - lsls r5, 16\n\ - asrs r0, r5, 14\n\ - adds r0, r1, r0\n\ - ldr r3, =0x00007fb8\n\ - adds r2, r0, r3\n\ - ldrb r7, [r2]\n\ - ldr r2, =0x00007fb9\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - mov r10, r0\n\ - adds r3, 0x88\n\ - adds r0, r1, r3\n\ - ldrb r6, [r0]\n\ - movs r0, 0\n\ - mov r8, r0\n\ - lsls r0, r4, 1\n\ - adds r0, r4\n\ - lsls r0, 3\n\ - ldr r2, =0x00007b4d\n\ - adds r0, r2\n\ - adds r0, r1, r0\n\ - lsls r2, r4, 6\n\ - ldr r3, =0x00007b95\n\ - adds r2, r3\n\ - adds r1, r2\n\ - lsrs r5, 16\n\ - str r5, [sp]\n\ - str r6, [sp, 0x4]\n\ - mov r2, r8\n\ - str r2, [sp, 0x8]\n\ - adds r2, r7, 0\n\ - mov r3, r10\n\ - bl sub_81D2ED4\n\ - mov r3, r9\n\ - ldr r1, [r3]\n\ - ldr r2, =0x00007c58\n\ - adds r0, r1, r2\n\ - ldr r3, =0x00007fb0\n\ - adds r1, r3\n\ - str r5, [sp]\n\ - str r4, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - mov r2, r8\n\ - str r2, [sp, 0xC]\n\ - adds r2, r7, 0\n\ - mov r3, r10\n\ - bl sub_81D2F78\n\ - lsls r0, r4, 13\n\ - movs r1, 0xC1\n\ - lsls r1, 2\n\ - adds r0, r1\n\ - mov r3, r9\n\ - ldr r1, [r3]\n\ - adds r0, r1, r0\n\ - lsls r4, 7\n\ - adds r4, 0x4\n\ - adds r1, r4\n\ - str r5, [sp]\n\ - str r6, [sp, 0x4]\n\ - mov r2, r8\n\ - str r2, [sp, 0x8]\n\ - adds r2, r7, 0\n\ - mov r3, r10\n\ - bl sub_81D3094\n\ - add sp, 0x10\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x10\n\ + adds r5, r0, 0\n\ + adds r4, r1, 0\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + ldr r0, =gUnknown_0203BCAC\n\ + mov r9, r0\n\ + ldr r1, [r0]\n\ + lsls r5, 16\n\ + asrs r0, r5, 14\n\ + adds r0, r1, r0\n\ + ldr r3, =0x00007fb8\n\ + adds r2, r0, r3\n\ + ldrb r7, [r2]\n\ + ldr r2, =0x00007fb9\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + mov r10, r0\n\ + adds r3, 0x88\n\ + adds r0, r1, r3\n\ + ldrb r6, [r0]\n\ + movs r0, 0\n\ + mov r8, r0\n\ + lsls r0, r4, 1\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + ldr r2, =0x00007b4d\n\ + adds r0, r2\n\ + adds r0, r1, r0\n\ + lsls r2, r4, 6\n\ + ldr r3, =0x00007b95\n\ + adds r2, r3\n\ + adds r1, r2\n\ + lsrs r5, 16\n\ + str r5, [sp]\n\ + str r6, [sp, 0x4]\n\ + mov r2, r8\n\ + str r2, [sp, 0x8]\n\ + adds r2, r7, 0\n\ + mov r3, r10\n\ + bl sub_81D2ED4\n\ + mov r3, r9\n\ + ldr r1, [r3]\n\ + ldr r2, =0x00007c58\n\ + adds r0, r1, r2\n\ + ldr r3, =0x00007fb0\n\ + adds r1, r3\n\ + str r5, [sp]\n\ + str r4, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + mov r2, r8\n\ + str r2, [sp, 0xC]\n\ + adds r2, r7, 0\n\ + mov r3, r10\n\ + bl sub_81D2F78\n\ + lsls r0, r4, 13\n\ + movs r1, 0xC1\n\ + lsls r1, 2\n\ + adds r0, r1\n\ + mov r3, r9\n\ + ldr r1, [r3]\n\ + adds r0, r1, r0\n\ + lsls r4, 7\n\ + adds r4, 0x4\n\ + adds r1, r4\n\ + str r5, [sp]\n\ + str r6, [sp, 0x4]\n\ + mov r2, r8\n\ + str r2, [sp, 0x8]\n\ + adds r2, r7, 0\n\ + mov r3, r10\n\ + bl sub_81D3094\n\ + add sp, 0x10\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif #ifdef NONMATCHING void sub_8167608(u8 arg0) { - u8 v4; - u8 *v5; - u8 *v6; - u32 v7; - struct SpritePalette array[5]; - if(gUnknown_0203BCAC->field_0[0x7B10] == 255) - { - sub_81D31D0(&array[3], &array[0], &array[4]); - array[1] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]); - array[2] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 7) + 4]); - gUnknown_0203BCAC->field_0[0x7B12] = LoadSpritePalette(&array[3]); - gUnknown_0203BCAC->field_0[0x7B14] = LoadSpritePalette(&array[4]); - v4 = CreateSprite(array[0], 38, 104, 0); - gUnknown_0203BCAC->field_0[0x7B10] = v4; - if(v4 == 64) - { - FreeSpriteTilesByTag(100); - FreeSpritePaletteByTag(100); - gUnknown_0203BCAC->field_0[0x7B10] = 255; - } - else - { - gUnknown_0203BCAC->field_0[0x7B10] = v4; - v5 = &gUnknown_0203BCAC->field_0[0]; - v6 = &gUnknown_0203BCAC->field_0[0x7B10]; - gSprites[v6].callback = sub_8168168; - gSprites[v6].pos2.y -= 32; - *(v5+0x7B18) = 32 * *(v5+0x7B14) + 0x06010000; - *(v5+0x7B12) = 16 * *(v5+0x7B12) + 0x100; - } - } - else - { - v7 = gUnknown_0203BCAC->field_0[0x7B18]; - REG_ADDR_DMA3SAD = gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]; - REG_ADDR_DMA3DAD = v7; - REG_ADDR_DMA3CNT = 0x80000400; - LoadPalette(gUnknown_0203BCAC->field_0[arg0 << 7) + 4), gUnknown_0203BCAC->field_0[0x7B12], 32); - } + u8 v4; + u8 *v5; + u8 *v6; + u32 v7; + struct SpritePalette array[5]; + if(gUnknown_0203BCAC->field_0[0x7B10] == 255) + { + sub_81D31D0(&array[3], &array[0], &array[4]); + array[1] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]); + array[2] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 7) + 4]); + gUnknown_0203BCAC->field_0[0x7B12] = LoadSpritePalette(&array[3]); + gUnknown_0203BCAC->field_0[0x7B14] = LoadSpritePalette(&array[4]); + v4 = CreateSprite(array[0], 38, 104, 0); + gUnknown_0203BCAC->field_0[0x7B10] = v4; + if(v4 == 64) + { + FreeSpriteTilesByTag(100); + FreeSpritePaletteByTag(100); + gUnknown_0203BCAC->field_0[0x7B10] = 255; + } + else + { + gUnknown_0203BCAC->field_0[0x7B10] = v4; + v5 = &gUnknown_0203BCAC->field_0[0]; + v6 = &gUnknown_0203BCAC->field_0[0x7B10]; + gSprites[v6].callback = sub_8168168; + gSprites[v6].pos2.y -= 32; + *(v5+0x7B18) = 32 * *(v5+0x7B14) + 0x06010000; + *(v5+0x7B12) = 16 * *(v5+0x7B12) + 0x100; + } + } + else + { + v7 = gUnknown_0203BCAC->field_0[0x7B18]; + REG_ADDR_DMA3SAD = gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]; + REG_ADDR_DMA3DAD = v7; + REG_ADDR_DMA3CNT = 0x80000400; + LoadPalette(gUnknown_0203BCAC->field_0[arg0 << 7) + 4), gUnknown_0203BCAC->field_0[0x7B12], 32); + } } #else NAKED void sub_8167608(u8 arg0) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - sub sp, 0x28\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - ldr r1, =gUnknown_0203BCAC\n\ - ldr r3, [r1]\n\ - ldr r0, =0x00007b10\n\ - mov r8, r0\n\ - adds r0, r3, r0\n\ - ldrb r0, [r0]\n\ - adds r7, r1, 0\n\ - cmp r0, 0xFF\n\ - bne _08167714\n\ - add r5, sp, 0x18\n\ - add r4, sp, 0x20\n\ - adds r0, r5, 0\n\ - mov r1, sp\n\ - adds r2, r4, 0\n\ - bl sub_81D31D0\n\ - lsls r0, r6, 13\n\ - movs r1, 0xC1\n\ - lsls r1, 2\n\ - adds r0, r1\n\ - ldr r1, [r7]\n\ - adds r0, r1, r0\n\ - str r0, [sp, 0x18]\n\ - lsls r0, r6, 7\n\ - adds r0, 0x4\n\ - adds r1, r0\n\ - str r1, [sp, 0x20]\n\ - adds r0, r4, 0\n\ - bl LoadSpritePalette\n\ - ldr r1, [r7]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r2, =0x00007b12\n\ - adds r1, r2\n\ - strh r0, [r1]\n\ - adds r0, r5, 0\n\ - bl LoadSpriteSheet\n\ - ldr r1, [r7]\n\ - ldr r3, =0x00007b14\n\ - adds r1, r3\n\ - strh r0, [r1]\n\ - mov r0, sp\n\ - movs r1, 0x26\n\ - movs r2, 0x68\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - ldr r0, [r7]\n\ - ldr r2, =0x00007b10\n\ - adds r0, r2\n\ - strb r1, [r0]\n\ - cmp r1, 0x40\n\ - bne _081676AC\n\ - movs r0, 0x64\n\ - bl FreeSpriteTilesByTag\n\ - movs r0, 0x64\n\ - bl FreeSpritePaletteByTag\n\ - ldr r0, [r7]\n\ - add r0, r8\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ - b _08167742\n\ - .pool\n\ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + sub sp, 0x28\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + ldr r1, =gUnknown_0203BCAC\n\ + ldr r3, [r1]\n\ + ldr r0, =0x00007b10\n\ + mov r8, r0\n\ + adds r0, r3, r0\n\ + ldrb r0, [r0]\n\ + adds r7, r1, 0\n\ + cmp r0, 0xFF\n\ + bne _08167714\n\ + add r5, sp, 0x18\n\ + add r4, sp, 0x20\n\ + adds r0, r5, 0\n\ + mov r1, sp\n\ + adds r2, r4, 0\n\ + bl sub_81D31D0\n\ + lsls r0, r6, 13\n\ + movs r1, 0xC1\n\ + lsls r1, 2\n\ + adds r0, r1\n\ + ldr r1, [r7]\n\ + adds r0, r1, r0\n\ + str r0, [sp, 0x18]\n\ + lsls r0, r6, 7\n\ + adds r0, 0x4\n\ + adds r1, r0\n\ + str r1, [sp, 0x20]\n\ + adds r0, r4, 0\n\ + bl LoadSpritePalette\n\ + ldr r1, [r7]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r2, =0x00007b12\n\ + adds r1, r2\n\ + strh r0, [r1]\n\ + adds r0, r5, 0\n\ + bl LoadSpriteSheet\n\ + ldr r1, [r7]\n\ + ldr r3, =0x00007b14\n\ + adds r1, r3\n\ + strh r0, [r1]\n\ + mov r0, sp\n\ + movs r1, 0x26\n\ + movs r2, 0x68\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + ldr r0, [r7]\n\ + ldr r2, =0x00007b10\n\ + adds r0, r2\n\ + strb r1, [r0]\n\ + cmp r1, 0x40\n\ + bne _081676AC\n\ + movs r0, 0x64\n\ + bl FreeSpriteTilesByTag\n\ + movs r0, 0x64\n\ + bl FreeSpritePaletteByTag\n\ + ldr r0, [r7]\n\ + add r0, r8\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ + b _08167742\n\ + .pool\n\ _081676AC:\n\ - ldr r0, [r7]\n\ - add r0, r8\n\ - strb r1, [r0]\n\ - ldr r4, =gSprites\n\ - ldr r2, [r7]\n\ - mov r0, r8\n\ - adds r3, r2, r0\n\ - ldrb r1, [r3]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r1, r4, 0\n\ - adds r1, 0x1C\n\ - adds r0, r1\n\ - ldr r1, =sub_8168168\n\ - str r1, [r0]\n\ - ldrb r1, [r3]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r4\n\ - ldrh r1, [r0, 0x26]\n\ - subs r1, 0x22\n\ - strh r1, [r0, 0x26]\n\ - ldr r3, =0x00007b18\n\ - adds r1, r2, r3\n\ - subs r3, 0x4\n\ - adds r0, r2, r3\n\ - ldrh r0, [r0]\n\ - lsls r0, 5\n\ - ldr r3, =0x06010000\n\ - adds r0, r3\n\ - str r0, [r1]\n\ - ldr r0, =0x00007b12\n\ - adds r2, r0\n\ - ldrh r0, [r2]\n\ - lsls r0, 4\n\ - movs r1, 0x80\n\ - lsls r1, 1\n\ - adds r0, r1\n\ - strh r0, [r2]\n\ - b _08167742\n\ - .pool\n\ + ldr r0, [r7]\n\ + add r0, r8\n\ + strb r1, [r0]\n\ + ldr r4, =gSprites\n\ + ldr r2, [r7]\n\ + mov r0, r8\n\ + adds r3, r2, r0\n\ + ldrb r1, [r3]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r1, r4, 0\n\ + adds r1, 0x1C\n\ + adds r0, r1\n\ + ldr r1, =sub_8168168\n\ + str r1, [r0]\n\ + ldrb r1, [r3]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r4\n\ + ldrh r1, [r0, 0x26]\n\ + subs r1, 0x22\n\ + strh r1, [r0, 0x26]\n\ + ldr r3, =0x00007b18\n\ + adds r1, r2, r3\n\ + subs r3, 0x4\n\ + adds r0, r2, r3\n\ + ldrh r0, [r0]\n\ + lsls r0, 5\n\ + ldr r3, =0x06010000\n\ + adds r0, r3\n\ + str r0, [r1]\n\ + ldr r0, =0x00007b12\n\ + adds r2, r0\n\ + ldrh r0, [r2]\n\ + lsls r0, 4\n\ + movs r1, 0x80\n\ + lsls r1, 1\n\ + adds r0, r1\n\ + strh r0, [r2]\n\ + b _08167742\n\ + .pool\n\ _08167714:\n\ - lsls r1, r6, 13\n\ - movs r0, 0xC1\n\ - lsls r0, 2\n\ - adds r1, r0\n\ - adds r1, r3, r1\n\ - ldr r2, =0x00007b18\n\ - adds r0, r3, r2\n\ - ldr r2, [r0]\n\ - ldr r0, =0x040000d4\n\ - str r1, [r0]\n\ - str r2, [r0, 0x4]\n\ - ldr r1, =0x80000400\n\ - str r1, [r0, 0x8]\n\ - ldr r0, [r0, 0x8]\n\ - lsls r0, r6, 7\n\ - adds r0, 0x4\n\ - adds r0, r3, r0\n\ - ldr r2, =0x00007b12\n\ - adds r1, r3, r2\n\ - ldrh r1, [r1]\n\ - movs r2, 0x20\n\ - bl LoadPalette\n\ + lsls r1, r6, 13\n\ + movs r0, 0xC1\n\ + lsls r0, 2\n\ + adds r1, r0\n\ + adds r1, r3, r1\n\ + ldr r2, =0x00007b18\n\ + adds r0, r3, r2\n\ + ldr r2, [r0]\n\ + ldr r0, =0x040000d4\n\ + str r1, [r0]\n\ + str r2, [r0, 0x4]\n\ + ldr r1, =0x80000400\n\ + str r1, [r0, 0x8]\n\ + ldr r0, [r0, 0x8]\n\ + lsls r0, r6, 7\n\ + adds r0, 0x4\n\ + adds r0, r3, r0\n\ + ldr r2, =0x00007b12\n\ + adds r1, r3, r2\n\ + ldrh r1, [r1]\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ _08167742:\n\ - add sp, 0x28\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + add sp, 0x28\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif #ifdef NONMATCHING void sub_8167760(void) { - s32 i; - u8 v1; - u8 v2; - u8 v3; - u32 v4; - struct SpriteSheet *v6; - struct SpriteTemplate *v7; - void (*funcCB) (void); - struct SpritePalette *v9; - struct SpriteSheet *v10; - struct SpritePalette *v11; - - sub_81D321C(v6, v7, v9); - LoadSpriteSheets(v6); - LoadSpritePalettes(v9); - for(i = 0; i < gUnknown_0203BCAC->info.field_70 - 1; i++) - { - v1 = CreateSprite(v7, 226, (0x140000 * i + 0x80000) >> 16, 0); - if(v1 == 64) - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; - } - else - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = v1; - gSprites[v1].data[0] = i; - gSprites[v1].callback = (SpriteCallback) sub_8168180; - } - } - for(v7->tileTag = 103; i <= 5; i++) - { - v2 = CreateSprite(v7, 230, (0x140000 * i + 0x80000) >> 16, 0); - if(v2 == 64 ) - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; - } - else - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = v2; - gSprites[v2].oam.tileNum &= 0x3F; - } - } - v7->tileTag = 102; - funcCB = sub_81681B4; - v3 = CreateSprite(v7, 222, (0x140000 * i + 0x80000) >> 16, 0); - if(v3 == 64) - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; - } - else - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = v3; - v4 = 68 * v3 + 0x2020630; - (v4 + 1) = gSprites[v2].oam.affineMode & (0x3F | 0x40); - (v4 + 3) = (v4 + 3) & (0x3F | 0x80); - } - sub_81D32B0(v10, v11); - LoadSpriteSheet(v10); - LoadSpritePalette(v11); + s32 i; + u8 v1; + u8 v2; + u8 v3; + u32 v4; + struct SpriteSheet *v6; + struct SpriteTemplate *v7; + void (*funcCB) (void); + struct SpritePalette *v9; + struct SpriteSheet *v10; + struct SpritePalette *v11; + + sub_81D321C(v6, v7, v9); + LoadSpriteSheets(v6); + LoadSpritePalettes(v9); + for(i = 0; i < gUnknown_0203BCAC->info.field_70 - 1; i++) + { + v1 = CreateSprite(v7, 226, (0x140000 * i + 0x80000) >> 16, 0); + if(v1 == 64) + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; + } + else + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = v1; + gSprites[v1].data[0] = i; + gSprites[v1].callback = (SpriteCallback) sub_8168180; + } + } + for(v7->tileTag = 103; i <= 5; i++) + { + v2 = CreateSprite(v7, 230, (0x140000 * i + 0x80000) >> 16, 0); + if(v2 == 64 ) + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; + } + else + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = v2; + gSprites[v2].oam.tileNum &= 0x3F; + } + } + v7->tileTag = 102; + funcCB = sub_81681B4; + v3 = CreateSprite(v7, 222, (0x140000 * i + 0x80000) >> 16, 0); + if(v3 == 64) + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; + } + else + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = v3; + v4 = 68 * v3 + 0x2020630; + (v4 + 1) = gSprites[v2].oam.affineMode & (0x3F | 0x40); + (v4 + 3) = (v4 + 3) & (0x3F | 0x80); + } + sub_81D32B0(v10, v11); + LoadSpriteSheet(v10); + LoadSpritePalette(v11); } #else NAKED void sub_8167760(void) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x60\n\ - add r5, sp, 0x20\n\ - add r4, sp, 0x38\n\ - mov r0, sp\n\ - adds r1, r5, 0\n\ - adds r2, r4, 0\n\ - bl sub_81D321C\n\ - mov r0, sp\n\ - bl LoadSpriteSheets\n\ - adds r0, r4, 0\n\ - bl LoadSpritePalettes\n\ - movs r4, 0\n\ - ldr r1, =gUnknown_0203BCAC\n\ - ldr r0, [r1]\n\ - ldr r2, =0x00008040\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - subs r0, 0x1\n\ - adds r6, r5, 0\n\ - add r2, sp, 0x50\n\ - mov r9, r2\n\ - add r2, sp, 0x58\n\ - mov r10, r2\n\ - cmp r4, r0\n\ - bge _0816781C\n\ - adds r5, r1, 0\n\ - ldr r7, =gSprites\n\ - movs r0, 0x1C\n\ - adds r0, r7\n\ - mov r8, r0\n\ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x60\n\ + add r5, sp, 0x20\n\ + add r4, sp, 0x38\n\ + mov r0, sp\n\ + adds r1, r5, 0\n\ + adds r2, r4, 0\n\ + bl sub_81D321C\n\ + mov r0, sp\n\ + bl LoadSpriteSheets\n\ + adds r0, r4, 0\n\ + bl LoadSpritePalettes\n\ + movs r4, 0\n\ + ldr r1, =gUnknown_0203BCAC\n\ + ldr r0, [r1]\n\ + ldr r2, =0x00008040\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + adds r6, r5, 0\n\ + add r2, sp, 0x50\n\ + mov r9, r2\n\ + add r2, sp, 0x58\n\ + mov r10, r2\n\ + cmp r4, r0\n\ + bge _0816781C\n\ + adds r5, r1, 0\n\ + ldr r7, =gSprites\n\ + movs r0, 0x1C\n\ + adds r0, r7\n\ + mov r8, r0\n\ _081677AC:\n\ - lsls r2, r4, 2\n\ - adds r2, r4\n\ - lsls r2, 18\n\ - movs r1, 0x80\n\ - lsls r1, 12\n\ - adds r2, r1\n\ - asrs r2, 16\n\ - adds r0, r6, 0\n\ - movs r1, 0xE2\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0x40\n\ - beq _081677FC\n\ - ldr r0, [r5]\n\ - ldr r2, =0x00007b06\n\ - adds r0, r2\n\ - adds r0, r4\n\ - strb r3, [r0]\n\ - lsls r0, r3, 4\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r1, r0, r7\n\ - strh r4, [r1, 0x2E]\n\ - add r0, r8\n\ - ldr r1, =sub_8168180\n\ - str r1, [r0]\n\ - b _08167808\n\ - .pool\n\ + lsls r2, r4, 2\n\ + adds r2, r4\n\ + lsls r2, 18\n\ + movs r1, 0x80\n\ + lsls r1, 12\n\ + adds r2, r1\n\ + asrs r2, 16\n\ + adds r0, r6, 0\n\ + movs r1, 0xE2\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0x40\n\ + beq _081677FC\n\ + ldr r0, [r5]\n\ + ldr r2, =0x00007b06\n\ + adds r0, r2\n\ + adds r0, r4\n\ + strb r3, [r0]\n\ + lsls r0, r3, 4\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r1, r0, r7\n\ + strh r4, [r1, 0x2E]\n\ + add r0, r8\n\ + ldr r1, =sub_8168180\n\ + str r1, [r0]\n\ + b _08167808\n\ + .pool\n\ _081677FC:\n\ - ldr r0, [r5]\n\ - ldr r1, =0x00007b06\n\ - adds r0, r1\n\ - adds r0, r4\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ + ldr r0, [r5]\n\ + ldr r1, =0x00007b06\n\ + adds r0, r1\n\ + adds r0, r4\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ _08167808:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - ldr r0, [r5]\n\ - ldr r2, =0x00008040\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r4, r0\n\ - blt _081677AC\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + ldr r0, [r5]\n\ + ldr r2, =0x00008040\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + cmp r4, r0\n\ + blt _081677AC\n\ _0816781C:\n\ - movs r0, 0x67\n\ - strh r0, [r6]\n\ - cmp r4, 0x5\n\ - bhi _0816788A\n\ - ldr r5, =gUnknown_0203BCAC\n\ - ldr r7, =gSprites\n\ + movs r0, 0x67\n\ + strh r0, [r6]\n\ + cmp r4, 0x5\n\ + bhi _0816788A\n\ + ldr r5, =gUnknown_0203BCAC\n\ + ldr r7, =gSprites\n\ _08167828:\n\ - lsls r2, r4, 2\n\ - adds r2, r4\n\ - lsls r2, 18\n\ - movs r0, 0x80\n\ - lsls r0, 12\n\ - adds r2, r0\n\ - asrs r2, 16\n\ - adds r0, r6, 0\n\ - movs r1, 0xE6\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0x40\n\ - beq _08167874\n\ - ldr r0, [r5]\n\ - ldr r1, =0x00007b06\n\ - adds r0, r1\n\ - adds r0, r4\n\ - strb r3, [r0]\n\ - lsls r1, r3, 4\n\ - adds r1, r3\n\ - lsls r1, 2\n\ - adds r1, r7\n\ - ldrb r2, [r1, 0x3]\n\ - movs r0, 0x3F\n\ - ands r0, r2\n\ - strb r0, [r1, 0x3]\n\ - b _08167880\n\ - .pool\n\ + lsls r2, r4, 2\n\ + adds r2, r4\n\ + lsls r2, 18\n\ + movs r0, 0x80\n\ + lsls r0, 12\n\ + adds r2, r0\n\ + asrs r2, 16\n\ + adds r0, r6, 0\n\ + movs r1, 0xE6\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0x40\n\ + beq _08167874\n\ + ldr r0, [r5]\n\ + ldr r1, =0x00007b06\n\ + adds r0, r1\n\ + adds r0, r4\n\ + strb r3, [r0]\n\ + lsls r1, r3, 4\n\ + adds r1, r3\n\ + lsls r1, 2\n\ + adds r1, r7\n\ + ldrb r2, [r1, 0x3]\n\ + movs r0, 0x3F\n\ + ands r0, r2\n\ + strb r0, [r1, 0x3]\n\ + b _08167880\n\ + .pool\n\ _08167874:\n\ - ldr r0, [r5]\n\ - ldr r2, =0x00007b06\n\ - adds r0, r2\n\ - adds r0, r4\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ + ldr r0, [r5]\n\ + ldr r2, =0x00007b06\n\ + adds r0, r2\n\ + adds r0, r4\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ _08167880:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r4, 0x5\n\ - bls _08167828\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r4, 0x5\n\ + bls _08167828\n\ _0816788A:\n\ - movs r0, 0x66\n\ - strh r0, [r6]\n\ - ldr r0, =sub_81681B4\n\ - str r0, [r6, 0x14]\n\ - lsls r2, r4, 2\n\ - adds r2, r4\n\ - lsls r2, 18\n\ - movs r0, 0x80\n\ - lsls r0, 12\n\ - adds r2, r0\n\ - asrs r2, 16\n\ - adds r0, r6, 0\n\ - movs r1, 0xDE\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0x40\n\ - beq _081678F4\n\ - ldr r0, =gUnknown_0203BCAC\n\ - ldr r0, [r0]\n\ - ldr r1, =0x00007b06\n\ - adds r0, r1\n\ - adds r0, r4\n\ - strb r3, [r0]\n\ - ldr r0, =gSprites\n\ - lsls r2, r3, 4\n\ - adds r2, r3\n\ - lsls r2, 2\n\ - adds r2, r0\n\ - ldrb r3, [r2, 0x1]\n\ - movs r1, 0x3F\n\ - adds r0, r1, 0\n\ - ands r0, r3\n\ - movs r3, 0x40\n\ - orrs r0, r3\n\ - strb r0, [r2, 0x1]\n\ - ldrb r0, [r2, 0x3]\n\ - ands r1, r0\n\ - movs r0, 0x80\n\ - orrs r1, r0\n\ - strb r1, [r2, 0x3]\n\ - b _08167902\n\ - .pool\n\ + movs r0, 0x66\n\ + strh r0, [r6]\n\ + ldr r0, =sub_81681B4\n\ + str r0, [r6, 0x14]\n\ + lsls r2, r4, 2\n\ + adds r2, r4\n\ + lsls r2, 18\n\ + movs r0, 0x80\n\ + lsls r0, 12\n\ + adds r2, r0\n\ + asrs r2, 16\n\ + adds r0, r6, 0\n\ + movs r1, 0xDE\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0x40\n\ + beq _081678F4\n\ + ldr r0, =gUnknown_0203BCAC\n\ + ldr r0, [r0]\n\ + ldr r1, =0x00007b06\n\ + adds r0, r1\n\ + adds r0, r4\n\ + strb r3, [r0]\n\ + ldr r0, =gSprites\n\ + lsls r2, r3, 4\n\ + adds r2, r3\n\ + lsls r2, 2\n\ + adds r2, r0\n\ + ldrb r3, [r2, 0x1]\n\ + movs r1, 0x3F\n\ + adds r0, r1, 0\n\ + ands r0, r3\n\ + movs r3, 0x40\n\ + orrs r0, r3\n\ + strb r0, [r2, 0x1]\n\ + ldrb r0, [r2, 0x3]\n\ + ands r1, r0\n\ + movs r0, 0x80\n\ + orrs r1, r0\n\ + strb r1, [r2, 0x3]\n\ + b _08167902\n\ + .pool\n\ _081678F4:\n\ - ldr r0, =gUnknown_0203BCAC\n\ - ldr r0, [r0]\n\ - ldr r2, =0x00007b06\n\ - adds r0, r2\n\ - adds r0, r4\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ + ldr r0, =gUnknown_0203BCAC\n\ + ldr r0, [r0]\n\ + ldr r2, =0x00007b06\n\ + adds r0, r2\n\ + adds r0, r4\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ _08167902:\n\ - mov r0, r9\n\ - mov r1, r10\n\ - bl sub_81D32B0\n\ - mov r0, r9\n\ - bl LoadSpriteSheet\n\ - mov r0, r10\n\ - bl LoadSpritePalette\n\ - add sp, 0x60\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + mov r0, r9\n\ + mov r1, r10\n\ + bl sub_81D32B0\n\ + mov r0, r9\n\ + bl LoadSpriteSheet\n\ + mov r0, r10\n\ + bl LoadSpritePalette\n\ + add sp, 0x60\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif bool8 sub_8167930(void) { - bool8 retvalue; - switch(gUnknown_0203BCAC->info.unk78) - { - case 0: - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); - ChangeBgX(1, 0, 0); - ChangeBgY(1, 0, 0); - ChangeBgX(2, 0, 0); - ChangeBgY(2, 0, 0); - ChangeBgX(3, 0, 0); - ChangeBgY(3, 136 << 6, 0); - SetGpuReg(REG_OFFSET_DISPCNT, 28736); - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2|BLDCNT_EFFECT_BLEND|BLDCNT_TGT2_BG1); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); - break; - case 1: - (u32 *) gUnknown_0203BCA4 = Alloc(6656); - (u32 *) gUnknown_0203BCA0 = Alloc(1280); - (u32 *) gUnknown_0203BCA8 = Alloc(1280); - break; - case 2: - LZ77UnCompVram(gUnknown_085DFB60, gUnknown_0203BCA8); - break; - case 3: - LoadBgTiles(3, gUnknown_085DFA80, 224, 0); - break; - case 4: - LoadBgTilemap(3, gUnknown_0203BCA8, 1280, 0); - break; - case 5: - LoadPalette(gUnknown_085DFA60, 208, 32); - gUnknown_0203BCAC->field_7B0E = 0xFFB0; - break; - case 6: - LZ77UnCompVram(gUsePokeblockGraph_Gfx, gUnknown_0203BCA4); - break; - case 7: - LZ77UnCompVram(gUsePokeblockGraph_Tilemap, gUnknown_0203BCA0); - LoadPalette(gUsePokeblockGraph_Pal, 32, 32); - break; - case 8: - LoadBgTiles(1, gUnknown_0203BCA4, 6656, 160 << 2); - break; - case 9: - SetBgTilemapBuffer(1, gUnknown_0203BCA0); - CopyToBgTilemapBufferRect(1, gUsePokeblockNatureWin_Pal, 0, 13, 12, 4); - CopyBgTilemapBufferToVram(1); - break; - case 10: - LZ77UnCompVram(gUnknown_085DFC0C, &gUnknown_0203BCAC->field_0[0x7304]); - break; - case 11: - LoadBgTilemap(2, &gUnknown_0203BCAC->field_0[0x7304], 1280, 0); - LoadPalette(gUnknown_086231E8, 48, 32); - LoadPalette(gUnknown_08623208, 240, 32); - sub_81D21DC(2); - break; - default: - gUnknown_0203BCAC->info.unk78 = 0; - retvalue = 0; - return retvalue; - } - gUnknown_0203BCAC->info.unk78++; - retvalue = 1; - return retvalue; + bool8 retvalue; + switch(gUnknown_0203BCAC->info.unk78) + { + case 0: + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 136 << 6, 0); + SetGpuReg(REG_OFFSET_DISPCNT, 28736); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2|BLDCNT_EFFECT_BLEND|BLDCNT_TGT2_BG1); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + break; + case 1: + (u32 *) gUnknown_0203BCA4 = Alloc(6656); + (u32 *) gUnknown_0203BCA0 = Alloc(1280); + (u32 *) gUnknown_0203BCA8 = Alloc(1280); + break; + case 2: + LZ77UnCompVram(gUnknown_085DFB60, gUnknown_0203BCA8); + break; + case 3: + LoadBgTiles(3, gUnknown_085DFA80, 224, 0); + break; + case 4: + LoadBgTilemap(3, gUnknown_0203BCA8, 1280, 0); + break; + case 5: + LoadPalette(gUnknown_085DFA60, 208, 32); + gUnknown_0203BCAC->field_7B0E = 0xFFB0; + break; + case 6: + LZ77UnCompVram(gUsePokeblockGraph_Gfx, gUnknown_0203BCA4); + break; + case 7: + LZ77UnCompVram(gUsePokeblockGraph_Tilemap, gUnknown_0203BCA0); + LoadPalette(gUsePokeblockGraph_Pal, 32, 32); + break; + case 8: + LoadBgTiles(1, gUnknown_0203BCA4, 6656, 160 << 2); + break; + case 9: + SetBgTilemapBuffer(1, gUnknown_0203BCA0); + CopyToBgTilemapBufferRect(1, gUsePokeblockNatureWin_Pal, 0, 13, 12, 4); + CopyBgTilemapBufferToVram(1); + break; + case 10: + LZ77UnCompVram(gUnknown_085DFC0C, &gUnknown_0203BCAC->field_0[0x7304]); + break; + case 11: + LoadBgTilemap(2, &gUnknown_0203BCAC->field_0[0x7304], 1280, 0); + LoadPalette(gUnknown_086231E8, 48, 32); + LoadPalette(gUnknown_08623208, 240, 32); + sub_81D21DC(2); + break; + default: + gUnknown_0203BCAC->info.unk78 = 0; + retvalue = 0; + return retvalue; + } + gUnknown_0203BCAC->info.unk78++; + retvalue = 1; + return retvalue; } -- cgit v1.2.3 From fffdbe4e79520fe6f52ebeaaf810cf51109d831a Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 23 Mar 2019 11:16:53 -0500 Subject: Match sub_8167420 --- src/use_pokeblock.c | 156 +++++++++++++++------------------------------------- 1 file changed, 44 insertions(+), 112 deletions(-) (limited to 'src') diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 6c9400b37..9ed1eda8b 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -44,6 +44,13 @@ struct UsePokeblockSubStruct /*0x78*/ u8 unk78; }; +struct Unk7FB8 +{ + u8 unk0; + u8 unk1; + u16 unk2; +}; + struct UsePokeblockStruct { /*0x0000*/ u8 field_0[0x7B06]; @@ -56,7 +63,8 @@ struct UsePokeblockStruct /*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58; /*0x7FB0*/ u8 unk7FB0[3]; /*0x7FB3*/ s8 unk7FB3; - /*0x7FB4*/ u8 filler7FB4[0x1C]; + /*0x7FB4*/ u8 filler7FB4[0x4]; + /*0x7FB8*/ struct Unk7FB8 field_7FB8[6]; /*0x7FD0*/ struct UsePokeblockSubStruct info; /*0x804C*/ u8 filler804C[0x20]; }; @@ -815,13 +823,9 @@ void sub_8166E24(void) for (gUnknown_0203BC90->field_53 = 0; gUnknown_0203BC90->field_53 < 5 && gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53] == 0; gUnknown_0203BC90->field_53++); if (gUnknown_0203BC90->field_53 < 5) - { Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); - } else - { - Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, 0); - } + Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, 0); Pokeblock_MenuWindowTextPrint(gStringVar4); PutWindowTilemap(2); @@ -880,10 +884,8 @@ void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2) { if (a2 != 0) { - if(a2 > 0) - { - statID = 0; - } + if (a2 > 0) + a2 = 0; StringCopy(dest, sContestStatNames[statID]); StringAppend(dest, gText_WasEnhanced); @@ -938,12 +940,10 @@ _08167018:\n\ void Pokeblock_GetMonContestStats(struct Pokemon *pokemon, u8 *data) { - u16 i = 0; + u16 i; - for (; i < 5; i++) - { + for (i = 0; i < 5; i++) data[i] = GetMonData(pokemon, gUnknown_085DFCB0[i]); - } } void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *pokemon) @@ -954,7 +954,7 @@ void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *pokemon) if (GetMonData(pokemon, MON_DATA_SHEEN) != 255) { sub_8167184(pokeblock, pokemon); - for (i=0; i<5; i++) + for (i = 0; i < 5; i++) { data = GetMonData(pokemon, gUnknown_085DFCB0[i]); cstat = data + gUnknown_0203BC90->field_66[i]; @@ -965,10 +965,12 @@ void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *pokemon) data = cstat; SetMonData(pokemon, gUnknown_085DFCB0[i], &data); } + cstat = (u8)GetMonData(pokemon, MON_DATA_SHEEN); cstat = cstat + pokeblock->feel; if (cstat > 255) cstat = 255; + data = cstat; SetMonData(pokemon, MON_DATA_SHEEN, &data); } @@ -1006,17 +1008,17 @@ void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *pokemon) direction = -1; else return; - for (i=0; i<5; i++) + + for (i = 0; i < 5; i++) { amount = gUnknown_0203BC90->field_66[i]; boost = amount / 10; if (amount % 10 >= 5) // round to the nearest boost++; + taste = GetMonFlavorRelation(pokemon, gUnknown_085DFCC4[i]); if (taste == direction) - { gUnknown_0203BC90->field_66[i] += boost * taste; - } } } @@ -1032,30 +1034,30 @@ bool8 sub_8167268(void) u8 sub_81672A4(u8 a0) { u8 i; - for (i=0; ifield_54 = 0; - for (flavor=0; flavor<5; flavor++) + for (flavor = 0; flavor < 5; flavor++) { if (gUnknown_0203BC90->field_61[flavor] != 0) { @@ -1078,9 +1080,8 @@ void sub_8167338(void) if (spriteidx != MAX_SPRITES) { if (gUnknown_0203BC90->field_61[flavor] != 0) - { gSprites[spriteidx].callback = sub_81673DC; - } + gUnknown_0203BC90->field_54++; } } @@ -1089,107 +1090,38 @@ void sub_8167338(void) void sub_81673DC(struct Sprite *sprite) { - if (sprite->data[0] <= 5) + if (sprite->data[0] < 6) sprite->pos2.y -= 2; - else if (sprite->data[0] <= 11) + else if (sprite->data[0] < 12) sprite->pos2.y += 2; - if ((++sprite->data[0]) > 60) + + if (++sprite->data[0] > 60) { DestroySprite(sprite); - gUnknown_0203BC90->field_54--; + gUnknown_0203BC90->field_54--; } } -#ifdef NONMATCHING void sub_8167420(void) { u16 i; - u16 ct; + u16 numMons; - for (i=0, ct=0; i < CalculatePlayerPartyCount(); i++) + for (i = 0, numMons = 0; i < CalculatePlayerPartyCount(); i++) { if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { - *(&gUnknown_0203BCAC->field_7FB8 + ct * 4) = 14; - *(&gUnknown_0203BCAC->field_7FB9 + ct * 4)= i; - *(&gUnknown_0203BCAC->field_7FBA + ct * 2) = 0; - ct++; + gUnknown_0203BCAC->field_7FB8[numMons].unk0 = 14; + gUnknown_0203BCAC->field_7FB8[numMons].unk1 = i; + gUnknown_0203BCAC->field_7FB8[numMons].unk2 = 0; + numMons++; } } + gUnknown_0203BCAC->info.field_71 = 0; - gUnknown_0203BCAC->info.field_70 = ct + 1; + gUnknown_0203BCAC->info.field_70 = numMons + 1; sub_81674BC(); } -#else -NAKED -void sub_8167420(void) -{ - asm(".syntax unified\n\ -push {r4-r6,lr}\n\ - movs r4, 0\n\ - movs r5, 0\n\ - ldr r6, =gUnknown_0203BCAC\n\ - b _08167472\n\ - .pool\n\ -_08167430:\n\ - movs r0, 0x64\n\ - muls r0, r4\n\ - ldr r1, =gPlayerParty\n\ - adds r0, r1\n\ - movs r1, 0x2D\n\ - bl GetMonData\n\ - adds r3, r0, 0\n\ - cmp r3, 0\n\ - bne _0816746C\n\ - ldr r1, [r6]\n\ - lsls r2, r5, 2\n\ - adds r1, r2\n\ - ldr r0, =0x00007fb8\n\ - adds r1, r0\n\ - movs r0, 0xE\n\ - strb r0, [r1]\n\ - ldr r0, [r6]\n\ - adds r0, r2\n\ - ldr r1, =0x00007fb9\n\ - adds r0, r1\n\ - strb r4, [r0]\n\ - ldr r0, [r6]\n\ - adds r0, r2\n\ - ldr r2, =0x00007fba\n\ - adds r0, r2\n\ - strh r3, [r0]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ -_0816746C:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ -_08167472:\n\ - bl CalculatePlayerPartyCount\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r4, r0\n\ - bcc _08167430\n\ - ldr r2, =gUnknown_0203BCAC\n\ - ldr r0, [r2]\n\ - ldr r1, =0x00008041\n\ - adds r0, r1\n\ - movs r1, 0\n\ - strb r1, [r0]\n\ - ldr r0, [r2]\n\ - adds r1, r5, 0x1\n\ - ldr r2, =0x00008040\n\ - adds r0, r2\n\ - strb r1, [r0]\n\ - bl sub_81674BC\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif #ifdef NONMATCHING void sub_81674BC(void) -- cgit v1.2.3 From 24e72691171c0e0cf0658c04edfcc9c69b4f6e7a Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 23 Mar 2019 11:22:41 -0500 Subject: Match sub_81674BC --- src/use_pokeblock.c | 87 ++++++----------------------------------------------- 1 file changed, 9 insertions(+), 78 deletions(-) (limited to 'src') diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 9ed1eda8b..05261307c 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -62,8 +62,10 @@ struct UsePokeblockStruct /*0x7B44*/ struct Sprite *field_7B44[0x45]; /*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58; /*0x7FB0*/ u8 unk7FB0[3]; - /*0x7FB3*/ s8 unk7FB3; - /*0x7FB4*/ u8 filler7FB4[0x4]; + /*0x7FB3*/ s8 field_7FB3; + /*0x7FB4*/ s8 field_7FB4; + /*0x7FB5*/ s8 field_7FB5; + /*0x7FB6*/ u8 filler7FB6[0x2]; /*0x7FB8*/ struct Unk7FB8 field_7FB8[6]; /*0x7FD0*/ struct UsePokeblockSubStruct info; /*0x804C*/ u8 filler804C[0x20]; @@ -322,7 +324,7 @@ void sub_8166564(void) sub_81D3464(gUnknown_0203BCAC->field_7B1C); if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) { - u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->unk7FB3]; + u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); } @@ -1123,7 +1125,6 @@ void sub_8167420(void) sub_81674BC(); } -#ifdef NONMATCHING void sub_81674BC(void) { s16 var; @@ -1133,87 +1134,17 @@ void sub_81674BC(void) gUnknown_0203BCAC->field_7FB3 = 0; gUnknown_0203BCAC->field_7FB4 = 1; gUnknown_0203BCAC->field_7FB5 = 2; - var = gUnknown_0203BCAC->info.field_71 + 1; - - if(var >= gUnknown_0203BCAC->info.field_70) - { + if (var >= gUnknown_0203BCAC->info.field_70) var = 0; - - } - var2 = var - 1; - - if(var2 < 0) - { - var2 = gUnknown_0203BCAC->info.field_70 - 1; - } + var2 = gUnknown_0203BCAC->info.field_71 - 1; + if (var2 < 0) + var2 = gUnknown_0203BCAC->info.field_70 - 1; sub_816753C(var, 1); sub_816753C(var2, 2); } -#else -NAKED -void sub_81674BC(void) -{ - asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - ldr r4, =gUnknown_0203BCAC\n\ - ldr r0, [r4]\n\ - ldr r5, =0x00008041\n\ - adds r0, r5\n\ - ldrb r0, [r0]\n\ - movs r1, 0\n\ - bl sub_816753C\n\ - ldr r0, [r4]\n\ - ldr r1, =0x00007fb3\n\ - adds r0, r1\n\ - movs r1, 0\n\ - strb r1, [r0]\n\ - ldr r0, [r4]\n\ - ldr r2, =0x00007fb4\n\ - adds r0, r2\n\ - movs r1, 0x1\n\ - strb r1, [r0]\n\ - ldr r0, [r4]\n\ - ldr r1, =0x00007fb5\n\ - adds r0, r1\n\ - movs r1, 0x2\n\ - strb r1, [r0]\n\ - ldr r0, [r4]\n\ - adds r5, r0, r5\n\ - ldrb r3, [r5]\n\ - adds r1, r3, 0x1\n\ - adds r2, 0x8C\n\ - adds r0, r2\n\ - ldrb r2, [r0]\n\ - cmp r1, r2\n\ - blt _08167500\n\ - movs r1, 0\n\ -_08167500:\n\ - subs r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r0, 0\n\ - bge _08167510\n\ - subs r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ -_08167510:\n\ - adds r0, r1, 0\n\ - movs r1, 0x1\n\ - bl sub_816753C\n\ - lsls r0, r4, 16\n\ - asrs r0, 16\n\ - movs r1, 0x2\n\ - bl sub_816753C\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif #ifdef NONMATCHING void sub_816753C(s16 a1, u8 a2) -- cgit v1.2.3 From 6566a49bebc877e742f8ee325dd659879afe63f3 Mon Sep 17 00:00:00 2001 From: Wyrserth Date: Sat, 23 Mar 2019 21:52:58 +0100 Subject: Use constants for naming screen's pages. --- src/naming_screen.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/naming_screen.c b/src/naming_screen.c index 75b7c8566..d37144122 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -449,7 +449,7 @@ static u8 sub_80E3274(void) static bool8 MainState_BeginFadeIn(void) { sub_80E4CF8(3, gUnknown_08DD4544); - gNamingScreenData->currentPage = 1; + gNamingScreenData->currentPage = PAGE_UPPER; sub_80E4CF8(2, gUnknown_08DD46E0); sub_80E4CF8(1, gUnknown_08DD4620); sub_80E4DE4(gNamingScreenData->windows[1], 0); @@ -1856,7 +1856,7 @@ static const struct NamingScreenTemplate playerNamingScreenTemplate = .maxChars = 7, .iconFunction = 1, .addGenderIcon = 0, - .initialPage = 1, + .initialPage = PAGE_UPPER, .unused = 35, .title = gText_YourName, }; @@ -1867,7 +1867,7 @@ static const struct NamingScreenTemplate pcBoxNamingTemplate = .maxChars = 8, .iconFunction = 2, .addGenderIcon = 0, - .initialPage = 1, + .initialPage = PAGE_UPPER, .unused = 19, .title = gText_BoxName, }; @@ -1878,7 +1878,7 @@ static const struct NamingScreenTemplate monNamingScreenTemplate = .maxChars = 10, .iconFunction = 3, .addGenderIcon = 1, - .initialPage = 1, + .initialPage = PAGE_UPPER, .unused = 35, .title = gText_PkmnsNickname, }; @@ -1889,7 +1889,7 @@ static const struct NamingScreenTemplate wandaWordsScreenTemplate = .maxChars = 15, .iconFunction = 4, .addGenderIcon = 0, - .initialPage = 1, + .initialPage = PAGE_UPPER, .unused = 11, .title = gText_TellHimTheWords, }; -- cgit v1.2.3 From 4fd2b0b48455774e1acc0ec0f86f023a26068fe5 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 23 Mar 2019 17:19:08 -0500 Subject: Decompile remaining functions in use_pokeblock.s --- src/use_pokeblock.c | 317 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 275 insertions(+), 42 deletions(-) (limited to 'src') diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 05261307c..999ddcbbd 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -2,6 +2,8 @@ #include "main.h" #include "pokeblock.h" #include "alloc.h" +#include "decompress.h" +#include "graphics.h" #include "palette.h" #include "pokenav.h" #include "menu_specialized.h" @@ -42,6 +44,8 @@ struct UsePokeblockSubStruct /*0x71*/ u8 field_71; /*0x74*/ u8 (*unk74)(void); /*0x78*/ u8 unk78; + /*0x79*/ u8 filler79[0x1]; + /*0x7A*/ u8 field_7A[0x22]; }; struct Unk7FB8 @@ -59,16 +63,19 @@ struct UsePokeblockStruct /*0x7B10*/ u8 field_7B10; /*0x7B11*/ u8 field_7B11[0xB]; /*0x7B1C*/ struct Sprite *field_7B1C[10]; - /*0x7B44*/ struct Sprite *field_7B44[0x45]; + /*0x7B44*/ struct Sprite *field_7B44[2]; + /*0x7B4C*/ u8 field_7B4C; + /*0x7B4D*/ u8 filler7B4D[0x47]; + /*0x7B94*/ u8 filler7B94; + /*0x7B95*/ u8 field_7B95[3][64]; /*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58; /*0x7FB0*/ u8 unk7FB0[3]; /*0x7FB3*/ s8 field_7FB3; /*0x7FB4*/ s8 field_7FB4; /*0x7FB5*/ s8 field_7FB5; - /*0x7FB6*/ u8 filler7FB6[0x2]; + /*0x7FB6*/ s8 field_7FB6; /*0x7FB8*/ struct Unk7FB8 field_7FB8[6]; /*0x7FD0*/ struct UsePokeblockSubStruct info; - /*0x804C*/ u8 filler804C[0x20]; }; extern u16 gKeyRepeatStartDelay; @@ -84,12 +91,12 @@ void sub_81668F8(void); void sub_8167420(void); void sub_8167760(void); u8 sub_81672E4(u8 arg0); -bool8 sub_8168328(void); +static bool8 sub_8168328(void); bool8 sub_8167930(void); void sub_8167608(u8 arg0); void sub_8167BA0(u16 arg0, u8 copyToVramMode); void sub_8166634(void); -void sub_8167CA0(bool8); +static void sub_8167CA0(bool8); void sub_8166BEC(void); void sub_8166D44(void); s8 sub_8166DE4(void); @@ -101,7 +108,6 @@ u8 sub_81672A4(u8 a0); void sub_8166A34(void); void sub_8167104(void); void sub_8167338(void); -extern void sub_81D2074(void); void sub_81681F4(u8); void sub_8166E24(void); bool8 sub_8166EDC(void); @@ -112,13 +118,16 @@ extern u32 sub_81D2C68(s32, s32, s32, u8 *); void sub_81673DC(struct Sprite *sprite); void sub_81674BC(void); void sub_816753C(s16, u8); +static u8 sub_8167EA4(void); +static u8 sub_8167FA4(void); +static u8 sub_8168048(void); extern void sub_81D2ED4(u8, u8, u16, u8, u8, u8, u8); extern void sub_81D2F78(u8, u8, s16, u16, u8, u8, u8, u8); extern void sub_81D3094(u8, u8, s16, u16, u8, u8, u8); extern void sub_81D31D0(struct SpritePalette *, struct SpritePalette *, struct SpritePalette *); extern void sub_81D321C(struct SpriteSheet *, struct SpriteTemplate *, struct SpritePalette*); -void sub_8168180(void); -void sub_81681B4(void); +void sub_8168180(struct Sprite *sprite); +void sub_81681B4(struct Sprite *sprite); extern void sub_81D32B0(struct SpriteSheet *, struct SpritePalette*); extern void sub_81D21DC(u8); @@ -139,6 +148,11 @@ extern const u32 gUnknown_085DFA60[]; extern const u32 gUnknown_085DFC0C[]; extern const u16 gUnknown_086231E8[]; extern const u16 gUnknown_08623208[]; +extern const u8 gUnknown_085DFCC9[]; +extern const struct SpritePalette gUnknown_085DFDB8; +extern const struct SpriteTemplate gUnknown_085DFDA0; + +extern const u8 *const gNatureNamePointers[]; // ram variables EWRAM_DATA struct UsePokeblockSubStruct *gUnknown_0203BC90 = NULL; @@ -1800,63 +1814,282 @@ bool8 sub_8167930(void) return retvalue; } +void sub_8167BA0(u16 arg0, u8 copyToVramMode) +{ + u8 partyIndex; + u8 nature; + u8 *str; + FillWindowPixelBuffer(0, PIXEL_FILL(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); + if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + { + AddTextPrinterParameterized(0, 1, gUnknown_0203BCAC->field_7B95[arg0], 0, 1, 0, NULL); + partyIndex = sub_81672A4(gUnknown_0203BCAC->info.field_71); + nature = GetNature(&gPlayerParty[partyIndex]); + str = StringCopy(gUnknown_0203BCAC->info.field_7A, gText_NatureSlash); + str = StringCopy(str, gNatureNamePointers[nature]); + AddTextPrinterParameterized3(1, 1, 2, 1, gUnknown_085DFCC9, 0, gUnknown_0203BCAC->info.field_7A); + } + if (copyToVramMode) + { + CopyWindowToVram(0, 3); + CopyWindowToVram(1, 3); + } + else + { + CopyWindowToVram(0, 2); + CopyWindowToVram(1, 2); + } +} +static void sub_8167CA0(bool8 arg0) +{ + u16 var0; + int var1; + int r8; + int r4; + if (arg0) + var0 = gUnknown_0203BCAC->field_7FB5; + else + var0 = gUnknown_0203BCAC->field_7FB4; + sub_81D1F84( + &gUnknown_0203BCAC->field_7C58, + gUnknown_0203BCAC->field_7C58.unk14[gUnknown_0203BCAC->field_7FB3], + gUnknown_0203BCAC->field_7C58.unk14[var0]); + r8 = (gUnknown_0203BCAC->info.field_71 ^ (gUnknown_0203BCAC->info.field_70 - 1)) ? 1 : 0; + if (arg0) + { + gUnknown_0203BCAC->field_7FB5 = gUnknown_0203BCAC->field_7FB4; + gUnknown_0203BCAC->field_7FB4 = gUnknown_0203BCAC->field_7FB3; + gUnknown_0203BCAC->field_7FB3 = var0; + gUnknown_0203BCAC->field_7FB6 = gUnknown_0203BCAC->field_7FB5; + + gUnknown_0203BCAC->info.field_71 = gUnknown_0203BCAC->info.field_71 == 0 + ? gUnknown_0203BCAC->info.field_70 - 1 + : gUnknown_0203BCAC->info.field_71 - 1; + + gUnknown_0203BCAC->field_7B4C = gUnknown_0203BCAC->info.field_71 == 0 + ? gUnknown_0203BCAC->info.field_70 - 1 + : gUnknown_0203BCAC->info.field_71 - 1; + } + else + { + gUnknown_0203BCAC->field_7FB4 = gUnknown_0203BCAC->field_7FB5; + gUnknown_0203BCAC->field_7FB5 = gUnknown_0203BCAC->field_7FB3; + gUnknown_0203BCAC->field_7FB3 = var0; + gUnknown_0203BCAC->field_7FB6 = gUnknown_0203BCAC->field_7FB4; + + gUnknown_0203BCAC->info.field_71 = gUnknown_0203BCAC->info.field_71 < gUnknown_0203BCAC->info.field_70 - 1 + ? gUnknown_0203BCAC->info.field_71 + 1 + : 0; + + gUnknown_0203BCAC->field_7B4C = gUnknown_0203BCAC->info.field_71 < gUnknown_0203BCAC->info.field_70 - 1 + ? gUnknown_0203BCAC->info.field_71 + 1 + : 0; + } + r4 = (gUnknown_0203BCAC->info.field_71 ^ (gUnknown_0203BCAC->info.field_70 - 1)) ? 1 : 0; + sub_81D3520(gUnknown_0203BCAC->field_7B1C); + if (!r8) + gUnknown_0203BCAC->info.unk74 = sub_8167EA4; + else if (!r4) + gUnknown_0203BCAC->info.unk74 = sub_8167FA4; + else + gUnknown_0203BCAC->info.unk74 = sub_8168048; +} +static u8 sub_8167EA4(void) +{ + switch (gUnknown_0203BCAC->info.unk78) + { + case 0: + sub_8167608(gUnknown_0203BCAC->field_7FB3); + gUnknown_0203BCAC->info.unk78++; + break; + case 1: + sub_8167BA0(gUnknown_0203BCAC->field_7FB3, 0); + gUnknown_0203BCAC->info.unk78++; + break; + case 2: + if (!sub_81D3178(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7B0E)) + { + sub_816753C(gUnknown_0203BCAC->field_7B4C, gUnknown_0203BCAC->field_7FB6); + gUnknown_0203BCAC->info.unk78++; + } + break; + case 3: + sub_81D3464(gUnknown_0203BCAC->field_7B1C); + if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + { + u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; + sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); + } + gUnknown_0203BCAC->info.unk78 = 0; + return FALSE; + } + return TRUE; +} +static u8 sub_8167FA4(void) +{ + switch (gUnknown_0203BCAC->info.unk78) + { + case 0: + if (!sub_81D31A4(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7B0E)) + gUnknown_0203BCAC->info.unk78++; + break; + case 1: + sub_8167BA0(gUnknown_0203BCAC->field_7FB3, 0); + gUnknown_0203BCAC->info.unk78++; + break; + case 2: + sub_816753C(gUnknown_0203BCAC->field_7B4C, gUnknown_0203BCAC->field_7FB6); + gUnknown_0203BCAC->info.unk78++; + break; + case 3: + gUnknown_0203BCAC->info.unk78 = 0; + return FALSE; + } + return TRUE; +} +static u8 sub_8168048(void) +{ + switch (gUnknown_0203BCAC->info.unk78) + { + case 0: + sub_81D2074(&gUnknown_0203BCAC->field_7C58); + if (!sub_81D3150(&gUnknown_0203BCAC->field_7B0E)) + { + sub_8167608(gUnknown_0203BCAC->field_7FB3); + gUnknown_0203BCAC->info.unk78++; + } + break; + case 1: + sub_8167BA0(gUnknown_0203BCAC->field_7FB3, 0); + gUnknown_0203BCAC->info.unk78++; + break; + case 2: + if (!sub_81D3178(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7B0E)) + { + sub_816753C(gUnknown_0203BCAC->field_7B4C, gUnknown_0203BCAC->field_7FB6); + gUnknown_0203BCAC->info.unk78++; + } + break; + case 3: + sub_81D3464(gUnknown_0203BCAC->field_7B1C); + if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) + { + u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; + sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); + } + gUnknown_0203BCAC->info.unk78 = 0; + return FALSE; + } + return TRUE; +} +void sub_8168168(struct Sprite *sprite) +{ + sprite->pos1.x = gUnknown_0203BCAC->field_7B0E + 38; +} +void sub_8168180(struct Sprite *sprite) +{ + if (sprite->data[0] == gUnknown_0203BCAC->info.field_71) + StartSpriteAnim(sprite, 0); + else + StartSpriteAnim(sprite, 1); +} +void sub_81681B4(struct Sprite *sprite) +{ + if (gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) + sprite->oam.paletteNum = IndexOfSpritePaletteTag(101); + else + sprite->oam.paletteNum = IndexOfSpritePaletteTag(102); +} +void sub_81681F4(u8 monIndex) +{ + u8 sheen = GetMonData(&gPlayerParty[monIndex], MON_DATA_SHEEN); + gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3] = sheen != 255 + ? sheen / 29 + : 9; +} +static void sub_8168248(void) +{ + struct CompressedSpriteSheet spriteSheet; + struct SpritePalette spritePalette; + + spritePalette = gUnknown_085DFDB8; + spriteSheet.data = gUsePokeblockCondition_Gfx; + spriteSheet.size = 0x800; + spriteSheet.tag = 1; + LoadCompressedSpriteSheet(&spriteSheet); + LoadSpritePalette(&spritePalette); +} +static void sub_8168294(void) +{ + u16 i; + s16 xDiff, xStart; + int yStart = 17; + int var = 8; + struct Sprite **sprites = gUnknown_0203BCAC->field_7B44; + const struct SpriteTemplate *template = &gUnknown_085DFDA0; + for (i = 0, xDiff = 64, xStart = -96; i < 2; i++) + { + u8 spriteId = CreateSprite(template, i * xDiff + xStart, yStart, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[0] = var; + gSprites[spriteId].data[1] = (i * xDiff) | 32; + gSprites[spriteId].data[2] = i; + StartSpriteAnim(&gSprites[spriteId], i); + sprites[i] = &gSprites[spriteId]; + } + } +} +static bool8 sub_8168328(void) +{ + switch (gUnknown_0203BCAC->info.unk78) + { + case 0: + sub_8168248(); + gUnknown_0203BCAC->info.unk78++; + return TRUE; + case 1: + sub_8168294(); + gUnknown_0203BCAC->info.unk78 = 0; + return FALSE; + } + return FALSE; +} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void sub_8168374(struct Sprite *sprite) +{ + s16 prevX = sprite->pos1.x; + sprite->pos1.x += sprite->data[0]; + if ((prevX <= sprite->data[1] && sprite->pos1.x >= sprite->data[1]) + || (prevX >= sprite->data[1] && sprite->pos1.x <= sprite->data[1])) + { + sprite->pos1.x = sprite->data[1]; + sprite->callback = SpriteCallbackDummy; + } +} -- cgit v1.2.3 From 456cc3a6f02b6f45753b47e5ea37bd92e616f089 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 24 Mar 2019 13:09:46 -0500 Subject: Split out the remaining wireless-related files --- src/main_menu.c | 6 +- src/rom_8011DC0.c | 3502 ----------------------------------------------------- src/union_room.c | 3502 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 3505 insertions(+), 3505 deletions(-) delete mode 100644 src/rom_8011DC0.c create mode 100644 src/union_room.c (limited to 'src') diff --git a/src/main_menu.c b/src/main_menu.c index e6e29d942..cbd257cb1 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -525,7 +525,7 @@ enum ACTION_OPTION, ACTION_MYSTERY_GIFT, ACTION_MYSTERY_EVENTS, - ACTION_UNKNOWN, // TODO: change when rom_8011DC0 decompiled + ACTION_EREADER, ACTION_INVALID }; @@ -1033,7 +1033,7 @@ static void Task_HandleMainMenuAPressed(u8 taskId) } else { - action = ACTION_UNKNOWN; + action = ACTION_EREADER; } break; case 3: @@ -1082,7 +1082,7 @@ static void Task_HandleMainMenuAPressed(u8 taskId) SetMainCallback2(CB2_InitMysteryEventMenu); DestroyTask(taskId); break; - case ACTION_UNKNOWN: + case ACTION_EREADER: SetMainCallback2(sub_801867C); DestroyTask(taskId); break; diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c deleted file mode 100644 index 3d9eab8d7..000000000 --- a/src/rom_8011DC0.c +++ /dev/null @@ -1,3502 +0,0 @@ -#include "global.h" -#include "window.h" -#include "bg.h" -#include "string_util.h" -#include "task.h" -#include "event_data.h" -#include "link.h" -#include "link_rfu.h" -#include "librfu.h" -#include "alloc.h" -#include "menu.h" -#include "list_menu.h" -#include "menu_helpers.h" -#include "script.h" -#include "sound.h" -#include "constants/songs.h" -#include "constants/game_stat.h" -#include "constants/maps.h" -#include "constants/species.h" -#include "constants/rgb.h" -#include "constants/battle_frontier.h" -#include "trade.h" -#include "trainer_card.h" -#include "overworld.h" -#include "battle.h" -#include "load_save.h" -#include "cable_club.h" -#include "field_control_avatar.h" -#include "party_menu.h" -#include "field_weather.h" -#include "palette.h" -#include "decompress.h" -#include "start_menu.h" -#include "data2.h" -#include "field_screen_effect.h" -#include "script_pokemon_util_80F87D8.h" - -struct UnkStruct_Shared -{ - struct UnkLinkRfuStruct_02022B14 field_0; - u8 needingPadding[2]; - u8 playerName[PLAYER_NAME_LENGTH + 1]; -}; - -struct UnkStruct_x1C -{ - struct UnkStruct_Shared unk0; - u8 unk18; -}; - -struct UnkStruct_x20 -{ - struct UnkStruct_Shared unk; - u16 field_18; - u8 field_1A_0:2; - u8 field_1A_1:1; - u8 field_1B; - u8 field_1D; - u8 field_1E; - u8 field_1F; -}; - -struct UnkStruct_Main0 -{ - struct UnkStruct_x20 arr[8]; -}; - -struct UnkStruct_Main4 -{ - struct UnkStruct_x1C arr[5]; -}; - -struct UnkStruct_Main8 -{ - struct UnkStruct_x20 arr[5]; -}; - -struct UnkStruct_Leader -{ - struct UnkStruct_Main0 *field_0; - struct UnkStruct_Main4 *field_4; - struct UnkStruct_Main8 *field_8; - u8 state; - u8 textState; - u8 field_E; - u8 listWindowId; - u8 field_10; - u8 field_11; - u8 listTaskId; - u8 field_13; - u8 field_14; - u8 field_15; - u8 field_16; - u8 field_17; - u8 field_18; - u8 field_19; - u16 field_1A; -}; - -struct UnkStruct_Group -{ - struct UnkStruct_Main0 *field_0; - struct UnkStruct_Main4 *field_4; - u8 state; - u8 textState; - u8 field_A; - u8 listWindowId; - u8 field_C; - u8 field_D; - u8 listTaskId; - u8 field_F; - u8 field_10; - u8 field_11; - u8 field_12; - u8 field_13; - u8 field_14; - u8 field_15; -}; - -struct UnkStruct_8019BA8 -{ - u8 field_0; - u8 field_1; - u8 field_2; - u8 field_3; -}; - -struct UnkStruct_URoom -{ - struct UnkStruct_Main0 *field_0; - struct UnkStruct_Main4 *field_4; - struct UnkStruct_Main0 *field_8; - struct UnkStruct_Main4 *field_C; - u16 field_10; - u16 field_12; - u8 state; - u8 stateAfterPrint; - u8 textState; - u8 field_17; - u8 field_18; - u8 field_19; - u8 field_1A; - u8 field_1B; - u8 field_1C; - u8 field_1D; - u8 field_1E; - u8 field_1F; - u8 field_20; - u8 spriteIds[40]; - u8 field_49; - u8 field_4A; - u16 field_4C[6]; - u8 field_58[0x98 - 0x58]; - u16 field_98; - u16 field_9A[3]; - struct UnkStruct_8019BA8 field_A0[8]; -}; - -union UnkUnion_Main -{ - struct UnkStruct_Leader *leader; - struct UnkStruct_Group *group; - struct UnkStruct_URoom *uRoom; -}; - -struct TradeUnkStruct -{ - u16 field_0; - u16 field_2; - u32 field_4; - u8 field_8; - u8 field_9; - u16 field_A; - u16 field_C; - u16 species; - u16 level; - u16 field_12; - u32 personality; -}; - -extern struct TradeUnkStruct gUnknown_02022C40; -extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38; -extern union UnkUnion_Main gUnknown_02022C30; -extern u8 gUnknown_02022C2C; -extern u8 gUnknown_02022C2D; -extern u8 gUnknown_02022C3E; -extern u16 gUnknown_02022C3C; -extern u8 gUnknown_02022C20[]; -extern u8 gFieldLinkPlayerCount; -extern u8 gLocalLinkPlayerId; - -// IWRAM vars -IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; -IWRAM_DATA struct UnkStruct_Group *gUnknown_03000DA4; -IWRAM_DATA struct UnkStruct_URoom *gUnknown_03000DA8; -IWRAM_DATA void *gUnknown_03000DAC; -IWRAM_DATA bool32 gUnknown_03000DB0; - -// this file's functions -void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5); -u16 ReadAsU16(const u8 *ptr); -void sub_8012780(u8 taskId); -void sub_80134E8(u8 taskId); -void sub_8013C7C(u8 taskId); -void sub_8014A40(u8 taskId); -void sub_8014F48(u8 taskId); -void sub_80152F4(u8 taskId); -void sub_80156E0(u8 taskId); -void sub_80175EC(struct UnkStruct_Main4 *arg0, u8 count); -void sub_8017580(struct UnkStruct_x20 *arg0, u8 count); -u8 sub_8016FC0(struct UnkStruct_Main4 *arg0, u32 arg1); -u8 sub_8016FF0(struct UnkStruct_Main4 *arg0, u32 arg1); -bool8 PrintOnTextbox(u8 *textState, const u8 *str); -bool8 sub_801320C(struct UnkStruct_Leader *data, u32 arg1, u32 arg2); -u8 sub_8013398(struct UnkStruct_Main0 *arg0); -s8 sub_80170B8(u8 *arg0, bool32 arg1); -void sub_8018404(u8 *dest, struct UnkStruct_x20 *arg1); -void sub_8012F64(struct UnkStruct_Leader *data); -void sub_80149C4(void); -u8 sub_80132D4(struct UnkStruct_Main0 *arg0); -void sub_80178A0(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); -u32 sub_80176E4(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); -u8 sub_8017734(struct UnkStruct_x20 *arg0, struct UnkStruct_Shared *arg1, u8 arg2); -u8 sub_8013E44(void); -u32 sub_8013B8C(struct UnkStruct_Group *arg0, s32 id); -void sub_8013BD8(struct UnkStruct_Group *arg0, s32 id); -void sub_80173D4(void); -void sub_80177B8(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); -bool32 sub_8017678(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); -u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId); -void sub_801807C(struct TradeUnkStruct *arg0); -void sub_801B940(void); -void sub_801B94C(u16); -u16 sub_801B39C(void); -void sub_801AC54(void); -void sub_801DD98(void); -void sub_802A9A8(u8 monId, MainCallback callback); -void sub_802493C(u8 monId, MainCallback callback); -void sub_8020C70(MainCallback callback); -void sub_80149D8(void); -u16 sub_8019930(void); -void sub_8018784(u8 windowId); -void sub_8018884(const u8 *src); -bool32 mevent_0814257C(u8 *textState, const u8 *str); -s8 sub_8018B08(u8 *textState, u8 *arg1, u8 arg2, const u8 *str); -bool32 sub_8016F1C(struct UnkStruct_x20 *arg0, s16 arg1); -u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2); -void sub_8019F2C(void); -void sub_8019E70(u8 *arg0, s32 arg1); -bool32 sub_80180A0(u8 monId, struct TradeUnkStruct *arg1); -void sub_80180E8(u8 monId, struct TradeUnkStruct *arg1); -bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3); -void sub_80181CC(void); -bool32 sub_8017940(void); -u8 sub_8016B00(void); -void sub_801A274(struct UnkStruct_URoom *arg0); -void sub_801A284(struct UnkStruct_URoom *arg0); -bool32 sub_8017FD8(struct UnkStruct_URoom *arg0); -void sub_801689C(struct UnkStruct_URoom *arg0); -u8 sub_80181DC(struct UnkStruct_URoom *arg0); -bool32 sub_80168DC(struct UnkStruct_URoom *arg0); -bool32 sub_801704C(void); -s32 sub_8017CF8(s32 arg1, struct UnkStruct_Main0 *arg0); -s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender); -void sub_801818C(bool32 arg0); -void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2); -s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate); -s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6); -bool32 sub_8018024(void); -u32 sub_8017984(u32 arg0); -void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2); -void sub_8017D9C(u8 *dst, u32 arg1, u32 playerGender); -u32 sub_80179AC(struct UnkStruct_x20 *arg0); -void sub_8017E00(u8 *dst, u8 arg1); -void sub_8019F04(u8 *spriteIds); -void sub_8019E3C(void); -void sub_80173B0(void); -s32 sub_8017D04(u32 type, u32 species); -void sub_8017020(const u8 *src); -void sub_8019BA8(void *); -s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3); -void sub_801697C(u8 taskId); -bool8 sub_8017630(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1); - -// const rom data -extern const u8 *const gUnknown_082EDB60[][5]; - -extern const u8 gText_UnkCtrlCodeF907[]; -extern const u8 gUnknown_082EDBC4[]; -extern const u8 gText_AwaitingCommunication[]; -extern const u8 gText_AwaitingLink[]; -extern const u8 gUnknown_082EDC5C[]; -extern const u8 gUnknown_082EDC9C[]; -extern const u8 gUnknown_082EDC78[]; -extern const u8 gUnknown_082EDD58[]; -extern const u8 gUnknown_082EDBE8[]; -extern const u8 gUnknown_082EDC0C[]; -extern const u8 gUnknown_082EDC34[]; -extern const u8 gUnknown_082EE560[]; -extern const u8 gUnknown_082EE57C[]; -extern const u8 gUnknown_082EFC54[]; -extern const u8 gUnknown_082EFC3C[]; -extern const u8 gUnknown_082EDE0C[]; -extern const u8 gUnknown_082EDDF4[]; -extern const u8 gUnknown_082EF7DC[]; -extern const u8 gUnknown_082EDE48[]; -extern const u8 gUnknown_082EDE64[]; -extern const u8 gUnknown_082EDF40[]; -extern const u8 gText_PleaseStartOver[]; -extern const u8 gUnknown_082EF7F8[]; -extern const u8 gUnknown_082EFBC8[]; -extern const u8 gUnknown_082EFC90[]; -extern const u8 gUnknown_082EDEC4[]; -extern const u8 gUnknown_082EDF04[]; -extern const u8 gText_WirelessSearchCanceled[]; -extern const u8 gUnknown_082EF4FC[]; -extern const u8 gUnknown_082EF520[]; -extern const u8 gUnknown_082EF5B8[]; -extern const u8 gUnknown_082EF1EC[]; -extern const u8 gUnknown_082EF544[]; -extern const u8 gUnknown_082EF47C[]; -extern const u8 gUnknown_082EE6C8[]; -extern const u8 gUnknown_082EE004[]; -extern const u8 gUnknown_082EEBD0[]; -extern const u8 gUnknown_082EEB88[]; -extern const u8 gUnknown_082EE598[]; -extern const u8 gUnknown_082EEC14[]; -extern const u8 gUnknown_082EF590[]; -extern const u8 gUnknown_082EF20C[]; -extern const u8 gUnknown_082EF564[]; -extern const u8 gUnknown_082EF4C4[]; -extern const u8 gUnknown_082EF298[]; -extern const u8 gUnknown_082EF65C[]; -extern const u8 gUnknown_082EF6E4[]; -extern const u8 gUnknown_082EF718[]; - -extern const u32 gUnknown_082F00C4[]; - -extern const u8 gUnknown_082F0530[]; - -extern const struct WindowTemplate gUnknown_082F00BC; -extern const struct WindowTemplate gUnknown_082F0124; -extern const struct WindowTemplate gUnknown_082F012C; -extern const struct WindowTemplate gUnknown_082F011C; -extern const struct WindowTemplate gUnknown_082F0174; -extern const struct WindowTemplate gUnknown_082F017C; -extern const struct WindowTemplate gUnknown_082F021C; -extern const struct WindowTemplate gUnknown_082F025C; -extern const struct WindowTemplate gUnknown_082F0294; -extern const struct WindowTemplate gUnknown_082F034C; - -extern const struct ListMenuTemplate gUnknown_082F015C; -extern const struct ListMenuTemplate gUnknown_082F0204; -extern const struct ListMenuTemplate gUnknown_082F0244; -extern const struct ListMenuTemplate gUnknown_082F027C; -extern const struct ListMenuTemplate gUnknown_082F032C; -extern const struct ListMenuTemplate gUnknown_082F03A4; - -extern const u8 *const gUnknown_082F0048[]; -extern const u8 *const gUnknown_082EDDC4[]; -extern const u8 *const gUnknown_082EFB70[]; -extern const u8 *const gUnknown_082EDD50[]; -extern const u8 *const gUnknown_082EDE9C[]; -extern const u8 *const gUnknown_082EDF80[]; -extern const u8 *const gUnknown_082EFD58[]; -extern const u8 *const gUnknown_082EEB80[]; -extern const u8 *const gUnknown_082EE378[]; -extern const u8 *const gUnknown_082EEC9C[]; -extern const u8 *const gUnknown_082EED3C[]; -extern const u8 *const gUnknown_082EE324[]; -extern const u8 *const gUnknown_082EE17C[]; - -extern const u8 *const gUnknown_082EE82C[][4]; - -extern const u8 *const gUnknown_082EE24C[][2]; - -extern const struct UnkStruct_Shared gUnknown_082F045C; - -extern const u8 *const gUnknown_082F04D8[22]; - -// code -void nullsub_89(void) -{ - -} - -void sub_80124EC(u8 windowId, u8 arg1, u8 stringId) -{ - FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); - switch (arg1 << 8) - { - case 0x200: - sub_80173E0(windowId, 1, gUnknown_082EDB60[0][stringId - 1], 0, 1, 0); - break; - case 0x400: - sub_80173E0(windowId, 1, gUnknown_082EDB60[1][stringId - 1], 0, 1, 0); - break; - case 0x2500: - sub_80173E0(windowId, 1, gUnknown_082EDB60[2][stringId - 1], 0, 1, 0); - break; - case 0x3500: - sub_80173E0(windowId, 1, gUnknown_082EDB60[3][stringId - 1], 0, 1, 0); - break; - case 0x2400: - sub_80173E0(windowId, 1, gUnknown_082EDB60[4][stringId - 1], 0, 1, 0); - break; - } - - CopyWindowToVram(windowId, 2); -} - -void sub_80125BC(u8 windowId) -{ - u8 text[30]; - u8 *txtPtr; - - sub_80173E0(windowId, 1, gSaveBlock2Ptr->playerName, 0, 1, 0); - txtPtr = StringCopy(text, gText_UnkCtrlCodeF907); - ConvertIntToDecimalStringN(txtPtr, ReadAsU16(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5); - sub_80173E0(windowId, 1, text, 0, 0x11, 0); -} - -void sub_801262C(u8 *dst, u8 caseId) -{ - switch (caseId) - { - case 1 ... 4: - case 9 ... 11: - case 14 ... 16: - case 21 ... 28: - // UB: argument *dst isn't used, instead it always prints to gStringVar4 - StringExpandPlaceholders(gStringVar4, gText_AwaitingCommunication); - break; - } -} - -bool32 sub_80126CC(u32 caseId) -{ - switch (caseId) - { - case 9 ... 11: - case 15 ... 16: - case 23 ... 27: - return TRUE; - default: - return FALSE; - } -} - -void BerryBlenderLinkBecomeLeader(void) -{ - u8 taskId; - struct UnkStruct_Leader *dataPtr; - - taskId = CreateTask(sub_8012780, 0); - gUnknown_02022C30.leader = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_03000DA0 = dataPtr; - - dataPtr->state = 0; - dataPtr->textState = 0; - gSpecialVar_Result = 0; -} - -void sub_8012780(u8 taskId) -{ - u32 id, val; - struct UnkStruct_Leader *data = gUnknown_02022C30.leader; - - switch (data->state) - { - case 0: - if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN) - gSpecialVar_0x8004++; - gUnknown_02022C2C = gUnknown_082F00C4[gSpecialVar_0x8004]; - gUnknown_02022C2D = gUnknown_082F00C4[gSpecialVar_0x8004] >> 8; - sub_8010F84(gUnknown_02022C2C, 0, 0); - sub_800B488(); - OpenLink(); - sub_8011C10(gUnknown_02022C2D & 0xF); - data->state = 3; - break; - case 3: - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0xA0); - data->field_8 = AllocZeroed(0xA0); - sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0->arr, 5); - sub_800DF90(&data->field_0->arr[0].unk.field_0, data->field_0->arr[0].unk.playerName); - data->field_0->arr[0].field_18 = 0; - data->field_0->arr[0].field_1A_0 = 1; - data->field_0->arr[0].field_1A_1 = 0; - data->field_0->arr[0].field_1B = 0; - data->field_17 = sub_8016FC0(data->field_4, 0xFF); - data->field_10 = AddWindow(&gUnknown_082F00BC); - switch (gUnknown_02022C2D & 0xF) - { - case 2: - case 3: - case 4: - data->listWindowId = AddWindow(&gUnknown_082F011C); - break; - case 5: - data->listWindowId = AddWindow(&gUnknown_082F0124); - break; - } - data->field_11 = AddWindow(&gUnknown_082F012C); - - FillWindowPixelBuffer(data->field_10, PIXEL_FILL(2)); - sub_80173E0(data->field_10, 0, gUnknown_082EDBC4, 8, 1, 4); - PutWindowTilemap(data->field_10); - CopyWindowToVram(data->field_10, 2); - - DrawStdWindowFrame(data->listWindowId, FALSE); - gMultiuseListMenuTemplate = gUnknown_082F015C; - gMultiuseListMenuTemplate.windowId = data->listWindowId; - data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); - - DrawStdWindowFrame(data->field_11, FALSE); - PutWindowTilemap(data->field_11); - CopyWindowToVram(data->field_11, 2); - - CopyBgTilemapBufferToVram(0); - data->field_13 = 1; - data->state = 4; - break; - case 4: - StringCopy(gStringVar1, gUnknown_082F0048[gUnknown_02022C2C]); - if ((gUnknown_02022C2D >> 4) != 0) - { - if (data->field_13 > (gUnknown_02022C2D >> 4) - 1 && (gUnknown_02022C2D & 0xF) != 0) - StringExpandPlaceholders(gStringVar4, gText_AwaitingLink); - else - StringExpandPlaceholders(gStringVar4, gText_AwaitingCommunication); - } - else - { - sub_801262C(gStringVar4, gUnknown_02022C2C); - } - - sub_80124EC(data->field_11, gUnknown_02022C2D, data->field_13); - data->state = 5; - break; - case 5: - if (PrintOnTextbox(&data->textState, gStringVar4)) - data->state = 6; - break; - case 6: - sub_801320C(data, 7, 10); - if (gMain.newKeys & B_BUTTON) - { - if (data->field_13 == 1) - data->state = 23; - else if ((gUnknown_02022C2D & 0xF0) != 0) - data->state = 30; - else - data->state = 19; - } - if ((gUnknown_02022C2D >> 4) != 0 - && data->field_13 > (gUnknown_02022C2D >> 4) - 1 - && (gUnknown_02022C2D & 0xF) != 0 - && sub_8012240() - && gMain.newKeys & START_BUTTON) - { - data->state = 15; - sub_800EF38(); - } - if (data->state == 6 && sub_80105EC()) - { - data->state = 9; - } - break; - case 9: - if (!sub_80105EC()) - { - data->state = 6; - data->field_13 = sub_8013398(data->field_0); - } - break; - case 10: - id = ((gUnknown_02022C2C & 0xF) == 2) ? 1 : 0; - if (PrintOnTextbox(&data->textState, gUnknown_082EDDC4[id])) - { - data->field_13 = sub_8013398(data->field_0); - RedrawListMenu(data->listTaskId); - data->state = 4; - } - break; - case 29: - id = ((gUnknown_02022C2D & 0xF) == 2) ? 0 : 1; - if (PrintOnTextbox(&data->textState, gUnknown_082EDDC4[id])) - { - data->state = 21; - } - break; - case 7: - if (PrintOnTextbox(&data->textState, gStringVar4)) - { - data->state = 11; - } - break; - case 11: - switch (sub_80170B8(&data->textState, sub_801064C(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName))) - { - case 0: - sub_800E0E8(); - CreateWirelessStatusIndicatorSprite(0, 0); - data->field_19 = 5; - sub_8010688(5, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); - data->state = 12; - break; - case 1: - case -1: - data->field_19 = 6; - sub_8010688(6, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); - data->state = 12; - break; - case -3: - data->state = 9; - break; - } - break; - case 12: - val = sub_8010714(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); - if (val == 1) - { - if (data->field_19 == 5) - { - data->field_0->arr[data->field_13].field_1B = 0; - RedrawListMenu(data->listTaskId); - data->field_13++; - if (data->field_13 == (gUnknown_02022C2D & 0xF)) - { - if ((gUnknown_02022C2D & 0xF0) != 0 || data->field_13 == 4) - { - data->state = 15; - } - else - { - sub_8018404(gStringVar1, &data->field_0->arr[data->field_13 - 1]); - StringExpandPlaceholders(gStringVar4, gUnknown_082EDC9C); - data->state = 13; - } - - sub_800EF38(); - sub_80124EC(data->field_11, gUnknown_02022C2D, data->field_13); - } - else - { - data->state = 4; - } - } - else - { - sub_8011DC0(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId)); - data->field_0->arr[data->field_13].field_1A_0 = 0; - sub_8013398(data->field_0); - RedrawListMenu(data->listTaskId); - data->state = 4; - } - - data->field_19 = 0; - } - else if (val == 2) - { - sub_8011A64(0, 0); - data->state = 4; - } - break; - case 13: - if (PrintOnTextbox(&data->textState, gStringVar4)) - data->state = 14; - break; - case 14: - if (++data->field_E > 120) - data->state = 17; - break; - case 15: - if (PrintOnTextbox(&data->textState, gUnknown_082EDC5C)) - data->state = 16; - break; - case 16: - switch (sub_80170B8(&data->textState, FALSE)) - { - case 0: - data->state = 17; - break; - case 1: - case -1: - if ((gUnknown_02022C2D & 0xF0) != 0) - data->state = 30; - else - data->state = 19; - break; - } - break; - case 19: - if (PrintOnTextbox(&data->textState, gUnknown_082EDC78)) - data->state = 20; - break; - case 20: - switch (sub_80170B8(&data->textState, FALSE)) - { - case 0: - data->state = 23; - break; - case 1: - case -1: - if ((gUnknown_02022C2D & 0xF0) != 0) - data->state = 15; - else if (data->field_13 == (gUnknown_02022C2D & 0xF)) - data->state = 15; - else - data->state = 4; - break; - } - break; - case 17: - if (!sub_801320C(data, 7, 29)) - data->state = 18; - break; - case 18: - if (sub_800EF1C()) - { - if (sub_800EF58(FALSE)) - { - data->state = 26; - } - else - { - if (++data->field_1A > 300) - { - data->state = 29; - data->textState = 0; - } - } - } - else - { - data->state = 29; - data->textState = 0; - } - break; - case 30: - if (PrintOnTextbox(&data->textState, gUnknown_082EDD58)) - data->state = 23; - break; - case 21: - case 23: - sub_800E084(); - sub_800EDD4(); - sub_8012F64(data); - data->state++; - break; - case 24: - EnableBothScriptContexts(); - DestroyTask(taskId); - gSpecialVar_Result = 5; - break; - case 22: - EnableBothScriptContexts(); - DestroyTask(taskId); - gSpecialVar_Result = 8; - break; - case 26: - if (sub_8011A80()) - { - data->state = 29; - } - else - { - if (gReceivedRemoteLinkPlayers != 0) - { - if (sub_80126CC(gUnknown_02022C2C)) - sub_801103C(); - sub_8011068(1); - sub_80149C4(); - sub_8012F64(data); - DestroyTask(taskId); - } - } - break; - } -} - -void sub_8012F64(struct UnkStruct_Leader *data) -{ - ClearWindowTilemap(data->field_11); - ClearStdWindowAndFrame(data->field_11, FALSE); - DestroyListMenuTask(data->listTaskId, 0, 0); - ClearWindowTilemap(data->field_10); - ClearStdWindowAndFrame(data->listWindowId, FALSE); - CopyBgTilemapBufferToVram(0); - RemoveWindow(data->field_11); - RemoveWindow(data->listWindowId); - RemoveWindow(data->field_10); - DestroyTask(data->field_17); - - Free(data->field_8); - Free(data->field_0); - Free(data->field_4); -} - -void sub_8012FC4(u8 *dst, u8 caseId) -{ - switch (caseId) - { - case 1: - case 2: - case 4: - case 14: - case 28: - StringExpandPlaceholders(dst, gUnknown_082EDBE8); - break; - case 21: - case 22: - StringExpandPlaceholders(dst, gUnknown_082EDC0C); - break; - case 3: - case 9: - case 10: - case 11: - case 15: - case 16: - case 23: - case 24: - case 25: - case 26: - case 27: - StringExpandPlaceholders(dst, gUnknown_082EDC34); - break; - } -} - -void sub_8013078(u8 *dst, u8 caseId) -{ - switch (caseId) - { - case 65: - case 68: - StringExpandPlaceholders(dst, gUnknown_082EE560); - break; - case 69: - case 72: - StringExpandPlaceholders(dst, gUnknown_082EE57C); - break; - } -} - -void sub_80130B4(u8 *dst, u8 caseId) -{ - switch (caseId) - { - case 1: - case 2: - case 4: - case 14: - case 21: - case 22: - case 28: - StringExpandPlaceholders(dst, gUnknown_082EFC3C); - break; - case 3: - case 9: - case 10: - case 11: - case 15: - case 16: - case 23: - case 24: - case 25: - case 26: - case 27: - StringExpandPlaceholders(dst, gUnknown_082EFC54); - break; - } -} - -void sub_8013160(u8 *dst, u8 caseId) -{ - switch (caseId) - { - case 1: - case 2: - case 4: - case 14: - case 21: - case 22: - case 28: - StringExpandPlaceholders(dst, gUnknown_082EDDF4); - break; - case 3: - case 9: - case 10: - case 11: - case 15: - case 16: - case 23: - case 24: - case 25: - case 26: - case 27: - StringExpandPlaceholders(dst, gUnknown_082EDE0C); - break; - } -} - -bool8 sub_801320C(struct UnkStruct_Leader *data, u32 arg1, u32 arg2) -{ - switch (sub_80132D4(data->field_0)) - { - case 1: - PlaySE(SE_PC_LOGIN); - RedrawListMenu(data->listTaskId); - sub_8018404(gStringVar2, &data->field_0->arr[data->field_13]); - sub_8012FC4(gStringVar4, gUnknown_02022C2C); - data->state = arg1; - break; - case 2: - sub_8011A64(0, 0); - RedrawListMenu(data->listTaskId); - data->state = arg2; - return TRUE; - } - - return FALSE; -} - -void sub_8013278(u8 arg0, u32 id, u8 arg2) -{ - struct UnkStruct_Leader *data = gUnknown_02022C30.leader; - u8 var = 0; - - switch (data->field_0->arr[id].field_1A_0) - { - case 1: - if (data->field_0->arr[id].field_1B != 0) - var = 2; - break; - case 2: - var = 1; - break; - } - - sub_80178A0(arg0, 0, arg2, &data->field_0->arr[id], var, id); -} - -u8 sub_80132D4(struct UnkStruct_Main0 *arg0) -{ - struct UnkStruct_Leader *data = gUnknown_02022C30.leader; - u8 ret = 0; - u8 i; - s32 id; - - for (i = 1; i < 5; i++) - { - u16 var = data->field_0->arr[i].field_1A_0; - if (var == 1) - { - id = sub_80176E4(&data->field_0->arr[i], data->field_4->arr); - if (id != 0xFF) - { - data->field_0->arr[i].unk = data->field_4->arr[id].unk0; - data->field_0->arr[i].field_18 = var; - } - else - { - data->field_0->arr[i].field_1A_0 = 2; - ret = 2; - } - } - } - - for (id = 0; id < 4; id++) - sub_8017734(data->field_0->arr, &data->field_4->arr[id].unk0, 5); - - if (ret != 2) - { - for (id = 0; id < 5; id++) - { - if (data->field_0->arr[id].field_1B != 0) - ret = 1; - } - } - - return ret; -} - -u8 sub_8013398(struct UnkStruct_Main0 *arg0) -{ - struct UnkStruct_Leader *data = gUnknown_02022C30.leader; - u8 copiedCount; - s32 i; - u8 ret; - - for (i = 0; i < 5; i++) - data->field_8->arr[i] = data->field_0->arr[i]; - - copiedCount = 0; - for (i = 0; i < 5; i++) - { - if (data->field_8->arr[i].field_1A_0 == 1) - { - data->field_0->arr[copiedCount] = data->field_8->arr[i]; - copiedCount++; - } - } - - ret = copiedCount; - for (; copiedCount < 5; copiedCount++) - { - data->field_0->arr[copiedCount].unk = gUnknown_082F045C; - data->field_0->arr[copiedCount].field_18 = 0; - data->field_0->arr[copiedCount].field_1A_0 = 0; - data->field_0->arr[copiedCount].field_1A_1 = 0; - data->field_0->arr[copiedCount].field_1B = 0; - } - - for (i = 0; i < 5; i++) - { - if (data->field_0->arr[i].field_1A_0 != 1) - continue; - if (data->field_0->arr[i].field_1B != 0x40) - continue; - - ret = i; - break; - } - - return ret; -} - -void BerryBlenderLinkJoinGroup(void) -{ - u8 taskId; - struct UnkStruct_Group *dataPtr; - - taskId = CreateTask(sub_80134E8, 0); - gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_03000DA4 = dataPtr; - - dataPtr->state = 0; - dataPtr->textState = 0; - gSpecialVar_Result = 0; -} - -void sub_80134E8(u8 taskId) -{ - s32 id; - struct UnkStruct_Group *data = gUnknown_02022C30.group; - - switch (data->state) - { - case 0: - if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN) - gSpecialVar_0x8004++; - gUnknown_02022C2C = gUnknown_082F0530[gSpecialVar_0x8004]; - sub_8010F84(gUnknown_02022C2C, 0, 0); - sub_800B488(); - OpenLink(); - sub_8011C5C(); - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0x200); - data->state = 1; - break; - case 1: - if (PrintOnTextbox(&data->textState, gUnknown_082EFB70[gSpecialVar_0x8004])) - data->state = 2; - break; - case 2: - sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0->arr, 16); - data->field_11 = sub_8016FC0(data->field_4, gSpecialVar_0x8004); - data->field_C = AddWindow(&gUnknown_082F00BC); - data->listWindowId = AddWindow(&gUnknown_082F0174); - data->field_D = AddWindow(&gUnknown_082F017C); - - FillWindowPixelBuffer(data->field_C, PIXEL_FILL(2)); - sub_80173E0(data->field_C, 0, gUnknown_082EF7DC, 8, 1, 4); - PutWindowTilemap(data->field_C); - CopyWindowToVram(data->field_C, 2); - - DrawStdWindowFrame(data->listWindowId, FALSE); - gMultiuseListMenuTemplate = gUnknown_082F0204; - gMultiuseListMenuTemplate.windowId = data->listWindowId; - data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); - - DrawStdWindowFrame(data->field_D, FALSE); - PutWindowTilemap(data->field_D); - sub_80125BC(data->field_D); - CopyWindowToVram(data->field_D, 2); - - CopyBgTilemapBufferToVram(0); - data->field_F = 0; - data->state = 3; - break; - case 3: - id = sub_8013E44(); - switch (id) - { - case 1: - PlaySE(SE_PC_LOGIN); - RedrawListMenu(data->listTaskId); - break; - case 0: - id = ListMenu_ProcessInput(data->listTaskId); - if (gMain.newKeys & A_BUTTON && id != -1) - { - // this unused variable along with the assignment is needed to match - u32 unusedVar; - unusedVar = data->field_0->arr[id].unk.field_0.unk_0a_0; - - if (data->field_0->arr[id].field_1A_0 == 1 && !data->field_0->arr[id].unk.field_0.unk_0a_7) - { - u32 var = sub_8013B8C(data, id); - if (var == 0) - { - sub_8013BD8(data, id); - data->state = 5; - PlaySE(SE_PN_ON); - } - else - { - StringCopy(gStringVar4, gUnknown_082EDD50[var - 1]); - data->state = 18; - PlaySE(SE_PN_ON); - } - } - else - { - PlaySE(SE_WALL_HIT); - } - } - else if (gMain.newKeys & B_BUTTON) - { - data->state = 10; - } - break; - default: - RedrawListMenu(data->listTaskId); - break; - } - break; - case 5: - sub_80130B4(gStringVar4, gUnknown_02022C2C); - if (PrintOnTextbox(&data->textState, gStringVar4)) - { - sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); - data->state = 6; - } - break; - case 6: - if (gReceivedRemoteLinkPlayers != 0) - { - gUnknown_02022C2C = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0; - sub_8011A64(0, 0); - switch (gUnknown_02022C2C) - { - case 1 ... 5: - case 9 ... 11: - case 13 ... 16: - case 21 ... 28: - data->state = 20; - return; - } - } - - switch (sub_8011A74()) - { - case 1: - data->state = 12; - break; - case 2: - case 6: - case 9: - data->state = 14; - break; - case 5: - sub_8013160(gStringVar4, gUnknown_02022C2C); - if (PrintOnTextbox(&data->textState, gStringVar4)) - { - if (gUnknown_02022C2C == 28 || gUnknown_02022C2C == 14) - { - sub_8011A64(12, 0); - } - else - { - sub_8011A64(7, 0); - StringCopy(gStringVar1, gUnknown_082F0048[gUnknown_02022C2C]); - StringExpandPlaceholders(gStringVar4, gUnknown_082EDE48); - } - } - break; - case 7: - if (data->field_15 > 0xF0) - { - if (PrintOnTextbox(&data->textState, gStringVar4)) - { - sub_8011A64(12, 0); - data->field_15 = 0; - } - } - else - { - switch (gUnknown_02022C2C) - { - case 1: - case 2: - case 4: - case 14: - case 28: - break; - default: - data->field_15++; - break; - } - } - break; - } - - if (!sub_8011A74() && gMain.newKeys & B_BUTTON) - data->state = 7; - break; - case 7: - if (PrintOnTextbox(&data->textState, gUnknown_082EDE64)) - data->state = 8; - break; - case 8: - switch (sub_80170B8(&data->textState, sub_8011A74())) - { - case 0: - sub_80106D4(); - data->state = 9; - RedrawListMenu(data->listTaskId); - break; - case 1: - case -1: - data->state = 5; - RedrawListMenu(data->listTaskId); - break; - case -3: - data->state = 6; - RedrawListMenu(data->listTaskId); - break; - } - break; - case 9: - if (sub_8011A74()) - data->state = 6; - break; - case 10: - case 12: - case 14: - case 18: - case 20: - ClearWindowTilemap(data->field_D); - ClearStdWindowAndFrame(data->field_D, FALSE); - DestroyListMenuTask(data->listTaskId, 0, 0); - ClearWindowTilemap(data->field_C); - ClearStdWindowAndFrame(data->listWindowId, FALSE); - CopyBgTilemapBufferToVram(0); - RemoveWindow(data->field_D); - RemoveWindow(data->listWindowId); - RemoveWindow(data->field_C); - DestroyTask(data->field_11); - Free(data->field_0); - Free(data->field_4); - data->state++; - break; - case 13: - sub_800E084(); - if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()])) - { - gSpecialVar_Result = 6; - data->state = 23; - } - break; - case 11: - sub_800E084(); - gSpecialVar_Result = 5; - data->state = 23; - break; - case 15: - sub_800E084(); - if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()])) - { - gSpecialVar_Result = 8; - data->state = 23; - } - break; - case 19: - if (PrintOnTextbox(&data->textState, gStringVar4)) - { - gSpecialVar_Result = 8; - data->state = 23; - } - break; - case 23: - DestroyTask(taskId); - sub_80173D4(); - sub_800EDD4(); - break; - case 21: - sub_80149C4(); - DestroyTask(taskId); - break; - } -} - -u32 sub_8013B8C(struct UnkStruct_Group *arg0, s32 id) -{ - struct UnkStruct_x20 *structPtr = &arg0->field_0->arr[id]; - - if (gUnknown_02022C2C == 4 && structPtr->unk.field_0.unk_00.unk_01_2 != 3) - { - if (!(gSaveBlock2Ptr->specialSaveWarpFlags & 0x80)) - return 1; - else if (structPtr->unk.field_0.unk_00.unk_00_7) - return 0; - } - else - { - return 0; - } - - return 2; -} - -void sub_8013BD8(struct UnkStruct_Group *data, s32 id) -{ - data->field_F = id; - sub_800E0E8(); - CreateWirelessStatusIndicatorSprite(0, 0); - RedrawListMenu(data->listTaskId); - sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); - sub_8011090(gUnknown_082F0530[gSpecialVar_0x8004], 0, 1); - sub_8011FC8(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId)); -} - -u8 sub_8013C40(void) -{ - u8 taskId; - struct UnkStruct_Group *dataPtr; - - taskId = CreateTask(sub_8013C7C, 0); - gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data); - - dataPtr->state = 0; - dataPtr->textState = 0; - - gUnknown_03000DA4 = dataPtr; - - return taskId; -} - -void sub_8013C7C(u8 taskId) -{ - struct UnkStruct_Group *data = gUnknown_02022C30.group; - - switch (data->state) - { - case 0: - sub_8010F84(0, 0, 0); - sub_800B488(); - OpenLink(); - sub_8011C5C(); - sub_80111B0(TRUE); - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0x200); - data->state = 2; - break; - case 2: - sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0->arr, 16); - data->field_11 = sub_8016FC0(data->field_4, 0xFF); - data->field_F = 0; - data->state = 3; - break; - case 3: - if (sub_8013E44() == 1) - PlaySE(SE_PC_LOGIN); - if (gTasks[taskId].data[15] == 0xFF) - data->state = 10; - break; - case 10: - DestroyTask(data->field_11); - Free(data->field_0); - Free(data->field_4); - sub_800EDD4(); - data->state++; - break; - case 11: - sub_800EDD4(); - DestroyTask(taskId); - break; - } -} - -bool32 sub_8013D88(u32 arg0, u32 id) -{ - if (id == 0xFF) - return TRUE; - - if (id <= ARRAY_COUNT(gUnknown_082F04D8)) // UB: <= may access data outside the array - { - const u8 *bytes = gUnknown_082F04D8[id]; - - while ((*(bytes) != 0xFF)) - { - if ((*bytes) == arg0) - return TRUE; - bytes++; - } - } - - return FALSE; -} - -u8 sub_8013DBC(struct UnkStruct_Group *data, u32 id) -{ - if (data->field_0->arr[id].field_1A_0 == 1) - { - if (data->field_0->arr[id].unk.field_0.unk_0a_7) - return 3; - else if (data->field_0->arr[id].field_1A_1 != 0) - return 1; - else if (data->field_0->arr[id].field_1B != 0) - return 2; - } - - return 0; -} - -void sub_8013DF4(u8 arg0, u32 id, u8 arg2) -{ - struct UnkStruct_Group *data = gUnknown_02022C30.group; - u8 var = sub_8013DBC(data, id); - - sub_80177B8(arg0, 8, arg2, &data->field_0->arr[id], var, id); -} - -u8 sub_8013E44(void) -{ - struct UnkStruct_Group *data = gUnknown_02022C30.group; - u8 ret = 0; - u8 i; - s32 id; - - for (i = 0; i < 16; i++) - { - if (data->field_0->arr[i].field_1A_0 != 0) - { - id = sub_80176E4(&data->field_0->arr[i], data->field_4->arr); - if (id != 0xFF) - { - if (data->field_0->arr[i].field_1A_0 == 1) - { - if (sub_8017678(&data->field_0->arr[i], &data->field_4->arr[id])) - { - data->field_0->arr[i].unk = data->field_4->arr[id].unk0; - data->field_0->arr[i].field_1B = 0x40; - ret = 1; - } - else - { - if (data->field_0->arr[i].field_1B != 0) - { - data->field_0->arr[i].field_1B--; - if (data->field_0->arr[i].field_1B == 0) - ret = 2; - } - } - } - else - { - data->field_0->arr[i].field_1A_0 = 1; - data->field_0->arr[i].field_1B = 0x40; - ret = 1; - } - - data->field_0->arr[i].field_18 = 0; - } - else - { - if (data->field_0->arr[i].field_1A_0 != 2) - { - data->field_0->arr[i].field_18++; - if (data->field_0->arr[i].field_18 >= 300) - { - data->field_0->arr[i].field_1A_0 = 2; - ret = 2; - } - } - } - } - } - - for (id = 0; id < 4; id++) - { - if (sub_8017734(data->field_0->arr, &data->field_4->arr[id].unk0, 16) != 0xFF) - ret = 1; - } - - return ret; -} - -void sub_8013F60(u8 taskId) -{ - sub_80773AC(); - DestroyTask(taskId); -} - -u8 sub_8013F78(void) -{ - u8 taskId = CreateTask(sub_8013F60, 0); - - return taskId; -} - -void sub_8013F90(u8 taskId) -{ - u32 monId = sub_8018120(&gUnknown_02022C40, GetMultiplayerId()); - - switch (gTasks[taskId].data[0]) - { - case 0: - gTasks[taskId].data[0]++; - SendBlock(0, &gPlayerParty[monId], sizeof(struct Pokemon)); - break; - case 1: - if (GetBlockReceivedStatus() == 3) - { - gEnemyParty[0] = *(struct Pokemon*)(gBlockRecvBuffer[GetMultiplayerId() ^ 1]); - IncrementGameStat(GAME_STAT_50); - ResetBlockReceivedFlags(); - gTasks[taskId].data[0]++; - } - break; - case 2: - memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, sizeof(struct MailStruct) * PARTY_SIZE + 4); - if (SendBlock(0, gBlockSendBuffer, sizeof(struct MailStruct) * PARTY_SIZE + 4)) - gTasks[taskId].data[0]++; - break; - case 3: - if (GetBlockReceivedStatus() == 3) - { - memcpy(gUnknown_020321C0, gBlockRecvBuffer[GetMultiplayerId() ^ 1], sizeof(struct MailStruct) * PARTY_SIZE); - ResetBlockReceivedFlags(); - gUnknown_02032298[0] = monId; - gUnknown_02032298[1] = 6; - gMain.savedCallback = CB2_ReturnToField; - SetMainCallback2(sub_807AE50); - sub_801807C(&gUnknown_02022C40); - DestroyTask(taskId); - } - break; - } -} - -void sub_80140E0(u8 taskId) -{ - switch (gTasks[taskId].data[0]) - { - case 0: - if (GetMultiplayerId() == 0) - sub_800A4D8(2); - gTasks[taskId].data[0]++; - break; - case 1: - if (GetBlockReceivedStatus() == sub_800A9D8()) - { - s32 i; - u16 *recvBuff; - - for (i = 0; i < GetLinkPlayerCount(); i++) - { - recvBuff = gBlockRecvBuffer[i]; - CopyTrainerCardData(&gTrainerCards[i], recvBuff, gLinkPlayers[i].version); - } - - if (GetLinkPlayerCount() == 2) - { - recvBuff = gBlockRecvBuffer[GetMultiplayerId() ^ 1]; - sub_801B94C(recvBuff[48]); - } - else - { - sub_801B940(); - } - - ResetBlockReceivedFlags(); - DestroyTask(taskId); - } - break; - } -} - -void sub_80141A4(void) -{ - switch (gMain.state) - { - case 0: - CreateTask(sub_80140E0, 5); - gMain.state++; - break; - case 1: - if (!FuncIsActiveTask(sub_80140E0)) - ShowTrainerCardInLink(GetMultiplayerId() ^ 1, CB2_ReturnToField); - break; - } - - RunTasks(); - RunTextPrinters(); - AnimateSprites(); - BuildOamBuffer(); -} - -void sub_8014210(u16 battleFlags) -{ - HealPlayerParty(); - SavePlayerParty(); - LoadPlayerBag(); - gLinkPlayers[0].linkType = 0x2211; - gLinkPlayers[GetMultiplayerId()].id = GetMultiplayerId(); - gLinkPlayers[GetMultiplayerId() ^ 1].id = GetMultiplayerId() ^ 1; - gMain.savedCallback = sub_80B360C; - gBattleTypeFlags = battleFlags; - PlayBattleBGM(); -} - -void sub_8014290(u16 arg0, u16 x, u16 y) -{ - VarSet(VAR_CABLE_CLUB_STATE, arg0); - SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); - SetDynamicWarpWithCoords(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); - WarpIntoMap(); -} - -void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) -{ - gSpecialVar_0x8004 = arg4; - VarSet(VAR_CABLE_CLUB_STATE, arg4); - gFieldLinkPlayerCount = GetLinkPlayerCount(); - gLocalLinkPlayerId = GetMultiplayerId(); - SetCableClubWarp(); - SetWarpDestination(mapGroup, mapNum, -1, x, y); - WarpIntoMap(); -} - -void sub_8014384(void) -{ - switch (gMain.state) - { - case 0: - CreateTask(sub_80140E0, 5); - gMain.state++; - break; - case 1: - if (!FuncIsActiveTask(sub_80140E0)) - SetMainCallback2(sub_8086074); - break; - } - - RunTasks(); - RunTextPrinters(); - AnimateSprites(); - BuildOamBuffer(); -} - -void sub_80143E4(void *arg0, bool32 arg1) -{ - u16 *argAsU16Ptr = arg0; - - TrainerCard_GenerateCardForPlayer((struct TrainerCard *)argAsU16Ptr); - if (arg1) - argAsU16Ptr[48] = sub_801B39C(); - else - argAsU16Ptr[48] = 0; -} - -void sub_801440C(u8 taskId) -{ - sub_801B940(); - switch (gUnknown_02022C2C) - { - case 1 ... 4: - case 9 ... 11: - case 13: - case 15: - RecordMixTrainerNames(); - break; - } - - switch (gUnknown_02022C2C) - { - case 65: - case 81: - CleanupOverworldWindowsAndTilemaps(); - gMain.savedCallback = sub_801AC54; - InitChooseHalfPartyForBattle(3); - break; - case 1: - CleanupOverworldWindowsAndTilemaps(); - sub_80143E4(gBlockSendBuffer, TRUE); - HealPlayerParty(); - SavePlayerParty(); - LoadPlayerBag(); - sub_8014304(MAP_GROUP(SINGLE_BATTLE_COLOSSEUM), MAP_NUM(SINGLE_BATTLE_COLOSSEUM), 6, 8, 1); - SetMainCallback2(sub_8014384); - break; - case 2: - CleanupOverworldWindowsAndTilemaps(); - HealPlayerParty(); - SavePlayerParty(); - LoadPlayerBag(); - sub_80143E4(gBlockSendBuffer, TRUE); - sub_8014304(MAP_GROUP(SINGLE_BATTLE_COLOSSEUM), MAP_NUM(SINGLE_BATTLE_COLOSSEUM), 6, 8, 2); - SetMainCallback2(sub_8014384); - break; - case 3: - CleanupOverworldWindowsAndTilemaps(); - HealPlayerParty(); - SavePlayerParty(); - LoadPlayerBag(); - sub_80143E4(gBlockSendBuffer, TRUE); - sub_8014304(MAP_GROUP(DOUBLE_BATTLE_COLOSSEUM), MAP_NUM(DOUBLE_BATTLE_COLOSSEUM), 5, 8, 5); - SetMainCallback2(sub_8014384); - break; - case 4: - sub_80143E4(gBlockSendBuffer, TRUE); - CleanupOverworldWindowsAndTilemaps(); - sub_8014304(MAP_GROUP(TRADE_CENTER), MAP_NUM(TRADE_CENTER), 5, 8, 3); - SetMainCallback2(sub_8014384); - break; - case 15: - sub_80143E4(gBlockSendBuffer, TRUE); - CleanupOverworldWindowsAndTilemaps(); - sub_8014304(MAP_GROUP(RECORD_CORNER), MAP_NUM(RECORD_CORNER), 8, 9, 4); - SetMainCallback2(sub_8014384); - break; - case 68: - CleanupOverworldWindowsAndTilemaps(); - CreateTask(sub_8013F90, 0); - break; - case 5: - case 69: - if (GetMultiplayerId() == 0) - { - sub_800ED10(); - } - else - { - sub_800ED28(); - sub_8010F84(69, 0, 1); - } - sub_801DD98(); - break; - case 8: - case 72: - sub_80143E4(gBlockSendBuffer, FALSE); - SetMainCallback2(sub_80141A4); - break; - case 9: - sub_8014290(8, 5, 1); - sub_802A9A8(GetCursorSelectionMonId(), CB2_LoadMap); - break; - case 10: - sub_8014290(7, 9, 1); - sub_8020C70(CB2_LoadMap); - break; - case 11: - sub_8014290(8, 5, 1); - sub_802493C(GetCursorSelectionMonId(), CB2_LoadMap); - break; - } - - DestroyTask(taskId); - gSpecialVar_Result = 1; - if (gUnknown_02022C2C != 68) - ScriptContext2_Disable(); -} - -void sub_8014790(u8 taskId) -{ - s16 *data = gTasks[taskId].data; - u16 *sendBuff = (u16*)(gBlockSendBuffer); - - switch (data[0]) - { - case 0: - gSpecialVar_Result = 1; - switch (gUnknown_02022C2C) - { - case 14: - case 28: - gLinkPlayers[0].linkType = 0x2211; - gLinkPlayers[0].id = 0; - gLinkPlayers[1].id = 2; - sendBuff[0] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[0] - 1], MON_DATA_SPECIES); - sendBuff[1] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[1] - 1], MON_DATA_SPECIES, NULL); - gMain.savedCallback = NULL; - data[0] = 4; - RecordMixTrainerNames(); - ResetBlockReceivedFlags(); - break; - case 16: - case 23 ... 27: - RecordMixTrainerNames(); - DestroyTask(taskId); - default: - EnableBothScriptContexts(); - data[0] = 1; - break; - } - break; - case 1: - if (!ScriptContext1_IsScriptSetUp()) - { - FadeScreen(1, 0); - data[0] = 2; - } - break; - case 2: - if (!gPaletteFade.active) - { - if (gUnknown_02022C2C == 29) - { - DestroyTask(taskId); - SetMainCallback2(sub_80773AC); - } - else - { - sub_800ADF8(); - data[0] = 3; - } - } - break; - case 3: - if (IsLinkTaskFinished()) - { - DestroyTask(taskId); - sub_80149D8(); - } - break; - case 4: - if (SendBlock(0, gBlockSendBuffer, 0xE)) - data[0] = 5; - break; - case 5: - if (GetBlockReceivedStatus() == 3) - { - ResetBlockReceivedFlags(); - if (sub_80B2AF4(gBlockRecvBuffer[0], gBlockRecvBuffer[1])) - { - gSpecialVar_Result = 11; - data[0] = 7; - } - else - { - data[0] = 6; - } - } - break; - case 6: - EnableBothScriptContexts(); - DestroyTask(taskId); - break; - case 7: - sub_800AC34(); - data[0] = 8; - break; - case 8: - if (gReceivedRemoteLinkPlayers == 0) - { - sub_800E084(); - EnableBothScriptContexts(); - DestroyTask(taskId); - } - break; - } -} - -void sub_80149C4(void) -{ - CreateTask(sub_8014790, 0); -} - -void sub_80149D8(void) -{ - u8 taskId = CreateTask(sub_801440C, 0); - gTasks[taskId].data[0] = 0; -} - -void sub_8014A00(u32 arg0) -{ - u8 taskId; - struct UnkStruct_Leader *dataPtr; - - taskId = CreateTask(sub_8014A40, 0); - gUnknown_02022C30.leader = dataPtr = (void*)(gTasks[taskId].data); - - dataPtr->state = 0; - dataPtr->textState = 0; - dataPtr->field_18 = arg0; - gSpecialVar_Result = 0; -} - -void sub_8014A40(u8 taskId) -{ - struct UnkStruct_Leader *data = gUnknown_02022C30.leader; - struct WindowTemplate winTemplate; - s32 val; - - switch (data->state) - { - case 0: - gUnknown_02022C2C = data->field_18; - gUnknown_02022C2D = 2; - sub_8010F84(data->field_18, 0, 0); - sub_8010FA0(FALSE, FALSE); - sub_800B488(); - OpenLink(); - sub_8011C10(2); - data->state = 1; - break; - case 1: - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0xA0); - data->field_8 = AllocZeroed(0xA0); - sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0->arr, 5); - sub_800DF90(&data->field_0->arr[0].unk.field_0, data->field_0->arr[0].unk.playerName); - data->field_0->arr[0].field_18 = 0; - data->field_0->arr[0].field_1A_0 = 1; - data->field_0->arr[0].field_1A_1 = 0; - data->field_0->arr[0].field_1B = 0; - data->field_17 = sub_8016FC0(data->field_4, 0xFF); - - winTemplate = gUnknown_082F011C; - winTemplate.baseBlock = sub_8019930(); - winTemplate.paletteNum = 0xC; - data->listWindowId = AddWindow(&winTemplate); - sub_8018784(data->listWindowId); - gMultiuseListMenuTemplate = gUnknown_082F015C; - gMultiuseListMenuTemplate.windowId = data->listWindowId; - data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); - - CopyBgTilemapBufferToVram(0); - data->field_13 = 1; - data->state = 2; - break; - case 2: - StringCopy(gStringVar1, gUnknown_082F0048[gUnknown_02022C2C]); - sub_801262C(gStringVar4, gUnknown_02022C2C); - data->state = 3; - break; - case 3: - sub_8018884(gStringVar4); - data->state = 4; - break; - case 4: - sub_801320C(data, 5, 6); - if (gMain.newKeys & B_BUTTON) - { - data->state = 13; - sub_800E084(); - } - break; - case 6: - if (mevent_0814257C(&data->textState, gUnknown_082EDF40)) - { - data->field_13 = sub_8013398(data->field_0); - RedrawListMenu(data->listTaskId); - data->state = 2; - } - break; - case 5: - data->state = 7; - break; - case 7: - switch (sub_8018B08(&data->textState, &data->field_14, 0, gStringVar4)) - { - case 0: - sub_800E0E8(); - CreateWirelessStatusIndicatorSprite(0, 0); - data->field_0->arr[data->field_13].field_1B = 0; - RedrawListMenu(data->listTaskId); - data->field_19 = 5; - sub_8010688(5, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); - data->state = 8; - break; - case 1: - case -1: - data->field_19 = 6; - sub_8010688(6, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); - data->state = 8; - break; - } - break; - case 8: - val = sub_8010714(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); - if (val == 1) - { - if (data->field_19 == 5) - { - data->field_0->arr[data->field_13].field_1B = 0; - RedrawListMenu(data->listTaskId); - data->field_13++; - sub_8018404(gStringVar1, &data->field_0->arr[data->field_13 - 1]); - StringExpandPlaceholders(gStringVar4, gUnknown_082EDC9C); - data->state = 9; - sub_800EF38(); - } - else - { - sub_8011DC0(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId)); - data->field_0->arr[data->field_13].field_1A_0 = 0; - sub_8013398(data->field_0); - RedrawListMenu(data->listTaskId); - data->state = 2; - } - - data->field_19 = 0; - } - else if (val == 2) - { - sub_8011A64(0, 0); - data->state = 2; - } - break; - case 9: - sub_8018884(gStringVar4); - data->state = 10; - break; - case 10: - if (++data->field_E > 120) - data->state = 11; - break; - case 11: - if (!sub_801320C(data, 5, 6)) - data->state = 12; - break; - case 12: - if (sub_800EF1C()) - { - sub_800EF58(FALSE); - data->state = 15; - } - else - { - data->state = 6; - } - break; - case 13: - sub_800E084(); - sub_800EDD4(); - DestroyListMenuTask(data->listTaskId, 0, 0); - CopyBgTilemapBufferToVram(0); - RemoveWindow(data->listWindowId); - DestroyTask(data->field_17); - Free(data->field_8); - Free(data->field_0); - Free(data->field_4); - data->state++; - break; - case 14: - if (mevent_0814257C(&data->textState, gText_PleaseStartOver)) - { - DestroyTask(taskId); - gSpecialVar_Result = 5; - } - break; - case 15: - if (sub_8011A74() == 1 || sub_8011A74() == 2) - { - data->state = 13; - } - else if (gReceivedRemoteLinkPlayers != 0) - { - sub_8011068(1); - data->state++; - } - break; - case 16: - DestroyListMenuTask(data->listTaskId, 0, 0); - CopyBgTilemapBufferToVram(0); - RemoveWindow(data->listWindowId); - DestroyTask(data->field_17); - Free(data->field_8); - Free(data->field_0); - Free(data->field_4); - sub_800ADF8(); - data->state++; - break; - case 17: - if (IsLinkTaskFinished()) - DestroyTask(taskId); - break; - } -} - -void sub_8014EFC(u32 arg0) -{ - u8 taskId; - struct UnkStruct_Group *dataPtr; - - taskId = CreateTask(sub_8014F48, 0); - gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_03000DA4 = dataPtr; - - dataPtr->state = 0; - dataPtr->textState = 0; - dataPtr->field_12 = arg0 - 21; - gSpecialVar_Result = 0; -} - -void sub_8014F48(u8 taskId) -{ - s32 id; - struct WindowTemplate winTemplate1, winTemplate2; - struct UnkStruct_Group *data = gUnknown_02022C30.group; - - switch (data->state) - { - case 0: - sub_8010F84(data->field_12 + 21, 0, 0); - sub_800B488(); - OpenLink(); - sub_8011C5C(); - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0x200); - data->state = 1; - break; - case 1: - sub_8018884(gUnknown_082EF7F8); - data->state = 2; - break; - case 2: - sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0->arr, 16); - data->field_11 = sub_8016FC0(data->field_4, data->field_12 + 7); - - winTemplate1 = gUnknown_082F0174; - winTemplate1.baseBlock = sub_8019930(); - winTemplate1.paletteNum = 0xC; - data->listWindowId = AddWindow(&winTemplate1); - - winTemplate2 = gUnknown_082F017C; - winTemplate2.paletteNum = 0xC; - data->field_D = AddWindow(&winTemplate2); - - sub_8018784(data->listWindowId); - gMultiuseListMenuTemplate = gUnknown_082F0204; - gMultiuseListMenuTemplate.windowId = data->listWindowId; - data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); - - sub_8018784(data->field_D); - FillWindowPixelBuffer(data->field_D, PIXEL_FILL(1)); - PutWindowTilemap(data->field_D); - sub_80125BC(data->field_D); - CopyWindowToVram(data->field_D, 2); - - CopyBgTilemapBufferToVram(0); - data->field_F = 0; - data->state = 3; - break; - case 3: - id = sub_8013E44(); - switch (id) - { - case 1: - PlaySE(SE_PC_LOGIN); - default: - RedrawListMenu(data->listTaskId); - break; - case 0: - id = ListMenu_ProcessInput(data->listTaskId); - if (gMain.newKeys & A_BUTTON && id != -1) - { - // this unused variable along with the assignment is needed to match - u32 unusedVar; - unusedVar = data->field_0->arr[id].unk.field_0.unk_0a_0; - - if (data->field_0->arr[id].field_1A_0 == 1 && !data->field_0->arr[id].unk.field_0.unk_0a_7) - { - data->field_F = id; - sub_800E0E8(); - CreateWirelessStatusIndicatorSprite(0, 0); - RedrawListMenu(data->listTaskId); - sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); - sub_8011FC8(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId)); - PlaySE(SE_PN_ON); - data->state = 4; - } - else - { - PlaySE(SE_WALL_HIT); - } - } - else if (gMain.newKeys & B_BUTTON) - { - data->state = 6; - } - break; - } - break; - case 4: - sub_8018884(gUnknown_082EFC3C); - sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); - data->state = 5; - break; - case 5: - if (gReceivedRemoteLinkPlayers != 0) - { - gUnknown_02022C2C = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0; - data->state = 10; - } - - switch (sub_8011A74()) - { - case 1: - case 2: - case 6: - data->state = 8; - break; - case 5: - sub_8018884(gUnknown_082EDDF4); - sub_8011A64(0, 0); - break; - } - break; - case 6: - case 8: - case 10: - DestroyListMenuTask(data->listTaskId, 0, 0); - CopyBgTilemapBufferToVram(0); - RemoveWindow(data->field_D); - RemoveWindow(data->listWindowId); - DestroyTask(data->field_11); - Free(data->field_0); - Free(data->field_4); - data->state++; - break; - case 9: - if (mevent_0814257C(&data->textState, gUnknown_082EDF80[sub_8011A74()])) - { - sub_800E084(); - DestroyTask(taskId); - sub_800EDD4(); - gSpecialVar_Result = 5; - } - break; - case 7: - sub_800E084(); - sub_8018884(gText_PleaseStartOver); - DestroyTask(taskId); - sub_800EDD4(); - gSpecialVar_Result = 5; - break; - case 11: - data->state++; - sub_800ADF8(); - break; - case 12: - if (IsLinkTaskFinished()) - DestroyTask(taskId); - break; - } -} - -void sub_80152A8(u32 arg0) -{ - u8 taskId; - struct UnkStruct_Group *dataPtr; - - taskId = CreateTask(sub_80152F4, 0); - gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data); - gUnknown_03000DA4 = dataPtr; - - dataPtr->state = 0; - dataPtr->textState = 0; - dataPtr->field_12 = arg0 - 21; - gSpecialVar_Result = 0; -} - -void sub_80152F4(u8 taskId) -{ - s32 id; - struct WindowTemplate winTemplate; - struct UnkStruct_Group *data = gUnknown_02022C30.group; - - switch (data->state) - { - case 0: - sub_8010F84(0, 0, 0); - sub_800B488(); - OpenLink(); - sub_8011C5C(); - data->field_4 = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0x200); - data->state = 1; - break; - case 1: - sub_8018884(gUnknown_082EFBC8); - data->state = 2; - break; - case 2: - sub_80175EC(data->field_4, 4); - sub_8017580(data->field_0->arr, 16); - data->field_11 = sub_8016FF0(data->field_4, data->field_12 + 7); - - if (data->field_13 != 0) - { - winTemplate = gUnknown_082F0174; - winTemplate.baseBlock = sub_8019930(); - data->listWindowId = AddWindow(&winTemplate); - - sub_8018784(data->listWindowId); - gMultiuseListMenuTemplate = gUnknown_082F0204; - gMultiuseListMenuTemplate.windowId = data->listWindowId; - data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); - - CopyBgTilemapBufferToVram(0); - } - - data->field_F = 0; - data->state = 3; - break; - case 3: - id = sub_8013E44(); - switch (id) - { - case 1: - PlaySE(SE_PC_LOGIN); - default: - if (data->field_13 != 0) - RedrawListMenu(data->listTaskId); - break; - case 0: - if (data->field_13 != 0) - id = ListMenu_ProcessInput(data->listTaskId); - if (data->field_14 > 120) - { - if (data->field_0->arr[0].field_1A_0 == 1 && !data->field_0->arr[0].unk.field_0.unk_0a_7) - { - if (sub_8016F1C(&data->field_0->arr[0], data->field_12 + 7)) - { - data->field_F = 0; - data->field_14 = 0; - sub_800E0E8(); - CreateWirelessStatusIndicatorSprite(0, 0); - sub_8011FC8(data->field_0->arr[0].unk.playerName, ReadAsU16(data->field_0->arr[0].unk.field_0.unk_00.playerTrainerId)); - PlaySE(SE_PN_ON); - data->state = 4; - } - else - { - PlaySE(SE_BOO); - data->state = 10; - } - } - } - else if (gMain.newKeys & B_BUTTON) - { - data->state = 6; - data->field_14 = 0; - } - data->field_14++; - break; - } - break; - case 4: - sub_8018884(gUnknown_082EFC90); - sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); - data->state = 5; - break; - case 5: - if (gReceivedRemoteLinkPlayers != 0) - { - gUnknown_02022C2C = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0; - data->state = 12; - } - - switch (sub_8011A74()) - { - case 1: - case 2: - case 6: - data->state = 8; - break; - case 5: - sub_8018884(gUnknown_082EDEC4); - sub_8011A64(0, 0); - break; - } - break; - case 6: - case 8: - case 10: - case 12: - if (data->field_13 != 0) - { - DestroyListMenuTask(data->listTaskId, 0, 0); - CopyBgTilemapBufferToVram(0); - RemoveWindow(data->listWindowId); - } - DestroyTask(data->field_11); - Free(data->field_0); - Free(data->field_4); - data->state++; - break; - case 9: - if (mevent_0814257C(&data->textState, gUnknown_082EDF04)) - { - sub_800E084(); - DestroyTask(taskId); - sub_800EDD4(); - gSpecialVar_Result = 5; - } - break; - case 7: - if (mevent_0814257C(&data->textState, gText_WirelessSearchCanceled)) - { - sub_800E084(); - DestroyTask(taskId); - sub_800EDD4(); - gSpecialVar_Result = 5; - } - break; - case 11: - if (mevent_0814257C(&data->textState, gUnknown_082EFD58[data->field_12])) - { - sub_800E084(); - DestroyTask(taskId); - sub_800EDD4(); - gSpecialVar_Result = 5; - } - break; - case 13: - data->state++; - sub_800ADF8(); - break; - case 14: - if (IsLinkTaskFinished()) - DestroyTask(taskId); - break; - } -} - -void UnionRoomSpecial(void) -{ - struct UnkStruct_URoom *dataPtr; - - sub_8010F60(); - CreateTask(sub_80156E0, 10); - - // dumb line needed to match - gUnknown_02022C30.uRoom = gUnknown_02022C30.uRoom; - - dataPtr = AllocZeroed(0x26C); - gUnknown_02022C30.uRoom = dataPtr; - gUnknown_03000DA8 = dataPtr; - - dataPtr->state = 0; - dataPtr->textState = 0; - dataPtr->field_10 = 0; - dataPtr->field_12 = 0; - - gSpecialVar_Result = 0; - sub_819A2BC(0xD0, 1); -} - -u16 ReadAsU16(const u8 *ptr) -{ - return (ptr[1] << 8) | (ptr[0]); -} - -void sub_8015664(u32 arg0, const u8 *src) -{ - struct UnkStruct_URoom *data = gUnknown_02022C30.uRoom; - - data->state = 8; - data->stateAfterPrint = arg0; - if (src != gStringVar4) - StringExpandPlaceholders(gStringVar4, src); -} - -void sub_801568C(const u8 *src) -{ - struct UnkStruct_URoom *data = gUnknown_02022C30.uRoom; - - data->state = 26; - if (src != gStringVar4) - StringExpandPlaceholders(gStringVar4, src); -} - -void sub_80156B0(struct UnkStruct_URoom *data) -{ - memcpy(&gDecompressionBuffer[0x3F00], data->field_0, 0x100); -} - -void sub_80156C8(struct UnkStruct_URoom *data) -{ - memcpy(data->field_0, &gDecompressionBuffer[0x3F00], 0x100); -} - -void sub_80156E0(u8 taskId) -{ - u32 id = 0; - s32 var5 = 0; - s32 playerGender = 0; - struct UnkStruct_URoom *data = gUnknown_02022C30.uRoom; - s16 *taskData = gTasks[taskId].data; - - switch (data->state) - { - case 0: - data->field_4 = AllocZeroed(0x70); - data->field_C = AllocZeroed(0x70); - data->field_0 = AllocZeroed(0x100); - data->field_8 = AllocZeroed(0x20); - sub_8017580(data->field_0->arr, 8); - gUnknown_02022C2C = 0x40; - data->field_20 = sub_8016DF0(data->field_C, data->field_4, 9); - sub_8019BA8(data->field_A0); - sub_8019F2C(); - data->state = 1; - break; - case 1: - sub_8019E70(data->spriteIds, taskData[0]); - if (++taskData[0] == 8) - data->state = 2; - break; - case 2: - sub_8010F84(0x40, 0, 0); - sub_8010FCC(gUnknown_02022C40.field_2, gUnknown_02022C40.field_A, gUnknown_02022C40.field_C); - sub_800B488(); - OpenLink(); - sub_8011C84(); - sub_8017580(&data->field_8->arr[0], 1); - sub_80175EC(data->field_4, 4); - sub_80175EC(data->field_C, 4); - gSpecialVar_Result = 0; - data->state = 3; - break; - case 3: - if ((sub_81B1360() == 8 || sub_81B1360() == 9) && gUnknown_02022C40.field_0 != 0) - { - id = GetCursorSelectionMonId(); - switch (gUnknown_02022C40.field_0) - { - case 1: - sub_8011090(0x54, 0, 1); - if (id >= PARTY_SIZE) - { - sub_801807C(&gUnknown_02022C40); - sub_8010FCC(0, 0, 0); - sub_801568C(gUnknown_082EF4FC); - } - else if (!sub_80180A0(GetCursorSelectionMonId(), &gUnknown_02022C40)) - { - sub_8015664(0x34, gUnknown_082EF47C); - } - else - { - data->state = 55; - } - break; - case 2: - sub_80156C8(data); - taskData[1] = gUnknown_02022C40.field_8; - if (id >= PARTY_SIZE) - { - sub_801568C(gUnknown_082EF544); - } - else - { - sub_8011090(0x54, 0, 1); - gUnknown_02022C2C = 0x44; - sub_80180E8(GetCursorSelectionMonId(), &gUnknown_02022C40); - data->state = 51; - } - break; - } - gUnknown_02022C40.field_0 = 0; - } - else - { - data->state = 4; - } - break; - case 4: - if (gSpecialVar_Result != 0) - { - if (gSpecialVar_Result == 9) - { - sub_8011090(0x54, 0, 1); - PlaySE(SE_PC_LOGIN); - StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); - data->state = 42; - gSpecialVar_Result = 0; - } - else if (gSpecialVar_Result == 11) - { - sub_8011090(0x54, 0, 1); - data->state = 23; - gSpecialVar_Result = 0; - } - else - { - taskData[0] = 0; - taskData[1] = gSpecialVar_Result - 1; - data->state = 24; - gSpecialVar_Result = 0; - } - } - else if (ScriptContext2_IsEnabled() != TRUE) - { - if (gMain.newKeys & A_BUTTON) - { - if (sub_801A2A8(data->field_0, &taskData[0], &taskData[1], data->spriteIds)) - { - PlaySE(SE_SELECT); - sub_80181CC(); - data->state = 24; - break; - } - else if (sub_8017940()) - { - sub_8011090(0x54, 0, 1); - PlaySE(SE_PC_LOGIN); - sub_80181CC(); - StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); - data->state = 45; - break; - } - } - - switch (sub_8016B00()) - { - case 1: - PlaySE(SE_PC_LOGIN); - case 2: - sub_801A274(data); - break; - case 4: - data->state = 11; - sub_80181CC(); - sub_8010FCC(0, 0, 0); - sub_8011090(0x53, sub_80181DC(data), 0); - break; - } - sub_801A284(data); - } - break; - case 23: - if (!FuncIsActiveTask(sub_809FA34)) - { - sub_8011090(0x40, 0, 0); - data->state = 4; - } - break; - case 24: - sub_801704C(); - playerGender = sub_8017CF8(taskData[1], data->field_0); - sub_8011090(0x54, 0, 1); - switch (sub_80179D4(data->field_0, taskData[0], taskData[1], playerGender)) - { - case 0: - data->state = 26; - break; - case 1: - sub_8012188(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, gUnknown_02022C2C); - data->field_12 = id; // Should be just 0, but won't match any other way. - data->state = 25; - break; - case 2: - sub_8015664(0x13, gStringVar4); - break; - } - break; - case 25: - sub_801704C(); - switch (sub_8011A74()) - { - case 4: - sub_801818C(TRUE); - data->state = 4; - break; - case 1: - case 2: - if (sub_8011B90() == TRUE) - sub_801568C(gUnknown_082EE6C8); - else - sub_8015664(30, gUnknown_082EE6C8); - - gUnknown_02022C2C = 0x40; - break; - } - - if (gReceivedRemoteLinkPlayers != 0) - { - sub_80143E4(gBlockSendBuffer, TRUE); - CreateTask(sub_80140E0, 5); - data->state = 38; - } - break; - case 38: - if (!FuncIsActiveTask(sub_80140E0)) - { - if (gUnknown_02022C2C == 0x44) - sub_8015664(31, gUnknown_082EE004); - else - data->state = 5; - } - break; - case 30: - if (gReceivedRemoteLinkPlayers == 0) - { - sub_801818C(FALSE); - sub_801A3D0(taskData[0], taskData[1], data->field_0); - data->state = 2; - } - break; - case 5: - id = sub_80179AC(&data->field_0->arr[taskData[1]]); - playerGender = sub_8017CF8(taskData[1], data->field_0); - sub_8015664(6, gUnknown_082EE24C[id][playerGender]); - break; - case 6: - var5 = sub_8017178(&data->textState, &data->field_1B, &data->field_1C, &gUnknown_082F021C, &gUnknown_082F0244); - if (var5 != -1) - { - if (gReceivedRemoteLinkPlayers == 0) - { - data->state = 28; - } - else - { - data->field_98 = 0; - playerGender = sub_8017CF8(taskData[1], data->field_0); - if (var5 == -2 || var5 == 0x40) - { - data->field_4C[0] = 0x40; - sub_800FE50(data->field_4C); - StringCopy(gStringVar4, gUnknown_082EEB80[gLinkPlayers[0].gender]); - data->state = 32; - } - else - { - gUnknown_02022C2C = var5; - gUnknown_02022C2D = (u32)(var5) >> 8; - if (gUnknown_02022C2C == 0x41 && !sub_8018024()) - { - sub_8015664(5, gUnknown_082EEBD0); - } - else - { - data->field_4C[0] = gUnknown_02022C2C | 0x40; - sub_800FE50(data->field_4C); - data->state = 27; - } - } - } - } - break; - case 28: - StringCopy(gStringVar4, gUnknown_082EEB88); - data->state = 36; - break; - case 27: - sub_8017FD8(data); - playerGender = sub_8017CF8(taskData[1], data->field_0); - id = sub_8017984(data->field_4C[0] & 0x3F); - if (PrintOnTextbox(&data->textState, gUnknown_082EE82C[playerGender][id])) - { - taskData[3] = 0; - data->state = 29; - } - break; - case 32: - sub_800AC34(); - data->state = 36; - break; - case 31: - data->field_4C[0] = 0x44; - data->field_4C[1] = gUnknown_02022C40.species; - data->field_4C[2] = gUnknown_02022C40.level; - sub_800FE50(data->field_4C); - data->state = 29; - break; - case 29: - if (gReceivedRemoteLinkPlayers == 0) - { - StringCopy(gStringVar4, gUnknown_082EEB88); - data->state = 28; - } - else - { - sub_8017FD8(data); - if (data->field_98 == 0x51) - { - if (gUnknown_02022C2C == 8) - { - sub_8018220(gStringVar4, data, FALSE); - data->state = 40; - } - else - { - data->state = 13; - } - } - else if (data->field_98 == 0x52) - { - data->state = 32; - sub_8017D9C(gStringVar4, gUnknown_02022C2C | 0x40, gLinkPlayers[0].gender); - gUnknown_02022C2C = 0; - } - } - break; - - case 7: - id = sub_80179AC(&data->field_0->arr[taskData[1]]); - playerGender = sub_8017CF8(taskData[1], data->field_0); - sub_8015664(6, gUnknown_082EE24C[id][playerGender]); - break; - case 40: - if (PrintOnTextbox(&data->textState, gStringVar4)) - { - data->state = 41; - sub_800ADF8(); - data->field_98 = 0; - data->field_9A[0] = 0; - } - break; - case 41: - if (IsLinkTaskFinished()) - { - if (GetMultiplayerId() == 0) - { - StringCopy(gStringVar1, gLinkPlayers[GetMultiplayerId() ^ 1].name); - id = sub_800E540(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); - StringExpandPlaceholders(gStringVar4, gUnknown_082EE378[id]); - data->state = 33; - } - else - { - data->state = 7; - } - } - break; - case 19: - switch (sub_80170B8(&data->textState, FALSE)) - { - case 0: - CopyBgTilemapBufferToVram(0); - gUnknown_02022C2C = 0x45; - sub_8011090(0x45, 0, 1); - sub_8012188(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, gUnknown_02022C2C); - data->field_12 = taskData[1]; - data->state = 20; - taskData[3] = 0; - break; - case 1: - case -1: - playerGender = sub_8017CF8(taskData[1], data->field_0); - sub_801568C(gUnknown_082EEC9C[playerGender]); - break; - } - break; - case 20: - if (++taskData[2] > 60) - { - data->state = 21; - taskData[2] = 0; - } - break; - case 21: - switch (sub_8011A74()) - { - case 4: - sub_801818C(TRUE); - data->state = 4; - break; - case 1: - case 2: - playerGender = sub_8017CF8(taskData[1], data->field_0); - sub_8011090(0x54, 0, 1); - if (sub_8011B90() == TRUE) - sub_801568C(gUnknown_082EED3C[playerGender]); - else - sub_8015664(30, gUnknown_082EED3C[playerGender]); - break; - case 3: - data->state = 22; - break; - } - taskData[3]++; - break; - case 22: - if (sub_8011A80()) - { - playerGender = sub_8017CF8(taskData[1], data->field_0); - sub_8011090(0x54, 0, 1); - if (sub_8011B90() == TRUE) - sub_801568C(gUnknown_082EED3C[playerGender]); - else - sub_8015664(30, gUnknown_082EED3C[playerGender]); - } - if (gReceivedRemoteLinkPlayers != 0) - data->state = 16; - break; - case 11: - PlaySE(SE_PINPON); - sub_800EF7C(); - data->state = 12; - data->field_9A[0] = 0; - break; - case 12: - if (sub_8011A80()) - { - sub_801818C(FALSE); - data->state = 2; - } - else if (gReceivedRemoteLinkPlayers != 0) - { - sub_80143E4(gBlockSendBuffer, TRUE); - CreateTask(sub_80140E0, 5); - data->state = 39; - } - break; - case 39: - sub_801689C(data); - if (!FuncIsActiveTask(sub_80140E0)) - { - data->state = 33; - StringCopy(gStringVar1, gLinkPlayers[1].name); - id = sub_800E540(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); - StringExpandPlaceholders(gStringVar4, gUnknown_082EE324[id]); - } - break; - case 33: - sub_801689C(data); - if (PrintOnTextbox(&data->textState, gStringVar4)) - data->state = 34; - break; - case 34: - sub_801689C(data); - if (sub_80168DC(data) && gMain.newKeys & B_BUTTON) - { - sub_8011DE0(1); - StringCopy(gStringVar4, gUnknown_082EE598); - data->state = 36; - } - break; - case 35: - sub_8015664(9, gStringVar4); - break; - case 9: - switch (sub_80170B8(&data->textState, FALSE)) - { - case 0: - data->field_4C[0] = 0x51; - if (gUnknown_02022C2C == 0x45) - sub_8011090(gUnknown_02022C2C | 0x40, sub_801100C(1), 0); - else - sub_8011090(gUnknown_02022C2C | 0x40, sub_801100C(1), 1); - - data->field_8->arr[0].field_1B = 0; - taskData[3] = 0; - if (gUnknown_02022C2C == 0x41) - { - if (!sub_8018024()) - { - data->field_4C[0] = 0x52; - sub_800FE50(data->field_4C); - data->state = 10; - StringCopy(gStringVar4, gUnknown_082EEC14); - } - else - { - sub_800FE50(data->field_4C); - data->state = 13; - } - } - else if (gUnknown_02022C2C == 0x48) - { - sub_800FE50(data->field_4C); - sub_8018220(gStringVar4, data, 1); - data->state = 40; - } - else - { - sub_800FE50(data->field_4C); - data->state = 13; - } - break; - case 1: - case -1: - data->field_4C[0] = 0x52; - sub_800FE50(data->field_4C); - data->state = 10; - sub_8013078(gStringVar4, gUnknown_02022C2C); - break; - } - break; - case 10: - sub_800AC34(); - data->state = 36; - break; - case 36: - if (gReceivedRemoteLinkPlayers == 0) - { - gUnknown_02022C2C = 0x40; - sub_8015664(0x25, gStringVar4); - memset(data->field_4C, 0, sizeof(data->field_4C)); - data->field_9A[0] = 0; - data->field_98 = 0; - } - break; - case 37: - data->state = 2; - sub_801818C(FALSE); - break; - case 13: - sub_8017E00(gStringVar4, gUnknown_02022C2C | 0x40); - sub_8015664(0xE, gStringVar4); - break; - case 14: - sub_800ADF8(); - data->state = 15; - break; - case 15: - if (IsLinkTaskFinished()) - data->state = 16; - break; - case 16: - Free(data->field_8); - Free(data->field_0); - Free(data->field_C); - Free(data->field_4); - DestroyTask(data->field_20); - sub_8019F04(data->spriteIds); - data->state = 17; - break; - case 17: - BeginNormalPaletteFade(-1, 0, 0, 0x10, RGB_BLACK); - data->state = 18; - break; - case 18: - if (!UpdatePaletteFade()) - { - sub_8019E3C(); - DestroyTask(taskId); - Free(gUnknown_02022C30.uRoom); - sub_80149D8(); - } - break; - case 42: - if (sub_800F7DC()->species == SPECIES_NONE) - { - data->state = 43; - } - else - { - if (sub_800F7DC()->species == SPECIES_EGG) - { - StringCopy(gStringVar4, gUnknown_082EF590); - } - else - { - StringCopy(gStringVar1, gSpeciesNames[sub_800F7DC()->species]); - ConvertIntToDecimalStringN(gStringVar2, sub_800F7DC()->unk_0b_1, STR_CONV_MODE_LEFT_ALIGN, 3); - StringExpandPlaceholders(gStringVar4, gUnknown_082EF564); - } - sub_8015664(44, gStringVar4); - } - break; - case 43: - if (PrintOnTextbox(&data->textState, gUnknown_082EF20C)) - data->state = 47; - break; - case 47: - var5 = sub_8017178(&data->textState, &data->field_1D, &data->field_1E, &gUnknown_082F025C, &gUnknown_082F027C); - if (var5 != -1) - { - if (var5 == -2 || var5 == 3) - { - data->state = 4; - sub_801818C(TRUE); - } - else - { - switch (var5) - { - case 1: - sub_8015664(53, gUnknown_082EF4C4); - break; - case 2: - sub_8015664(47, gUnknown_082EF298); - break; - } - } - } - break; - case 53: - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); - data->state = 54; - break; - case 54: - if (!gPaletteFade.active) - { - gUnknown_02022C40.field_0 = 1; - gFieldCallback = sub_80AF128; - sub_81B8904(8, CB2_ReturnToField); - } - break; - case 52: - var5 = sub_8017178(&data->textState, &data->field_1D, &data->field_1E, &gUnknown_082F0294, &gUnknown_082F032C); - if (var5 != -1) - { - switch (var5) - { - case -2: - case 18: - sub_801807C(&gUnknown_02022C40); - sub_8010FCC(0, 0, 0); - sub_801568C(gUnknown_082EF4FC); - break; - default: - gUnknown_02022C40.field_2 = var5; - data->state = 55; - break; - } - } - break; - case 55: - sub_8010FCC(gUnknown_02022C40.field_2, gUnknown_02022C40.field_A, gUnknown_02022C40.field_C); - sub_801568C(gUnknown_082EF520); - break; - case 44: - switch (sub_80170B8(&data->textState, FALSE)) - { - case 0: - data->state = 56; - break; - case 1: - case -1: - sub_801818C(TRUE); - data->state = 4; - break; - } - break; - case 56: - if (PrintOnTextbox(&data->textState, gUnknown_082EF5B8)) - { - sub_8010FCC(0, 0, 0); - sub_801807C(&gUnknown_02022C40); - sub_801818C(TRUE); - data->state = 4; - } - break; - case 45: - if (PrintOnTextbox(&data->textState, gUnknown_082EF1EC)) - data->state = 46; - break; - case 46: - sub_80173B0(); - data->state = 48; - break; - case 48: - var5 = sub_80172A0(&data->textState, &data->field_1D, &data->field_4A, &data->field_1E, &gUnknown_082F034C, &gUnknown_082F03A4, data->field_0); - if (var5 != -1) - { - switch (var5) - { - case -2: - case 8: - sub_801818C(TRUE); - data->state = 4; - break; - default: - sub_80173B0(); - switch (sub_8017D04(data->field_0->arr[var5].unk.field_0.type, data->field_0->arr[var5].unk.field_0.species)) - { - case 0: - sub_8018404(gStringVar1, &data->field_0->arr[var5]); - sub_8015664(49, gUnknown_082EF65C); - taskData[1] = var5; - break; - case 1: - sub_8018404(gStringVar1, &data->field_0->arr[var5]); - StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]); - sub_8015664(46, gUnknown_082EF6E4); - break; - case 2: - sub_8018404(gStringVar1, &data->field_0->arr[var5]); - StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]); - sub_8015664(46, gUnknown_082EF718); - break; - } - break; - } - } - break; - case 49: - switch (sub_80170B8(&data->textState, FALSE)) - { - case 0: - data->state = 50; - break; - case -1: - case 1: - sub_801818C(TRUE); - data->state = 4; - break; - } - break; - case 50: - if (PrintOnTextbox(&data->textState, gUnknown_082EF4C4)) - { - gUnknown_02022C40.field_0 = 2; - memcpy(&gUnknown_02022C38, &data->field_0->arr[taskData[1]].unk.field_0.unk_00, sizeof(gUnknown_02022C38)); - gUnknown_02022C3E = data->field_0->arr[taskData[1]].unk.field_0.type; - gUnknown_02022C3C = data->field_0->arr[taskData[1]].unk.field_0.species; - gFieldCallback = sub_80AF128; - sub_81B8904(9, CB2_ReturnToField); - sub_80156B0(data); - gUnknown_02022C40.field_8 = taskData[1]; - } - break; - case 51: - gUnknown_02022C2C = 0x44; - sub_8012188(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, 0x44); - sub_8018404(gStringVar1, &data->field_0->arr[taskData[1]]); - sub_8017020(gUnknown_082EE17C[2]); - data->state = 25; - break; - case 26: - if (PrintOnTextbox(&data->textState, gStringVar4)) - { - sub_801818C(TRUE); - sub_801A3D0(taskData[0], taskData[1], data->field_0); - data->state = 4; - } - break; - case 8: - if (PrintOnTextbox(&data->textState, gStringVar4)) - data->state = data->stateAfterPrint; - break; - } -} - -void var_800D_set_xB(void) -{ - if (InUnionRoom() == TRUE) - gSpecialVar_Result = 11; -} - -void sub_801689C(struct UnkStruct_URoom *arg0) -{ - if (gRecvCmds[1][1] != 0 && (gRecvCmds[1][0] & 0xFF00) == 0x2F00) - { - arg0->field_9A[0] = gRecvCmds[1][1]; - if (gRecvCmds[1][1] == 0x44) - { - arg0->field_9A[1] = gRecvCmds[1][2]; - arg0->field_9A[2] = gRecvCmds[1][3]; - } - } -} - -bool32 sub_80168DC(struct UnkStruct_URoom *arg0) -{ - if (arg0->field_9A[0] != 0) - { - s32 var = sub_8017EA0(gStringVar4, gLinkPlayers[1].gender, &arg0->field_9A[0], arg0); - if (var == 0) - { - return TRUE; - } - else if (var == 1) - { - arg0->state = 35; - gUnknown_02022C2C = arg0->field_9A[0]; - return FALSE; - } - else if (var == 2) - { - arg0->state = 36; - sub_800AC34(); - return FALSE; - } - } - - return TRUE; -} - -void sub_8016934(void) -{ - struct UnkStruct_URoom *ptr; - - gUnknown_02022C20[0] = EOS; - CreateTask(sub_801697C, 0); - gUnknown_02022C30.uRoom = gUnknown_02022C30.uRoom; // Needed to match. - gUnknown_02022C30.uRoom = ptr = AllocZeroed(0x26C); - gUnknown_03000DA8 = gUnknown_02022C30.uRoom; - ptr->state = 0; - ptr->textState = 0; - ptr->field_10 = 0; - ptr->field_12 = 0; - gUnknown_02022C20[0] = EOS; -} - -void sub_801697C(u8 taskId) -{ - s32 i; - u8 text[32]; - struct UnkStruct_URoom *structPtr = gUnknown_02022C30.uRoom; - - switch (structPtr->state) - { - case 0: - structPtr->state = 1; - break; - case 1: - sub_8010F84(0xC, 0, 0); - sub_800B488(); - OpenLink(); - sub_8011C84(); - sub_80111B0(1); - structPtr->state = 2; - break; - case 2: - structPtr->field_4 = AllocZeroed(0x70); - sub_80175EC(structPtr->field_4, 4); - structPtr->field_C = AllocZeroed(0x70); - sub_80175EC(structPtr->field_C, 4); - structPtr->field_0 = AllocZeroed(0x100); - sub_8017580(structPtr->field_0->arr, 8); - structPtr->field_8 = AllocZeroed(0x20); - sub_8017580(&structPtr->field_8->arr[0], 1); - structPtr->field_20 = sub_8016DF0(structPtr->field_C, structPtr->field_4, 10); - structPtr->state = 3; - break; - case 3: - switch (sub_8016B00()) - { - case 1: - case 2: - if (gUnknown_02022C20[0] == EOS) - { - for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++) - { - if (structPtr->field_0->arr[i].field_1A_0 == 1) - { - sub_8018404(text, &structPtr->field_0->arr[i]); - if (sub_800E540(ReadAsU16(structPtr->field_0->arr[i].unk.field_0.unk_00.playerTrainerId), text)) - { - StringCopy(gUnknown_02022C20, text); - break; - } - } - } - } - break; - case 3: - break; - } - break; - case 4: - free(structPtr->field_8); - free(structPtr->field_0); - free(structPtr->field_C); - free(structPtr->field_4); - DestroyTask(structPtr->field_20); - free(gUnknown_02022C30.uRoom); - sub_800EDD4(); - DestroyTask(taskId); - break; - } -} - -bool16 sp182_move_string(void) -{ - if (gUnknown_02022C20[0] != EOS) - { - StringCopy(gStringVar1, gUnknown_02022C20); - gUnknown_02022C20[0] = EOS; - return TRUE; - } - else - { - return FALSE; - } -} - -u8 sub_8016B00(void) -{ - s32 i; - u8 j; - struct UnkStruct_URoom *structPtr = gUnknown_02022C30.uRoom; - s32 r7 = 0; - - for (i = 0; i < 4; i++) - { - if (sub_8017630(&structPtr->field_C->arr[i].unk0, &gUnknown_082F045C) == TRUE) - { - structPtr->field_8->arr[0].unk = structPtr->field_C->arr[i].unk0; - structPtr->field_8->arr[0].field_18 = 0; - structPtr->field_8->arr[0].field_1A_0 = 1; - structPtr->field_8->arr[0].field_1B = 1; - return 4; - } - } - for (j = 0; j < 8; j++) - { - if (structPtr->field_0->arr[j].field_1A_0 != 0) - { - i = sub_80176E4(&structPtr->field_0->arr[j], &structPtr->field_4->arr[0]); - if (i != 0xFF) - { - if (structPtr->field_0->arr[j].field_1A_0 == 1) - { - if (sub_8017678(&structPtr->field_0->arr[j], &structPtr->field_4->arr[i])) - { - structPtr->field_0->arr[j].unk = structPtr->field_4->arr[i].unk0; - structPtr->field_0->arr[j].field_1B = 0x40; - r7 = 1; - } - else if (structPtr->field_0->arr[j].field_1B != 0) - { - structPtr->field_0->arr[j].field_1B--; - if (structPtr->field_0->arr[j].field_1B == 0) - r7 = 2; - } - } - else - { - structPtr->field_0->arr[j].field_1A_0 = 1; - structPtr->field_0->arr[j].field_1B = 0; - r7 = 2; - } - structPtr->field_0->arr[j].field_18 = 0; - } - else if (structPtr->field_0->arr[j].field_1A_0 != 2) - { - structPtr->field_0->arr[j].field_18++; - if (structPtr->field_0->arr[j].field_18 >= 600) - { - structPtr->field_0->arr[j].field_1A_0 = 2; - r7 = 2; - } - } - else if (structPtr->field_0->arr[j].field_1A_0 == 2) - { - structPtr->field_0->arr[j].field_18++; - if (structPtr->field_0->arr[j].field_18 >= 900) - { - sub_8017580(&structPtr->field_0->arr[j], 1); - } - } - } - } - for (i = 0; i < 4; i++) - { - if (sub_8017734(&structPtr->field_0->arr[0], &structPtr->field_4->arr[i].unk0, 8) != 0xFF) - r7 = 1; - } - - return r7; -} - -/* -void sub_8016CA0(u8 taskId) -{ - s32 i, j; - struct UnkLinkRfuStruct_02022B14 sp0; - u8 text[10]; - struct UnkStruct_Main4 *ptr = (void*) gTasks[taskId].data; - - for (i = 0; i < 4; i++) - { - j = sub_800DE7C(&sp0, text, i); - if (!sub_8013D88(sp0.unk_0a_0, gTasks[taskId].data[4])) - sp0 = gUnknown_082F045C.field_0; - if (sp0.unk_00.unk_00_0 == 1) - sp0 = gUnknown_082F045C.field_0; - - if (!j) - { - for (j = 0; j < i; j++) - { - if (sub_8017630()) - } - } - else - { - - } - } -} -*/ diff --git a/src/union_room.c b/src/union_room.c new file mode 100644 index 000000000..51d48fdcf --- /dev/null +++ b/src/union_room.c @@ -0,0 +1,3502 @@ +#include "global.h" +#include "window.h" +#include "bg.h" +#include "string_util.h" +#include "task.h" +#include "event_data.h" +#include "link.h" +#include "link_rfu.h" +#include "librfu.h" +#include "alloc.h" +#include "menu.h" +#include "list_menu.h" +#include "menu_helpers.h" +#include "script.h" +#include "sound.h" +#include "constants/songs.h" +#include "constants/game_stat.h" +#include "constants/maps.h" +#include "constants/species.h" +#include "constants/rgb.h" +#include "constants/battle_frontier.h" +#include "trade.h" +#include "trainer_card.h" +#include "overworld.h" +#include "battle.h" +#include "load_save.h" +#include "cable_club.h" +#include "field_control_avatar.h" +#include "party_menu.h" +#include "field_weather.h" +#include "palette.h" +#include "decompress.h" +#include "start_menu.h" +#include "data2.h" +#include "field_screen_effect.h" +#include "script_pokemon_util_80F87D8.h" + +struct UnkStruct_Shared +{ + struct UnkLinkRfuStruct_02022B14 field_0; + u8 needingPadding[2]; + u8 playerName[PLAYER_NAME_LENGTH + 1]; +}; + +struct UnkStruct_x1C +{ + struct UnkStruct_Shared unk0; + u8 unk18; +}; + +struct UnkStruct_x20 +{ + struct UnkStruct_Shared unk; + u16 field_18; + u8 field_1A_0:2; + u8 field_1A_1:1; + u8 field_1B; + u8 field_1D; + u8 field_1E; + u8 field_1F; +}; + +struct UnkStruct_Main0 +{ + struct UnkStruct_x20 arr[8]; +}; + +struct UnkStruct_Main4 +{ + struct UnkStruct_x1C arr[5]; +}; + +struct UnkStruct_Main8 +{ + struct UnkStruct_x20 arr[5]; +}; + +struct UnkStruct_Leader +{ + struct UnkStruct_Main0 *field_0; + struct UnkStruct_Main4 *field_4; + struct UnkStruct_Main8 *field_8; + u8 state; + u8 textState; + u8 field_E; + u8 listWindowId; + u8 field_10; + u8 field_11; + u8 listTaskId; + u8 field_13; + u8 field_14; + u8 field_15; + u8 field_16; + u8 field_17; + u8 field_18; + u8 field_19; + u16 field_1A; +}; + +struct UnkStruct_Group +{ + struct UnkStruct_Main0 *field_0; + struct UnkStruct_Main4 *field_4; + u8 state; + u8 textState; + u8 field_A; + u8 listWindowId; + u8 field_C; + u8 field_D; + u8 listTaskId; + u8 field_F; + u8 field_10; + u8 field_11; + u8 field_12; + u8 field_13; + u8 field_14; + u8 field_15; +}; + +struct UnkStruct_8019BA8 +{ + u8 field_0; + u8 field_1; + u8 field_2; + u8 field_3; +}; + +struct UnkStruct_URoom +{ + struct UnkStruct_Main0 *field_0; + struct UnkStruct_Main4 *field_4; + struct UnkStruct_Main0 *field_8; + struct UnkStruct_Main4 *field_C; + u16 field_10; + u16 field_12; + u8 state; + u8 stateAfterPrint; + u8 textState; + u8 field_17; + u8 field_18; + u8 field_19; + u8 field_1A; + u8 field_1B; + u8 field_1C; + u8 field_1D; + u8 field_1E; + u8 field_1F; + u8 field_20; + u8 spriteIds[40]; + u8 field_49; + u8 field_4A; + u16 field_4C[6]; + u8 field_58[0x98 - 0x58]; + u16 field_98; + u16 field_9A[3]; + struct UnkStruct_8019BA8 field_A0[8]; +}; + +union UnkUnion_Main +{ + struct UnkStruct_Leader *leader; + struct UnkStruct_Group *group; + struct UnkStruct_URoom *uRoom; +}; + +struct TradeUnkStruct +{ + u16 field_0; + u16 field_2; + u32 field_4; + u8 field_8; + u8 field_9; + u16 field_A; + u16 field_C; + u16 species; + u16 level; + u16 field_12; + u32 personality; +}; + +extern struct TradeUnkStruct gUnknown_02022C40; +extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38; +extern union UnkUnion_Main gUnknown_02022C30; +extern u8 gUnknown_02022C2C; +extern u8 gUnknown_02022C2D; +extern u8 gUnknown_02022C3E; +extern u16 gUnknown_02022C3C; +extern u8 gUnknown_02022C20[]; +extern u8 gFieldLinkPlayerCount; +extern u8 gLocalLinkPlayerId; + +// IWRAM vars +IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; +IWRAM_DATA struct UnkStruct_Group *gUnknown_03000DA4; +IWRAM_DATA struct UnkStruct_URoom *gUnknown_03000DA8; +IWRAM_DATA void *gUnknown_03000DAC; +IWRAM_DATA bool32 gUnknown_03000DB0; + +// this file's functions +void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5); +u16 ReadAsU16(const u8 *ptr); +void sub_8012780(u8 taskId); +void sub_80134E8(u8 taskId); +void sub_8013C7C(u8 taskId); +void sub_8014A40(u8 taskId); +void sub_8014F48(u8 taskId); +void sub_80152F4(u8 taskId); +void sub_80156E0(u8 taskId); +void sub_80175EC(struct UnkStruct_Main4 *arg0, u8 count); +void sub_8017580(struct UnkStruct_x20 *arg0, u8 count); +u8 sub_8016FC0(struct UnkStruct_Main4 *arg0, u32 arg1); +u8 sub_8016FF0(struct UnkStruct_Main4 *arg0, u32 arg1); +bool8 PrintOnTextbox(u8 *textState, const u8 *str); +bool8 sub_801320C(struct UnkStruct_Leader *data, u32 arg1, u32 arg2); +u8 sub_8013398(struct UnkStruct_Main0 *arg0); +s8 sub_80170B8(u8 *arg0, bool32 arg1); +void sub_8018404(u8 *dest, struct UnkStruct_x20 *arg1); +void sub_8012F64(struct UnkStruct_Leader *data); +void sub_80149C4(void); +u8 sub_80132D4(struct UnkStruct_Main0 *arg0); +void sub_80178A0(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); +u32 sub_80176E4(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); +u8 sub_8017734(struct UnkStruct_x20 *arg0, struct UnkStruct_Shared *arg1, u8 arg2); +u8 sub_8013E44(void); +u32 sub_8013B8C(struct UnkStruct_Group *arg0, s32 id); +void sub_8013BD8(struct UnkStruct_Group *arg0, s32 id); +void sub_80173D4(void); +void sub_80177B8(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); +bool32 sub_8017678(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); +u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId); +void sub_801807C(struct TradeUnkStruct *arg0); +void sub_801B940(void); +void sub_801B94C(u16); +u16 sub_801B39C(void); +void sub_801AC54(void); +void sub_801DD98(void); +void sub_802A9A8(u8 monId, MainCallback callback); +void sub_802493C(u8 monId, MainCallback callback); +void sub_8020C70(MainCallback callback); +void sub_80149D8(void); +u16 sub_8019930(void); +void sub_8018784(u8 windowId); +void sub_8018884(const u8 *src); +bool32 mevent_0814257C(u8 *textState, const u8 *str); +s8 sub_8018B08(u8 *textState, u8 *arg1, u8 arg2, const u8 *str); +bool32 sub_8016F1C(struct UnkStruct_x20 *arg0, s16 arg1); +u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2); +void sub_8019F2C(void); +void sub_8019E70(u8 *arg0, s32 arg1); +bool32 sub_80180A0(u8 monId, struct TradeUnkStruct *arg1); +void sub_80180E8(u8 monId, struct TradeUnkStruct *arg1); +bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3); +void sub_80181CC(void); +bool32 sub_8017940(void); +u8 sub_8016B00(void); +void sub_801A274(struct UnkStruct_URoom *arg0); +void sub_801A284(struct UnkStruct_URoom *arg0); +bool32 sub_8017FD8(struct UnkStruct_URoom *arg0); +void sub_801689C(struct UnkStruct_URoom *arg0); +u8 sub_80181DC(struct UnkStruct_URoom *arg0); +bool32 sub_80168DC(struct UnkStruct_URoom *arg0); +bool32 sub_801704C(void); +s32 sub_8017CF8(s32 arg1, struct UnkStruct_Main0 *arg0); +s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender); +void sub_801818C(bool32 arg0); +void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2); +s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate); +s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6); +bool32 sub_8018024(void); +u32 sub_8017984(u32 arg0); +void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2); +void sub_8017D9C(u8 *dst, u32 arg1, u32 playerGender); +u32 sub_80179AC(struct UnkStruct_x20 *arg0); +void sub_8017E00(u8 *dst, u8 arg1); +void sub_8019F04(u8 *spriteIds); +void sub_8019E3C(void); +void sub_80173B0(void); +s32 sub_8017D04(u32 type, u32 species); +void sub_8017020(const u8 *src); +void sub_8019BA8(void *); +s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3); +void sub_801697C(u8 taskId); +bool8 sub_8017630(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1); + +// const rom data +extern const u8 *const gUnknown_082EDB60[][5]; + +extern const u8 gText_UnkCtrlCodeF907[]; +extern const u8 gUnknown_082EDBC4[]; +extern const u8 gText_AwaitingCommunication[]; +extern const u8 gText_AwaitingLink[]; +extern const u8 gUnknown_082EDC5C[]; +extern const u8 gUnknown_082EDC9C[]; +extern const u8 gUnknown_082EDC78[]; +extern const u8 gUnknown_082EDD58[]; +extern const u8 gUnknown_082EDBE8[]; +extern const u8 gUnknown_082EDC0C[]; +extern const u8 gUnknown_082EDC34[]; +extern const u8 gUnknown_082EE560[]; +extern const u8 gUnknown_082EE57C[]; +extern const u8 gUnknown_082EFC54[]; +extern const u8 gUnknown_082EFC3C[]; +extern const u8 gUnknown_082EDE0C[]; +extern const u8 gUnknown_082EDDF4[]; +extern const u8 gUnknown_082EF7DC[]; +extern const u8 gUnknown_082EDE48[]; +extern const u8 gUnknown_082EDE64[]; +extern const u8 gUnknown_082EDF40[]; +extern const u8 gText_PleaseStartOver[]; +extern const u8 gUnknown_082EF7F8[]; +extern const u8 gUnknown_082EFBC8[]; +extern const u8 gUnknown_082EFC90[]; +extern const u8 gUnknown_082EDEC4[]; +extern const u8 gUnknown_082EDF04[]; +extern const u8 gText_WirelessSearchCanceled[]; +extern const u8 gUnknown_082EF4FC[]; +extern const u8 gUnknown_082EF520[]; +extern const u8 gUnknown_082EF5B8[]; +extern const u8 gUnknown_082EF1EC[]; +extern const u8 gUnknown_082EF544[]; +extern const u8 gUnknown_082EF47C[]; +extern const u8 gUnknown_082EE6C8[]; +extern const u8 gUnknown_082EE004[]; +extern const u8 gUnknown_082EEBD0[]; +extern const u8 gUnknown_082EEB88[]; +extern const u8 gUnknown_082EE598[]; +extern const u8 gUnknown_082EEC14[]; +extern const u8 gUnknown_082EF590[]; +extern const u8 gUnknown_082EF20C[]; +extern const u8 gUnknown_082EF564[]; +extern const u8 gUnknown_082EF4C4[]; +extern const u8 gUnknown_082EF298[]; +extern const u8 gUnknown_082EF65C[]; +extern const u8 gUnknown_082EF6E4[]; +extern const u8 gUnknown_082EF718[]; + +extern const u32 gUnknown_082F00C4[]; + +extern const u8 gUnknown_082F0530[]; + +extern const struct WindowTemplate gUnknown_082F00BC; +extern const struct WindowTemplate gUnknown_082F0124; +extern const struct WindowTemplate gUnknown_082F012C; +extern const struct WindowTemplate gUnknown_082F011C; +extern const struct WindowTemplate gUnknown_082F0174; +extern const struct WindowTemplate gUnknown_082F017C; +extern const struct WindowTemplate gUnknown_082F021C; +extern const struct WindowTemplate gUnknown_082F025C; +extern const struct WindowTemplate gUnknown_082F0294; +extern const struct WindowTemplate gUnknown_082F034C; + +extern const struct ListMenuTemplate gUnknown_082F015C; +extern const struct ListMenuTemplate gUnknown_082F0204; +extern const struct ListMenuTemplate gUnknown_082F0244; +extern const struct ListMenuTemplate gUnknown_082F027C; +extern const struct ListMenuTemplate gUnknown_082F032C; +extern const struct ListMenuTemplate gUnknown_082F03A4; + +extern const u8 *const gUnknown_082F0048[]; +extern const u8 *const gUnknown_082EDDC4[]; +extern const u8 *const gUnknown_082EFB70[]; +extern const u8 *const gUnknown_082EDD50[]; +extern const u8 *const gUnknown_082EDE9C[]; +extern const u8 *const gUnknown_082EDF80[]; +extern const u8 *const gUnknown_082EFD58[]; +extern const u8 *const gUnknown_082EEB80[]; +extern const u8 *const gUnknown_082EE378[]; +extern const u8 *const gUnknown_082EEC9C[]; +extern const u8 *const gUnknown_082EED3C[]; +extern const u8 *const gUnknown_082EE324[]; +extern const u8 *const gUnknown_082EE17C[]; + +extern const u8 *const gUnknown_082EE82C[][4]; + +extern const u8 *const gUnknown_082EE24C[][2]; + +extern const struct UnkStruct_Shared gUnknown_082F045C; + +extern const u8 *const gUnknown_082F04D8[22]; + +// code +void nullsub_89(void) +{ + +} + +void sub_80124EC(u8 windowId, u8 arg1, u8 stringId) +{ + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + switch (arg1 << 8) + { + case 0x200: + sub_80173E0(windowId, 1, gUnknown_082EDB60[0][stringId - 1], 0, 1, 0); + break; + case 0x400: + sub_80173E0(windowId, 1, gUnknown_082EDB60[1][stringId - 1], 0, 1, 0); + break; + case 0x2500: + sub_80173E0(windowId, 1, gUnknown_082EDB60[2][stringId - 1], 0, 1, 0); + break; + case 0x3500: + sub_80173E0(windowId, 1, gUnknown_082EDB60[3][stringId - 1], 0, 1, 0); + break; + case 0x2400: + sub_80173E0(windowId, 1, gUnknown_082EDB60[4][stringId - 1], 0, 1, 0); + break; + } + + CopyWindowToVram(windowId, 2); +} + +void sub_80125BC(u8 windowId) +{ + u8 text[30]; + u8 *txtPtr; + + sub_80173E0(windowId, 1, gSaveBlock2Ptr->playerName, 0, 1, 0); + txtPtr = StringCopy(text, gText_UnkCtrlCodeF907); + ConvertIntToDecimalStringN(txtPtr, ReadAsU16(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5); + sub_80173E0(windowId, 1, text, 0, 0x11, 0); +} + +void sub_801262C(u8 *dst, u8 caseId) +{ + switch (caseId) + { + case 1 ... 4: + case 9 ... 11: + case 14 ... 16: + case 21 ... 28: + // UB: argument *dst isn't used, instead it always prints to gStringVar4 + StringExpandPlaceholders(gStringVar4, gText_AwaitingCommunication); + break; + } +} + +bool32 sub_80126CC(u32 caseId) +{ + switch (caseId) + { + case 9 ... 11: + case 15 ... 16: + case 23 ... 27: + return TRUE; + default: + return FALSE; + } +} + +void BerryBlenderLinkBecomeLeader(void) +{ + u8 taskId; + struct UnkStruct_Leader *dataPtr; + + taskId = CreateTask(sub_8012780, 0); + gUnknown_02022C30.leader = dataPtr = (void*)(gTasks[taskId].data); + gUnknown_03000DA0 = dataPtr; + + dataPtr->state = 0; + dataPtr->textState = 0; + gSpecialVar_Result = 0; +} + +void sub_8012780(u8 taskId) +{ + u32 id, val; + struct UnkStruct_Leader *data = gUnknown_02022C30.leader; + + switch (data->state) + { + case 0: + if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN) + gSpecialVar_0x8004++; + gUnknown_02022C2C = gUnknown_082F00C4[gSpecialVar_0x8004]; + gUnknown_02022C2D = gUnknown_082F00C4[gSpecialVar_0x8004] >> 8; + sub_8010F84(gUnknown_02022C2C, 0, 0); + sub_800B488(); + OpenLink(); + sub_8011C10(gUnknown_02022C2D & 0xF); + data->state = 3; + break; + case 3: + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0xA0); + data->field_8 = AllocZeroed(0xA0); + sub_80175EC(data->field_4, 4); + sub_8017580(data->field_0->arr, 5); + sub_800DF90(&data->field_0->arr[0].unk.field_0, data->field_0->arr[0].unk.playerName); + data->field_0->arr[0].field_18 = 0; + data->field_0->arr[0].field_1A_0 = 1; + data->field_0->arr[0].field_1A_1 = 0; + data->field_0->arr[0].field_1B = 0; + data->field_17 = sub_8016FC0(data->field_4, 0xFF); + data->field_10 = AddWindow(&gUnknown_082F00BC); + switch (gUnknown_02022C2D & 0xF) + { + case 2: + case 3: + case 4: + data->listWindowId = AddWindow(&gUnknown_082F011C); + break; + case 5: + data->listWindowId = AddWindow(&gUnknown_082F0124); + break; + } + data->field_11 = AddWindow(&gUnknown_082F012C); + + FillWindowPixelBuffer(data->field_10, PIXEL_FILL(2)); + sub_80173E0(data->field_10, 0, gUnknown_082EDBC4, 8, 1, 4); + PutWindowTilemap(data->field_10); + CopyWindowToVram(data->field_10, 2); + + DrawStdWindowFrame(data->listWindowId, FALSE); + gMultiuseListMenuTemplate = gUnknown_082F015C; + gMultiuseListMenuTemplate.windowId = data->listWindowId; + data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); + + DrawStdWindowFrame(data->field_11, FALSE); + PutWindowTilemap(data->field_11); + CopyWindowToVram(data->field_11, 2); + + CopyBgTilemapBufferToVram(0); + data->field_13 = 1; + data->state = 4; + break; + case 4: + StringCopy(gStringVar1, gUnknown_082F0048[gUnknown_02022C2C]); + if ((gUnknown_02022C2D >> 4) != 0) + { + if (data->field_13 > (gUnknown_02022C2D >> 4) - 1 && (gUnknown_02022C2D & 0xF) != 0) + StringExpandPlaceholders(gStringVar4, gText_AwaitingLink); + else + StringExpandPlaceholders(gStringVar4, gText_AwaitingCommunication); + } + else + { + sub_801262C(gStringVar4, gUnknown_02022C2C); + } + + sub_80124EC(data->field_11, gUnknown_02022C2D, data->field_13); + data->state = 5; + break; + case 5: + if (PrintOnTextbox(&data->textState, gStringVar4)) + data->state = 6; + break; + case 6: + sub_801320C(data, 7, 10); + if (gMain.newKeys & B_BUTTON) + { + if (data->field_13 == 1) + data->state = 23; + else if ((gUnknown_02022C2D & 0xF0) != 0) + data->state = 30; + else + data->state = 19; + } + if ((gUnknown_02022C2D >> 4) != 0 + && data->field_13 > (gUnknown_02022C2D >> 4) - 1 + && (gUnknown_02022C2D & 0xF) != 0 + && sub_8012240() + && gMain.newKeys & START_BUTTON) + { + data->state = 15; + sub_800EF38(); + } + if (data->state == 6 && sub_80105EC()) + { + data->state = 9; + } + break; + case 9: + if (!sub_80105EC()) + { + data->state = 6; + data->field_13 = sub_8013398(data->field_0); + } + break; + case 10: + id = ((gUnknown_02022C2C & 0xF) == 2) ? 1 : 0; + if (PrintOnTextbox(&data->textState, gUnknown_082EDDC4[id])) + { + data->field_13 = sub_8013398(data->field_0); + RedrawListMenu(data->listTaskId); + data->state = 4; + } + break; + case 29: + id = ((gUnknown_02022C2D & 0xF) == 2) ? 0 : 1; + if (PrintOnTextbox(&data->textState, gUnknown_082EDDC4[id])) + { + data->state = 21; + } + break; + case 7: + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + data->state = 11; + } + break; + case 11: + switch (sub_80170B8(&data->textState, sub_801064C(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName))) + { + case 0: + sub_800E0E8(); + CreateWirelessStatusIndicatorSprite(0, 0); + data->field_19 = 5; + sub_8010688(5, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + data->state = 12; + break; + case 1: + case -1: + data->field_19 = 6; + sub_8010688(6, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + data->state = 12; + break; + case -3: + data->state = 9; + break; + } + break; + case 12: + val = sub_8010714(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + if (val == 1) + { + if (data->field_19 == 5) + { + data->field_0->arr[data->field_13].field_1B = 0; + RedrawListMenu(data->listTaskId); + data->field_13++; + if (data->field_13 == (gUnknown_02022C2D & 0xF)) + { + if ((gUnknown_02022C2D & 0xF0) != 0 || data->field_13 == 4) + { + data->state = 15; + } + else + { + sub_8018404(gStringVar1, &data->field_0->arr[data->field_13 - 1]); + StringExpandPlaceholders(gStringVar4, gUnknown_082EDC9C); + data->state = 13; + } + + sub_800EF38(); + sub_80124EC(data->field_11, gUnknown_02022C2D, data->field_13); + } + else + { + data->state = 4; + } + } + else + { + sub_8011DC0(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId)); + data->field_0->arr[data->field_13].field_1A_0 = 0; + sub_8013398(data->field_0); + RedrawListMenu(data->listTaskId); + data->state = 4; + } + + data->field_19 = 0; + } + else if (val == 2) + { + sub_8011A64(0, 0); + data->state = 4; + } + break; + case 13: + if (PrintOnTextbox(&data->textState, gStringVar4)) + data->state = 14; + break; + case 14: + if (++data->field_E > 120) + data->state = 17; + break; + case 15: + if (PrintOnTextbox(&data->textState, gUnknown_082EDC5C)) + data->state = 16; + break; + case 16: + switch (sub_80170B8(&data->textState, FALSE)) + { + case 0: + data->state = 17; + break; + case 1: + case -1: + if ((gUnknown_02022C2D & 0xF0) != 0) + data->state = 30; + else + data->state = 19; + break; + } + break; + case 19: + if (PrintOnTextbox(&data->textState, gUnknown_082EDC78)) + data->state = 20; + break; + case 20: + switch (sub_80170B8(&data->textState, FALSE)) + { + case 0: + data->state = 23; + break; + case 1: + case -1: + if ((gUnknown_02022C2D & 0xF0) != 0) + data->state = 15; + else if (data->field_13 == (gUnknown_02022C2D & 0xF)) + data->state = 15; + else + data->state = 4; + break; + } + break; + case 17: + if (!sub_801320C(data, 7, 29)) + data->state = 18; + break; + case 18: + if (sub_800EF1C()) + { + if (sub_800EF58(FALSE)) + { + data->state = 26; + } + else + { + if (++data->field_1A > 300) + { + data->state = 29; + data->textState = 0; + } + } + } + else + { + data->state = 29; + data->textState = 0; + } + break; + case 30: + if (PrintOnTextbox(&data->textState, gUnknown_082EDD58)) + data->state = 23; + break; + case 21: + case 23: + sub_800E084(); + sub_800EDD4(); + sub_8012F64(data); + data->state++; + break; + case 24: + EnableBothScriptContexts(); + DestroyTask(taskId); + gSpecialVar_Result = 5; + break; + case 22: + EnableBothScriptContexts(); + DestroyTask(taskId); + gSpecialVar_Result = 8; + break; + case 26: + if (sub_8011A80()) + { + data->state = 29; + } + else + { + if (gReceivedRemoteLinkPlayers != 0) + { + if (sub_80126CC(gUnknown_02022C2C)) + sub_801103C(); + sub_8011068(1); + sub_80149C4(); + sub_8012F64(data); + DestroyTask(taskId); + } + } + break; + } +} + +void sub_8012F64(struct UnkStruct_Leader *data) +{ + ClearWindowTilemap(data->field_11); + ClearStdWindowAndFrame(data->field_11, FALSE); + DestroyListMenuTask(data->listTaskId, 0, 0); + ClearWindowTilemap(data->field_10); + ClearStdWindowAndFrame(data->listWindowId, FALSE); + CopyBgTilemapBufferToVram(0); + RemoveWindow(data->field_11); + RemoveWindow(data->listWindowId); + RemoveWindow(data->field_10); + DestroyTask(data->field_17); + + Free(data->field_8); + Free(data->field_0); + Free(data->field_4); +} + +void sub_8012FC4(u8 *dst, u8 caseId) +{ + switch (caseId) + { + case 1: + case 2: + case 4: + case 14: + case 28: + StringExpandPlaceholders(dst, gUnknown_082EDBE8); + break; + case 21: + case 22: + StringExpandPlaceholders(dst, gUnknown_082EDC0C); + break; + case 3: + case 9: + case 10: + case 11: + case 15: + case 16: + case 23: + case 24: + case 25: + case 26: + case 27: + StringExpandPlaceholders(dst, gUnknown_082EDC34); + break; + } +} + +void sub_8013078(u8 *dst, u8 caseId) +{ + switch (caseId) + { + case 65: + case 68: + StringExpandPlaceholders(dst, gUnknown_082EE560); + break; + case 69: + case 72: + StringExpandPlaceholders(dst, gUnknown_082EE57C); + break; + } +} + +void sub_80130B4(u8 *dst, u8 caseId) +{ + switch (caseId) + { + case 1: + case 2: + case 4: + case 14: + case 21: + case 22: + case 28: + StringExpandPlaceholders(dst, gUnknown_082EFC3C); + break; + case 3: + case 9: + case 10: + case 11: + case 15: + case 16: + case 23: + case 24: + case 25: + case 26: + case 27: + StringExpandPlaceholders(dst, gUnknown_082EFC54); + break; + } +} + +void sub_8013160(u8 *dst, u8 caseId) +{ + switch (caseId) + { + case 1: + case 2: + case 4: + case 14: + case 21: + case 22: + case 28: + StringExpandPlaceholders(dst, gUnknown_082EDDF4); + break; + case 3: + case 9: + case 10: + case 11: + case 15: + case 16: + case 23: + case 24: + case 25: + case 26: + case 27: + StringExpandPlaceholders(dst, gUnknown_082EDE0C); + break; + } +} + +bool8 sub_801320C(struct UnkStruct_Leader *data, u32 arg1, u32 arg2) +{ + switch (sub_80132D4(data->field_0)) + { + case 1: + PlaySE(SE_PC_LOGIN); + RedrawListMenu(data->listTaskId); + sub_8018404(gStringVar2, &data->field_0->arr[data->field_13]); + sub_8012FC4(gStringVar4, gUnknown_02022C2C); + data->state = arg1; + break; + case 2: + sub_8011A64(0, 0); + RedrawListMenu(data->listTaskId); + data->state = arg2; + return TRUE; + } + + return FALSE; +} + +void sub_8013278(u8 arg0, u32 id, u8 arg2) +{ + struct UnkStruct_Leader *data = gUnknown_02022C30.leader; + u8 var = 0; + + switch (data->field_0->arr[id].field_1A_0) + { + case 1: + if (data->field_0->arr[id].field_1B != 0) + var = 2; + break; + case 2: + var = 1; + break; + } + + sub_80178A0(arg0, 0, arg2, &data->field_0->arr[id], var, id); +} + +u8 sub_80132D4(struct UnkStruct_Main0 *arg0) +{ + struct UnkStruct_Leader *data = gUnknown_02022C30.leader; + u8 ret = 0; + u8 i; + s32 id; + + for (i = 1; i < 5; i++) + { + u16 var = data->field_0->arr[i].field_1A_0; + if (var == 1) + { + id = sub_80176E4(&data->field_0->arr[i], data->field_4->arr); + if (id != 0xFF) + { + data->field_0->arr[i].unk = data->field_4->arr[id].unk0; + data->field_0->arr[i].field_18 = var; + } + else + { + data->field_0->arr[i].field_1A_0 = 2; + ret = 2; + } + } + } + + for (id = 0; id < 4; id++) + sub_8017734(data->field_0->arr, &data->field_4->arr[id].unk0, 5); + + if (ret != 2) + { + for (id = 0; id < 5; id++) + { + if (data->field_0->arr[id].field_1B != 0) + ret = 1; + } + } + + return ret; +} + +u8 sub_8013398(struct UnkStruct_Main0 *arg0) +{ + struct UnkStruct_Leader *data = gUnknown_02022C30.leader; + u8 copiedCount; + s32 i; + u8 ret; + + for (i = 0; i < 5; i++) + data->field_8->arr[i] = data->field_0->arr[i]; + + copiedCount = 0; + for (i = 0; i < 5; i++) + { + if (data->field_8->arr[i].field_1A_0 == 1) + { + data->field_0->arr[copiedCount] = data->field_8->arr[i]; + copiedCount++; + } + } + + ret = copiedCount; + for (; copiedCount < 5; copiedCount++) + { + data->field_0->arr[copiedCount].unk = gUnknown_082F045C; + data->field_0->arr[copiedCount].field_18 = 0; + data->field_0->arr[copiedCount].field_1A_0 = 0; + data->field_0->arr[copiedCount].field_1A_1 = 0; + data->field_0->arr[copiedCount].field_1B = 0; + } + + for (i = 0; i < 5; i++) + { + if (data->field_0->arr[i].field_1A_0 != 1) + continue; + if (data->field_0->arr[i].field_1B != 0x40) + continue; + + ret = i; + break; + } + + return ret; +} + +void BerryBlenderLinkJoinGroup(void) +{ + u8 taskId; + struct UnkStruct_Group *dataPtr; + + taskId = CreateTask(sub_80134E8, 0); + gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data); + gUnknown_03000DA4 = dataPtr; + + dataPtr->state = 0; + dataPtr->textState = 0; + gSpecialVar_Result = 0; +} + +void sub_80134E8(u8 taskId) +{ + s32 id; + struct UnkStruct_Group *data = gUnknown_02022C30.group; + + switch (data->state) + { + case 0: + if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN) + gSpecialVar_0x8004++; + gUnknown_02022C2C = gUnknown_082F0530[gSpecialVar_0x8004]; + sub_8010F84(gUnknown_02022C2C, 0, 0); + sub_800B488(); + OpenLink(); + sub_8011C5C(); + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0x200); + data->state = 1; + break; + case 1: + if (PrintOnTextbox(&data->textState, gUnknown_082EFB70[gSpecialVar_0x8004])) + data->state = 2; + break; + case 2: + sub_80175EC(data->field_4, 4); + sub_8017580(data->field_0->arr, 16); + data->field_11 = sub_8016FC0(data->field_4, gSpecialVar_0x8004); + data->field_C = AddWindow(&gUnknown_082F00BC); + data->listWindowId = AddWindow(&gUnknown_082F0174); + data->field_D = AddWindow(&gUnknown_082F017C); + + FillWindowPixelBuffer(data->field_C, PIXEL_FILL(2)); + sub_80173E0(data->field_C, 0, gUnknown_082EF7DC, 8, 1, 4); + PutWindowTilemap(data->field_C); + CopyWindowToVram(data->field_C, 2); + + DrawStdWindowFrame(data->listWindowId, FALSE); + gMultiuseListMenuTemplate = gUnknown_082F0204; + gMultiuseListMenuTemplate.windowId = data->listWindowId; + data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); + + DrawStdWindowFrame(data->field_D, FALSE); + PutWindowTilemap(data->field_D); + sub_80125BC(data->field_D); + CopyWindowToVram(data->field_D, 2); + + CopyBgTilemapBufferToVram(0); + data->field_F = 0; + data->state = 3; + break; + case 3: + id = sub_8013E44(); + switch (id) + { + case 1: + PlaySE(SE_PC_LOGIN); + RedrawListMenu(data->listTaskId); + break; + case 0: + id = ListMenu_ProcessInput(data->listTaskId); + if (gMain.newKeys & A_BUTTON && id != -1) + { + // this unused variable along with the assignment is needed to match + u32 unusedVar; + unusedVar = data->field_0->arr[id].unk.field_0.unk_0a_0; + + if (data->field_0->arr[id].field_1A_0 == 1 && !data->field_0->arr[id].unk.field_0.unk_0a_7) + { + u32 var = sub_8013B8C(data, id); + if (var == 0) + { + sub_8013BD8(data, id); + data->state = 5; + PlaySE(SE_PN_ON); + } + else + { + StringCopy(gStringVar4, gUnknown_082EDD50[var - 1]); + data->state = 18; + PlaySE(SE_PN_ON); + } + } + else + { + PlaySE(SE_WALL_HIT); + } + } + else if (gMain.newKeys & B_BUTTON) + { + data->state = 10; + } + break; + default: + RedrawListMenu(data->listTaskId); + break; + } + break; + case 5: + sub_80130B4(gStringVar4, gUnknown_02022C2C); + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); + data->state = 6; + } + break; + case 6: + if (gReceivedRemoteLinkPlayers != 0) + { + gUnknown_02022C2C = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0; + sub_8011A64(0, 0); + switch (gUnknown_02022C2C) + { + case 1 ... 5: + case 9 ... 11: + case 13 ... 16: + case 21 ... 28: + data->state = 20; + return; + } + } + + switch (sub_8011A74()) + { + case 1: + data->state = 12; + break; + case 2: + case 6: + case 9: + data->state = 14; + break; + case 5: + sub_8013160(gStringVar4, gUnknown_02022C2C); + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + if (gUnknown_02022C2C == 28 || gUnknown_02022C2C == 14) + { + sub_8011A64(12, 0); + } + else + { + sub_8011A64(7, 0); + StringCopy(gStringVar1, gUnknown_082F0048[gUnknown_02022C2C]); + StringExpandPlaceholders(gStringVar4, gUnknown_082EDE48); + } + } + break; + case 7: + if (data->field_15 > 0xF0) + { + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + sub_8011A64(12, 0); + data->field_15 = 0; + } + } + else + { + switch (gUnknown_02022C2C) + { + case 1: + case 2: + case 4: + case 14: + case 28: + break; + default: + data->field_15++; + break; + } + } + break; + } + + if (!sub_8011A74() && gMain.newKeys & B_BUTTON) + data->state = 7; + break; + case 7: + if (PrintOnTextbox(&data->textState, gUnknown_082EDE64)) + data->state = 8; + break; + case 8: + switch (sub_80170B8(&data->textState, sub_8011A74())) + { + case 0: + sub_80106D4(); + data->state = 9; + RedrawListMenu(data->listTaskId); + break; + case 1: + case -1: + data->state = 5; + RedrawListMenu(data->listTaskId); + break; + case -3: + data->state = 6; + RedrawListMenu(data->listTaskId); + break; + } + break; + case 9: + if (sub_8011A74()) + data->state = 6; + break; + case 10: + case 12: + case 14: + case 18: + case 20: + ClearWindowTilemap(data->field_D); + ClearStdWindowAndFrame(data->field_D, FALSE); + DestroyListMenuTask(data->listTaskId, 0, 0); + ClearWindowTilemap(data->field_C); + ClearStdWindowAndFrame(data->listWindowId, FALSE); + CopyBgTilemapBufferToVram(0); + RemoveWindow(data->field_D); + RemoveWindow(data->listWindowId); + RemoveWindow(data->field_C); + DestroyTask(data->field_11); + Free(data->field_0); + Free(data->field_4); + data->state++; + break; + case 13: + sub_800E084(); + if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()])) + { + gSpecialVar_Result = 6; + data->state = 23; + } + break; + case 11: + sub_800E084(); + gSpecialVar_Result = 5; + data->state = 23; + break; + case 15: + sub_800E084(); + if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()])) + { + gSpecialVar_Result = 8; + data->state = 23; + } + break; + case 19: + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + gSpecialVar_Result = 8; + data->state = 23; + } + break; + case 23: + DestroyTask(taskId); + sub_80173D4(); + sub_800EDD4(); + break; + case 21: + sub_80149C4(); + DestroyTask(taskId); + break; + } +} + +u32 sub_8013B8C(struct UnkStruct_Group *arg0, s32 id) +{ + struct UnkStruct_x20 *structPtr = &arg0->field_0->arr[id]; + + if (gUnknown_02022C2C == 4 && structPtr->unk.field_0.unk_00.unk_01_2 != 3) + { + if (!(gSaveBlock2Ptr->specialSaveWarpFlags & 0x80)) + return 1; + else if (structPtr->unk.field_0.unk_00.unk_00_7) + return 0; + } + else + { + return 0; + } + + return 2; +} + +void sub_8013BD8(struct UnkStruct_Group *data, s32 id) +{ + data->field_F = id; + sub_800E0E8(); + CreateWirelessStatusIndicatorSprite(0, 0); + RedrawListMenu(data->listTaskId); + sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); + sub_8011090(gUnknown_082F0530[gSpecialVar_0x8004], 0, 1); + sub_8011FC8(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId)); +} + +u8 sub_8013C40(void) +{ + u8 taskId; + struct UnkStruct_Group *dataPtr; + + taskId = CreateTask(sub_8013C7C, 0); + gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data); + + dataPtr->state = 0; + dataPtr->textState = 0; + + gUnknown_03000DA4 = dataPtr; + + return taskId; +} + +void sub_8013C7C(u8 taskId) +{ + struct UnkStruct_Group *data = gUnknown_02022C30.group; + + switch (data->state) + { + case 0: + sub_8010F84(0, 0, 0); + sub_800B488(); + OpenLink(); + sub_8011C5C(); + sub_80111B0(TRUE); + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0x200); + data->state = 2; + break; + case 2: + sub_80175EC(data->field_4, 4); + sub_8017580(data->field_0->arr, 16); + data->field_11 = sub_8016FC0(data->field_4, 0xFF); + data->field_F = 0; + data->state = 3; + break; + case 3: + if (sub_8013E44() == 1) + PlaySE(SE_PC_LOGIN); + if (gTasks[taskId].data[15] == 0xFF) + data->state = 10; + break; + case 10: + DestroyTask(data->field_11); + Free(data->field_0); + Free(data->field_4); + sub_800EDD4(); + data->state++; + break; + case 11: + sub_800EDD4(); + DestroyTask(taskId); + break; + } +} + +bool32 sub_8013D88(u32 arg0, u32 id) +{ + if (id == 0xFF) + return TRUE; + + if (id <= ARRAY_COUNT(gUnknown_082F04D8)) // UB: <= may access data outside the array + { + const u8 *bytes = gUnknown_082F04D8[id]; + + while ((*(bytes) != 0xFF)) + { + if ((*bytes) == arg0) + return TRUE; + bytes++; + } + } + + return FALSE; +} + +u8 sub_8013DBC(struct UnkStruct_Group *data, u32 id) +{ + if (data->field_0->arr[id].field_1A_0 == 1) + { + if (data->field_0->arr[id].unk.field_0.unk_0a_7) + return 3; + else if (data->field_0->arr[id].field_1A_1 != 0) + return 1; + else if (data->field_0->arr[id].field_1B != 0) + return 2; + } + + return 0; +} + +void sub_8013DF4(u8 arg0, u32 id, u8 arg2) +{ + struct UnkStruct_Group *data = gUnknown_02022C30.group; + u8 var = sub_8013DBC(data, id); + + sub_80177B8(arg0, 8, arg2, &data->field_0->arr[id], var, id); +} + +u8 sub_8013E44(void) +{ + struct UnkStruct_Group *data = gUnknown_02022C30.group; + u8 ret = 0; + u8 i; + s32 id; + + for (i = 0; i < 16; i++) + { + if (data->field_0->arr[i].field_1A_0 != 0) + { + id = sub_80176E4(&data->field_0->arr[i], data->field_4->arr); + if (id != 0xFF) + { + if (data->field_0->arr[i].field_1A_0 == 1) + { + if (sub_8017678(&data->field_0->arr[i], &data->field_4->arr[id])) + { + data->field_0->arr[i].unk = data->field_4->arr[id].unk0; + data->field_0->arr[i].field_1B = 0x40; + ret = 1; + } + else + { + if (data->field_0->arr[i].field_1B != 0) + { + data->field_0->arr[i].field_1B--; + if (data->field_0->arr[i].field_1B == 0) + ret = 2; + } + } + } + else + { + data->field_0->arr[i].field_1A_0 = 1; + data->field_0->arr[i].field_1B = 0x40; + ret = 1; + } + + data->field_0->arr[i].field_18 = 0; + } + else + { + if (data->field_0->arr[i].field_1A_0 != 2) + { + data->field_0->arr[i].field_18++; + if (data->field_0->arr[i].field_18 >= 300) + { + data->field_0->arr[i].field_1A_0 = 2; + ret = 2; + } + } + } + } + } + + for (id = 0; id < 4; id++) + { + if (sub_8017734(data->field_0->arr, &data->field_4->arr[id].unk0, 16) != 0xFF) + ret = 1; + } + + return ret; +} + +void sub_8013F60(u8 taskId) +{ + sub_80773AC(); + DestroyTask(taskId); +} + +u8 sub_8013F78(void) +{ + u8 taskId = CreateTask(sub_8013F60, 0); + + return taskId; +} + +void sub_8013F90(u8 taskId) +{ + u32 monId = sub_8018120(&gUnknown_02022C40, GetMultiplayerId()); + + switch (gTasks[taskId].data[0]) + { + case 0: + gTasks[taskId].data[0]++; + SendBlock(0, &gPlayerParty[monId], sizeof(struct Pokemon)); + break; + case 1: + if (GetBlockReceivedStatus() == 3) + { + gEnemyParty[0] = *(struct Pokemon*)(gBlockRecvBuffer[GetMultiplayerId() ^ 1]); + IncrementGameStat(GAME_STAT_50); + ResetBlockReceivedFlags(); + gTasks[taskId].data[0]++; + } + break; + case 2: + memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, sizeof(struct MailStruct) * PARTY_SIZE + 4); + if (SendBlock(0, gBlockSendBuffer, sizeof(struct MailStruct) * PARTY_SIZE + 4)) + gTasks[taskId].data[0]++; + break; + case 3: + if (GetBlockReceivedStatus() == 3) + { + memcpy(gUnknown_020321C0, gBlockRecvBuffer[GetMultiplayerId() ^ 1], sizeof(struct MailStruct) * PARTY_SIZE); + ResetBlockReceivedFlags(); + gUnknown_02032298[0] = monId; + gUnknown_02032298[1] = 6; + gMain.savedCallback = CB2_ReturnToField; + SetMainCallback2(sub_807AE50); + sub_801807C(&gUnknown_02022C40); + DestroyTask(taskId); + } + break; + } +} + +void sub_80140E0(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (GetMultiplayerId() == 0) + sub_800A4D8(2); + gTasks[taskId].data[0]++; + break; + case 1: + if (GetBlockReceivedStatus() == sub_800A9D8()) + { + s32 i; + u16 *recvBuff; + + for (i = 0; i < GetLinkPlayerCount(); i++) + { + recvBuff = gBlockRecvBuffer[i]; + CopyTrainerCardData(&gTrainerCards[i], recvBuff, gLinkPlayers[i].version); + } + + if (GetLinkPlayerCount() == 2) + { + recvBuff = gBlockRecvBuffer[GetMultiplayerId() ^ 1]; + sub_801B94C(recvBuff[48]); + } + else + { + sub_801B940(); + } + + ResetBlockReceivedFlags(); + DestroyTask(taskId); + } + break; + } +} + +void sub_80141A4(void) +{ + switch (gMain.state) + { + case 0: + CreateTask(sub_80140E0, 5); + gMain.state++; + break; + case 1: + if (!FuncIsActiveTask(sub_80140E0)) + ShowTrainerCardInLink(GetMultiplayerId() ^ 1, CB2_ReturnToField); + break; + } + + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); +} + +void sub_8014210(u16 battleFlags) +{ + HealPlayerParty(); + SavePlayerParty(); + LoadPlayerBag(); + gLinkPlayers[0].linkType = 0x2211; + gLinkPlayers[GetMultiplayerId()].id = GetMultiplayerId(); + gLinkPlayers[GetMultiplayerId() ^ 1].id = GetMultiplayerId() ^ 1; + gMain.savedCallback = sub_80B360C; + gBattleTypeFlags = battleFlags; + PlayBattleBGM(); +} + +void sub_8014290(u16 arg0, u16 x, u16 y) +{ + VarSet(VAR_CABLE_CLUB_STATE, arg0); + SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); + SetDynamicWarpWithCoords(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); + WarpIntoMap(); +} + +void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) +{ + gSpecialVar_0x8004 = arg4; + VarSet(VAR_CABLE_CLUB_STATE, arg4); + gFieldLinkPlayerCount = GetLinkPlayerCount(); + gLocalLinkPlayerId = GetMultiplayerId(); + SetCableClubWarp(); + SetWarpDestination(mapGroup, mapNum, -1, x, y); + WarpIntoMap(); +} + +void sub_8014384(void) +{ + switch (gMain.state) + { + case 0: + CreateTask(sub_80140E0, 5); + gMain.state++; + break; + case 1: + if (!FuncIsActiveTask(sub_80140E0)) + SetMainCallback2(sub_8086074); + break; + } + + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); +} + +void sub_80143E4(void *arg0, bool32 arg1) +{ + u16 *argAsU16Ptr = arg0; + + TrainerCard_GenerateCardForPlayer((struct TrainerCard *)argAsU16Ptr); + if (arg1) + argAsU16Ptr[48] = sub_801B39C(); + else + argAsU16Ptr[48] = 0; +} + +void sub_801440C(u8 taskId) +{ + sub_801B940(); + switch (gUnknown_02022C2C) + { + case 1 ... 4: + case 9 ... 11: + case 13: + case 15: + RecordMixTrainerNames(); + break; + } + + switch (gUnknown_02022C2C) + { + case 65: + case 81: + CleanupOverworldWindowsAndTilemaps(); + gMain.savedCallback = sub_801AC54; + InitChooseHalfPartyForBattle(3); + break; + case 1: + CleanupOverworldWindowsAndTilemaps(); + sub_80143E4(gBlockSendBuffer, TRUE); + HealPlayerParty(); + SavePlayerParty(); + LoadPlayerBag(); + sub_8014304(MAP_GROUP(SINGLE_BATTLE_COLOSSEUM), MAP_NUM(SINGLE_BATTLE_COLOSSEUM), 6, 8, 1); + SetMainCallback2(sub_8014384); + break; + case 2: + CleanupOverworldWindowsAndTilemaps(); + HealPlayerParty(); + SavePlayerParty(); + LoadPlayerBag(); + sub_80143E4(gBlockSendBuffer, TRUE); + sub_8014304(MAP_GROUP(SINGLE_BATTLE_COLOSSEUM), MAP_NUM(SINGLE_BATTLE_COLOSSEUM), 6, 8, 2); + SetMainCallback2(sub_8014384); + break; + case 3: + CleanupOverworldWindowsAndTilemaps(); + HealPlayerParty(); + SavePlayerParty(); + LoadPlayerBag(); + sub_80143E4(gBlockSendBuffer, TRUE); + sub_8014304(MAP_GROUP(DOUBLE_BATTLE_COLOSSEUM), MAP_NUM(DOUBLE_BATTLE_COLOSSEUM), 5, 8, 5); + SetMainCallback2(sub_8014384); + break; + case 4: + sub_80143E4(gBlockSendBuffer, TRUE); + CleanupOverworldWindowsAndTilemaps(); + sub_8014304(MAP_GROUP(TRADE_CENTER), MAP_NUM(TRADE_CENTER), 5, 8, 3); + SetMainCallback2(sub_8014384); + break; + case 15: + sub_80143E4(gBlockSendBuffer, TRUE); + CleanupOverworldWindowsAndTilemaps(); + sub_8014304(MAP_GROUP(RECORD_CORNER), MAP_NUM(RECORD_CORNER), 8, 9, 4); + SetMainCallback2(sub_8014384); + break; + case 68: + CleanupOverworldWindowsAndTilemaps(); + CreateTask(sub_8013F90, 0); + break; + case 5: + case 69: + if (GetMultiplayerId() == 0) + { + sub_800ED10(); + } + else + { + sub_800ED28(); + sub_8010F84(69, 0, 1); + } + sub_801DD98(); + break; + case 8: + case 72: + sub_80143E4(gBlockSendBuffer, FALSE); + SetMainCallback2(sub_80141A4); + break; + case 9: + sub_8014290(8, 5, 1); + sub_802A9A8(GetCursorSelectionMonId(), CB2_LoadMap); + break; + case 10: + sub_8014290(7, 9, 1); + sub_8020C70(CB2_LoadMap); + break; + case 11: + sub_8014290(8, 5, 1); + sub_802493C(GetCursorSelectionMonId(), CB2_LoadMap); + break; + } + + DestroyTask(taskId); + gSpecialVar_Result = 1; + if (gUnknown_02022C2C != 68) + ScriptContext2_Disable(); +} + +void sub_8014790(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 *sendBuff = (u16*)(gBlockSendBuffer); + + switch (data[0]) + { + case 0: + gSpecialVar_Result = 1; + switch (gUnknown_02022C2C) + { + case 14: + case 28: + gLinkPlayers[0].linkType = 0x2211; + gLinkPlayers[0].id = 0; + gLinkPlayers[1].id = 2; + sendBuff[0] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[0] - 1], MON_DATA_SPECIES); + sendBuff[1] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[1] - 1], MON_DATA_SPECIES, NULL); + gMain.savedCallback = NULL; + data[0] = 4; + RecordMixTrainerNames(); + ResetBlockReceivedFlags(); + break; + case 16: + case 23 ... 27: + RecordMixTrainerNames(); + DestroyTask(taskId); + default: + EnableBothScriptContexts(); + data[0] = 1; + break; + } + break; + case 1: + if (!ScriptContext1_IsScriptSetUp()) + { + FadeScreen(1, 0); + data[0] = 2; + } + break; + case 2: + if (!gPaletteFade.active) + { + if (gUnknown_02022C2C == 29) + { + DestroyTask(taskId); + SetMainCallback2(sub_80773AC); + } + else + { + sub_800ADF8(); + data[0] = 3; + } + } + break; + case 3: + if (IsLinkTaskFinished()) + { + DestroyTask(taskId); + sub_80149D8(); + } + break; + case 4: + if (SendBlock(0, gBlockSendBuffer, 0xE)) + data[0] = 5; + break; + case 5: + if (GetBlockReceivedStatus() == 3) + { + ResetBlockReceivedFlags(); + if (sub_80B2AF4(gBlockRecvBuffer[0], gBlockRecvBuffer[1])) + { + gSpecialVar_Result = 11; + data[0] = 7; + } + else + { + data[0] = 6; + } + } + break; + case 6: + EnableBothScriptContexts(); + DestroyTask(taskId); + break; + case 7: + sub_800AC34(); + data[0] = 8; + break; + case 8: + if (gReceivedRemoteLinkPlayers == 0) + { + sub_800E084(); + EnableBothScriptContexts(); + DestroyTask(taskId); + } + break; + } +} + +void sub_80149C4(void) +{ + CreateTask(sub_8014790, 0); +} + +void sub_80149D8(void) +{ + u8 taskId = CreateTask(sub_801440C, 0); + gTasks[taskId].data[0] = 0; +} + +void sub_8014A00(u32 arg0) +{ + u8 taskId; + struct UnkStruct_Leader *dataPtr; + + taskId = CreateTask(sub_8014A40, 0); + gUnknown_02022C30.leader = dataPtr = (void*)(gTasks[taskId].data); + + dataPtr->state = 0; + dataPtr->textState = 0; + dataPtr->field_18 = arg0; + gSpecialVar_Result = 0; +} + +void sub_8014A40(u8 taskId) +{ + struct UnkStruct_Leader *data = gUnknown_02022C30.leader; + struct WindowTemplate winTemplate; + s32 val; + + switch (data->state) + { + case 0: + gUnknown_02022C2C = data->field_18; + gUnknown_02022C2D = 2; + sub_8010F84(data->field_18, 0, 0); + sub_8010FA0(FALSE, FALSE); + sub_800B488(); + OpenLink(); + sub_8011C10(2); + data->state = 1; + break; + case 1: + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0xA0); + data->field_8 = AllocZeroed(0xA0); + sub_80175EC(data->field_4, 4); + sub_8017580(data->field_0->arr, 5); + sub_800DF90(&data->field_0->arr[0].unk.field_0, data->field_0->arr[0].unk.playerName); + data->field_0->arr[0].field_18 = 0; + data->field_0->arr[0].field_1A_0 = 1; + data->field_0->arr[0].field_1A_1 = 0; + data->field_0->arr[0].field_1B = 0; + data->field_17 = sub_8016FC0(data->field_4, 0xFF); + + winTemplate = gUnknown_082F011C; + winTemplate.baseBlock = sub_8019930(); + winTemplate.paletteNum = 0xC; + data->listWindowId = AddWindow(&winTemplate); + sub_8018784(data->listWindowId); + gMultiuseListMenuTemplate = gUnknown_082F015C; + gMultiuseListMenuTemplate.windowId = data->listWindowId; + data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); + + CopyBgTilemapBufferToVram(0); + data->field_13 = 1; + data->state = 2; + break; + case 2: + StringCopy(gStringVar1, gUnknown_082F0048[gUnknown_02022C2C]); + sub_801262C(gStringVar4, gUnknown_02022C2C); + data->state = 3; + break; + case 3: + sub_8018884(gStringVar4); + data->state = 4; + break; + case 4: + sub_801320C(data, 5, 6); + if (gMain.newKeys & B_BUTTON) + { + data->state = 13; + sub_800E084(); + } + break; + case 6: + if (mevent_0814257C(&data->textState, gUnknown_082EDF40)) + { + data->field_13 = sub_8013398(data->field_0); + RedrawListMenu(data->listTaskId); + data->state = 2; + } + break; + case 5: + data->state = 7; + break; + case 7: + switch (sub_8018B08(&data->textState, &data->field_14, 0, gStringVar4)) + { + case 0: + sub_800E0E8(); + CreateWirelessStatusIndicatorSprite(0, 0); + data->field_0->arr[data->field_13].field_1B = 0; + RedrawListMenu(data->listTaskId); + data->field_19 = 5; + sub_8010688(5, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + data->state = 8; + break; + case 1: + case -1: + data->field_19 = 6; + sub_8010688(6, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + data->state = 8; + break; + } + break; + case 8: + val = sub_8010714(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName); + if (val == 1) + { + if (data->field_19 == 5) + { + data->field_0->arr[data->field_13].field_1B = 0; + RedrawListMenu(data->listTaskId); + data->field_13++; + sub_8018404(gStringVar1, &data->field_0->arr[data->field_13 - 1]); + StringExpandPlaceholders(gStringVar4, gUnknown_082EDC9C); + data->state = 9; + sub_800EF38(); + } + else + { + sub_8011DC0(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId)); + data->field_0->arr[data->field_13].field_1A_0 = 0; + sub_8013398(data->field_0); + RedrawListMenu(data->listTaskId); + data->state = 2; + } + + data->field_19 = 0; + } + else if (val == 2) + { + sub_8011A64(0, 0); + data->state = 2; + } + break; + case 9: + sub_8018884(gStringVar4); + data->state = 10; + break; + case 10: + if (++data->field_E > 120) + data->state = 11; + break; + case 11: + if (!sub_801320C(data, 5, 6)) + data->state = 12; + break; + case 12: + if (sub_800EF1C()) + { + sub_800EF58(FALSE); + data->state = 15; + } + else + { + data->state = 6; + } + break; + case 13: + sub_800E084(); + sub_800EDD4(); + DestroyListMenuTask(data->listTaskId, 0, 0); + CopyBgTilemapBufferToVram(0); + RemoveWindow(data->listWindowId); + DestroyTask(data->field_17); + Free(data->field_8); + Free(data->field_0); + Free(data->field_4); + data->state++; + break; + case 14: + if (mevent_0814257C(&data->textState, gText_PleaseStartOver)) + { + DestroyTask(taskId); + gSpecialVar_Result = 5; + } + break; + case 15: + if (sub_8011A74() == 1 || sub_8011A74() == 2) + { + data->state = 13; + } + else if (gReceivedRemoteLinkPlayers != 0) + { + sub_8011068(1); + data->state++; + } + break; + case 16: + DestroyListMenuTask(data->listTaskId, 0, 0); + CopyBgTilemapBufferToVram(0); + RemoveWindow(data->listWindowId); + DestroyTask(data->field_17); + Free(data->field_8); + Free(data->field_0); + Free(data->field_4); + sub_800ADF8(); + data->state++; + break; + case 17: + if (IsLinkTaskFinished()) + DestroyTask(taskId); + break; + } +} + +void sub_8014EFC(u32 arg0) +{ + u8 taskId; + struct UnkStruct_Group *dataPtr; + + taskId = CreateTask(sub_8014F48, 0); + gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data); + gUnknown_03000DA4 = dataPtr; + + dataPtr->state = 0; + dataPtr->textState = 0; + dataPtr->field_12 = arg0 - 21; + gSpecialVar_Result = 0; +} + +void sub_8014F48(u8 taskId) +{ + s32 id; + struct WindowTemplate winTemplate1, winTemplate2; + struct UnkStruct_Group *data = gUnknown_02022C30.group; + + switch (data->state) + { + case 0: + sub_8010F84(data->field_12 + 21, 0, 0); + sub_800B488(); + OpenLink(); + sub_8011C5C(); + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0x200); + data->state = 1; + break; + case 1: + sub_8018884(gUnknown_082EF7F8); + data->state = 2; + break; + case 2: + sub_80175EC(data->field_4, 4); + sub_8017580(data->field_0->arr, 16); + data->field_11 = sub_8016FC0(data->field_4, data->field_12 + 7); + + winTemplate1 = gUnknown_082F0174; + winTemplate1.baseBlock = sub_8019930(); + winTemplate1.paletteNum = 0xC; + data->listWindowId = AddWindow(&winTemplate1); + + winTemplate2 = gUnknown_082F017C; + winTemplate2.paletteNum = 0xC; + data->field_D = AddWindow(&winTemplate2); + + sub_8018784(data->listWindowId); + gMultiuseListMenuTemplate = gUnknown_082F0204; + gMultiuseListMenuTemplate.windowId = data->listWindowId; + data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); + + sub_8018784(data->field_D); + FillWindowPixelBuffer(data->field_D, PIXEL_FILL(1)); + PutWindowTilemap(data->field_D); + sub_80125BC(data->field_D); + CopyWindowToVram(data->field_D, 2); + + CopyBgTilemapBufferToVram(0); + data->field_F = 0; + data->state = 3; + break; + case 3: + id = sub_8013E44(); + switch (id) + { + case 1: + PlaySE(SE_PC_LOGIN); + default: + RedrawListMenu(data->listTaskId); + break; + case 0: + id = ListMenu_ProcessInput(data->listTaskId); + if (gMain.newKeys & A_BUTTON && id != -1) + { + // this unused variable along with the assignment is needed to match + u32 unusedVar; + unusedVar = data->field_0->arr[id].unk.field_0.unk_0a_0; + + if (data->field_0->arr[id].field_1A_0 == 1 && !data->field_0->arr[id].unk.field_0.unk_0a_7) + { + data->field_F = id; + sub_800E0E8(); + CreateWirelessStatusIndicatorSprite(0, 0); + RedrawListMenu(data->listTaskId); + sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); + sub_8011FC8(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId)); + PlaySE(SE_PN_ON); + data->state = 4; + } + else + { + PlaySE(SE_WALL_HIT); + } + } + else if (gMain.newKeys & B_BUTTON) + { + data->state = 6; + } + break; + } + break; + case 4: + sub_8018884(gUnknown_082EFC3C); + sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); + data->state = 5; + break; + case 5: + if (gReceivedRemoteLinkPlayers != 0) + { + gUnknown_02022C2C = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0; + data->state = 10; + } + + switch (sub_8011A74()) + { + case 1: + case 2: + case 6: + data->state = 8; + break; + case 5: + sub_8018884(gUnknown_082EDDF4); + sub_8011A64(0, 0); + break; + } + break; + case 6: + case 8: + case 10: + DestroyListMenuTask(data->listTaskId, 0, 0); + CopyBgTilemapBufferToVram(0); + RemoveWindow(data->field_D); + RemoveWindow(data->listWindowId); + DestroyTask(data->field_11); + Free(data->field_0); + Free(data->field_4); + data->state++; + break; + case 9: + if (mevent_0814257C(&data->textState, gUnknown_082EDF80[sub_8011A74()])) + { + sub_800E084(); + DestroyTask(taskId); + sub_800EDD4(); + gSpecialVar_Result = 5; + } + break; + case 7: + sub_800E084(); + sub_8018884(gText_PleaseStartOver); + DestroyTask(taskId); + sub_800EDD4(); + gSpecialVar_Result = 5; + break; + case 11: + data->state++; + sub_800ADF8(); + break; + case 12: + if (IsLinkTaskFinished()) + DestroyTask(taskId); + break; + } +} + +void sub_80152A8(u32 arg0) +{ + u8 taskId; + struct UnkStruct_Group *dataPtr; + + taskId = CreateTask(sub_80152F4, 0); + gUnknown_02022C30.group = dataPtr = (void*)(gTasks[taskId].data); + gUnknown_03000DA4 = dataPtr; + + dataPtr->state = 0; + dataPtr->textState = 0; + dataPtr->field_12 = arg0 - 21; + gSpecialVar_Result = 0; +} + +void sub_80152F4(u8 taskId) +{ + s32 id; + struct WindowTemplate winTemplate; + struct UnkStruct_Group *data = gUnknown_02022C30.group; + + switch (data->state) + { + case 0: + sub_8010F84(0, 0, 0); + sub_800B488(); + OpenLink(); + sub_8011C5C(); + data->field_4 = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0x200); + data->state = 1; + break; + case 1: + sub_8018884(gUnknown_082EFBC8); + data->state = 2; + break; + case 2: + sub_80175EC(data->field_4, 4); + sub_8017580(data->field_0->arr, 16); + data->field_11 = sub_8016FF0(data->field_4, data->field_12 + 7); + + if (data->field_13 != 0) + { + winTemplate = gUnknown_082F0174; + winTemplate.baseBlock = sub_8019930(); + data->listWindowId = AddWindow(&winTemplate); + + sub_8018784(data->listWindowId); + gMultiuseListMenuTemplate = gUnknown_082F0204; + gMultiuseListMenuTemplate.windowId = data->listWindowId; + data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); + + CopyBgTilemapBufferToVram(0); + } + + data->field_F = 0; + data->state = 3; + break; + case 3: + id = sub_8013E44(); + switch (id) + { + case 1: + PlaySE(SE_PC_LOGIN); + default: + if (data->field_13 != 0) + RedrawListMenu(data->listTaskId); + break; + case 0: + if (data->field_13 != 0) + id = ListMenu_ProcessInput(data->listTaskId); + if (data->field_14 > 120) + { + if (data->field_0->arr[0].field_1A_0 == 1 && !data->field_0->arr[0].unk.field_0.unk_0a_7) + { + if (sub_8016F1C(&data->field_0->arr[0], data->field_12 + 7)) + { + data->field_F = 0; + data->field_14 = 0; + sub_800E0E8(); + CreateWirelessStatusIndicatorSprite(0, 0); + sub_8011FC8(data->field_0->arr[0].unk.playerName, ReadAsU16(data->field_0->arr[0].unk.field_0.unk_00.playerTrainerId)); + PlaySE(SE_PN_ON); + data->state = 4; + } + else + { + PlaySE(SE_BOO); + data->state = 10; + } + } + } + else if (gMain.newKeys & B_BUTTON) + { + data->state = 6; + data->field_14 = 0; + } + data->field_14++; + break; + } + break; + case 4: + sub_8018884(gUnknown_082EFC90); + sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); + data->state = 5; + break; + case 5: + if (gReceivedRemoteLinkPlayers != 0) + { + gUnknown_02022C2C = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0; + data->state = 12; + } + + switch (sub_8011A74()) + { + case 1: + case 2: + case 6: + data->state = 8; + break; + case 5: + sub_8018884(gUnknown_082EDEC4); + sub_8011A64(0, 0); + break; + } + break; + case 6: + case 8: + case 10: + case 12: + if (data->field_13 != 0) + { + DestroyListMenuTask(data->listTaskId, 0, 0); + CopyBgTilemapBufferToVram(0); + RemoveWindow(data->listWindowId); + } + DestroyTask(data->field_11); + Free(data->field_0); + Free(data->field_4); + data->state++; + break; + case 9: + if (mevent_0814257C(&data->textState, gUnknown_082EDF04)) + { + sub_800E084(); + DestroyTask(taskId); + sub_800EDD4(); + gSpecialVar_Result = 5; + } + break; + case 7: + if (mevent_0814257C(&data->textState, gText_WirelessSearchCanceled)) + { + sub_800E084(); + DestroyTask(taskId); + sub_800EDD4(); + gSpecialVar_Result = 5; + } + break; + case 11: + if (mevent_0814257C(&data->textState, gUnknown_082EFD58[data->field_12])) + { + sub_800E084(); + DestroyTask(taskId); + sub_800EDD4(); + gSpecialVar_Result = 5; + } + break; + case 13: + data->state++; + sub_800ADF8(); + break; + case 14: + if (IsLinkTaskFinished()) + DestroyTask(taskId); + break; + } +} + +void UnionRoomSpecial(void) +{ + struct UnkStruct_URoom *dataPtr; + + sub_8010F60(); + CreateTask(sub_80156E0, 10); + + // dumb line needed to match + gUnknown_02022C30.uRoom = gUnknown_02022C30.uRoom; + + dataPtr = AllocZeroed(0x26C); + gUnknown_02022C30.uRoom = dataPtr; + gUnknown_03000DA8 = dataPtr; + + dataPtr->state = 0; + dataPtr->textState = 0; + dataPtr->field_10 = 0; + dataPtr->field_12 = 0; + + gSpecialVar_Result = 0; + sub_819A2BC(0xD0, 1); +} + +u16 ReadAsU16(const u8 *ptr) +{ + return (ptr[1] << 8) | (ptr[0]); +} + +void sub_8015664(u32 nextState, const u8 *src) +{ + struct UnkStruct_URoom *data = gUnknown_02022C30.uRoom; + + data->state = 8; + data->stateAfterPrint = nextState; + if (src != gStringVar4) + StringExpandPlaceholders(gStringVar4, src); +} + +void sub_801568C(const u8 *src) +{ + struct UnkStruct_URoom *data = gUnknown_02022C30.uRoom; + + data->state = 26; + if (src != gStringVar4) + StringExpandPlaceholders(gStringVar4, src); +} + +void sub_80156B0(struct UnkStruct_URoom *data) +{ + memcpy(&gDecompressionBuffer[0x3F00], data->field_0, 0x100); +} + +void sub_80156C8(struct UnkStruct_URoom *data) +{ + memcpy(data->field_0, &gDecompressionBuffer[0x3F00], 0x100); +} + +void sub_80156E0(u8 taskId) +{ + u32 id = 0; + s32 var5 = 0; + s32 playerGender = 0; + struct UnkStruct_URoom *data = gUnknown_02022C30.uRoom; + s16 *taskData = gTasks[taskId].data; + + switch (data->state) + { + case 0: + data->field_4 = AllocZeroed(0x70); + data->field_C = AllocZeroed(0x70); + data->field_0 = AllocZeroed(0x100); + data->field_8 = AllocZeroed(0x20); + sub_8017580(data->field_0->arr, 8); + gUnknown_02022C2C = 0x40; + data->field_20 = sub_8016DF0(data->field_C, data->field_4, 9); + sub_8019BA8(data->field_A0); + sub_8019F2C(); + data->state = 1; + break; + case 1: + sub_8019E70(data->spriteIds, taskData[0]); + if (++taskData[0] == 8) + data->state = 2; + break; + case 2: + sub_8010F84(0x40, 0, 0); + sub_8010FCC(gUnknown_02022C40.field_2, gUnknown_02022C40.field_A, gUnknown_02022C40.field_C); + sub_800B488(); + OpenLink(); + sub_8011C84(); + sub_8017580(&data->field_8->arr[0], 1); + sub_80175EC(data->field_4, 4); + sub_80175EC(data->field_C, 4); + gSpecialVar_Result = 0; + data->state = 3; + break; + case 3: + if ((sub_81B1360() == 8 || sub_81B1360() == 9) && gUnknown_02022C40.field_0 != 0) + { + id = GetCursorSelectionMonId(); + switch (gUnknown_02022C40.field_0) + { + case 1: + sub_8011090(0x54, 0, 1); + if (id >= PARTY_SIZE) + { + sub_801807C(&gUnknown_02022C40); + sub_8010FCC(0, 0, 0); + sub_801568C(gUnknown_082EF4FC); + } + else if (!sub_80180A0(GetCursorSelectionMonId(), &gUnknown_02022C40)) + { + sub_8015664(0x34, gUnknown_082EF47C); + } + else + { + data->state = 55; + } + break; + case 2: + sub_80156C8(data); + taskData[1] = gUnknown_02022C40.field_8; + if (id >= PARTY_SIZE) + { + sub_801568C(gUnknown_082EF544); + } + else + { + sub_8011090(0x54, 0, 1); + gUnknown_02022C2C = 0x44; + sub_80180E8(GetCursorSelectionMonId(), &gUnknown_02022C40); + data->state = 51; + } + break; + } + gUnknown_02022C40.field_0 = 0; + } + else + { + data->state = 4; + } + break; + case 4: + if (gSpecialVar_Result != 0) + { + if (gSpecialVar_Result == 9) + { + sub_8011090(0x54, 0, 1); + PlaySE(SE_PC_LOGIN); + StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); + data->state = 42; + gSpecialVar_Result = 0; + } + else if (gSpecialVar_Result == 11) + { + sub_8011090(0x54, 0, 1); + data->state = 23; + gSpecialVar_Result = 0; + } + else + { + taskData[0] = 0; + taskData[1] = gSpecialVar_Result - 1; + data->state = 24; + gSpecialVar_Result = 0; + } + } + else if (ScriptContext2_IsEnabled() != TRUE) + { + if (gMain.newKeys & A_BUTTON) + { + if (sub_801A2A8(data->field_0, &taskData[0], &taskData[1], data->spriteIds)) + { + PlaySE(SE_SELECT); + sub_80181CC(); + data->state = 24; + break; + } + else if (sub_8017940()) + { + sub_8011090(0x54, 0, 1); + PlaySE(SE_PC_LOGIN); + sub_80181CC(); + StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); + data->state = 45; + break; + } + } + + switch (sub_8016B00()) + { + case 1: + PlaySE(SE_PC_LOGIN); + case 2: + sub_801A274(data); + break; + case 4: + data->state = 11; + sub_80181CC(); + sub_8010FCC(0, 0, 0); + sub_8011090(0x53, sub_80181DC(data), 0); + break; + } + sub_801A284(data); + } + break; + case 23: + if (!FuncIsActiveTask(sub_809FA34)) + { + sub_8011090(0x40, 0, 0); + data->state = 4; + } + break; + case 24: + sub_801704C(); + playerGender = sub_8017CF8(taskData[1], data->field_0); + sub_8011090(0x54, 0, 1); + switch (sub_80179D4(data->field_0, taskData[0], taskData[1], playerGender)) + { + case 0: + data->state = 26; + break; + case 1: + sub_8012188(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, gUnknown_02022C2C); + data->field_12 = id; // Should be just 0, but won't match any other way. + data->state = 25; + break; + case 2: + sub_8015664(0x13, gStringVar4); + break; + } + break; + case 25: + sub_801704C(); + switch (sub_8011A74()) + { + case 4: + sub_801818C(TRUE); + data->state = 4; + break; + case 1: + case 2: + if (sub_8011B90() == TRUE) + sub_801568C(gUnknown_082EE6C8); + else + sub_8015664(30, gUnknown_082EE6C8); + + gUnknown_02022C2C = 0x40; + break; + } + + if (gReceivedRemoteLinkPlayers != 0) + { + sub_80143E4(gBlockSendBuffer, TRUE); + CreateTask(sub_80140E0, 5); + data->state = 38; + } + break; + case 38: + if (!FuncIsActiveTask(sub_80140E0)) + { + if (gUnknown_02022C2C == 0x44) + sub_8015664(31, gUnknown_082EE004); + else + data->state = 5; + } + break; + case 30: + if (gReceivedRemoteLinkPlayers == 0) + { + sub_801818C(FALSE); + sub_801A3D0(taskData[0], taskData[1], data->field_0); + data->state = 2; + } + break; + case 5: + id = sub_80179AC(&data->field_0->arr[taskData[1]]); + playerGender = sub_8017CF8(taskData[1], data->field_0); + sub_8015664(6, gUnknown_082EE24C[id][playerGender]); + break; + case 6: + var5 = sub_8017178(&data->textState, &data->field_1B, &data->field_1C, &gUnknown_082F021C, &gUnknown_082F0244); + if (var5 != -1) + { + if (gReceivedRemoteLinkPlayers == 0) + { + data->state = 28; + } + else + { + data->field_98 = 0; + playerGender = sub_8017CF8(taskData[1], data->field_0); + if (var5 == -2 || var5 == 0x40) + { + data->field_4C[0] = 0x40; + sub_800FE50(data->field_4C); + StringCopy(gStringVar4, gUnknown_082EEB80[gLinkPlayers[0].gender]); + data->state = 32; + } + else + { + gUnknown_02022C2C = var5; + gUnknown_02022C2D = (u32)(var5) >> 8; + if (gUnknown_02022C2C == 0x41 && !sub_8018024()) + { + sub_8015664(5, gUnknown_082EEBD0); + } + else + { + data->field_4C[0] = gUnknown_02022C2C | 0x40; + sub_800FE50(data->field_4C); + data->state = 27; + } + } + } + } + break; + case 28: + StringCopy(gStringVar4, gUnknown_082EEB88); + data->state = 36; + break; + case 27: + sub_8017FD8(data); + playerGender = sub_8017CF8(taskData[1], data->field_0); + id = sub_8017984(data->field_4C[0] & 0x3F); + if (PrintOnTextbox(&data->textState, gUnknown_082EE82C[playerGender][id])) + { + taskData[3] = 0; + data->state = 29; + } + break; + case 32: + sub_800AC34(); + data->state = 36; + break; + case 31: + data->field_4C[0] = 0x44; + data->field_4C[1] = gUnknown_02022C40.species; + data->field_4C[2] = gUnknown_02022C40.level; + sub_800FE50(data->field_4C); + data->state = 29; + break; + case 29: + if (gReceivedRemoteLinkPlayers == 0) + { + StringCopy(gStringVar4, gUnknown_082EEB88); + data->state = 28; + } + else + { + sub_8017FD8(data); + if (data->field_98 == 0x51) + { + if (gUnknown_02022C2C == 8) + { + sub_8018220(gStringVar4, data, FALSE); + data->state = 40; + } + else + { + data->state = 13; + } + } + else if (data->field_98 == 0x52) + { + data->state = 32; + sub_8017D9C(gStringVar4, gUnknown_02022C2C | 0x40, gLinkPlayers[0].gender); + gUnknown_02022C2C = 0; + } + } + break; + + case 7: + id = sub_80179AC(&data->field_0->arr[taskData[1]]); + playerGender = sub_8017CF8(taskData[1], data->field_0); + sub_8015664(6, gUnknown_082EE24C[id][playerGender]); + break; + case 40: + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + data->state = 41; + sub_800ADF8(); + data->field_98 = 0; + data->field_9A[0] = 0; + } + break; + case 41: + if (IsLinkTaskFinished()) + { + if (GetMultiplayerId() == 0) + { + StringCopy(gStringVar1, gLinkPlayers[GetMultiplayerId() ^ 1].name); + id = sub_800E540(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); + StringExpandPlaceholders(gStringVar4, gUnknown_082EE378[id]); + data->state = 33; + } + else + { + data->state = 7; + } + } + break; + case 19: + switch (sub_80170B8(&data->textState, FALSE)) + { + case 0: + CopyBgTilemapBufferToVram(0); + gUnknown_02022C2C = 0x45; + sub_8011090(0x45, 0, 1); + sub_8012188(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, gUnknown_02022C2C); + data->field_12 = taskData[1]; + data->state = 20; + taskData[3] = 0; + break; + case 1: + case -1: + playerGender = sub_8017CF8(taskData[1], data->field_0); + sub_801568C(gUnknown_082EEC9C[playerGender]); + break; + } + break; + case 20: + if (++taskData[2] > 60) + { + data->state = 21; + taskData[2] = 0; + } + break; + case 21: + switch (sub_8011A74()) + { + case 4: + sub_801818C(TRUE); + data->state = 4; + break; + case 1: + case 2: + playerGender = sub_8017CF8(taskData[1], data->field_0); + sub_8011090(0x54, 0, 1); + if (sub_8011B90() == TRUE) + sub_801568C(gUnknown_082EED3C[playerGender]); + else + sub_8015664(30, gUnknown_082EED3C[playerGender]); + break; + case 3: + data->state = 22; + break; + } + taskData[3]++; + break; + case 22: + if (sub_8011A80()) + { + playerGender = sub_8017CF8(taskData[1], data->field_0); + sub_8011090(0x54, 0, 1); + if (sub_8011B90() == TRUE) + sub_801568C(gUnknown_082EED3C[playerGender]); + else + sub_8015664(30, gUnknown_082EED3C[playerGender]); + } + if (gReceivedRemoteLinkPlayers != 0) + data->state = 16; + break; + case 11: + PlaySE(SE_PINPON); + sub_800EF7C(); + data->state = 12; + data->field_9A[0] = 0; + break; + case 12: + if (sub_8011A80()) + { + sub_801818C(FALSE); + data->state = 2; + } + else if (gReceivedRemoteLinkPlayers != 0) + { + sub_80143E4(gBlockSendBuffer, TRUE); + CreateTask(sub_80140E0, 5); + data->state = 39; + } + break; + case 39: + sub_801689C(data); + if (!FuncIsActiveTask(sub_80140E0)) + { + data->state = 33; + StringCopy(gStringVar1, gLinkPlayers[1].name); + id = sub_800E540(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); + StringExpandPlaceholders(gStringVar4, gUnknown_082EE324[id]); + } + break; + case 33: + sub_801689C(data); + if (PrintOnTextbox(&data->textState, gStringVar4)) + data->state = 34; + break; + case 34: + sub_801689C(data); + if (sub_80168DC(data) && gMain.newKeys & B_BUTTON) + { + sub_8011DE0(1); + StringCopy(gStringVar4, gUnknown_082EE598); + data->state = 36; + } + break; + case 35: + sub_8015664(9, gStringVar4); + break; + case 9: + switch (sub_80170B8(&data->textState, FALSE)) + { + case 0: + data->field_4C[0] = 0x51; + if (gUnknown_02022C2C == 0x45) + sub_8011090(gUnknown_02022C2C | 0x40, sub_801100C(1), 0); + else + sub_8011090(gUnknown_02022C2C | 0x40, sub_801100C(1), 1); + + data->field_8->arr[0].field_1B = 0; + taskData[3] = 0; + if (gUnknown_02022C2C == 0x41) + { + if (!sub_8018024()) + { + data->field_4C[0] = 0x52; + sub_800FE50(data->field_4C); + data->state = 10; + StringCopy(gStringVar4, gUnknown_082EEC14); + } + else + { + sub_800FE50(data->field_4C); + data->state = 13; + } + } + else if (gUnknown_02022C2C == 0x48) + { + sub_800FE50(data->field_4C); + sub_8018220(gStringVar4, data, 1); + data->state = 40; + } + else + { + sub_800FE50(data->field_4C); + data->state = 13; + } + break; + case 1: + case -1: + data->field_4C[0] = 0x52; + sub_800FE50(data->field_4C); + data->state = 10; + sub_8013078(gStringVar4, gUnknown_02022C2C); + break; + } + break; + case 10: + sub_800AC34(); + data->state = 36; + break; + case 36: + if (gReceivedRemoteLinkPlayers == 0) + { + gUnknown_02022C2C = 0x40; + sub_8015664(0x25, gStringVar4); + memset(data->field_4C, 0, sizeof(data->field_4C)); + data->field_9A[0] = 0; + data->field_98 = 0; + } + break; + case 37: + data->state = 2; + sub_801818C(FALSE); + break; + case 13: + sub_8017E00(gStringVar4, gUnknown_02022C2C | 0x40); + sub_8015664(14, gStringVar4); + break; + case 14: + sub_800ADF8(); + data->state = 15; + break; + case 15: + if (IsLinkTaskFinished()) + data->state = 16; + break; + case 16: + Free(data->field_8); + Free(data->field_0); + Free(data->field_C); + Free(data->field_4); + DestroyTask(data->field_20); + sub_8019F04(data->spriteIds); + data->state = 17; + break; + case 17: + BeginNormalPaletteFade(-1, 0, 0, 0x10, RGB_BLACK); + data->state = 18; + break; + case 18: + if (!UpdatePaletteFade()) + { + sub_8019E3C(); + DestroyTask(taskId); + Free(gUnknown_02022C30.uRoom); + sub_80149D8(); + } + break; + case 42: + if (sub_800F7DC()->species == SPECIES_NONE) + { + data->state = 43; + } + else + { + if (sub_800F7DC()->species == SPECIES_EGG) + { + StringCopy(gStringVar4, gUnknown_082EF590); + } + else + { + StringCopy(gStringVar1, gSpeciesNames[sub_800F7DC()->species]); + ConvertIntToDecimalStringN(gStringVar2, sub_800F7DC()->unk_0b_1, STR_CONV_MODE_LEFT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gUnknown_082EF564); + } + sub_8015664(44, gStringVar4); + } + break; + case 43: + if (PrintOnTextbox(&data->textState, gUnknown_082EF20C)) + data->state = 47; + break; + case 47: + var5 = sub_8017178(&data->textState, &data->field_1D, &data->field_1E, &gUnknown_082F025C, &gUnknown_082F027C); + if (var5 != -1) + { + if (var5 == -2 || var5 == 3) + { + data->state = 4; + sub_801818C(TRUE); + } + else + { + switch (var5) + { + case 1: + sub_8015664(53, gUnknown_082EF4C4); + break; + case 2: + sub_8015664(47, gUnknown_082EF298); + break; + } + } + } + break; + case 53: + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + data->state = 54; + break; + case 54: + if (!gPaletteFade.active) + { + gUnknown_02022C40.field_0 = 1; + gFieldCallback = sub_80AF128; + sub_81B8904(8, CB2_ReturnToField); + } + break; + case 52: + var5 = sub_8017178(&data->textState, &data->field_1D, &data->field_1E, &gUnknown_082F0294, &gUnknown_082F032C); + if (var5 != -1) + { + switch (var5) + { + case -2: + case 18: + sub_801807C(&gUnknown_02022C40); + sub_8010FCC(0, 0, 0); + sub_801568C(gUnknown_082EF4FC); + break; + default: + gUnknown_02022C40.field_2 = var5; + data->state = 55; + break; + } + } + break; + case 55: + sub_8010FCC(gUnknown_02022C40.field_2, gUnknown_02022C40.field_A, gUnknown_02022C40.field_C); + sub_801568C(gUnknown_082EF520); + break; + case 44: + switch (sub_80170B8(&data->textState, FALSE)) + { + case 0: + data->state = 56; + break; + case 1: + case -1: + sub_801818C(TRUE); + data->state = 4; + break; + } + break; + case 56: + if (PrintOnTextbox(&data->textState, gUnknown_082EF5B8)) + { + sub_8010FCC(0, 0, 0); + sub_801807C(&gUnknown_02022C40); + sub_801818C(TRUE); + data->state = 4; + } + break; + case 45: + if (PrintOnTextbox(&data->textState, gUnknown_082EF1EC)) + data->state = 46; + break; + case 46: + sub_80173B0(); + data->state = 48; + break; + case 48: + var5 = sub_80172A0(&data->textState, &data->field_1D, &data->field_4A, &data->field_1E, &gUnknown_082F034C, &gUnknown_082F03A4, data->field_0); + if (var5 != -1) + { + switch (var5) + { + case -2: + case 8: + sub_801818C(TRUE); + data->state = 4; + break; + default: + sub_80173B0(); + switch (sub_8017D04(data->field_0->arr[var5].unk.field_0.type, data->field_0->arr[var5].unk.field_0.species)) + { + case 0: + sub_8018404(gStringVar1, &data->field_0->arr[var5]); + sub_8015664(49, gUnknown_082EF65C); + taskData[1] = var5; + break; + case 1: + sub_8018404(gStringVar1, &data->field_0->arr[var5]); + StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]); + sub_8015664(46, gUnknown_082EF6E4); + break; + case 2: + sub_8018404(gStringVar1, &data->field_0->arr[var5]); + StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]); + sub_8015664(46, gUnknown_082EF718); + break; + } + break; + } + } + break; + case 49: + switch (sub_80170B8(&data->textState, FALSE)) + { + case 0: + data->state = 50; + break; + case -1: + case 1: + sub_801818C(TRUE); + data->state = 4; + break; + } + break; + case 50: + if (PrintOnTextbox(&data->textState, gUnknown_082EF4C4)) + { + gUnknown_02022C40.field_0 = 2; + memcpy(&gUnknown_02022C38, &data->field_0->arr[taskData[1]].unk.field_0.unk_00, sizeof(gUnknown_02022C38)); + gUnknown_02022C3E = data->field_0->arr[taskData[1]].unk.field_0.type; + gUnknown_02022C3C = data->field_0->arr[taskData[1]].unk.field_0.species; + gFieldCallback = sub_80AF128; + sub_81B8904(9, CB2_ReturnToField); + sub_80156B0(data); + gUnknown_02022C40.field_8 = taskData[1]; + } + break; + case 51: + gUnknown_02022C2C = 0x44; + sub_8012188(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, 0x44); + sub_8018404(gStringVar1, &data->field_0->arr[taskData[1]]); + sub_8017020(gUnknown_082EE17C[2]); + data->state = 25; + break; + case 26: + if (PrintOnTextbox(&data->textState, gStringVar4)) + { + sub_801818C(TRUE); + sub_801A3D0(taskData[0], taskData[1], data->field_0); + data->state = 4; + } + break; + case 8: + if (PrintOnTextbox(&data->textState, gStringVar4)) + data->state = data->stateAfterPrint; + break; + } +} + +void var_800D_set_xB(void) +{ + if (InUnionRoom() == TRUE) + gSpecialVar_Result = 11; +} + +void sub_801689C(struct UnkStruct_URoom *arg0) +{ + if (gRecvCmds[1][1] != 0 && (gRecvCmds[1][0] & 0xFF00) == 0x2F00) + { + arg0->field_9A[0] = gRecvCmds[1][1]; + if (gRecvCmds[1][1] == 0x44) + { + arg0->field_9A[1] = gRecvCmds[1][2]; + arg0->field_9A[2] = gRecvCmds[1][3]; + } + } +} + +bool32 sub_80168DC(struct UnkStruct_URoom *arg0) +{ + if (arg0->field_9A[0] != 0) + { + s32 var = sub_8017EA0(gStringVar4, gLinkPlayers[1].gender, &arg0->field_9A[0], arg0); + if (var == 0) + { + return TRUE; + } + else if (var == 1) + { + arg0->state = 35; + gUnknown_02022C2C = arg0->field_9A[0]; + return FALSE; + } + else if (var == 2) + { + arg0->state = 36; + sub_800AC34(); + return FALSE; + } + } + + return TRUE; +} + +void sub_8016934(void) +{ + struct UnkStruct_URoom *ptr; + + gUnknown_02022C20[0] = EOS; + CreateTask(sub_801697C, 0); + gUnknown_02022C30.uRoom = gUnknown_02022C30.uRoom; // Needed to match. + gUnknown_02022C30.uRoom = ptr = AllocZeroed(0x26C); + gUnknown_03000DA8 = gUnknown_02022C30.uRoom; + ptr->state = 0; + ptr->textState = 0; + ptr->field_10 = 0; + ptr->field_12 = 0; + gUnknown_02022C20[0] = EOS; +} + +void sub_801697C(u8 taskId) +{ + s32 i; + u8 text[32]; + struct UnkStruct_URoom *structPtr = gUnknown_02022C30.uRoom; + + switch (structPtr->state) + { + case 0: + structPtr->state = 1; + break; + case 1: + sub_8010F84(0xC, 0, 0); + sub_800B488(); + OpenLink(); + sub_8011C84(); + sub_80111B0(1); + structPtr->state = 2; + break; + case 2: + structPtr->field_4 = AllocZeroed(0x70); + sub_80175EC(structPtr->field_4, 4); + structPtr->field_C = AllocZeroed(0x70); + sub_80175EC(structPtr->field_C, 4); + structPtr->field_0 = AllocZeroed(0x100); + sub_8017580(structPtr->field_0->arr, 8); + structPtr->field_8 = AllocZeroed(0x20); + sub_8017580(&structPtr->field_8->arr[0], 1); + structPtr->field_20 = sub_8016DF0(structPtr->field_C, structPtr->field_4, 10); + structPtr->state = 3; + break; + case 3: + switch (sub_8016B00()) + { + case 1: + case 2: + if (gUnknown_02022C20[0] == EOS) + { + for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++) + { + if (structPtr->field_0->arr[i].field_1A_0 == 1) + { + sub_8018404(text, &structPtr->field_0->arr[i]); + if (sub_800E540(ReadAsU16(structPtr->field_0->arr[i].unk.field_0.unk_00.playerTrainerId), text)) + { + StringCopy(gUnknown_02022C20, text); + break; + } + } + } + } + break; + case 3: + break; + } + break; + case 4: + free(structPtr->field_8); + free(structPtr->field_0); + free(structPtr->field_C); + free(structPtr->field_4); + DestroyTask(structPtr->field_20); + free(gUnknown_02022C30.uRoom); + sub_800EDD4(); + DestroyTask(taskId); + break; + } +} + +bool16 sp182_move_string(void) +{ + if (gUnknown_02022C20[0] != EOS) + { + StringCopy(gStringVar1, gUnknown_02022C20); + gUnknown_02022C20[0] = EOS; + return TRUE; + } + else + { + return FALSE; + } +} + +u8 sub_8016B00(void) +{ + s32 i; + u8 j; + struct UnkStruct_URoom *structPtr = gUnknown_02022C30.uRoom; + s32 r7 = 0; + + for (i = 0; i < 4; i++) + { + if (sub_8017630(&structPtr->field_C->arr[i].unk0, &gUnknown_082F045C) == TRUE) + { + structPtr->field_8->arr[0].unk = structPtr->field_C->arr[i].unk0; + structPtr->field_8->arr[0].field_18 = 0; + structPtr->field_8->arr[0].field_1A_0 = 1; + structPtr->field_8->arr[0].field_1B = 1; + return 4; + } + } + for (j = 0; j < 8; j++) + { + if (structPtr->field_0->arr[j].field_1A_0 != 0) + { + i = sub_80176E4(&structPtr->field_0->arr[j], &structPtr->field_4->arr[0]); + if (i != 0xFF) + { + if (structPtr->field_0->arr[j].field_1A_0 == 1) + { + if (sub_8017678(&structPtr->field_0->arr[j], &structPtr->field_4->arr[i])) + { + structPtr->field_0->arr[j].unk = structPtr->field_4->arr[i].unk0; + structPtr->field_0->arr[j].field_1B = 0x40; + r7 = 1; + } + else if (structPtr->field_0->arr[j].field_1B != 0) + { + structPtr->field_0->arr[j].field_1B--; + if (structPtr->field_0->arr[j].field_1B == 0) + r7 = 2; + } + } + else + { + structPtr->field_0->arr[j].field_1A_0 = 1; + structPtr->field_0->arr[j].field_1B = 0; + r7 = 2; + } + structPtr->field_0->arr[j].field_18 = 0; + } + else if (structPtr->field_0->arr[j].field_1A_0 != 2) + { + structPtr->field_0->arr[j].field_18++; + if (structPtr->field_0->arr[j].field_18 >= 600) + { + structPtr->field_0->arr[j].field_1A_0 = 2; + r7 = 2; + } + } + else if (structPtr->field_0->arr[j].field_1A_0 == 2) + { + structPtr->field_0->arr[j].field_18++; + if (structPtr->field_0->arr[j].field_18 >= 900) + { + sub_8017580(&structPtr->field_0->arr[j], 1); + } + } + } + } + for (i = 0; i < 4; i++) + { + if (sub_8017734(&structPtr->field_0->arr[0], &structPtr->field_4->arr[i].unk0, 8) != 0xFF) + r7 = 1; + } + + return r7; +} + +/* +void sub_8016CA0(u8 taskId) +{ + s32 i, j; + struct UnkLinkRfuStruct_02022B14 sp0; + u8 text[10]; + struct UnkStruct_Main4 *ptr = (void*) gTasks[taskId].data; + + for (i = 0; i < 4; i++) + { + j = sub_800DE7C(&sp0, text, i); + if (!sub_8013D88(sp0.unk_0a_0, gTasks[taskId].data[4])) + sp0 = gUnknown_082F045C.field_0; + if (sp0.unk_00.unk_00_0 == 1) + sp0 = gUnknown_082F045C.field_0; + + if (!j) + { + for (j = 0; j < i; j++) + { + if (sub_8017630()) + } + } + else + { + + } + } +} +*/ -- cgit v1.2.3 From cf917a873392df734afde73d7ff6125fd56a3ed4 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 24 Mar 2019 14:45:09 -0500 Subject: Decompile berry_powder.c --- src/berry_powder.c | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/item_use.c | 5 +-- src/load_save.c | 3 +- src/new_game.c | 2 +- 4 files changed, 132 insertions(+), 6 deletions(-) create mode 100755 src/berry_powder.c (limited to 'src') diff --git a/src/berry_powder.c b/src/berry_powder.c new file mode 100755 index 000000000..91f9d0d4e --- /dev/null +++ b/src/berry_powder.c @@ -0,0 +1,128 @@ +#include "global.h" +#include "berry_powder.h" +#include "bg.h" +#include "event_data.h" +#include "load_save.h" +#include "menu.h" +#include "string_util.h" +#include "strings.h" +#include "text.h" +#include "text_window.h" +#include "window.h" + +#define MAX_BERRY_POWDER 99999 + +static EWRAM_DATA u8 sBerryPowderVendorWindowId = 0; + +static u32 DecryptBerryPowder(u32 *powder) +{ + return *powder ^ gSaveBlock2Ptr->encryptionKey; +} + +void SetBerryPowder(u32 *powder, u32 amount) +{ + *powder = amount ^ gSaveBlock2Ptr->encryptionKey; +} + +void ApplyNewEncryptionKeyToBerryPowder(u32 encryptionKey) +{ + u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount; + ApplyNewEncryptionKeyToWord(powder, encryptionKey); +} + +static bool8 HasEnoughBerryPowder_(u32 cost) +{ + u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount; + if (DecryptBerryPowder(powder) < cost) + return FALSE; + else + return TRUE; +} + +bool8 HasEnoughBerryPowder(void) +{ + u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount; + if (DecryptBerryPowder(powder) < gSpecialVar_0x8004) + return FALSE; + else + return TRUE; +} + +bool8 GiveBerryPowder(u32 amountToAdd) +{ + u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount; + u32 amount = DecryptBerryPowder(powder) + amountToAdd; + if (amount > MAX_BERRY_POWDER) + { + SetBerryPowder(powder, MAX_BERRY_POWDER); + return FALSE; + } + else + { + SetBerryPowder(powder, amount); + return TRUE; + } +} + +static bool8 TakeBerryPowder_(u32 cost) +{ + u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount; + if (!HasEnoughBerryPowder_(cost)) + return FALSE; + + SetBerryPowder(powder, DecryptBerryPowder(powder) - cost); + return TRUE; +} + +bool8 TakeBerryPowder(void) +{ + u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount; + if (!HasEnoughBerryPowder_(gSpecialVar_0x8004)) + return FALSE; + + SetBerryPowder(powder, DecryptBerryPowder(powder) - gSpecialVar_0x8004); + return TRUE; +} + +u32 GetBerryPowder(void) +{ + u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount; + return DecryptBerryPowder(powder); +} + +static void PrintBerryPowderAmount(u8 windowId, int amount, u8 x, u8 y, u8 speed) +{ + ConvertIntToDecimalStringN(gStringVar1, amount, STR_CONV_MODE_RIGHT_ALIGN, 5); + AddTextPrinterParameterized(windowId, 1, gStringVar1, x, y, speed, NULL); +} + +static void DrawPlayerPowderAmount(u8 windowId, u16 baseTileOffset, u8 paletteNum, u32 amount) +{ + DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, baseTileOffset, paletteNum); + AddTextPrinterParameterized(windowId, 1, gText_Powder, 0, 1, TEXT_SPEED_FF, NULL); + PrintBerryPowderAmount(windowId, amount, 26, 17, 0); +} + +void PrintPlayerBerryPowderAmount(void) +{ + u32 amount = GetBerryPowder(); + PrintBerryPowderAmount(sBerryPowderVendorWindowId, amount, 26, 17, 0); +} + +void DisplayBerryPowderVendorMenu(void) +{ + struct WindowTemplate template; + SetWindowTemplateFields(&template, 0, 1, 1, 7, 4, 15, 0x1C); + sBerryPowderVendorWindowId = AddWindow(&template); + FillWindowPixelBuffer(sBerryPowderVendorWindowId, PIXEL_FILL(0)); + PutWindowTilemap(sBerryPowderVendorWindowId); + LoadUserWindowBorderGfx_(sBerryPowderVendorWindowId, 0x21D, 0xD0); + DrawPlayerPowderAmount(sBerryPowderVendorWindowId, 0x21D, 13, GetBerryPowder()); +} + +void RemoveBerryPowderVendorMenu(void) +{ + ClearWindowTilemap(sBerryPowderVendorWindowId); + ClearStdWindowAndFrameToTransparent(sBerryPowderVendorWindowId, TRUE); + RemoveWindow(sBerryPowderVendorWindowId); +} diff --git a/src/item_use.c b/src/item_use.c index e646a18ee..7947964ca 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -4,6 +4,7 @@ #include "battle_pyramid.h" #include "battle_pyramid_bag.h" #include "berry.h" +#include "berry_powder.h" #include "bike.h" #include "coins.h" #include "data2.h" @@ -45,8 +46,6 @@ extern u8 Route102_EventScript_274482[]; extern u8 Route102_EventScript_2744C0[]; extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[]; -extern s32 sub_80247BC(void); - void SetUpItemUseCallback(u8 taskId); void MapPostLoadHook_UseItem(void); void sub_80AF6D4(void); @@ -638,7 +637,7 @@ void ItemUseOutOfBattle_CoinCase(u8 taskId) void ItemUseOutOfBattle_PowderJar(u8 taskId) { - ConvertIntToDecimalStringN(gStringVar1, sub_80247BC(), 0, 5); + ConvertIntToDecimalStringN(gStringVar1, GetBerryPowder(), 0, 5); StringExpandPlaceholders(gStringVar4, gText_PowderQty); if (!gTasks[taskId].data[3]) diff --git a/src/load_save.c b/src/load_save.c index d6785254f..150c557c6 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -1,5 +1,6 @@ #include "global.h" #include "alloc.h" +#include "berry_powder.h" #include "item.h" #include "load_save.h" #include "main.h" @@ -15,8 +16,6 @@ static void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey); -extern void ApplyNewEncryptionKeyToBerryPowder(u32 key); - #define SAVEBLOCK_MOVE_RANGE 128 struct LoadedSaveData diff --git a/src/new_game.c b/src/new_game.c index 2e8930f7c..64c5779c1 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -41,12 +41,12 @@ #include "secret_base.h" #include "player_pc.h" #include "field_specials.h" +#include "berry_powder.h" extern void copy_strings_to_sav1(void); extern void sub_801AFD8(void); extern void ResetPokeJumpResults(void); -extern void SetBerryPowder(u32* powder, u32 newValue); extern const u8 EventScript_ResetAllMapFlags[]; -- cgit v1.2.3 From 552c032f5c7bae93d796c27d97fcd56211f21fe3 Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Sun, 24 Mar 2019 13:02:10 -0700 Subject: Match sub_8166A34 --- src/use_pokeblock.c | 221 ++++------------------------------------------------ 1 file changed, 16 insertions(+), 205 deletions(-) (limited to 'src') diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 999ddcbbd..9b02eeb72 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -509,19 +509,15 @@ void sub_81668F8(void) } } -#ifdef NONMATCHING void sub_8166A34(void) { switch (gUnknown_0203BC90->field_50) { u8 var; case 0: - gUnknown_0203BC90->field_5c[0] = (u8) &gPlayerParty; - gUnknown_0203BCAC->info.field_71 = (u32) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_71]; - gUnknown_0203BC90->field_5c[0] = &gPlayerParty + gUnknown_0203BC90->pokemon = gPlayerParty; + gUnknown_0203BC90->pokemon += gUnknown_0203BCAC->field_7FB8[gUnknown_0203BCAC->info.field_71].unk1; sub_81D3520(gUnknown_0203BCAC->field_7B1C); - /*gUnknown_0203BCAC->pokemon = &gPlayerParty[gUnknown_083DFEC4->unk893c[gUnknown_0203BCAC->field_0[0x7B1C]].partyIdx]; - move_anim_execute();*/ gUnknown_0203BC90->field_50++; break; case 1: @@ -530,27 +526,26 @@ void sub_8166A34(void) break; case 2: sub_8167104(); - sub_81D2754(gUnknown_0203BC90->field_5c, &gUnknown_0203BCAC->field_7C58[0x50]); - sub_81D1F84(&gUnknown_0203BCAC->field_7C58[0], &gUnknown_0203BCAC->field_7C58[gUnknown_0203BCAC->field_7C58[0x35B] + 0x14], 0); + sub_81D2754(gUnknown_0203BC90->field_5c, gUnknown_0203BCAC->field_7C58.unk14[3]); + sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[gUnknown_0203BCAC->field_7FB3], gUnknown_0203BCAC->field_7C58.unk14[3]); sub_8167338(); gUnknown_0203BC90->field_50++; break; case 3: - var = gUnknown_0203BCAC->field_7C58[0]; - sub_81D2074(); - if (!var) + var = sub_81D2074(&gUnknown_0203BCAC->field_7C58); + if(var) + return; + + sub_81681F4(sub_81672A4(gUnknown_0203BCAC->info.field_71)); + + if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) { - sub_81681F4(sub_81672A4(gUnknown_0203BCAC->info.field_71)); - /*sub_80F3D00(); - gUnknown_0203BCAC->unk52 = 0;*/ - if(gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) - { - gUnknown_0203BC90->field_52 = var; - } - - sub_81D3480(&gUnknown_0203BCAC->field_7C58[0x35B], gUnknown_0203BCAC->field_7C58[0x35B + gUnknown_0203BCAC->field_7C58[0x358]]); - + u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; + sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); } + + gUnknown_0203BC90->field_52 = 0; + gUnknown_0203BC90->field_50++; break; case 4: if ((++gUnknown_0203BC90->field_52) > 16) @@ -568,190 +563,6 @@ void sub_8166A34(void) break; } } -#else -NAKED -void sub_8166A34(void) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r1, =gUnknown_0203BC90\n\ - ldr r0, [r1]\n\ - adds r0, 0x50\n\ - ldrb r0, [r0]\n\ - adds r5, r1, 0\n\ - cmp r0, 0x5\n\ - bls _08166A46\n\ - b _08166BDA\n\ -_08166A46:\n\ - lsls r0, 2\n\ - ldr r1, =_08166A58\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .pool\n\ - .align 2, 0\n\ -_08166A58:\n\ - .4byte _08166A70\n\ - .4byte _08166AAC\n\ - .4byte _08166AC0\n\ - .4byte _08166B14\n\ - .4byte _08166B94\n\ - .4byte _08166BB6\n\ -_08166A70:\n\ - ldr r4, [r5]\n\ - ldr r3, =gPlayerParty\n\ - str r3, [r4, 0xC]\n\ - ldr r0, =gUnknown_0203BCAC\n\ - ldr r0, [r0]\n\ - ldr r2, =0x00008041\n\ - adds r1, r0, r2\n\ - ldrb r1, [r1]\n\ - lsls r1, 2\n\ - adds r1, r0, r1\n\ - subs r2, 0x88\n\ - adds r1, r2\n\ - ldrb r2, [r1]\n\ - movs r1, 0x64\n\ - muls r1, r2\n\ - adds r1, r3\n\ - str r1, [r4, 0xC]\n\ - ldr r3, =0x00007b1c\n\ - adds r0, r3\n\ - bl sub_81D3520\n\ - b _08166BAA\n\ - .pool\n\ -_08166AAC:\n\ - ldr r0, =gMain\n\ - ldrh r1, [r0, 0x2E]\n\ - movs r0, 0x3\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08166ABA\n\ - b _08166BDA\n\ -_08166ABA:\n\ - b _08166BAA\n\ - .pool\n\ -_08166AC0:\n\ - bl sub_8167104\n\ - ldr r6, =gUnknown_0203BC90\n\ - ldr r0, [r6]\n\ - adds r0, 0x5C\n\ - ldr r4, =gUnknown_0203BCAC\n\ - ldr r1, [r4]\n\ - ldr r5, =0x00007ca8\n\ - adds r1, r5\n\ - bl sub_81D2754\n\ - ldr r2, [r4]\n\ - ldr r4, =0x00007c58\n\ - adds r0, r2, r4\n\ - ldr r3, =0x00007fb3\n\ - adds r1, r2, r3\n\ - movs r3, 0\n\ - ldrsb r3, [r1, r3]\n\ - lsls r1, r3, 2\n\ - adds r1, r3\n\ - lsls r1, 2\n\ - adds r4, 0x14\n\ - adds r1, r4\n\ - adds r1, r2, r1\n\ - adds r2, r5\n\ - bl sub_81D1F84\n\ - bl sub_8167338\n\ - ldr r1, [r6]\n\ - b _08166BAC\n\ - .pool\n\ -_08166B14:\n\ - ldr r5, =gUnknown_0203BCAC\n\ - ldr r0, [r5]\n\ - ldr r1, =0x00007c58\n\ - adds r0, r1\n\ - bl sub_81D2074\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - cmp r6, 0\n\ - bne _08166BDA\n\ - ldr r0, [r5]\n\ - ldr r4, =0x00008041\n\ - adds r0, r4\n\ - ldrb r0, [r0]\n\ - bl sub_81672A4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - bl sub_81681F4\n\ - ldr r3, [r5]\n\ - adds r4, r3, r4\n\ - ldrb r1, [r4]\n\ - ldr r2, =0x00008040\n\ - adds r0, r3, r2\n\ - ldrb r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r1, r0\n\ - beq _08166B6C\n\ - ldr r4, =0x00007fb3\n\ - adds r0, r3, r4\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - subs r2, 0x90\n\ - adds r0, r3, r2\n\ - adds r0, r1\n\ - ldrb r2, [r0]\n\ - ldr r4, =0x00007b1c\n\ - adds r0, r3, r4\n\ - subs r4, 0xC\n\ - adds r1, r3, r4\n\ - ldrb r1, [r1]\n\ - bl sub_81D3480\n\ -_08166B6C:\n\ - ldr r1, =gUnknown_0203BC90\n\ - ldr r0, [r1]\n\ - adds r0, 0x52\n\ - strb r6, [r0]\n\ - ldr r1, [r1]\n\ - b _08166BAC\n\ - .pool\n\ -_08166B94:\n\ - ldr r1, [r5]\n\ - adds r1, 0x52\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x10\n\ - bls _08166BDA\n\ - bl sub_8166E24\n\ -_08166BAA:\n\ - ldr r1, [r5]\n\ -_08166BAC:\n\ - adds r1, 0x50\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - b _08166BDA\n\ -_08166BB6:\n\ - ldr r0, =gMain\n\ - ldrh r1, [r0, 0x2E]\n\ - movs r0, 0x3\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08166BDA\n\ - bl sub_8166EDC\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _08166BDA\n\ - ldr r0, =gSpecialVar_ItemId\n\ - ldrb r0, [r0]\n\ - bl TryClearPokeblock\n\ - ldr r0, =sub_8166BEC\n\ - bl sub_816636C\n\ -_08166BDA:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif void sub_8166BEC(void) { -- cgit v1.2.3 From e6caf0ff1019a1744df5b7c550a1a40db33d0154 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 24 Mar 2019 17:20:35 -0500 Subject: Port mevent2.c from pokefirered --- src/easy_chat.c | 4 +- src/mevent2.c | 626 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 628 insertions(+), 2 deletions(-) create mode 100755 src/mevent2.c (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 4cc8b9c5b..a6d22f8bf 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1318,7 +1318,7 @@ void ShowEasyChatScreen(void) words = gSaveBlock2Ptr->apprentices[0].easyChatWords; break; case EASY_CHAT_TYPE_QUESTIONNAIRE: - words = GetSaveBlock1Field3564(); + words = sub_801B058(); break; default: return; @@ -5531,7 +5531,7 @@ void InitializeEasyChatWordArray(u16 *words, u16 length) void sub_811F8BC(void) { int i; - u16 *words = GetSaveBlock1Field3564(); + u16 *words = sub_801B058(); for (i = 0; i < 4; i++) words[i] = 0xFFFF; } diff --git a/src/mevent2.c b/src/mevent2.c new file mode 100755 index 000000000..9a6f713ea --- /dev/null +++ b/src/mevent2.c @@ -0,0 +1,626 @@ +#include "global.h" +#include "util.h" +#include "main.h" +#include "event_data.h" +#include "easy_chat.h" +#include "script.h" +#include "battle_tower.h" +#include "mevent_news.h" +#include "string_util.h" +#include "new_game.h" +#include "mevent.h" +#include "constants/species.h" + +static EWRAM_DATA bool32 gUnknown_02022C70 = FALSE; + +void sub_801B180(void); +void sub_801B14C(void); +bool32 sub_801B114(const struct MEventBuffer_3120_Sub * data); +bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub * data); +void sub_801B330(void); +void sub_801B368(void); +void sub_801B9F8(void); +void sub_801BA8C(u32 a0, u32 a1, u32 * a2, int a3); + +void sub_801AFD8(void) +{ + CpuFill32(0, &gSaveBlock1Ptr->unk_322C, sizeof(gSaveBlock1Ptr->unk_322C)); + sub_801B180(); + sub_811F8BC(); +} + +struct MEventBuffer_3120_Sub * sub_801B00C(void) +{ + return &gSaveBlock1Ptr->unk_322C.buffer_000.data; +} + +struct MEventBuffer_32E0_Sub * sav1_get_mevent_buffer_1(void) +{ + return &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; +} + +struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void) +{ + return &gSaveBlock1Ptr->unk_322C.buffer_310.data; +} + +struct MysteryEventStruct * sub_801B044(void) +{ + return &gSaveBlock1Ptr->unk_322C.unk_340; +} + +u16 * sub_801B058(void) +{ + return gSaveBlock1Ptr->unk_322C.unk_338; +} + +void sub_801B06C(void) +{ + sub_801B14C(); +} + +bool32 sub_801B078(const struct MEventBuffer_3120_Sub * src) +{ + if (!sub_801B114(src)) + return FALSE; + + sub_801B14C(); + gSaveBlock1Ptr->unk_322C.buffer_000.data = *src; + gSaveBlock1Ptr->unk_322C.buffer_000.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)); + return TRUE; +} + +bool32 sub_801B0CC(void) +{ + if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)) != gSaveBlock1Ptr->unk_322C.buffer_000.crc) + return FALSE; + if (!sub_801B114(&gSaveBlock1Ptr->unk_322C.buffer_000.data)) + return FALSE; + + return TRUE; +} + +bool32 sub_801B114(const struct MEventBuffer_3120_Sub * data) +{ + if (data->unk_00 == 0) + return FALSE; + + return TRUE; +} + +bool32 sub_801B128(void) +{ + const struct MEventBuffer_3120_Sub * data = &gSaveBlock1Ptr->unk_322C.buffer_000.data; + if (data->unk_02 == 0) + return FALSE; + + return TRUE; +} + +void sub_801B14C(void) +{ + CpuFill32(0, sub_801B00C(), sizeof(gSaveBlock1Ptr->unk_322C.buffer_000.data)); + gSaveBlock1Ptr->unk_322C.buffer_000.crc = 0; +} + +void sub_801B180(void) +{ + CpuFill32(0, sub_801B044(), sizeof(struct MysteryEventStruct)); + sub_801DBC0(); +} + +bool32 sub_801B1A4(const u8 * src) +{ + const u8 * r5 = (const u8 *)&gSaveBlock1Ptr->unk_322C.buffer_000.data; + u32 i; + if (!sub_801B0CC()) + return FALSE; + + for (i = 0; i < sizeof(struct MEventBuffer_3120_Sub); i++) + { + if (r5[i] != src[i]) + return FALSE; + } + + return TRUE; +} + +void sub_801B1E8(void) +{ + sub_801B330(); + sub_801B368(); + sub_801B9F8(); + ClearRamScript(); + sub_809D4D8(); + sub_809D570(); + ClearEReaderTrainer(&gSaveBlock2Ptr->frontier.ereaderTrainer); +} + +bool32 sub_801B21C(const struct MEventBuffer_32E0_Sub * data) +{ + struct MEventBuffer_3430_Sub * r2; + struct MEventBuffer_32E0_Sub * r1; + if (!sub_801B2CC(data)) + return FALSE; + + sub_801B1E8(); + memcpy(&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, data, sizeof(struct MEventBuffer_32E0_Sub)); + gSaveBlock1Ptr->unk_322C.buffer_1c0.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub)); + r2 = &gSaveBlock1Ptr->unk_322C.buffer_310.data; + r1 = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + r2->unk_06 = r1->unk_02; + return TRUE; +} + +bool32 sub_801B27C(void) +{ + if (gSaveBlock1Ptr->unk_322C.buffer_1c0.crc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub))) + return FALSE; + if (!sub_801B2CC(&gSaveBlock1Ptr->unk_322C.buffer_1c0.data)) + return FALSE; + if (!sub_80991F8()) + return FALSE; + + return TRUE; +} + +bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub * data) +{ + if (data->unk_00 == 0) + return FALSE; + if (data->unk_08_0 > 2) + return FALSE; + if (!(data->unk_08_6 == 0 || data->unk_08_6 == 1 || data->unk_08_6 == 2)) + return FALSE; + if (data->unk_08_2 > 7) + return FALSE; + if (data->unk_09 > 7) + return FALSE; + + return TRUE; +} + +bool32 sub_801B308(void) +{ + const struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + if (data->unk_08_6 == 0) + return FALSE; + + return TRUE; +} + +void sub_801B330(void) +{ + CpuFill32(0, &gSaveBlock1Ptr->unk_322C.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub)); + gSaveBlock1Ptr->unk_322C.buffer_1c0.crc = 0; +} + +void sub_801B368(void) +{ + CpuFill32(0, sav1_get_mevent_buffer_2(), 18 * sizeof(u16)); + gSaveBlock1Ptr->unk_322C.buffer_310.crc = 0; +} + +u16 sub_801B39C(void) +{ + if (sub_801B27C()) + return gSaveBlock1Ptr->unk_322C.buffer_1c0.data.unk_00; + + return 0; +} + +void sub_801B3C0(struct MEventBuffer_32E0_Sub * buffer) +{ + if (buffer->unk_08_6 == 1) + buffer->unk_08_6 = 0; +} + +bool32 sub_801B3D8(u16 a0) +{ + if (a0 >= 1000 && a0 < 1020) + return TRUE; + + return FALSE; +} + +static const u16 sMysteryGiftFlags[] = +{ + FLAG_RECEIVED_AURORA_TICKET, + FLAG_RECEIVED_MYSTIC_TICKET, + FLAG_RECEIVED_OLD_SEA_MAP, + FLAG_UNUSED_MYSTERY_GIFT_0x13D, + FLAG_UNUSED_MYSTERY_GIFT_0x13E, + FLAG_UNUSED_MYSTERY_GIFT_0x13F, + FLAG_UNUSED_MYSTERY_GIFT_0x140, + FLAG_UNUSED_MYSTERY_GIFT_0x141, + FLAG_UNUSED_MYSTERY_GIFT_0x142, + FLAG_UNUSED_MYSTERY_GIFT_0x143, + FLAG_UNUSED_MYSTERY_GIFT_0x144, + FLAG_UNUSED_MYSTERY_GIFT_0x145, + FLAG_UNUSED_MYSTERY_GIFT_0x146, + FLAG_UNUSED_MYSTERY_GIFT_0x147, + FLAG_UNUSED_MYSTERY_GIFT_0x148, + FLAG_UNUSED_MYSTERY_GIFT_0x149, + FLAG_UNUSED_MYSTERY_GIFT_0x14A, + FLAG_UNUSED_MYSTERY_GIFT_0x14B, + FLAG_UNUSED_MYSTERY_GIFT_0x14C, + FLAG_UNUSED_MYSTERY_GIFT_0x14D, +}; + +bool32 sub_801B3F8(void) +{ + u16 value = sub_801B39C(); + if (!sub_801B3D8(value)) + return FALSE; + + if (FlagGet(sMysteryGiftFlags[value - 1000]) == TRUE) + return FALSE; + + return TRUE; +} + +int sub_801B438(const struct MEventBuffer_3430_Sub * data, int size) +{ + int r3 = 0; + int i; + for (i = 0; i < size; i++) + { + if (data->unk_08[1][i] && data->unk_08[0][i]) + r3++; + } + + return r3; +} + +bool32 sub_801B460(const struct MEventBuffer_3430_Sub * data1, const u16 * data2, int size) +{ + int i; + for (i = 0; i < size; i++) + { + if (data1->unk_08[1][i] == data2[1]) + return TRUE; + if (data1->unk_08[0][i] == data2[0]) + return TRUE; + } + + return FALSE; +} + +bool32 sub_801B4A4(const u16 * data) +{ + if (data[1] == 0) + return FALSE; + if (data[0] == 0) + return FALSE; + if (data[0] >= NUM_SPECIES) + return FALSE; + return TRUE; +} + +int sub_801B4CC(void) +{ + struct MEventBuffer_32E0_Sub * data; + if (!sub_801B27C()) + return 0; + + data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + if (data->unk_08_0 != 1) + return 0; + + return sub_801B438(&gSaveBlock1Ptr->unk_322C.buffer_310.data, data->unk_09); +} + +bool32 sub_801B508(const u16 * data) +{ + struct MEventBuffer_32E0_Sub * buffer = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + int size = buffer->unk_09; + int i; + if (!sub_801B4A4(data)) + return FALSE; + + if (sub_801B460(&gSaveBlock1Ptr->unk_322C.buffer_310.data, data, size)) + return FALSE; + + for (i = 0; i < size; i++) + { + if (gSaveBlock1Ptr->unk_322C.buffer_310.data.unk_08[1][i] == 0 && gSaveBlock1Ptr->unk_322C.buffer_310.data.unk_08[0][i] == 0) + { + gSaveBlock1Ptr->unk_322C.buffer_310.data.unk_08[1][i] = data[1]; + gSaveBlock1Ptr->unk_322C.buffer_310.data.unk_08[0][i] = data[0]; + return TRUE; + } + } + + return FALSE; +} + +void sub_801B580(struct MEventStruct_Unk1442CC * data, bool32 a1) +{ + int i; + CpuFill32(0, data, sizeof(struct MEventStruct_Unk1442CC)); + data->unk_00 = 0x101; + data->unk_04 = 1; + data->unk_08 = 1; + + if (a1) + { + data->unk_0C = 5; + data->unk_10 = 0x0201; + } + else + { + data->unk_0C = 4; + data->unk_10 = 0x0200; + } + + if (sub_801B27C()) + { + data->unk_14 = sav1_get_mevent_buffer_1()->unk_00; + data->unk_20 = *sav1_get_mevent_buffer_2(); + data->unk_44 = sav1_get_mevent_buffer_1()->unk_09; + } + else + { + data->unk_14 = 0; + } + + for (i = 0; i < 4; i++) + data->unk_16[i] = gSaveBlock1Ptr->unk_322C.unk_338[i]; + + CopyTrainerId(data->unk_4C, gSaveBlock2Ptr->playerTrainerId); + StringCopy(data->unk_45, gSaveBlock2Ptr->playerName); + for (i = 0; i < 6; i++) + data->unk_50[i] = gSaveBlock1Ptr->easyChatProfile[i]; + + memcpy(data->unk_5C, RomHeaderGameCode, 4); + data->unk_60 = RomHeaderSoftwareVersion; +} + +bool32 sub_801B6A0(const struct MEventStruct_Unk1442CC * data, bool32 a1) +{ + if (data->unk_00 != 0x101) + return FALSE; + + if (!(data->unk_04 & 1)) + return FALSE; + + if (!(data->unk_08 & 1)) + return FALSE; + + if (!a1) + { + if (!(data->unk_0C & 4)) + return FALSE; + + if (!(data->unk_10 & 0x380)) + return FALSE; + } + + return TRUE; +} + +u32 sub_801B6EC(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused) +{ + if (a1->unk_14 == 0) + return 0; + + if (*a0 == a1->unk_14) + return 1; + + return 2; +} + +u32 sub_801B708(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused) +{ + int r4 = a1->unk_44 - sub_801B438(&a1->unk_20, a1->unk_44); + if (r4 == 0) + return 1; + if (sub_801B460(&a1->unk_20, a0, a1->unk_44)) + return 3; + if (r4 == 1) + return 4; + return 2; +} + +bool32 sub_801B748(const struct MEventStruct_Unk1442CC * a0, const u16 * a1) +{ + int i; + for (i = 0; i < 4; i++) + { + if (a0->unk_16[i] != a1[i]) + return FALSE; + } + + return TRUE; +} + +int sub_801B770(const struct MEventStruct_Unk1442CC * a0) +{ + return sub_801B438(&a0->unk_20, a0->unk_44); +} + +u16 sub_801B784(const struct MEventStruct_Unk1442CC * a0, u32 command) +{ + switch (command) + { + case 0: + return a0->unk_20.unk_00; + case 1: + return a0->unk_20.unk_02; + case 2: + return a0->unk_20.unk_04; + case 3: + return sub_801B770(a0); + case 4: + return a0->unk_44; + default: + AGB_ASSERT(0); + return 0; + } +} + +void sub_801B7D8(u32 command) +{ + struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + if (data->unk_08_0 == 2) + { + u16 * dest = NULL; + switch (command) + { + case 0: + dest = &gSaveBlock1Ptr->unk_322C.buffer_310.data.unk_00; + break; + case 1: + dest = &gSaveBlock1Ptr->unk_322C.buffer_310.data.unk_02; + break; + case 2: + dest = &gSaveBlock1Ptr->unk_322C.buffer_310.data.unk_04; + break; + case 3: + break; + case 4: + break; + } + + if (dest == NULL) + AGB_ASSERT(0); + else if (++(*dest) > 999) + *dest = 999; + } +} + +u16 mevent_081445C0(u32 command) +{ + switch (command) + { + case 0: + { + struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + if (data->unk_08_0 == 2) + { + struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; + return buffer->unk_00; + } + break; + } + case 1: + { + struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + if (data->unk_08_0 == 2) + { + struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; + return buffer->unk_02; + } + break; + } + case 2: + { + struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + if (data->unk_08_0 == 2) + { + struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; + return buffer->unk_04; + } + break; + } + case 3: + { + struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + if (data->unk_08_0 == 1) + return sub_801B4CC(); + break; + } + case 4: + { + struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + if (data->unk_08_0 == 1) + return data->unk_09; + break; + } + } + + AGB_ASSERT(0); + return 0; +} + +void sub_801B940(void) +{ + gUnknown_02022C70 = FALSE; +} + +bool32 sub_801B94C(u16 a0) +{ + gUnknown_02022C70 = FALSE; + if (a0 == 0) + return FALSE; + + if (!sub_801B27C()) + return FALSE; + + if (gSaveBlock1Ptr->unk_322C.buffer_1c0.data.unk_00 != a0) + return FALSE; + + gUnknown_02022C70 = TRUE; + return TRUE; +} + +void sub_801B990(u32 a0, u32 a1) +{ + if (gUnknown_02022C70) + { + switch (a0) + { + case 2: + sub_801BA8C(2, a1, gSaveBlock1Ptr->unk_322C.unk_344[1], 5); + break; + case 0: + sub_801BA8C(0, a1, gSaveBlock1Ptr->unk_322C.unk_344[0], 5); + break; + case 1: + sub_801BA8C(1, a1, gSaveBlock1Ptr->unk_322C.unk_344[0], 5); + break; + default: + AGB_ASSERT(0); + } + } +} + +void sub_801B9F8(void) +{ + CpuFill32(0, gSaveBlock1Ptr->unk_322C.unk_344, sizeof(gSaveBlock1Ptr->unk_322C.unk_344)); +} + +bool32 sub_801BA24(u32 a0, u32 * a1, int size) +{ + int i; + int j; + + for (i = 0; i < size; i++) + { + if (a1[i] == a0) + break; + } + + if (i == size) + { + for (j = size - 1; j > 0; j--) + a1[j] = a1[j - 1]; + + a1[0] = a0; + return TRUE; + } + else + { + for (j = i; j > 0; j--) + a1[j] = a1[j - 1]; + + a1[0] = a0; + return FALSE; + } +} + +void sub_801BA8C(u32 a0, u32 a1, u32 * a2, int a3) +{ + if (sub_801BA24(a1, a2, a3)) + sub_801B7D8(a0); +} -- cgit v1.2.3 From d7a9fcb9755cd06e4e0245b848e44f4ff75e22cb Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 24 Mar 2019 18:13:32 -0500 Subject: Cleanup mevent2 --- src/easy_chat.c | 2 +- src/field_specials.c | 4 +- src/mevent2.c | 106 +++++++++++++++++++++++++-------------------------- src/new_game.c | 2 +- src/script.c | 3 +- src/union_room.c | 4 +- 6 files changed, 59 insertions(+), 62 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index a6d22f8bf..2e384de6e 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -14,8 +14,8 @@ #include "gpu_regs.h" #include "graphics.h" #include "international_string_util.h" -#include "link.h" #include "main.h" +#include "mevent.h" #include "menu.h" #include "overworld.h" #include "palette.h" diff --git a/src/field_specials.c b/src/field_specials.c index 2ae494dad..20c2e6173 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1,4 +1,5 @@ #include "global.h" +#include "alloc.h" #include "battle.h" #include "battle_tower.h" #include "cable_club.h" @@ -20,7 +21,7 @@ #include "link.h" #include "list_menu.h" #include "main.h" -#include "alloc.h" +#include "mevent.h" #include "match_call.h" #include "menu.h" #include "overworld.h" @@ -31,7 +32,6 @@ #include "random.h" #include "rayquaza_scene.h" #include "region_map.h" -#include "rom_8011DC0.h" #include "rtc.h" #include "script.h" #include "script_menu.h" diff --git a/src/mevent2.c b/src/mevent2.c index 9a6f713ea..8a6bd9faa 100755 --- a/src/mevent2.c +++ b/src/mevent2.c @@ -13,14 +13,14 @@ static EWRAM_DATA bool32 gUnknown_02022C70 = FALSE; -void sub_801B180(void); -void sub_801B14C(void); -bool32 sub_801B114(const struct MEventBuffer_3120_Sub * data); -bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub * data); -void sub_801B330(void); -void sub_801B368(void); -void sub_801B9F8(void); -void sub_801BA8C(u32 a0, u32 a1, u32 * a2, int a3); +static void sub_801B180(void); +static void sub_801B14C(void); +static bool32 sub_801B114(const struct MEventBuffer_3120_Sub *data); +static bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub *data); +static void sub_801B330(void); +static void sub_801B368(void); +static void sub_801B9F8(void); +static void sub_801BA8C(u32 a0, u32 a1, u32 *a2, int a3); void sub_801AFD8(void) { @@ -29,27 +29,27 @@ void sub_801AFD8(void) sub_811F8BC(); } -struct MEventBuffer_3120_Sub * sub_801B00C(void) +struct MEventBuffer_3120_Sub *sub_801B00C(void) { return &gSaveBlock1Ptr->unk_322C.buffer_000.data; } -struct MEventBuffer_32E0_Sub * sav1_get_mevent_buffer_1(void) +struct MEventBuffer_32E0_Sub *sav1_get_mevent_buffer_1(void) { return &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; } -struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void) +struct MEventBuffer_3430_Sub *sav1_get_mevent_buffer_2(void) { return &gSaveBlock1Ptr->unk_322C.buffer_310.data; } -struct MysteryEventStruct * sub_801B044(void) +struct MysteryEventStruct *sub_801B044(void) { return &gSaveBlock1Ptr->unk_322C.unk_340; } -u16 * sub_801B058(void) +u16 *sub_801B058(void) { return gSaveBlock1Ptr->unk_322C.unk_338; } @@ -59,7 +59,7 @@ void sub_801B06C(void) sub_801B14C(); } -bool32 sub_801B078(const struct MEventBuffer_3120_Sub * src) +bool32 sub_801B078(const struct MEventBuffer_3120_Sub *src) { if (!sub_801B114(src)) return FALSE; @@ -80,7 +80,7 @@ bool32 sub_801B0CC(void) return TRUE; } -bool32 sub_801B114(const struct MEventBuffer_3120_Sub * data) +static bool32 sub_801B114(const struct MEventBuffer_3120_Sub *data) { if (data->unk_00 == 0) return FALSE; @@ -90,28 +90,28 @@ bool32 sub_801B114(const struct MEventBuffer_3120_Sub * data) bool32 sub_801B128(void) { - const struct MEventBuffer_3120_Sub * data = &gSaveBlock1Ptr->unk_322C.buffer_000.data; + const struct MEventBuffer_3120_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_000.data; if (data->unk_02 == 0) return FALSE; return TRUE; } -void sub_801B14C(void) +static void sub_801B14C(void) { CpuFill32(0, sub_801B00C(), sizeof(gSaveBlock1Ptr->unk_322C.buffer_000.data)); gSaveBlock1Ptr->unk_322C.buffer_000.crc = 0; } -void sub_801B180(void) +static void sub_801B180(void) { CpuFill32(0, sub_801B044(), sizeof(struct MysteryEventStruct)); sub_801DBC0(); } -bool32 sub_801B1A4(const u8 * src) +bool32 sub_801B1A4(const u8 *src) { - const u8 * r5 = (const u8 *)&gSaveBlock1Ptr->unk_322C.buffer_000.data; + const u8 *r5 = (const u8 *)&gSaveBlock1Ptr->unk_322C.buffer_000.data; u32 i; if (!sub_801B0CC()) return FALSE; @@ -136,10 +136,10 @@ void sub_801B1E8(void) ClearEReaderTrainer(&gSaveBlock2Ptr->frontier.ereaderTrainer); } -bool32 sub_801B21C(const struct MEventBuffer_32E0_Sub * data) +bool32 sub_801B21C(const struct MEventBuffer_32E0_Sub *data) { - struct MEventBuffer_3430_Sub * r2; - struct MEventBuffer_32E0_Sub * r1; + struct MEventBuffer_3430_Sub *r2; + struct MEventBuffer_32E0_Sub *r1; if (!sub_801B2CC(data)) return FALSE; @@ -164,7 +164,7 @@ bool32 sub_801B27C(void) return TRUE; } -bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub * data) +static bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub *data) { if (data->unk_00 == 0) return FALSE; @@ -182,22 +182,22 @@ bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub * data) bool32 sub_801B308(void) { - const struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + const struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; if (data->unk_08_6 == 0) return FALSE; return TRUE; } -void sub_801B330(void) +static void sub_801B330(void) { CpuFill32(0, &gSaveBlock1Ptr->unk_322C.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub)); gSaveBlock1Ptr->unk_322C.buffer_1c0.crc = 0; } -void sub_801B368(void) +static void sub_801B368(void) { - CpuFill32(0, sav1_get_mevent_buffer_2(), 18 * sizeof(u16)); + CpuFill32(0, sav1_get_mevent_buffer_2(), 18 *sizeof(u16)); gSaveBlock1Ptr->unk_322C.buffer_310.crc = 0; } @@ -209,13 +209,13 @@ u16 sub_801B39C(void) return 0; } -void sub_801B3C0(struct MEventBuffer_32E0_Sub * buffer) +void sub_801B3C0(struct MEventBuffer_32E0_Sub *buffer) { if (buffer->unk_08_6 == 1) buffer->unk_08_6 = 0; } -bool32 sub_801B3D8(u16 a0) +static bool32 sub_801B3D8(u16 a0) { if (a0 >= 1000 && a0 < 1020) return TRUE; @@ -259,7 +259,7 @@ bool32 sub_801B3F8(void) return TRUE; } -int sub_801B438(const struct MEventBuffer_3430_Sub * data, int size) +static int sub_801B438(const struct MEventBuffer_3430_Sub *data, int size) { int r3 = 0; int i; @@ -272,7 +272,7 @@ int sub_801B438(const struct MEventBuffer_3430_Sub * data, int size) return r3; } -bool32 sub_801B460(const struct MEventBuffer_3430_Sub * data1, const u16 * data2, int size) +static bool32 sub_801B460(const struct MEventBuffer_3430_Sub *data1, const u16 *data2, int size) { int i; for (i = 0; i < size; i++) @@ -286,7 +286,7 @@ bool32 sub_801B460(const struct MEventBuffer_3430_Sub * data1, const u16 * data2 return FALSE; } -bool32 sub_801B4A4(const u16 * data) +static bool32 sub_801B4A4(const u16 *data) { if (data[1] == 0) return FALSE; @@ -297,9 +297,9 @@ bool32 sub_801B4A4(const u16 * data) return TRUE; } -int sub_801B4CC(void) +static int sub_801B4CC(void) { - struct MEventBuffer_32E0_Sub * data; + struct MEventBuffer_32E0_Sub *data; if (!sub_801B27C()) return 0; @@ -310,9 +310,9 @@ int sub_801B4CC(void) return sub_801B438(&gSaveBlock1Ptr->unk_322C.buffer_310.data, data->unk_09); } -bool32 sub_801B508(const u16 * data) +bool32 sub_801B508(const u16 *data) { - struct MEventBuffer_32E0_Sub * buffer = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + struct MEventBuffer_32E0_Sub *buffer = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; int size = buffer->unk_09; int i; if (!sub_801B4A4(data)) @@ -334,7 +334,7 @@ bool32 sub_801B508(const u16 * data) return FALSE; } -void sub_801B580(struct MEventStruct_Unk1442CC * data, bool32 a1) +void sub_801B580(struct MEventStruct_Unk1442CC *data, bool32 a1) { int i; CpuFill32(0, data, sizeof(struct MEventStruct_Unk1442CC)); @@ -376,7 +376,7 @@ void sub_801B580(struct MEventStruct_Unk1442CC * data, bool32 a1) data->unk_60 = RomHeaderSoftwareVersion; } -bool32 sub_801B6A0(const struct MEventStruct_Unk1442CC * data, bool32 a1) +bool32 sub_801B6A0(const struct MEventStruct_Unk1442CC *data, bool32 a1) { if (data->unk_00 != 0x101) return FALSE; @@ -399,7 +399,7 @@ bool32 sub_801B6A0(const struct MEventStruct_Unk1442CC * data, bool32 a1) return TRUE; } -u32 sub_801B6EC(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused) +u32 sub_801B6EC(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, void *unused) { if (a1->unk_14 == 0) return 0; @@ -410,7 +410,7 @@ u32 sub_801B6EC(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * return 2; } -u32 sub_801B708(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused) +u32 sub_801B708(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, void *unused) { int r4 = a1->unk_44 - sub_801B438(&a1->unk_20, a1->unk_44); if (r4 == 0) @@ -422,7 +422,7 @@ u32 sub_801B708(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * return 2; } -bool32 sub_801B748(const struct MEventStruct_Unk1442CC * a0, const u16 * a1) +bool32 sub_801B748(const struct MEventStruct_Unk1442CC *a0, const u16 *a1) { int i; for (i = 0; i < 4; i++) @@ -434,12 +434,12 @@ bool32 sub_801B748(const struct MEventStruct_Unk1442CC * a0, const u16 * a1) return TRUE; } -int sub_801B770(const struct MEventStruct_Unk1442CC * a0) +static int sub_801B770(const struct MEventStruct_Unk1442CC *a0) { return sub_801B438(&a0->unk_20, a0->unk_44); } -u16 sub_801B784(const struct MEventStruct_Unk1442CC * a0, u32 command) +u16 sub_801B784(const struct MEventStruct_Unk1442CC *a0, u32 command) { switch (command) { @@ -459,12 +459,12 @@ u16 sub_801B784(const struct MEventStruct_Unk1442CC * a0, u32 command) } } -void sub_801B7D8(u32 command) +static void sub_801B7D8(u32 command) { - struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; if (data->unk_08_0 == 2) { - u16 * dest = NULL; + u16 *dest = NULL; switch (command) { case 0: @@ -498,7 +498,7 @@ u16 mevent_081445C0(u32 command) struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; if (data->unk_08_0 == 2) { - struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; + struct MEventBuffer_3430_Sub *buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; return buffer->unk_00; } break; @@ -508,7 +508,7 @@ u16 mevent_081445C0(u32 command) struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; if (data->unk_08_0 == 2) { - struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; + struct MEventBuffer_3430_Sub *buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; return buffer->unk_02; } break; @@ -518,7 +518,7 @@ u16 mevent_081445C0(u32 command) struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; if (data->unk_08_0 == 2) { - struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; + struct MEventBuffer_3430_Sub *buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; return buffer->unk_04; } break; @@ -585,12 +585,12 @@ void sub_801B990(u32 a0, u32 a1) } } -void sub_801B9F8(void) +static void sub_801B9F8(void) { CpuFill32(0, gSaveBlock1Ptr->unk_322C.unk_344, sizeof(gSaveBlock1Ptr->unk_322C.unk_344)); } -bool32 sub_801BA24(u32 a0, u32 * a1, int size) +static bool32 sub_801BA24(u32 a0, u32 *a1, int size) { int i; int j; @@ -619,7 +619,7 @@ bool32 sub_801BA24(u32 a0, u32 * a1, int size) } } -void sub_801BA8C(u32 a0, u32 a1, u32 * a2, int a3) +static void sub_801BA8C(u32 a0, u32 a1, u32 *a2, int a3) { if (sub_801BA24(a1, a2, a3)) sub_801B7D8(a0); diff --git a/src/new_game.c b/src/new_game.c index 64c5779c1..97988497d 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -42,10 +42,10 @@ #include "player_pc.h" #include "field_specials.h" #include "berry_powder.h" +#include "mevent.h" extern void copy_strings_to_sav1(void); -extern void sub_801AFD8(void); extern void ResetPokeJumpResults(void); extern const u8 EventScript_ResetAllMapFlags[]; diff --git a/src/script.c b/src/script.c index c95a1141f..91690dd33 100644 --- a/src/script.c +++ b/src/script.c @@ -1,6 +1,7 @@ #include "global.h" #include "script.h" #include "event_data.h" +#include "mevent.h" #include "util.h" #include "constants/map_scripts.h" @@ -8,8 +9,6 @@ extern const u8* gUnknown_020375C0; -extern bool32 sub_801B27C(void); - // ewram bss IWRAM_DATA static u8 sScriptContext1Status; IWRAM_DATA static u32 sUnusedVariable1; diff --git a/src/union_room.c b/src/union_room.c index 51d48fdcf..99ae4b679 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -34,6 +34,7 @@ #include "data2.h" #include "field_screen_effect.h" #include "script_pokemon_util_80F87D8.h" +#include "mevent.h" struct UnkStruct_Shared { @@ -229,9 +230,6 @@ void sub_80177B8(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, bool32 sub_8017678(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId); void sub_801807C(struct TradeUnkStruct *arg0); -void sub_801B940(void); -void sub_801B94C(u16); -u16 sub_801B39C(void); void sub_801AC54(void); void sub_801DD98(void); void sub_802A9A8(u8 monId, MainCallback callback); -- cgit v1.2.3 From af1baa89f1c7f657eb096df5bf2677527301b5c4 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 26 Mar 2019 19:03:46 -0500 Subject: Start decompiling union_room_chat.c --- src/link_rfu.c | 2 +- src/union_room.c | 2 +- src/union_room_chat.c | 1072 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1074 insertions(+), 2 deletions(-) create mode 100755 src/union_room_chat.c (limited to 'src') diff --git a/src/link_rfu.c b/src/link_rfu.c index a557397f0..e4295dc39 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -4729,7 +4729,7 @@ bool32 sub_8011A80(void) return FALSE; } -u8 sub_8011A9C(void) +bool32 sub_8011A9C(void) { return gUnknown_03005000.unk_ce8; } diff --git a/src/union_room.c b/src/union_room.c index 99ae4b679..e0777cdb7 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -35,6 +35,7 @@ #include "field_screen_effect.h" #include "script_pokemon_util_80F87D8.h" #include "mevent.h" +#include "union_room_chat.h" struct UnkStruct_Shared { @@ -231,7 +232,6 @@ bool32 sub_8017678(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId); void sub_801807C(struct TradeUnkStruct *arg0); void sub_801AC54(void); -void sub_801DD98(void); void sub_802A9A8(u8 monId, MainCallback callback); void sub_802493C(u8 monId, MainCallback callback); void sub_8020C70(MainCallback callback); diff --git a/src/union_room_chat.c b/src/union_room_chat.c new file mode 100755 index 000000000..f7c8be9f1 --- /dev/null +++ b/src/union_room_chat.c @@ -0,0 +1,1072 @@ +#include "global.h" +#include "alloc.h" +#include "link.h" +#include "link_rfu.h" +#include "load_save.h" +#include "main.h" +#include "menu.h" +#include "overworld.h" +#include "palette.h" +#include "save.h" +#include "scanline_effect.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "task.h" +#include "constants/rgb.h" +#include "constants/songs.h" + +struct UnionRoomChat +{ + u8 filler0[0x4]; + u16 unk4; + u16 unk6; + u8 filler8[0x2]; + u16 unkA; + u8 fillerC[0x1]; + u8 unkD; + u8 unkE; + u8 unkF; + u8 unk10; + u8 unk11; + u8 unk12; + u8 unk13; + u8 unk14; + u8 unk15; + u8 unk16; + u8 unk17; + u8 unk18; + u8 unk19; + u8 unk1A[0x9F]; + u8 unkB9[10][21]; + u8 filler18B[0x5]; + u8 unk190[0x28]; + u16 unk1B8; +}; + +static void sub_801DDD0(struct UnionRoomChat *); +static void c2_081284E0(void); +static void sub_801DF20(void); +static void sub_801DF38(void); +static void sub_801DF54(u8 taskId); +static void sub_801DFAC(void); +static void sub_801E030(void); +static void sub_801E120(void); +static void sub_801E240(void); +static void sub_801E460(void); +static void sub_801E5C4(void); +static void sub_801E668(void); +static void sub_801E764(void); +static void sub_801E838(void); +static void sub_801E978(void); +static void sub_801EBD4(u16); +static bool32 sub_801EBE4(void); +static void sub_801EC94(void); +static void sub_801ED68(void); +static void sub_801ED94(void); +static bool32 sub_801EDC4(void); +static void sub_801EDE0(void); +static void sub_801EE10(void); +static void sub_801EE2C(void); +static u8 *sub_801EE84(void); +u8 *sub_801EEA8(void); +static void sub_801EF1C(u8 *); +static void sub_801EF24(u8 *); +static void sub_801EF4C(u8 *); +static void sub_801EF7C(u8 *); +static void sub_801EFA8(u8 *); +static void sub_801EFD0(u8 *); +u8 *sub_801F114(void); +void sub_801F2B4(u8 taskId); +bool8 sub_801F4D0(void); +int sub_801F534(void); +void sub_801F544(void); +void sub_801F5B8(void); +void sub_801F5EC(u16, u8); +bool8 sub_801F644(u8); +s8 sub_801FF08(void); + +extern struct UnionRoomChat *gUnknown_02022C84; + +extern const u8 *const gUnknown_082F2BA8[][10]; +extern const u8 gUnknown_082F2AA8[]; + + +void sub_801DD98(void) +{ + gUnknown_02022C84 = Alloc(sizeof(*gUnknown_02022C84)); + sub_801DDD0(gUnknown_02022C84); + gKeyRepeatStartDelay = 20; + SetVBlankCallback(NULL); + SetMainCallback2(c2_081284E0); +} + +static void sub_801DDD0(struct UnionRoomChat *unionRoomChat) +{ + int i; + + unionRoomChat->unk4 = 0; + unionRoomChat->unk6 = 0; + unionRoomChat->unk10 = 0; + unionRoomChat->unk11 = 0; + unionRoomChat->unk12 = 0; + unionRoomChat->unk14 = 0; + unionRoomChat->unk15 = 0; + unionRoomChat->unk16 = 0; + unionRoomChat->unk1A[0] = EOS; + unionRoomChat->unkD = GetLinkPlayerCount(); + unionRoomChat->unk13 = GetMultiplayerId(); + unionRoomChat->unk17 = 0; + unionRoomChat->unk18 = 0; + sub_801EF1C(unionRoomChat->unk190); + for (i = 0; i < 10; i++) + StringCopy(unionRoomChat->unkB9[i], gSaveBlock1Ptr->unk3C88[i]); +} + +void sub_801DE30(void) +{ + DestroyTask(gUnknown_02022C84->unkE); + DestroyTask(gUnknown_02022C84->unkF); + Free(gUnknown_02022C84); +} + +static void c2_081284E0(void) +{ + switch (gMain.state) + { + case 0: + ResetTasks(); + ResetSpriteData(); + FreeAllSpritePalettes(); + sub_801F4D0(); + gMain.state++; + break; + case 1: + sub_801F5B8(); + if (!sub_801F534()) + { + BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); + SetVBlankCallback(sub_801DF20); + gMain.state++; + } + break; + case 2: + UpdatePaletteFade(); + if (!gPaletteFade.active) + { + SetMainCallback2(sub_801DF38); + gUnknown_02022C84->unkE = CreateTask(sub_801DF54, 8); + gUnknown_02022C84->unkF = CreateTask(sub_801F2B4, 7); + sub_800E0E8(); + CreateWirelessStatusIndicatorSprite(232, 150); + } + break; + } +} + +static void sub_801DF20(void) +{ + TransferPlttBuffer(); + LoadOam(); + ProcessSpriteCopyRequests(); + ScanlineEffect_InitHBlankDmaTransfer(); +} + +static void sub_801DF38(void) +{ + RunTasks(); + sub_801F5B8(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void (*const gUnknown_082F2A7C[])(void) = +{ + sub_801DFAC, + sub_801E030, + sub_801E120, + sub_801E240, + sub_801E764, + sub_801E838, + sub_801E460, + sub_801E5C4, + sub_801E668, + sub_801E978, +}; + +static void sub_801DF54(u8 taskId) +{ + switch (gUnknown_02022C84->unk17) + { + case 1: + sub_801EBD4(6); + gUnknown_02022C84->unk17 = 0; + break; + case 2: + sub_801EBD4(7); + gUnknown_02022C84->unk17 = 0; + break; + case 3: + sub_801EBD4(8); + gUnknown_02022C84->unk17 = 0; + break; + } + + gUnknown_082F2A7C[gUnknown_02022C84->unk4](); +} + +static void sub_801DFAC(void) +{ + switch (gUnknown_02022C84->unk6) + { + case 0: + sub_801EF24(gUnknown_02022C84->unk190); + gUnknown_02022C84->unk6++; + // fall through + case 1: + if (IsLinkTaskFinished() && !sub_8011A9C()) + { + if (SendBlock(0, gUnknown_02022C84->unk190, sizeof(gUnknown_02022C84->unk190))) + gUnknown_02022C84->unk6++; + } + break; + case 2: + if (IsLinkTaskFinished()) + sub_801EBD4(1); + break; + } +} + +static void sub_801E030(void) +{ + bool8 var0, var1; + + switch (gUnknown_02022C84->unk6) + { + case 0: + if (gMain.newKeys & START_BUTTON) + { + if (gUnknown_02022C84->unk15) + sub_801EBD4(4); + } + else if (gMain.newKeys & SELECT_BUTTON) + { + sub_801EBD4(2); + } + else if (gMain.newAndRepeatedKeys & B_BUTTON) + { + if (gUnknown_02022C84->unk15) + { + sub_801ED68(); + sub_801F5EC(8, 0); + gUnknown_02022C84->unk6 = 1; + } + else + { + sub_801EBD4(3); + } + } + else if (gMain.newKeys & A_BUTTON) + { + sub_801EC94(); + sub_801F5EC(8, 0); + sub_801F5EC(2, 1); + gUnknown_02022C84->unk6 = 1; + } + else if (gMain.newKeys & R_BUTTON) + { + if (gUnknown_02022C84->unk10 != 3) + { + sub_801ED94(); + sub_801F5EC(8, 0); + gUnknown_02022C84->unk6 = 1; + } + else + { + sub_801EBD4(5); + } + } + else if (sub_801EBE4()) + { + sub_801F5EC(1, 0); + gUnknown_02022C84->unk6 = 1; + } + break; + case 1: + var0 = sub_801F644(0); + var1 = sub_801F644(1); + if (!var0 && !var1) + gUnknown_02022C84->unk6 = 0; + break; + } +} + +static void sub_801E120(void) +{ + s16 input; + int var0; + + switch (gUnknown_02022C84->unk6) + { + case 0: + sub_801F5EC(3, 0); + gUnknown_02022C84->unk6++; + break; + case 1: + if (!sub_801F644(0)) + gUnknown_02022C84->unk6++; + break; + case 2: + input = Menu_ProcessInput(); + switch (input) + { + default: + sub_801F5EC(4, 0); + var0 = 1; + if (gUnknown_02022C84->unk10 == input || input > 3) + var0 = 0; + break; + case MENU_NOTHING_CHOSEN: + if (gMain.newKeys & SELECT_BUTTON) + { + PlaySE(SE_SELECT); + Menu_MoveCursor(1); + } + return; + case MENU_B_PRESSED: + sub_801F5EC(4, 0); + gUnknown_02022C84->unk6 = 3; + return; + } + + if (!var0) + { + gUnknown_02022C84->unk6 = 3; + return; + } + + gUnknown_02022C84->unk11 = 0; + gUnknown_02022C84->unk12 = 0; + sub_801F5EC(5, 1); + gUnknown_02022C84->unk10 = input; + gUnknown_02022C84->unk6 = 4; + break; + case 3: + if (!sub_801F644(0)) + sub_801EBD4(1); + break; + case 4: + if (!sub_801F644(0) && !sub_801F644(1)) + sub_801EBD4(1); + break; + } +} + +static void sub_801E240(void) +{ + s8 input; + + switch (gUnknown_02022C84->unk6) + { + case 0: + sub_801F5EC(6, 0); + gUnknown_02022C84->unk6 = 1; + break; + case 1: + if (!sub_801F644(0)) + gUnknown_02022C84->unk6 = 2; + break; + case 2: + input = sub_801FF08(); + switch (input) + { + case -1: + case 1: + sub_801F5EC(7, 0); + gUnknown_02022C84->unk6 = 3; + break; + case 0: + if (gUnknown_02022C84->unk13 == 0) + { + sub_801EFD0(gUnknown_02022C84->unk190); + sub_801F5EC(7, 0); + gUnknown_02022C84->unk6 = 9; + } + else + { + sub_801EF7C(gUnknown_02022C84->unk190); + gUnknown_02022C84->unk6 = 4; + } + break; + } + break; + case 3: + if (!sub_801F644(0)) + sub_801EBD4(1); + break; + case 9: + if (!sub_801F644(0)) + { + sub_801F5EC(20, 0); + gUnknown_02022C84->unk6 = 10; + } + break; + case 10: + if (!sub_801F644(0)) + gUnknown_02022C84->unk6 = 8; + break; + case 8: + input = sub_801FF08(); + switch (input) + { + case -1: + case 1: + sub_801F5EC(7, 0); + gUnknown_02022C84->unk6 = 3; + break; + case 0: + sub_80104B0(); + sub_801EFD0(gUnknown_02022C84->unk190); + gUnknown_02022C84->unk6 = 4; + gUnknown_02022C84->unk1B8 = 0; + break; + } + break; + case 4: + if (IsLinkTaskFinished() && !sub_8011A9C() && SendBlock(0, gUnknown_02022C84->unk190, sizeof(gUnknown_02022C84->unk190))) + { + if (!gUnknown_02022C84->unk13) + gUnknown_02022C84->unk6 = 6; + else + gUnknown_02022C84->unk6 = 5; + } + + if (!gReceivedRemoteLinkPlayers) + sub_801EBD4(9); + break; + case 5: + if (!gReceivedRemoteLinkPlayers) + { + sub_801EBD4(9); + } + else if (++gUnknown_02022C84->unk1B8 > 300) + { + gUnknown_02022C84->unk1B8 = 0; + gUnknown_02022C84->unk6 = 4; + } + break; + } +} + +static void sub_801E460(void) +{ + switch (gUnknown_02022C84->unk6) + { + case 0: + if (!FuncIsActiveTask(sub_801F2B4)) + { + sub_801F5EC(7, 0); + gUnknown_02022C84->unk6++; + } + break; + case 1: + if (!sub_801F644(0)) + { + sub_801F5EC(18, 0); + gUnknown_02022C84->unk6++; + } + break; + case 2: + if (!sub_801F644(0)) + { + sub_801EFA8(gUnknown_02022C84->unk190); + gUnknown_02022C84->unk6++; + } + break; + case 3: + if (IsLinkTaskFinished() && !sub_8011A9C() && SendBlock(0, gUnknown_02022C84->unk190, sizeof(gUnknown_02022C84->unk190))) + gUnknown_02022C84->unk6++; + break; + case 4: + if ((GetBlockReceivedStatus() & 1) && !sub_8011A9C()) + gUnknown_02022C84->unk6++; + break; + case 5: + if (IsLinkTaskFinished() && !sub_8011A9C()) + { + sub_800AC34(); + gUnknown_02022C84->unkA = 0; + gUnknown_02022C84->unk6++; + } + break; + case 6: + if (gUnknown_02022C84->unkA < 150) + gUnknown_02022C84->unkA++; + + if (!gReceivedRemoteLinkPlayers) + gUnknown_02022C84->unk6++; + break; + case 7: + if (gUnknown_02022C84->unkA >= 150) + sub_801EBD4(9); + else + gUnknown_02022C84->unkA++; + break; + } +} + +static void sub_801E5C4(void) +{ + switch (gUnknown_02022C84->unk6) + { + case 0: + if (!FuncIsActiveTask(sub_801F2B4)) + { + sub_801F5EC(7, 0); + gUnknown_02022C84->unk6++; + } + break; + case 1: + if (!sub_801F644(0) && IsLinkTaskFinished() && !sub_8011A9C()) + { + sub_800AC34(); + gUnknown_02022C84->unkA = 0; + gUnknown_02022C84->unk6++; + } + break; + case 2: + if (gUnknown_02022C84->unkA < 150) + gUnknown_02022C84->unkA++; + + if (!gReceivedRemoteLinkPlayers) + gUnknown_02022C84->unk6++; + break; + case 3: + if (gUnknown_02022C84->unkA >= 150) + sub_801EBD4(9); + else + gUnknown_02022C84->unkA++; + break; + } +} + +static void sub_801E668(void) +{ + switch (gUnknown_02022C84->unk6) + { + case 0: + if (!FuncIsActiveTask(sub_801F2B4)) + { + if (gUnknown_02022C84->unk13) + sub_801F5EC(7, 0); + + gUnknown_02022C84->unk6++; + } + break; + case 1: + if (!sub_801F644(0)) + { + if (gUnknown_02022C84->unk13) + sub_801F5EC(19, 0); + + gUnknown_02022C84->unk6++; + } + break; + case 2: + if (sub_801F644(0) != TRUE && IsLinkTaskFinished() && !sub_8011A9C()) + { + sub_800AC34(); + gUnknown_02022C84->unkA = 0; + gUnknown_02022C84->unk6++; + } + break; + case 3: + if (gUnknown_02022C84->unkA < 150) + gUnknown_02022C84->unkA++; + + if (!gReceivedRemoteLinkPlayers) + gUnknown_02022C84->unk6++; + break; + case 4: + if (gUnknown_02022C84->unkA >= 150) + sub_801EBD4(9); + else + gUnknown_02022C84->unkA++; + break; + } +} + +static void sub_801E764(void) +{ + switch (gUnknown_02022C84->unk6) + { + case 0: + if (!gReceivedRemoteLinkPlayers) + { + sub_801EBD4(1); + break; + } + + sub_801EF4C(gUnknown_02022C84->unk190); + gUnknown_02022C84->unk6++; + // fall through + case 1: + if (IsLinkTaskFinished() == TRUE && !sub_8011A9C() && SendBlock(0, gUnknown_02022C84->unk190, sizeof(gUnknown_02022C84->unk190))) + gUnknown_02022C84->unk6++; + break; + case 2: + sub_801EE10(); + sub_801F5EC(8, 0); + gUnknown_02022C84->unk6++; + break; + case 3: + if (!sub_801F644(0)) + gUnknown_02022C84->unk6++; + break; + case 4: + if (IsLinkTaskFinished()) + sub_801EBD4(1); + break; + } +} + +static void sub_801E838(void) +{ + switch (gUnknown_02022C84->unk6) + { + case 0: + if (sub_801EDC4()) + { + sub_801F5EC(9, 0); + gUnknown_02022C84->unk6 = 2; + } + else + { + sub_801F5EC(13, 0); + gUnknown_02022C84->unk6 = 5; + } + break; + case 1: + if (gMain.newKeys & A_BUTTON) + { + sub_801EDE0(); + sub_801F5EC(11, 0); + gUnknown_02022C84->unk6 = 3; + } + else if (gMain.newKeys & B_BUTTON) + { + sub_801F5EC(10, 0); + gUnknown_02022C84->unk6 = 4; + } + else if (sub_801EBE4()) + { + sub_801F5EC(1, 0); + gUnknown_02022C84->unk6 = 2; + } + break; + case 2: + if (!sub_801F644(0)) + gUnknown_02022C84->unk6 = 1; + break; + case 3: + if (!sub_801F644(0)) + { + sub_801F5EC(10, 0); + gUnknown_02022C84->unk6 = 4; + } + break; + case 4: + if (!sub_801F644(0)) + sub_801EBD4(1); + break; + case 5: + if (!sub_801F644(0)) + gUnknown_02022C84->unk6 = 6; + break; + case 6: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + sub_801F5EC(7, 0); + gUnknown_02022C84->unk6 = 4; + } + break; + } +} + +static void sub_801E978(void) +{ + s8 input; + + switch (gUnknown_02022C84->unk6) + { + case 0: + if (!gUnknown_02022C84->unk18) + { + gUnknown_02022C84->unk6 = 12; + } + else + { + sub_801F5EC(7, 0); + gUnknown_02022C84->unk6 = 1; + } + break; + case 1: + if (!sub_801F644(0)) + { + sub_801F5EC(14, 0); + gUnknown_02022C84->unk6 = 2; + } + break; + case 2: + input = sub_801FF08(); + switch (input) + { + case -1: + case 1: + gUnknown_02022C84->unk6 = 12; + break; + case 0: + sub_801F5EC(7, 0); + gUnknown_02022C84->unk6 = 3; + break; + } + break; + case 3: + if (!sub_801F644(0)) + { + sub_801F5EC(15, 0); + gUnknown_02022C84->unk6 = 4; + } + break; + case 4: + if (!sub_801F644(0)) + gUnknown_02022C84->unk6 = 5; + break; + case 5: + input = sub_801FF08(); + switch (input) + { + case -1: + case 1: + gUnknown_02022C84->unk6 = 12; + break; + case 0: + sub_801F5EC(7, 0); + gUnknown_02022C84->unk6 = 6; + break; + } + break; + case 6: + if (!sub_801F644(0)) + { + sub_801F5EC(16, 0); + sub_801EE2C(); + gUnknown_02022C84->unk6 = 7; + } + break; + case 7: + if (!sub_801F644(0)) + { + SetContinueGameWarpStatusToDynamicWarp(); + TrySavingData(SAVE_NORMAL); + gUnknown_02022C84->unk6 = 8; + } + break; + case 8: + sub_801F5EC(17, 0); + gUnknown_02022C84->unk6 = 9; + break; + case 9: + if (!sub_801F644(0)) + { + PlaySE(SE_SAVE); + ClearContinueGameWarpStatus2(); + gUnknown_02022C84->unk6 = 10; + } + break; + case 10: + gUnknown_02022C84->unk19 = 0; + gUnknown_02022C84->unk6 = 11; + break; + case 11: + gUnknown_02022C84->unk19++; + if (gUnknown_02022C84->unk19 > 120) + gUnknown_02022C84->unk6 = 12; + break; + case 12: + BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); + gUnknown_02022C84->unk6 = 13; + break; + case 13: + if (!gPaletteFade.active) + { + sub_801F544(); + sub_801DE30(); + SetMainCallback2(CB2_ReturnToField); + } + break; + } +} + +static void sub_801EBD4(u16 arg0) +{ + gUnknown_02022C84->unk4 = arg0; + gUnknown_02022C84->unk6 = 0; +} + +static const u8 sUnknown_082F2AA4[] = {9, 9, 9, 9}; + +static bool32 sub_801EBE4(void) +{ + if (!(gMain.newAndRepeatedKeys & DPAD_UP)) + { + if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (gUnknown_02022C84->unk12 < sUnknown_082F2AA4[gUnknown_02022C84->unk10]) + gUnknown_02022C84->unk12++; + else + gUnknown_02022C84->unk12 = 0; + + return TRUE; + } + + if (gUnknown_02022C84->unk10 != 3) + { + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (gUnknown_02022C84->unk11) + gUnknown_02022C84->unk11--; + else + gUnknown_02022C84->unk11 = 4; + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (gUnknown_02022C84->unk11 > 3) + gUnknown_02022C84->unk11 = 0; + else + gUnknown_02022C84->unk11++; + } + else + { + return FALSE; + } + + return TRUE; + } + + return FALSE; + } + else + { + if (gUnknown_02022C84->unk12) + gUnknown_02022C84->unk12--; + else + gUnknown_02022C84->unk12 = sUnknown_082F2AA4[gUnknown_02022C84->unk10]; + + return TRUE; + } +} + +static void sub_801EC94(void) +{ + int i; + const u8 *charsStr; + int strLength; + u8 *str; + u8 buffer[21]; + + if (gUnknown_02022C84->unk10 != 3) + { + charsStr = gUnknown_082F2BA8[gUnknown_02022C84->unk10][gUnknown_02022C84->unk12]; + for (i = 0; i < gUnknown_02022C84->unk11; i++) + { + if (*charsStr == CHAR_SPECIAL_F9) + charsStr++; + charsStr++; + } + + strLength = 1; + } + else + { + u8 *tempStr = StringCopy(buffer, gUnknown_02022C84->unkB9[gUnknown_02022C84->unk12]); + tempStr[0] = CHAR_SPACE; + tempStr[1] = EOS; + charsStr = buffer; + strLength = StringLength_Multibyte(buffer); + } + + gUnknown_02022C84->unk14 = gUnknown_02022C84->unk15; + if (!charsStr) + return; + + str = sub_801EE84(); + while (--strLength != -1 && gUnknown_02022C84->unk15 < 15) + { + if (*charsStr == CHAR_SPECIAL_F9) + { + *str = *charsStr; + charsStr++; + str++; + } + + *str = *charsStr; + charsStr++; + str++; + + gUnknown_02022C84->unk15++; + } + + *str = EOS; +} + +static void sub_801ED68(void) +{ + gUnknown_02022C84->unk14 = gUnknown_02022C84->unk15; + if (gUnknown_02022C84->unk15) + { + u8 *str = sub_801EEA8(); + *str = EOS; + gUnknown_02022C84->unk15--; + } +} + +static void sub_801ED94(void) +{ + u8 *str; + u8 character; + + gUnknown_02022C84->unk14 = gUnknown_02022C84->unk15 - 1; + str = sub_801EEA8(); + if (*str != CHAR_SPECIAL_F9) + { + character = gUnknown_082F2AA8[*str]; + if (character) + *str = character; + } +} + +static bool32 sub_801EDC4(void) +{ + if (gUnknown_02022C84->unk15) + return TRUE; + else + return FALSE; +} + +static void sub_801EDE0(void) +{ + u8 *src = sub_801F114(); + StringCopy(gUnknown_02022C84->unkB9[gUnknown_02022C84->unk12], src); + gUnknown_02022C84->unk18 = 1; +} + +static void sub_801EE10(void) +{ + gUnknown_02022C84->unk1A[0] = EOS; + gUnknown_02022C84->unk14 = 15; + gUnknown_02022C84->unk15 = 0; +} + +static void sub_801EE2C(void) +{ + int i; + for (i = 0; i < 10; i++) + StringCopy(gSaveBlock1Ptr->unk3C88[i], gUnknown_02022C84->unkB9[i]); +} + +u8 *sub_801EE6C(int arg0) +{ + return gUnknown_02022C84->unkB9[arg0]; +} + +static u8 *sub_801EE84(void) +{ + u8 *str = gUnknown_02022C84->unk1A; + while (*str != EOS) + str++; + + return str; +} + +u8 *sub_801EEA8(void) +{ + u8 *str = gUnknown_02022C84->unk1A; + u8 *str2 = str; + while (*str != EOS) + { + str2 = str; + if (*str == CHAR_SPECIAL_F9) + str++; + str++; + } + + return str2; +} + +u16 sub_801EED8(void) +{ + u8 *str; + u32 i, numChars, strLength; + + strLength = StringLength_Multibyte(gUnknown_02022C84->unk1A); + str = gUnknown_02022C84->unk1A; + numChars = 0; + if (strLength > 10) + { + strLength -= 10; + for (i = 0; i < strLength; i++) + { + if (*str == CHAR_SPECIAL_F9) + str++; + + str++; + numChars++; + } + } + + return numChars; +} + +static void sub_801EF1C(u8 *arg0) +{ + arg0[0] = CHAR_SPACE; +} + +static void sub_801EF24(u8 *arg0) +{ + arg0[0] = 2; + StringCopy(&arg0[1], gSaveBlock2Ptr->playerName); + arg0[1 + (PLAYER_NAME_LENGTH + 1)] = gUnknown_02022C84->unk13; +} + +static void sub_801EF4C(u8 *arg0) +{ + arg0[0] = 1; + StringCopy(&arg0[1], gSaveBlock2Ptr->playerName); + StringCopy(&arg0[1 + (PLAYER_NAME_LENGTH + 1)], gUnknown_02022C84->unk1A); +} + +static void sub_801EF7C(u8 *arg0) +{ + arg0[0] = 3; + StringCopy(&arg0[1], gSaveBlock2Ptr->playerName); + arg0[1 + (PLAYER_NAME_LENGTH + 1)] = gUnknown_02022C84->unk13; + sub_8011A50(); +} + +static void sub_801EFA8(u8 *arg0) +{ + arg0[0] = 4; + StringCopy(&arg0[1], gSaveBlock2Ptr->playerName); + arg0[1 + (PLAYER_NAME_LENGTH + 1)] = gUnknown_02022C84->unk13; +} + +static void sub_801EFD0(u8 *arg0) +{ + arg0[0] = 5; + StringCopy(&arg0[1], gSaveBlock2Ptr->playerName); + arg0[1 + (PLAYER_NAME_LENGTH + 1)] = gUnknown_02022C84->unk13; +} -- cgit v1.2.3 From c6c0c9582f486f805c98ecfa51a803ed62a23918 Mon Sep 17 00:00:00 2001 From: scnorton Date: Tue, 26 Mar 2019 15:11:55 -0400 Subject: Port menews_jisan.c from FireRed --- src/mevent_news.c | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 src/mevent_news.c (limited to 'src') diff --git a/src/mevent_news.c b/src/mevent_news.c new file mode 100644 index 000000000..f5a061c84 --- /dev/null +++ b/src/mevent_news.c @@ -0,0 +1,147 @@ +#include "global.h" +#include "mevent.h" +#include "random.h" +#include "event_data.h" +#include "mevent_news.h" + +static u32 sub_801DCAC(struct MysteryEventStruct *); +static void sub_801DD10(struct MysteryEventStruct *); +static u32 sub_801DD44(struct MysteryEventStruct *); +static void sub_801DCD8(struct MysteryEventStruct *); +static void sub_801DCCC(struct MysteryEventStruct *); + +void sub_801DB68(u32 a0) +{ + struct MysteryEventStruct *r5 = sub_801B044(); + + r5->unk_0_0 = a0; + switch (a0) + { + case 0: + break; + case 1: + case 2: + r5->unk_1 = (Random() % 15) + 16; + break; + case 3: + r5->unk_1 = (Random() % 15) + 1; + break; + } +} + +void sub_801DBC0(void) +{ + struct MysteryEventStruct *r5 = sub_801B044(); + + r5->unk_0_0 = 0; + r5->unk_0_2 = 0; + r5->unk_0_5 = 0; + r5->unk_1 = 0; + VarSet(VAR_0x402E, 0); +} + +void sub_801DBDC(void) +{ + u16 *r4 = GetVarPointer(VAR_0x402E); + struct MysteryEventStruct *r2 = sub_801B044(); + struct MysteryEventStruct r0 = *r2; + + if ((u8)r0.unk_0_5 > 4 && ++(*r4) > 0x1f3) + { + r2->unk_0_5 = 0; + *r4 = 0; + } +} + +u16 sub_801DC20(void) +{ + u16 *r6 = &gSpecialVar_Result; + struct MysteryEventStruct *r4 = sub_801B044(); + u16 r5; + + if (!IsMysteryEventEnabled() || !sub_801B0CC()) + return 0; + + r5 = sub_801DD44(r4); + + switch (r5) + { + case 0: + break; + case 1: + *r6 = sub_801DCAC(r4); + break; + case 2: + *r6 = sub_801DCAC(r4); + break; + case 3: + break; + case 4: + *r6 = sub_801DCAC(r4); + sub_801DCD8(r4); + break; + case 5: + *r6 = sub_801DCAC(r4); + sub_801DCCC(r4); + break; + case 6: + break; + } + + return r5; +} + +static u32 sub_801DCAC(struct MysteryEventStruct *a0) +{ + u32 r4; + + a0->unk_0_0 = 0; + r4 = a0->unk_1 + 0x84; + a0->unk_1 = 0; + sub_801DD10(a0); + return r4; +} + +static void sub_801DCCC(struct MysteryEventStruct *a0) +{ + a0->unk_0_2 = 0; +} + +static void sub_801DCD8(struct MysteryEventStruct *a0) +{ + a0->unk_0_2++; + if ((u8)a0->unk_0_2 > 4) + a0->unk_0_2 = 4; +} + +static void sub_801DD10(struct MysteryEventStruct *a0) +{ + a0->unk_0_5++; + if ((u8)a0->unk_0_5 > 5) + a0->unk_0_5 = 5; +} + +static u32 sub_801DD44(struct MysteryEventStruct *a0) +{ + struct MysteryEventStruct r0; + if ((u8)a0->unk_0_5 == 5) + return 6; + + r0 = *a0; + switch (r0.unk_0_0) + { + case 0: + return 3; + case 1: + return 1; + case 2: + return 2; + case 3: + if ((u8)r0.unk_0_2 < 3) + return 4; + return 5; + default: + AGB_ASSERT(0); + return 0; + } +} -- cgit v1.2.3 From 44f7d49c2e6ee4cb58567c2566e48b859a3e3082 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 27 Mar 2019 09:54:19 -0400 Subject: Finish sub_8016CA0 --- src/union_room.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index 99ae4b679..b5c0bab80 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -46,7 +46,7 @@ struct UnkStruct_Shared struct UnkStruct_x1C { struct UnkStruct_Shared unk0; - u8 unk18; + u8 unk18:1; }; struct UnkStruct_x20 @@ -3468,33 +3468,40 @@ u8 sub_8016B00(void) return r7; } -/* void sub_8016CA0(u8 taskId) { s32 i, j; - struct UnkLinkRfuStruct_02022B14 sp0; - u8 text[10]; - struct UnkStruct_Main4 *ptr = (void*) gTasks[taskId].data; + struct UnkStruct_Shared sp0; + struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; + bool8 r4; for (i = 0; i < 4; i++) { - j = sub_800DE7C(&sp0, text, i); - if (!sub_8013D88(sp0.unk_0a_0, gTasks[taskId].data[4])) - sp0 = gUnknown_082F045C.field_0; - if (sp0.unk_00.unk_00_0 == 1) - sp0 = gUnknown_082F045C.field_0; - - if (!j) + r4 = sub_800DE7C(&sp0.field_0, sp0.playerName, i); + if (!sub_8013D88(sp0.field_0.unk_0a_0, gTasks[taskId].data[4])) + { + sp0 = gUnknown_082F045C; + } + if (sp0.field_0.unk_00.unk_00_0 == 1) + { + sp0 = gUnknown_082F045C; + } + if (!r4) { for (j = 0; j < i; j++) { - if (sub_8017630()) + if (!sub_8017630(&ptr[1]->arr[j].unk0, &sp0)) + { + sp0 = gUnknown_082F045C; + } } + ptr[1]->arr[i].unk0 = sp0; + ptr[1]->arr[i].unk18 = sub_8017630(&ptr[1]->arr[i].unk0, &gUnknown_082F045C); } else { - + ptr[0]->arr[i].unk0 = sp0; + ptr[0]->arr[i].unk18 = sub_8017630(&ptr[0]->arr[i].unk0, &gUnknown_082F045C); } } } -*/ -- cgit v1.2.3 From 9a8b001ebf66a3c657512fb660b3c4768dabad1c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 27 Mar 2019 10:44:49 -0400 Subject: through sub_801704C --- src/union_room.c | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 120 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index b5c0bab80..817f6b237 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -241,7 +241,7 @@ void sub_8018784(u8 windowId); void sub_8018884(const u8 *src); bool32 mevent_0814257C(u8 *textState, const u8 *str); s8 sub_8018B08(u8 *textState, u8 *arg1, u8 arg2, const u8 *str); -bool32 sub_8016F1C(struct UnkStruct_x20 *arg0, s16 arg1); +bool32 sub_8016F1C(struct UnkLinkRfuStruct_02022B14 *arg0, s16 arg1); u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2); void sub_8019F2C(void); void sub_8019E70(u8 *arg0, s32 arg1); @@ -274,7 +274,7 @@ void sub_8019F04(u8 *spriteIds); void sub_8019E3C(void); void sub_80173B0(void); s32 sub_8017D04(u32 type, u32 species); -void sub_8017020(const u8 *src); +bool32 sub_8017020(const u8 *src); void sub_8019BA8(void *); s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3); void sub_801697C(u8 taskId); @@ -2340,7 +2340,7 @@ void sub_80152F4(u8 taskId) { if (data->field_0->arr[0].field_1A_0 == 1 && !data->field_0->arr[0].unk.field_0.unk_0a_7) { - if (sub_8016F1C(&data->field_0->arr[0], data->field_12 + 7)) + if (sub_8016F1C(&data->field_0->arr[0].unk.field_0, data->field_12 + 7)) { data->field_F = 0; data->field_14 = 0; @@ -3505,3 +3505,120 @@ void sub_8016CA0(u8 taskId) } } } + +u8 sub_8016DF0(struct UnkStruct_Main4 * a0, struct UnkStruct_Main4 * a1, u32 a2) +{ + u8 taskId = CreateTask(sub_8016CA0, 0); + struct UnkStruct_Main4 ** data = (void *)gTasks[taskId].data; + data[0] = a0; + data[1] = a1; + gTasks[taskId].data[4] = a2; + return taskId; +} + +void sub_8016E24(u8 taskId) +{ + s32 i, j; + struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; + + for (i = 0; i < 4; i++) + { + sub_800DE7C(&ptr[0]->arr[i].unk0.field_0, ptr[0]->arr[i].unk0.playerName, i); + if (!sub_8013D88(ptr[0]->arr[i].unk0.field_0.unk_0a_0, gTasks[taskId].data[2])) + { + ptr[0]->arr[i].unk0 = gUnknown_082F045C; + } + for (j = 0; j < i; j++) + { + if (!sub_8017630(&ptr[0]->arr[j].unk0, &ptr[0]->arr[i].unk0)) + { + ptr[0]->arr[i].unk0 = gUnknown_082F045C; + } + } + ptr[0]->arr[i].unk18 = sub_8017630(&ptr[0]->arr[i].unk0, &gUnknown_082F045C); + } +} + +bool32 sub_8016F1C(struct UnkLinkRfuStruct_02022B14 *arg0, s16 arg1) +{ + if (arg1 == 7) + { + if (!arg0->unk_00.unk_00_5) + { + return FALSE; + } + else + { + return TRUE; + } + } + else if (arg1 == 8) + { + if (!arg0->unk_00.unk_00_4) + { + return FALSE; + } + else + { + return TRUE; + } + } + else + { + return FALSE; + } +} + +void sub_8016F44(u8 taskId) +{ + s32 i; + struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; + + for (i = 0; i < 4; i++) + { + if (sub_800DF34(&ptr[0]->arr[i].unk0.field_0, ptr[0]->arr[i].unk0.playerName, i)) + { + sub_8016F1C(&ptr[0]->arr[i].unk0.field_0, gTasks[taskId].data[2]); + } + ptr[0]->arr[i].unk18 = sub_8017630(&ptr[0]->arr[i].unk0, &gUnknown_082F045C); + } +} + +u8 sub_8016FC0(struct UnkStruct_Main4 * a0, u32 a1) +{ + u8 taskId = CreateTask(sub_8016E24, 0); + struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; + ptr[0] = a0; + gTasks[taskId].data[2] = a1; + return taskId; +} + +u8 sub_8016FF0(struct UnkStruct_Main4 * a0, u32 a1) +{ + u8 taskId = CreateTask(sub_8016F44, 0); + struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data; + ptr[0] = a0; + gTasks[taskId].data[2] = a1; + return taskId; +} + +bool32 sub_8017020(const u8 *src) +{ + sub_81973A4(); + DrawDialogueFrame(0, 1); + StringExpandPlaceholders(gStringVar4, src); + AddTextPrinterWithCustomSpeedForMessage(FALSE, 1); + return FALSE; +} + +bool32 sub_801704C(void) +{ + if (!RunTextPrintersAndIsPrinter0Active()) + { + return TRUE; + } + else + { + return FALSE; + } +} -- cgit v1.2.3 From 8e0773675c63cdc1b51f6fcc3db3ca367bf4654b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 27 Mar 2019 13:16:10 -0400 Subject: through sub_8017168 --- src/union_room.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index 817f6b237..0eb419401 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -331,6 +331,7 @@ extern const u8 gUnknown_082EF298[]; extern const u8 gUnknown_082EF65C[]; extern const u8 gUnknown_082EF6E4[]; extern const u8 gUnknown_082EF718[]; +extern const u8 gUnknown_082EFD94[]; extern const u32 gUnknown_082F00C4[]; @@ -3622,3 +3623,73 @@ bool32 sub_801704C(void) return FALSE; } } + +bool8 PrintOnTextbox(u8 *textState, const u8 *str) +{ + switch (*textState) + { + case 0: + sub_81973A4(); + DrawDialogueFrame(0, 1); + StringExpandPlaceholders(gStringVar4, str); + AddTextPrinterForMessage_2(TRUE); + (*textState)++; + break; + case 1: + if (!RunTextPrintersAndIsPrinter0Active()) + { + *textState = 0; + return TRUE; + } + break; + } + return FALSE; +} + +s8 sub_80170B8(u8 *arg0, bool32 arg1) +{ + s8 r1; + + switch (*arg0) + { + case 0: + if (arg1) + { + return -3; + } + DisplayYesNoMenuDefaultYes(); + (*arg0)++; + break; + case 1: + if (arg1) + { + sub_8198C78(); + *arg0 = 0; + return -3; + } + r1 = Menu_ProcessInputNoWrapClearOnChoose(); + if (r1 == -1 || r1 == 0 || r1 == 1) + { + *arg0 = 0; + return r1; + } + break; + } + return -2; +} + +u8 sub_8017118(struct WindowTemplate * template) +{ + u8 windowId = AddWindow(template); + DrawStdWindowFrame(windowId, FALSE); + FillWindowPixelBuffer(windowId, 0xFF); + sub_80173E0(windowId, 1, gUnknown_082EFD94, 8, 1, 6); + CopyWindowToVram(windowId, 2); + PutWindowTilemap(windowId); + return windowId; +} + +void sub_8017168(u8 windowId) +{ + RemoveWindow(windowId); +} -- cgit v1.2.3 From 51d2131dc268ba760e0d5790d747213eb0a12b2b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 27 Mar 2019 16:57:34 -0400 Subject: through (nearly-matching) sub_80172A0 --- src/union_room.c | 243 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 242 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index 0eb419401..90631dab4 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -34,6 +34,7 @@ #include "data2.h" #include "field_screen_effect.h" #include "script_pokemon_util_80F87D8.h" +#include "international_string_util.h" #include "mevent.h" struct UnkStruct_Shared @@ -264,6 +265,7 @@ void sub_801818C(bool32 arg0); void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2); s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate); s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6); +s32 sub_8017CB0(struct UnkStruct_Main0 * arg); bool32 sub_8018024(void); u32 sub_8017984(u32 arg0); void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2); @@ -346,6 +348,7 @@ extern const struct WindowTemplate gUnknown_082F017C; extern const struct WindowTemplate gUnknown_082F021C; extern const struct WindowTemplate gUnknown_082F025C; extern const struct WindowTemplate gUnknown_082F0294; +extern const struct WindowTemplate gUnknown_082F0344; extern const struct WindowTemplate gUnknown_082F034C; extern const struct ListMenuTemplate gUnknown_082F015C; @@ -3678,7 +3681,7 @@ s8 sub_80170B8(u8 *arg0, bool32 arg1) return -2; } -u8 sub_8017118(struct WindowTemplate * template) +u8 sub_8017118(const struct WindowTemplate * template) { u8 windowId = AddWindow(template); DrawStdWindowFrame(windowId, FALSE); @@ -3693,3 +3696,241 @@ void sub_8017168(u8 windowId) { RemoveWindow(windowId); } + +s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate) +{ + s32 r1, r8; + struct WindowTemplate winTemplateCopy; + + switch (*arg0) + { + case 0: + winTemplateCopy = *winTemplate; + r1 = sub_81DB41C(menuTemplate); + if (winTemplateCopy.width > r1) + { + winTemplateCopy.width = r1; + } + if (winTemplateCopy.tilemapLeft + winTemplateCopy.width > 29) + { + winTemplateCopy.tilemapLeft = max(29 - winTemplateCopy.width, 0); + } + *arg1 = AddWindow(&winTemplateCopy); + DrawStdWindowFrame(*arg1, FALSE); + gMultiuseListMenuTemplate = *menuTemplate; + gMultiuseListMenuTemplate.windowId = *arg1; + *arg2 = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); + CopyWindowToVram(*arg1, TRUE); + (*arg0)++; + break; + case 1: + r8 = ListMenu_ProcessInput(*arg2); + if (({gMain.newKeys & A_BUTTON;})) + { + DestroyListMenuTask(*arg2, NULL, NULL); + ClearStdWindowAndFrame(*arg1, TRUE); + RemoveWindow(*arg1); + *arg0 = 0; + return r8; + } + else if (({gMain.newKeys & B_BUTTON;})) + { + DestroyListMenuTask(*arg2, NULL, NULL); + ClearStdWindowAndFrame(*arg1, TRUE); + RemoveWindow(*arg1); + *arg0 = 0; + return -2; + } + break; + } + + return -1; +} + +#ifdef NONMATCHING +s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6) +{ + s32 input; + s32 r4; + + switch (*arg0) + { + case 0: + *arg3 = sub_8017118(&gUnknown_082F0344); + *arg1 = AddWindow(winTemplate); + DrawStdWindowFrame(*arg1, FALSE); + gMultiuseListMenuTemplate = *menuTemplate; + gMultiuseListMenuTemplate.windowId = *arg1; + *arg2 = ListMenuInit(&gMultiuseListMenuTemplate, 0, 1); + (*arg0)++; + break; + case 1: + CopyWindowToVram(*arg1, TRUE); + (*arg0)++; + break; + case 2: + // Register swap r1 <---> r2 + input = ListMenu_ProcessInput(*arg2); + if (({gMain.newKeys & (A_BUTTON | B_BUTTON);})) + { + if (input == 8 || ({gMain.newKeys & B_BUTTON;})) + { + DestroyListMenuTask(*arg2, NULL, NULL); + RemoveWindow(*arg1); + sub_8017168(*arg3); + *arg0 = 0; + return -2; + } + else + { + r4 = sub_8017CB0(arg6); + if (r4 >= 0) + { + DestroyListMenuTask(*arg2, NULL, NULL); + RemoveWindow(*arg1); + sub_8017168(*arg3); + *arg0 = 0; + return r4; + } + else + { + PlaySE(SE_WALL_HIT); + } + } + } + break; + } + + return -1; +} +#else +NAKED +s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tadds r5, r0, 0\n" + "\tadds r6, r1, 0\n" + "\tmov r10, r2\n" + "\tmov r9, r3\n" + "\tldrb r4, [r5]\n" + "\tcmp r4, 0x1\n" + "\tbeq _0801730C\n" + "\tcmp r4, 0x1\n" + "\tbgt _080172C2\n" + "\tcmp r4, 0\n" + "\tbeq _080172C8\n" + "\tb _0801739C\n" + "_080172C2:\n" + "\tcmp r4, 0x2\n" + "\tbeq _0801731C\n" + "\tb _0801739C\n" + "_080172C8:\n" + "\tldr r0, =gUnknown_082F0344\n" + "\tbl sub_8017118\n" + "\tmov r1, r9\n" + "\tstrb r0, [r1]\n" + "\tldr r0, [sp, 0x20]\n" + "\tbl AddWindow\n" + "\tstrb r0, [r6]\n" + "\tldrb r0, [r6]\n" + "\tmovs r1, 0\n" + "\tbl DrawStdWindowFrame\n" + "\tldr r0, =gMultiuseListMenuTemplate\n" + "\tadds r2, r0, 0\n" + "\tldr r1, [sp, 0x24]\n" + "\tldm r1!, {r3,r4,r7}\n" + "\tstm r2!, {r3,r4,r7}\n" + "\tldm r1!, {r3,r4,r7}\n" + "\tstm r2!, {r3,r4,r7}\n" + "\tldrb r1, [r6]\n" + "\tstrb r1, [r0, 0x10]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0x1\n" + "\tbl ListMenuInit\n" + "\tmov r1, r10\n" + "\tstrb r0, [r1]\n" + "\tb _08017314\n" + "\t.pool\n" + "_0801730C:\n" + "\tldrb r0, [r6]\n" + "\tmovs r1, 0x1\n" + "\tbl CopyWindowToVram\n" + "_08017314:\n" + "\tldrb r0, [r5]\n" + "\tadds r0, 0x1\n" + "\tstrb r0, [r5]\n" + "\tb _0801739C\n" + "_0801731C:\n" + "\tmov r3, r10\n" + "\tldrb r0, [r3]\n" + "\tbl ListMenu_ProcessInput\n" + "\tadds r1, r0, 0\n" + "\tldr r0, =gMain\n" + "\tldrh r2, [r0, 0x2E]\n" + "\tmovs r0, 0x3\n" + "\tands r0, r2\n" + "\tcmp r0, 0\n" + "\tbeq _0801739C\n" + "\tcmp r1, 0x8\n" + "\tbeq _0801733E\n" + "\tands r4, r2\n" + "\tmov r8, r4\n" + "\tcmp r4, 0\n" + "\tbeq _08017368\n" + "_0801733E:\n" + "\tmov r4, r10\n" + "\tldrb r0, [r4]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tbl DestroyListMenuTask\n" + "\tldrb r0, [r6]\n" + "\tbl RemoveWindow\n" + "\tmov r7, r9\n" + "\tldrb r0, [r7]\n" + "\tbl sub_8017168\n" + "\tmovs r0, 0\n" + "\tstrb r0, [r5]\n" + "\tmovs r0, 0x2\n" + "\tnegs r0, r0\n" + "\tb _080173A0\n" + "\t.pool\n" + "_08017368:\n" + "\tldr r0, [sp, 0x28]\n" + "\tbl sub_8017CB0\n" + "\tadds r4, r0, 0\n" + "\tcmp r4, 0\n" + "\tblt _08017396\n" + "\tmov r1, r10\n" + "\tldrb r0, [r1]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tbl DestroyListMenuTask\n" + "\tldrb r0, [r6]\n" + "\tbl RemoveWindow\n" + "\tmov r3, r9\n" + "\tldrb r0, [r3]\n" + "\tbl sub_8017168\n" + "\tmov r7, r8\n" + "\tstrb r7, [r5]\n" + "\tadds r0, r4, 0\n" + "\tb _080173A0\n" + "_08017396:\n" + "\tmovs r0, 0x7\n" + "\tbl PlaySE\n" + "_0801739C:\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "_080173A0:\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1"); +} +#endif -- cgit v1.2.3 From aebc676913addd23a141b527b8d0b26fb5004189 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 27 Mar 2019 19:09:12 -0500 Subject: Decompile union_room_chat.c up to sub_801F5B8 --- src/new_game.c | 3 +- src/text.c | 2 +- src/union_room_chat.c | 385 +++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 381 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/new_game.c b/src/new_game.c index 97988497d..19f3461b4 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -43,9 +43,8 @@ #include "field_specials.h" #include "berry_powder.h" #include "mevent.h" +#include "union_room_chat.h" - -extern void copy_strings_to_sav1(void); extern void ResetPokeJumpResults(void); extern const u8 EventScript_ResetAllMapFlags[]; diff --git a/src/text.c b/src/text.c index be4bf2697..39912b17d 100644 --- a/src/text.c +++ b/src/text.c @@ -1601,7 +1601,7 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentX = *textPrinter->printerTemplate.currentChar + textPrinter->printerTemplate.x; textPrinter->printerTemplate.currentChar++; return 2; - case 19: + case EXT_CTRL_CODE_CLEAR_TO: { widthHelper = *textPrinter->printerTemplate.currentChar; widthHelper += textPrinter->printerTemplate.x; diff --git a/src/union_room_chat.c b/src/union_room_chat.c index f7c8be9f1..cc482d929 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -1,5 +1,7 @@ #include "global.h" #include "alloc.h" +#include "bg.h" +#include "dynamic_placeholder_text_util.h" #include "link.h" #include "link_rfu.h" #include "load_save.h" @@ -12,7 +14,9 @@ #include "sound.h" #include "sprite.h" #include "string_util.h" +#include "strings.h" #include "task.h" +#include "window.h" #include "constants/rgb.h" #include "constants/songs.h" @@ -37,13 +41,32 @@ struct UnionRoomChat u8 unk17; u8 unk18; u8 unk19; - u8 unk1A[0x9F]; + u8 unk1A[0x1F]; + u8 unk39[0x40]; + u8 unk79[0x40]; u8 unkB9[10][21]; u8 filler18B[0x5]; u8 unk190[0x28]; u16 unk1B8; }; +struct UnionRoomChat2_Unk0 +{ + int (* unk0)(u8 *); + u8 unk4; + u8 unk5; +}; + +struct UnionRoomChat2 +{ + struct UnionRoomChat2_Unk0 unk0[3]; + u16 unk18; + u16 unk1A; + u8 filler1C[0x2]; + u16 unk1E; + u8 filler20[0x2148]; +}; + static void sub_801DDD0(struct UnionRoomChat *); static void c2_081284E0(void); static void sub_801DF20(void); @@ -77,19 +100,28 @@ static void sub_801EF7C(u8 *); static void sub_801EFA8(u8 *); static void sub_801EFD0(u8 *); u8 *sub_801F114(void); -void sub_801F2B4(u8 taskId); -bool8 sub_801F4D0(void); -int sub_801F534(void); -void sub_801F544(void); -void sub_801F5B8(void); +static void sub_801F2B4(u8 taskId); +static bool8 sub_801F4D0(void); +static bool32 sub_801F534(void); +static void sub_801F544(void); +static void sub_801F5B8(void); void sub_801F5EC(u16, u8); bool8 sub_801F644(u8); s8 sub_801FF08(void); +bool32 sub_8020890(void); +void sub_8020770(void); +static void sub_801F574(struct UnionRoomChat2 *); +static void sub_801F580(void); +void sub_80208D0(void); +int sub_801FDD8(u8 *); extern struct UnionRoomChat *gUnknown_02022C84; +extern struct UnionRoomChat2 *gUnknown_02022C88; extern const u8 *const gUnknown_082F2BA8[][10]; extern const u8 gUnknown_082F2AA8[]; +extern const struct BgTemplate gUnknown_082F2C60[4]; +extern const struct WindowTemplate gUnknown_082F2C70[]; void sub_801DD98(void) @@ -1070,3 +1102,344 @@ static void sub_801EFD0(u8 *arg0) StringCopy(&arg0[1], gSaveBlock2Ptr->playerName); arg0[1 + (PLAYER_NAME_LENGTH + 1)] = gUnknown_02022C84->unk13; } + +bool32 sub_801EFF8(u8 *arg0, u8 *arg1) +{ + u8 *tempStr; + u8 var0 = *arg1; + u8 *str = arg1 + 1; + arg1 = str; + arg1 += 8; + + switch (var0) + { + case 2: + if (gUnknown_02022C84->unk13 != str[8]) + { + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, str); + DynamicPlaceholderTextUtil_ExpandPlaceholders(arg0, gText_F700JoinedChat); + return TRUE; + } + break; + case 1: + tempStr = StringCopy(arg0, str); + *(tempStr++) = EXT_CTRL_CODE_BEGIN; + *(tempStr++) = EXT_CTRL_CODE_CLEAR_TO; + *(tempStr++) = 42; + *(tempStr++) = CHAR_COLON; + StringCopy(tempStr, arg1); + return TRUE; + case 5: + StringCopy(gUnknown_02022C84->unk79, str); + // fall through + case 3: + if (gUnknown_02022C84->unk13 != *arg1) + { + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, str); + DynamicPlaceholderTextUtil_ExpandPlaceholders(arg0, gText_F700LeftChat); + return TRUE; + } + break; + } + + return FALSE; +} + +u8 sub_801F0B0(void) +{ + return gUnknown_02022C84->unk10; +} + +void sub_801F0BC(u8 *arg0, u8 *arg1) +{ + *arg0 = gUnknown_02022C84->unk11; + *arg1 = gUnknown_02022C84->unk12; +} + +u8 *sub_801F0D0(void) +{ + return gUnknown_02022C84->unk1A; +} + +int sub_801F0DC(void) +{ + u8 *str = sub_801F0D0(); + return StringLength_Multibyte(str); +} + +void sub_801F0EC(int *arg0, int *arg1) +{ + int diff = gUnknown_02022C84->unk15 - gUnknown_02022C84->unk14; + if (diff < 0) + { + diff *= -1; + *arg0 = gUnknown_02022C84->unk15; + } + else + { + *arg0 = gUnknown_02022C84->unk14; + } + + *arg1 = diff; +} + +u8 *sub_801F114(void) +{ + int i; + u16 numChars = sub_801EED8(); + u8 *str = gUnknown_02022C84->unk1A; + for (i = 0; i < numChars; i++) + { + if (*str == CHAR_SPECIAL_F9) + *str++; + + str++; + } + + return str; +} + +u16 sub_801F144(void) +{ + u16 count; + u32 i; + u16 numChars = sub_801EED8(); + u8 *str = gUnknown_02022C84->unk1A; + for (count = 0, i = 0; i < numChars; count++, i++) + { + if (*str == CHAR_SPECIAL_F9) + str++; + + str++; + } + + return count; +} + +u8 *sub_801F180(void) +{ + return gUnknown_02022C84->unk39; +} + +u8 sub_801F18C(void) +{ + return gUnknown_02022C84->unk16; +} + +int sub_801F198(void) +{ + return gUnknown_02022C84->unk15; +} + +int sub_801F1A4(void) +{ + u8 *str = sub_801EEA8(); + u32 character = *str; + if (character > 0xFF || gUnknown_082F2AA8[character] == character || gUnknown_082F2AA8[character] == 0) + return 3; + else + return 0; +} + +u8 *sub_801F1D0(void) +{ + return gUnknown_02022C84->unk79; +} + +void copy_strings_to_sav1(void) +{ + StringCopy(gSaveBlock1Ptr->unk3C88[0], gText_Hello); + StringCopy(gSaveBlock1Ptr->unk3C88[1], gText_Pokemon2); + StringCopy(gSaveBlock1Ptr->unk3C88[2], gText_Trade); + StringCopy(gSaveBlock1Ptr->unk3C88[3], gText_Battle); + StringCopy(gSaveBlock1Ptr->unk3C88[4], gText_Lets); + StringCopy(gSaveBlock1Ptr->unk3C88[5], gText_Ok); + StringCopy(gSaveBlock1Ptr->unk3C88[6], gText_Sorry); + StringCopy(gSaveBlock1Ptr->unk3C88[7], gText_YayUnkF9F9); + StringCopy(gSaveBlock1Ptr->unk3C88[8], gText_ThankYou); + StringCopy(gSaveBlock1Ptr->unk3C88[9], gText_ByeBye); +} + +static void sub_801F2B4(u8 taskId) +{ + u8 *buffer; + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + if (!gReceivedRemoteLinkPlayers) + { + DestroyTask(taskId); + return; + } + + data[0] = 1; + // fall through + case 1: + data[4] = GetLinkPlayerCount(); + if (gUnknown_02022C84->unkD != data[4]) + { + data[0] = 2; + gUnknown_02022C84->unkD = data[4]; + return; + } + + data[3] = GetBlockReceivedStatus(); + if (!data[3] && sub_8011A9C()) + return; + + data[1] = 0; + data[0] = 3; + // fall through + case 3: + for (; data[1] < 5 && ((data[3] >> data[1]) & 1) == 0; data[1]++) + ; + + if (data[1] == 5) + { + data[0] = 1; + return; + } + + data[2] = data[1]; + ResetBlockReceivedFlag(data[2]); + buffer = (u8 *)gBlockRecvBuffer[data[1]]; + switch (buffer[0]) + { + default: + case 1: data[5] = 3; break; + case 2: data[5] = 3; break; + case 3: data[5] = 4; break; + case 4: data[5] = 5; break; + case 5: data[5] = 6; break; + } + + if (sub_801EFF8(gUnknown_02022C84->unk39, (u8 *)gBlockRecvBuffer[data[1]])) + { + gUnknown_02022C84->unk16 = data[1]; + sub_801F5EC(12, 2); + data[0] = 7; + } + else + { + data[0] = data[5]; + } + + data[1]++; + break; + case 7: + if (!sub_801F644(2)) + data[0] = data[5]; + break; + case 4: + if (!gUnknown_02022C84->unk13 && data[2]) + { + if (GetLinkPlayerCount() == 2) + { + sub_80104B0(); + gUnknown_02022C84->unk17 = 1; + DestroyTask(taskId); + return; + } + + sub_8011DE0(data[2]); + } + + data[0] = 3; + break; + case 5: + if (gUnknown_02022C84->unk13) + gUnknown_02022C84->unk17 = 2; + + DestroyTask(taskId); + break; + case 6: + gUnknown_02022C84->unk17 = 3; + DestroyTask(taskId); + break; + case 2: + if (!sub_8011A9C()) + { + if (!gUnknown_02022C84->unk13) + sub_80110B8(gUnknown_02022C84->unkD); + + data[0] = 1; + } + break; + } +} + +static bool8 sub_801F4D0(void) +{ + gUnknown_02022C88 = Alloc(sizeof(*gUnknown_02022C88)); + if (gUnknown_02022C88 && sub_8020890()) + { + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_082F2C60, ARRAY_COUNT(gUnknown_082F2C60)); + InitWindows(gUnknown_082F2C70); + reset_temp_tile_data_buffers(); + sub_8020770(); + sub_801F574(gUnknown_02022C88); + sub_801F580(); + sub_801F5EC(0, 0); + return TRUE; + } + else + { + return FALSE; + } +} + +static bool32 sub_801F534(void) +{ + return sub_801F644(0); +} + +static void sub_801F544(void) +{ + sub_80208D0(); + if (gUnknown_02022C88) + FREE_AND_SET_NULL(gUnknown_02022C88); + + FreeAllWindowBuffers(); + gScanlineEffect.state = 3; +} + +static void sub_801F574(struct UnionRoomChat2 *arg0) +{ + arg0->unk18 = 0xFF; + arg0->unk1E = 0xFF; + arg0->unk1A = 0; +} + +static void sub_801F580(void) +{ + int i; + + if (!gUnknown_02022C88) + return; + + for (i = 0; i < 3; i++) + { + gUnknown_02022C88->unk0[i].unk0 = sub_801FDD8; + gUnknown_02022C88->unk0[i].unk4 = 0; + gUnknown_02022C88->unk0[i].unk5 = 0; + } +} + +static void sub_801F5B8(void) +{ + int i; + + if (!gUnknown_02022C88) + return; + + for (i = 0; i < 3; i++) + { + gUnknown_02022C88->unk0[i].unk4 = + gUnknown_02022C88->unk0[i].unk0(&gUnknown_02022C88->unk0[i].unk5); + } +} -- cgit v1.2.3 From 7c45a7c443fc5fcc0cf254527049004e14724150 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 26 Mar 2019 23:41:05 -0400 Subject: port mevent_801BAAC from fire red --- src/mevent_801BAAC.c | 804 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 804 insertions(+) create mode 100644 src/mevent_801BAAC.c (limited to 'src') diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c new file mode 100644 index 000000000..0514f8e54 --- /dev/null +++ b/src/mevent_801BAAC.c @@ -0,0 +1,804 @@ +#include "global.h" +#include "constants/species.h" +#include "bg.h" +#include "gpu_regs.h" +#include "palette.h" +#include "decompress.h" +#include "alloc.h" +#include "menu.h" +#include "pokemon_icon.h" +#include "union_room.h" +#include "list_menu.h" +#include "text_window.h" +#include "string_util.h" +#include "link_rfu.h" +#include "mevent.h" + +struct UnkStruct_8467FB8 +{ + u8 textPal1:4; + u8 textPal2:4; + u8 textPal3:4; + u8 textPal4:4; + const u32 * tiles; + const u32 * map; + const u16 * pal; +}; + +struct UnkStruct_203F3C8_02DC +{ + u8 unk_00; + u8 unk_01[41]; + u8 unk_42[4]; +}; + +struct UnkStruct_203F3C8 +{ + /*0000*/ struct MEventBuffer_32E0_Sub unk_0000; + /*014c*/ struct MEventBuffer_3430_Sub unk_014C; + /*0170*/ const struct UnkStruct_8467FB8 * unk_0170; + /*0174*/ u8 unk_0174; + /*0175*/ u8 unk_0175; + /*0176*/ u16 unk_0176[3]; + /*017C*/ u8 unk_017C; + /*017D*/ u8 unk_017D[7][2]; + /*018B*/ u8 unk_018B[41]; + /*01B4*/ u8 unk_01B4[41]; + /*01DD*/ u8 unk_01DD[7]; + /*01E4*/ u8 unk_01E4[4][41]; + /*0288*/ u8 unk_0288[41]; + /*02B1*/ u8 unk_02B1[41]; + /*02DC*/ struct UnkStruct_203F3C8_02DC unk_02DC[8]; + /*045C*/ u8 buffer_045C[0x1000]; +}; + +EWRAM_DATA struct UnkStruct_203F3C8 * gUnknown_02022C74 = NULL; + +void sub_801BEF8(void); +void sub_801C178(u8 whichWindow); +void sub_801C4C0(void); +void sub_801C61C(void); + +extern const struct OamData gUnknown_08524934; + +const u8 gUnknown_082F0E10[][3] = { + {0, 2, 3}, + {0, 1, 2} +}; +const u8 ALIGNED(4) gUnknown_082F0E18[3] = {7, 4, 7}; +const struct WindowTemplate gUnknown_082F0E1C[] = { + {0x01, 0x01, 0x01, 0x19, 0x04, 0x02, 0x029c}, + {0x01, 0x01, 0x06, 0x1c, 0x08, 0x02, 0x01bc}, + {0x01, 0x01, 0x0e, 0x1c, 0x05, 0x02, 0x0130} +}; + +const u16 gWonderCardBgPal1[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_1.gbapal"); +const u16 gWonderCardBgPal2[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_2.gbapal"); +const u16 gWonderCardBgPal3[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_3.gbapal"); +const u16 gWonderCardBgPal4[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_4.gbapal"); +const u16 gWonderCardBgPal5[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_5.gbapal"); +const u16 gWonderCardBgPal6[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_6.gbapal"); +const u16 gWonderCardBgPal7[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_7.gbapal"); +const u16 gWonderCardBgPal8[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_8.gbapal"); +const u32 gWonderCardBgGfx1[] = INCBIN_U32("graphics/wonder_transfers/wonder_card_1.4bpp.lz"); +const u32 gWonderCardBgTilemap1[] = INCBIN_U32("graphics/wonder_transfers/wonder_card_1.bin.lz"); +const u32 gWonderCardBgGfx2[] = INCBIN_U32("graphics/wonder_transfers/wonder_card_2.4bpp.lz"); +const u32 gWonderCardBgTilemap2[] = INCBIN_U32("graphics/wonder_transfers/wonder_card_2.bin.lz"); +const u32 gWonderCardBgGfx3[] = INCBIN_U32("graphics/wonder_transfers/wonder_card_3.4bpp.lz"); +const u32 gWonderCardBgTilemap3[] = INCBIN_U32("graphics/wonder_transfers/wonder_card_3.bin.lz"); +const u32 gWonderCardBgGfx7[] = INCBIN_U32("graphics/wonder_transfers/wonder_card_7.4bpp.lz"); +const u32 gWonderCardBgTilemap7[] = INCBIN_U32("graphics/wonder_transfers/wonder_card_7.bin.lz"); +const u32 gWonderCardBgGfx8[] = INCBIN_U32("graphics/wonder_transfers/wonder_card_8.4bpp.lz"); +const u32 gWonderCardBgTilemap8[] = INCBIN_U32("graphics/wonder_transfers/wonder_card_8.bin.lz"); +const u16 gWonderCardShadowPal1[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_shadow_1.gbapal"); +const u16 gWonderCardShadowPal2[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_shadow_2.gbapal"); +const u16 gWonderCardShadowPal3[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_shadow_3.gbapal"); +const u16 gWonderCardShadowPal4[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_shadow_4.gbapal"); +const u16 gWonderCardShadowPal5[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_shadow_5.gbapal"); +const u16 gWonderCardShadowPal6[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_shadow_6.gbapal"); +const u16 gWonderCardShadowPal7[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_shadow_7.gbapal"); +const u16 gWonderCardShadowPal8[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_shadow_8.gbapal"); +const u32 gWonderCardShadowGfx[] = INCBIN_U32("graphics/wonder_transfers/wonder_card_shadow.4bpp.lz"); + +const struct CompressedSpriteSheet gUnknown_082F1D00 = { + gWonderCardShadowGfx, 0x100, 0x8000 +}; +const struct SpritePalette gUnknown_082F1D08[] = { + {gWonderCardShadowPal1, 0x8000}, + {gWonderCardShadowPal2, 0x8000}, + {gWonderCardShadowPal3, 0x8000}, + {gWonderCardShadowPal4, 0x8000}, + {gWonderCardShadowPal5, 0x8000}, + {gWonderCardShadowPal6, 0x8000}, + {gWonderCardShadowPal7, 0x8000}, + {gWonderCardShadowPal8, 0x8000} +}; +const struct SpriteTemplate gUnknown_082F1D48 = { + 0x8000, 0x8000, &gUnknown_08524934, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; +const struct UnkStruct_8467FB8 gUnknown_082F1D60[8] = { + {1, 0, 0, 0, gWonderCardBgGfx1, gWonderCardBgTilemap1, gWonderCardBgPal1}, + {1, 0, 0, 1, gWonderCardBgGfx2, gWonderCardBgTilemap2, gWonderCardBgPal2}, + {1, 0, 0, 2, gWonderCardBgGfx3, gWonderCardBgTilemap3, gWonderCardBgPal3}, + {1, 0, 0, 3, gWonderCardBgGfx3, gWonderCardBgTilemap3, gWonderCardBgPal4}, + {1, 0, 0, 4, gWonderCardBgGfx3, gWonderCardBgTilemap3, gWonderCardBgPal5}, + {1, 0, 0, 5, gWonderCardBgGfx3, gWonderCardBgTilemap3, gWonderCardBgPal6}, + {1, 0, 0, 6, gWonderCardBgGfx7, gWonderCardBgTilemap7, gWonderCardBgPal7}, + {1, 0, 0, 7, gWonderCardBgGfx8, gWonderCardBgTilemap8, gWonderCardBgPal8} +}; + +bool32 sub_801BAAC(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6) +{ + if (r5 == NULL || r6 == NULL) + return FALSE; + gUnknown_02022C74 = AllocZeroed(sizeof(struct UnkStruct_203F3C8)); + if (gUnknown_02022C74 == NULL) + return FALSE; + gUnknown_02022C74->unk_0000 = *r5; + gUnknown_02022C74->unk_014C = *r6; + if (gUnknown_02022C74->unk_0000.unk_08_2 >= ARRAY_COUNT(gUnknown_082F1D60)) + gUnknown_02022C74->unk_0000.unk_08_2 = 0; + if (gUnknown_02022C74->unk_0000.unk_08_0 >= ARRAY_COUNT(gUnknown_082F0E18)) + gUnknown_02022C74->unk_0000.unk_08_0 = 0; + if (gUnknown_02022C74->unk_0000.unk_09 > ARRAY_COUNT(gUnknown_02022C74->unk_017D)) + gUnknown_02022C74->unk_0000.unk_09 = 0; + gUnknown_02022C74->unk_0170 = &gUnknown_082F1D60[gUnknown_02022C74->unk_0000.unk_08_2]; + return TRUE; +} + +void sub_801BB48(void) +{ + if (gUnknown_02022C74 != NULL) + { + *gUnknown_02022C74 = (struct UnkStruct_203F3C8){}; + Free(gUnknown_02022C74); + gUnknown_02022C74 = NULL; + } +} + +s32 sub_801BB74(void) +{ + if (gUnknown_02022C74 == NULL) + return -1; + switch(gUnknown_02022C74->unk_0174) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + break; + case 1: + if (UpdatePaletteFade()) + return 0; + break; + case 2: + FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + decompress_and_copy_tile_data_to_vram(2, gUnknown_02022C74->unk_0170->tiles, 0, 0x008, 0); + gUnknown_02022C74->unk_0176[0] = AddWindow(&gUnknown_082F0E1C[0]); + gUnknown_02022C74->unk_0176[1] = AddWindow(&gUnknown_082F0E1C[1]); + gUnknown_02022C74->unk_0176[2] = AddWindow(&gUnknown_082F0E1C[2]); + break; + case 3: + if (free_temp_tile_data_buffers_if_possible()) + return 0; + LoadPalette(stdpal_get(1), 0x20, 0x20); + gPaletteFade.bufferTransferDisabled = TRUE; + LoadPalette(gUnknown_02022C74->unk_0170->pal, 0x10, 0x20); + LZ77UnCompWram(gUnknown_02022C74->unk_0170->map, gUnknown_02022C74->buffer_045C); + CopyRectToBgTilemapBufferRect(2, gUnknown_02022C74->buffer_045C, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0); + CopyBgTilemapBufferToVram(2); + break; + case 4: + sub_801BEF8(); + break; + case 5: + sub_801C178(0); + sub_801C178(1); + sub_801C178(2); + CopyBgTilemapBufferToVram(1); + break; + case 6: + LoadMonIconPalettes(); + break; + case 7: + ShowBg(1); + ShowBg(2); + gPaletteFade.bufferTransferDisabled = FALSE; + sub_801C4C0(); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + UpdatePaletteFade(); + break; + default: + if (UpdatePaletteFade()) + return 0; + gUnknown_02022C74->unk_0174 = 0; + return 1; + } + ++gUnknown_02022C74->unk_0174; + return 0; +} + +s32 sub_801BDA4(bool32 flag) +{ + if (gUnknown_02022C74 == NULL) + return -1; + switch (gUnknown_02022C74->unk_0174) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + break; + case 1: + if (UpdatePaletteFade()) + return 0; + break; + case 2: + FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + break; + case 3: + HideBg(1); + HideBg(2); + RemoveWindow(gUnknown_02022C74->unk_0176[2]); + RemoveWindow(gUnknown_02022C74->unk_0176[1]); + RemoveWindow(gUnknown_02022C74->unk_0176[0]); + break; + case 4: + sub_801C61C(); + FreeMonIconPalettes(); + break; + case 5: + sub_80186EC(gUnknown_02022C60, flag); + CopyBgTilemapBufferToVram(0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + break; + default: + if (UpdatePaletteFade()) + return 0; + gUnknown_02022C74->unk_0174 = 0; + return 1; + } + ++gUnknown_02022C74->unk_0174; + return 0; +} + +void sub_801BEF8(void) +{ + u16 i = 0; + u16 r6; + u16 sp0[3] = {0, 0, 0}; + + memcpy(gUnknown_02022C74->unk_018B, gUnknown_02022C74->unk_0000.unk_0A, 40); + gUnknown_02022C74->unk_018B[40] = EOS; + memcpy(gUnknown_02022C74->unk_01B4, gUnknown_02022C74->unk_0000.unk_32, 40); + gUnknown_02022C74->unk_01B4[40] = EOS; + if (gUnknown_02022C74->unk_0000.unk_04 > 999999) + gUnknown_02022C74->unk_0000.unk_04 = 999999; + ConvertIntToDecimalStringN(gUnknown_02022C74->unk_01DD, gUnknown_02022C74->unk_0000.unk_04, STR_CONV_MODE_LEFT_ALIGN, 6); + for (i = 0; i < 4; i++) + { + memcpy(gUnknown_02022C74->unk_01E4[i], gUnknown_02022C74->unk_0000.unk_5A[i], 40); + gUnknown_02022C74->unk_01E4[i][40] = EOS; + } + memcpy(gUnknown_02022C74->unk_0288, gUnknown_02022C74->unk_0000.unk_FA, 40); + gUnknown_02022C74->unk_0288[40] = EOS; + switch (gUnknown_02022C74->unk_0000.unk_08_0) + { + case 0: + memcpy(gUnknown_02022C74->unk_02B1, gUnknown_02022C74->unk_0000.unk_122, 40); + gUnknown_02022C74->unk_02B1[40] = EOS; + break; + case 1: + gUnknown_02022C74->unk_02B1[00] = EOS; + break; + case 2: + gUnknown_02022C74->unk_02B1[00] = EOS; + sp0[0] = gUnknown_02022C74->unk_014C.unk_00 < 999 ? gUnknown_02022C74->unk_014C.unk_00 : 999; + sp0[1] = gUnknown_02022C74->unk_014C.unk_02 < 999 ? gUnknown_02022C74->unk_014C.unk_02 : 999; + sp0[2] = gUnknown_02022C74->unk_014C.unk_04 < 999 ? gUnknown_02022C74->unk_014C.unk_04 : 999; + for (i = 0; i < 8; i++) + { + memset(gUnknown_02022C74->unk_02DC[i].unk_42, EOS, 4); + memset(gUnknown_02022C74->unk_02DC[i].unk_01, EOS, 41); + } + for (i = 0, r6 = 0; i < 40; i++) + { + if (gUnknown_02022C74->unk_0000.unk_122[i] != 0xF7) + { + gUnknown_02022C74->unk_02DC[gUnknown_02022C74->unk_0175].unk_01[r6] = gUnknown_02022C74->unk_0000.unk_122[i]; + r6++; + } + else + { + u8 r3 = gUnknown_02022C74->unk_0000.unk_122[i + 1]; + if (r3 > 2) + { + i += 2; + } + else + { + ConvertIntToDecimalStringN(gUnknown_02022C74->unk_02DC[gUnknown_02022C74->unk_0175].unk_42, sp0[r3], STR_CONV_MODE_LEADING_ZEROS, 3); + gUnknown_02022C74->unk_02DC[gUnknown_02022C74->unk_0175].unk_00 = gUnknown_02022C74->unk_0000.unk_122[i + 2]; + gUnknown_02022C74->unk_0175++; + if (gUnknown_02022C74->unk_0175 > 7) + break; + r6 = 0; + i += 2; + } + } + } + } +} + +void sub_801C178(u8 whichWindow) +{ + s8 sp0C = 0; + s32 windowId = gUnknown_02022C74->unk_0176[whichWindow]; + PutWindowTilemap(windowId); + FillWindowPixelBuffer(windowId, 0); + switch (whichWindow) + { + case 0: + { + s32 x; + AddTextPrinterParameterized3(windowId, 3, 0, 1, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal1], 0, gUnknown_02022C74->unk_018B); + x = 160 - GetStringWidth(3, gUnknown_02022C74->unk_01B4, GetFontAttribute(3, 2)); + if (x < 0) + x = 0; + AddTextPrinterParameterized3(windowId, 3, x, 17, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal1], 0, gUnknown_02022C74->unk_01B4); + if (gUnknown_02022C74->unk_0000.unk_04 != 0) + { + AddTextPrinterParameterized3(windowId, 1, 166, 17, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal1], 0, gUnknown_02022C74->unk_01DD); + } + break; + } + case 1: + for (; sp0C < 4; sp0C++) + { + AddTextPrinterParameterized3(windowId, 3, 0, 16 * sp0C + 2, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal2], 0, gUnknown_02022C74->unk_01E4[sp0C]); + } + break; + case 2: + AddTextPrinterParameterized3(windowId, 3, 0, gUnknown_082F0E18[gUnknown_02022C74->unk_0000.unk_08_0], gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_0288); + if (gUnknown_02022C74->unk_0000.unk_08_0 != 2) + { + AddTextPrinterParameterized3(windowId, 3, 0, 16 + gUnknown_082F0E18[gUnknown_02022C74->unk_0000.unk_08_0], gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_02B1); + } + else + { + s32 x = 0; + s32 y = gUnknown_082F0E18[gUnknown_02022C74->unk_0000.unk_08_0] + 16; + s32 spacing = GetFontAttribute(3, 2); + for (; sp0C < gUnknown_02022C74->unk_0175; sp0C++) + { + AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_02DC[sp0C].unk_01); + if (gUnknown_02022C74->unk_02DC[sp0C].unk_42[0] != EOS) + { + x += GetStringWidth(3, gUnknown_02022C74->unk_02DC[sp0C].unk_01, spacing); + AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_02DC[sp0C].unk_42); + x += GetStringWidth(3, gUnknown_02022C74->unk_02DC[sp0C].unk_42, spacing) + gUnknown_02022C74->unk_02DC[sp0C].unk_00; + } + } + } + break; + } + CopyWindowToVram(windowId, 3); +} + +void sub_801C4C0(void) +{ + u8 r7 = 0; + gUnknown_02022C74->unk_017C = 0xFF; + if (gUnknown_02022C74->unk_014C.unk_06 != SPECIES_NONE) + { + gUnknown_02022C74->unk_017C = sub_80D2D78(sub_80D2E84(gUnknown_02022C74->unk_014C.unk_06), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE); + gSprites[gUnknown_02022C74->unk_017C].oam.priority = 2; + } + if (gUnknown_02022C74->unk_0000.unk_09 != 0 && gUnknown_02022C74->unk_0000.unk_08_0 == 1) + { + LoadCompressedSpriteSheetUsingHeap(&gUnknown_082F1D00); + LoadSpritePalette(&gUnknown_082F1D08[gUnknown_02022C74->unk_0170->textPal4]); + for (; r7 < gUnknown_02022C74->unk_0000.unk_09; r7++) + { + gUnknown_02022C74->unk_017D[r7][0] = 0xFF; + gUnknown_02022C74->unk_017D[r7][1] = 0xFF; + gUnknown_02022C74->unk_017D[r7][0] = CreateSprite(&gUnknown_082F1D48, 0xd8 - 32 * r7, 0x90, 8); + if (gUnknown_02022C74->unk_014C.unk_08[0][r7] != 0) + { + gUnknown_02022C74->unk_017D[r7][1] = sub_80D2D78(sub_80D2E84(gUnknown_02022C74->unk_014C.unk_08[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0); + } + } + } +} + +void sub_801C61C(void) +{ + u8 r6 = 0; + if (gUnknown_02022C74->unk_017C != 0xFF) + sub_80D2EF8(&gSprites[gUnknown_02022C74->unk_017C]); + if (gUnknown_02022C74->unk_0000.unk_09 != 0 && gUnknown_02022C74->unk_0000.unk_08_0 == 1) + { + for (; r6 < gUnknown_02022C74->unk_0000.unk_09; r6++) + { + if (gUnknown_02022C74->unk_017D[r6][0] != 0xFF) + { + DestroySprite(&gSprites[gUnknown_02022C74->unk_017D[r6][0]]); + } + if (gUnknown_02022C74->unk_017D[r6][1] != 0xFF) + { + sub_80D2EF8(&gSprites[gUnknown_02022C74->unk_017D[r6][1]]); + } + } + FreeSpriteTilesByTag(0x8000); + FreeSpritePaletteByTag(0x8000); + } +} + +struct UnkStruct_203F3CC +{ + /*0000*/ struct MEventBuffer_3120_Sub unk_0000; + /*01bc*/ const struct UnkStruct_8467FB8 * unk_01BC; + /*01c0*/ u8 unk_01C0_0:1; + u8 unk_01C0_1:7; + /*01c1*/ u8 unk_01C1; + /*01c2*/ u8 unk_01C2_0:1; + u8 unk_01C2_1:7; + /*01c3*/ u8 unk_01C3_0:1; + u8 unk_01C3_1:7; + /*01c4*/ u16 unk_01C4; + /*01c6*/ u16 unk_01C6; + /*01c8*/ u16 unk_01C8[2]; + /*01cc*/ u8 filler_01CC[2]; + /*01ce*/ u8 unk_01CE[41]; + /*01f7*/ u8 unk_01F7[10][41]; + /*0394*/ struct ScrollArrowsTemplate unk_0394; + /*03a4*/ u8 buffer_03A4[0x1000]; +}; + +EWRAM_DATA struct UnkStruct_203F3CC * gUnknown_02022C78 = NULL; + +void sub_801CDCC(void); +void sub_801CE7C(void); +void sub_801CFA4(void); + +const u8 gUnknown_082F1DE0[][3] = { + {0, 2, 3}, + {0, 1, 2} +}; +const struct WindowTemplate gUnknown_082F1DE8[] = { + {0, 1, 0, 28, 3, 2, 0x2AC}, + {2, 1, 3, 28, 20, 2, 0x07C} +}; +const struct ScrollArrowsTemplate gUnknown_082F1DF8 = { + 0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98, + 0x0000, 0x0002, 0x1000, 0x1000, 0x0 +}; +const u16 gWonderNewsPal1[] = INCBIN_U16("graphics/wonder_transfers/wonder_news_1.gbapal"); +const u16 gWonderNewsPal7[] = INCBIN_U16("graphics/wonder_transfers/wonder_news_7.gbapal"); +const u16 gWonderNewsPal8[] = INCBIN_U16("graphics/wonder_transfers/wonder_news_8.gbapal"); +const u32 gWonderNewsGfx1[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_1.4bpp.lz"); +const u32 gWonderNewsTilemap1[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_1.bin.lz"); +const u32 gWonderNewsGfx2[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_2.4bpp.lz"); +const u32 gWonderNewsTilemap2[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_2.bin.lz"); +const u32 gWonderNewsGfx3[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_3.4bpp.lz"); +const u32 gWonderNewsTilemap3[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_3.bin.lz"); +const u32 gWonderNewsGfx7[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_7.4bpp.lz"); +const u32 gWonderNewsTilemap7[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_7.bin.lz"); +const u32 gWonderNewsGfx8[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_8.4bpp.lz"); +const u32 gWonderNewsTilemap8[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_8.bin.lz"); + +/* +const u16 gWonderNewsPal1[] = INCBIN_U16("data/graphics/mevent/pal_468060.gbapal"); +const u16 gWonderNewsPal7[] = INCBIN_U16("data/graphics/mevent/pal_468080.gbapal"); +const u16 gWonderNewsPal8[] = INCBIN_U16("data/graphics/mevent/pal_4680A0.gbapal"); +const u32 gWonderNewsGfx1[] = INCBIN_U32("data/graphics/mevent/gfx_4680C0.4bpp.lz"); +const u32 gWonderNewsTilemap1[] = INCBIN_U32("data/graphics/mevent/tilemap_468140.bin.lz"); +const u32 gWonderNewsGfx2[] = INCBIN_U32("data/graphics/mevent/gfx_46821C.4bpp.lz"); +const u32 gWonderNewsTilemap2[] = INCBIN_U32("data/graphics/mevent/tilemap_46824C.bin.lz"); +const u32 gWonderNewsGfx3[] = INCBIN_U32("data/graphics/mevent/gfx_46830C.4bpp.lz"); +const u32 gWonderNewsTilemap3[] = INCBIN_U32("data/graphics/mevent/tilemap_46837C.bin.lz"); +const u32 gWonderNewsGfx7[] = INCBIN_U32("data/graphics/mevent/gfx_468448.4bpp.lz"); +const u32 gWonderNewsTilemap7[] = INCBIN_U32("data/graphics/mevent/tilemap_4684D8.bin.lz"); +const u32 gWonderNewsGfx8[] = INCBIN_U32("data/graphics/mevent/gfx_4685B4.4bpp.lz"); +const u32 gWonderNewsTilemap8[] = INCBIN_U32("data/graphics/mevent/tilemap_468644.bin.lz"); +*/ + +const struct UnkStruct_8467FB8 gUnknown_082F24C8[] = { + {1, 0, 0, 0, gWonderNewsGfx1, gWonderNewsTilemap1, gWonderNewsPal1}, + {1, 0, 0, 0, gWonderNewsGfx2, gWonderNewsTilemap2, gWonderCardBgPal2}, + {1, 0, 0, 0, gWonderNewsGfx3, gWonderNewsTilemap3, gWonderCardBgPal3}, + {1, 0, 0, 0, gWonderNewsGfx3, gWonderNewsTilemap3, gWonderCardBgPal4}, + {1, 0, 0, 0, gWonderNewsGfx3, gWonderNewsTilemap3, gWonderCardBgPal5}, + {1, 0, 0, 0, gWonderNewsGfx3, gWonderNewsTilemap3, gWonderCardBgPal6}, + {1, 0, 0, 0, gWonderNewsGfx7, gWonderNewsTilemap7, gWonderNewsPal7}, + {1, 0, 0, 0, gWonderNewsGfx8, gWonderNewsTilemap8, gWonderNewsPal8} +}; + +bool32 sub_801C6C8(const struct MEventBuffer_3120_Sub * a0) +{ + if (a0 == NULL) + return FALSE; + gUnknown_02022C78 = AllocZeroed(sizeof(struct UnkStruct_203F3CC)); + if (gUnknown_02022C78 == NULL) + return FALSE; + gUnknown_02022C78->unk_0000 = *a0; + if (gUnknown_02022C78->unk_0000.unk_03 >= ARRAY_COUNT(gUnknown_082F24C8)) + gUnknown_02022C78->unk_0000.unk_03 = 0; + gUnknown_02022C78->unk_01BC = &gUnknown_082F24C8[gUnknown_02022C78->unk_0000.unk_03]; + gUnknown_02022C78->unk_01C1 = 0xFF; + return TRUE; +} + +void sub_801C72C(void) +{ + if (gUnknown_02022C78 != NULL) + { + *gUnknown_02022C78 = (struct UnkStruct_203F3CC){}; + Free(gUnknown_02022C78); + gUnknown_02022C78 = NULL; + } +} + +s32 sub_801C758(void) +{ + if (gUnknown_02022C78 == NULL) + return -1; + + switch (gUnknown_02022C78->unk_01C0_1) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + break; + case 1: + if (UpdatePaletteFade()) + return 0; + ChangeBgY(0, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgY(3, 0, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0xF0); + SetGpuReg(REG_OFFSET_WIN0V, 0x1A98); + SetGpuReg(REG_OFFSET_WININ, 0x1F); + SetGpuReg(REG_OFFSET_WINOUT, 0x1B); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + break; + case 2: + FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(3, 0x000, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(3); + decompress_and_copy_tile_data_to_vram(3, gUnknown_02022C78->unk_01BC->tiles, 0, 8, 0); + gUnknown_02022C78->unk_01C8[0] = AddWindow(&gUnknown_082F1DE8[0]); + gUnknown_02022C78->unk_01C8[1] = AddWindow(&gUnknown_082F1DE8[1]); + break; + case 3: + if (free_temp_tile_data_buffers_if_possible()) + return 0; + LoadPalette(stdpal_get(1), 0x20, 0x20); + gPaletteFade.bufferTransferDisabled = TRUE; + LoadPalette(gUnknown_02022C78->unk_01BC->pal, 0x10, 0x20); + LZ77UnCompWram(gUnknown_02022C78->unk_01BC->map, gUnknown_02022C78->buffer_03A4); + CopyRectToBgTilemapBufferRect(1, gUnknown_02022C78->buffer_03A4, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0); + CopyRectToBgTilemapBufferRect(3, gUnknown_02022C78->buffer_03A4, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(3); + break; + case 4: + sub_801CDCC(); + break; + case 5: + sub_801CE7C(); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(2); + break; + case 6: + ShowBg(1); + ShowBg(2); + ShowBg(3); + gPaletteFade.bufferTransferDisabled = FALSE; + gUnknown_02022C78->unk_01C1 = AddScrollIndicatorArrowPair(&gUnknown_02022C78->unk_0394, &gUnknown_02022C78->unk_01C6); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + UpdatePaletteFade(); + break; + default: + if (UpdatePaletteFade()) + return 0; + gUnknown_02022C78->unk_01C0_1 = 0; + return 1; + } + + ++gUnknown_02022C78->unk_01C0_1; + return 0; +} + +s32 sub_801CA50(bool32 flag) +{ + if (gUnknown_02022C78 == NULL) + return -1; + switch (gUnknown_02022C78->unk_01C0_1) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + break; + case 1: + if (UpdatePaletteFade()) + return 0; + ChangeBgY(2, 0, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + break; + case 2: + FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 24); + FillBgTilemapBufferRect_Palette0(3, 0x000, 0, 0, 30, 24); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(3); + break; + case 3: + HideBg(1); + HideBg(2); + RemoveWindow(gUnknown_02022C78->unk_01C8[1]); + RemoveWindow(gUnknown_02022C78->unk_01C8[0]); + break; + case 4: + ChangeBgY(2, 0, 0); + ChangeBgY(3, 0, 0); + if (gUnknown_02022C78->unk_01C1 != 0xFF) + { + RemoveScrollIndicatorArrowPair(gUnknown_02022C78->unk_01C1); + gUnknown_02022C78->unk_01C1 = 0xFF; + } + break; + case 5: + sub_80186EC(gUnknown_02022C60, flag); + sub_8018798(3); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(3); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + break; + default: + if (UpdatePaletteFade()) + return 0; + gUnknown_02022C78->unk_01C0_1 = 0; + return 1; + } + ++gUnknown_02022C78->unk_01C0_1; + return 0; +} + +void sub_801CC38(void) +{ + if (!gUnknown_02022C78->unk_01C0_0 && gUnknown_02022C78->unk_01C1 != 0xFF) + { + RemoveScrollIndicatorArrowPair(gUnknown_02022C78->unk_01C1); + gUnknown_02022C78->unk_01C1 = 0xFF; + gUnknown_02022C78->unk_01C0_0 = TRUE; + } +} + + +void sub_801CC80(void) +{ + if (gUnknown_02022C78->unk_01C0_0) + { + gUnknown_02022C78->unk_01C1 = AddScrollIndicatorArrowPair(&gUnknown_02022C78->unk_0394, &gUnknown_02022C78->unk_01C6); + gUnknown_02022C78->unk_01C0_0 = FALSE; + } +} + +u8 sub_801CCD0(u16 input) +{ + if (gUnknown_02022C78->unk_01C2_0) + { + sub_801CFA4(); + return 0xFF; + } + switch (input) + { + case A_BUTTON: + return 0; + case B_BUTTON: + return 1; + case DPAD_UP: + if (gUnknown_02022C78->unk_01C6 == 0) + return 0xFF; + if (gUnknown_02022C78->unk_01C0_0) + return 0xFF; + gUnknown_02022C78->unk_01C3_0 = FALSE; + break; + case DPAD_DOWN: + if (gUnknown_02022C78->unk_01C6 == gUnknown_02022C78->unk_01C4) + return 0xFF; + if (gUnknown_02022C78->unk_01C0_0) + return 0xFF; + gUnknown_02022C78->unk_01C3_0 = TRUE; + break; + default: + return 0xFF; + } + gUnknown_02022C78->unk_01C2_0 = TRUE; + gUnknown_02022C78->unk_01C2_1 = 2; + gUnknown_02022C78->unk_01C3_1 = 0; + if (gUnknown_02022C78->unk_01C3_0 == FALSE) + return 2; + else + return 3; +} + +void sub_801CDCC(void) +{ + u8 i = 0; + memcpy(gUnknown_02022C78->unk_01CE, gUnknown_02022C78->unk_0000.unk_04, 40); + gUnknown_02022C78->unk_01CE[40] = EOS; + for (; i < 10; ++i) + { + memcpy(gUnknown_02022C78->unk_01F7[i], gUnknown_02022C78->unk_0000.unk_2C[i], 40); + gUnknown_02022C78->unk_01F7[i][40] = EOS; + if (i > 7 && gUnknown_02022C78->unk_01F7[i][0] != EOS) + ++gUnknown_02022C78->unk_01C4; + } + gUnknown_02022C78->unk_0394 = gUnknown_082F1DF8; + gUnknown_02022C78->unk_0394.fullyDownThreshold = gUnknown_02022C78->unk_01C4; +} + +void sub_801CE7C(void) +{ + u8 i = 0; + s32 x; + PutWindowTilemap(gUnknown_02022C78->unk_01C8[0]); + PutWindowTilemap(gUnknown_02022C78->unk_01C8[1]); + FillWindowPixelBuffer(gUnknown_02022C78->unk_01C8[0], 0); + FillWindowPixelBuffer(gUnknown_02022C78->unk_01C8[1], 0); + x = (0xe0 - GetStringWidth(3, gUnknown_02022C78->unk_01CE, GetFontAttribute(3, 2))) / 2; + if (x < 0) + x = 0; + AddTextPrinterParameterized3(gUnknown_02022C78->unk_01C8[0], 3, x, 6, gUnknown_082F1DE0[gUnknown_02022C78->unk_01BC->textPal1], 0, gUnknown_02022C78->unk_01CE); + for (; i < 10; ++i) + { + AddTextPrinterParameterized3(gUnknown_02022C78->unk_01C8[1], 3, 0, 16 * i + 2, gUnknown_082F1DE0[gUnknown_02022C78->unk_01BC->textPal2], 0, gUnknown_02022C78->unk_01F7[i]); + } + CopyWindowToVram(gUnknown_02022C78->unk_01C8[0], 3); + CopyWindowToVram(gUnknown_02022C78->unk_01C8[1], 3); +} + +void sub_801CFA4(void) +{ + u16 r4 = gUnknown_02022C78->unk_01C2_1; + r4 <<= 8; + if (gUnknown_02022C78->unk_01C3_0) + { + ChangeBgY(2, r4, 1); + ChangeBgY(3, r4, 1); + } + else + { + ChangeBgY(2, r4, 2); + ChangeBgY(3, r4, 2); + } + gUnknown_02022C78->unk_01C3_1 += gUnknown_02022C78->unk_01C2_1; + if (gUnknown_02022C78->unk_01C3_1 > 15) + { + if (gUnknown_02022C78->unk_01C3_0) + ++gUnknown_02022C78->unk_01C6; + else + --gUnknown_02022C78->unk_01C6; + gUnknown_02022C78->unk_01C2_0 = FALSE; + gUnknown_02022C78->unk_01C3_1 = 0; + } +} -- cgit v1.2.3 From 7211f996a5ebf37ac7e2feffb0fd6c270d810513 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 27 Mar 2019 08:50:39 -0400 Subject: Address review comments, 1 Use field names in WindowTemplate instances Remove a leftover comment block --- src/mevent_801BAAC.c | 63 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c index 0514f8e54..857ca3fde 100644 --- a/src/mevent_801BAAC.c +++ b/src/mevent_801BAAC.c @@ -67,9 +67,31 @@ const u8 gUnknown_082F0E10[][3] = { }; const u8 ALIGNED(4) gUnknown_082F0E18[3] = {7, 4, 7}; const struct WindowTemplate gUnknown_082F0E1C[] = { - {0x01, 0x01, 0x01, 0x19, 0x04, 0x02, 0x029c}, - {0x01, 0x01, 0x06, 0x1c, 0x08, 0x02, 0x01bc}, - {0x01, 0x01, 0x0e, 0x1c, 0x05, 0x02, 0x0130} + { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 25, + .height = 4, + .paletteNum = 2, + .baseBlock = 0x029c + }, { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 6, + .width = 28, + .height = 8, + .paletteNum = 2, + .baseBlock = 0x01bc + }, { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 14, + .width = 28, + .height = 5, + .paletteNum = 2, + .baseBlock = 0x0130 + } }; const u16 gWonderCardBgPal1[] = INCBIN_U16("graphics/wonder_transfers/wonder_card_1.gbapal"); @@ -472,8 +494,23 @@ const u8 gUnknown_082F1DE0[][3] = { {0, 1, 2} }; const struct WindowTemplate gUnknown_082F1DE8[] = { - {0, 1, 0, 28, 3, 2, 0x2AC}, - {2, 1, 3, 28, 20, 2, 0x07C} + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 0, + .width = 28, + .height = 3, + .paletteNum = 2, + .baseBlock = 0x2AC + }, { + .bg = 2, + .tilemapLeft = 1, + .tilemapTop = 3, + .width = 28, + .height = 20, + .paletteNum = 2, + .baseBlock = 0x07C + } }; const struct ScrollArrowsTemplate gUnknown_082F1DF8 = { 0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98, @@ -493,22 +530,6 @@ const u32 gWonderNewsTilemap7[] = INCBIN_U32("graphics/wonder_transfers/wonder_n const u32 gWonderNewsGfx8[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_8.4bpp.lz"); const u32 gWonderNewsTilemap8[] = INCBIN_U32("graphics/wonder_transfers/wonder_news_8.bin.lz"); -/* -const u16 gWonderNewsPal1[] = INCBIN_U16("data/graphics/mevent/pal_468060.gbapal"); -const u16 gWonderNewsPal7[] = INCBIN_U16("data/graphics/mevent/pal_468080.gbapal"); -const u16 gWonderNewsPal8[] = INCBIN_U16("data/graphics/mevent/pal_4680A0.gbapal"); -const u32 gWonderNewsGfx1[] = INCBIN_U32("data/graphics/mevent/gfx_4680C0.4bpp.lz"); -const u32 gWonderNewsTilemap1[] = INCBIN_U32("data/graphics/mevent/tilemap_468140.bin.lz"); -const u32 gWonderNewsGfx2[] = INCBIN_U32("data/graphics/mevent/gfx_46821C.4bpp.lz"); -const u32 gWonderNewsTilemap2[] = INCBIN_U32("data/graphics/mevent/tilemap_46824C.bin.lz"); -const u32 gWonderNewsGfx3[] = INCBIN_U32("data/graphics/mevent/gfx_46830C.4bpp.lz"); -const u32 gWonderNewsTilemap3[] = INCBIN_U32("data/graphics/mevent/tilemap_46837C.bin.lz"); -const u32 gWonderNewsGfx7[] = INCBIN_U32("data/graphics/mevent/gfx_468448.4bpp.lz"); -const u32 gWonderNewsTilemap7[] = INCBIN_U32("data/graphics/mevent/tilemap_4684D8.bin.lz"); -const u32 gWonderNewsGfx8[] = INCBIN_U32("data/graphics/mevent/gfx_4685B4.4bpp.lz"); -const u32 gWonderNewsTilemap8[] = INCBIN_U32("data/graphics/mevent/tilemap_468644.bin.lz"); -*/ - const struct UnkStruct_8467FB8 gUnknown_082F24C8[] = { {1, 0, 0, 0, gWonderNewsGfx1, gWonderNewsTilemap1, gWonderNewsPal1}, {1, 0, 0, 0, gWonderNewsGfx2, gWonderNewsTilemap2, gWonderCardBgPal2}, -- cgit v1.2.3 From 9538855d9a532c9839b962c755640829d9432cea Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 28 Mar 2019 08:42:35 -0400 Subject: Through sub_80173D4 --- src/union_room.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index 90631dab4..f153801a2 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -3934,3 +3934,31 @@ s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTempl "\tbx r1"); } #endif + +void sub_80173B0(void) +{ + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0); + CopyBgTilemapBufferToVram(0); +} + +void sub_80173D4(void) +{ + EnableBothScriptContexts(); +} + +/* +void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5) +{ + struct TextPrinterTemplate sp0 = { + .currentChar = str, + .windowId = windowId, + .fontId = arg1, + .x = arg3, + .y = arg4, + .currentX = arg3, + .currentY = arg4 + }; + + // to be continued +} +*/ -- cgit v1.2.3 From 963dcfb84d0877eb33edc2f41e18cd8076f95739 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 28 Mar 2019 09:59:08 -0400 Subject: sub_80173E0 --- src/union_room.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 65 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index f153801a2..7a45724e5 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -3946,19 +3946,72 @@ void sub_80173D4(void) EnableBothScriptContexts(); } -/* void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5) { - struct TextPrinterTemplate sp0 = { - .currentChar = str, - .windowId = windowId, - .fontId = arg1, - .x = arg3, - .y = arg4, - .currentX = arg3, - .currentY = arg4 - }; + struct TextPrinterTemplate sp0; - // to be continued + sp0.currentChar = str; + sp0.windowId = windowId; + sp0.fontId = arg1; + sp0.x = arg3; + sp0.y = arg4; + sp0.currentX = arg3; + sp0.currentY = arg4; + sp0.unk = 0; + + gTextFlags.useAlternateDownArrow = FALSE; + switch (arg5) + { + case 0: + sp0.letterSpacing = 0; + sp0.lineSpacing = 0; + sp0.fgColor = 2; + sp0.bgColor = 1; + sp0.shadowColor = 3; + break; + case 1: + sp0.letterSpacing = 0; + sp0.lineSpacing = 0; + sp0.fgColor = 4; + sp0.bgColor = 1; + sp0.shadowColor = 5; + break; + case 2: + sp0.letterSpacing = 0; + sp0.lineSpacing = 0; + sp0.fgColor = 6; + sp0.bgColor = 1; + sp0.shadowColor = 7; + break; + case 3: + sp0.letterSpacing = 0; + sp0.lineSpacing = 0; + sp0.fgColor = 1; + sp0.bgColor = 1; + sp0.shadowColor = 3; + break; + case 4: + sp0.letterSpacing = 0; + sp0.lineSpacing = 0; + sp0.fgColor = 1; + sp0.bgColor = 2; + sp0.shadowColor = 3; + break; + case 5: + sp0.letterSpacing = 0; + sp0.lineSpacing = 0; + sp0.fgColor = 7; + sp0.bgColor = 15; + sp0.shadowColor = 9; + break; + case 6: + sp0.letterSpacing = 0; + sp0.lineSpacing = 0; + sp0.fgColor = 14; + sp0.bgColor = 15; + sp0.shadowColor = 9; + break; + } + + AddTextPrinter(&sp0, 0xFF, NULL); } -*/ -- cgit v1.2.3 From 86f7691146ab6fa7aba6e077930b5677bb75b701 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 28 Mar 2019 10:24:31 -0400 Subject: Through sub_80176E4 --- src/union_room.c | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 103 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index 7a45724e5..620a13e58 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -228,7 +228,7 @@ u32 sub_8013B8C(struct UnkStruct_Group *arg0, s32 id); void sub_8013BD8(struct UnkStruct_Group *arg0, s32 id); void sub_80173D4(void); void sub_80177B8(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); -bool32 sub_8017678(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); +bool32 sub_8017678(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1); u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId); void sub_801807C(struct TradeUnkStruct *arg0); void sub_801AC54(void); @@ -1456,7 +1456,7 @@ u8 sub_8013E44(void) { if (data->field_0->arr[i].field_1A_0 == 1) { - if (sub_8017678(&data->field_0->arr[i], &data->field_4->arr[id])) + if (sub_8017678(&data->field_0->arr[i].unk, &data->field_4->arr[id].unk0)) { data->field_0->arr[i].unk = data->field_4->arr[id].unk0; data->field_0->arr[i].field_1B = 0x40; @@ -3423,7 +3423,7 @@ u8 sub_8016B00(void) { if (structPtr->field_0->arr[j].field_1A_0 == 1) { - if (sub_8017678(&structPtr->field_0->arr[j], &structPtr->field_4->arr[i])) + if (sub_8017678(&structPtr->field_0->arr[j].unk, &structPtr->field_4->arr[i].unk0)) { structPtr->field_0->arr[j].unk = structPtr->field_4->arr[i].unk0; structPtr->field_0->arr[j].field_1B = 0x40; @@ -4015,3 +4015,103 @@ void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5) AddTextPrinter(&sp0, 0xFF, NULL); } + +void sub_8017580(struct UnkStruct_x20 *arg0, u8 count) +{ + s32 i; + + for (i = 0; i < count; i++) + { + arg0[i].unk = gUnknown_082F045C; + arg0[i].field_18 = 0xFF; + arg0[i].field_1A_0 = 0; + arg0[i].field_1A_1 = 0; + arg0[i].field_1B = 0; + } +} + +void sub_80175EC(struct UnkStruct_Main4 *arg0, u8 count) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + arg0->arr[i].unk0 = gUnknown_082F045C; + arg0->arr[i].unk18 = 0; + } +} + +bool8 sub_8017630(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1) +{ + s32 i; + + for (i = 0; i < 2; i++) + { + if (arg0->field_0.unk_00.playerTrainerId[i] != arg1->field_0.unk_00.playerTrainerId[i]) + { + return TRUE; + } + } + + for (i = 0; i < 8; i++) + { + if (arg0->playerName[i] != arg1->playerName[i]) + { + return TRUE; + } + } + + return FALSE; +} + +bool32 sub_8017678(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1) +{ + s32 i; + + if (arg0->field_0.unk_0a_0 != arg1->field_0.unk_0a_0) + { + return TRUE; + } + + if (arg0->field_0.unk_0a_7 != arg1->field_0.unk_0a_7) + { + return TRUE; + } + + for (i = 0; i < 4; i++) + { + if (arg0->field_0.unk_04[i] != arg1->field_0.unk_04[i]) + { + return TRUE; + } + } + + if (arg0->field_0.species != arg1->field_0.species) + { + return TRUE; + } + + if (arg0->field_0.type != arg1->field_0.type) + { + return TRUE; + } + + return FALSE; +} + +u32 sub_80176E4(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1) +{ + u8 result = 0xFF; + s32 i; + + for (i = 0; i < 4; i++) + { + if (arg1[i].unk18 && !sub_8017630(&arg0->unk, &arg1[i].unk0)) + { + result = i; + arg1[i].unk18 = FALSE; + } + } + + return result; +} -- cgit v1.2.3 From 030fb4d89881082eaa2c54a4da150e0abf3f6a8a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 28 Mar 2019 11:24:50 -0400 Subject: through sub_80179AC --- src/union_room.c | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 110 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index 620a13e58..4c9cb3886 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -35,6 +35,7 @@ #include "field_screen_effect.h" #include "script_pokemon_util_80F87D8.h" #include "international_string_util.h" +#include "field_player_avatar.h" #include "mevent.h" struct UnkStruct_Shared @@ -222,7 +223,7 @@ void sub_80149C4(void); u8 sub_80132D4(struct UnkStruct_Main0 *arg0); void sub_80178A0(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id); u32 sub_80176E4(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1); -u8 sub_8017734(struct UnkStruct_x20 *arg0, struct UnkStruct_Shared *arg1, u8 arg2); +u8 sub_8017734(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2); u8 sub_8013E44(void); u32 sub_8013B8C(struct UnkStruct_Group *arg0, s32 id); void sub_8013BD8(struct UnkStruct_Group *arg0, s32 id); @@ -267,7 +268,7 @@ s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTe s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6); s32 sub_8017CB0(struct UnkStruct_Main0 * arg); bool32 sub_8018024(void); -u32 sub_8017984(u32 arg0); +u32 sub_8017984(s32 arg0); void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2); void sub_8017D9C(u8 *dst, u32 arg1, u32 playerGender); u32 sub_80179AC(struct UnkStruct_x20 *arg0); @@ -380,6 +381,8 @@ extern const struct UnkStruct_Shared gUnknown_082F045C; extern const u8 *const gUnknown_082F04D8[22]; +extern const u8 gText_Colon[]; + // code void nullsub_89(void) { @@ -973,7 +976,7 @@ u8 sub_80132D4(struct UnkStruct_Main0 *arg0) } for (id = 0; id < 4; id++) - sub_8017734(data->field_0->arr, &data->field_4->arr[id].unk0, 5); + sub_8017734(data->field_0->arr, &data->field_4->arr[id], 5); if (ret != 2) { @@ -1498,7 +1501,7 @@ u8 sub_8013E44(void) for (id = 0; id < 4; id++) { - if (sub_8017734(data->field_0->arr, &data->field_4->arr[id].unk0, 16) != 0xFF) + if (sub_8017734(data->field_0->arr, &data->field_4->arr[id], 16) != 0xFF) ret = 1; } @@ -3465,7 +3468,7 @@ u8 sub_8016B00(void) } for (i = 0; i < 4; i++) { - if (sub_8017734(&structPtr->field_0->arr[0], &structPtr->field_4->arr[i].unk0, 8) != 0xFF) + if (sub_8017734(&structPtr->field_0->arr[0], &structPtr->field_4->arr[i], 8) != 0xFF) r7 = 1; } @@ -4115,3 +4118,105 @@ u32 sub_80176E4(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1) return result; } + +u8 sub_8017734(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2) +{ + s32 i; + + if (arg1->unk18) + { + for (i = 0; i < arg2; i++) + { + if (arg0[i].field_1A_0 == 0) + { + arg0[i].unk = arg1->unk0; + arg0[i].field_18 = 0; + arg0[i].field_1A_0 = 1; + arg0[i].field_1B = 64; + arg1->unk18 = FALSE; + return i; + } + } + } + + return 0xFF; +} + +void sub_80177B8(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id) +{ + u8 r2; + u8 sp0[6]; + + ConvertIntToDecimalStringN(gStringVar4, id + 1, STR_CONV_MODE_LEADING_ZEROS, 2); + StringAppend(gStringVar4, gText_Colon); + sub_80173E0(arg0, 1, gStringVar4, arg1, arg2, 0); + arg1 += 18; + r2 = arg3->unk.field_0.unk_0a_0; + if (arg3->field_1A_0 == 1 && !(r2 & 0x40)) + { + sub_8018404(gStringVar4, arg3); + sub_80173E0(arg0, 1, gStringVar4, arg1, arg2, arg4); + ConvertIntToDecimalStringN(sp0, arg3->unk.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5); + StringCopy(gStringVar4, gText_UnkCtrlCodeF907); + StringAppend(gStringVar4, sp0); + sub_80173E0(arg0, 1, gStringVar4, GetStringRightAlignXOffset(1, gStringVar4, 0x88), arg2, arg4); + } +} + +void sub_80178A0(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id) +{ + u8 sp0[6]; + + if (arg3->field_1A_0 == 1) + { + sub_8018404(gStringVar4, arg3); + sub_80173E0(arg0, 1, gStringVar4, arg1, arg2, arg4); + ConvertIntToDecimalStringN(sp0, arg3->unk.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5); + StringCopy(gStringVar4, gText_UnkCtrlCodeF907); + StringAppend(gStringVar4, sp0); + sub_80173E0(arg0, 1, gStringVar4, GetStringRightAlignXOffset(1, gStringVar4, 0x68), arg2, arg4); + } +} + +bool32 sub_8017940(void) +{ + s16 x, y; + GetXYCoordsOneStepInFrontOfPlayer(&x, &y); + if (x != 9) + { + return FALSE; + } + if (y != 8) + { + return FALSE; + } + if (gPlayerAvatar.tileTransitionState == 2 || gPlayerAvatar.tileTransitionState == 0) + { + return TRUE; + } + + return FALSE; +} + +u32 sub_8017984(s32 arg0) +{ + switch (arg0) + { + case 5: + return 1; + case 4: + return 2; + case 8: + return 3; + case 3: + default: + return 0; + } +} + +u32 sub_80179AC(struct UnkStruct_x20 *arg0) +{ + u8 sp0[30]; + sub_8018404(sp0, arg0); + return sub_800E540(ReadAsU16(arg0->unk.field_0.unk_00.playerTrainerId), sp0); +} -- cgit v1.2.3 From 8b8cc7a475d49cf590edbeb5d9763b5dd5245831 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 28 Mar 2019 18:40:49 -0500 Subject: Decompile union_room_chat.s through sub_801FF08 --- src/union_room_chat.c | 625 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 617 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/union_room_chat.c b/src/union_room_chat.c index cc482d929..df35d164c 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -16,6 +16,8 @@ #include "string_util.h" #include "strings.h" #include "task.h" +#include "text.h" +#include "text_window.h" #include "window.h" #include "constants/rgb.h" #include "constants/songs.h" @@ -52,7 +54,7 @@ struct UnionRoomChat struct UnionRoomChat2_Unk0 { - int (* unk0)(u8 *); + bool32 (* unk0)(u8 *); u8 unk4; u8 unk5; }; @@ -62,11 +64,17 @@ struct UnionRoomChat2 struct UnionRoomChat2_Unk0 unk0[3]; u16 unk18; u16 unk1A; - u8 filler1C[0x2]; + u16 unk1C; u16 unk1E; u8 filler20[0x2148]; }; +struct Unk82F2C98 +{ + u16 unk0; + bool32 (* unk4)(u8 *); +}; + static void sub_801DDD0(struct UnionRoomChat *); static void c2_081284E0(void); static void sub_801DF20(void); @@ -105,15 +113,48 @@ static bool8 sub_801F4D0(void); static bool32 sub_801F534(void); static void sub_801F544(void); static void sub_801F5B8(void); -void sub_801F5EC(u16, u8); -bool8 sub_801F644(u8); -s8 sub_801FF08(void); +static void sub_801F5EC(u16, u8); +static bool8 sub_801F644(u8); +static s8 sub_801FF08(void); bool32 sub_8020890(void); void sub_8020770(void); static void sub_801F574(struct UnionRoomChat2 *); static void sub_801F580(void); void sub_80208D0(void); -int sub_801FDD8(u8 *); +static bool32 sub_801FDD8(u8 *); +void sub_8020480(void); +void sub_8020538(void); +void sub_8020584(void); +void sub_80205B4(void); +void task_tutorial_story_unknown(void); +void sub_8020680(void); +void sub_80206A4(void); +void sub_80206D0(void); +void sub_8020740(void); +void sub_80206E8(void); +void sub_80208E8(void); +void sub_8020A68(void); +void sub_8020B20(void); +void sub_80203B0(void); +void sub_802040C(void); +void sub_802091C(int); +bool32 sub_8020320(void); +void sub_80201A4(void); +bool32 sub_8020368(void); +void sub_802093C(void); +void sub_8020B80(void); +void sub_801FF18(int, u16); +static void sub_801FDDC(u8, u8, u8); +void sub_8020094(void); +static void sub_801FEBC(void); +void sub_80200C8(void); +static void sub_801FEE4(void); +void sub_80200EC(u16, u16, u8); +void sub_8020118(u16, u8 *, u8, u8, u16); +void sub_80209AC(int); +void sub_8020420(u16, u8 *, u8); +void sub_80209E0(void); +bool32 sub_8020A1C(void); extern struct UnionRoomChat *gUnknown_02022C84; extern struct UnionRoomChat2 *gUnknown_02022C88; @@ -122,6 +163,7 @@ extern const u8 *const gUnknown_082F2BA8[][10]; extern const u8 gUnknown_082F2AA8[]; extern const struct BgTemplate gUnknown_082F2C60[4]; extern const struct WindowTemplate gUnknown_082F2C70[]; +extern const struct Unk82F2C98 gUnknown_082F2C98[]; void sub_801DD98(void) @@ -1158,7 +1200,7 @@ void sub_801F0BC(u8 *arg0, u8 *arg1) *arg1 = gUnknown_02022C84->unk12; } -u8 *sub_801F0D0(void) +static u8 *sub_801F0D0(void) { return gUnknown_02022C84->unk1A; } @@ -1169,7 +1211,7 @@ int sub_801F0DC(void) return StringLength_Multibyte(str); } -void sub_801F0EC(int *arg0, int *arg1) +void sub_801F0EC(u32 *arg0, u32 *arg1) { int diff = gUnknown_02022C84->unk15 - gUnknown_02022C84->unk14; if (diff < 0) @@ -1443,3 +1485,570 @@ static void sub_801F5B8(void) gUnknown_02022C88->unk0[i].unk0(&gUnknown_02022C88->unk0[i].unk5); } } + +static void sub_801F5EC(u16 arg0, u8 arg1) +{ + u32 i; + + gUnknown_02022C88->unk0[arg1].unk0 = sub_801FDD8; + for (i = 0; i < 21; i++) + { + if (gUnknown_082F2C98[i].unk0 == arg0) + { + gUnknown_02022C88->unk0[arg1].unk0 = gUnknown_082F2C98[i].unk4; + gUnknown_02022C88->unk0[arg1].unk4 = 1; + gUnknown_02022C88->unk0[arg1].unk5 = 0; + break; + } + } +} + +static bool8 sub_801F644(u8 arg0) +{ + return gUnknown_02022C88->unk0[arg0].unk4; +} + +bool32 sub_801F658(u8 *state) +{ + if (free_temp_tile_data_buffers_if_possible() == TRUE) + return TRUE; + + switch (*state) + { + case 0: + sub_8020480(); + sub_8020538(); + break; + case 1: + sub_8020584(); + break; + case 2: + sub_80205B4(); + break; + case 3: + task_tutorial_story_unknown(); + break; + case 4: + sub_8020680(); + break; + case 5: + sub_80206A4(); + sub_80206D0(); + sub_8020740(); + sub_80206E8(); + break; + case 6: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_80208E8(); + sub_8020A68(); + sub_8020B20(); + } + break; + default: + return FALSE; + } + + (*state)++; + return TRUE; +} + +bool32 sub_801F6F8(u8 *state) +{ + switch (*state) + { + case 0: + sub_80203B0(); + CopyWindowToVram(3, 3); + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + (*state)++; + return TRUE; +} + +bool32 sub_801F730(u8 *state) +{ + switch (*state) + { + case 0: + sub_802040C(); + CopyWindowToVram(3, 3); + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + (*state)++; + return TRUE; +} + +bool32 sub_801F768(u8 *state) +{ + switch (*state) + { + case 0: + sub_802091C(1); + if (sub_8020320()) + return TRUE; + + sub_80201A4(); + CopyWindowToVram(2, 2); + break; + case 1: + if (IsDma3ManagerBusyWithBgCopy()) + return TRUE; + break; + case 2: + if (sub_8020368()) + return TRUE; + + sub_802093C(); + sub_802091C(0); + sub_8020B80(); + return FALSE; + } + + (*state)++; + return TRUE; +} + +bool32 sub_801F7D4(u8 *state) +{ + sub_802093C(); + return FALSE; +} + +bool32 sub_801F7E0(u8 *state) +{ + switch (*state) + { + case 0: + sub_801FF18(0, 0); + sub_801FDDC(23, 11, 1); + CopyWindowToVram(gUnknown_02022C88->unk1E, 3); + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + (*state)++; + return TRUE; +} + +bool32 sub_801F82C(u8 *state) +{ + switch (*state) + { + case 0: + sub_8020094(); + sub_801FEBC(); + CopyBgTilemapBufferToVram(0); + break; + case 1: + if (IsDma3ManagerBusyWithBgCopy()) + return TRUE; + + sub_80200C8(); + sub_801FEE4(); + return FALSE; + } + + (*state)++; + return TRUE; +} + +bool32 sub_801F870(u8 *state) +{ + u32 var0, var1; + u8 *str; + + switch (*state) + { + case 0: + sub_801F0EC(&var0, &var1); + sub_80200EC(var0, var1, 0); + str = sub_801F0D0(); + sub_8020118(0, str, 3, 1, 2); + CopyWindowToVram(1, 2); + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_8020B80(); + return FALSE; + } + return TRUE; + } + + (*state)++; + return TRUE; +} + +bool32 sub_801F8DC(u8 *state) +{ + u16 var0; + u8 *str; + u16 length; + + switch (*state) + { + case 0: + var0 = sub_801F144(); + str = sub_801F114(); + length = StringLength_Multibyte(str); + sub_80200EC(var0, length, PIXEL_FILL(6)); + sub_8020118(var0, str, 0, 4, 5); + CopyWindowToVram(1, 2); + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_801FF18(1, 16); + CopyWindowToVram(gUnknown_02022C88->unk1E, 3); + } + else + { + return TRUE; + } + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + sub_80209AC(1); + else + return TRUE; + break; + case 3: + return FALSE; + } + + (*state)++; + return TRUE; +} + +bool32 sub_801F984(u8 *state) +{ + u16 var0; + u8 *str; + u16 length; + + switch (*state) + { + case 0: + var0 = sub_801F144(); + str = sub_801F114(); + length = StringLength_Multibyte(str); + sub_80200EC(var0, length, PIXEL_FILL(0)); + sub_8020118(var0, str, 3, 1, 2); + CopyWindowToVram(1, 2); + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_8020094(); + CopyWindowToVram(gUnknown_02022C88->unk1E, 3); + } + else + { + return TRUE; + } + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_80209AC(0); + sub_80200C8(); + } + else + { + return TRUE; + } + break; + case 3: + return FALSE; + } + + (*state)++; + return TRUE; +} + +bool32 sub_801FA2C(u8 *state) +{ + switch (*state) + { + case 0: + sub_80201A4(); + CopyWindowToVram(2, 2); + (*state)++; + break; + case 1: + if (IsDma3ManagerBusyWithBgCopy()) + return TRUE; + else + return FALSE; + } + + return TRUE; +} + +bool32 sub_801FA68(u8 *state) +{ + u16 var0; + u8 *str; + u8 var1; + + switch (*state) + { + case 0: + var0 = gUnknown_02022C88->unk1A; + str = sub_801F180(); + var1 = sub_801F18C(); + sub_8020420(var0, str, var1); + CopyWindowToVram(0, 2); + break; + case 1: + if (IsDma3ManagerBusyWithBgCopy()) + return TRUE; + + if (gUnknown_02022C88->unk1A < 9) + { + gUnknown_02022C88->unk1A++; + *state = 4; + return FALSE; + } + else + { + gUnknown_02022C88->unk1C = 0; + (*state)++; + } + // fall through + case 2: + ScrollWindow(0, 0, 5, PIXEL_FILL(1)); + CopyWindowToVram(0, 2); + gUnknown_02022C88->unk1C++; + (*state)++; + // fall through + case 3: + if (IsDma3ManagerBusyWithBgCopy()) + return TRUE; + + if (gUnknown_02022C88->unk1C < 3) + { + (*state)--; + return TRUE; + } + break; + case 4: + return FALSE; + default: + return TRUE; + } + + (*state)++; + return TRUE; +} + +bool32 sub_801FB44(u8 *state) +{ + switch (*state) + { + case 0: + sub_80209E0(); + (*state)++; + break; + case 1: + return sub_8020A1C(); + } + + return TRUE; +} + +bool32 sub_801FB70(u8 *state) +{ + switch (*state) + { + case 0: + sub_801FF18(3, 16); + CopyWindowToVram(gUnknown_02022C88->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_801FBB4(u8 *state) +{ + switch (*state) + { + case 0: + sub_801FF18(4, 0); + CopyWindowToVram(gUnknown_02022C88->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_801FBF8(u8 *state) +{ + u8 *str; + + switch (*state) + { + case 0: + DynamicPlaceholderTextUtil_Reset(); + str = sub_801F1D0(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, str); + sub_801FF18(5, 0); + CopyWindowToVram(gUnknown_02022C88->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_801FC4C(u8 *state) +{ + switch (*state) + { + case 0: + sub_801FF18(6, 0); + sub_801FDDC(23, 10, 1); + CopyWindowToVram(gUnknown_02022C88->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_801FC9C(u8 *state) +{ + switch (*state) + { + case 0: + sub_801FF18(7, 0); + sub_801FDDC(23, 10, 1); + CopyWindowToVram(gUnknown_02022C88->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_801FCEC(u8 *state) +{ + switch (*state) + { + case 0: + sub_801FF18(8, 0); + CopyWindowToVram(gUnknown_02022C88->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_801FD30(u8 *state) +{ + switch (*state) + { + case 0: + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName); + sub_801FF18(9, 0); + CopyWindowToVram(gUnknown_02022C88->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_801FD88(u8 *state) +{ + switch (*state) + { + case 0: + sub_801FF18(10, 0); + sub_801FDDC(23, 10, 1); + CopyWindowToVram(gUnknown_02022C88->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool32 sub_801FDD8(u8 *arg0) +{ + return FALSE; +} + +static void sub_801FDDC(u8 left, u8 top, u8 initialCursorPos) +{ + struct WindowTemplate template; + template.bg = 0; + template.tilemapLeft = left; + template.tilemapTop = top; + template.width = 6; + template.height = 4; + template.paletteNum = 14; + template.baseBlock = 0x52; + gUnknown_02022C88->unk18 = AddWindow(&template); + if (gUnknown_02022C88->unk18 != 0xFF) + { + FillWindowPixelBuffer(gUnknown_02022C88->unk18, PIXEL_FILL(1)); + PutWindowTilemap(gUnknown_02022C88->unk18); + AddTextPrinterParameterized(gUnknown_02022C88->unk18, 1, gText_Yes, 8, 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(gUnknown_02022C88->unk18, 1, gText_No, 8, 17, TEXT_SPEED_FF, NULL); + sub_8098858(gUnknown_02022C88->unk18, 1, 13); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(gUnknown_02022C88->unk18, 2, initialCursorPos); + } +} + +static void sub_801FEBC(void) +{ + if (gUnknown_02022C88->unk18 != 0xFF) + { + ClearStdWindowAndFrameToTransparent(gUnknown_02022C88->unk18, FALSE); + ClearWindowTilemap(gUnknown_02022C88->unk18); + } +} + +static void sub_801FEE4(void) +{ + if (gUnknown_02022C88->unk18 != 0xFF) + { + RemoveWindow(gUnknown_02022C88->unk18); + gUnknown_02022C88->unk18 = 0xFF; + } +} + +static s8 sub_801FF08(void) +{ + return Menu_ProcessInput(); +} -- cgit v1.2.3 From 519426f4e6629a1f79fa4ce5f8ffff672d25533d Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 28 Mar 2019 20:20:52 -0500 Subject: Decompile union_room_chat through sub_8020118 --- src/text.c | 2 +- src/union_room_chat.c | 137 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 132 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/text.c b/src/text.c index 39912b17d..43834eab4 100644 --- a/src/text.c +++ b/src/text.c @@ -1615,7 +1615,7 @@ u16 RenderText(struct TextPrinter *textPrinter) } } return 2; - case 20: + case EXT_CTRL_CODE_MIN_LETTER_SPACING: textPrinter->minLetterSpacing = *textPrinter->printerTemplate.currentChar++; return 2; case EXT_CTRL_CODE_JPN: diff --git a/src/union_room_chat.c b/src/union_room_chat.c index df35d164c..4de15c563 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -66,7 +66,8 @@ struct UnionRoomChat2 u16 unk1A; u16 unk1C; u16 unk1E; - u8 filler20[0x2148]; + u8 filler20[0x2]; + u8 unk22[0x2146]; }; struct Unk82F2C98 @@ -75,6 +76,18 @@ struct Unk82F2C98 bool32 (* unk4)(u8 *); }; +struct Unk82F2D40 +{ + const u8 *unk0; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u8 unk8; + u8 unk9; + u8 unkA; +}; + static void sub_801DDD0(struct UnionRoomChat *); static void c2_081284E0(void); static void sub_801DF20(void); @@ -143,14 +156,14 @@ void sub_80201A4(void); bool32 sub_8020368(void); void sub_802093C(void); void sub_8020B80(void); -void sub_801FF18(int, u16); +static void sub_801FF18(int, u16); static void sub_801FDDC(u8, u8, u8); -void sub_8020094(void); +static void sub_8020094(void); static void sub_801FEBC(void); -void sub_80200C8(void); +static void sub_80200C8(void); static void sub_801FEE4(void); -void sub_80200EC(u16, u16, u8); -void sub_8020118(u16, u8 *, u8, u8, u16); +static void sub_80200EC(u16, u16, u8); +static void sub_8020118(u16, u8 *, u8, u8, u8); void sub_80209AC(int); void sub_8020420(u16, u8 *, u8); void sub_80209E0(void); @@ -164,6 +177,7 @@ extern const u8 gUnknown_082F2AA8[]; extern const struct BgTemplate gUnknown_082F2C60[4]; extern const struct WindowTemplate gUnknown_082F2C70[]; extern const struct Unk82F2C98 gUnknown_082F2C98[]; +extern const struct Unk82F2D40 gUnknown_082F2D40[]; void sub_801DD98(void) @@ -2052,3 +2066,114 @@ static s8 sub_801FF08(void) { return Menu_ProcessInput(); } + +static void sub_801FF18(int arg0, u16 arg1) +{ + const u8 *str; + int windowId; + struct WindowTemplate template; + template.bg = 0; + template.tilemapLeft = 8; + template.tilemapTop = 16; + template.width = 21; + template.height = 4; + template.paletteNum = 14; + template.baseBlock = 0x6A; + if (gUnknown_082F2D40[arg0].unkA) + { + template.tilemapLeft -= 7; + template.width += 7; + } + + gUnknown_02022C88->unk1E = AddWindow(&template); + windowId = gUnknown_02022C88->unk1E; + if (gUnknown_02022C88->unk1E == 0xFF) + return; + + if (gUnknown_082F2D40[arg0].unk9) + { + DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_02022C88->unk22, gUnknown_082F2D40[arg0].unk0); + str = gUnknown_02022C88->unk22; + } + else + { + str = gUnknown_082F2D40[arg0].unk0; + } + + ChangeBgY(0, arg1 * 256, 0); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + PutWindowTilemap(windowId); + if (gUnknown_082F2D40[arg0].unk4 == 1) + { + sub_80989E0(windowId, 0xA, 2); + AddTextPrinterParameterized5( + windowId, + 1, + str, + gUnknown_082F2D40[arg0].unk5 + 8, + gUnknown_082F2D40[arg0].unk6 + 8, + TEXT_SPEED_FF, + NULL, + gUnknown_082F2D40[arg0].unk7, + gUnknown_082F2D40[arg0].unk8); + } + else + { + sub_8098858(windowId, 0xA, 2); + AddTextPrinterParameterized5( + windowId, + 1, + str, + gUnknown_082F2D40[arg0].unk5, + gUnknown_082F2D40[arg0].unk6, + TEXT_SPEED_FF, + NULL, + gUnknown_082F2D40[arg0].unk7, + gUnknown_082F2D40[arg0].unk8); + } + + gUnknown_02022C88->unk1E = windowId; +} + +static void sub_8020094(void) +{ + if (gUnknown_02022C88->unk1E != 0xFF) + { + ClearStdWindowAndFrameToTransparent(gUnknown_02022C88->unk1E, FALSE); + ClearWindowTilemap(gUnknown_02022C88->unk1E); + } + + ChangeBgY(0, 0, 0); +} + +static void sub_80200C8(void) +{ + if (gUnknown_02022C88->unk1E != 0xFF) + { + RemoveWindow(gUnknown_02022C88->unk1E); + gUnknown_02022C88->unk1E = 0xFF; + } +} + +static void sub_80200EC(u16 x, u16 width, u8 fillValue) +{ + FillWindowPixelRect(1, fillValue, x * 8, 1, width * 8, 14); +} + +static void sub_8020118(u16 x, u8 *str, u8 fillValue, u8 arg3, u8 arg4) +{ + u8 *str2; + u8 sp[38]; + if (fillValue) + sub_80200EC(x, sub_801F198() - x, fillValue); + + sp[0] = fillValue; + sp[1] = arg3; + sp[2] = arg4; + str2 = &sp[4]; + str2[0] = EXT_CTRL_CODE_BEGIN; + str2[1] = EXT_CTRL_CODE_MIN_LETTER_SPACING; + str2[2] = 8; + StringCopy(&str2[3], str); + AddTextPrinterParameterized3(1, 2, x * 8, 1, sp, TEXT_SPEED_FF, str2); +} -- cgit v1.2.3 From ae0e70d7bb17bd7da4e72e2133bad79ab59fa5e7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Mar 2019 11:57:03 -0400 Subject: sub_80179D4 and rodata --- src/link_rfu.c | 20 +- src/union_room.c | 1192 +++++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 1108 insertions(+), 104 deletions(-) (limited to 'src') diff --git a/src/link_rfu.c b/src/link_rfu.c index a557397f0..07fa04dd2 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -310,10 +310,22 @@ const char gUnknown_082ED7EC[] = "PokemonSioInfo"; const char gUnknown_082ED7FC[] = "LINK LOSS DISCONNECT!"; const char gUnknown_082ED814[] = "LINK LOSS RECOVERY NOW"; -extern const char gUnknown_082ED82C[]; -extern const char gUnknown_082ED84B[]; -extern const char gUnknown_082ED85B[]; -extern const char gUnknown_082ED868[]; +ALIGNED(4) const char gUnknown_082ED82C[31] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',0x00}; +const char gUnknown_082ED84B[16] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',0x00}; +const char gUnknown_082ED85B[9] = {' ',' ',' ',' ',' ',' ',' ',' ',0x00}; +ALIGNED(4) const char gUnknown_082ED864[2] = {' ',0x00}; +const char gUnknown_082ED866[2] = {'*',0x00}; +const char gUnknown_082ED868[8] = "NOWSLOT"; +const char gUnknown_082ED870[12] = " "; +const char gUnknown_082ED87C[12] = "CLOCK DRIFT"; +const char gUnknown_082ED888[12] = "BUSY SEND "; +const char gUnknown_082ED894[12] = "CMD REJECT "; +const char gUnknown_082ED8A0[12] = "CLOCK SLAVE"; +const char gUnknown_082ED8A8[3][8] = { + "CHILD ", + "PARENT", + "SEARCH" +}; // .text diff --git a/src/union_room.c b/src/union_room.c index 4c9cb3886..a4a728a3b 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1,6 +1,7 @@ #include "global.h" #include "window.h" #include "bg.h" +#include "random.h" #include "string_util.h" #include "task.h" #include "event_data.h" @@ -36,6 +37,7 @@ #include "script_pokemon_util_80F87D8.h" #include "international_string_util.h" #include "field_player_avatar.h" +#include "strings.h" #include "mevent.h" struct UnkStruct_Shared @@ -282,106 +284,1046 @@ void sub_8019BA8(void *); s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3); void sub_801697C(u8 taskId); bool8 sub_8017630(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1); +void sub_8013278(u8 windowId, s32 itemId, u8 y); +void sub_8013DF4(u8 windowId, s32 itemId, u8 y); +void sub_8017BE8(u8 windowId, s32 itemId, u8 y); +void nullsub_14(u8 windowId, s32 itemId, u8 y); // const rom data -extern const u8 *const gUnknown_082EDB60[][5]; - -extern const u8 gText_UnkCtrlCodeF907[]; -extern const u8 gUnknown_082EDBC4[]; -extern const u8 gText_AwaitingCommunication[]; -extern const u8 gText_AwaitingLink[]; -extern const u8 gUnknown_082EDC5C[]; -extern const u8 gUnknown_082EDC9C[]; -extern const u8 gUnknown_082EDC78[]; -extern const u8 gUnknown_082EDD58[]; -extern const u8 gUnknown_082EDBE8[]; -extern const u8 gUnknown_082EDC0C[]; -extern const u8 gUnknown_082EDC34[]; -extern const u8 gUnknown_082EE560[]; -extern const u8 gUnknown_082EE57C[]; -extern const u8 gUnknown_082EFC54[]; -extern const u8 gUnknown_082EFC3C[]; -extern const u8 gUnknown_082EDE0C[]; -extern const u8 gUnknown_082EDDF4[]; -extern const u8 gUnknown_082EF7DC[]; -extern const u8 gUnknown_082EDE48[]; -extern const u8 gUnknown_082EDE64[]; -extern const u8 gUnknown_082EDF40[]; -extern const u8 gText_PleaseStartOver[]; -extern const u8 gUnknown_082EF7F8[]; -extern const u8 gUnknown_082EFBC8[]; -extern const u8 gUnknown_082EFC90[]; -extern const u8 gUnknown_082EDEC4[]; -extern const u8 gUnknown_082EDF04[]; -extern const u8 gText_WirelessSearchCanceled[]; -extern const u8 gUnknown_082EF4FC[]; -extern const u8 gUnknown_082EF520[]; -extern const u8 gUnknown_082EF5B8[]; -extern const u8 gUnknown_082EF1EC[]; -extern const u8 gUnknown_082EF544[]; -extern const u8 gUnknown_082EF47C[]; -extern const u8 gUnknown_082EE6C8[]; -extern const u8 gUnknown_082EE004[]; -extern const u8 gUnknown_082EEBD0[]; -extern const u8 gUnknown_082EEB88[]; -extern const u8 gUnknown_082EE598[]; -extern const u8 gUnknown_082EEC14[]; -extern const u8 gUnknown_082EF590[]; -extern const u8 gUnknown_082EF20C[]; -extern const u8 gUnknown_082EF564[]; -extern const u8 gUnknown_082EF4C4[]; -extern const u8 gUnknown_082EF298[]; -extern const u8 gUnknown_082EF65C[]; -extern const u8 gUnknown_082EF6E4[]; -extern const u8 gUnknown_082EF718[]; -extern const u8 gUnknown_082EFD94[]; - -extern const u32 gUnknown_082F00C4[]; - -extern const u8 gUnknown_082F0530[]; - -extern const struct WindowTemplate gUnknown_082F00BC; -extern const struct WindowTemplate gUnknown_082F0124; -extern const struct WindowTemplate gUnknown_082F012C; -extern const struct WindowTemplate gUnknown_082F011C; -extern const struct WindowTemplate gUnknown_082F0174; -extern const struct WindowTemplate gUnknown_082F017C; -extern const struct WindowTemplate gUnknown_082F021C; -extern const struct WindowTemplate gUnknown_082F025C; -extern const struct WindowTemplate gUnknown_082F0294; -extern const struct WindowTemplate gUnknown_082F0344; -extern const struct WindowTemplate gUnknown_082F034C; - -extern const struct ListMenuTemplate gUnknown_082F015C; -extern const struct ListMenuTemplate gUnknown_082F0204; -extern const struct ListMenuTemplate gUnknown_082F0244; -extern const struct ListMenuTemplate gUnknown_082F027C; -extern const struct ListMenuTemplate gUnknown_082F032C; -extern const struct ListMenuTemplate gUnknown_082F03A4; - -extern const u8 *const gUnknown_082F0048[]; -extern const u8 *const gUnknown_082EDDC4[]; -extern const u8 *const gUnknown_082EFB70[]; -extern const u8 *const gUnknown_082EDD50[]; -extern const u8 *const gUnknown_082EDE9C[]; -extern const u8 *const gUnknown_082EDF80[]; -extern const u8 *const gUnknown_082EFD58[]; -extern const u8 *const gUnknown_082EEB80[]; -extern const u8 *const gUnknown_082EE378[]; -extern const u8 *const gUnknown_082EEC9C[]; -extern const u8 *const gUnknown_082EED3C[]; -extern const u8 *const gUnknown_082EE324[]; -extern const u8 *const gUnknown_082EE17C[]; - -extern const u8 *const gUnknown_082EE82C[][4]; - -extern const u8 *const gUnknown_082EE24C[][2]; - -extern const struct UnkStruct_Shared gUnknown_082F045C; - -extern const u8 *const gUnknown_082F04D8[22]; - -extern const u8 gText_Colon[]; + +ALIGNED(4) const u8 gText_EmptyString[] = _(""); +ALIGNED(4) const u8 gText_Colon[] = _(":"); +ALIGNED(4) const u8 gText_UnkCtrlCodeF907[] = _("{ID}"); +ALIGNED(4) const u8 gText_PleaseStartOver[] = _("Please start over from the beginning."); +ALIGNED(4) const u8 gText_WirelessSearchCanceled[] = _("The WIRELESS COMMUNICATION\nSYSTEM search has been canceled."); +ALIGNED(4) const u8 unref_text_union_room_0[] = _("Awaiting communication\nfrom another player."); +ALIGNED(4) const u8 gText_AwaitingCommunication[] = _("{STR_VAR_1}! Awaiting\ncommunication from another player."); +ALIGNED(4) const u8 gText_AwaitingLink[] = _("{STR_VAR_1}! Awaiting link!\nPress START when everyone's ready."); +ALIGNED(4) const u8 gJPText_SingleBattle[] = _("シングルバトルを かいさいする"); +ALIGNED(4) const u8 gJPText_DoubleBattle[] = _("ダブルバトルを かいさいする"); +ALIGNED(4) const u8 gJPText_MultiBattle[] = _("マルチバトルを かいさいする"); +ALIGNED(4) const u8 gJPText_TradePokemon[] = _("ポケモンこうかんを かいさいする"); +ALIGNED(4) const u8 gJPText_Chat[] = _("チャットを かいさいする"); +ALIGNED(4) const u8 gJPText_DistWonderCard[] = _("ふしぎなカードをくばる"); +ALIGNED(4) const u8 gJPText_DistWonderNews[] = _("ふしぎなニュースをくばる"); +ALIGNED(4) const u8 unref_text_union_room_1[] = _("ふしぎなできごとを かいさいする"); +ALIGNED(4) const u8 gJPText_HoldPokemonJump[] = _("なわとびを かいさいする"); +ALIGNED(4) const u8 gJPText_HoldBerryCrush[] = _("きのみマッシャーを かいさいする"); +ALIGNED(4) const u8 gJPText_HoldBerryPicking[] = _("きのみどりを かいさいする"); +ALIGNED(4) const u8 gJPText_HoldSpinTrade[] = _("ぐるぐるこうかんを かいさいする"); +ALIGNED(4) const u8 gJPText_HoldSpinShop[] = _("ぐるぐるショップを かいさいする"); + +const u8 *const unref_text_ptrs_union_room_0[] = { + gJPText_SingleBattle, + gJPText_DoubleBattle, + gJPText_MultiBattle, + gJPText_TradePokemon, + gJPText_Chat, + gJPText_DistWonderCard, + gJPText_DistWonderNews, + gJPText_DistWonderCard, + gJPText_HoldPokemonJump, + gJPText_HoldBerryCrush, + gJPText_HoldBerryPicking, + gJPText_HoldBerryPicking, + gJPText_HoldSpinTrade, + gJPText_HoldSpinShop +}; + +const u8 gText_1PlayerNeeded[] = _("1 player\nneeded."); +const u8 gText_2PlayersNeeded[] = _("2 players\nneeded."); +const u8 gText_3PlayersNeeded[] = _("3 players\nneeded."); +const u8 gText_4PlayersNeeded[] = _("4 players\nneeded."); +const u8 gText_2PlayerMode[] = _("2-PLAYER\nMODE"); +const u8 gText_3PlayerMode[] = _("3-PLAYER\nMODE"); +const u8 gText_4PlayerMode[] = _("4-PLAYER\nMODE"); +const u8 gText_5PlayerMode[] = _("5-PLAYER\nMODE"); + +const u8 *const gUnknown_082EDB60[][5] = { + { + gText_1PlayerNeeded, + gText_2PlayerMode, + NULL, + NULL, + NULL + }, { + gText_3PlayersNeeded, + gText_2PlayersNeeded, + gText_1PlayerNeeded, + gText_4PlayerMode, + NULL + }, { + gText_1PlayerNeeded, + gText_2PlayerMode, + gText_3PlayerMode, + gText_4PlayerMode, + gText_5PlayerMode + }, { + gText_2PlayersNeeded, + gText_1PlayerNeeded, + gText_3PlayerMode, + gText_4PlayerMode, + gText_5PlayerMode + }, { + gText_1PlayerNeeded, + gText_2PlayerMode, + gText_3PlayerMode, + gText_4PlayerMode, + NULL + } +}; + +ALIGNED(4) const u8 gUnknown_082EDBC4[] = _("{B_BUTTON}CANCEL"); +ALIGNED(4) const u8 unref_text_union_room_2[] = _("ため\nさんかしゃ ぼしゅうちゅう です!"); +ALIGNED(4) const u8 gUnknown_082EDBE8[] = _("{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?"); +ALIGNED(4) const u8 gUnknown_082EDC0C[] = _("{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?"); +ALIGNED(4) const u8 gUnknown_082EDC34[] = _("{STR_VAR_2} contacted you.\nAdd to the members?"); +ALIGNED(4) const u8 gUnknown_082EDC5C[] = _("{STR_VAR_1}!\nAre these members OK?"); +ALIGNED(4) const u8 gUnknown_082EDC78[] = _("Cancel {STR_VAR_1} MODE\nwith these members?"); +ALIGNED(4) const u8 gUnknown_082EDC9C[] = _("An “OK” was sent\nto {STR_VAR_1}."); +ALIGNED(4) const u8 gUnknown_082EDCB4[] = _("The other TRAINER doesn't appear\nto be available now…\p"); +ALIGNED(4) const u8 gUnknown_082EDCEC[] = _("You can't transmit with a TRAINER\nwho is too far away.\p"); +ALIGNED(4) const u8 gUnknown_082EDD24[] = _("The other TRAINER(S) is/are not\nready yet.\p"); + +const u8 *const gUnknown_082EDD50[] = { + gUnknown_082EDCEC, + gUnknown_082EDD24 +}; + +ALIGNED(4) const u8 gUnknown_082EDD58[] = _("The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 60}"); +ALIGNED(4) const u8 gUnknown_082EDD8C[] = _("There is a member who can no\nlonger remain available.\p"); + +const u8 *const gUnknown_082EDDC4[] = { + gUnknown_082EDCB4, + gUnknown_082EDD8C +}; + +ALIGNED(4) const u8 gUnknown_082EDDCC[] = _("The other TRAINER appears\nunavailable…\p"); +ALIGNED(4) const u8 gUnknown_082EDDF4[] = _("{STR_VAR_1} sent back an “OK”!"); +ALIGNED(4) const u8 gUnknown_082EDE0C[] = _("{STR_VAR_1} OK'd your registration as\na member."); +ALIGNED(4) const u8 gUnknown_082EDE34[] = _("{STR_VAR_1} replied, “No…”\p"); +ALIGNED(4) const u8 gUnknown_082EDE48[] = _("{STR_VAR_1}!\nAwaiting other members!"); +ALIGNED(4) const u8 gUnknown_082EDE64[] = _("Quit being a member?"); +ALIGNED(4) const u8 gUnknown_082EDE7C[] = _("You stopped being a member.\p"); + +const u8 *const gUnknown_082EDE9C[] = { + NULL, + gUnknown_082EDD8C, + gUnknown_082EDDCC, + NULL, + NULL, + NULL, + gUnknown_082EDE34, + NULL, + NULL, + gUnknown_082EDE7C +}; + +ALIGNED(4) const u8 gUnknown_082EDEC4[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been established."); +ALIGNED(4) const u8 gUnknown_082EDF04[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…"); +ALIGNED(4) const u8 gUnknown_082EDF40[] = _("The link with your friend has been\ndropped…"); +ALIGNED(4) const u8 gUnknown_082EDF6C[] = _("{STR_VAR_1} replied, “No…”"); + +const u8 *const gUnknown_082EDF80[] = { + NULL, + gUnknown_082EDF40, + gUnknown_082EDF40, + NULL, + NULL, + NULL, + gUnknown_082EDF6C, + NULL, + NULL, + NULL +}; + +ALIGNED(4) const u8 gUnknown_082EDFA8[] = _("Do you want the {STR_VAR_2}\nMODE?"); +ALIGNED(4) const u8 gUnknown_082EDFC4[] = _("Do you want the {STR_VAR_2}\nMODE?"); + +const u8 *const unref_text_ptrs_union_room_1[] = { + gUnknown_082EDFA8, + gUnknown_082EDFC4 +}; + +ALIGNED(4) const u8 unref_text_union_room_3[] = _("Communicating…\nPlease wait."); +ALIGNED(4) const u8 gUnknown_082EE004[] = _("Awaiting {STR_VAR_1}'s response about\nthe trade…"); +ALIGNED(4) const u8 gUnknown_082EE02C[] = _("Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); +ALIGNED(4) const u8 gUnknown_082EE098[] = _("Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); +ALIGNED(4) const u8 gUnknown_082EE104[] = _("Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); + +const u8 *const gUnknown_082EE17C[] = { + gUnknown_082EE02C, + gUnknown_082EE098, + gUnknown_082EE104 +}; + +ALIGNED(4) const u8 gUnknown_082EE188[] = _("Hiya! Is there something that you\nwanted to do?"); +ALIGNED(4) const u8 gUnknown_082EE1B8[] = _("Hello!\nWould you like to do something?"); +ALIGNED(4) const u8 gUnknown_082EE1E0[] = _("{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?"); +ALIGNED(4) const u8 gUnknown_082EE218[] = _("{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?"); + +const u8 *const gUnknown_082EE24C[][2] = { + { + gUnknown_082EE188, + gUnknown_082EE1B8 + }, { + gUnknown_082EE1E0, + gUnknown_082EE218 + } +}; + +ALIGNED(4) const u8 gUnknown_082EE25C[] = _("Want to do something?"); +ALIGNED(4) const u8 gUnknown_082EE274[] = _("Would you like to do something?"); +ALIGNED(4) const u8 gUnknown_082EE294[] = _("{STR_VAR_1}: What would you like to\ndo now?"); +ALIGNED(4) const u8 unref_text_union_room_4[] = _("{STR_VAR_1}: Want to do anything else?"); + +const u8 *const unref_text_ptrs_union_room_2[][2] = { + { + gUnknown_082EE25C, + gUnknown_082EE274 + }, { + gUnknown_082EE294, + gUnknown_082EE294 + } +}; + +ALIGNED(4) const u8 gUnknown_082EE2E8[] = _("Somebody has contacted you.{PAUSE 60}"); +ALIGNED(4) const u8 gUnknown_082EE308[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}"); + +const u8 *const gUnknown_082EE324[] = { + gUnknown_082EE2E8, + gUnknown_082EE308 +}; + +ALIGNED(4) const u8 gUnknown_082EE32C[] = _("Awaiting a response from\nthe other TRAINER…"); +ALIGNED(4) const u8 gUnknown_082EE358[] = _("Awaiting a response from\n{STR_VAR_1}…"); + +const u8 *const gUnknown_082EE378[] = { + gUnknown_082EE32C, + gUnknown_082EE358 +}; + +ALIGNED(4) const u8 gUnknown_082EE380[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?"); +ALIGNED(4) const u8 gUnknown_082EE3DC[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?"); +ALIGNED(4) const u8 gUnknown_082EE430[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?"); +ALIGNED(4) const u8 gUnknown_082EE47C[] = _("There is an offer to trade your\nregistered Lv. {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}\pin exchange for a\nLv. {SPECIAL_F7 0x02} {SPECIAL_F7 0x03}.\pWill you accept this trade\noffer?"); +ALIGNED(4) const u8 gUnknown_082EE4F0[] = _("There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?"); +ALIGNED(4) const u8 gUnknown_082EE544[] = _("The chat has been dropped.\p"); +ALIGNED(4) const u8 gUnknown_082EE560[] = _("You declined the offer.\p"); +ALIGNED(4) const u8 gUnknown_082EE57C[] = _("You declined the offer.\p"); +ALIGNED(4) const u8 gUnknown_082EE598[] = _("The chat was ended.\p"); + +const u8 *const unref_text_ptrs_union_room_3[] = { + gUnknown_082EE380, + gUnknown_082EE3DC, + gUnknown_082EE430, + gUnknown_082EE47C +}; + +ALIGNED(4) const u8 gUnknown_082EE5C0[] = _("Oh, hey! We're in a chat right now.\nWant to join us?"); +ALIGNED(4) const u8 gUnknown_082EE5F8[] = _("{STR_VAR_1}: Hey, {PLAYER}!\nWe're having a chat right now.\lWant to join us?"); +ALIGNED(4) const u8 gUnknown_082EE638[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?"); +ALIGNED(4) const u8 gUnknown_082EE674[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?"); + +const u8 *const gUnknown_082EE6B8[][2] = { + { + gUnknown_082EE5C0, + gUnknown_082EE638 + }, { + gUnknown_082EE5F8, + gUnknown_082EE674 + } +}; + +ALIGNED(4) const u8 gUnknown_082EE6C8[] = _("……\nThe TRAINER appears to be busy…\p"); +ALIGNED(4) const u8 gUnknown_082EE6EC[] = _("A battle, huh?\nAll right, just give me some time."); +ALIGNED(4) const u8 gUnknown_082EE720[] = _("You want to chat, huh?\nSure, just wait a little."); +ALIGNED(4) const u8 gUnknown_082EE754[] = _("Sure thing! As my “Greetings,”\nhere's my TRAINER CARD."); +ALIGNED(4) const u8 gUnknown_082EE78C[] = _("A battle? Of course, but I need\ntime to get ready."); +ALIGNED(4) const u8 gUnknown_082EE7C0[] = _("Did you want to chat?\nOkay, but please wait a moment."); +ALIGNED(4) const u8 gUnknown_082EE7F8[] = _("As my introduction, I'll show you\nmy TRAINER CARD."); + +const u8 *const gUnknown_082EE82C[][4] = { + { + gUnknown_082EE6EC, + gUnknown_082EE720, + NULL, + gUnknown_082EE754 + }, { + gUnknown_082EE78C, + gUnknown_082EE7C0, + NULL, + gUnknown_082EE7F8 + } +}; + +ALIGNED(4) const u8 unref_text_union_room_5[] = _("You want to chat, huh?\nSure, just wait a little."); +ALIGNED(4) const u8 gUnknown_082EE880[] = _("Thanks for waiting!\nLet's get our battle started!{PAUSE 60}"); +ALIGNED(4) const u8 gUnknown_082EE8B8[] = _("All right!\nLet's chat!{PAUSE 60}"); +ALIGNED(4) const u8 gUnknown_082EE8D4[] = _("Sorry I made you wait!\nLet's get started!{PAUSE 60}"); +ALIGNED(4) const u8 gUnknown_082EE904[] = _("Sorry I made you wait!\nLet's chat.{PAUSE 60}"); +ALIGNED(4) const u8 gUnknown_082EE92C[] = _("The trade will be started.{PAUSE 60}"); +ALIGNED(4) const u8 gUnknown_082EE94C[] = _("The battle will be started.{PAUSE 60}"); +ALIGNED(4) const u8 gUnknown_082EE96C[] = _("Entering the chat…{PAUSE 60}"); + +const u8 *const gUnknown_082EE984[][3] = { + { + gUnknown_082EE94C, + gUnknown_082EE96C, + gUnknown_082EE92C + }, { + gUnknown_082EE94C, + gUnknown_082EE96C, + gUnknown_082EE92C + }, { + gUnknown_082EE880, + gUnknown_082EE8B8, + gUnknown_082EE92C + }, { + gUnknown_082EE8D4, + gUnknown_082EE904, + gUnknown_082EE92C + } +}; + +ALIGNED(4) const u8 gUnknown_082EE9B4[] = _("Sorry! My POKéMON don't seem to\nbe feeling too well right now.\lLet me battle you another time.\p"); +ALIGNED(4) const u8 gUnknown_082EEA14[] = _("I'm terribly sorry, but my POKéMON\naren't feeling well…\pLet's battle another time.\p"); + +const u8 *const gUnknown_082EEA68[] = { + gUnknown_082EE9B4, + gUnknown_082EEA14 +}; + +ALIGNED(4) const u8 gUnknown_082EEA70[] = _("Huh? My TRAINER CARD…\nWhere'd it go now?\lSorry! I'll show you another time!\p"); +ALIGNED(4) const u8 gUnknown_082EEAC0[] = _("Oh? Now where did I put my\nTRAINER CARD?…\lSorry! I'll show you later!\p"); + +const u8 *const gUnknown_082EEB08[] = { + gUnknown_082EEA70, + gUnknown_082EEAC0 +}; + +ALIGNED(4) const u8 gUnknown_082EEB10[] = _("If you want to do something with\nme, just give me a shout!\p"); +ALIGNED(4) const u8 gUnknown_082EEB4C[] = _("If you want to do something with\nme, don't be shy.\p"); + +const u8 *const gUnknown_082EEB80[] = { + gUnknown_082EEB10, + gUnknown_082EEB4C +}; + +ALIGNED(4) const u8 gUnknown_082EEB88[] = _("Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p"); +ALIGNED(4) const u8 gUnknown_082EEBD0[] = _("If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p"); +ALIGNED(4) const u8 gUnknown_082EEC14[] = _("For a battle, you need two\nPOKéMON that are below Lv. 30.\p"); +ALIGNED(4) const u8 gUnknown_082EEC50[] = _("Oh, all right.\nCome see me anytime, okay?\p"); +ALIGNED(4) const u8 gUnknown_082EEC7C[] = _("Oh…\nPlease come by anytime.\p"); + +const u8 *const gUnknown_082EEC9C[] = { + gUnknown_082EEC50, + gUnknown_082EEC7C +}; + +ALIGNED(4) const u8 gUnknown_082EECA4[] = _("Oh, sorry!\nI just can't right this instant.\lLet's chat another time.\p"); +ALIGNED(4) const u8 gUnknown_082EECEC[] = _("Oh, I'm sorry.\nI have too much to do right now.\lLet's chat some other time.\p"); + +const u8 *const gUnknown_082EED3C[] = { + gUnknown_082EECA4, + gUnknown_082EECEC +}; + +ALIGNED(4) const u8 gUnknown_082EED44[] = _("Whoa!\nI can tell you're pretty tough!\p"); +ALIGNED(4) const u8 gUnknown_082EED6C[] = _("You used that move?\nThat's good strategy!\p"); +ALIGNED(4) const u8 gUnknown_082EED98[] = _("Way to go!\nThat was an eye-opener!\p"); +ALIGNED(4) const u8 gUnknown_082EEDBC[] = _("Oh! How could you use that\nPOKéMON in that situation?\p"); +ALIGNED(4) const u8 gUnknown_082EEDF4[] = _("That POKéMON…\nIt's been raised really well!\p"); +ALIGNED(4) const u8 gUnknown_082EEE24[] = _("That's it!\nThis is the right move now!\p"); +ALIGNED(4) const u8 gUnknown_082EEE4C[] = _("That's awesome!\nYou can battle that way?\p"); +ALIGNED(4) const u8 gUnknown_082EEE78[] = _("You have exquisite timing for\nswitching POKéMON!\p"); + +const u8 *const gUnknown_082EEEAC[][4] = { + { + gUnknown_082EED44, + gUnknown_082EED6C, + gUnknown_082EED98, + gUnknown_082EEDBC + }, { + gUnknown_082EEDF4, + gUnknown_082EEE24, + gUnknown_082EEE4C, + gUnknown_082EEE78 + } +}; + +ALIGNED(4) const u8 gUnknown_082EEECC[] = _("Oh, I see!\nThis is educational!\p"); +ALIGNED(4) const u8 gUnknown_082EEEF0[] = _("Don't say anything funny anymore!\nI'm sore from laughing!\p"); +ALIGNED(4) const u8 gUnknown_082EEF2C[] = _("Oh?\nSomething like that happened.\p"); +ALIGNED(4) const u8 gUnknown_082EEF50[] = _("Hmhm… What?\nSo is this what you're saying?\p"); +ALIGNED(4) const u8 gUnknown_082EEF7C[] = _("Is that right?\nI didn't know that.\p"); +ALIGNED(4) const u8 gUnknown_082EEFA0[] = _("Ahaha!\nWhat is that about?\p"); +ALIGNED(4) const u8 gUnknown_082EEFBC[] = _("Yes, that's exactly it!\nThat's what I meant.\p"); +ALIGNED(4) const u8 gUnknown_082EEFEC[] = _("In other words…\nYes! That's right!\p"); + +const u8 *const gUnknown_082EF010[][4] = { + { + gUnknown_082EEECC, + gUnknown_082EEEF0, + gUnknown_082EEF2C, + gUnknown_082EEF50 + }, { + gUnknown_082EEF7C, + gUnknown_082EEFA0, + gUnknown_082EEFBC, + gUnknown_082EEFEC + } +}; + +ALIGNED(4) const u8 gUnknown_082EF030[] = _("I'm just showing my TRAINER CARD\nas my way of greeting.\p"); +ALIGNED(4) const u8 gUnknown_082EF06C[] = _("I hope I get to know you better!\p"); +ALIGNED(4) const u8 gUnknown_082EF090[] = _("We're showing each other our\nTRAINER CARDS to get acquainted.\p"); +ALIGNED(4) const u8 gUnknown_082EF0D0[] = _("Glad to meet you.\nPlease don't be a stranger!\p"); + +const u8 *const gUnknown_082EF100[][2] = { + { + gUnknown_082EF030, + gUnknown_082EF06C + }, { + gUnknown_082EF090, + gUnknown_082EF0D0 + } +}; + +ALIGNED(4) const u8 gUnknown_082EF110[] = _("Yeahah!\nI really wanted this POKéMON!\p"); +ALIGNED(4) const u8 gUnknown_082EF138[] = _("Finally, a trade got me that\nPOKéMON I'd wanted a long time.\p"); +ALIGNED(4) const u8 gUnknown_082EF178[] = _("I'm trading POKéMON right now.\p"); +ALIGNED(4) const u8 gUnknown_082EF198[] = _("I finally got that POKéMON I\nwanted in a trade!\p"); + +const u8 *const gUnknown_082EF1CC[][4] = { + { + gUnknown_082EF110, + gUnknown_082EF138, + NULL, + NULL + }, { + gUnknown_082EF178, + gUnknown_082EF198, + NULL, + NULL + } +}; + +ALIGNED(4) const u8 gUnknown_082EF1EC[] = _("{STR_VAR_1} checked the\nTRADING BOARD.\p"); +ALIGNED(4) const u8 gUnknown_082EF20C[] = _("Welcome to the TRADING BOARD.\pYou may register your POKéMON\nand offer it up for a trade.\pWould you like to register one of\nyour POKéMON?"); +ALIGNED(4) const u8 gUnknown_082EF298[] = _("This TRADING BOARD is used for\noffering a POKéMON for a trade.\pAll you need to do is register a\nPOKéMON for a trade.\pAnother TRAINER may offer a party\nPOKéMON in return for the trade.\pWe hope you will register POKéMON\nand trade them with many, many\lother TRAINERS.\pWould you like to register one of\nyour POKéMON?"); +ALIGNED(4) const u8 unref_text_union_room_6[] = _("We have registered your POKéMON for\ntrade on the TRADING BOARD.\pThank you for using this service!\p"); +ALIGNED(4) const u8 unref_text_union_room_7[] = _("Nobody has registered any POKéMON\nfor trade on the TRADING BOARD.\p\n"); +ALIGNED(4) const u8 gUnknown_082EF47C[] = _("Please choose the type of POKéMON\nthat you would like in the trade.\n"); +ALIGNED(4) const u8 gUnknown_082EF4C4[] = _("Which of your party POKéMON will\nyou offer in trade?\p"); +ALIGNED(4) const u8 gUnknown_082EF4FC[] = _("Registration has been canceled.\p"); +ALIGNED(4) const u8 gUnknown_082EF520[] = _("Registration has been completed.\p"); +ALIGNED(4) const u8 gUnknown_082EF544[] = _("The trade has been canceled.\p"); +ALIGNED(4) const u8 gUnknown_082EF564[] = _("Cancel the registration of your\nLv. {STR_VAR_2} {STR_VAR_1}?"); +ALIGNED(4) const u8 gUnknown_082EF590[] = _("Cancel the registration of your\nEGG?"); +ALIGNED(4) const u8 gUnknown_082EF5B8[] = _("The registration has been canceled.\p"); +ALIGNED(4) const u8 unref_text_union_room_8[] = _("TRAINERS wishing to make a trade\nwill be listed."); +ALIGNED(4) const u8 unref_text_union_room_9[] = _("Please choose the TRAINER with whom\nyou would like to trade POKéMON."); +ALIGNED(4) const u8 gUnknown_082EF65C[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?"); +ALIGNED(4) const u8 unref_text_union_room_10[] = _("Awaiting a response from\nthe other TRAINER…"); +ALIGNED(4) const u8 unref_text_union_room_11[] = _("You have not registered a POKéMON\nfor trading.\p"); +ALIGNED(4) const u8 gUnknown_082EF6E4[] = _("You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p"); +ALIGNED(4) const u8 gUnknown_082EF718[] = _("You don't have an EGG that\n{STR_VAR_1} wants.\p"); +ALIGNED(4) const u8 gUnknown_082EF740[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p"); +ALIGNED(4) const u8 gUnknown_082EF774[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p"); + +const u8 *const unref_text_ptrs_union_room_4[] = { + gUnknown_082EF740, + gUnknown_082EF774 +}; + +ALIGNED(4) const u8 gUnknown_082EF7B0[] = _("Your trade offer was rejected.\p"); +ALIGNED(4) const u8 gUnknown_082EF7D0[] = _("EGG TRADE"); +ALIGNED(4) const u8 gUnknown_082EF7DC[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL"); +ALIGNED(4) const u8 gUnknown_082EF7F8[] = _("Please choose a TRAINER."); +ALIGNED(4) const u8 gUnknown_082EF814[] = _("Please choose a TRAINER for\na SINGLE BATTLE."); +ALIGNED(4) const u8 gUnknown_082EF844[] = _("Please choose a TRAINER for\na DOUBLE BATTLE."); +ALIGNED(4) const u8 gUnknown_082EF874[] = _("Please choose the LEADER\nfor a MULTI BATTLE."); +ALIGNED(4) const u8 gUnknown_082EF8A4[] = _("Please choose the TRAINER to\ntrade with."); +ALIGNED(4) const u8 gUnknown_082EF8D0[] = _("Please choose the TRAINER who is\nsharing WONDER CARDS."); +ALIGNED(4) const u8 gUnknown_082EF908[] = _("Please choose the TRAINER who is\nsharing WONDER NEWS."); +ALIGNED(4) const u8 gUnknown_082EF940[] = _("Jump with mini POKéMON!\nPlease choose the LEADER."); +ALIGNED(4) const u8 gUnknown_082EF974[] = _("BERRY CRUSH!\nPlease choose the LEADER."); +ALIGNED(4) const u8 gUnknown_082EF99C[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER."); +ALIGNED(4) const u8 gUnknown_082EF9CC[] = _("BERRY BLENDER!\nPlease choose the LEADER."); +ALIGNED(4) const u8 gUnknown_082EF9F8[] = _("RECORD CORNER!\nPlease choose the LEADER."); +ALIGNED(4) const u8 gUnknown_082EFA24[] = _("COOLNESS CONTEST!\nPlease choose the LEADER."); +ALIGNED(4) const u8 gUnknown_082EFA50[] = _("BEAUTY CONTEST!\nPlease choose the LEADER."); +ALIGNED(4) const u8 gUnknown_082EFA7C[] = _("CUTENESS CONTEST!\nPlease choose the LEADER."); +ALIGNED(4) const u8 gUnknown_082EFAA8[] = _("SMARTNESS CONTEST!\nPlease choose the LEADER."); +ALIGNED(4) const u8 gUnknown_082EFAD8[] = _("TOUGHNESS CONTEST!\nPlease choose the LEADER."); +ALIGNED(4) const u8 gUnknown_082EFB08[] = _("BATTLE TOWER LEVEL 50!\nPlease choose the LEADER."); +ALIGNED(4) const u8 gUnknown_082EFB3C[] = _("BATTLE TOWER OPEN LEVEL!\nPlease choose the LEADER."); + +const u8 *const gUnknown_082EFB70[] = { + gUnknown_082EF814, + gUnknown_082EF844, + gUnknown_082EF874, + gUnknown_082EF8A4, + gUnknown_082EF940, + gUnknown_082EF974, + gUnknown_082EF99C, + gUnknown_082EF8D0, + gUnknown_082EF908, + NULL, + NULL, + NULL, + gUnknown_082EF9F8, + gUnknown_082EF9CC, + NULL, + gUnknown_082EFA24, + gUnknown_082EFA50, + gUnknown_082EFA7C, + gUnknown_082EFAA8, + gUnknown_082EFAD8, + gUnknown_082EFB08, + gUnknown_082EFB3C +}; + +ALIGNED(4) const u8 gUnknown_082EFBC8[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait..."); +ALIGNED(4) const u8 unref_text_union_room_12[] = _("For a DOUBLE BATTLE, you must have\nat least two POKéMON.\p"); +ALIGNED(4) const u8 gUnknown_082EFC3C[] = _("Awaiting {STR_VAR_1}'s response…"); +ALIGNED(4) const u8 gUnknown_082EFC54[] = _("{STR_VAR_1} has been asked to register\nyou as a member. Please wait."); +ALIGNED(4) const u8 gUnknown_082EFC90[] = _("Awaiting a response from the\nWIRELESS COMMUNICATION SYSTEM."); +ALIGNED(4) const u8 unref_text_union_room_13[] = _("Please wait for other TRAINERS to\ngather and get ready."); +ALIGNED(4) const u8 gUnknown_082EFD04[] = _("No CARDS appear to be shared \nright now."); +ALIGNED(4) const u8 gUnknown_082EFD30[] = _("No NEWS appears to be shared\nright now."); + +const u8 *const gUnknown_082EFD58[] = { + gUnknown_082EFD04, + gUnknown_082EFD30 +}; + +ALIGNED(4) const u8 gUnknown_082EFD60[] = _("BATTLE"); +ALIGNED(4) const u8 gUnknown_082EFD68[] = _("CHAT"); +ALIGNED(4) const u8 gUnknown_082EFD70[] = _("GREETINGS"); +ALIGNED(4) const u8 gUnknown_082EFD7C[] = _("EXIT"); +ALIGNED(4) const u8 gUnknown_082EFD84[] = _("EXIT"); +ALIGNED(4) const u8 gUnknown_082EFD8C[] = _("INFO"); +ALIGNED(4) const u8 gUnknown_082EFD94[] = _("NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV."); +ALIGNED(4) const u8 gUnknown_082EFDB0[] = _("SINGLE BATTLE"); +ALIGNED(4) const u8 gUnknown_082EFDC0[] = _("DOUBLE BATTLE"); +ALIGNED(4) const u8 gUnknown_082EFDD0[] = _("MULTI BATTLE"); +ALIGNED(4) const u8 gUnknown_082EFDE0[] = _("POKéMON TRADES"); +ALIGNED(4) const u8 gUnknown_082EFDF0[] = _("CHAT"); +ALIGNED(4) const u8 gUnknown_082EFDF8[] = _("CARDS"); +ALIGNED(4) const u8 gUnknown_082EFE00[] = _("WONDER CARDS"); +ALIGNED(4) const u8 gUnknown_082EFE10[] = _("WONDER NEWS"); +ALIGNED(4) const u8 gUnknown_082EFE1C[] = _("POKéMON JUMP"); +ALIGNED(4) const u8 gUnknown_082EFE2C[] = _("BERRY CRUSH"); +ALIGNED(4) const u8 gUnknown_082EFE38[] = _("BERRY-PICKING"); +ALIGNED(4) const u8 gUnknown_082EFE48[] = _("SEARCH"); +ALIGNED(4) const u8 gUnknown_082EFE50[] = _("BERRY BLENDER"); +ALIGNED(4) const u8 gUnknown_082EFE60[] = _("RECORD CORNER"); +ALIGNED(4) const u8 gUnknown_082EFE70[] = _("COOL CONTEST"); +ALIGNED(4) const u8 gUnknown_082EFE80[] = _("BEAUTY CONTEST"); +ALIGNED(4) const u8 gUnknown_082EFE90[] = _("CUTE CONTEST"); +ALIGNED(4) const u8 gUnknown_082EFEA0[] = _("SMART CONTEST"); +ALIGNED(4) const u8 gUnknown_082EFEB0[] = _("TOUGH CONTEST"); +ALIGNED(4) const u8 gUnknown_082EFEC0[] = _("BATTLE TOWER LV. 50"); +ALIGNED(4) const u8 gUnknown_082EFED4[] = _("BATTLE TOWER OPEN LEVEL"); +ALIGNED(4) const u8 gUnknown_082EFEEC[] = _("It's a NORMAL CARD."); +ALIGNED(4) const u8 gUnknown_082EFF00[] = _("It's a BRONZE CARD!"); +ALIGNED(4) const u8 gUnknown_082EFF14[] = _("It's a COPPER CARD!"); +ALIGNED(4) const u8 gUnknown_082EFF28[] = _("It's a SILVER CARD!"); +ALIGNED(4) const u8 gUnknown_082EFF3C[] = _("It's a GOLD CARD!"); + +const u8 *const gUnknown_082EFF50[] = { + gUnknown_082EFEEC, + gUnknown_082EFF00, + gUnknown_082EFF14, + gUnknown_082EFF28, + gUnknown_082EFF3C +}; + +ALIGNED(4) const u8 gUnknown_082EFF64[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p"); +ALIGNED(4) const u8 gUnknown_082EFFA4[] = _("BATTLES: WINS: {SPECIAL_F7 0x00} LOSSES: {SPECIAL_F7 0x02}\nTRADES: {SPECIAL_F7 0x03}\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p"); +ALIGNED(4) const u8 gUnknown_082EFFDC[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}"); +ALIGNED(4) const u8 gUnknown_082EFFFC[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}"); + +const u8 *const gUnknown_082F0018[] = { + gUnknown_082EFFDC, + gUnknown_082EFFFC +}; + +ALIGNED(4) const u8 gUnknown_082F0020[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}"); + +const u8 *const gUnknown_082F0048[] = { + gText_EmptyString, + gUnknown_082EFDB0, + gUnknown_082EFDC0, + gUnknown_082EFDD0, + gUnknown_082EFDE0, + gUnknown_082EFDF0, + gUnknown_082EFE00, + gUnknown_082EFE10, + gUnknown_082EFDF8, + gUnknown_082EFE1C, + gUnknown_082EFE2C, + gUnknown_082EFE38, + gUnknown_082EFE48, + gText_EmptyString, + gUnknown_082EFED4, + gUnknown_082EFE60, + gUnknown_082EFE50, + gText_EmptyString, + gText_EmptyString, + gText_EmptyString, + gText_EmptyString, + gUnknown_082EFE00, + gUnknown_082EFE10, + gUnknown_082EFE70, + gUnknown_082EFE80, + gUnknown_082EFE90, + gUnknown_082EFEA0, + gUnknown_082EFEB0, + gUnknown_082EFEC0 +}; + +const struct WindowTemplate gUnknown_082F00BC = { + .bg = 0x00, + .tilemapLeft = 0x00, + .tilemapTop = 0x00, + .width = 0x1E, + .height = 0x02, + .paletteNum = 0x0F, + .baseBlock = 0x0008 +}; + +const u32 gUnknown_082F00C4[] = { + 0x0201, + 0x0202, + 0x0403, + 0x0204, + 0x2509, + 0x250a, + 0x350b, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x240f, + 0x2410, + 0x0000, + 0x2417, + 0x2418, + 0x2419, + 0x241a, + 0x241b, + 0x021c, + 0x020e +}; + +const struct WindowTemplate gUnknown_082F011C = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x03, + .width = 0x0d, + .height = 0x08, + .paletteNum = 0x0f, + .baseBlock = 0x0044 +}; + +const struct WindowTemplate gUnknown_082F0124 = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x03, + .width = 0x0d, + .height = 0x0a, + .paletteNum = 0x0f, + .baseBlock = 0x0044 +}; + +const struct WindowTemplate gUnknown_082F012C = { + .bg = 0x00, + .tilemapLeft = 0x10, + .tilemapTop = 0x03, + .width = 0x07, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x00c6 +}; + +const struct ListMenuItem gUnknown_082F0134[] = { + { gText_EmptyString, 0 }, + { gText_EmptyString, 1 }, + { gText_EmptyString, 2 }, + { gText_EmptyString, 3 }, + { gText_EmptyString, 4 } +}; + +const struct ListMenuTemplate gUnknown_082F015C = { + .items = gUnknown_082F0134, + .moveCursorFunc = NULL, + .itemPrintFunc = sub_8013278, + .totalItems = 5, + .maxShowed = 5, + .windowId = 0, + .header_X = 0, + .item_X = 0, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 1, + .cursorKind = 1 +}; + +const struct WindowTemplate gUnknown_082F0174 = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x03, + .width = 0x11, + .height = 0x0a, + .paletteNum = 0x0f, + .baseBlock = 0x0044 +}; + +const struct WindowTemplate gUnknown_082F017C = { + .bg = 0x00, + .tilemapLeft = 0x14, + .tilemapTop = 0x03, + .width = 0x07, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x00ee +}; + +const struct ListMenuItem gUnknown_082F0184[] = { + { gText_EmptyString, 0 }, + { gText_EmptyString, 1 }, + { gText_EmptyString, 2 }, + { gText_EmptyString, 3 }, + { gText_EmptyString, 4 }, + { gText_EmptyString, 5 }, + { gText_EmptyString, 6 }, + { gText_EmptyString, 7 }, + { gText_EmptyString, 8 }, + { gText_EmptyString, 9 }, + { gText_EmptyString, 10 }, + { gText_EmptyString, 11 }, + { gText_EmptyString, 12 }, + { gText_EmptyString, 13 }, + { gText_EmptyString, 14 }, + { gText_EmptyString, 15 } +}; + +const struct ListMenuTemplate gUnknown_082F0204 = { + .items = gUnknown_082F0184, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = sub_8013DF4, + .totalItems = 16, + .maxShowed = 5, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 1, + .fontId = 1, + .cursorKind = 0 +}; + +const struct WindowTemplate gUnknown_082F021C = { + .bg = 0x00, + .tilemapLeft = 0x14, + .tilemapTop = 0x05, + .width = 0x10, + .height = 0x08, + .paletteNum = 0x0f, + .baseBlock = 0x0001 +}; + +const struct ListMenuItem gUnknown_082F0224[] = { + { gUnknown_082EFD70, 0x208 }, + { gUnknown_082EFD60, 0x241 }, + { gUnknown_082EFD68, 0x245 }, + { gUnknown_082EFD7C, 0x040 } +}; + +const struct ListMenuTemplate gUnknown_082F0244 = { + .items = gUnknown_082F0224, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 4, + .maxShowed = 4, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 1, + .cursorKind = 0 +}; + +const struct WindowTemplate gUnknown_082F025C = { + .bg = 0x00, + .tilemapLeft = 0x12, + .tilemapTop = 0x07, + .width = 0x10, + .height = 0x06, + .paletteNum = 0x0f, + .baseBlock = 0x0001 +}; + +const struct ListMenuItem gUnknown_082F0264[] = { + { gText_Register, 1 }, + { gUnknown_082EFD8C, 2 }, + { gUnknown_082EFD7C, 3 } +}; + +const struct ListMenuTemplate gUnknown_082F027C = { + .items = gUnknown_082F0264, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 3, + .maxShowed = 3, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 1, + .cursorKind = 0 +}; + +const struct WindowTemplate gUnknown_082F0294 = { + .bg = 0x00, + .tilemapLeft = 0x14, + .tilemapTop = 0x01, + .width = 0x10, + .height = 0x0c, + .paletteNum = 0x0f, + .baseBlock = 0x0001 +}; + +const struct ListMenuItem gUnknown_082F029C[] = { + { gTypeNames[TYPE_NORMAL], TYPE_NORMAL }, + { gTypeNames[TYPE_FIRE], TYPE_FIRE }, + { gTypeNames[TYPE_WATER], TYPE_WATER }, + { gTypeNames[TYPE_ELECTRIC], TYPE_ELECTRIC }, + { gTypeNames[TYPE_GRASS], TYPE_GRASS }, + { gTypeNames[TYPE_ICE], TYPE_ICE }, + { gTypeNames[TYPE_GROUND], TYPE_GROUND }, + { gTypeNames[TYPE_ROCK], TYPE_ROCK }, + { gTypeNames[TYPE_FLYING], TYPE_FLYING }, + { gTypeNames[TYPE_PSYCHIC], TYPE_PSYCHIC }, + { gTypeNames[TYPE_FIGHTING], TYPE_FIGHTING }, + { gTypeNames[TYPE_POISON], TYPE_POISON }, + { gTypeNames[TYPE_BUG], TYPE_BUG }, + { gTypeNames[TYPE_GHOST], TYPE_GHOST }, + { gTypeNames[TYPE_DRAGON], TYPE_DRAGON }, + { gTypeNames[TYPE_STEEL], TYPE_STEEL }, + { gTypeNames[TYPE_DARK], TYPE_DARK }, + { gUnknown_082EFD7C, NUMBER_OF_MON_TYPES } +}; + +const struct ListMenuTemplate gUnknown_082F032C = { + .items = gUnknown_082F029C, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = NUMBER_OF_MON_TYPES, + .maxShowed = 6, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 1, + .cursorKind = 0 +}; + +const struct WindowTemplate gUnknown_082F0344 = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x01, + .width = 0x1c, + .height = 0x02, + .paletteNum = 0x0d, + .baseBlock = 0x0001 +}; + +const struct WindowTemplate gUnknown_082F034C = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x05, + .width = 0x1c, + .height = 0x0c, + .paletteNum = 0x0d, + .baseBlock = 0x0039 +}; + +const struct ListMenuItem gUnknown_082F0354[] = { + { gText_EmptyString, -3 }, + { gText_EmptyString, 0 }, + { gText_EmptyString, 1 }, + { gText_EmptyString, 2 }, + { gText_EmptyString, 3 }, + { gText_EmptyString, 4 }, + { gText_EmptyString, 5 }, + { gText_EmptyString, 6 }, + { gText_EmptyString, 7 }, + { gUnknown_082EFD84, 8 } +}; + +const struct ListMenuTemplate gUnknown_082F03A4 = { + .items = gUnknown_082F0354, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = sub_8017BE8, + .totalItems = 10, + .maxShowed = 6, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 14, + .fillValue = 15, + .cursorShadowPal = 13, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 1, + .cursorKind = 0 +}; + +const struct WindowTemplate UnrefWindowTemplate_082F03B4 = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x05, + .width = 0x1c, + .height = 0x0c, + .paletteNum = 0x0d, + .baseBlock = 0x0039 +}; + +const struct ListMenuItem gUnknown_082F03C4[] = { + { gText_EmptyString, 0 }, + { gText_EmptyString, 1 }, + { gText_EmptyString, 2 }, + { gText_EmptyString, 3 }, + { gText_EmptyString, 4 }, + { gText_EmptyString, 5 }, + { gText_EmptyString, 6 }, + { gText_EmptyString, 7 }, + { gText_EmptyString, 8 }, + { gText_EmptyString, 9 }, + { gText_EmptyString, 10 }, + { gText_EmptyString, 11 }, + { gText_EmptyString, 12 }, + { gText_EmptyString, 13 }, + { gText_EmptyString, 14 }, + { gText_EmptyString, 15 } +}; + +const struct ListMenuTemplate UnrefListMenuTemplate_082F0444 = { + .items = gUnknown_082F03C4, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = nullsub_14, + .totalItems = 16, + .maxShowed = 4, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 1, + .fontId = 1, + .cursorKind = 0 +}; + +const struct UnkStruct_Shared gUnknown_082F045C = {0}; + +ALIGNED(4) const u8 gUnknown_082F0474[] = {0x01, 0xff}; +ALIGNED(4) const u8 gUnknown_082F0478[] = {0x02, 0xff}; +ALIGNED(4) const u8 gUnknown_082F047C[] = {0x03, 0xff}; +ALIGNED(4) const u8 gUnknown_082F0480[] = {0x04, 0xff}; +ALIGNED(4) const u8 gUnknown_082F0484[] = {0x09, 0xff}; +ALIGNED(4) const u8 gUnknown_082F0488[] = {0x0a, 0xff}; +ALIGNED(4) const u8 gUnknown_082F048C[] = {0x0b, 0xff}; +ALIGNED(4) const u8 gUnknown_082F0490[] = {0x15, 0xff}; +ALIGNED(4) const u8 gUnknown_082F0494[] = {0x16, 0xff}; +ALIGNED(4) const u8 gUnknown_082F0498[] = {0x40, 0x41, 0x44, 0x45, 0x48, 0x51, 0x52, 0x53, 0x54, 0xff}; +ALIGNED(4) const u8 gUnknown_082F04A4[] = {0x0c, 0xff}; +ALIGNED(4) const u8 gUnknown_082F04A8[] = {0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x15, 0x16, 0x0d, 0xff}; +ALIGNED(4) const u8 gUnknown_082F04B4[] = {0x0f, 0xff}; +ALIGNED(4) const u8 gUnknown_082F04B8[] = {0x10, 0xff}; +ALIGNED(4) const u8 gUnknown_082F04BC[] = {0x17, 0xff}; +ALIGNED(4) const u8 gUnknown_082F04C0[] = {0x18, 0xff}; +ALIGNED(4) const u8 gUnknown_082F04C4[] = {0x19, 0xff}; +ALIGNED(4) const u8 gUnknown_082F04C8[] = {0x1a, 0xff}; +ALIGNED(4) const u8 gUnknown_082F04CC[] = {0x1b, 0xff}; +ALIGNED(4) const u8 gUnknown_082F04D0[] = {0x1c, 0xff}; +ALIGNED(4) const u8 gUnknown_082F04D4[] = {0x0e, 0xff}; + +const u8 *const gUnknown_082F04D8[] = { + gUnknown_082F0474, + gUnknown_082F0478, + gUnknown_082F047C, + gUnknown_082F0480, + gUnknown_082F0484, + gUnknown_082F0488, + gUnknown_082F048C, + gUnknown_082F0490, + gUnknown_082F0494, + gUnknown_082F0498, + gUnknown_082F04A4, + gUnknown_082F04A8, + gUnknown_082F04B4, + gUnknown_082F04B8, + NULL, + gUnknown_082F04BC, + gUnknown_082F04C0, + gUnknown_082F04C4, + gUnknown_082F04C8, + gUnknown_082F04CC, + gUnknown_082F04D0, + gUnknown_082F04D4 +}; + +const u8 gUnknown_082F0530[] = { + 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x15, + 0x16, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x0e, 0x00, 0x00 +}; // code void nullsub_89(void) @@ -930,7 +1872,7 @@ bool8 sub_801320C(struct UnkStruct_Leader *data, u32 arg1, u32 arg2) return FALSE; } -void sub_8013278(u8 arg0, u32 id, u8 arg2) +void sub_8013278(u8 arg0, s32 id, u8 arg2) { struct UnkStruct_Leader *data = gUnknown_02022C30.leader; u8 var = 0; @@ -1435,7 +2377,7 @@ u8 sub_8013DBC(struct UnkStruct_Group *data, u32 id) return 0; } -void sub_8013DF4(u8 arg0, u32 id, u8 arg2) +void sub_8013DF4(u8 arg0, s32 id, u8 arg2) { struct UnkStruct_Group *data = gUnknown_02022C30.group; u8 var = sub_8013DBC(data, id); @@ -4220,3 +5162,53 @@ u32 sub_80179AC(struct UnkStruct_x20 *arg0) sub_8018404(sp0, arg0); return sub_800E540(ReadAsU16(arg0->unk.field_0.unk_00.playerTrainerId), sp0); } + +s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender) +{ + bool32 r2; + + struct UnkStruct_x20 * r5 = &arg0->arr[arg2]; + + if (!r5->unk.field_0.unk_0a_7 && arg1 == 0) + { + sub_8018404(gStringVar1, r5); + r2 = sub_800E540(ReadAsU16(r5->unk.field_0.unk_00.playerTrainerId), gStringVar1); + if (r5->unk.field_0.unk_0a_0 == 0x45) + { + StringExpandPlaceholders(gStringVar4, gUnknown_082EE6B8[r2][playerGender]); + return 2; + } + else + { + sub_8017020(gUnknown_082EE17C[r2]); + return 1; + } + } + else + { + sub_8018404(gStringVar1, r5); + if (arg1 != 0) + { + playerGender = (r5->unk.field_0.unk_00.playerTrainerId[arg1 + 1] >> 3) & 1; + } + switch (r5->unk.field_0.unk_0a_0 & 0x3F) + { + case 1: + StringExpandPlaceholders(gStringVar4, gUnknown_082EEEAC[playerGender][Random() % 4]); + break; + case 4: + StringExpandPlaceholders(gStringVar4, gUnknown_082EF1CC[playerGender][Random() % 2]); + break; + case 5: + StringExpandPlaceholders(gStringVar4, gUnknown_082EF010[playerGender][Random() % 4]); + break; + case 8: + StringExpandPlaceholders(gStringVar4, gUnknown_082EF100[playerGender][Random() % 2]); + break; + default: + StringExpandPlaceholders(gStringVar4, gUnknown_082EE6C8); + break; + } + return 0; + } +} -- cgit v1.2.3 From 8fc51b045941324c210096ccdbd385f7bfb0f6a6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Mar 2019 15:50:04 -0400 Subject: through sub_8017CB0 --- src/union_room.c | 384 ++++++++++++++----------------------------------------- 1 file changed, 94 insertions(+), 290 deletions(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index a4a728a3b..fdd76221f 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -39,160 +39,17 @@ #include "field_player_avatar.h" #include "strings.h" #include "mevent.h" - -struct UnkStruct_Shared -{ - struct UnkLinkRfuStruct_02022B14 field_0; - u8 needingPadding[2]; - u8 playerName[PLAYER_NAME_LENGTH + 1]; -}; - -struct UnkStruct_x1C -{ - struct UnkStruct_Shared unk0; - u8 unk18:1; -}; - -struct UnkStruct_x20 -{ - struct UnkStruct_Shared unk; - u16 field_18; - u8 field_1A_0:2; - u8 field_1A_1:1; - u8 field_1B; - u8 field_1D; - u8 field_1E; - u8 field_1F; -}; - -struct UnkStruct_Main0 -{ - struct UnkStruct_x20 arr[8]; -}; - -struct UnkStruct_Main4 -{ - struct UnkStruct_x1C arr[5]; -}; - -struct UnkStruct_Main8 -{ - struct UnkStruct_x20 arr[5]; -}; - -struct UnkStruct_Leader -{ - struct UnkStruct_Main0 *field_0; - struct UnkStruct_Main4 *field_4; - struct UnkStruct_Main8 *field_8; - u8 state; - u8 textState; - u8 field_E; - u8 listWindowId; - u8 field_10; - u8 field_11; - u8 listTaskId; - u8 field_13; - u8 field_14; - u8 field_15; - u8 field_16; - u8 field_17; - u8 field_18; - u8 field_19; - u16 field_1A; -}; - -struct UnkStruct_Group -{ - struct UnkStruct_Main0 *field_0; - struct UnkStruct_Main4 *field_4; - u8 state; - u8 textState; - u8 field_A; - u8 listWindowId; - u8 field_C; - u8 field_D; - u8 listTaskId; - u8 field_F; - u8 field_10; - u8 field_11; - u8 field_12; - u8 field_13; - u8 field_14; - u8 field_15; -}; - -struct UnkStruct_8019BA8 -{ - u8 field_0; - u8 field_1; - u8 field_2; - u8 field_3; -}; - -struct UnkStruct_URoom -{ - struct UnkStruct_Main0 *field_0; - struct UnkStruct_Main4 *field_4; - struct UnkStruct_Main0 *field_8; - struct UnkStruct_Main4 *field_C; - u16 field_10; - u16 field_12; - u8 state; - u8 stateAfterPrint; - u8 textState; - u8 field_17; - u8 field_18; - u8 field_19; - u8 field_1A; - u8 field_1B; - u8 field_1C; - u8 field_1D; - u8 field_1E; - u8 field_1F; - u8 field_20; - u8 spriteIds[40]; - u8 field_49; - u8 field_4A; - u16 field_4C[6]; - u8 field_58[0x98 - 0x58]; - u16 field_98; - u16 field_9A[3]; - struct UnkStruct_8019BA8 field_A0[8]; -}; - -union UnkUnion_Main -{ - struct UnkStruct_Leader *leader; - struct UnkStruct_Group *group; - struct UnkStruct_URoom *uRoom; -}; - -struct TradeUnkStruct -{ - u16 field_0; - u16 field_2; - u32 field_4; - u8 field_8; - u8 field_9; - u16 field_A; - u16 field_C; - u16 species; - u16 level; - u16 field_12; - u32 personality; -}; - -extern struct TradeUnkStruct gUnknown_02022C40; -extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38; -extern union UnkUnion_Main gUnknown_02022C30; -extern u8 gUnknown_02022C2C; -extern u8 gUnknown_02022C2D; -extern u8 gUnknown_02022C3E; -extern u16 gUnknown_02022C3C; -extern u8 gUnknown_02022C20[]; -extern u8 gFieldLinkPlayerCount; -extern u8 gLocalLinkPlayerId; +#include "rom_8011DC0.h" + +EWRAM_DATA u8 gUnknown_02022C20[12] = {}; +EWRAM_DATA u8 gUnknown_02022C2C = 0; +EWRAM_DATA u8 gUnknown_02022C2D = 0; +EWRAM_DATA union UnkUnion_Main gUnknown_02022C30 = {}; +EWRAM_DATA u32 gFiller_02022C34 = 0; +EWRAM_DATA struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38 = {}; +EWRAM_DATA u16 gUnknown_02022C3C = 0; +EWRAM_DATA u8 gUnknown_02022C3E = 0; +EWRAM_DATA struct TradeUnkStruct gUnknown_02022C40 = {}; // IWRAM vars IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; @@ -268,7 +125,7 @@ void sub_801818C(bool32 arg0); void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2); s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate); s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6); -s32 sub_8017CB0(struct UnkStruct_Main0 * arg); +s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1); bool32 sub_8018024(void); u32 sub_8017984(s32 arg0); void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2); @@ -1326,7 +1183,7 @@ const u8 gUnknown_082F0530[] = { }; // code -void nullsub_89(void) +void nullsub_89(u8 taskId) { } @@ -4692,7 +4549,6 @@ s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTe return -1; } -#ifdef NONMATCHING s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6) { s32 input; @@ -4728,7 +4584,7 @@ s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTempl } else { - r4 = sub_8017CB0(arg6); + r4 = sub_8017CB0(arg6->arr, input); if (r4 >= 0) { DestroyListMenuTask(*arg2, NULL, NULL); @@ -4748,138 +4604,6 @@ s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTempl return -1; } -#else -NAKED -s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tadds r5, r0, 0\n" - "\tadds r6, r1, 0\n" - "\tmov r10, r2\n" - "\tmov r9, r3\n" - "\tldrb r4, [r5]\n" - "\tcmp r4, 0x1\n" - "\tbeq _0801730C\n" - "\tcmp r4, 0x1\n" - "\tbgt _080172C2\n" - "\tcmp r4, 0\n" - "\tbeq _080172C8\n" - "\tb _0801739C\n" - "_080172C2:\n" - "\tcmp r4, 0x2\n" - "\tbeq _0801731C\n" - "\tb _0801739C\n" - "_080172C8:\n" - "\tldr r0, =gUnknown_082F0344\n" - "\tbl sub_8017118\n" - "\tmov r1, r9\n" - "\tstrb r0, [r1]\n" - "\tldr r0, [sp, 0x20]\n" - "\tbl AddWindow\n" - "\tstrb r0, [r6]\n" - "\tldrb r0, [r6]\n" - "\tmovs r1, 0\n" - "\tbl DrawStdWindowFrame\n" - "\tldr r0, =gMultiuseListMenuTemplate\n" - "\tadds r2, r0, 0\n" - "\tldr r1, [sp, 0x24]\n" - "\tldm r1!, {r3,r4,r7}\n" - "\tstm r2!, {r3,r4,r7}\n" - "\tldm r1!, {r3,r4,r7}\n" - "\tstm r2!, {r3,r4,r7}\n" - "\tldrb r1, [r6]\n" - "\tstrb r1, [r0, 0x10]\n" - "\tmovs r1, 0\n" - "\tmovs r2, 0x1\n" - "\tbl ListMenuInit\n" - "\tmov r1, r10\n" - "\tstrb r0, [r1]\n" - "\tb _08017314\n" - "\t.pool\n" - "_0801730C:\n" - "\tldrb r0, [r6]\n" - "\tmovs r1, 0x1\n" - "\tbl CopyWindowToVram\n" - "_08017314:\n" - "\tldrb r0, [r5]\n" - "\tadds r0, 0x1\n" - "\tstrb r0, [r5]\n" - "\tb _0801739C\n" - "_0801731C:\n" - "\tmov r3, r10\n" - "\tldrb r0, [r3]\n" - "\tbl ListMenu_ProcessInput\n" - "\tadds r1, r0, 0\n" - "\tldr r0, =gMain\n" - "\tldrh r2, [r0, 0x2E]\n" - "\tmovs r0, 0x3\n" - "\tands r0, r2\n" - "\tcmp r0, 0\n" - "\tbeq _0801739C\n" - "\tcmp r1, 0x8\n" - "\tbeq _0801733E\n" - "\tands r4, r2\n" - "\tmov r8, r4\n" - "\tcmp r4, 0\n" - "\tbeq _08017368\n" - "_0801733E:\n" - "\tmov r4, r10\n" - "\tldrb r0, [r4]\n" - "\tmovs r1, 0\n" - "\tmovs r2, 0\n" - "\tbl DestroyListMenuTask\n" - "\tldrb r0, [r6]\n" - "\tbl RemoveWindow\n" - "\tmov r7, r9\n" - "\tldrb r0, [r7]\n" - "\tbl sub_8017168\n" - "\tmovs r0, 0\n" - "\tstrb r0, [r5]\n" - "\tmovs r0, 0x2\n" - "\tnegs r0, r0\n" - "\tb _080173A0\n" - "\t.pool\n" - "_08017368:\n" - "\tldr r0, [sp, 0x28]\n" - "\tbl sub_8017CB0\n" - "\tadds r4, r0, 0\n" - "\tcmp r4, 0\n" - "\tblt _08017396\n" - "\tmov r1, r10\n" - "\tldrb r0, [r1]\n" - "\tmovs r1, 0\n" - "\tmovs r2, 0\n" - "\tbl DestroyListMenuTask\n" - "\tldrb r0, [r6]\n" - "\tbl RemoveWindow\n" - "\tmov r3, r9\n" - "\tldrb r0, [r3]\n" - "\tbl sub_8017168\n" - "\tmov r7, r8\n" - "\tstrb r7, [r5]\n" - "\tadds r0, r4, 0\n" - "\tb _080173A0\n" - "_08017396:\n" - "\tmovs r0, 0x7\n" - "\tbl PlaySE\n" - "_0801739C:\n" - "\tmovs r0, 0x1\n" - "\tnegs r0, r0\n" - "_080173A0:\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r1}\n" - "\tbx r1"); -} -#endif - void sub_80173B0(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0); @@ -5212,3 +4936,83 @@ s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender return 0; } } + +void nullsub_14(u8 windowId, s32 itemId, u8 y) +{ + +} + +void sub_8017B3C(u8 arg0, u8 arg1, struct UnkLinkRfuStruct_02022B14 * arg2, const u8 * str, u8 arg4) +{ + u8 sp8[4]; + u16 r8 = arg2->species; + u8 r7 = arg2->type; + u8 r9 = arg2->unk_0b_1; + + sub_80173E0(arg0, 1, str, 8, arg1, arg4); + if (r8 == SPECIES_EGG) + { + sub_80173E0(arg0, 1, gUnknown_082EF7D0, 0x44, arg1, arg4); + } + else + { + blit_move_info_icon(arg0, r7 + 1, 0x44, arg1); + sub_80173E0(arg0, 1, gSpeciesNames[r8], 0x76, arg1, arg4); + ConvertIntToDecimalStringN(sp8, r9, STR_CONV_MODE_RIGHT_ALIGN, 3); + sub_80173E0(arg0, 1, sp8, 0xC6, arg1, arg4); + } +} + +void sub_8017BE8(u8 windowId, s32 itemId, u8 y) +{ + struct UnkStruct_Leader *leader = gUnknown_02022C30.leader; + struct UnkLinkRfuStruct_02022B14 *rfu; + s32 i, j; + u8 sp4[11]; + + if (itemId == -3 && y == gUnknown_082F03A4.upText_Y) + { + rfu = sub_800F7DC(); + if (rfu->species != SPECIES_NONE) + { + sub_8017B3C(windowId, y, rfu, gSaveBlock2Ptr->playerName, 5); + } + } + else + { + j = 0; + for (i = 0; i < 8; i++) + { + if (leader->field_0->arr[i].field_1A_0 == 1 && leader->field_0->arr[i].unk.field_0.species != SPECIES_NONE) + { + j++; + } + if (j == itemId + 1) + { + sub_8018404(sp4, &leader->field_0->arr[i]); + sub_8017B3C(windowId, y, &leader->field_0->arr[i].unk.field_0, sp4, 6); + break; + } + } + } +} + +s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1) +{ + s32 i; + s32 j = 0; + + for (i = 0; i < 8; i++) + { + if (arg[i].field_1A_0 == 1 && arg[i].unk.field_0.species != SPECIES_NONE) + { + j++; + } + if (j == arg1 + 1) + { + return i; + } + } + + return -1; +} -- cgit v1.2.3 From bf4a73a67cca44a01b8449aafb0d717551415a6b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Mar 2019 16:24:48 -0400 Subject: through sub_8017E00 --- src/union_room.c | 109 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 93 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index fdd76221f..078bf9887 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -129,7 +129,7 @@ s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1); bool32 sub_8018024(void); u32 sub_8017984(s32 arg0); void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2); -void sub_8017D9C(u8 *dst, u32 arg1, u32 playerGender); +void sub_8017D9C(u8 *dst, s32 arg1, u32 playerGender); u32 sub_80179AC(struct UnkStruct_x20 *arg0); void sub_8017E00(u8 *dst, u8 arg1); void sub_8019F04(u8 *spriteIds); @@ -423,23 +423,27 @@ ALIGNED(4) const u8 gUnknown_082EE92C[] = _("The trade will be started.{PAUSE 60 ALIGNED(4) const u8 gUnknown_082EE94C[] = _("The battle will be started.{PAUSE 60}"); ALIGNED(4) const u8 gUnknown_082EE96C[] = _("Entering the chat…{PAUSE 60}"); -const u8 *const gUnknown_082EE984[][3] = { +const u8 *const gUnknown_082EE984[][2][3] = { { - gUnknown_082EE94C, - gUnknown_082EE96C, - gUnknown_082EE92C - }, { - gUnknown_082EE94C, - gUnknown_082EE96C, - gUnknown_082EE92C - }, { - gUnknown_082EE880, - gUnknown_082EE8B8, - gUnknown_082EE92C + { + gUnknown_082EE94C, + gUnknown_082EE96C, + gUnknown_082EE92C + }, { + gUnknown_082EE94C, + gUnknown_082EE96C, + gUnknown_082EE92C + } }, { - gUnknown_082EE8D4, - gUnknown_082EE904, - gUnknown_082EE92C + { + gUnknown_082EE880, + gUnknown_082EE8B8, + gUnknown_082EE92C + }, { + gUnknown_082EE8D4, + gUnknown_082EE904, + gUnknown_082EE92C + } } }; @@ -5016,3 +5020,76 @@ s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1) return -1; } + +s32 sub_8017CF8(s32 arg1, struct UnkStruct_Main0 *arg0) +{ + return arg0->arr[arg1].unk.field_0.playerGender; +} + +s32 sub_8017D04(u32 type, u32 species) +{ + s32 i; + + if (species == SPECIES_EGG) + { + for (i = 0; i < gPlayerPartyCount; i++) + { + species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); + if (species == SPECIES_EGG) + { + return 0; + } + } + return 2; + } + else + { + for (i = 0; i < gPlayerPartyCount; i++) + { + species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); + if (gBaseStats[species].type1 == type || gBaseStats[species].type2 == type) + { + return 0; + } + } + return 1; + } +} + +void sub_8017D9C(u8 *dst, s32 arg1, u32 playerGender) +{ + switch (arg1) + { + case 0x41: + StringExpandPlaceholders(dst, gUnknown_082EEA68[playerGender]); + break; + case 0x45: + StringExpandPlaceholders(dst, gUnknown_082EED3C[playerGender]); + break; + case 0x44: + StringExpandPlaceholders(dst, gUnknown_082EF7B0); + break; + case 0x48: + StringExpandPlaceholders(dst, gUnknown_082EEB08[playerGender]); + break; + } +} + +void sub_8017E00(u8 *dst, u8 arg1) +{ + u8 mpId = GetMultiplayerId(); + u8 gender = gLinkPlayers[mpId ^ 1].gender; + + switch (arg1) + { + case 0x41: + StringCopy(dst, gUnknown_082EE984[mpId][gender][0]); + break; + case 0x44: + StringCopy(dst, gUnknown_082EE984[mpId][gender][2]); + break; + case 0x45: + StringCopy(dst, gUnknown_082EE984[mpId][gender][1]); + break; + } +} -- cgit v1.2.3 From 8d75dc1982010cedfa0b378f1a6be5805981da5c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Mar 2019 17:19:29 -0400 Subject: sub_8017EA0 --- src/union_room.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index 078bf9887..a1002b9b5 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -39,6 +39,7 @@ #include "field_player_avatar.h" #include "strings.h" #include "mevent.h" +#include "dynamic_placeholder_text_util.h" #include "rom_8011DC0.h" EWRAM_DATA u8 gUnknown_02022C20[12] = {}; @@ -5093,3 +5094,59 @@ void sub_8017E00(u8 *dst, u8 arg1) break; } } + +s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3) +{ + s32 result = 0; + u16 species = SPECIES_NONE; + s32 i; + + switch (arg2[0]) + { + case 0x41: + StringExpandPlaceholders(dst, gUnknown_082EE3DC); + result = 1; + break; + case 0x45: + StringExpandPlaceholders(dst, gUnknown_082EE430); + result = 1; + break; + case 0x44: + ConvertIntToDecimalStringN(arg3->field_58 + 0x00, gUnknown_02022C40.field_C, STR_CONV_MODE_LEFT_ALIGN, 3); + StringCopy(arg3->field_58 + 0x10, gSpeciesNames[gUnknown_02022C40.field_A]); + for (i = 0; i < 4; i++) + { + if (gUnknown_03007890->unk_14[i].unk_04 == 2) + { + ConvertIntToDecimalStringN(arg3->field_58 + 0x20, arg2[2], STR_CONV_MODE_LEFT_ALIGN, 3); + StringCopy(arg3->field_58 + 0x30, gSpeciesNames[arg2[1]]); + species = arg2[1]; + break; + } + } + if (species == SPECIES_EGG) + { + StringCopy(dst, gUnknown_082EE4F0); + } + else + { + for (i = 0; i < 4; i++) + { + DynamicPlaceholderTextUtil_SetPlaceholderPtr(i, arg3->field_58 + 0x10 * i); + } + DynamicPlaceholderTextUtil_ExpandPlaceholders(dst, gUnknown_082EE47C); + } + result = 1; + break; + case 0x48: + StringExpandPlaceholders(dst, gUnknown_082EE380); + result = 1; + break; + case 0x40: + StringExpandPlaceholders(dst, gUnknown_082EE544); + result = 2; + break; + } + + return result; +} -- cgit v1.2.3 From 6b6c98e7d0d1f0095bd1a62f1d5855b460b49f5c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Mar 2019 19:41:32 -0400 Subject: through sub_80180E8 --- src/union_room.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 90 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index a1002b9b5..d3a9c95a0 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -107,8 +107,8 @@ bool32 sub_8016F1C(struct UnkLinkRfuStruct_02022B14 *arg0, s16 arg1); u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2); void sub_8019F2C(void); void sub_8019E70(u8 *arg0, s32 arg1); -bool32 sub_80180A0(u8 monId, struct TradeUnkStruct *arg1); -void sub_80180E8(u8 monId, struct TradeUnkStruct *arg1); +bool32 sub_80180A0(u32 monId, struct TradeUnkStruct *arg1); +void sub_80180E8(u32 monId, struct TradeUnkStruct *arg1); bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3); void sub_80181CC(void); bool32 sub_8017940(void); @@ -5150,3 +5150,91 @@ s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3) return result; } + +bool32 sub_8017FD8(struct UnkStruct_URoom *arg0) +{ + if (gRecvCmds[0][1] != 0) + { + if (gRecvCmds[0][1] == 0x51) + { + arg0->field_98 = 0x51; + return TRUE; + } + else if (gRecvCmds[0][1] == 0x52) + { + arg0->field_98 = 0x52; + return TRUE; + } + } + return FALSE; +} + +bool32 InUnionRoom(void) +{ + return gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNION_ROOM) + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(UNION_ROOM) + ? TRUE : FALSE; +} + +bool32 sub_8018024(void) +{ + s32 i; + s32 count = 0; + + for (i = 0; i < gPlayerPartyCount; i++) + { + if ( GetMonData(&gPlayerParty[i], MON_DATA_LEVEL) <= 30 + && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) != SPECIES_EGG) + { + count++; + } + } + + if (count > 1) + { + return TRUE; + } + else + { + return FALSE; + } +} + +void sub_801807C(struct TradeUnkStruct *arg0) +{ + arg0->field_0 = 0; + arg0->field_2 = 0; + arg0->field_4 = 0; + arg0->field_A = 0; + arg0->field_C = 0; + arg0->species = 0; + arg0->level = 0; + arg0->personality = 0; +} + +void sub_8018090(void) +{ + sub_801807C(&gUnknown_02022C40); +} + +bool32 sub_80180A0(u32 monId, struct TradeUnkStruct *arg1) +{ + arg1->field_A = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2); + arg1->field_C = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); + arg1->field_4 = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY); + if (arg1->field_A == SPECIES_EGG) + { + return TRUE; + } + else + { + return FALSE; + } +} + +void sub_80180E8(u32 monId, struct TradeUnkStruct *arg1) +{ + arg1->species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2); + arg1->level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); + arg1->personality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY); +} -- cgit v1.2.3 From 2e588fd4d73a123ec41c92f2d7d3e70225c31c9d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 29 Mar 2019 22:22:26 -0400 Subject: through sub_80181DC --- src/union_room.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 90 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index d3a9c95a0..59b38e6cd 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -41,6 +41,7 @@ #include "mevent.h" #include "dynamic_placeholder_text_util.h" #include "rom_8011DC0.h" +#include "event_obj_lock.h" EWRAM_DATA u8 gUnknown_02022C20[12] = {}; EWRAM_DATA u8 gUnknown_02022C2C = 0; @@ -3341,7 +3342,7 @@ void sub_80156E0(u8 taskId) break; case 2: sub_8010F84(0x40, 0, 0); - sub_8010FCC(gUnknown_02022C40.field_2, gUnknown_02022C40.field_A, gUnknown_02022C40.field_C); + sub_8010FCC(gUnknown_02022C40.type, gUnknown_02022C40.playerSpecies, gUnknown_02022C40.playerLevel); sub_800B488(); OpenLink(); sub_8011C84(); @@ -3936,14 +3937,14 @@ void sub_80156E0(u8 taskId) sub_801568C(gUnknown_082EF4FC); break; default: - gUnknown_02022C40.field_2 = var5; + gUnknown_02022C40.type = var5; data->state = 55; break; } } break; case 55: - sub_8010FCC(gUnknown_02022C40.field_2, gUnknown_02022C40.field_A, gUnknown_02022C40.field_C); + sub_8010FCC(gUnknown_02022C40.type, gUnknown_02022C40.playerSpecies, gUnknown_02022C40.playerLevel); sub_801568C(gUnknown_082EF520); break; case 44: @@ -5112,8 +5113,8 @@ s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3) result = 1; break; case 0x44: - ConvertIntToDecimalStringN(arg3->field_58 + 0x00, gUnknown_02022C40.field_C, STR_CONV_MODE_LEFT_ALIGN, 3); - StringCopy(arg3->field_58 + 0x10, gSpeciesNames[gUnknown_02022C40.field_A]); + ConvertIntToDecimalStringN(arg3->field_58 + 0x00, gUnknown_02022C40.playerLevel, STR_CONV_MODE_LEFT_ALIGN, 3); + StringCopy(arg3->field_58 + 0x10, gSpeciesNames[gUnknown_02022C40.playerSpecies]); for (i = 0; i < 4; i++) { if (gUnknown_03007890->unk_14[i].unk_04 == 2) @@ -5203,10 +5204,10 @@ bool32 sub_8018024(void) void sub_801807C(struct TradeUnkStruct *arg0) { arg0->field_0 = 0; - arg0->field_2 = 0; - arg0->field_4 = 0; - arg0->field_A = 0; - arg0->field_C = 0; + arg0->type = 0; + arg0->playerPersonality = 0; + arg0->playerSpecies = 0; + arg0->playerLevel = 0; arg0->species = 0; arg0->level = 0; arg0->personality = 0; @@ -5219,10 +5220,10 @@ void sub_8018090(void) bool32 sub_80180A0(u32 monId, struct TradeUnkStruct *arg1) { - arg1->field_A = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2); - arg1->field_C = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); - arg1->field_4 = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY); - if (arg1->field_A == SPECIES_EGG) + arg1->playerSpecies = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2); + arg1->playerLevel = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); + arg1->playerPersonality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY); + if (arg1->playerSpecies == SPECIES_EGG) { return TRUE; } @@ -5238,3 +5239,79 @@ void sub_80180E8(u32 monId, struct TradeUnkStruct *arg1) arg1->level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); arg1->personality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY); } + +u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId) +{ + u16 response = 0; + u16 species; + u32 personality; + u32 cur_personality; + u16 cur_species; + s32 i; + + if (multiplayerId == 0) + { + species = arg0->playerSpecies; + personality = arg0->playerPersonality; + } + else + { + species = arg0->species; + personality = arg0->personality; + } + + for (i = 0; i < gPlayerPartyCount; i++) + { + cur_personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY); + if (cur_personality != personality) + { + continue; + } + cur_species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); + if (cur_species != species) + { + continue; + } + response = i; + break; + } + + return response; +} + +void sub_801818C(bool32 arg0) +{ + sub_80173B0(); + ScriptContext2_Disable(); + sub_8098524(); + gUnknown_02022C2C = 0; + if (arg0) + { + sub_8010FCC(gUnknown_02022C40.type, gUnknown_02022C40.playerSpecies, gUnknown_02022C40.playerLevel); + sub_8011090(0x40, 0, 0); + } +} + +void sub_80181CC(void) +{ + ScriptContext2_Enable(); + ScriptFreezeEventObjects(); +} + +u8 sub_80181DC(struct UnkStruct_URoom *arg0) +{ + u8 retVal = 0x80; + u8 i; + + for (i = 0; i < 4; i++) + { + if (arg0->field_C->arr[i].unk18) + { + retVal |= arg0->field_C->arr[i].unk0.field_0.playerGender << 3; + retVal |= arg0->field_C->arr[i].unk0.field_0.unk_00.playerTrainerId[0] & 7; + break; + } + } + + return retVal; +} -- cgit v1.2.3 From a978a6a62400b2bfba7107b66077d21822759cff Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 29 Mar 2019 21:22:51 -0500 Subject: Finish decompiling union_room_chat.c --- src/union_room_chat.c | 551 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 501 insertions(+), 50 deletions(-) (limited to 'src') diff --git a/src/union_room_chat.c b/src/union_room_chat.c index 4de15c563..85cfa6e2e 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -1,7 +1,11 @@ #include "global.h" #include "alloc.h" #include "bg.h" +#include "decompress.h" +#include "dma3.h" #include "dynamic_placeholder_text_util.h" +#include "gpu_regs.h" +#include "graphics.h" #include "link.h" #include "link_rfu.h" #include "load_save.h" @@ -66,8 +70,24 @@ struct UnionRoomChat2 u16 unk1A; u16 unk1C; u16 unk1E; - u8 filler20[0x2]; - u8 unk22[0x2146]; + s16 unk20; + u8 unk22[0x106]; + u8 unk128[BG_SCREEN_SIZE]; + u8 unk928[BG_SCREEN_SIZE]; + u8 unk1128[BG_SCREEN_SIZE]; + u8 unk1928[BG_SCREEN_SIZE]; + u8 unk2128[0x20]; + u8 unk2148[0x20]; +}; + +struct UnionRoomChat3 +{ + struct Sprite *unk0; + struct Sprite *unk4; + struct Sprite *unk8; + struct Sprite *unkC; + struct Sprite *unk10; + u16 unk14; }; struct Unk82F2C98 @@ -113,14 +133,14 @@ static void sub_801EDE0(void); static void sub_801EE10(void); static void sub_801EE2C(void); static u8 *sub_801EE84(void); -u8 *sub_801EEA8(void); +static u8 *sub_801EEA8(void); static void sub_801EF1C(u8 *); static void sub_801EF24(u8 *); static void sub_801EF4C(u8 *); static void sub_801EF7C(u8 *); static void sub_801EFA8(u8 *); static void sub_801EFD0(u8 *); -u8 *sub_801F114(void); +static u8 *sub_801F114(void); static void sub_801F2B4(u8 taskId); static bool8 sub_801F4D0(void); static bool32 sub_801F534(void); @@ -129,33 +149,33 @@ static void sub_801F5B8(void); static void sub_801F5EC(u16, u8); static bool8 sub_801F644(u8); static s8 sub_801FF08(void); -bool32 sub_8020890(void); -void sub_8020770(void); +static bool32 sub_8020890(void); +static void sub_8020770(void); static void sub_801F574(struct UnionRoomChat2 *); static void sub_801F580(void); -void sub_80208D0(void); +static void sub_80208D0(void); static bool32 sub_801FDD8(u8 *); -void sub_8020480(void); -void sub_8020538(void); -void sub_8020584(void); -void sub_80205B4(void); -void task_tutorial_story_unknown(void); -void sub_8020680(void); -void sub_80206A4(void); -void sub_80206D0(void); -void sub_8020740(void); -void sub_80206E8(void); -void sub_80208E8(void); -void sub_8020A68(void); -void sub_8020B20(void); -void sub_80203B0(void); -void sub_802040C(void); -void sub_802091C(int); -bool32 sub_8020320(void); -void sub_80201A4(void); -bool32 sub_8020368(void); -void sub_802093C(void); -void sub_8020B80(void); +static void sub_8020480(void); +static void sub_8020538(void); +static void sub_8020584(void); +static void sub_80205B4(void); +static void sub_8020604(void); +static void sub_8020680(void); +static void sub_80206A4(void); +static void sub_80206D0(void); +static void sub_8020740(void); +static void sub_80206E8(void); +static void sub_80208E8(void); +static void sub_8020A68(void); +static void sub_8020B20(void); +static void sub_80203B0(void); +static void sub_802040C(void); +static void sub_802091C(bool32); +static bool32 sub_8020320(void); +static void sub_80201A4(void); +static bool32 sub_8020368(void); +static void sub_802093C(void); +static void sub_8020B80(void); static void sub_801FF18(int, u16); static void sub_801FDDC(u8, u8, u8); static void sub_8020094(void); @@ -164,13 +184,16 @@ static void sub_80200C8(void); static void sub_801FEE4(void); static void sub_80200EC(u16, u16, u8); static void sub_8020118(u16, u8 *, u8, u8, u8); -void sub_80209AC(int); -void sub_8020420(u16, u8 *, u8); -void sub_80209E0(void); -bool32 sub_8020A1C(void); +static void sub_80209AC(int); +static void sub_8020420(u16, u8 *, u8); +static void sub_80209E0(void); +static bool32 sub_8020A1C(void); +static void sub_80207C0(s16); +static void sub_8020818(s16); extern struct UnionRoomChat *gUnknown_02022C84; extern struct UnionRoomChat2 *gUnknown_02022C88; +extern struct UnionRoomChat3 *gUnknown_02022C8C; extern const u8 *const gUnknown_082F2BA8[][10]; extern const u8 gUnknown_082F2AA8[]; @@ -178,6 +201,18 @@ extern const struct BgTemplate gUnknown_082F2C60[4]; extern const struct WindowTemplate gUnknown_082F2C70[]; extern const struct Unk82F2C98 gUnknown_082F2C98[]; extern const struct Unk82F2D40 gUnknown_082F2D40[]; +extern const u8 gText_Ellipsis[]; +extern const struct MenuAction gUnknown_082F2DC8[]; +extern const u16 gUnknown_082F2C20[]; +extern const u16 gUnknown_082F2C40[]; +extern const struct CompressedSpriteSheet gUnknown_082F3134[]; +extern const struct SpritePalette gUnknown_082F315C; +extern const struct SpriteTemplate gUnknown_082F319C; +extern const u16 gUnknown_082F2DF0[]; +extern const struct SpriteTemplate gUnknown_082F31BC; +extern const struct SpriteTemplate gUnknown_082F31D4; +extern const struct SpriteTemplate gUnknown_082F322C; +extern const struct SpriteTemplate gUnknown_082F3244; void sub_801DD98(void) @@ -1065,7 +1100,7 @@ static void sub_801EE2C(void) StringCopy(gSaveBlock1Ptr->unk3C88[i], gUnknown_02022C84->unkB9[i]); } -u8 *sub_801EE6C(int arg0) +static u8 *sub_801EE6C(int arg0) { return gUnknown_02022C84->unkB9[arg0]; } @@ -1079,7 +1114,7 @@ static u8 *sub_801EE84(void) return str; } -u8 *sub_801EEA8(void) +static u8 *sub_801EEA8(void) { u8 *str = gUnknown_02022C84->unk1A; u8 *str2 = str; @@ -1094,7 +1129,7 @@ u8 *sub_801EEA8(void) return str2; } -u16 sub_801EED8(void) +static u16 sub_801EED8(void) { u8 *str; u32 i, numChars, strLength; @@ -1159,7 +1194,7 @@ static void sub_801EFD0(u8 *arg0) arg0[1 + (PLAYER_NAME_LENGTH + 1)] = gUnknown_02022C84->unk13; } -bool32 sub_801EFF8(u8 *arg0, u8 *arg1) +static bool32 sub_801EFF8(u8 *arg0, u8 *arg1) { u8 *tempStr; u8 var0 = *arg1; @@ -1203,12 +1238,12 @@ bool32 sub_801EFF8(u8 *arg0, u8 *arg1) return FALSE; } -u8 sub_801F0B0(void) +static u8 sub_801F0B0(void) { return gUnknown_02022C84->unk10; } -void sub_801F0BC(u8 *arg0, u8 *arg1) +static void sub_801F0BC(u8 *arg0, u8 *arg1) { *arg0 = gUnknown_02022C84->unk11; *arg1 = gUnknown_02022C84->unk12; @@ -1219,13 +1254,13 @@ static u8 *sub_801F0D0(void) return gUnknown_02022C84->unk1A; } -int sub_801F0DC(void) +static int sub_801F0DC(void) { u8 *str = sub_801F0D0(); return StringLength_Multibyte(str); } -void sub_801F0EC(u32 *arg0, u32 *arg1) +static void sub_801F0EC(u32 *arg0, u32 *arg1) { int diff = gUnknown_02022C84->unk15 - gUnknown_02022C84->unk14; if (diff < 0) @@ -1241,7 +1276,7 @@ void sub_801F0EC(u32 *arg0, u32 *arg1) *arg1 = diff; } -u8 *sub_801F114(void) +static u8 *sub_801F114(void) { int i; u16 numChars = sub_801EED8(); @@ -1257,7 +1292,7 @@ u8 *sub_801F114(void) return str; } -u16 sub_801F144(void) +static u16 sub_801F144(void) { u16 count; u32 i; @@ -1274,22 +1309,22 @@ u16 sub_801F144(void) return count; } -u8 *sub_801F180(void) +static u8 *sub_801F180(void) { return gUnknown_02022C84->unk39; } -u8 sub_801F18C(void) +static u8 sub_801F18C(void) { return gUnknown_02022C84->unk16; } -int sub_801F198(void) +static int sub_801F198(void) { return gUnknown_02022C84->unk15; } -int sub_801F1A4(void) +static int sub_801F1A4(void) { u8 *str = sub_801EEA8(); u32 character = *str; @@ -1299,7 +1334,7 @@ int sub_801F1A4(void) return 0; } -u8 *sub_801F1D0(void) +static u8 *sub_801F1D0(void) { return gUnknown_02022C84->unk79; } @@ -1540,7 +1575,7 @@ bool32 sub_801F658(u8 *state) sub_80205B4(); break; case 3: - task_tutorial_story_unknown(); + sub_8020604(); break; case 4: sub_8020680(); @@ -1604,7 +1639,7 @@ bool32 sub_801F768(u8 *state) switch (*state) { case 0: - sub_802091C(1); + sub_802091C(TRUE); if (sub_8020320()) return TRUE; @@ -1620,7 +1655,7 @@ bool32 sub_801F768(u8 *state) return TRUE; sub_802093C(); - sub_802091C(0); + sub_802091C(FALSE); sub_8020B80(); return FALSE; } @@ -2177,3 +2212,419 @@ static void sub_8020118(u16 x, u8 *str, u8 fillValue, u8 arg3, u8 arg4) StringCopy(&str2[3], str); AddTextPrinterParameterized3(1, 2, x * 8, 1, sp, TEXT_SPEED_FF, str2); } + +static void sub_80201A4(void) +{ + u8 var0; + int i; + int var1; + u16 left; + u16 top; + u8 sp[52]; + u8 *str; + u8 *str2; + + FillWindowPixelBuffer(2, PIXEL_FILL(15)); + var0 = sub_801F0B0(); + sp[0] = 0; + sp[1] = 14; + sp[2] = 13; + if (var0 != 3) + { + str = &sp[4]; + str[0] = EXT_CTRL_CODE_BEGIN; + str[1] = EXT_CTRL_CODE_MIN_LETTER_SPACING; + var1 = 8; + str[2] = var1; + left = var1; + if (var0 == 2) + left = 6; + + for (i = 0, top = 0; i < 10; i++, top += 12) + { + if (!gUnknown_082F2BA8[var0][i]) + return; + + StringCopy(&sp[7], gUnknown_082F2BA8[var0][i]); + AddTextPrinterParameterized3(2, 0, left, top, sp, TEXT_SPEED_FF, &sp[4]); + } + } + else + { + left = 4; + for (i = 0, top = 0; i < 10; i++, top += 12) + { + str2 = sub_801EE6C(i); + if (GetStringWidth(0, str2, 0) <= 40) + { + AddTextPrinterParameterized3(2, 0, left, top, sp, TEXT_SPEED_FF, str2); + } + else + { + int length = StringLength_Multibyte(str2); + do + { + length--; + StringCopyN_Multibyte(&sp[4], str2, length); + } while (GetStringWidth(0, &sp[4], 0) > 35); + + AddTextPrinterParameterized3(2, 0, left, top, sp, TEXT_SPEED_FF, &sp[4]); + AddTextPrinterParameterized3(2, 0, left + 35, top, sp, TEXT_SPEED_FF, gText_Ellipsis); + } + } + } +} + +static bool32 sub_8020320(void) +{ + if (gUnknown_02022C88->unk20 < 56) + { + gUnknown_02022C88->unk20 += 12; + if (gUnknown_02022C88->unk20 >= 56) + gUnknown_02022C88->unk20 = 56; + + if (gUnknown_02022C88->unk20 < 56) + { + sub_80207C0(gUnknown_02022C88->unk20); + return TRUE; + } + } + + sub_8020818(gUnknown_02022C88->unk20); + return FALSE; +} + +static bool32 sub_8020368(void) +{ + if (gUnknown_02022C88->unk20 > 0) + { + gUnknown_02022C88->unk20 -= 12; + if (gUnknown_02022C88->unk20 <= 0) + gUnknown_02022C88->unk20 = 0; + + if (gUnknown_02022C88->unk20 > 0) + { + sub_80207C0(gUnknown_02022C88->unk20); + return TRUE; + } + } + + sub_8020818(gUnknown_02022C88->unk20); + return FALSE; +} + +static void sub_80203B0(void) +{ + FillWindowPixelBuffer(3, PIXEL_FILL(1)); + sub_8098858(3, 1, 13); + PrintTextArray(3, 2, 8, 1, 14, 5, gUnknown_082F2DC8); + sub_81983AC(3, 2, 0, 1, 14, 5, sub_801F0B0()); + PutWindowTilemap(3); +} + +static void sub_802040C(void) +{ + ClearStdWindowAndFrameToTransparent(3, FALSE); + ClearWindowTilemap(3); +} + +static void sub_8020420(u16 row, u8 *str, u8 arg2) +{ + u8 color[3]; + color[0] = 1; + color[1] = arg2 * 2 + 2; + color[2] = arg2 * 2 + 3; + FillWindowPixelRect(0, PIXEL_FILL(1), 0, row * 15, 168, 15); + AddTextPrinterParameterized3(0, 2, 0, row * 15 + 1, color, TEXT_SPEED_FF, str); +} + +static void sub_8020480(void) +{ + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(64, 240)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 144)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG2 | WININ_WIN0_BG3 + | WININ_WIN0_OBJ | WININ_WIN0_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); +} + +static void sub_8020538(void) +{ + SetBgTilemapBuffer(0, gUnknown_02022C88->unk128); + SetBgTilemapBuffer(1, gUnknown_02022C88->unk928); + SetBgTilemapBuffer(3, gUnknown_02022C88->unk1128); + SetBgTilemapBuffer(2, gUnknown_02022C88->unk1928); +} + +static void sub_8020584(void) +{ + RequestDma3Fill(0, (void *)BG_CHAR_ADDR(0), 0x20, 1); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); + CopyBgTilemapBufferToVram(0); +} + +static void sub_80205B4(void) +{ + LoadPalette(gUnknown_08DD4BD0, 0x70, 0x20); + LoadPalette(gUnknown_08DD4BB0, 0xC0, 0x20); + decompress_and_copy_tile_data_to_vram(1, gUnknown_08DD4BF0, 0, 0, 0); + CopyToBgTilemapBuffer(1, gUnknown_08DD4C4C, 0, 0); + CopyBgTilemapBufferToVram(1); +} + +static void sub_8020604(void) +{ + u8 *ptr; + + LoadPalette(gLinkMiscMenu_Pal, 0, 0x20); + ptr = decompress_and_copy_tile_data_to_vram(2, gLinkMiscMenu_Gfx, 0, 0, 0); + if (ptr) + { + CpuFastCopy(&ptr[0x220], gUnknown_02022C88->unk2128, 0x20); + CpuFastCopy(&ptr[0x420], gUnknown_02022C88->unk2148, 0x20); + } + + CopyToBgTilemapBuffer(2, gLinkMiscMenu_Tilemap, 0, 0); + CopyBgTilemapBufferToVram(2); +} + +static void sub_8020680(void) +{ + LoadPalette(gUnknown_082F2C20, 0x80, 0x20); + RequestDma3Fill(0, (void *)BG_CHAR_ADDR(1) + 0x20, 0x20, 1); +} + +static void sub_80206A4(void) +{ + LoadPalette(gUnknown_082F2C40, 0xF0, 0x20); + PutWindowTilemap(0); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); + CopyWindowToVram(0, 3); +} + +static void sub_80206D0(void) +{ + PutWindowTilemap(2); + sub_80201A4(); + CopyWindowToVram(2, 3); +} + +static void sub_80206E8(void) +{ + int i; + u8 var0[2]; + var0[0] = 0; + var0[1] = 0xFF; + + for (i = 0; i < 15; i++) + BlitBitmapToWindow(1, gUnknown_02022C88->unk2128, i * 8, 0, 8, 16); + + FillWindowPixelBuffer(1, PIXEL_FILL(0)); + PutWindowTilemap(1); + CopyWindowToVram(1, 3); +} + +static void sub_8020740(void) +{ + FillWindowPixelBuffer(3, PIXEL_FILL(1)); + LoadUserWindowBorderGfx(3, 1, 0xD0); + LoadUserWindowBorderGfx_(3, 0xA, 0x20); + LoadPalette(gUnknown_0860F074, 0xE0, 0x20); +} + +static void sub_8020770(void) +{ + struct ScanlineEffectParams params; + params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; + params.dmaDest = ®_BG1HOFS; + params.initState = 1; + params.unused9 = 0; + gUnknown_02022C88->unk20 = 0; + CpuFastFill(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers)); + ScanlineEffect_SetParams(params); +} + +static void sub_80207C0(s16 arg0) +{ + CpuFill16(arg0, gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], 0x120); + CpuFill16(0, gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer] + 0x90, 0x20); +} + +static void sub_8020818(s16 arg0) +{ + CpuFill16(arg0, gScanlineEffectRegBuffers[0], 0x120); + CpuFill16(0, gScanlineEffectRegBuffers[0] + 0x90, 0x20); + CpuFill16(arg0, gScanlineEffectRegBuffers[0] + 0x3C0, 0x120); + CpuFill16(0, gScanlineEffectRegBuffers[0] + 0x450, 0x20); +} + +static bool32 sub_8020890(void) +{ + u32 i; + for (i = 0; i < 5; i++) + LoadCompressedSpriteSheet(&gUnknown_082F3134[i]); + + LoadSpritePalette(&gUnknown_082F315C); + gUnknown_02022C8C = Alloc(0x18); + if (!gUnknown_02022C8C) + return FALSE; + + return TRUE; +} + +static void sub_80208D0(void) +{ + if (gUnknown_02022C8C) + Free(gUnknown_02022C8C); +} + +static void sub_80208E8(void) +{ + u8 spriteId = CreateSprite(&gUnknown_082F319C, 10, 24, 0); + gUnknown_02022C8C->unk0 = &gSprites[spriteId]; +} + +static void sub_802091C(bool32 invisible) +{ + gUnknown_02022C8C->unk0->invisible = invisible; +} + +static void sub_802093C(void) +{ + u8 x, y; + u8 var2 = sub_801F0B0(); + sub_801F0BC(&x, &y); + if (var2 != 3) + { + StartSpriteAnim(gUnknown_02022C8C->unk0, 0); + gUnknown_02022C8C->unk0->pos1.x = x * 8 + 10; + gUnknown_02022C8C->unk0->pos1.y = y * 12 + 24; + } + else + { + StartSpriteAnim(gUnknown_02022C8C->unk0, 2); + gUnknown_02022C8C->unk0->pos1.x = 24; + gUnknown_02022C8C->unk0->pos1.y = y * 12 + 24; + } +} + +static void sub_80209AC(int arg0) +{ + const u16 *palette = &gUnknown_082F2DF0[arg0 * 2 + 1]; + u8 index = IndexOfSpritePaletteTag(0); + LoadPalette(palette, index * 16 + 0x101, 4); +} + +static void sub_80209E0(void) +{ + if (sub_801F0B0() != 3) + StartSpriteAnim(gUnknown_02022C8C->unk0, 1); + else + StartSpriteAnim(gUnknown_02022C8C->unk0, 3); + + gUnknown_02022C8C->unk14 = 0; +} + +static bool32 sub_8020A1C(void) +{ + if (gUnknown_02022C8C->unk14 > 3) + return FALSE; + + if (++gUnknown_02022C8C->unk14 > 3) + { + if (sub_801F0B0() != 3) + StartSpriteAnim(gUnknown_02022C8C->unk0, 0); + else + StartSpriteAnim(gUnknown_02022C8C->unk0, 2); + + return FALSE; + } + + return TRUE; +} + +static void sub_8020A68(void) +{ + u8 spriteId = CreateSprite(&gUnknown_082F31BC, 76, 152, 2); + gUnknown_02022C8C->unk8 = &gSprites[spriteId]; + spriteId = CreateSprite(&gUnknown_082F31D4, 64, 152, 1); + gUnknown_02022C8C->unk4 = &gSprites[spriteId]; +} + +void sub_8020ABC(struct Sprite *sprite) +{ + int var0 = sub_801F198(); + if (var0 == 15) + { + sprite->invisible = 1; + } + else + { + sprite->invisible = 0; + sprite->pos1.x = var0 * 8 + 76; + } +} + +void sub_8020AF4(struct Sprite *sprite) +{ + if (++sprite->data[0] > 4) + { + sprite->data[0] = 0; + if (++sprite->pos2.x > 4) + sprite->pos2.x = 0; + } +} + +static void sub_8020B20(void) +{ + u8 spriteId = CreateSprite(&gUnknown_082F322C, 8, 152, 3); + gUnknown_02022C8C->unkC = &gSprites[spriteId]; + spriteId = CreateSprite(&gUnknown_082F3244, 32, 152, 4); + gUnknown_02022C8C->unk10 = &gSprites[spriteId]; + gUnknown_02022C8C->unk10->invisible = 1; +} + +static void sub_8020B80(void) +{ + if (sub_801F0B0() == 3) + { + if (sub_801F0DC() != 0) + { + gUnknown_02022C8C->unk10->invisible = 0; + StartSpriteAnim(gUnknown_02022C8C->unk10, 3); + } + else + { + gUnknown_02022C8C->unk10->invisible = 1; + } + } + else + { + int anim = sub_801F1A4(); + if (anim == 3) + { + gUnknown_02022C8C->unk10->invisible = 1; + } + else + { + gUnknown_02022C8C->unk10->invisible = 0; + StartSpriteAnim(gUnknown_02022C8C->unk10, anim); + } + } + +} -- cgit v1.2.3 From 2f57d6bc0f822fb5f6b6dd681de7cab252626144 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Mar 2019 09:18:58 -0400 Subject: sub_8018220 --- src/union_room.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index 59b38e6cd..9483a2828 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -41,6 +41,7 @@ #include "mevent.h" #include "dynamic_placeholder_text_util.h" #include "rom_8011DC0.h" +#include "easy_chat.h" #include "event_obj_lock.h" EWRAM_DATA u8 gUnknown_02022C20[12] = {}; @@ -3266,7 +3267,7 @@ void UnionRoomSpecial(void) // dumb line needed to match gUnknown_02022C30.uRoom = gUnknown_02022C30.uRoom; - dataPtr = AllocZeroed(0x26C); + dataPtr = AllocZeroed(sizeof(*gUnknown_02022C30.uRoom)); gUnknown_02022C30.uRoom = dataPtr; gUnknown_03000DA8 = dataPtr; @@ -5315,3 +5316,70 @@ u8 sub_80181DC(struct UnkStruct_URoom *arg0) return retVal; } + +void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2) +{ + struct TrainerCard *trainerCard = &gTrainerCards[GetMultiplayerId() ^ 1]; + s32 i; + s32 n; + + DynamicPlaceholderTextUtil_Reset(); + + StringCopy(arg1->field_C0[0], gTrainerClassNames[sub_8068BB0()]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->field_C0[0]); + + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, trainerCard->playerName); + + StringCopy(arg1->field_174, gUnknown_082EFF50[trainerCard->stars]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->field_174); + + ConvertIntToDecimalStringN(arg1->field_C0[2], trainerCard->caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->field_C0[2]); + + ConvertIntToDecimalStringN(arg1->field_C0[3], trainerCard->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(arg1->field_C0[4], trainerCard->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, arg1->field_C0[3]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, arg1->field_C0[4]); + + DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_082EFF64); + StringCopy(gStringVar4, arg1->field_1A4); + + n = trainerCard->linkBattleWins; + if (n > 9999) + { + n = 9999; + } + ConvertIntToDecimalStringN(arg1->field_C0[0], n, STR_CONV_MODE_LEFT_ALIGN, 4); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->field_C0[0]); + + n = trainerCard->linkBattleLosses; + if (n > 9999) + { + n = 9999; + } + ConvertIntToDecimalStringN(arg1->field_C0[1], n, STR_CONV_MODE_LEFT_ALIGN, 4); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->field_C0[1]); + + ConvertIntToDecimalStringN(arg1->field_C0[2], trainerCard->pokemonTrades, STR_CONV_MODE_LEFT_ALIGN, 5); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->field_C0[2]); + + for (i = 0; i < 4; i++) + { + CopyEasyChatWord(arg1->field_C0[i + 3], trainerCard->var_28[i]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, arg1->field_C0[i + 3]); + } + + DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_082EFFA4); + StringAppend(gStringVar4, arg1->field_1A4); + + if (arg2 == TRUE) + { + DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_082F0020); + StringAppend(gStringVar4, arg1->field_1A4); + } + else if (arg2 == FALSE) + { + DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_082F0018[trainerCard->gender]); + StringAppend(gStringVar4, arg1->field_1A4); + } +} -- cgit v1.2.3 From 3b9275b133c875bda4f8d43fe300394d9c4cbb2a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Mar 2019 09:23:47 -0400 Subject: sub_8018404 --- src/union_room.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index 9483a2828..6928f13d6 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -5383,3 +5383,9 @@ void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2) StringAppend(gStringVar4, arg1->field_1A4); } } + +void sub_8018404(u8 *dest, struct UnkStruct_x20 *arg1) +{ + StringCopy7(dest, arg1->unk.playerName); + ConvertInternationalString(dest, arg1->unk.field_0.unk_00.unk_00_0); +} -- cgit v1.2.3 From 35cffea9874a8b135eddade958b62ee2ecf441c1 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 30 Mar 2019 12:37:18 +0100 Subject: Helpful macros for atk49 --- src/battle_script_commands.c | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 0eb6dfec0..0a0c34ad2 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4480,28 +4480,6 @@ static void atk48_playstatchangeanimation(void) } } -enum -{ - ATK49_RAGE, - ATK49_DEFROST, - ATK49_SYNCHRONIZE_TARGET, - ATK49_MOVE_END_ABILITIES, - ATK49_STATUS_IMMUNITY_ABILITIES, - ATK49_SYNCHRONIZE_ATTACKER, - ATK49_CHOICE_MOVE, - ATK49_CHANGED_ITEMS, - ATK49_ATTACKER_INVISIBLE, - ATK49_ATTACKER_VISIBLE, - ATK49_TARGET_VISIBLE, - ATK49_ITEM_EFFECTS_ALL, - ATK49_KINGSROCK_SHELLBELL, - ATK49_SUBSTITUTE, - ATK49_UPDATE_LAST_MOVES, - ATK49_MIRROR_MOVE, - ATK49_NEXT_TARGET, - ATK49_COUNT, -}; - static void atk49_moveend(void) { s32 i; @@ -7210,6 +7188,9 @@ static void atk88_negativedamage(void) gBattlescriptCurrInstr++; } +#define STAT_CHANGE_WORKED 0 +#define STAT_CHANGE_DIDNT_WORK 1 + static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) { bool8 certain = FALSE; -- cgit v1.2.3 From aa7f69f067a83a651c84c1feb9a874858c3adf82 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 31 Mar 2019 12:59:01 +0200 Subject: Begin use pokeblock and menu specialised --- src/menu_specialized.c | 376 ++++++++++++++++++++ src/use_pokeblock.c | 926 +++++++++++++++---------------------------------- 2 files changed, 656 insertions(+), 646 deletions(-) (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 3dadc7f80..ae150dcb4 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -2,7 +2,10 @@ #include "alloc.h" #include "battle_main.h" #include "contest_effect.h" +#include "data2.h" +#include "decompress.h" #include "gpu_regs.h" +#include "graphics.h" #include "menu.h" #include "international_string_util.h" #include "menu.h" @@ -11,16 +14,21 @@ #include "palette.h" #include "player_pc.h" #include "pokemon_summary_screen.h" +#include "pokemon_storage_system.h" #include "scanline_effect.h" #include "sound.h" #include "strings.h" #include "string_util.h" +#include "text.h" #include "text_window.h" #include "trig.h" #include "window.h" #include "constants/songs.h" +#include "constants/species.h" #include "gba/io_reg.h" +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; + EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; @@ -1075,3 +1083,371 @@ void MoveRelearnerCreateYesNoMenu(void) { CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); } + +s32 GetBoxOrPartyMonData(u16 boxId, u16 monId, s32 request, u8 *dst) +{ + s32 ret; + + if (boxId == TOTAL_BOXES_COUNT) // Party mon. + { + if (request == MON_DATA_NICKNAME || request == MON_DATA_OT_NAME) + ret = GetMonData(&gPlayerParty[monId], request, dst); + else + ret = GetMonData(&gPlayerParty[monId], request); + } + else + { + if (request == MON_DATA_NICKNAME || request == MON_DATA_OT_NAME) + ret = GetAndCopyBoxMonDataAt(boxId, monId, request, dst); + else + ret = GetBoxMonDataAt(boxId, monId, request); + } + + return ret; +} + +static u8 *sub_81D2CD0(u8 *dst, u16 boxId, u16 monId) +{ + u16 species, level, gender; + struct BoxPokemon *boxMon; + u8 *str; + + *(dst++) = EXT_CTRL_CODE_BEGIN; + *(dst++) = 4; + *(dst++) = 8; + *(dst++) = 0; + *(dst++) = 9; + if (GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_EGG, NULL)) + { + return StringCopyPadded(dst, gText_EggNickname, 0, 12); + } + else + { + GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst); + StringGetEnd10(dst); + species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); + if (boxId == TOTAL_BOXES_COUNT) // Party mon. + { + level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); + gender = GetMonGender(&gPlayerParty[monId]); + } + else + { + // Needed to match, feel free to remove. + boxId++;boxId--; + monId++;monId--; + + boxMon = GetBoxedMonPtr(boxId, monId); + gender = GetBoxMonGender(boxMon); + level = GetLevelFromBoxMonExp(boxMon); + } + + if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species])) + gender = MON_GENDERLESS; + + for (str = dst; *str != EOS; str++) + ; + + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = 0x12; + *(str++) = 0x3C; + + switch (gender) + { + default: + *(str++) = CHAR_SPACE; + break; + case MON_MALE: + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_COLOR; + *(str++) = 4; + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = 3; + *(str++) = 5; + *(str++) = CHAR_MALE; + break; + case MON_FEMALE: + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = EXT_CTRL_CODE_COLOR; + *(str++) = 6; + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = 3; + *(str++) = 7; + *(str++) = CHAR_FEMALE; + break; + } + + *(str++) = EXT_CTRL_CODE_BEGIN; + *(str++) = 4; + *(str++) = 8; + *(str++) = 0; + *(str++) = 9; + *(str++) = CHAR_SLASH; + *(str++) = CHAR_SPECIAL_F9; + *(str++) = 5; + str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3); + *(str++) = CHAR_SPACE; + *str = EOS; + + return str; + } +} + +static u8 *sub_81D2E7C(u8 *dst, const u8 *src, s16 n) +{ + while (*src != EOS) + { + *(dst++) = *(src++); + n--; + } + while (n-- > 0) + *(dst++) = CHAR_SPACE; + + *dst = EOS; + return dst; +} + +void sub_81D2ED4(u8 *dst, u8 *nameDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7) +{ + u16 i; + + if (!arg7) + arg6--; + + if (arg5 != arg6) + { + sub_81D2CD0(nameDst, boxId, monId); + dst[0] = EXT_CTRL_CODE_BEGIN; + dst[1] = 4; + dst[2] = 8; + dst[3] = 0; + dst[4] = 9; + if (boxId == TOTAL_BOXES_COUNT) // Party mon. + { + sub_81D2E7C(dst + 5, gText_InParty, 8); + } + else + { + boxId++;boxId--; // Again...Someone fix this maybe? + sub_81D2E7C(dst + 5, GetBoxNamePtr(boxId), 8); + } + } + else + { + for (i = 0; i < 12; i++) + nameDst[i] = CHAR_SPACE; + nameDst[i] = EOS; + for (i = 0; i < 8; i++) + dst[i] = CHAR_SPACE; + dst[i] = EOS; + } +} + +void sub_81D2F78(struct Unk81D2F78_Struct *arg0, u8 *sheen, u16 boxId, u16 monId, u16 arg5, u16 id, u16 arg7, bool8 arg8) +{ + u16 i; + + if (!arg8) + arg7--; + + if (arg5 != arg7) + { + arg0->contestStats[id][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL); + arg0->contestStats[id][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL); + arg0->contestStats[id][2] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SMART, NULL); + arg0->contestStats[id][3] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_CUTE, NULL); + arg0->contestStats[id][4] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_BEAUTY, NULL); + + sheen[id] = (GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) != 0xFF) + ? GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) / 29u + : 9; + + sub_81D2754(arg0->contestStats[id], arg0->field_20[id]); + } + else + { + for (i = 0; i < 5; i++) + { + arg0->contestStats[id][i] = 0; + arg0->field_20[id][i].unk0 = 155; + arg0->field_20[id][i].unk2 = 91; + } + } +} + +void sub_81D3094(u8 *tilesDst, u8 *palDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7) +{ + if (!arg7) + arg6--; + + if (arg5 != arg6) + { + u16 species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES2, NULL); + u32 trainerId = GetBoxOrPartyMonData(boxId, monId, MON_DATA_OT_ID, NULL); + u32 personality = GetBoxOrPartyMonData(boxId, monId, MON_DATA_PERSONALITY, NULL); + + LoadSpecialPokePic(&gMonFrontPicTable[species], tilesDst, species, personality, TRUE); + LZ77UnCompWram(GetFrontSpritePalFromSpeciesAndPersonality(species, trainerId, personality), palDst); + } +} + +bool8 sub_81D312C(s16 *var) +{ + *var += 24; + if (*var > 0) + *var = 0; + + return (*var != 0); +} + +bool8 sub_81D3150(s16 *var) +{ + *var -= 24; + if (*var < -80) + *var = -80; + + return (*var != -80); +} + +bool8 sub_81D3178(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1) +{ + bool8 var1 = sub_81D2074(arg0); + bool8 var2 = sub_81D312C(arg1); + + return ((var1 != 0) || (var2 != 0)); +} + +bool8 sub_81D31A4(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1) +{ + bool8 var1 = sub_81D2074(arg0); + bool8 var2 = sub_81D3150(arg1); + + return ((var1 != 0) || (var2 != 0)); +} + +const u32 gUnknown_08625560[] = INCBIN_U32("graphics/pokenav/pokeball.4bpp"); +const u32 gUnknown_08625660[] = INCBIN_U32("graphics/pokenav/pokeball_placeholder.4bpp"); +const u16 gUnknown_08625680[] = INCBIN_U16("graphics/pokenav/sparkle.gbapal"); +const u32 gUnknown_086256A0[] = INCBIN_U32("graphics/pokenav/sparkle.4bpp"); + +static const struct OamData sOamData_8625A20 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct OamData sOamData_8625A28 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0 +}; + +static const union AnimCmd sSpriteAnim_8625A30[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_8625A38[] = +{ + ANIMCMD_FRAME(4, 5), + ANIMCMD_END +}; + +const union AnimCmd *const sSpriteAnimTable_8625A40[] = +{ + sSpriteAnim_8625A30, + sSpriteAnim_8625A38 +}; + +void sub_81D31D0(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal) +{ + struct SpriteSheet dataSheet = {NULL, 0x800, 100}; + + struct SpriteTemplate dataTemplate = + { + .tileTag = 100, + .paletteTag = 100, + .oam = &sOamData_8625A20, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }; + + struct SpritePalette dataPal = {NULL, 100}; + + *sheet = dataSheet; + *template = dataTemplate; + *pal = dataPal; +} + +void sub_81D321C(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals) +{ + u8 i; + + struct SpriteSheet dataSheets[] = + { + {gUnknown_08625560, 0x100, 101}, + {gUnknown_08625660, 0x20, 103}, + {gPokenavConditionCancel_Gfx, 0x100, 102}, + {}, + }; + + struct SpritePalette dataPals[] = + { + {gPokenavConditionCancel_Pal, 101}, + {gPokenavConditionCancel_Pal + 16, 102}, + {}, + }; + + struct SpriteTemplate dataTemplate = + { + .tileTag = 101, + .paletteTag = 101, + .oam = &sOamData_8625A28, + .anims = sSpriteAnimTable_8625A40, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }; + + for (i = 0; i < ARRAY_COUNT(dataSheets); i++) + *(sheets++) = dataSheets[i]; + + *template = dataTemplate; + + for (i = 0; i < ARRAY_COUNT(dataPals); i++) + *(pals++) = dataPals[i]; +} + +void sub_81D32B0(struct SpriteSheet *sheet, struct SpritePalette *pal) +{ + struct SpriteSheet dataSheet = {gUnknown_086256A0, 0x380, 104}; + struct SpritePalette dataPal = {gUnknown_08625680, 104}; + + *sheet = dataSheet; + *pal = dataPal; +} diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 9b02eeb72..d78132585 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -27,7 +27,7 @@ struct UsePokeblockSubStruct /*0x00*/ void (*field_0)(void); /*0x04*/ void (*callback)(void); /*0x08*/ struct Pokeblock *pokeblock; - /*0x0C*/ struct Pokemon *pokemon; + /*0x0C*/ struct Pokemon *mon; /*0x10*/ u8 stringBuffer[0x40]; /*0x50*/ u8 field_50; /*0x51*/ u8 field_51; @@ -57,11 +57,17 @@ struct Unk7FB8 struct UsePokeblockStruct { - /*0x0000*/ u8 field_0[0x7B06]; + /*0x0000*/ u8 field_0[4]; + /*0x0000*/ u16 field_4[3][0x40]; + /*0x0184*/ u8 field_184[0x304 - 0x184]; + /*0x0304*/ u8 field_304[3][0x2000]; + /*0x6304*/ u8 field_6304[0x7b06 - 0x6304]; /*0x7B06*/ u8 field_7B06[7]; - /*0x7B0E*/ u16 field_7B0E; + /*0x7B0E*/ s16 field_7B0E; /*0x7B10*/ u8 field_7B10; - /*0x7B11*/ u8 field_7B11[0xB]; + /*0x7B12*/ u16 field_7B12; + /*0x7B12*/ u16 field_7B14; + /*0x7B12*/ u8 *field_7B18; /*0x7B1C*/ struct Sprite *field_7B1C[10]; /*0x7B44*/ struct Sprite *field_7B44[2]; /*0x7B4C*/ u8 field_7B4C; @@ -80,6 +86,8 @@ struct UsePokeblockStruct extern u16 gKeyRepeatStartDelay; +extern void sub_81D21DC(u8); + // this file's functions void sub_816636C(void (*func)(void)); void sub_8166380(void); @@ -100,7 +108,7 @@ static void sub_8167CA0(bool8); void sub_8166BEC(void); void sub_8166D44(void); s8 sub_8166DE4(void); -bool8 sub_8167268(void); +bool8 IsSheenMaxed(void); void sub_8166F50(void); void sub_816681C(void); void sub_8166F94(void); @@ -114,22 +122,15 @@ bool8 sub_8166EDC(void); void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2); void Pokeblock_MenuWindowTextPrint(const u8 *message); void sub_8167184(struct Pokeblock *, struct Pokemon *); -extern u32 sub_81D2C68(s32, s32, s32, u8 *); void sub_81673DC(struct Sprite *sprite); void sub_81674BC(void); void sub_816753C(s16, u8); static u8 sub_8167EA4(void); static u8 sub_8167FA4(void); static u8 sub_8168048(void); -extern void sub_81D2ED4(u8, u8, u16, u8, u8, u8, u8); -extern void sub_81D2F78(u8, u8, s16, u16, u8, u8, u8, u8); -extern void sub_81D3094(u8, u8, s16, u16, u8, u8, u8); -extern void sub_81D31D0(struct SpritePalette *, struct SpritePalette *, struct SpritePalette *); -extern void sub_81D321C(struct SpriteSheet *, struct SpriteTemplate *, struct SpritePalette*); void sub_8168180(struct Sprite *sprite); void sub_81681B4(struct Sprite *sprite); -extern void sub_81D32B0(struct SpriteSheet *, struct SpritePalette*); -extern void sub_81D21DC(u8); +void sub_8168168(struct Sprite *sprite); extern const struct BgTemplate gUnknown_085DFCCC[4]; extern const struct WindowTemplate gUnknown_085DFCDC[]; @@ -160,9 +161,9 @@ EWRAM_DATA void (*gUnknown_0203BC94)(void) = NULL; EWRAM_DATA struct Pokeblock *gUnknown_0203BC98 = NULL; EWRAM_DATA u8 gPokeblockMonId = 0; EWRAM_DATA s16 gPokeblockGain = 0; -EWRAM_DATA void *gUnknown_0203BCA0 = NULL; -EWRAM_DATA void *gUnknown_0203BCA4 = NULL; -EWRAM_DATA void *gUnknown_0203BCA8 = NULL; +EWRAM_DATA u8 *gUnknown_0203BCA0 = NULL; +EWRAM_DATA u8 *gUnknown_0203BCA4 = NULL; +EWRAM_DATA u8 *gUnknown_0203BCA8 = NULL; EWRAM_DATA struct UsePokeblockStruct *gUnknown_0203BCAC = NULL; // const rom data @@ -349,8 +350,9 @@ void sub_8166564(void) } void sub_8166634(void) -{ +{ u8 var; + switch (gUnknown_0203BC90->field_50) { case 0: @@ -384,9 +386,9 @@ void sub_8166634(void) break; case 1: var = gUnknown_0203BCAC->info.unk74(); - if(!var) + if (!var) gUnknown_0203BC90->field_50 = var; - break; + break; case 2: break; case 3: @@ -406,7 +408,7 @@ void sub_8166634(void) gUnknown_0203BC90->field_50 = 0; break; case 0: - if (sub_8167268()) + if (IsSheenMaxed()) { sub_8166F50(); gUnknown_0203BC90->field_50 = 7; @@ -443,14 +445,10 @@ void sub_816681C(void) if (!gPaletteFade.active) { SetVBlankCallback(NULL); - Free(gUnknown_0203BCA0); - gUnknown_0203BCA0 = NULL; - Free(gUnknown_0203BCA4); - gUnknown_0203BCA4 = NULL; - Free(gUnknown_0203BCA8); - gUnknown_0203BCA8 = NULL; - Free(gUnknown_0203BCAC); - gUnknown_0203BCAC = NULL; + FREE_AND_SET_NULL(gUnknown_0203BCA0); + FREE_AND_SET_NULL(gUnknown_0203BCA4); + FREE_AND_SET_NULL(gUnknown_0203BCA8); + FREE_AND_SET_NULL(gUnknown_0203BCAC); FreeAllWindowBuffers(); gMain.savedCallback = CB2_ReturnAndChooseMonToGivePokeblock; CB2_PreparePokeblockFeedScene(); @@ -462,6 +460,7 @@ void sub_816681C(void) void sub_81668F8(void) { u16 var; + switch (gUnknown_0203BC90->field_50) { case 0: @@ -511,65 +510,65 @@ void sub_81668F8(void) void sub_8166A34(void) { + u8 var; + switch (gUnknown_0203BC90->field_50) { - u8 var; - case 0: - gUnknown_0203BC90->pokemon = gPlayerParty; - gUnknown_0203BC90->pokemon += gUnknown_0203BCAC->field_7FB8[gUnknown_0203BCAC->info.field_71].unk1; - sub_81D3520(gUnknown_0203BCAC->field_7B1C); - gUnknown_0203BC90->field_50++; - break; - case 1: - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) - gUnknown_0203BC90->field_50++; - break; - case 2: - sub_8167104(); - sub_81D2754(gUnknown_0203BC90->field_5c, gUnknown_0203BCAC->field_7C58.unk14[3]); - sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[gUnknown_0203BCAC->field_7FB3], gUnknown_0203BCAC->field_7C58.unk14[3]); - sub_8167338(); + case 0: + gUnknown_0203BC90->mon = gPlayerParty; + gUnknown_0203BC90->mon += gUnknown_0203BCAC->field_7FB8[gUnknown_0203BCAC->info.field_71].unk1; + sub_81D3520(gUnknown_0203BCAC->field_7B1C); + gUnknown_0203BC90->field_50++; + break; + case 1: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) gUnknown_0203BC90->field_50++; - break; - case 3: - var = sub_81D2074(&gUnknown_0203BCAC->field_7C58); - if(var) - return; - + break; + case 2: + sub_8167104(); + sub_81D2754(gUnknown_0203BC90->field_5c, gUnknown_0203BCAC->field_7C58.unk14[3]); + sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[gUnknown_0203BCAC->field_7FB3], gUnknown_0203BCAC->field_7C58.unk14[3]); + sub_8167338(); + gUnknown_0203BC90->field_50++; + break; + case 3: + var = sub_81D2074(&gUnknown_0203BCAC->field_7C58); + if (!var) + { sub_81681F4(sub_81672A4(gUnknown_0203BCAC->info.field_71)); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) { u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3]; sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); } - + gUnknown_0203BC90->field_52 = 0; - gUnknown_0203BC90->field_50++; - break; - case 4: - if ((++gUnknown_0203BC90->field_52) > 16) - { - sub_8166E24(); - gUnknown_0203BC90->field_50++; - } - break; - case 5: - if (gMain.newKeys & (A_BUTTON | B_BUTTON) && !sub_8166EDC()) - { - TryClearPokeblock((u8)gSpecialVar_ItemId); - sub_816636C(sub_8166BEC); - } - break; + gUnknown_0203BC90->field_50++; + } + break; + case 4: + if (++gUnknown_0203BC90->field_52 > 16) + { + sub_8166E24(); + gUnknown_0203BC90->field_50++; + } + break; + case 5: + if (gMain.newKeys & (A_BUTTON | B_BUTTON) && !sub_8166EDC()) + { + TryClearPokeblock((u8)gSpecialVar_ItemId); + sub_816636C(sub_8166BEC); + } + break; } } void sub_8166BEC(void) { - u8 i; - u8 var; + u8 i, var; + switch (gUnknown_0203BC90->field_50) - { + { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); gUnknown_0203BC90->field_50++; @@ -588,18 +587,18 @@ void sub_8166BEC(void) sub_81D354C(gUnknown_0203BCAC->field_7B1C); for (i = 0; i < 7; i++) DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B06[i]]); - + FreeSpriteTilesByTag(0); FreeSpriteTilesByTag(1); FreeSpritePaletteByTag(0); FreeSpritePaletteByTag(1); - + for (i = 0; i < 2; i++) DestroySprite(gUnknown_0203BCAC->field_7B44[i]); - + if (gUnknown_0203BCAC->field_7B10 != 0xFF) DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B10]); - + SetVBlankCallback(NULL); FREE_AND_SET_NULL(gUnknown_0203BCA0); FREE_AND_SET_NULL(gUnknown_0203BCA4); @@ -613,6 +612,7 @@ void sub_8166BEC(void) void sub_8166D44(void) { u8 stringBuffer[0x40]; + GetMonData(&gPlayerParty[sub_81672A4(gUnknown_0203BCAC->info.field_71)], MON_DATA_NICKNAME, stringBuffer); StringGetEnd10(stringBuffer); StringAppend(stringBuffer, gText_GetsAPokeBlockQuestion); @@ -627,19 +627,21 @@ void sub_8166D44(void) s8 sub_8166DE4(void) { - s8 retval = Menu_ProcessInputNoWrapClearOnChoose(); - switch(retval) + s8 menuItem = Menu_ProcessInputNoWrapClearOnChoose(); + + switch (menuItem) { case 0: break; - case -1: + case MENU_B_PRESSED: case 1: PlaySE(SE_SELECT); rbox_fill_rectangle(2); ClearWindowTilemap(2); break; } - return retval; + + return menuItem; } void sub_8166E24(void) @@ -647,13 +649,17 @@ void sub_8166E24(void) sub_8098858(2, 151, 14); FillWindowPixelBuffer(2, 17); - for (gUnknown_0203BC90->field_53 = 0; gUnknown_0203BC90->field_53 < 5 && gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53] == 0; gUnknown_0203BC90->field_53++); - + for (gUnknown_0203BC90->field_53 = 0; gUnknown_0203BC90->field_53 < 5; gUnknown_0203BC90->field_53++) + { + if (gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53] != 0) + break; + } + if (gUnknown_0203BC90->field_53 < 5) Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); else Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, 0); - + Pokeblock_MenuWindowTextPrint(gStringVar4); PutWindowTilemap(2); CopyWindowToVram(2, 3); @@ -662,7 +668,7 @@ void sub_8166E24(void) bool8 sub_8166EDC(void) { FillWindowPixelBuffer(2, 17); - + while (1) { gUnknown_0203BC90->field_53++; @@ -677,11 +683,11 @@ bool8 sub_8166EDC(void) return FALSE; } } - + Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); Pokeblock_MenuWindowTextPrint(gStringVar4); CopyWindowToVram(2, 2); - + return TRUE; } @@ -765,70 +771,67 @@ _08167018:\n\ } #endif -void Pokeblock_GetMonContestStats(struct Pokemon *pokemon, u8 *data) +void Pokeblock_GetMonContestStats(struct Pokemon *mon, u8 *data) { u16 i; for (i = 0; i < 5; i++) - data[i] = GetMonData(pokemon, gUnknown_085DFCB0[i]); + data[i] = GetMonData(mon, gUnknown_085DFCB0[i]); } -void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *pokemon) +void sub_8167054(struct Pokeblock *pokeblock, struct Pokemon *mon) { u16 i; s16 cstat; u8 data; - if (GetMonData(pokemon, MON_DATA_SHEEN) != 255) + + if (GetMonData(mon, MON_DATA_SHEEN) != 255) { - sub_8167184(pokeblock, pokemon); + sub_8167184(pokeblock, mon); for (i = 0; i < 5; i++) { - data = GetMonData(pokemon, gUnknown_085DFCB0[i]); + data = GetMonData(mon, gUnknown_085DFCB0[i]); cstat = data + gUnknown_0203BC90->field_66[i]; if (cstat < 0) cstat = 0; if (cstat > 255) cstat = 255; data = cstat; - SetMonData(pokemon, gUnknown_085DFCB0[i], &data); + SetMonData(mon, gUnknown_085DFCB0[i], &data); } - cstat = (u8)GetMonData(pokemon, MON_DATA_SHEEN); - cstat = cstat + pokeblock->feel; + cstat = (u8)(GetMonData(mon, MON_DATA_SHEEN)) + pokeblock->feel; if (cstat > 255) cstat = 255; data = cstat; - SetMonData(pokemon, MON_DATA_SHEEN, &data); + SetMonData(mon, MON_DATA_SHEEN, &data); } } void sub_8167104(void) { u16 i; - struct Pokemon *pokemon = gPlayerParty; - pokemon += gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->info.field_71 * 4 + 9]; - Pokeblock_GetMonContestStats(pokemon, gUnknown_0203BC90->field_57); - sub_8167054(gUnknown_0203BC90->pokeblock, pokemon); - Pokeblock_GetMonContestStats(pokemon, gUnknown_0203BC90->field_5c); - for (i=0; i<5; i++) - { + struct Pokemon *mon = gPlayerParty; + mon += gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->info.field_71 * 4 + 9]; + + Pokeblock_GetMonContestStats(mon, gUnknown_0203BC90->field_57); + sub_8167054(gUnknown_0203BC90->pokeblock, mon); + Pokeblock_GetMonContestStats(mon, gUnknown_0203BC90->field_5c); + for (i = 0; i < 5; i++) gUnknown_0203BC90->field_61[i] = gUnknown_0203BC90->field_5c[i] - gUnknown_0203BC90->field_57[i]; - } } -void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *pokemon) +void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *mon) { - s8 direction; - s8 i; - s16 amount; - s8 boost; - s8 taste; + s8 i, direction, taste; + gUnknown_0203BC90->field_66[0] = pokeblock->spicy; gUnknown_0203BC90->field_66[1] = pokeblock->sour; gUnknown_0203BC90->field_66[2] = pokeblock->bitter; gUnknown_0203BC90->field_66[3] = pokeblock->sweet; gUnknown_0203BC90->field_66[4] = pokeblock->dry; + if (gPokeblockGain > 0) direction = 1; else if (gPokeblockGain < 0) @@ -838,39 +841,43 @@ void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *pokemon) for (i = 0; i < 5; i++) { - amount = gUnknown_0203BC90->field_66[i]; - boost = amount / 10; + s16 amount = gUnknown_0203BC90->field_66[i]; + s8 boost = amount / 10; + if (amount % 10 >= 5) // round to the nearest boost++; - taste = GetMonFlavorRelation(pokemon, gUnknown_085DFCC4[i]); + taste = GetMonFlavorRelation(mon, gUnknown_085DFCC4[i]); if (taste == direction) gUnknown_0203BC90->field_66[i] += boost * taste; } } -bool8 sub_8167268(void) +bool8 IsSheenMaxed(void) { - u8 *mon; - mon = (u8 *) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_71 * 4]; - if (sub_81D2C68(*(mon + 864 + 0x7C58), *(mon + 865 + 0x7C58), MON_DATA_SHEEN, 0) == 255) + if (GetBoxOrPartyMonData(gUnknown_0203BCAC->field_7FB8[gUnknown_0203BCAC->info.field_71].unk0, + gUnknown_0203BCAC->field_7FB8[gUnknown_0203BCAC->info.field_71].unk1, + MON_DATA_SHEEN, + NULL) == 255) return TRUE; - return FALSE; + else + return FALSE; } u8 sub_81672A4(u8 a0) { u8 i; + for (i = 0; i < PARTY_SIZE; i++) { if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { if (a0 == 0) return i; - a0--; } } + return 0; } @@ -894,20 +901,21 @@ u8 sub_8167324(u8 a0) void sub_8167338(void) { - u16 flavor; - u8 spriteidx; + u16 i, spriteId; + LoadSpriteSheet(&gSpriteSheet_ConditionUpDown); LoadSpritePalette(&gSpritePalette_ConditionUpDown); gUnknown_0203BC90->field_54 = 0; - for (flavor = 0; flavor < 5; flavor++) + + for (i = 0; i < 5; i++) { - if (gUnknown_0203BC90->field_61[flavor] != 0) + if (gUnknown_0203BC90->field_61[i] != 0) { - spriteidx = CreateSprite(&gSpriteTemplate_085DFD5C, gUnknown_085DFD28[flavor][0], gUnknown_085DFD28[flavor][1], 0); - if (spriteidx != MAX_SPRITES) + spriteId = CreateSprite(&gSpriteTemplate_085DFD5C, gUnknown_085DFD28[i][0], gUnknown_085DFD28[i][1], 0); + if (spriteId != MAX_SPRITES) { - if (gUnknown_0203BC90->field_61[flavor] != 0) - gSprites[spriteidx].callback = sub_81673DC; + if (gUnknown_0203BC90->field_61[i] != 0) + gSprites[spriteId].callback = sub_81673DC; gUnknown_0203BC90->field_54++; } @@ -933,8 +941,8 @@ void sub_8167420(void) { u16 i; u16 numMons; - - for (i = 0, numMons = 0; i < CalculatePlayerPartyCount(); i++) + + for (i = 0, numMons = 0; i < CalculatePlayerPartyCount(); i++) { if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { @@ -952,21 +960,21 @@ void sub_8167420(void) void sub_81674BC(void) { - s16 var; - s16 var2; - + s16 var, var2; + sub_816753C(gUnknown_0203BCAC->info.field_71, 0); gUnknown_0203BCAC->field_7FB3 = 0; gUnknown_0203BCAC->field_7FB4 = 1; gUnknown_0203BCAC->field_7FB5 = 2; + var = gUnknown_0203BCAC->info.field_71 + 1; if (var >= gUnknown_0203BCAC->info.field_70) var = 0; - + var2 = gUnknown_0203BCAC->info.field_71 - 1; if (var2 < 0) var2 = gUnknown_0203BCAC->info.field_70 - 1; - + sub_816753C(var, 1); sub_816753C(var2, 2); } @@ -977,11 +985,11 @@ void sub_816753C(s16 a1, u8 a2) u8 *v3; int v5; int v6; - + v3 = &gUnknown_0203BCAC->field_0[a1 << 16 >> 14]; v5 = *(0x7FB8 + v3); v6 = *(0x7FB9 + v3); - + sub_81D2ED4(gUnknown_0203BCAC->field_0[0x7B4D + 24 * a2], gUnknown_0203BCAC->field_0[0x7B95 + 64 * a2], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); sub_81D2F78(gUnknown_0203BCAC->field_7C58[0], gUnknown_0203BCAC->field_0[0x7FB0], v5, v6, a1, a2, gUnknown_0203BCAC->info.field_70, 0); sub_81D3094(gUnknown_0203BCAC->field_0[(a2 << 13) + 0x304], gUnknown_0203BCAC->field_0[(a2 << 7) + 4], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); @@ -1082,547 +1090,173 @@ void sub_816753C(s16 a1, u8 a2) } #endif -#ifdef NONMATCHING void sub_8167608(u8 arg0) { - u8 v4; - u8 *v5; - u8 *v6; - u32 v7; - struct SpritePalette array[5]; - if(gUnknown_0203BCAC->field_0[0x7B10] == 255) + u8 spriteId; + struct SpriteTemplate spriteTemplate; + struct SpriteSheet spriteSheet; + struct SpritePalette spritePal; + + if (gUnknown_0203BCAC->field_7B10 == 0xFF) { - sub_81D31D0(&array[3], &array[0], &array[4]); - array[1] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]); - array[2] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 7) + 4]); - gUnknown_0203BCAC->field_0[0x7B12] = LoadSpritePalette(&array[3]); - gUnknown_0203BCAC->field_0[0x7B14] = LoadSpritePalette(&array[4]); - v4 = CreateSprite(array[0], 38, 104, 0); - gUnknown_0203BCAC->field_0[0x7B10] = v4; - if(v4 == 64) + sub_81D31D0(&spriteSheet, &spriteTemplate, &spritePal); + spriteSheet.data = gUnknown_0203BCAC->field_304[arg0]; + spritePal.data = gUnknown_0203BCAC->field_4[arg0]; + gUnknown_0203BCAC->field_7B12 = LoadSpritePalette(&spritePal); + gUnknown_0203BCAC->field_7B14 = LoadSpriteSheet(&spriteSheet); + spriteId = CreateSprite(&spriteTemplate, 38, 104, 0); + gUnknown_0203BCAC->field_7B10 = spriteId; + if (spriteId == MAX_SPRITES) { FreeSpriteTilesByTag(100); FreeSpritePaletteByTag(100); - gUnknown_0203BCAC->field_0[0x7B10] = 255; + gUnknown_0203BCAC->field_7B10 = 0xFF; } else { - gUnknown_0203BCAC->field_0[0x7B10] = v4; - v5 = &gUnknown_0203BCAC->field_0[0]; - v6 = &gUnknown_0203BCAC->field_0[0x7B10]; - gSprites[v6].callback = sub_8168168; - gSprites[v6].pos2.y -= 32; - *(v5+0x7B18) = 32 * *(v5+0x7B14) + 0x06010000; - *(v5+0x7B12) = 16 * *(v5+0x7B12) + 0x100; + gUnknown_0203BCAC->field_7B10 = spriteId; + gSprites[gUnknown_0203BCAC->field_7B10].callback = sub_8168168; + gSprites[gUnknown_0203BCAC->field_7B10].pos2.y -= 34; + gUnknown_0203BCAC->field_7B18 = (void*)(OBJ_VRAM0 + (gUnknown_0203BCAC->field_7B14 * 32)); + gUnknown_0203BCAC->field_7B12 = (gUnknown_0203BCAC->field_7B12 * 16) + 0x100; } } else { - v7 = gUnknown_0203BCAC->field_0[0x7B18]; - REG_ADDR_DMA3SAD = gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]; - REG_ADDR_DMA3DAD = v7; - REG_ADDR_DMA3CNT = 0x80000400; - LoadPalette(gUnknown_0203BCAC->field_0[arg0 << 7) + 4), gUnknown_0203BCAC->field_0[0x7B12], 32); + do {} while(0); // Surprised to see something like this? It's a very neat trick for generating the same assembly. It has no practical purpose, feel free to remove it. + DmaCopy16Defvars(3, gUnknown_0203BCAC->field_304[arg0], gUnknown_0203BCAC->field_7B18, 0x800); + LoadPalette(gUnknown_0203BCAC->field_4[arg0], gUnknown_0203BCAC->field_7B12, 32); } } -#else -NAKED -void sub_8167608(u8 arg0) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - sub sp, 0x28\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - ldr r1, =gUnknown_0203BCAC\n\ - ldr r3, [r1]\n\ - ldr r0, =0x00007b10\n\ - mov r8, r0\n\ - adds r0, r3, r0\n\ - ldrb r0, [r0]\n\ - adds r7, r1, 0\n\ - cmp r0, 0xFF\n\ - bne _08167714\n\ - add r5, sp, 0x18\n\ - add r4, sp, 0x20\n\ - adds r0, r5, 0\n\ - mov r1, sp\n\ - adds r2, r4, 0\n\ - bl sub_81D31D0\n\ - lsls r0, r6, 13\n\ - movs r1, 0xC1\n\ - lsls r1, 2\n\ - adds r0, r1\n\ - ldr r1, [r7]\n\ - adds r0, r1, r0\n\ - str r0, [sp, 0x18]\n\ - lsls r0, r6, 7\n\ - adds r0, 0x4\n\ - adds r1, r0\n\ - str r1, [sp, 0x20]\n\ - adds r0, r4, 0\n\ - bl LoadSpritePalette\n\ - ldr r1, [r7]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r2, =0x00007b12\n\ - adds r1, r2\n\ - strh r0, [r1]\n\ - adds r0, r5, 0\n\ - bl LoadSpriteSheet\n\ - ldr r1, [r7]\n\ - ldr r3, =0x00007b14\n\ - adds r1, r3\n\ - strh r0, [r1]\n\ - mov r0, sp\n\ - movs r1, 0x26\n\ - movs r2, 0x68\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - ldr r0, [r7]\n\ - ldr r2, =0x00007b10\n\ - adds r0, r2\n\ - strb r1, [r0]\n\ - cmp r1, 0x40\n\ - bne _081676AC\n\ - movs r0, 0x64\n\ - bl FreeSpriteTilesByTag\n\ - movs r0, 0x64\n\ - bl FreeSpritePaletteByTag\n\ - ldr r0, [r7]\n\ - add r0, r8\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ - b _08167742\n\ - .pool\n\ -_081676AC:\n\ - ldr r0, [r7]\n\ - add r0, r8\n\ - strb r1, [r0]\n\ - ldr r4, =gSprites\n\ - ldr r2, [r7]\n\ - mov r0, r8\n\ - adds r3, r2, r0\n\ - ldrb r1, [r3]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r1, r4, 0\n\ - adds r1, 0x1C\n\ - adds r0, r1\n\ - ldr r1, =sub_8168168\n\ - str r1, [r0]\n\ - ldrb r1, [r3]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r4\n\ - ldrh r1, [r0, 0x26]\n\ - subs r1, 0x22\n\ - strh r1, [r0, 0x26]\n\ - ldr r3, =0x00007b18\n\ - adds r1, r2, r3\n\ - subs r3, 0x4\n\ - adds r0, r2, r3\n\ - ldrh r0, [r0]\n\ - lsls r0, 5\n\ - ldr r3, =0x06010000\n\ - adds r0, r3\n\ - str r0, [r1]\n\ - ldr r0, =0x00007b12\n\ - adds r2, r0\n\ - ldrh r0, [r2]\n\ - lsls r0, 4\n\ - movs r1, 0x80\n\ - lsls r1, 1\n\ - adds r0, r1\n\ - strh r0, [r2]\n\ - b _08167742\n\ - .pool\n\ -_08167714:\n\ - lsls r1, r6, 13\n\ - movs r0, 0xC1\n\ - lsls r0, 2\n\ - adds r1, r0\n\ - adds r1, r3, r1\n\ - ldr r2, =0x00007b18\n\ - adds r0, r3, r2\n\ - ldr r2, [r0]\n\ - ldr r0, =0x040000d4\n\ - str r1, [r0]\n\ - str r2, [r0, 0x4]\n\ - ldr r1, =0x80000400\n\ - str r1, [r0, 0x8]\n\ - ldr r0, [r0, 0x8]\n\ - lsls r0, r6, 7\n\ - adds r0, 0x4\n\ - adds r0, r3, r0\n\ - ldr r2, =0x00007b12\n\ - adds r1, r3, r2\n\ - ldrh r1, [r1]\n\ - movs r2, 0x20\n\ - bl LoadPalette\n\ -_08167742:\n\ - add sp, 0x28\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif -#ifdef NONMATCHING void sub_8167760(void) { - s32 i; - u8 v1; - u8 v2; - u8 v3; - u32 v4; - struct SpriteSheet *v6; - struct SpriteTemplate *v7; - void (*funcCB) (void); - struct SpritePalette *v9; - struct SpriteSheet *v10; - struct SpritePalette *v11; - - sub_81D321C(v6, v7, v9); - LoadSpriteSheets(v6); - LoadSpritePalettes(v9); - for(i = 0; i < gUnknown_0203BCAC->info.field_70 - 1; i++) + u16 i, spriteId; + struct SpriteSheet spriteSheets[4]; + struct SpriteTemplate spriteTemplate; + struct SpritePalette spritePals[3]; + struct SpriteSheet spriteSheet2; + struct SpritePalette spritePal2; + + sub_81D321C(spriteSheets, &spriteTemplate, spritePals); + LoadSpriteSheets(spriteSheets); + LoadSpritePalettes(spritePals); + + for (i = 0; i < gUnknown_0203BCAC->info.field_70 - 1; i++) { - v1 = CreateSprite(v7, 226, (0x140000 * i + 0x80000) >> 16, 0); - if(v1 == 64) + spriteId = CreateSprite(&spriteTemplate, 226, (i * 20) + 8, 0); + if (spriteId != MAX_SPRITES) { - gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; + gUnknown_0203BCAC->field_7B06[i] = spriteId; + gSprites[spriteId].data[0] = i; + gSprites[spriteId].callback = sub_8168180; } else { - gUnknown_0203BCAC->field_0[0x7B06 + i] = v1; - gSprites[v1].data[0] = i; - gSprites[v1].callback = (SpriteCallback) sub_8168180; + gUnknown_0203BCAC->field_7B06[i] = -1; } } - for(v7->tileTag = 103; i <= 5; i++) + + spriteTemplate.tileTag = 103; + for (; i < 6; i++) { - v2 = CreateSprite(v7, 230, (0x140000 * i + 0x80000) >> 16, 0); - if(v2 == 64 ) + spriteId = CreateSprite(&spriteTemplate, 230, (i * 20) + 8, 0); + if (spriteId != MAX_SPRITES) { - gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; + gUnknown_0203BCAC->field_7B06[i] = spriteId; + gSprites[spriteId].oam.size = 0; } else { - gUnknown_0203BCAC->field_0[0x7B06 + i] = v2; - gSprites[v2].oam.tileNum &= 0x3F; + gUnknown_0203BCAC->field_7B06[i] = -1; } } - v7->tileTag = 102; - funcCB = sub_81681B4; - v3 = CreateSprite(v7, 222, (0x140000 * i + 0x80000) >> 16, 0); - if(v3 == 64) + + spriteTemplate.tileTag = 102; + spriteTemplate.callback = sub_81681B4; + spriteId = CreateSprite(&spriteTemplate, 222, (i * 20) + 8, 0); + if (spriteId != MAX_SPRITES) { - gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; - } - else + gUnknown_0203BCAC->field_7B06[i] = spriteId; + gSprites[spriteId].oam.shape = 1; + gSprites[spriteId].oam.size = 2; + } + else { - gUnknown_0203BCAC->field_0[0x7B06 + i] = v3; - v4 = 68 * v3 + 0x2020630; - (v4 + 1) = gSprites[v2].oam.affineMode & (0x3F | 0x40); - (v4 + 3) = (v4 + 3) & (0x3F | 0x80); + gUnknown_0203BCAC->field_7B06[i] = -1; } - sub_81D32B0(v10, v11); - LoadSpriteSheet(v10); - LoadSpritePalette(v11); -} -#else -NAKED -void sub_8167760(void) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x60\n\ - add r5, sp, 0x20\n\ - add r4, sp, 0x38\n\ - mov r0, sp\n\ - adds r1, r5, 0\n\ - adds r2, r4, 0\n\ - bl sub_81D321C\n\ - mov r0, sp\n\ - bl LoadSpriteSheets\n\ - adds r0, r4, 0\n\ - bl LoadSpritePalettes\n\ - movs r4, 0\n\ - ldr r1, =gUnknown_0203BCAC\n\ - ldr r0, [r1]\n\ - ldr r2, =0x00008040\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - subs r0, 0x1\n\ - adds r6, r5, 0\n\ - add r2, sp, 0x50\n\ - mov r9, r2\n\ - add r2, sp, 0x58\n\ - mov r10, r2\n\ - cmp r4, r0\n\ - bge _0816781C\n\ - adds r5, r1, 0\n\ - ldr r7, =gSprites\n\ - movs r0, 0x1C\n\ - adds r0, r7\n\ - mov r8, r0\n\ -_081677AC:\n\ - lsls r2, r4, 2\n\ - adds r2, r4\n\ - lsls r2, 18\n\ - movs r1, 0x80\n\ - lsls r1, 12\n\ - adds r2, r1\n\ - asrs r2, 16\n\ - adds r0, r6, 0\n\ - movs r1, 0xE2\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0x40\n\ - beq _081677FC\n\ - ldr r0, [r5]\n\ - ldr r2, =0x00007b06\n\ - adds r0, r2\n\ - adds r0, r4\n\ - strb r3, [r0]\n\ - lsls r0, r3, 4\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r1, r0, r7\n\ - strh r4, [r1, 0x2E]\n\ - add r0, r8\n\ - ldr r1, =sub_8168180\n\ - str r1, [r0]\n\ - b _08167808\n\ - .pool\n\ -_081677FC:\n\ - ldr r0, [r5]\n\ - ldr r1, =0x00007b06\n\ - adds r0, r1\n\ - adds r0, r4\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ -_08167808:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - ldr r0, [r5]\n\ - ldr r2, =0x00008040\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r4, r0\n\ - blt _081677AC\n\ -_0816781C:\n\ - movs r0, 0x67\n\ - strh r0, [r6]\n\ - cmp r4, 0x5\n\ - bhi _0816788A\n\ - ldr r5, =gUnknown_0203BCAC\n\ - ldr r7, =gSprites\n\ -_08167828:\n\ - lsls r2, r4, 2\n\ - adds r2, r4\n\ - lsls r2, 18\n\ - movs r0, 0x80\n\ - lsls r0, 12\n\ - adds r2, r0\n\ - asrs r2, 16\n\ - adds r0, r6, 0\n\ - movs r1, 0xE6\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0x40\n\ - beq _08167874\n\ - ldr r0, [r5]\n\ - ldr r1, =0x00007b06\n\ - adds r0, r1\n\ - adds r0, r4\n\ - strb r3, [r0]\n\ - lsls r1, r3, 4\n\ - adds r1, r3\n\ - lsls r1, 2\n\ - adds r1, r7\n\ - ldrb r2, [r1, 0x3]\n\ - movs r0, 0x3F\n\ - ands r0, r2\n\ - strb r0, [r1, 0x3]\n\ - b _08167880\n\ - .pool\n\ -_08167874:\n\ - ldr r0, [r5]\n\ - ldr r2, =0x00007b06\n\ - adds r0, r2\n\ - adds r0, r4\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ -_08167880:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r4, 0x5\n\ - bls _08167828\n\ -_0816788A:\n\ - movs r0, 0x66\n\ - strh r0, [r6]\n\ - ldr r0, =sub_81681B4\n\ - str r0, [r6, 0x14]\n\ - lsls r2, r4, 2\n\ - adds r2, r4\n\ - lsls r2, 18\n\ - movs r0, 0x80\n\ - lsls r0, 12\n\ - adds r2, r0\n\ - asrs r2, 16\n\ - adds r0, r6, 0\n\ - movs r1, 0xDE\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0x40\n\ - beq _081678F4\n\ - ldr r0, =gUnknown_0203BCAC\n\ - ldr r0, [r0]\n\ - ldr r1, =0x00007b06\n\ - adds r0, r1\n\ - adds r0, r4\n\ - strb r3, [r0]\n\ - ldr r0, =gSprites\n\ - lsls r2, r3, 4\n\ - adds r2, r3\n\ - lsls r2, 2\n\ - adds r2, r0\n\ - ldrb r3, [r2, 0x1]\n\ - movs r1, 0x3F\n\ - adds r0, r1, 0\n\ - ands r0, r3\n\ - movs r3, 0x40\n\ - orrs r0, r3\n\ - strb r0, [r2, 0x1]\n\ - ldrb r0, [r2, 0x3]\n\ - ands r1, r0\n\ - movs r0, 0x80\n\ - orrs r1, r0\n\ - strb r1, [r2, 0x3]\n\ - b _08167902\n\ - .pool\n\ -_081678F4:\n\ - ldr r0, =gUnknown_0203BCAC\n\ - ldr r0, [r0]\n\ - ldr r2, =0x00007b06\n\ - adds r0, r2\n\ - adds r0, r4\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ -_08167902:\n\ - mov r0, r9\n\ - mov r1, r10\n\ - bl sub_81D32B0\n\ - mov r0, r9\n\ - bl LoadSpriteSheet\n\ - mov r0, r10\n\ - bl LoadSpritePalette\n\ - add sp, 0x60\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + + sub_81D32B0(&spriteSheet2, &spritePal2); + LoadSpriteSheet(&spriteSheet2); + LoadSpritePalette(&spritePal2); } -#endif bool8 sub_8167930(void) { - bool8 retvalue; - switch(gUnknown_0203BCAC->info.unk78) - { - case 0: - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); - ChangeBgX(1, 0, 0); - ChangeBgY(1, 0, 0); - ChangeBgX(2, 0, 0); - ChangeBgY(2, 0, 0); - ChangeBgX(3, 0, 0); - ChangeBgY(3, 136 << 6, 0); - SetGpuReg(REG_OFFSET_DISPCNT, 28736); - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2|BLDCNT_EFFECT_BLEND|BLDCNT_TGT2_BG1); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); - break; - case 1: - (u32 *) gUnknown_0203BCA4 = Alloc(6656); - (u32 *) gUnknown_0203BCA0 = Alloc(1280); - (u32 *) gUnknown_0203BCA8 = Alloc(1280); - break; - case 2: - LZ77UnCompVram(gUnknown_085DFB60, gUnknown_0203BCA8); - break; - case 3: - LoadBgTiles(3, gUnknown_085DFA80, 224, 0); - break; - case 4: - LoadBgTilemap(3, gUnknown_0203BCA8, 1280, 0); - break; - case 5: - LoadPalette(gUnknown_085DFA60, 208, 32); - gUnknown_0203BCAC->field_7B0E = 0xFFB0; - break; - case 6: - LZ77UnCompVram(gUsePokeblockGraph_Gfx, gUnknown_0203BCA4); - break; - case 7: - LZ77UnCompVram(gUsePokeblockGraph_Tilemap, gUnknown_0203BCA0); - LoadPalette(gUsePokeblockGraph_Pal, 32, 32); - break; - case 8: - LoadBgTiles(1, gUnknown_0203BCA4, 6656, 160 << 2); - break; - case 9: - SetBgTilemapBuffer(1, gUnknown_0203BCA0); - CopyToBgTilemapBufferRect(1, gUsePokeblockNatureWin_Pal, 0, 13, 12, 4); - CopyBgTilemapBufferToVram(1); - break; - case 10: - LZ77UnCompVram(gUnknown_085DFC0C, &gUnknown_0203BCAC->field_0[0x7304]); - break; - case 11: - LoadBgTilemap(2, &gUnknown_0203BCAC->field_0[0x7304], 1280, 0); - LoadPalette(gUnknown_086231E8, 48, 32); - LoadPalette(gUnknown_08623208, 240, 32); - sub_81D21DC(2); - break; - default: - gUnknown_0203BCAC->info.unk78 = 0; - retvalue = 0; - return retvalue; - } - gUnknown_0203BCAC->info.unk78++; - retvalue = 1; - return retvalue; + switch (gUnknown_0203BCAC->info.unk78) + { + case 0: + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 136 << 6, 0); + SetGpuReg(REG_OFFSET_DISPCNT, 28736); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2|BLDCNT_EFFECT_BLEND|BLDCNT_TGT2_BG1); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + break; + case 1: + gUnknown_0203BCA4 = Alloc(6656); + gUnknown_0203BCA0 = Alloc(1280); + gUnknown_0203BCA8 = Alloc(1280); + break; + case 2: + LZ77UnCompVram(gUnknown_085DFB60, gUnknown_0203BCA8); + break; + case 3: + LoadBgTiles(3, gUnknown_085DFA80, 224, 0); + break; + case 4: + LoadBgTilemap(3, gUnknown_0203BCA8, 1280, 0); + break; + case 5: + LoadPalette(gUnknown_085DFA60, 208, 32); + gUnknown_0203BCAC->field_7B0E = 0xFFB0; + break; + case 6: + LZ77UnCompVram(gUsePokeblockGraph_Gfx, gUnknown_0203BCA4); + break; + case 7: + LZ77UnCompVram(gUsePokeblockGraph_Tilemap, gUnknown_0203BCA0); + LoadPalette(gUsePokeblockGraph_Pal, 32, 32); + break; + case 8: + LoadBgTiles(1, gUnknown_0203BCA4, 6656, 160 << 2); + break; + case 9: + SetBgTilemapBuffer(1, gUnknown_0203BCA0); + CopyToBgTilemapBufferRect(1, gUsePokeblockNatureWin_Pal, 0, 13, 12, 4); + CopyBgTilemapBufferToVram(1); + break; + case 10: + LZ77UnCompVram(gUnknown_085DFC0C, &gUnknown_0203BCAC->field_0[0x7304]); + break; + case 11: + LoadBgTilemap(2, &gUnknown_0203BCAC->field_0[0x7304], 1280, 0); + LoadPalette(gUnknown_086231E8, 48, 32); + LoadPalette(gUnknown_08623208, 240, 32); + sub_81D21DC(2); + break; + default: + gUnknown_0203BCAC->info.unk78 = 0; + return FALSE; + } + + gUnknown_0203BCAC->info.unk78++; + return TRUE; } void sub_8167BA0(u16 arg0, u8 copyToVramMode) @@ -1658,9 +1292,7 @@ void sub_8167BA0(u16 arg0, u8 copyToVramMode) static void sub_8167CA0(bool8 arg0) { u16 var0; - int var1; - int r8; - int r4; + bool32 r8, r4; if (arg0) var0 = gUnknown_0203BCAC->field_7FB5; @@ -1680,11 +1312,11 @@ static void sub_8167CA0(bool8 arg0) gUnknown_0203BCAC->field_7FB3 = var0; gUnknown_0203BCAC->field_7FB6 = gUnknown_0203BCAC->field_7FB5; - gUnknown_0203BCAC->info.field_71 = gUnknown_0203BCAC->info.field_71 == 0 + gUnknown_0203BCAC->info.field_71 = (gUnknown_0203BCAC->info.field_71 == 0) ? gUnknown_0203BCAC->info.field_70 - 1 : gUnknown_0203BCAC->info.field_71 - 1; - gUnknown_0203BCAC->field_7B4C = gUnknown_0203BCAC->info.field_71 == 0 + gUnknown_0203BCAC->field_7B4C = (gUnknown_0203BCAC->info.field_71 == 0) ? gUnknown_0203BCAC->info.field_70 - 1 : gUnknown_0203BCAC->info.field_71 - 1; } @@ -1695,11 +1327,11 @@ static void sub_8167CA0(bool8 arg0) gUnknown_0203BCAC->field_7FB3 = var0; gUnknown_0203BCAC->field_7FB6 = gUnknown_0203BCAC->field_7FB4; - gUnknown_0203BCAC->info.field_71 = gUnknown_0203BCAC->info.field_71 < gUnknown_0203BCAC->info.field_70 - 1 + gUnknown_0203BCAC->info.field_71 = (gUnknown_0203BCAC->info.field_71 < gUnknown_0203BCAC->info.field_70 - 1) ? gUnknown_0203BCAC->info.field_71 + 1 : 0; - gUnknown_0203BCAC->field_7B4C = gUnknown_0203BCAC->info.field_71 < gUnknown_0203BCAC->info.field_70 - 1 + gUnknown_0203BCAC->field_7B4C = (gUnknown_0203BCAC->info.field_71 < gUnknown_0203BCAC->info.field_70 - 1) ? gUnknown_0203BCAC->info.field_71 + 1 : 0; } @@ -1835,7 +1467,8 @@ void sub_81681B4(struct Sprite *sprite) void sub_81681F4(u8 monIndex) { u8 sheen = GetMonData(&gPlayerParty[monIndex], MON_DATA_SHEEN); - gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3] = sheen != 255 + + gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->field_7FB3] = (sheen != 255) ? sheen / 29 : 9; } @@ -1868,7 +1501,7 @@ static void sub_8168294(void) if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[0] = var; - gSprites[spriteId].data[1] = (i * xDiff) | 32; + gSprites[spriteId].data[1] = (i * xDiff) | 0x20; gSprites[spriteId].data[2] = i; StartSpriteAnim(&gSprites[spriteId], i); sprites[i] = &gSprites[spriteId]; @@ -1896,6 +1529,7 @@ static bool8 sub_8168328(void) void sub_8168374(struct Sprite *sprite) { s16 prevX = sprite->pos1.x; + sprite->pos1.x += sprite->data[0]; if ((prevX <= sprite->data[1] && sprite->pos1.x >= sprite->data[1]) || (prevX >= sprite->data[1] && sprite->pos1.x <= sprite->data[1])) -- cgit v1.2.3 From e3c07c83f2bb8ce91d96f4bb39110fae18eccdc1 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 31 Mar 2019 14:32:26 +0200 Subject: More work on use pokeblock --- src/menu_specialized.c | 222 +++++++++++++++++++++++++++++++++++++++++++++---- src/use_pokeblock.c | 144 +++++--------------------------- 2 files changed, 226 insertions(+), 140 deletions(-) (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c index ae150dcb4..f21f4e51a 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -37,6 +37,9 @@ static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); static void nullsub_79(void); +static void sub_81D3408(struct Sprite *sprite); +/*static*/ void sub_81D3564(struct Sprite *sprite); +static void sub_81D35E8(struct Sprite *sprite); static const struct WindowTemplate sUnknown_086253E8[] = { @@ -1243,7 +1246,7 @@ void sub_81D2ED4(u8 *dst, u8 *nameDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, } } -void sub_81D2F78(struct Unk81D2F78_Struct *arg0, u8 *sheen, u16 boxId, u16 monId, u16 arg5, u16 id, u16 arg7, bool8 arg8) +void sub_81D2F78(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 monId, u16 arg5, u16 id, u16 arg7, bool8 arg8) { u16 i; @@ -1252,30 +1255,30 @@ void sub_81D2F78(struct Unk81D2F78_Struct *arg0, u8 *sheen, u16 boxId, u16 monId if (arg5 != arg7) { - arg0->contestStats[id][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL); - arg0->contestStats[id][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL); - arg0->contestStats[id][2] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SMART, NULL); - arg0->contestStats[id][3] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_CUTE, NULL); - arg0->contestStats[id][4] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_BEAUTY, NULL); + arg0->unk0[id][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL); + arg0->unk0[id][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL); + arg0->unk0[id][2] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SMART, NULL); + arg0->unk0[id][3] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_CUTE, NULL); + arg0->unk0[id][4] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_BEAUTY, NULL); sheen[id] = (GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) != 0xFF) ? GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) / 29u : 9; - sub_81D2754(arg0->contestStats[id], arg0->field_20[id]); + sub_81D2754(arg0->unk0[id], arg0->unk14[id]); } else { for (i = 0; i < 5; i++) { - arg0->contestStats[id][i] = 0; - arg0->field_20[id][i].unk0 = 155; - arg0->field_20[id][i].unk2 = 91; + arg0->unk0[id][i] = 0; + arg0->unk14[id][i].unk0 = 155; + arg0->unk14[id][i].unk2 = 91; } } } -void sub_81D3094(u8 *tilesDst, u8 *palDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7) +void sub_81D3094(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7) { if (!arg7) arg6--; @@ -1325,10 +1328,10 @@ bool8 sub_81D31A4(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1) return ((var1 != 0) || (var2 != 0)); } -const u32 gUnknown_08625560[] = INCBIN_U32("graphics/pokenav/pokeball.4bpp"); -const u32 gUnknown_08625660[] = INCBIN_U32("graphics/pokenav/pokeball_placeholder.4bpp"); -const u16 gUnknown_08625680[] = INCBIN_U16("graphics/pokenav/sparkle.gbapal"); -const u32 gUnknown_086256A0[] = INCBIN_U32("graphics/pokenav/sparkle.4bpp"); +static const u32 gUnknown_08625560[] = INCBIN_U32("graphics/pokenav/pokeball.4bpp"); +static const u32 gUnknown_08625660[] = INCBIN_U32("graphics/pokenav/pokeball_placeholder.4bpp"); +static const u16 gUnknown_08625680[] = INCBIN_U16("graphics/pokenav/sparkle.gbapal"); +static const u32 gUnknown_086256A0[] = INCBIN_U32("graphics/pokenav/sparkle.4bpp"); static const struct OamData sOamData_8625A20 = { @@ -1347,7 +1350,7 @@ static const struct OamData sOamData_8625A20 = .affineParam = 0 }; -const struct OamData sOamData_8625A28 = +static const struct OamData sOamData_8625A28 = { .y = 0, .affineMode = 0, @@ -1376,7 +1379,7 @@ static const union AnimCmd sSpriteAnim_8625A38[] = ANIMCMD_END }; -const union AnimCmd *const sSpriteAnimTable_8625A40[] = +static const union AnimCmd *const sSpriteAnimTable_8625A40[] = { sSpriteAnim_8625A30, sSpriteAnim_8625A38 @@ -1451,3 +1454,188 @@ void sub_81D32B0(struct SpriteSheet *sheet, struct SpritePalette *pal) *sheet = dataSheet; *pal = dataPal; } + +static void sub_81D32D4(struct Sprite *sprite) +{ + if (++sprite->data[1] > 60) + { + sprite->data[1] = 0; + sub_81D3408(sprite); + } +} + +static void sub_81D32F4(struct Sprite *sprite) +{ + if (sprite->animEnded) + { + sprite->data[1] = 0; + sprite->callback = sub_81D32D4; + } +} + +// Todo: Move these variables to C. +extern const s16 gUnknown_08625B2C[][2]; +extern const struct SpriteTemplate gUnknown_08625B14; + +void sub_81D3314(struct Sprite *sprite) +{ + struct Sprite *sprite2 = &gSprites[sprite->data[4]]; + + if (sprite2 != NULL) + { + sprite->pos1.x = sprite2->pos1.x + sprite2->pos2.x + gUnknown_08625B2C[sprite->data[0]][0]; + sprite->pos1.y = sprite2->pos1.y + sprite2->pos2.y + gUnknown_08625B2C[sprite->data[0]][1]; + } + else + { + sprite->pos1.x = gUnknown_08625B2C[sprite->data[0]][0] + 40; + sprite->pos1.y = gUnknown_08625B2C[sprite->data[0]][1] + 104; + } +} + +void sub_81D338C(u8 arg0, u8 arg1, struct Sprite **sprites) +{ + u16 i; + + for (i = 0; i < 10; i++) + { + if (sprites[i] != NULL) + { + sprites[i]->data[0] = i; + sprites[i]->data[1] = (i * 16) + 1; + sprites[i]->data[2] = arg0; + sprites[i]->data[3] = i; + if (arg1 == 0 || arg0 != 9) + { + sprites[i]->callback = sub_81D3564; + } + else + { + sub_81D3314(sprites[i]); + sub_81D35E8(sprites[i]); + sprites[i]->callback = sub_81D32F4; + sprites[i]->invisible = FALSE; + } + } + } +} + +static void sub_81D3408(struct Sprite *sprite) +{ + u16 i; + u8 id = sprite->data[5]; + + for (i = 0; i < sprite->data[2] + 1; i++) + { + gSprites[id].data[1] = (gSprites[id].data[0] * 16) + 1; + gSprites[id].callback = sub_81D3564; + id = gSprites[id].data[5]; + } +} + +void sub_81D3464(struct Sprite **sprites) +{ + u8 i; + + for (i = 0; i < 10; i++) + sprites[i] = NULL; +} + +void sub_81D3480(struct Sprite **sprites, u8 arg1, u8 arg2) +{ + u16 i, spriteId, firstSpriteId = 0; + u8 count = arg2; + + for (i = 0; i < count + 1; i++) + { + spriteId = CreateSprite(&gUnknown_08625B14, 0, 0, 0); + if (spriteId != MAX_SPRITES) + { + sprites[i] = &gSprites[spriteId]; + sprites[i]->invisible = TRUE; + sprites[i]->data[4] = arg1; + if (i != 0) + sprites[i - 1]->data[5] = spriteId; + else + firstSpriteId = spriteId; + } + else + { + break; + } + } + + sprites[count]->data[5] = firstSpriteId; + sub_81D338C(count, 1, sprites); +} + +void sub_81D3520(struct Sprite **sprites) +{ + u16 i; + + for (i = 0; i < 10; i++) + { + if (sprites[i] != NULL) + { + DestroySprite(sprites[i]); + sprites[i] = NULL; + } + else + { + break; + } + } +} + +void sub_81D354C(struct Sprite **sprites) +{ + sub_81D3520(sprites); + FreeSpriteTilesByTag(104); + FreeSpritePaletteByTag(104); +} + +/*static*/ void sub_81D3564(struct Sprite *sprite) +{ + if (sprite->data[1] != 0) + { + if (--sprite->data[1] != 0) + return; + + SeekSpriteAnim(sprite, 0); + sprite->invisible = FALSE; + } + + sub_81D3314(sprite); + if (sprite->animEnded) + { + sprite->invisible = TRUE; + if (sprite->data[3] == sprite->data[2]) + { + if (sprite->data[3] == 9) + { + sub_81D35E8(sprite); + sprite->callback = sub_81D32F4; + } + else + { + sprite->callback = sub_81D32D4; + } + } + else + { + sprite->callback = SpriteCallbackDummy; + } + } +} + +static void sub_81D35E8(struct Sprite *sprite) +{ + u8 i, id = sprite->data[5]; + + for (i = 0; i < sprite->data[2] + 1; i++) + { + SeekSpriteAnim(&gSprites[id], 0); + gSprites[id].invisible = FALSE; + id = gSprites[id].data[5]; + } +} diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index d78132585..6df826214 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -57,11 +57,11 @@ struct Unk7FB8 struct UsePokeblockStruct { - /*0x0000*/ u8 field_0[4]; - /*0x0000*/ u16 field_4[3][0x40]; - /*0x0184*/ u8 field_184[0x304 - 0x184]; + /*0x0000*/ u8 filler0[4]; + /*0x0000*/ u16 field_4[6][0x40]; /*0x0304*/ u8 field_304[3][0x2000]; - /*0x6304*/ u8 field_6304[0x7b06 - 0x6304]; + /*0x6304*/ u8 filler_6304[0x1000]; + /*0x7304*/ u8 tilemapBuffer[BG_SCREEN_SIZE + 2]; /*0x7B06*/ u8 field_7B06[7]; /*0x7B0E*/ s16 field_7B0E; /*0x7B10*/ u8 field_7B10; @@ -71,8 +71,7 @@ struct UsePokeblockStruct /*0x7B1C*/ struct Sprite *field_7B1C[10]; /*0x7B44*/ struct Sprite *field_7B44[2]; /*0x7B4C*/ u8 field_7B4C; - /*0x7B4D*/ u8 filler7B4D[0x47]; - /*0x7B94*/ u8 filler7B94; + /*0x7B4D*/ u8 field_7B4D[3][24]; /*0x7B95*/ u8 field_7B95[3][64]; /*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58; /*0x7FB0*/ u8 unk7FB0[3]; @@ -119,7 +118,7 @@ void sub_8167338(void); void sub_81681F4(u8); void sub_8166E24(void); bool8 sub_8166EDC(void); -void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2); +void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statId, s16 a2); void Pokeblock_MenuWindowTextPrint(const u8 *message); void sub_8167184(struct Pokeblock *, struct Pokemon *); void sub_81673DC(struct Sprite *sprite); @@ -712,15 +711,13 @@ void Pokeblock_MenuWindowTextPrint(const u8 *message) AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); } +// This function is a joke. #ifdef NONMATCHING -void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2) +void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statId, s16 a2) { if (a2 != 0) { - if (a2 > 0) - a2 = 0; - - StringCopy(dest, sContestStatNames[statID]); + StringCopy(dest, sContestStatNames[statId]); StringAppend(dest, gText_WasEnhanced); } else @@ -730,7 +727,7 @@ void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2) } #else NAKED -void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2) +void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statId, s16 a2) { asm(".syntax unified\n\ push {r4,lr}\n\ @@ -979,116 +976,17 @@ void sub_81674BC(void) sub_816753C(var2, 2); } -#ifdef NONMATCHING -void sub_816753C(s16 a1, u8 a2) +void sub_816753C(s16 id1, u8 id2) { - u8 *v3; - int v5; - int v6; - - v3 = &gUnknown_0203BCAC->field_0[a1 << 16 >> 14]; - v5 = *(0x7FB8 + v3); - v6 = *(0x7FB9 + v3); - - sub_81D2ED4(gUnknown_0203BCAC->field_0[0x7B4D + 24 * a2], gUnknown_0203BCAC->field_0[0x7B95 + 64 * a2], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); - sub_81D2F78(gUnknown_0203BCAC->field_7C58[0], gUnknown_0203BCAC->field_0[0x7FB0], v5, v6, a1, a2, gUnknown_0203BCAC->info.field_70, 0); - sub_81D3094(gUnknown_0203BCAC->field_0[(a2 << 13) + 0x304], gUnknown_0203BCAC->field_0[(a2 << 7) + 4], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); - //gUnknown_0203BCAC->field_0[0x7B4D + a1 * 40], gUnknown_0203BCAC->field_7FB8, gUnknown_0203BCAC->field_7FB9, gUnknown_203BCAC->field_0[0], gUnknown_203BCAC->info.field_70, 0) + u8 boxId = gUnknown_0203BCAC->field_7FB8[id1].unk0; + u8 monId = gUnknown_0203BCAC->field_7FB8[id1].unk1; + u8 r6 = gUnknown_0203BCAC->info.field_70; + bool8 r8 = FALSE; + + sub_81D2ED4(gUnknown_0203BCAC->field_7B4D[id2], gUnknown_0203BCAC->field_7B95[id2], boxId, monId, id1, r6, r8); + sub_81D2F78(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->unk7FB0, boxId, monId, id1, id2, r6, r8); + sub_81D3094(gUnknown_0203BCAC->field_304[id2], gUnknown_0203BCAC->field_4[id2], boxId, monId, id1, r6, r8); } -#else -NAKED -void sub_816753C(s16 a1, u8 a2) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x10\n\ - adds r5, r0, 0\n\ - adds r4, r1, 0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - ldr r0, =gUnknown_0203BCAC\n\ - mov r9, r0\n\ - ldr r1, [r0]\n\ - lsls r5, 16\n\ - asrs r0, r5, 14\n\ - adds r0, r1, r0\n\ - ldr r3, =0x00007fb8\n\ - adds r2, r0, r3\n\ - ldrb r7, [r2]\n\ - ldr r2, =0x00007fb9\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - mov r10, r0\n\ - adds r3, 0x88\n\ - adds r0, r1, r3\n\ - ldrb r6, [r0]\n\ - movs r0, 0\n\ - mov r8, r0\n\ - lsls r0, r4, 1\n\ - adds r0, r4\n\ - lsls r0, 3\n\ - ldr r2, =0x00007b4d\n\ - adds r0, r2\n\ - adds r0, r1, r0\n\ - lsls r2, r4, 6\n\ - ldr r3, =0x00007b95\n\ - adds r2, r3\n\ - adds r1, r2\n\ - lsrs r5, 16\n\ - str r5, [sp]\n\ - str r6, [sp, 0x4]\n\ - mov r2, r8\n\ - str r2, [sp, 0x8]\n\ - adds r2, r7, 0\n\ - mov r3, r10\n\ - bl sub_81D2ED4\n\ - mov r3, r9\n\ - ldr r1, [r3]\n\ - ldr r2, =0x00007c58\n\ - adds r0, r1, r2\n\ - ldr r3, =0x00007fb0\n\ - adds r1, r3\n\ - str r5, [sp]\n\ - str r4, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - mov r2, r8\n\ - str r2, [sp, 0xC]\n\ - adds r2, r7, 0\n\ - mov r3, r10\n\ - bl sub_81D2F78\n\ - lsls r0, r4, 13\n\ - movs r1, 0xC1\n\ - lsls r1, 2\n\ - adds r0, r1\n\ - mov r3, r9\n\ - ldr r1, [r3]\n\ - adds r0, r1, r0\n\ - lsls r4, 7\n\ - adds r4, 0x4\n\ - adds r1, r4\n\ - str r5, [sp]\n\ - str r6, [sp, 0x4]\n\ - mov r2, r8\n\ - str r2, [sp, 0x8]\n\ - adds r2, r7, 0\n\ - mov r3, r10\n\ - bl sub_81D3094\n\ - add sp, 0x10\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif void sub_8167608(u8 arg0) { @@ -1242,10 +1140,10 @@ bool8 sub_8167930(void) CopyBgTilemapBufferToVram(1); break; case 10: - LZ77UnCompVram(gUnknown_085DFC0C, &gUnknown_0203BCAC->field_0[0x7304]); + LZ77UnCompVram(gUnknown_085DFC0C, gUnknown_0203BCAC->tilemapBuffer); break; case 11: - LoadBgTilemap(2, &gUnknown_0203BCAC->field_0[0x7304], 1280, 0); + LoadBgTilemap(2, gUnknown_0203BCAC->tilemapBuffer, 1280, 0); LoadPalette(gUnknown_086231E8, 48, 32); LoadPalette(gUnknown_08623208, 240, 32); sub_81D21DC(2); -- cgit v1.2.3 From 500d009b5c52345afce3dfd103113cfa77e7b262 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 31 Mar 2019 09:05:32 -0500 Subject: Start decompiling berry_crush.c --- src/berry_crush.c | 775 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/item_icon.c | 2 +- src/union_room.c | 2 +- 3 files changed, 777 insertions(+), 2 deletions(-) create mode 100755 src/berry_crush.c (limited to 'src') diff --git a/src/berry_crush.c b/src/berry_crush.c new file mode 100755 index 000000000..dc4c546b0 --- /dev/null +++ b/src/berry_crush.c @@ -0,0 +1,775 @@ +#include "global.h" +#include "alloc.h" +#include "berry_powder.h" +#include "bg.h" +#include "event_data.h" +#include "gpu_regs.h" +#include "graphics.h" +#include "item_icon.h" +#include "item_menu.h" +#include "link.h" +#include "link_rfu.h" +#include "main.h" +#include "math_util.h" +#include "menu.h" +#include "overworld.h" +#include "palette.h" +#include "rom_8034C54.h" +#include "scanline_effect.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "task.h" +#include "text.h" +#include "trig.h" +#include "window.h" +#include "constants/items.h" +#include "constants/rgb.h" +#include "constants/songs.h" + +struct BerryCrushGame_Player +{ + u16 unk0; + u8 filler2[0x12]; + u8 unk14[0xC]; +}; + +struct BerryCrushGame_PlayersSeparate +{ + struct BerryCrushGame_Player player; + struct BerryCrushGame_Player others[4]; +}; + +typedef union BerryCrushGame_Players +{ + struct BerryCrushGame_Player players[5]; + struct BerryCrushGame_PlayersSeparate separate; +} BerryCrushGame_Players; + +struct BerryCrushGame_138_C +{ + u8 filler0[0x8]; + s16 unk8; + u16 unkA; +}; + +struct BerryCrushGame_138 +{ + u8 filler0[0xC]; + struct BerryCrushGame_138_C *unkC[5]; + u8 filler1C[0x4]; + struct Sprite *unk24[5]; + struct Sprite *unk38[5]; + struct Sprite *unk4C[5]; + struct Sprite *unk60[5]; + struct Sprite *unk74[5]; +}; + +struct BerryCrushGame_4E +{ + u8 filler0[0x4]; + u8 unk4; + u8 filler5[0x5]; + u16 unkA; + u16 unkC; +}; + +struct __attribute__((packed)) BerryCrushGame_40 +{ + u8 filler0[0xE]; + struct BerryCrushGame_4E unkE; +}; + +struct BerryCrushGame +{ + MainCallback unk0; + void (* unk4)(struct BerryCrushGame *, u8 *); + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; + u8 fillerD[0x1]; + u8 unkE; + u8 unkF; + u8 filler10[0x2]; + u16 unk12; + u8 filler14[0x2]; + u16 unk16; + u8 filler18[0x4]; + int unk1C; + u8 filler20[0x5]; + u8 unk25_0:1; + u8 unk25_1:1; + u8 unk25_2:1; + u8 filler26[0x2]; + u16 unk28; + u16 unk2A; + u16 unk2C; + u8 filler2E[0x8]; + u8 unk36[0xA]; + struct BerryCrushGame_40 unk40; + u8 filler60[0x8]; + int unk68; + u16 unk6C; + u8 filler6E[0x4]; + u16 unk72; + u8 filler74[0x10]; + BerryCrushGame_Players unk84; + u8 filler124[0x14]; + struct BerryCrushGame_138 unk138; + u8 unk1C0[0x1000]; + u8 unk11C0[0x1000]; + u8 unk21C0[0x1000]; + u8 unk31C0[0x1000]; +}; + +static void sub_8020F74(void); +static void sub_8020F88(void); +static void sub_8020FA0(u8); +void sub_8020FC4(struct BerryCrushGame *); +void sub_8022BEC(u16, u8, u8 *); +void sub_8024604(u8 *, u8, s8, u8, u8, u8, u8); +static int sub_8021450(struct BerryCrushGame *); +void sub_8022588(struct BerryCrushGame *); +void sub_8022600(struct BerryCrushGame *); +void sub_80226D0(struct BerryCrushGame *); +void sub_8022730(struct BerryCrushGame *); +void sub_8022960(struct BerryCrushGame *); +void sub_8022524(struct BerryCrushGame_138 *, u16); +void sub_8022B28(struct Sprite *); + +extern struct BerryCrushGame *gUnknown_02022C90; + +extern const struct BgTemplate gUnknown_082F32C8[4]; +extern const u8 gBerryCrushGrinderTopTilemap[]; +extern const u8 gBerryCrushContainerCapTilemap[]; +extern const u8 gBerryCrushBackgroundTilemap[]; +extern const struct SpriteTemplate gUnknown_082F436C; +extern const u16 gUnknown_082F41E8[]; +extern const s8 gUnknown_082F41CC[][2]; +extern const s8 gUnknown_082F41D2[][2]; + +struct BerryCrushGame *sub_8020C00(void) +{ + return gUnknown_02022C90; +} + +int sub_8020C0C(MainCallback callback) +{ + if (!gUnknown_02022C90) + return 2; + + if (!callback) + callback = gUnknown_02022C90->unk0; + + DestroyTask(gUnknown_02022C90->unkA); + FREE_AND_SET_NULL(gUnknown_02022C90); + SetMainCallback2(callback); + if (callback == CB2_ReturnToField) + { + gTextFlags.autoScroll = 1; + PlayNewMapMusic(MUS_POKECEN); + SetMainCallback1(CB1_Overworld); + } + + return 0; +} + +void sub_8020C70(MainCallback callback) +{ + u8 playerCount = 0; + u8 multiplayerId; + + if (!gReceivedRemoteLinkPlayers || gWirelessCommType == 0) + { + SetMainCallback2(callback); + gUnknown_03005000.unk_10 = 0; + gUnknown_03005000.unk_12 = 0; + gUnknown_03005000.unk_ee = 1; + return; + } + + playerCount = GetLinkPlayerCount(); + multiplayerId = GetMultiplayerId(); + if (playerCount < 2 || multiplayerId >= playerCount) + { + SetMainCallback2(callback); + gUnknown_03005000.unk_10 = 0; + gUnknown_03005000.unk_12 = 0; + gUnknown_03005000.unk_ee = 1; + return; + } + + gUnknown_02022C90 = AllocZeroed(sizeof(*gUnknown_02022C90)); + if (!gUnknown_02022C90) + { + SetMainCallback2(callback); + gUnknown_03005000.unk_10 = 0; + gUnknown_03005000.unk_12 = 0; + gUnknown_03005000.unk_ee = 1; + return; + } + + gUnknown_02022C90->unk0 = callback; + gUnknown_02022C90->unk8 = multiplayerId; + gUnknown_02022C90->unk9 = playerCount; + sub_8020FC4(gUnknown_02022C90); + gUnknown_02022C90->unk12 = 1; + gUnknown_02022C90->unkE = 1; + gUnknown_02022C90->unkF = 6; + sub_8024604(gUnknown_02022C90->unk36, 1, -1, 0, 16, 0, 0); + sub_8022BEC(4, 1, gUnknown_02022C90->unk36); + SetMainCallback2(sub_8020F88); + gUnknown_02022C90->unkA = CreateTask(sub_8020FA0, 8); + gTextFlags.autoScroll = 0; +} + +static void sub_8020D8C(void) +{ + if (gSpecialVar_ItemId < FIRST_BERRY_INDEX || gSpecialVar_ItemId > LAST_BERRY_INDEX + 1) + gSpecialVar_ItemId = ITEM_CHERI_BERRY; + else + RemoveBagItem(gSpecialVar_ItemId, 1); + + gUnknown_02022C90->unk84.separate.others[gUnknown_02022C90->unk8].unk0 = gSpecialVar_ItemId - FIRST_BERRY_INDEX; + gUnknown_02022C90->unkE = 1; + gUnknown_02022C90->unkF = 9; + sub_8024604(gUnknown_02022C90->unk36, 0, -1, 0, 16, 0, 0); + sub_8022BEC(4, 1, gUnknown_02022C90->unk36); + gUnknown_02022C90->unkA = CreateTask(sub_8020FA0, 8); + SetMainCallback2(sub_8020F88); +} + +void sub_8020E1C(void) +{ + DestroyTask(gUnknown_02022C90->unkA); + sub_81AABF0(sub_8020D8C); +} + +static void sub_8020E3C(void) +{ + SetVBlankCallback(sub_8020F74); +} + +void sub_8020E4C(void) +{ + SetVBlankCallback(NULL); +} + +void sub_8020E58(void) +{ + u32 var0, var1; + + var0 = gUnknown_02022C90->unk6C; + var0 <<= 8; + var0 = sub_81515FC(var0, 60 << 8); + var1 = gUnknown_02022C90->unk72; + var1 <<= 8; + var1 = sub_81515FC(var1, var0) & 0xFFFF; + gUnknown_02022C90->unk16 = var1; + switch (gUnknown_02022C90->unk9) + { + case 2: + if (gUnknown_02022C90->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[0]) + { + gUnknown_02022C90->unk25_1 = 1; + gSaveBlock2Ptr->berryCrush.berryCrushResults[0] = gUnknown_02022C90->unk16; + } + break; + case 3: + if (gUnknown_02022C90->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[1]) + { + gUnknown_02022C90->unk25_1 = 1; + gSaveBlock2Ptr->berryCrush.berryCrushResults[1] = gUnknown_02022C90->unk16; + } + break; + case 4: + if (gUnknown_02022C90->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[2]) + { + gUnknown_02022C90->unk25_1 = 1; + gSaveBlock2Ptr->berryCrush.berryCrushResults[2] = gUnknown_02022C90->unk16; + } + break; + case 5: + if (gUnknown_02022C90->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[3]) + { + gUnknown_02022C90->unk25_1 = 1; + gSaveBlock2Ptr->berryCrush.berryCrushResults[3] = gUnknown_02022C90->unk16; + } + break; + } + + gUnknown_02022C90->unk1C = gUnknown_02022C90->unk68; + if (GiveBerryPowder(gUnknown_02022C90->unk1C)) + return; + + gUnknown_02022C90->unk25_0 = 1; +} + +static void sub_8020F74(void) +{ + TransferPlttBuffer(); + LoadOam(); + ProcessSpriteCopyRequests(); +} + +static void sub_8020F88(void) +{ + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); +} + +static void sub_8020FA0(u8 taskId) +{ + if (gUnknown_02022C90->unk4) + gUnknown_02022C90->unk4(gUnknown_02022C90, gUnknown_02022C90->unk36); + + sub_8021450(gUnknown_02022C90); +} + +#ifdef NONMATCHING +void sub_8020FC4(struct BerryCrushGame *arg0) +{ + u8 i; + + for (i = 0; i < arg0->unk9; i++) + StringCopy(arg0->unk84.players[i].unk14, gLinkPlayers[i].name); + + for (; i < 5; i++) + { + memset(arg0->unk84.players[i].unk14, 1, PLAYER_NAME_LENGTH); + arg0->unk84.players[i].unk14[PLAYER_NAME_LENGTH] = EOS; + } + + switch (gSaveBlock2Ptr->optionsTextSpeed) + { + case OPTIONS_TEXT_SPEED_SLOW: + arg0->unkB = 8; + break; + case OPTIONS_TEXT_SPEED_MID: + arg0->unkB = 4; + break; + case OPTIONS_TEXT_SPEED_FAST: + arg0->unkB = 1; + break; + } +} +#else +NAKED +void sub_8020FC4(struct BerryCrushGame *arg0) +{ + asm_unified("\n\ + push {r4-r6,lr}\n\ + adds r6, r0, 0\n\ + movs r5, 0\n\ + b _08020FE6\n\ +LOOP_1:\n\ + lsls r0, r5, 5\n\ + adds r0, 0x98\n\ + adds r0, r6, r0\n\ + lsls r1, r5, 3\n\ + subs r1, r5\n\ + lsls r1, 2\n\ + ldr r2, =gLinkPlayers + 8\n\ + adds r1, r2\n\ + bl StringCopy\n\ + adds r0, r5, 0x1\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ +_08020FE6:\n\ + ldrb r0, [r6, 0x9]\n\ + cmp r5, r0\n\ + bcc LOOP_1\n\ + cmp r5, 0x4\n\ + bhi _08021012\n\ +_08020FF0:\n\ + lsls r4, r5, 5\n\ + adds r0, r4, 0\n\ + adds r0, 0x98\n\ + adds r0, r6, r0\n\ + movs r1, 0x1\n\ + movs r2, 0x7\n\ + bl memset\n\ + adds r4, r6, r4\n\ + adds r4, 0x9F\n\ + movs r0, 0xFF\n\ + strb r0, [r4]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + cmp r5, 0x4\n\ + bls _08020FF0\n\ +_08021012:\n\ + ldr r0, =gSaveBlock2Ptr\n\ + ldr r0, [r0]\n\ + ldrb r0, [r0, 0x14]\n\ + lsls r0, 29\n\ + lsrs r0, 29\n\ + cmp r0, 0x1\n\ + beq _0802103E\n\ + cmp r0, 0x1\n\ + bgt _08021034\n\ + cmp r0, 0\n\ + beq _0802103A\n\ + b _08021046\n\ + .pool\n\ +_08021034:\n\ + cmp r0, 0x2\n\ + beq _08021042\n\ + b _08021046\n\ +_0802103A:\n\ + movs r0, 0x8\n\ + b _08021044\n\ +_0802103E:\n\ + movs r0, 0x4\n\ + b _08021044\n\ +_08021042:\n\ + movs r0, 0x1\n\ +_08021044:\n\ + strb r0, [r6, 0xB]\n\ +_08021046:\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0"); +} +#endif // NONMATCHING + +int sub_802104C(void) +{ + struct BerryCrushGame *var0 = sub_8020C00(); + if (!var0) + return -1; + + switch (var0->unkC) + { + case 0: + SetVBlankCallback(NULL); + SetHBlankCallback(NULL); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + ScanlineEffect_Stop(); + reset_temp_tile_data_buffers(); + break; + case 1: + CpuFill16(0, (void *)OAM, OAM_SIZE); + gReservedSpritePaletteCount = 0; + sub_8034C54(3); + break; + case 2: + ResetPaletteFade(); + ResetSpriteData(); + FreeAllSpritePalettes(); + break; + case 3: + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_082F32C8, ARRAY_COUNT(gUnknown_082F32C8)); + SetBgTilemapBuffer(1, var0->unk1C0); + SetBgTilemapBuffer(2, var0->unk21C0); + SetBgTilemapBuffer(3, var0->unk31C0); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + break; + case 4: + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); + FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 64); + FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 32, 32); + FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 32, 32); + break; + case 5: + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(3); + decompress_and_copy_tile_data_to_vram(1, gUnknown_08DE34B8, 0, 0, 0); + break; + case 6: + if (free_temp_tile_data_buffers_if_possible()) + return 0; + + InitStandardTextBoxWindows(); + sub_8197200(); + sub_8022588(var0); + sub_8022600(var0); + gPaletteFade.bufferTransferDisabled = 1; + break; + case 7: + LoadPalette(gUnknown_08DE3398, 0, 0x180); + CopyToBgTilemapBuffer(1, gBerryCrushGrinderTopTilemap, 0, 0); + CopyToBgTilemapBuffer(2, gBerryCrushContainerCapTilemap, 0, 0); + CopyToBgTilemapBuffer(3, gBerryCrushBackgroundTilemap, 0, 0); + sub_80226D0(var0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(3); + break; + case 8: + sub_800E0E8(); + CreateWirelessStatusIndicatorSprite(0, 0); + sub_8022730(var0); + SetGpuReg(REG_OFFSET_BG1VOFS, -gSpriteCoordOffsetY); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + break; + case 9: + gPaletteFade.bufferTransferDisabled = 0; + BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + sub_8020E3C(); + var0->unkC = 0; + return 1; + } + + var0->unkC++; + return 0; +} + +int sub_802130C(void) +{ + struct BerryCrushGame *var0 = sub_8020C00(); + if (!var0) + return -1; + + switch (var0->unkC) + { + case 0: + sub_8010434(); + break; + case 1: + if (!IsLinkTaskFinished()) + return 0; + // fall through. The original author forgot to use "break" here + // because this will call BeginNormalPaletteFade() twice. + case 2: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + UpdatePaletteFade(); + break; + case 3: + if (UpdatePaletteFade()) + return 0; + break; + case 4: + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); + FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 32); + FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 32, 32); + FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 32, 32); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(3); + break; + case 5: + FreeAllWindowBuffers(); + HideBg(0); + UnsetBgTilemapBuffer(0); + HideBg(1); + UnsetBgTilemapBuffer(1); + HideBg(2); + UnsetBgTilemapBuffer(2); + HideBg(3); + UnsetBgTilemapBuffer(3); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + break; + case 6: + sub_800E084(); + sub_8022960(var0); + sub_8034CC8(); + break; + case 7: + var0->unkC = 0; + return 1; + } + + var0->unkC++; + return 0; +} + +static int sub_8021450(struct BerryCrushGame *arg0) +{ + gSpriteCoordOffsetY = arg0->unk2A + arg0->unk2C; + SetGpuReg(REG_OFFSET_BG1VOFS, -gSpriteCoordOffsetY); + if (arg0->unk12 == 7) + { + sub_8022524(&arg0->unk138, arg0->unk28); + } + + return 0; +} + +void sub_8021488(struct BerryCrushGame *arg0) +{ + arg0->unk2A = -104; + arg0->unk2C = 0; + gSpriteCoordOffsetX = 0; + gSpriteCoordOffsetY = -104; +} + +void sub_80214A8(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) +{ + u8 i; + u8 spriteId; + s16 var0, var1; + s16 *data; + int var3; + s16 var5; + u32 var6; + + for (i = 0; i < arg0->unk9; i++) + { + spriteId = AddCustomItemIconSprite( + &gUnknown_082F436C, + gUnknown_082F41E8[i], + gUnknown_082F41E8[i], + arg0->unk84.separate.others[i].unk0 + 133); + arg1->unk38[i] = &gSprites[spriteId]; + arg1->unk38[i]->oam.priority = 3; + arg1->unk38[i]->affineAnimPaused = 1; + arg1->unk38[i]->pos1.x = arg1->unkC[i]->unk8 + 120; + arg1->unk38[i]->pos1.y = -16; + data = arg1->unk38[i]->data; + var5 = 512; + data[1] = var5; + data[2] = 32; + data[7] = 112; + var0 = arg1->unkC[i]->unkA - arg1->unkC[i]->unk8; + var3 = var0; + if (var0 < 0) + var3 += 3; + + data[6] = var3 >> 2; + var0 *= 128; + var6 = var5 + 32; + var6 = var6 / 2; + var1 = sub_81515D4(7, 0x3F80, var6); + data[0] = (u16)arg1->unk38[i]->pos1.x * 128; + data[3] = sub_81515D4(7, var0, var1); + var1 = sub_8151550(7, var1, 85); + data[4] = 0; + data[5] = sub_81515D4(7, 0x3F80, var1); + data[7] |= 0x8000; + if (arg1->unkC[i]->unk8 < 0) + StartSpriteAffineAnim(arg1->unk38[i], 1); + } +} + +void sub_8021608(struct Sprite *sprite) +{ + s16 *data = sprite->data; + + data[1] += data[2]; + sprite->pos2.y += data[1] >> 8; + if (data[7] & 0x8000) + { + sprite->data[0] += data[3]; + data[4] += data[5]; + sprite->pos2.x = Sin(data[4] >> 7, data[6]); + if ((data[7] & 0x8000) && (data[4] >> 7) > 126) + { + sprite->pos2.x = 0; + data[7] &= 0x7FFF; + } + } + + sprite->pos1.x = data[0] >> 7; + if (sprite->pos1.y + sprite->pos2.y >= (data[7] & 0x7FFF)) + { + sprite->callback = SpriteCallbackDummy; + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + } +} + +void sub_80216A8(struct BerryCrushGame *arg0) +{ + u8 i; + for (i = 0; i < arg0->unk9; i++) + { + FreeSpritePaletteByTag(gUnknown_082F41E8[i]); + FreeSpriteTilesByTag(gUnknown_082F41E8[i]); + } +} + +// void sub_80216E0(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1) +// { +// u8 sp4; +// struct BerryCrushGame_4E *var4E; +// u8 i; +// u16 var0; + +// sp4 = 0; +// var4E = &arg0->unk40.unkE; +// for (i = 0; i < arg0->unk9; i++) +// { +// var0 = var4E->unkA >> (i * 3); +// var0 &= 7; +// if (var0) +// { +// int offset; +// sp4++; +// if (var0 & 0x4) +// StartSpriteAnim(arg1->unk24[i], 1); +// else +// StartSpriteAnim(arg1->unk24[i], 0); + +// arg1->unk24[i]->invisible = 0; +// arg1->unk24[i]->animPaused = 0; +// offset = (var0 % 4) - 1; +// arg1->unk24[i]->pos2.x = gUnknown_082F41CC[offset][0]; +// arg1->unk24[i]->pos2.y = gUnknown_082F41CC[offset][1]; +// } +// } + +// if (sp4 == 0) +// { +// arg0->unk25_2 = 0; +// } +// else +// { +// u8 var3 = arg0->unk28 % 3; +// u16 var2 = var3; +// for (i = 0; i < var4E->unkC * 2 + 3; i++) +// { +// if (arg1->unk4C[i]->invisible) +// { +// arg1->unk4C[i]->callback = sub_8022B28; +// arg1->unk4C[i]->pos1.x = gUnknown_082F41D2[i][0] + 120; +// arg1->unk4C[i]->pos1.y = gUnknown_082F41D2[i][1] + (136 - var2 * 4); +// arg1->unk4C[i]->pos2.x = gUnknown_082F41D2[i][0] / (var3 * 4); +// arg1->unk4C[i]->pos2.y = gUnknown_082F41D2[i][1]; +// if (var4E->unk4 & 0x2) +// StartSpriteAnim(arg1->unk4C[i], 1); +// else +// StartSpriteAnim(arg1->unk4C[i], 0); + +// var2++; +// if (var2 > 3) +// var2 = 0; +// } +// } + +// if (arg0->unk25_2) +// { +// arg0->unk25_2 = 0; +// } +// else +// { +// if (sp4 == 1) +// PlaySE(SE_TOY_DANGO); +// else +// PlaySE(SE_TOY_KABE); + +// arg0->unk25_2 = 1; +// } +// } +// } diff --git a/src/item_icon.c b/src/item_icon.c index 7bf1a29ca..91c32951a 100644 --- a/src/item_icon.c +++ b/src/item_icon.c @@ -122,7 +122,7 @@ u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId) } } -u8 AddCustomItemIconSprite(struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId) +u8 AddCustomItemIconSprite(const struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId) { if (!AllocItemIconTemporaryBuffers()) { diff --git a/src/union_room.c b/src/union_room.c index 338063ef1..5050b04f1 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -44,6 +44,7 @@ #include "easy_chat.h" #include "event_obj_lock.h" #include "union_room_chat.h" +#include "berry_crush.h" EWRAM_DATA u8 gUnknown_02022C20[12] = {}; EWRAM_DATA u8 gUnknown_02022C2C = 0; @@ -98,7 +99,6 @@ void sub_801807C(struct TradeUnkStruct *arg0); void sub_801AC54(void); void sub_802A9A8(u8 monId, MainCallback callback); void sub_802493C(u8 monId, MainCallback callback); -void sub_8020C70(MainCallback callback); void sub_80149D8(void); u16 sub_8019930(void); void sub_8018784(u8 windowId); -- cgit v1.2.3 From 462b196abc126cd8c2a06434f9b3b9c25a0d4327 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 31 Mar 2019 12:15:39 -0500 Subject: Give battle_anim files appropriate names --- src/battle_ai_script_commands.c | 1 + src/battle_ai_switch_items.c | 1 + src/battle_anim_80A5C6C.c | 2464 -------------------------------------- src/battle_anim_80A9C70.c | 534 --------- src/battle_anim_80D51AC.c | 1059 ---------------- src/battle_anim_8170478.c | 2267 ----------------------------------- src/battle_anim_mon_movement.c | 1059 ++++++++++++++++ src/battle_anim_mons.c | 2464 ++++++++++++++++++++++++++++++++++++++ src/battle_anim_special.c | 2267 +++++++++++++++++++++++++++++++++++ src/battle_anim_status_effects.c | 534 +++++++++ src/battle_main.c | 1 + src/battle_message.c | 1 + src/battle_tv.c | 1 + src/battle_util.c | 1 + src/battle_util2.c | 1 + src/pokemon.c | 1 + src/recorded_battle.c | 1 + 17 files changed, 6333 insertions(+), 6324 deletions(-) delete mode 100644 src/battle_anim_80A5C6C.c delete mode 100644 src/battle_anim_80A9C70.c delete mode 100644 src/battle_anim_80D51AC.c delete mode 100755 src/battle_anim_8170478.c create mode 100644 src/battle_anim_mon_movement.c create mode 100644 src/battle_anim_mons.c create mode 100755 src/battle_anim_special.c create mode 100644 src/battle_anim_status_effects.c (limited to 'src') diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 6098e2d3a..61876e0de 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "battle_anim.h" #include "battle_ai_script_commands.h" #include "battle_factory.h" #include "battle_setup.h" diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index a5958ebc6..2d67fda99 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "battle_anim.h" #include "battle_controllers.h" #include "pokemon.h" #include "random.h" diff --git a/src/battle_anim_80A5C6C.c b/src/battle_anim_80A5C6C.c deleted file mode 100644 index 372377a0c..000000000 --- a/src/battle_anim_80A5C6C.c +++ /dev/null @@ -1,2464 +0,0 @@ -#include "global.h" -#include "battle.h" -#include "battle_anim.h" -#include "bg.h" -#include "contest.h" -#include "data2.h" -#include "decompress.h" -#include "dma3.h" -#include "gpu_regs.h" -#include "alloc.h" -#include "palette.h" -#include "pokemon_icon.h" -#include "sprite.h" -#include "task.h" -#include "trig.h" -#include "util.h" -#include "constants/battle_anim.h" -#include "constants/species.h" - -#define GET_UNOWN_LETTER(personality) (( \ - (((personality & 0x03000000) >> 24) << 6) \ - | (((personality & 0x00030000) >> 16) << 4) \ - | (((personality & 0x00000300) >> 8) << 2) \ - | (((personality & 0x00000003) >> 0) << 0) \ -) % 28) - -#define IS_DOUBLE_BATTLE() ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - -extern const struct OamData gUnknown_0852497C; -extern const struct MonCoords gMonFrontPicCoords[]; -extern const struct MonCoords gMonBackPicCoords[]; -extern const u8 gEnemyMonElevation[]; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -extern const union AffineAnimCmd *gUnknown_082FF6C0[]; - -static void sub_80A6FB4(struct Sprite *sprite); -static void sub_80A7144(struct Sprite *sprite); -static void sub_80A791C(struct Sprite *sprite); -static void sub_80A8DFC(struct Sprite *sprite); -static void sub_80A8E88(struct Sprite *sprite); -static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId); -static void AnimTask_BlendMonInAndOutSetup(struct Task *task); -static void sub_80A7AFC(u8 taskId); -static void sub_80A8CAC(u8 taskId); -static void AnimTask_BlendMonInAndOutStep(u8 taskId); -static bool8 sub_80A7238(void); -static void sub_80A8D78(struct Task *task, u8 taskId); - -// EWRAM vars -EWRAM_DATA static union AffineAnimCmd *gAnimTaskAffineAnim = NULL; - -// Const rom data -static const struct UCoords8 sBattlerCoords[][4] = -{ - { - { 72, 80 }, - { 176, 40 }, - { 48, 40 }, - { 112, 80 }, - }, - { - { 32, 80 }, - { 200, 40 }, - { 90, 88 }, - { 152, 32 }, - }, -}; - -// One entry for each of the four Castform forms. -const struct MonCoords gCastformFrontSpriteCoords[] = -{ - { .size = 0x44, .y_offset = 17 }, // NORMAL - { .size = 0x66, .y_offset = 9 }, // SUN - { .size = 0x46, .y_offset = 9 }, // RAIN - { .size = 0x86, .y_offset = 8 }, // HAIL -}; - -static const u8 sCastformElevations[] = -{ - 13, // NORMAL - 14, // SUN - 13, // RAIN - 13, // HAIL -}; - -// Y position of the backsprite for each of the four Castform forms. -static const u8 sCastformBackSpriteYCoords[] = -{ - 0, // NORMAL - 0, // SUN - 0, // RAIN - 0, // HAIL -}; - -static const struct SpriteTemplate sUnknown_08525F90[] = -{ - { - .tileTag = 55125, - .paletteTag = 55125, - .oam = &gUnknown_0852497C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55126, - .paletteTag = 55126, - .oam = &gUnknown_0852497C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - } -}; - -static const struct SpriteSheet sUnknown_08525FC0[] = -{ - { gMiscBlank_Gfx, 0x800, 55125, }, - { gMiscBlank_Gfx, 0x800, 55126, }, -}; - -u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType) -{ - u8 retVal; - u16 species; - struct BattleSpriteInfo *spriteInfo; - - if (IsContest()) - { - if (coordType == BATTLER_COORD_Y_PIC_OFFSET && battlerId == 3) - coordType = BATTLER_COORD_Y; - } - - switch (coordType) - { - case BATTLER_COORD_X: - case BATTLER_COORD_X_2: - retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].x; - break; - case BATTLER_COORD_Y: - retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y; - break; - case BATTLER_COORD_Y_PIC_OFFSET: - case BATTLER_COORD_Y_PIC_OFFSET_DEFAULT: - default: - if (IsContest()) - { - if (gContestResources->field_18->unk4_0) - species = gContestResources->field_18->unk2; - else - species = gContestResources->field_18->species; - } - else - { - if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) - { - spriteInfo = gBattleSpritesDataPtr->battlerData; - if (!spriteInfo[battlerId].transformSpecies) - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - else - species = spriteInfo[battlerId].transformSpecies; - } - else - { - spriteInfo = gBattleSpritesDataPtr->battlerData; - if (!spriteInfo[battlerId].transformSpecies) - species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - else - species = spriteInfo[battlerId].transformSpecies; - } - } - if (coordType == BATTLER_COORD_Y_PIC_OFFSET) - retVal = GetBattlerSpriteFinal_Y(battlerId, species, TRUE); - else - retVal = GetBattlerSpriteFinal_Y(battlerId, species, FALSE); - break; - } - - return retVal; -} - -u8 GetBattlerYDelta(u8 battlerId, u16 species) -{ - u16 letter; - u32 personality; - struct BattleSpriteInfo *spriteInfo; - u8 ret; - u16 coordSpecies; - - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || IsContest()) - { - if (species == SPECIES_UNOWN) - { - if (IsContest()) - { - if (gContestResources->field_18->unk4_0) - personality = gContestResources->field_18->unk10; - else - personality = gContestResources->field_18->unk8; - } - else - { - spriteInfo = gBattleSpritesDataPtr->battlerData; - if (!spriteInfo[battlerId].transformSpecies) - personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); - else - personality = gTransformedPersonalities[battlerId]; - } - letter = GET_UNOWN_LETTER(personality); - if (!letter) - coordSpecies = species; - else - coordSpecies = letter + SPECIES_UNOWN_B - 1; - ret = gMonBackPicCoords[coordSpecies].y_offset; - } - else if (species == SPECIES_CASTFORM) - { - ret = sCastformBackSpriteYCoords[gBattleMonForms[battlerId]]; - } - else if (species > NUM_SPECIES) - { - ret = gMonBackPicCoords[0].y_offset; - } - else - { - ret = gMonBackPicCoords[species].y_offset; - } - } - else - { - if (species == SPECIES_UNOWN) - { - spriteInfo = gBattleSpritesDataPtr->battlerData; - if (!spriteInfo[battlerId].transformSpecies) - personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); - else - personality = gTransformedPersonalities[battlerId]; - letter = GET_UNOWN_LETTER(personality); - if (!letter) - coordSpecies = species; - else - coordSpecies = letter + SPECIES_UNOWN_B - 1; - ret = gMonFrontPicCoords[coordSpecies].y_offset; - } - else if (species == SPECIES_CASTFORM) - { - ret = gCastformFrontSpriteCoords[gBattleMonForms[battlerId]].y_offset; - } - else if (species > NUM_SPECIES) - { - ret = gMonFrontPicCoords[0].y_offset; - } - else - { - ret = gMonFrontPicCoords[species].y_offset; - } - } - return ret; -} - -u8 GetBattlerElevation(u8 battlerId, u16 species) -{ - u8 ret = 0; - if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT) - { - if (!IsContest()) - { - if (species == SPECIES_CASTFORM) - ret = sCastformElevations[gBattleMonForms[battlerId]]; - else if (species > NUM_SPECIES) - ret = gEnemyMonElevation[0]; - else - ret = gEnemyMonElevation[species]; - } - } - return ret; -} - -u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3) -{ - u16 offset; - u8 y; - - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || IsContest()) - { - offset = GetBattlerYDelta(battlerId, species); - } - else - { - offset = GetBattlerYDelta(battlerId, species); - offset -= GetBattlerElevation(battlerId, species); - } - y = offset + sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y; - if (a3) - { - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) - y += 8; - if (y > 104) - y = 104; - } - return y; -} - -u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType) -{ - u16 species; - struct BattleSpriteInfo *spriteInfo; - - if (coordType == BATTLER_COORD_Y_PIC_OFFSET || coordType == BATTLER_COORD_Y_PIC_OFFSET_DEFAULT) - { - if (IsContest()) - { - if (gContestResources->field_18->unk4_0) - species = gContestResources->field_18->unk2; - else - species = gContestResources->field_18->species; - } - else - { - spriteInfo = gBattleSpritesDataPtr->battlerData; - if (!spriteInfo[battlerId].transformSpecies) - species = gAnimBattlerSpecies[battlerId]; - else - species = spriteInfo[battlerId].transformSpecies; - } - if (coordType == BATTLER_COORD_Y_PIC_OFFSET) - return GetBattlerSpriteFinal_Y(battlerId, species, TRUE); - else - return GetBattlerSpriteFinal_Y(battlerId, species, FALSE); - } - else - { - return GetBattlerSpriteCoord(battlerId, coordType); - } -} - -u8 GetBattlerSpriteDefault_Y(u8 battlerId) -{ - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET_DEFAULT); -} - -u8 GetSubstituteSpriteDefault_Y(u8 battlerId) -{ - u16 y; - if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) - y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 16; - else - y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 17; - return y; -} - -u8 GetBattlerYCoordWithElevation(u8 battlerId) -{ - u16 species; - u8 y; - struct BattleSpriteInfo *spriteInfo; - - y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y); - if (!IsContest()) - { - if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) - { - spriteInfo = gBattleSpritesDataPtr->battlerData; - if (!spriteInfo[battlerId].transformSpecies) - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - else - species = spriteInfo[battlerId].transformSpecies; - } - else - { - spriteInfo = gBattleSpritesDataPtr->battlerData; - if (!spriteInfo[battlerId].transformSpecies) - species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - else - species = spriteInfo[battlerId].transformSpecies; - } - if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) - y -= GetBattlerElevation(battlerId, species); - } - return y; -} - -u8 GetAnimBattlerSpriteId(u8 animBattler) -{ - u8 *sprites; - - if (animBattler == ANIM_ATTACKER) - { - if (IsBattlerSpritePresent(gBattleAnimAttacker)) - { - sprites = gBattlerSpriteIds; - return sprites[gBattleAnimAttacker]; - } - else - { - return 0xff; - } - } - else if (animBattler == ANIM_TARGET) - { - if (IsBattlerSpritePresent(gBattleAnimTarget)) - { - sprites = gBattlerSpriteIds; - return sprites[gBattleAnimTarget]; - } - else - { - return 0xff; - } - } - else if (animBattler == ANIM_ATK_PARTNER) - { - if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) - return 0xff; - else - return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]; - } - else - { - if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) - return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)]; - else - return 0xff; - } -} - -void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*callback)(struct Sprite*)) -{ - sprite->data[6] = (u32)(callback) & 0xffff; - sprite->data[7] = (u32)(callback) >> 16; -} - -void SetCallbackToStoredInData6(struct Sprite *sprite) -{ - u32 callback = (u16)sprite->data[6] | (sprite->data[7] << 16); - sprite->callback = (void (*)(struct Sprite *))callback; -} - -void TranslateSpriteInCircleOverDuration(struct Sprite *sprite) -{ - if (sprite->data[3]) - { - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]); - sprite->data[0] += sprite->data[2]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - sprite->data[3]--; - } - else - { - SetCallbackToStoredInData6(sprite); - } -} - -void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite) -{ - if (sprite->data[3]) - { - sprite->pos2.x = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); - sprite->data[0] += sprite->data[2]; - sprite->data[5] += sprite->data[4]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - sprite->data[3]--; - } - else - { - SetCallbackToStoredInData6(sprite); - } -} - -void sub_80A63C8(struct Sprite *sprite) -{ - if (sprite->data[3]) - { - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[4], sprite->data[1]); - sprite->data[0] += sprite->data[2]; - sprite->data[4] += sprite->data[5]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - if (sprite->data[4] >= 0x100) - sprite->data[4] -= 0x100; - else if (sprite->data[4] < 0) - sprite->data[4] += 0x100; - sprite->data[3]--; - } - else - { - SetCallbackToStoredInData6(sprite); - } -} - -void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite) -{ - if (sprite->data[3]) - { - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], sprite->data[4]); - sprite->data[0] += sprite->data[2]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - sprite->data[3]--; - } - else - { - SetCallbackToStoredInData6(sprite); - } -} - -// Simply waits until the sprite's data[0] hits zero. -// This is used to let sprite anims or affine anims to run for a designated -// duration. -void WaitAnimForDuration(struct Sprite *sprite) -{ - if (sprite->data[0] > 0) - sprite->data[0]--; - else - SetCallbackToStoredInData6(sprite); -} - -static void sub_80A64D0(struct Sprite *sprite) -{ - sub_80A64EC(sprite); - sprite->callback = TranslateSpriteLinear; - sprite->callback(sprite); -} - -void sub_80A64EC(struct Sprite *sprite) -{ - s16 old; - int xDiff; - - if (sprite->data[1] > sprite->data[2]) - sprite->data[0] = -sprite->data[0]; - xDiff = sprite->data[2] - sprite->data[1]; - old = sprite->data[0]; - sprite->data[0] = abs(xDiff / sprite->data[0]); - sprite->data[2] = (sprite->data[4] - sprite->data[3]) / sprite->data[0]; - sprite->data[1] = old; -} - -void TranslateSpriteLinear(struct Sprite *sprite) -{ - if (sprite->data[0] > 0) - { - sprite->data[0]--; - sprite->pos2.x += sprite->data[1]; - sprite->pos2.y += sprite->data[2]; - } - else - { - SetCallbackToStoredInData6(sprite); - } -} - -void TranslateSpriteLinearFixedPoint(struct Sprite *sprite) -{ - if (sprite->data[0] > 0) - { - sprite->data[0]--; - sprite->data[3] += sprite->data[1]; - sprite->data[4] += sprite->data[2]; - sprite->pos2.x = sprite->data[3] >> 8; - sprite->pos2.y = sprite->data[4] >> 8; - } - else - { - SetCallbackToStoredInData6(sprite); - } -} - -static void TranslateSpriteLinearFixedPointIconFrame(struct Sprite *sprite) -{ - if (sprite->data[0] > 0) - { - sprite->data[0]--; - sprite->data[3] += sprite->data[1]; - sprite->data[4] += sprite->data[2]; - sprite->pos2.x = sprite->data[3] >> 8; - sprite->pos2.y = sprite->data[4] >> 8; - } - else - { - SetCallbackToStoredInData6(sprite); - } - - UpdateMonIconFrame(sprite); -} - -void sub_80A65EC(struct Sprite *sprite) -{ - sprite->data[1] = sprite->pos1.x + sprite->pos2.x; - sprite->data[3] = sprite->pos1.y + sprite->pos2.y; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); - sprite->callback = sub_80A64D0; -} - -void TranslateMonSpriteLinear(struct Sprite *sprite) -{ - if (sprite->data[0] > 0) - { - sprite->data[0]--; - gSprites[sprite->data[3]].pos2.x += sprite->data[1]; - gSprites[sprite->data[3]].pos2.y += sprite->data[2]; - } - else - { - SetCallbackToStoredInData6(sprite); - } -} - -void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite) -{ - if (sprite->data[0] > 0) - { - sprite->data[0]--; - sprite->data[3] += sprite->data[1]; - sprite->data[4] += sprite->data[2]; - gSprites[sprite->data[5]].pos2.x = sprite->data[3] >> 8; - gSprites[sprite->data[5]].pos2.y = sprite->data[4] >> 8; - } - else - { - SetCallbackToStoredInData6(sprite); - } -} - -void TranslateSpriteLinearAndFlicker(struct Sprite *sprite) -{ - if (sprite->data[0] > 0) - { - sprite->data[0]--; - sprite->pos2.x = sprite->data[2] >> 8; - sprite->data[2] += sprite->data[1]; - sprite->pos2.y = sprite->data[4] >> 8; - sprite->data[4] += sprite->data[3]; - if (sprite->data[0] % sprite->data[5] == 0) - { - if (sprite->data[5]) - sprite->invisible ^= 1; - } - } - else - { - SetCallbackToStoredInData6(sprite); - } -} - -void DestroySpriteAndMatrix(struct Sprite *sprite) -{ - FreeSpriteOamMatrix(sprite); - DestroyAnimSprite(sprite); -} - -void sub_80A6760(struct Sprite *sprite) -{ - sprite->data[1] = sprite->pos1.x + sprite->pos2.x; - sprite->data[3] = sprite->pos1.y + sprite->pos2.y; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); - sprite->callback = sub_80A64D0; -} - -void sub_80A67A4(struct Sprite *sprite) -{ - ResetPaletteStructByUid(sprite->data[5]); - DestroySpriteAndMatrix(sprite); -} - -void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite) -{ - if (sprite->affineAnimEnded) - SetCallbackToStoredInData6(sprite); -} - -void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite) -{ - if (sprite->animEnded) - SetCallbackToStoredInData6(sprite); -} - -void DestroyAnimSpriteAndDisableBlend(struct Sprite *sprite) -{ - SetGpuReg(REG_OFFSET_BLDCNT, 0); - SetGpuReg(REG_OFFSET_BLDALPHA, 0); - DestroyAnimSprite(sprite); -} - -void DestroyAnimVisualTaskAndDisableBlend(u8 taskId) -{ - SetGpuReg(REG_OFFSET_BLDCNT, 0); - SetGpuReg(REG_OFFSET_BLDALPHA, 0); - DestroyAnimVisualTask(taskId); -} - -void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite) -{ - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); -} - -// Sets the initial x offset of the anim sprite depending on the horizontal orientation -// of the two involved mons. -void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 xOffset) -{ - u16 attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); - u16 targetX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); - - if (attackerX > targetX) - { - sprite->pos1.x -= xOffset; - } - else if (attackerX < targetX) - { - sprite->pos1.x += xOffset; - } - else - { - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->pos1.x -= xOffset; - else - sprite->pos1.x += xOffset; - } -} - -void InitAnimArcTranslation(struct Sprite *sprite) -{ - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; - InitAnimLinearTranslation(sprite); - sprite->data[6] = 0x8000 / sprite->data[0]; - sprite->data[7] = 0; -} - -bool8 TranslateAnimHorizontalArc(struct Sprite *sprite) -{ - if (AnimTranslateLinear(sprite)) - return TRUE; - sprite->data[7] += sprite->data[6]; - sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]); - return FALSE; -} - -bool8 TranslateAnimVerticalArc(struct Sprite *sprite) -{ - if (AnimTranslateLinear(sprite)) - return TRUE; - sprite->data[7] += sprite->data[6]; - sprite->pos2.x += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]); - return FALSE; -} - -void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite) -{ - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; -} - -void InitSpritePosToAnimTarget(struct Sprite *sprite, bool8 respectMonPicOffsets) -{ - // Battle anim sprites are automatically created at the anim target's center, which - // is why there is no else clause for the "respectMonPicOffsets" check. - if (!respectMonPicOffsets) - { - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X); - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y); - } - SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; -} - -void InitSpritePosToAnimAttacker(struct Sprite *sprite, bool8 respectMonPicOffsets) -{ - if (!respectMonPicOffsets) - { - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X); - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y); - } - else - { - sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); - } - SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); - sprite->pos1.y += gBattleAnimArgs[1]; -} - -u8 GetBattlerSide(u8 battlerId) -{ - return GET_BATTLER_SIDE2(battlerId); -} - -u8 GetBattlerPosition(u8 battlerId) -{ - return GET_BATTLER_POSITION(battlerId); -} - -u8 GetBattlerAtPosition(u8 position) -{ - u8 i; - - for (i = 0; i < gBattlersCount; i++) - { - if (gBattlerPositions[i] == position) - break; - } - return i; -} - -bool8 IsBattlerSpritePresent(u8 battlerId) -{ - if (IsContest()) - { - if (gBattleAnimAttacker == battlerId) - return TRUE; - else if (gBattleAnimTarget == battlerId) - return TRUE; - else - return FALSE; - } - else - { - if (gBattlerPositions[battlerId] == 0xff) - { - return FALSE; - } - else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) - { - if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_HP) != 0) - return TRUE; - } - else - { - if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_HP) != 0) - return TRUE; - } - } - return FALSE; -} - -bool8 IsDoubleBattle(void) -{ - return IS_DOUBLE_BATTLE(); -} - -void sub_80A6B30(struct BattleAnimBgData *unk) -{ - if (IsContest()) - { - unk->bgTiles = gUnknown_0202305C; - unk->bgTilemap = (u16 *)gUnknown_02023060; - unk->paletteId = 14; - unk->bgId = 1; - unk->tilesOffset = 0; - unk->unused = 0; - } - else - { - unk->bgTiles = gUnknown_0202305C; - unk->bgTilemap = (u16 *)gUnknown_02023060; - unk->paletteId = 8; - unk->bgId = 1; - unk->tilesOffset = 0x200; - unk->unused = 0; - } -} - -void sub_80A6B90(struct BattleAnimBgData *unk, u32 arg1) -{ - if (IsContest()) - { - unk->bgTiles = gUnknown_0202305C; - unk->bgTilemap = (u16 *)gUnknown_02023060; - unk->paletteId = 14; - unk->bgId = 1; - unk->tilesOffset = 0; - unk->unused = 0; - } - else if (arg1 == 1) - { - sub_80A6B30(unk); - } - else - { - unk->bgTiles = gUnknown_0202305C; - unk->bgTilemap = (u16 *)gUnknown_02023060; - unk->paletteId = 9; - unk->bgId = 2; - unk->tilesOffset = 0x300; - unk->unused = 0; - } -} - -void sub_80A6BFC(struct BattleAnimBgData *unk, u8 unused) -{ - unk->bgTiles = gUnknown_0202305C; - unk->bgTilemap = (u16 *)gUnknown_02023060; - if (IsContest()) - { - unk->paletteId = 14; - unk->bgId = 1; - unk->tilesOffset = 0; - unk->unused = 0; - } - else if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) - { - unk->paletteId = 8; - unk->bgId = 1; - unk->tilesOffset = 0x200; - unk->unused = 0; - } - else - { - unk->paletteId = 9; - unk->bgId = 2; - unk->tilesOffset = 0x300; - unk->unused = 0; - } -} - -void sub_80A6C68(u32 bgId) -{ - struct BattleAnimBgData unkStruct; - - sub_80A6B90(&unkStruct, bgId); - CpuFill32(0, unkStruct.bgTiles, 0x2000); - LoadBgTiles(unkStruct.bgId, unkStruct.bgTiles, 0x2000, unkStruct.tilesOffset); - FillBgTilemapBufferRect(unkStruct.bgId, 0, 0, 0, 32, 64, 17); - CopyBgTilemapBufferToVram(unkStruct.bgId); -} - -void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset) -{ - CpuFill32(0, gUnknown_0202305C, 0x2000); - LZDecompressWram(src, gUnknown_0202305C); - LoadBgTiles(bgId, gUnknown_0202305C, 0x2000, tilesOffset); -} - -static void InitAnimBgTilemapBuffer(u32 bgId, const void *src) -{ - FillBgTilemapBufferRect(bgId, 0, 0, 0, 32, 64, 17); - CopyToBgTilemapBuffer(bgId, src, 0, 0); -} - -void AnimLoadCompressedBgTilemap(u32 bgId, const void *src) -{ - InitAnimBgTilemapBuffer(bgId, src); - CopyBgTilemapBufferToVram(bgId); -} - -void sub_80A6D60(struct BattleAnimBgData *unk, const void *src, u32 arg2) -{ - InitAnimBgTilemapBuffer(unk->bgId, src); - if (IsContest() == TRUE) - sub_80A4720(unk->paletteId, unk->bgTilemap, 0, arg2); - CopyBgTilemapBufferToVram(unk->bgId); -} - -u8 sub_80A6D94(void) -{ - if (IsContest()) - return 1; - else - return 2; -} - -void sub_80A6DAC(bool8 arg0) -{ - if (!arg0 || IsContest()) - { - SetAnimBgAttribute(3, BG_ANIM_SCREEN_SIZE, 0); - SetAnimBgAttribute(3, BG_ANIM_AREA_OVERFLOW_MODE, 1); - } - else - { - SetAnimBgAttribute(3, BG_ANIM_SCREEN_SIZE, 1); - SetAnimBgAttribute(3, BG_ANIM_AREA_OVERFLOW_MODE, 0); - } -} - -void sub_80A6DEC(struct Sprite *sprite) -{ - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; - InitSpriteDataForLinearTranslation(sprite); - sprite->callback = TranslateSpriteLinearFixedPointIconFrame; - sprite->callback(sprite); -} - -void InitSpriteDataForLinearTranslation(struct Sprite *sprite) -{ - s16 x = (sprite->data[2] - sprite->data[1]) << 8; - s16 y = (sprite->data[4] - sprite->data[3]) << 8; - sprite->data[1] = x / sprite->data[0]; - sprite->data[2] = y / sprite->data[0]; - sprite->data[4] = 0; - sprite->data[3] = 0; -} - -void InitAnimLinearTranslation(struct Sprite *sprite) -{ - int x = sprite->data[2] - sprite->data[1]; - int y = sprite->data[4] - sprite->data[3]; - bool8 movingLeft = x < 0; - bool8 movingUp = y < 0; - u16 xDelta = abs(x) << 8; - u16 yDelta = abs(y) << 8; - - xDelta = xDelta / sprite->data[0]; - yDelta = yDelta / sprite->data[0]; - - if (movingLeft) - xDelta |= 1; - else - xDelta &= ~1; - - if (movingUp) - yDelta |= 1; - else - yDelta &= ~1; - - sprite->data[1] = xDelta; - sprite->data[2] = yDelta; - sprite->data[4] = 0; - sprite->data[3] = 0; -} - -void StartAnimLinearTranslation(struct Sprite *sprite) -{ - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; - InitAnimLinearTranslation(sprite); - sprite->callback = sub_80A6F98; - sprite->callback(sprite); -} - -void sub_80A6F14(struct Sprite *sprite) -{ - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; - InitAnimLinearTranslation(sprite); - sprite->callback = sub_80A6FB4; - sprite->callback(sprite); -} - -bool8 AnimTranslateLinear(struct Sprite *sprite) -{ - u16 v1, v2, x, y; - - if (!sprite->data[0]) - return TRUE; - - v1 = sprite->data[1]; - v2 = sprite->data[2]; - x = sprite->data[3]; - y = sprite->data[4]; - x += v1; - y += v2; - - if (v1 & 1) - sprite->pos2.x = -(x >> 8); - else - sprite->pos2.x = x >> 8; - - if (v2 & 1) - sprite->pos2.y = -(y >> 8); - else - sprite->pos2.y = y >> 8; - - sprite->data[3] = x; - sprite->data[4] = y; - sprite->data[0]--; - return FALSE; -} - -void sub_80A6F98(struct Sprite *sprite) -{ - if (AnimTranslateLinear(sprite)) - SetCallbackToStoredInData6(sprite); -} - -static void sub_80A6FB4(struct Sprite *sprite) -{ - sub_8039E9C(sprite); - if (AnimTranslateLinear(sprite)) - SetCallbackToStoredInData6(sprite); -} - -void sub_80A6FD4(struct Sprite *sprite) -{ - int v1 = abs(sprite->data[2] - sprite->data[1]) << 8; - sprite->data[0] = v1 / sprite->data[0]; - InitAnimLinearTranslation(sprite); -} - -void sub_80A7000(struct Sprite *sprite) -{ - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; - sub_80A6FD4(sprite); - sprite->callback = sub_80A6F98; - sprite->callback(sprite); -} - -static void InitAnimFastLinearTranslation(struct Sprite *sprite) -{ - int xDiff = sprite->data[2] - sprite->data[1]; - int yDiff = sprite->data[4] - sprite->data[3]; - bool8 x_sign = xDiff < 0; - bool8 y_sign = yDiff < 0; - u16 x2 = abs(xDiff) << 4; - u16 y2 = abs(yDiff) << 4; - - x2 /= sprite->data[0]; - y2 /= sprite->data[0]; - - if (x_sign) - x2 |= 1; - else - x2 &= ~1; - - if (y_sign) - y2 |= 1; - else - y2 &= ~1; - - sprite->data[1] = x2; - sprite->data[2] = y2; - sprite->data[4] = 0; - sprite->data[3] = 0; -} - -void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite) -{ - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; - InitAnimFastLinearTranslation(sprite); - sprite->callback = sub_80A7144; - sprite->callback(sprite); -} - -bool8 AnimFastTranslateLinear(struct Sprite *sprite) -{ - u16 v1, v2, x, y; - - if (!sprite->data[0]) - return TRUE; - - v1 = sprite->data[1]; - v2 = sprite->data[2]; - x = sprite->data[3]; - y = sprite->data[4]; - x += v1; - y += v2; - - if (v1 & 1) - sprite->pos2.x = -(x >> 4); - else - sprite->pos2.x = x >> 4; - - if (v2 & 1) - sprite->pos2.y = -(y >> 4); - else - sprite->pos2.y = y >> 4; - - sprite->data[3] = x; - sprite->data[4] = y; - sprite->data[0]--; - return FALSE; -} - -static void sub_80A7144(struct Sprite *sprite) -{ - if (AnimFastTranslateLinear(sprite)) - SetCallbackToStoredInData6(sprite); -} - -void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite) -{ - int xDiff = abs(sprite->data[2] - sprite->data[1]) << 4; - sprite->data[0] = xDiff / sprite->data[0]; - InitAnimFastLinearTranslation(sprite); -} - -void sub_80A718C(struct Sprite *sprite) -{ - sprite->data[1] = sprite->pos1.x; - sprite->data[3] = sprite->pos1.y; - InitAnimFastLinearTranslationWithSpeed(sprite); - sprite->callback = sub_80A7144; - sprite->callback(sprite); -} - -void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation) -{ - int i; - struct ObjAffineSrcData src; - struct OamMatrix matrix; - - src.xScale = xScale; - src.yScale = yScale; - src.rotation = rotation; - if (sub_80A7238()) - src.xScale = -src.xScale; - i = gSprites[spriteId].oam.matrixNum; - ObjAffineSet(&src, &matrix, 1, 2); - gOamMatrices[i].a = matrix.a; - gOamMatrices[i].b = matrix.b; - gOamMatrices[i].c = matrix.c; - gOamMatrices[i].d = matrix.d; -} - -static bool8 sub_80A7238(void) -{ - if (IsContest()) - { - if (gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].data[2] == SPECIES_UNOWN) - return FALSE; - else - return TRUE; - } - else - { - return FALSE; - } -} - -void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode) -{ - u8 battlerId = gSprites[spriteId].data[0]; - - if (IsContest() || IsBattlerSpriteVisible(battlerId)) - gSprites[spriteId].invisible = FALSE; - gSprites[spriteId].oam.objMode = objMode; - gSprites[spriteId].affineAnimPaused = TRUE; - if (!IsContest() && !gSprites[spriteId].oam.affineMode) - gSprites[spriteId].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[battlerId].matrixNum; - gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE; - CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode); -} - -void ResetSpriteRotScale(u8 spriteId) -{ - SetSpriteRotScale(spriteId, 0x100, 0x100, 0); - gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; - gSprites[spriteId].oam.objMode = 0; - gSprites[spriteId].affineAnimPaused = FALSE; - CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode); -} - -// Sets the sprite's y offset equal to the y displacement caused by the -// matrix's rotation. -void SetBattlerSpriteYOffsetFromRotation(u8 spriteId) -{ - u16 matrixNum = gSprites[spriteId].oam.matrixNum; - // The "c" component of the battler sprite matrix contains the sine of the rotation angle divided by some scale amount. - s16 c = gOamMatrices[matrixNum].c; - if (c < 0) - c = -c; - - gSprites[spriteId].pos2.y = c >> 3; -} - -void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation) -{ - int i; - struct ObjAffineSrcData src; - struct OamMatrix matrix; - - if (sprite->oam.affineMode & 1) - { - sprite->affineAnimPaused = TRUE; - if (recalcCenterVector) - CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); - src.xScale = xScale; - src.yScale = yScale; - src.rotation = rotation; - if (sub_80A7238()) - src.xScale = -src.xScale; - i = sprite->oam.matrixNum; - ObjAffineSet(&src, &matrix, 1, 2); - gOamMatrices[i].a = matrix.a; - gOamMatrices[i].b = matrix.b; - gOamMatrices[i].c = matrix.c; - gOamMatrices[i].d = matrix.d; - } -} - -void sub_80A749C(struct Sprite *sprite) -{ - TrySetSpriteRotScale(sprite, TRUE, 0x100, 0x100, 0); - sprite->affineAnimPaused = FALSE; - CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); -} - -static u16 ArcTan2_(s16 a, s16 b) -{ - return ArcTan2(a, b); -} - -u16 ArcTan2Neg(s16 a, s16 b) -{ - u16 var = ArcTan2_(a, b); - return -var; -} - -void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor) -{ - int i; - struct PlttData *originalColor; - struct PlttData *destColor; - u16 average; - - paletteNum *= 16; - - if (!restoreOriginalColor) - { - for (i = 0; i < 16; i++) - { - originalColor = (struct PlttData *)&gPlttBufferUnfaded[paletteNum + i]; - average = originalColor->r + originalColor->g + originalColor->b; - average /= 3; - - destColor = (struct PlttData *)&gPlttBufferFaded[paletteNum + i]; - destColor->r = average; - destColor->g = average; - destColor->b = average; - } - } - else - { - CpuCopy32(&gPlttBufferUnfaded[paletteNum], &gPlttBufferFaded[paletteNum], 32); - } -} - -u32 sub_80A75AC(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7) -{ - u32 selectedPalettes = 0; - u32 shift; - - if (battleBackground) - { - if (!IsContest()) - selectedPalettes = 0xe; - else - selectedPalettes = 1 << sub_80A6D94(); - } - if (attacker) - { - shift = gBattleAnimAttacker + 16; - selectedPalettes |= 1 << shift; - } - if (target) - { - shift = gBattleAnimTarget + 16; - selectedPalettes |= 1 << shift; - } - if (attackerPartner) - { - if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) - { - shift = BATTLE_PARTNER(gBattleAnimAttacker) + 16; - selectedPalettes |= 1 << shift; - } - } - if (targetPartner) - { - if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) - { - shift = BATTLE_PARTNER(gBattleAnimTarget) + 16; - selectedPalettes |= 1 << shift; - } - } - if (a6) - { - if (!IsContest()) - selectedPalettes |= 0x100; - else - selectedPalettes |= 0x4000; - } - if (a7) - { - if (!IsContest()) - selectedPalettes |= 0x200; - } - return selectedPalettes; -} - -u32 sub_80A76C4(u8 a1, u8 a2, u8 a3, u8 a4) -{ - u32 var = 0; - u32 shift; - - if (IsContest()) - { - if (a1) - { - var |= 1 << 18; - return var; - } - } - else - { - if (a1) - { - if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT))) - { - var |= 1 << (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) + 16); - } - } - if (a2) - { - if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT))) - { - shift = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) + 16; - var |= 1 << shift; - } - } - if (a3) - { - if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))) - { - shift = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT) + 16; - var |= 1 << shift; - } - } - if (a4) - { - if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) - { - shift = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT) + 16; - var |= 1 << shift; - } - } - } - return var; -} - -u8 sub_80A77AC(u8 a1) -{ - return a1; -} - -static u8 GetBattlerAtPosition_(u8 position) -{ - return GetBattlerAtPosition(position); -} - -void sub_80A77C8(struct Sprite *sprite) -{ - bool8 var; - - if (!sprite->data[0]) - { - if (!gBattleAnimArgs[3]) - var = TRUE; - else - var = FALSE; - if (!gBattleAnimArgs[2]) - InitSpritePosToAnimAttacker(sprite, var); - else - InitSpritePosToAnimTarget(sprite, var); - sprite->data[0]++; - - } - else if (sprite->animEnded || sprite->affineAnimEnded) - { - DestroySpriteAndMatrix(sprite); - } -} - -// Linearly translates a sprite to a target position on the -// other mon's sprite. -// arg 0: initial x offset -// arg 1: initial y offset -// arg 2: target x offset -// arg 3: target y offset -// arg 4: duration -// arg 5: lower 8 bits = location on attacking mon, upper 8 bits = location on target mon pick to target -void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite) -{ - bool8 v1; - u8 coordType; - - if (!(gBattleAnimArgs[5] & 0xff00)) - v1 = TRUE; - else - v1 = FALSE; - - if (!(gBattleAnimArgs[5] & 0xff)) - coordType = BATTLER_COORD_Y_PIC_OFFSET; - else - coordType = BATTLER_COORD_Y; - - InitSpritePosToAnimAttacker(sprite, v1); - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - - sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, coordType) + gBattleAnimArgs[3]; - sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); -} - -void sub_80A78AC(struct Sprite *sprite) -{ - InitSpritePosToAnimAttacker(sprite, 1); - if (GetBattlerSide(gBattleAnimAttacker)) - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; - sprite->data[5] = gBattleAnimArgs[5]; - InitAnimArcTranslation(sprite); - sprite->callback = sub_80A791C; -} - -static void sub_80A791C(struct Sprite *sprite) -{ - if (TranslateAnimHorizontalArc(sprite)) - DestroyAnimSprite(sprite); -} - -void sub_80A7938(struct Sprite *sprite) -{ - bool8 r4; - u8 battlerId, coordType; - - if (!gBattleAnimArgs[6]) - { - r4 = TRUE; - coordType = BATTLER_COORD_Y_PIC_OFFSET; - } - else - { - r4 = FALSE; - coordType = BATTLER_COORD_Y; - } - if (!gBattleAnimArgs[5]) - { - InitSpritePosToAnimAttacker(sprite, r4); - battlerId = gBattleAnimAttacker; - } - else - { - InitSpritePosToAnimTarget(sprite, r4); - battlerId = gBattleAnimTarget; - } - if (GetBattlerSide(gBattleAnimAttacker)) - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - InitSpritePosToAnimTarget(sprite, r4); - sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(battlerId, coordType) + gBattleAnimArgs[3]; - sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); -} - -s16 CloneBattlerSpriteWithBlend(u8 animBattler) -{ - u16 i; - u8 spriteId = GetAnimBattlerSpriteId(animBattler); - - if (spriteId != 0xFF) - { - for (i = 0; i < MAX_SPRITES; i++) - { - if (!gSprites[i].inUse) - { - gSprites[i] = gSprites[spriteId]; - gSprites[i].oam.objMode = ST_OAM_OBJ_BLEND; - gSprites[i].invisible = FALSE; - return i; - } - } - } - return -1; -} - -void obj_delete_but_dont_free_vram(struct Sprite *sprite) -{ - sprite->usingSheet = TRUE; - DestroySprite(sprite); -} - -void sub_80A7A74(u8 taskId) -{ - s16 v1 = 0; - s16 v2 = 0; - - if (gBattleAnimArgs[2] > gBattleAnimArgs[0]) - v2 = 1; - if (gBattleAnimArgs[2] < gBattleAnimArgs[0]) - v2 = -1; - if (gBattleAnimArgs[3] > gBattleAnimArgs[1]) - v1 = 1; - if (gBattleAnimArgs[3] < gBattleAnimArgs[1]) - v1 = -1; - - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = gBattleAnimArgs[4]; - gTasks[taskId].data[2] = 0; - gTasks[taskId].data[3] = gBattleAnimArgs[0]; - gTasks[taskId].data[4] = gBattleAnimArgs[1]; - gTasks[taskId].data[5] = v2; - gTasks[taskId].data[6] = v1; - gTasks[taskId].data[7] = gBattleAnimArgs[2]; - gTasks[taskId].data[8] = gBattleAnimArgs[3]; - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gBattleAnimArgs[0], gBattleAnimArgs[1])); - gTasks[taskId].func = sub_80A7AFC; -} - -static void sub_80A7AFC(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - - if (++task->data[0] > task->data[1]) - { - task->data[0] = 0; - if (++task->data[2] & 1) - { - if (task->data[3] != task->data[7]) - task->data[3] += task->data[5]; - } - else - { - if (task->data[4] != task->data[8]) - task->data[4] += task->data[6]; - } - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[3], task->data[4])); - if (task->data[3] == task->data[7] && task->data[4] == task->data[8]) - { - DestroyAnimVisualTask(taskId); - return; - } - } -} - -// Linearly blends a mon's sprite colors with a target color with increasing -// strength, and then blends out to the original color. -// arg 0: anim bank -// arg 1: blend color -// arg 2: target blend coefficient -// arg 3: initial delay -// arg 4: number of times to blend in and out -void AnimTask_BlendMonInAndOut(u8 task) -{ - u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xff) - { - DestroyAnimVisualTask(task); - return; - } - gTasks[task].data[0] = (gSprites[spriteId].oam.paletteNum * 0x10) + 0x101; - AnimTask_BlendMonInAndOutSetup(&gTasks[task]); -} - -static void AnimTask_BlendMonInAndOutSetup(struct Task *task) -{ - task->data[1] = gBattleAnimArgs[1]; - task->data[2] = 0; - task->data[3] = gBattleAnimArgs[2]; - task->data[4] = 0; - task->data[5] = gBattleAnimArgs[3]; - task->data[6] = 0; - task->data[7] = gBattleAnimArgs[4]; - task->func = AnimTask_BlendMonInAndOutStep; -} - -static void AnimTask_BlendMonInAndOutStep(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - - if (++task->data[4] >= task->data[5]) - { - task->data[4] = 0; - if (!task->data[6]) - { - task->data[2]++; - BlendPalette(task->data[0], 15, task->data[2], task->data[1]); - if (task->data[2] == task->data[3]) - task->data[6] = 1; - } - else - { - task->data[2]--; - BlendPalette(task->data[0], 15, task->data[2], task->data[1]); - if (!task->data[2]) - { - if (--task->data[7]) - { - task->data[4] = 0; - task->data[6] = 0; - } - else - { - DestroyAnimVisualTask(taskId); - return; - } - } - } - } -} - -void sub_80A7CB4(u8 task) -{ - u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]); - - if (palette == 0xff) - { - DestroyAnimVisualTask(task); - return; - } - gTasks[task].data[0] = (palette * 0x10) + 0x101; - AnimTask_BlendMonInAndOutSetup(&gTasks[task]); -} - -void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds) -{ - task->data[7] = 0; - task->data[8] = 0; - task->data[9] = 0; - task->data[15] = spriteId; - task->data[10] = 0x100; - task->data[11] = 0x100; - task->data[12] = 0; - StorePointerInVars(&task->data[13], &task->data[14], affineAnimCmds); - PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); -} - -bool8 RunAffineAnimFromTaskData(struct Task *task) -{ - gAnimTaskAffineAnim = LoadPointerFromVars(task->data[13], task->data[14]) + (task->data[7] << 3); - switch (gAnimTaskAffineAnim->type) - { - default: - if (!gAnimTaskAffineAnim->frame.duration) - { - task->data[10] = gAnimTaskAffineAnim->frame.xScale; - task->data[11] = gAnimTaskAffineAnim->frame.yScale; - task->data[12] = gAnimTaskAffineAnim->frame.rotation; - task->data[7]++; - gAnimTaskAffineAnim++; - } - task->data[10] += gAnimTaskAffineAnim->frame.xScale; - task->data[11] += gAnimTaskAffineAnim->frame.yScale; - task->data[12] += gAnimTaskAffineAnim->frame.rotation; - SetSpriteRotScale(task->data[15], task->data[10], task->data[11], task->data[12]); - SetBattlerSpriteYOffsetFromYScale(task->data[15]); - if (++task->data[8] >= gAnimTaskAffineAnim->frame.duration) - { - task->data[8] = 0; - task->data[7]++; - } - break; - case AFFINEANIMCMDTYPE_JUMP: - task->data[7] = gAnimTaskAffineAnim->jump.target; - break; - case AFFINEANIMCMDTYPE_LOOP: - if (gAnimTaskAffineAnim->loop.count) - { - if (task->data[9]) - { - if (!--task->data[9]) - { - task->data[7]++; - break; - } - } - else - { - task->data[9] = gAnimTaskAffineAnim->loop.count; - } - if (!task->data[7]) - { - break; - } - for (;;) - { - task->data[7]--; - gAnimTaskAffineAnim--; - if (gAnimTaskAffineAnim->type == AFFINEANIMCMDTYPE_LOOP) - { - task->data[7]++; - return TRUE; - } - if (!task->data[7]) - return TRUE; - } - } - task->data[7]++; - break; - case AFFINEANIMCMDTYPE_END: - gSprites[task->data[15]].pos2.y = 0; - ResetSpriteRotScale(task->data[15]); - return FALSE; - } - - return TRUE; -} - -// Sets the sprite's y offset equal to the y displacement caused by the -// matrix's scale in the y dimension. -void SetBattlerSpriteYOffsetFromYScale(u8 spriteId) -{ - int var = 64 - GetBattlerYDeltaFromSpriteId(spriteId) * 2; - u16 matrix = gSprites[spriteId].oam.matrixNum; - int var2 = (var << 8) / gOamMatrices[matrix].d; - - if (var2 > 128) - var2 = 128; - gSprites[spriteId].pos2.y = (var - var2) / 2; -} - -// Sets the sprite's y offset equal to the y displacement caused by another sprite -// matrix's scale in the y dimension. -void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId) -{ - int var = 64 - GetBattlerYDeltaFromSpriteId(otherSpriteId) * 2; - u16 matrix = gSprites[spriteId].oam.matrixNum; - int var2 = (var << 8) / gOamMatrices[matrix].d; - - if (var2 > 128) - var2 = 128; - gSprites[spriteId].pos2.y = (var - var2) / 2; -} - -static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) -{ - struct BattleSpriteInfo *spriteInfo; - u8 battlerId = gSprites[spriteId].data[0]; - u16 species; - u16 i; - - for (i = 0; i < MAX_BATTLERS_COUNT; i++) - { - if (gBattlerSpriteIds[i] == spriteId) - { - if (IsContest()) - { - species = gContestResources->field_18->species; - return gMonBackPicCoords[species].y_offset; - } - else - { - if (GetBattlerSide(i) == B_SIDE_PLAYER) - { - spriteInfo = gBattleSpritesDataPtr->battlerData; - if (!spriteInfo[battlerId].transformSpecies) - species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); - else - species = spriteInfo[battlerId].transformSpecies; - - if (species == SPECIES_CASTFORM) - return sCastformBackSpriteYCoords[gBattleMonForms[battlerId]]; - else - return gMonBackPicCoords[species].y_offset; - } - else - { - spriteInfo = gBattleSpritesDataPtr->battlerData; - if (!spriteInfo[battlerId].transformSpecies) - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); - else - species = spriteInfo[battlerId].transformSpecies; - - if (species == SPECIES_CASTFORM) - return sCastformElevations[gBattleMonForms[battlerId]]; - else - return gMonFrontPicCoords[species].y_offset; - } - } - } - } - return 64; -} - -void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr) -{ - *lo = ((intptr_t) ptr) & 0xffff; - *hi = (((intptr_t) ptr) >> 16) & 0xffff; -} - -void *LoadPointerFromVars(s16 lo, s16 hi) -{ - return (void *)((u16)lo | ((u16)hi << 16)); -} - -void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7) -{ - task->data[8] = a7; - task->data[15] = a2; // spriteId - task->data[9] = a3; - task->data[10] = a4; - task->data[13] = a5; - task->data[14] = a6; - task->data[11] = (a5 - a3) / a7; - task->data[12] = (a6 - a4) / a7; -} - -u8 sub_80A80C8(struct Task *task) -{ - if (!task->data[8]) - return 0; - - if (--task->data[8] != 0) - { - task->data[9] += task->data[11]; - task->data[10] += task->data[12]; - } - else - { - task->data[9] = task->data[13]; - task->data[10] = task->data[14]; - } - SetSpriteRotScale(task->data[15], task->data[9], task->data[10], 0); - if (task->data[8]) - SetBattlerSpriteYOffsetFromYScale(task->data[15]); - else - gSprites[task->data[15]].pos2.y = 0; - return task->data[8]; -} - -void AnimTask_GetFrustrationPowerLevel(u8 taskId) -{ - u16 powerLevel; - - if (gAnimFriendship <= 30) - powerLevel = 0; - else if (gAnimFriendship <= 100) - powerLevel = 1; - else if (gAnimFriendship <= 200) - powerLevel = 2; - else - powerLevel = 3; - gBattleAnimArgs[7] = powerLevel; - DestroyAnimVisualTask(taskId); -} - -void sub_80A8174(u8 priority) -{ - if (IsBattlerSpriteVisible(gBattleAnimTarget)) - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].oam.priority = priority; - if (IsBattlerSpriteVisible(gBattleAnimAttacker)) - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].oam.priority = priority; - if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) - gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)]].oam.priority = priority; - if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) - gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority = priority; -} - -void sub_80A8278(void) -{ - int i; - - for (i = 0; i < gBattlersCount; i++) - { - if (IsBattlerSpriteVisible(i)) - { - gSprites[gBattlerSpriteIds[i]].subpriority = GetBattlerSpriteSubpriority(i); - gSprites[gBattlerSpriteIds[i]].oam.priority = 2; - } - } -} - -u8 GetBattlerSpriteSubpriority(u8 battlerId) -{ - u8 position; - u8 subpriority; - - if (IsContest()) - { - if (battlerId == 2) - return 30; - else - return 40; - } - else - { - position = GetBattlerPosition(battlerId); - if (position == B_POSITION_PLAYER_LEFT) - subpriority = 30; - else if (position == B_POSITION_PLAYER_RIGHT) - subpriority = 20; - else if (position == B_POSITION_OPPONENT_LEFT) - subpriority = 40; - else - subpriority = 50; - } - - return subpriority; -} - -u8 GetBattlerSpriteBGPriority(u8 battlerId) -{ - u8 position = GetBattlerPosition(battlerId); - - if (IsContest()) - return 2; - else if (position == B_POSITION_PLAYER_LEFT || position == B_POSITION_OPPONENT_RIGHT) - return GetAnimBgAttribute(2, BG_ANIM_PRIORITY); - else - return GetAnimBgAttribute(1, BG_ANIM_PRIORITY); -} - -u8 GetBattlerSpriteBGPriorityRank(u8 battlerId) -{ - if (!IsContest()) - { - u8 position = GetBattlerPosition(battlerId); - if (position == B_POSITION_PLAYER_LEFT || position == B_POSITION_OPPONENT_RIGHT) - return 2; - else - return 1; - } - return 1; -} - -u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10) -{ - u8 spriteId; - u16 sheet = LoadSpriteSheet(&sUnknown_08525FC0[a3]); - u16 palette = AllocSpritePalette(sUnknown_08525F90[a3].paletteTag); - - if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->field_17C == NULL) - gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000); - if (!isBackpic) - { - LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); - if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) - LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], - gMonSpritesGfxPtr->field_17C, - species, - personality, - TRUE); - else - LoadSpecialPokePic_2(&gMonFrontPicTable[species], - gMonSpritesGfxPtr->field_17C, - species, - personality, - TRUE); - } - else - { - LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); - if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) - LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], - gMonSpritesGfxPtr->field_17C, - species, - personality, - FALSE); - else - LoadSpecialPokePic_2(&gMonBackPicTable[species], - gMonSpritesGfxPtr->field_17C, - species, - personality, - FALSE); - } - - RequestDma3Copy(gMonSpritesGfxPtr->field_17C, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1); - FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C); - - if (!isBackpic) - spriteId = CreateSprite(&sUnknown_08525F90[a3], x, y + gMonFrontPicCoords[species].y_offset, subpriority); - else - spriteId = CreateSprite(&sUnknown_08525F90[a3], x, y + gMonBackPicCoords[species].y_offset, subpriority); - - if (IsContest()) - { - gSprites[spriteId].affineAnims = gUnknown_082FF6C0; - StartSpriteAffineAnim(&gSprites[spriteId], 0); - } - return spriteId; -} - -void DestroySpriteAndFreeResources_(struct Sprite *sprite) -{ - DestroySpriteAndFreeResources(sprite); -} - -s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) -{ - u16 species; - u32 personality; - u16 letter; - u16 unownSpecies; - int ret; - const struct MonCoords *coords; - struct BattleSpriteInfo *spriteInfo; - - if (IsContest()) - { - if (gContestResources->field_18->unk4_0) - { - species = gContestResources->field_18->unk2; - personality = gContestResources->field_18->unk10; - } - else - { - species = gContestResources->field_18->species; - personality = gContestResources->field_18->unk8; - } - if (species == SPECIES_UNOWN) - { - letter = GET_UNOWN_LETTER(personality); - if (!letter) - unownSpecies = SPECIES_UNOWN; - else - unownSpecies = letter + SPECIES_UNOWN_B - 1; - coords = &gMonBackPicCoords[unownSpecies]; - } - else if (species == SPECIES_CASTFORM) - { - coords = &gCastformFrontSpriteCoords[gBattleMonForms[battlerId]]; - } - else if (species <= SPECIES_EGG) - { - coords = &gMonBackPicCoords[species]; - } - else - { - coords = &gMonBackPicCoords[0]; - } - } - else - { - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) - { - spriteInfo = gBattleSpritesDataPtr->battlerData; - if (!spriteInfo[battlerId].transformSpecies) - { - species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); - } - else - { - species = spriteInfo[battlerId].transformSpecies; - personality = gTransformedPersonalities[battlerId]; - } - - if (species == SPECIES_UNOWN) - { - letter = GET_UNOWN_LETTER(personality); - if (!letter) - unownSpecies = SPECIES_UNOWN; - else - unownSpecies = letter + SPECIES_UNOWN_B - 1; - coords = &gMonBackPicCoords[unownSpecies]; - } - else if (species > NUM_SPECIES) - { - coords = &gMonBackPicCoords[0]; - } - else - { - coords = &gMonBackPicCoords[species]; - } - } - else - { - spriteInfo = gBattleSpritesDataPtr->battlerData; - if (!spriteInfo[battlerId].transformSpecies) - { - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); - personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); - } - else - { - species = spriteInfo[battlerId].transformSpecies; - personality = gTransformedPersonalities[battlerId]; - } - - if (species == SPECIES_UNOWN) - { - letter = GET_UNOWN_LETTER(personality); - if (!letter) - unownSpecies = SPECIES_UNOWN; - else - unownSpecies = letter + SPECIES_UNOWN_B - 1; - coords = &gMonFrontPicCoords[unownSpecies]; - } - else if (species == SPECIES_CASTFORM) - { - coords = &gCastformFrontSpriteCoords[gBattleMonForms[battlerId]]; - } - else if (species > NUM_SPECIES) - { - coords = &gMonFrontPicCoords[0]; - } - else - { - coords = &gMonFrontPicCoords[species]; - } - } - } - - switch (attr) - { - case BATTLER_COORD_ATTR_HEIGHT: - return (coords->size & 0xf) * 8; - case BATTLER_COORD_ATTR_WIDTH: - return (coords->size >> 4) * 8; - case BATTLER_COORD_ATTR_LEFT: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - ((coords->size >> 4) * 4); - case BATTLER_COORD_ATTR_RIGHT: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + ((coords->size >> 4) * 4); - case BATTLER_COORD_ATTR_TOP: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - ((coords->size & 0xf) * 4); - case BATTLER_COORD_ATTR_BOTTOM: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + ((coords->size & 0xf) * 4); - case BATTLER_COORD_ATTR_RAW_BOTTOM: - ret = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 31; - return ret - coords->y_offset; - default: - return 0; - } -} - -void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y) -{ - u8 xCoordType, yCoordType; - s16 battlerX, battlerY; - s16 partnerX, partnerY; - - if (!respectMonPicOffsets) - { - xCoordType = BATTLER_COORD_X; - yCoordType = BATTLER_COORD_Y; - } - else - { - xCoordType = BATTLER_COORD_X_2; - yCoordType = BATTLER_COORD_Y_PIC_OFFSET; - } - - battlerX = GetBattlerSpriteCoord(battlerId, xCoordType); - battlerY = GetBattlerSpriteCoord(battlerId, yCoordType); - if (IsDoubleBattle() && !IsContest()) - { - partnerX = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), xCoordType); - partnerY = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), yCoordType); - } - else - { - partnerX = battlerX; - partnerY = battlerY; - } - - *x = (battlerX + partnerX) / 2; - *y = (battlerY + partnerY) / 2; -} - -u8 sub_80A89C8(int battlerId, u8 spriteId, int species) -{ - u8 newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); - gSprites[newSpriteId] = gSprites[spriteId]; - gSprites[newSpriteId].usingSheet = TRUE; - gSprites[newSpriteId].oam.priority = 0; - gSprites[newSpriteId].oam.objMode = 2; - gSprites[newSpriteId].oam.tileNum = gSprites[spriteId].oam.tileNum; - gSprites[newSpriteId].callback = SpriteCallbackDummy; - return newSpriteId; -} - -void sub_80A8A6C(struct Sprite *sprite) -{ - SetSpriteCoordsToAnimAttackerCoords(sprite); - if (GetBattlerSide(gBattleAnimAttacker)) - { - sprite->pos1.x -= gBattleAnimArgs[0]; - gBattleAnimArgs[3] = -gBattleAnimArgs[3]; - sprite->hFlip = TRUE; - } - else - { - sprite->pos1.x += gBattleAnimArgs[0]; - } - sprite->pos1.y += gBattleAnimArgs[1]; - sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = gBattleAnimArgs[3]; - sprite->data[3] = gBattleAnimArgs[4]; - sprite->data[5] = gBattleAnimArgs[5]; - StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = TranslateSpriteLinearAndFlicker; -} - -void sub_80A8AEC(struct Sprite *sprite) -{ - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - { - sprite->pos1.x -= gBattleAnimArgs[0]; - gBattleAnimArgs[3] *= -1; - } - else - { - sprite->pos1.x += gBattleAnimArgs[0]; - } - sprite->pos1.y += gBattleAnimArgs[1]; - sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = gBattleAnimArgs[3]; - sprite->data[3] = gBattleAnimArgs[4]; - sprite->data[5] = gBattleAnimArgs[5]; - StartSpriteAnim(sprite, gBattleAnimArgs[6]); - StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = TranslateSpriteLinearAndFlicker; -} - -void sub_80A8B64(struct Sprite *sprite) -{ - SetSpriteCoordsToAnimAttackerCoords(sprite); - if (GetBattlerSide(gBattleAnimAttacker)) - sprite->pos1.x -= gBattleAnimArgs[0]; - else - sprite->pos1.x += gBattleAnimArgs[0]; - sprite->pos1.y += gBattleAnimArgs[1]; - sprite->callback = RunStoredCallbackWhenAnimEnds; - StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); -} - -void sub_80A8BC4(u8 taskId) -{ - u16 src; - u16 dest; - struct Task *task = &gTasks[taskId]; - - task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->data[1] = ((GetBattlerSide(gBattleAnimAttacker)) != B_SIDE_PLAYER) ? -8 : 8; - task->data[2] = 0; - task->data[3] = 0; - gSprites[task->data[0]].pos2.x -= task->data[0]; - task->data[4] = AllocSpritePalette(10097); - task->data[5] = 0; - - dest = (task->data[4] + 0x10) * 0x10; - src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10; - task->data[6] = GetBattlerSpriteSubpriority(gBattleAnimAttacker); - if (task->data[6] == 20 || task->data[6] == 40) - task->data[6] = 2; - else - task->data[6] = 3; - CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20); - BlendPalette(dest, 16, gBattleAnimArgs[1], gBattleAnimArgs[0]); - task->func = sub_80A8CAC; -} - -static void sub_80A8CAC(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - switch (task->data[2]) - { - case 0: - sub_80A8D78(task, taskId); - gSprites[task->data[0]].pos2.x += task->data[1]; - if (++task->data[3] == 5) - { - task->data[3]--; - task->data[2]++; - } - break; - case 1: - sub_80A8D78(task, taskId); - gSprites[task->data[0]].pos2.x -= task->data[1]; - if (--task->data[3] == 0) - { - gSprites[task->data[0]].pos2.x = 0; - task->data[2]++; - } - break; - case 2: - if (!task->data[5]) - { - FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON); - DestroyAnimVisualTask(taskId); - } - break; - } -} - -static void sub_80A8D78(struct Task *task, u8 taskId) -{ - s16 spriteId = CloneBattlerSpriteWithBlend(0); - if (spriteId >= 0) - { - gSprites[spriteId].oam.priority = task->data[6]; - gSprites[spriteId].oam.paletteNum = task->data[4]; - gSprites[spriteId].data[0] = 8; - gSprites[spriteId].data[1] = taskId; - gSprites[spriteId].data[2] = spriteId; - gSprites[spriteId].pos2.x = gSprites[task->data[0]].pos2.x; - gSprites[spriteId].callback = sub_80A8DFC; - task->data[5]++; - } -} - -static void sub_80A8DFC(struct Sprite *sprite) -{ - if (--sprite->data[0] == 0) - { - gTasks[sprite->data[1]].data[5]--; - obj_delete_but_dont_free_vram(sprite); - } -} - -void sub_80A8E30(struct Sprite *sprite) -{ - sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); - if (!GetBattlerSide(gBattleAnimAttacker)) - sprite->data[0] = 5; - else - sprite->data[0] = -10; - sprite->data[1] = -40; - sprite->callback = sub_80A8E88; -} - -static void sub_80A8E88(struct Sprite *sprite) -{ - sprite->data[2] += sprite->data[0]; - sprite->data[3] += sprite->data[1]; - sprite->pos2.x = sprite->data[2] / 10; - sprite->pos2.y = sprite->data[3] / 10; - if (sprite->data[1] < -20) - sprite->data[1]++; - if (sprite->pos1.y + sprite->pos2.y < -32) - DestroyAnimSprite(sprite); -} - -void sub_80A8EE4(struct Sprite *sprite) -{ - int x; - sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[4]; - sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[5]; - if (!GetBattlerSide(gBattleAnimTarget)) - { - x = (u16)gBattleAnimArgs[4] + 30; - sprite->pos1.x += x; - sprite->pos1.y = gBattleAnimArgs[5] - 20; - } - else - { - x = (u16)gBattleAnimArgs[4] - 30; - sprite->pos1.x += x; - sprite->pos1.y = gBattleAnimArgs[5] - 80; - } - sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); -} diff --git a/src/battle_anim_80A9C70.c b/src/battle_anim_80A9C70.c deleted file mode 100644 index 1271680e0..000000000 --- a/src/battle_anim_80A9C70.c +++ /dev/null @@ -1,534 +0,0 @@ -#include "global.h" -#include "battle.h" -#include "battle_anim.h" -#include "decompress.h" -#include "gpu_regs.h" -#include "palette.h" -#include "sprite.h" -#include "task.h" -#include "trig.h" -#include "util.h" -#include "constants/battle_anim.h" -#include "constants/rgb.h" - -extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; -extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; -extern const u8 *const gBattleAnims_StatusConditions[]; -extern const struct OamData gUnknown_08524904; -extern const struct OamData gUnknown_08524A3C; - -// This file's functions. -static void sub_80A9DB4(u8 taskId); -static void sub_80A9FD0(u8 taskId); -static void sub_80AA020(u8 taskId); -static void sub_80AA0D0(u8 taskId); -static void sub_80AA124(u8 taskId); -static void Task_DoStatusAnimation(u8 taskId); -static void sub_80A9E44(struct Sprite *sprite); -static void sub_80A9E78(struct Sprite *sprite); - -// const rom data -static const union AnimCmd sSpriteAnim_853EDE4[] = -{ - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(4, 3), - ANIMCMD_FRAME(8, 3), - ANIMCMD_FRAME(12, 3), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd *const sSpriteAnimTable_853EDF8[] = -{ - sSpriteAnim_853EDE4 -}; - -const struct SpriteTemplate gUnknown_0853EDFC = -{ - .tileTag = ANIM_TAG_UNUSED_ORB, - .paletteTag = ANIM_TAG_UNUSED_ORB, - .oam = &gUnknown_0852490C, - .anims = sSpriteAnimTable_853EDF8, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8AEC, -}; - -const struct SpriteTemplate gUnknown_0853EE14 = -{ - .tileTag = ANIM_TAG_UNUSED_ORB, - .paletteTag = ANIM_TAG_UNUSED_ORB, - .oam = &gUnknown_0852490C, - .anims = sSpriteAnimTable_853EDF8, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8A6C, -}; - -static const union AnimCmd sSpriteAnim_853EE2C[] = -{ - ANIMCMD_FRAME(0, 3), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd *const sSpriteAnimTable_853EE34[] = -{ - sSpriteAnim_853EE2C -}; - -const struct SpriteTemplate gUnknown_0853EE38 = -{ - .tileTag = ANIM_TAG_WEATHER_BALL, - .paletteTag = ANIM_TAG_WEATHER_BALL, - .oam = &gUnknown_08524914, - .anims = sSpriteAnimTable_853EE34, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8E30, -}; - -const struct SpriteTemplate gUnknown_0853EE50 = -{ - .tileTag = ANIM_TAG_WEATHER_BALL, - .paletteTag = ANIM_TAG_WEATHER_BALL, - .oam = &gUnknown_08524914, - .anims = sSpriteAnimTable_853EE34, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8EE4, -}; - -static const union AnimCmd sSpriteAnim_853EE68[] = -{ - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(16, 3), - ANIMCMD_FRAME(32, 3), - ANIMCMD_FRAME(48, 3), - ANIMCMD_FRAME(64, 3), - ANIMCMD_END -}; - -static const union AnimCmd *const sSpriteAnimTable_853EE80[] = -{ - sSpriteAnim_853EE68 -}; - -const struct SpriteTemplate gUnknown_0853EE84 = -{ - .tileTag = ANIM_TAG_SPARKLE_4, - .paletteTag = ANIM_TAG_SPARKLE_4, - .oam = &gUnknown_08524914, - .anims = sSpriteAnimTable_853EE80, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8B64, -}; - -const struct SpriteTemplate gUnknown_0853EE9C = -{ - .tileTag = ANIM_TAG_UNUSED_MONSTER_FOOT, - .paletteTag = ANIM_TAG_UNUSED_MONSTER_FOOT, - .oam = &gUnknown_08524914, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8AEC, -}; - -static const union AnimCmd sSpriteAnim_853EEB4[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_853EEBC[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_853EEC4[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd *const sSpriteAnimTable_853EECC[] = -{ - sSpriteAnim_853EEB4, - sSpriteAnim_853EEBC, - sSpriteAnim_853EEC4 -}; - -const struct SpriteTemplate gUnknown_0853EED8 = -{ - .tileTag = ANIM_TAG_IMPACT, - .paletteTag = ANIM_TAG_IMPACT, - .oam = &gUnknown_08524914, - .anims = sSpriteAnimTable_853EECC, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A8AEC, -}; - -static const union AnimCmd sSpriteAnim_853EEF0[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd *const sSpriteAnimTable_853EEF8[] = -{ - sSpriteAnim_853EEF0 -}; - -static const union AffineAnimCmd sSpriteAffineAnim_853EEFC[] = -{ - AFFINEANIMCMD_FRAME(96, 96, 0, 0), - AFFINEANIMCMD_FRAME(2, 2, 0, 1), - AFFINEANIMCMD_JUMP(1) -}; - -static const union AffineAnimCmd *const sSpriteAffineAnimTable_853EEF8[] = -{ - sSpriteAffineAnim_853EEFC -}; - -const struct SpriteTemplate gUnknown_0853EF18 = -{ - .tileTag = ANIM_TAG_UNUSED_ORB, - .paletteTag = ANIM_TAG_UNUSED_ORB, - .oam = &gUnknown_085249CC, - .anims = sSpriteAnimTable_853EEF8, - .images = NULL, - .affineAnims = sSpriteAffineAnimTable_853EEF8, - .callback = sub_80A8A6C, -}; - -static const struct Subsprite gUnknown_0853EF30[] = -{ - {.x = -16, .y = -16, .shape = ST_OAM_SQUARE, .size = 3, .tileOffset = 0, .priority = 2}, - {.x = -16, .y = 48, .shape = ST_OAM_H_RECTANGLE, .size = 3, .tileOffset = 64, .priority = 2}, - {.x = 48, .y = -16, .shape = ST_OAM_V_RECTANGLE, .size = 3, .tileOffset = 96, .priority = 2}, - {.x = 48, .y = 48, .shape = ST_OAM_SQUARE, .size = 2, .tileOffset = 128, .priority = 2}, -}; - -static const struct SubspriteTable gUnknown_0853EF40[] = -{ - {ARRAY_COUNT(gUnknown_0853EF30), gUnknown_0853EF30}, -}; - -static const struct SpriteTemplate gUnknown_0853EF48 = -{ - .tileTag = ANIM_TAG_ICE_CUBE, - .paletteTag = ANIM_TAG_ICE_CUBE, - .oam = &gUnknown_08524A3C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, -}; - -static const struct SpriteTemplate gUnknown_0853EF60 = -{ - .tileTag = ANIM_TAG_CIRCLE_IMPACT, - .paletteTag = ANIM_TAG_CIRCLE_IMPACT, - .oam = &gUnknown_08524904, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A9E44, -}; - -// code -u8 sub_80A9C70(u8 battlerId, bool8 b) -{ - u8 battlerSpriteId = gBattlerSpriteIds[battlerId]; - u8 taskId = CreateTask(sub_80A9DB4, 10); - u8 spriteId2; - u8 i; - - LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]); - LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]); - gTasks[taskId].data[0] = battlerId; - if (b) - { - gTasks[taskId].data[1] = RGB_RED; - for (i = 0; i < 10; i++) - { - spriteId2 = CreateSprite(&gUnknown_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y + 32, 0); - gSprites[spriteId2].data[0] = i * 51; - gSprites[spriteId2].data[1] = -256; - gSprites[spriteId2].invisible = TRUE; - if (i > 4) - gSprites[spriteId2].data[6] = 21; - } - } - else - { - gTasks[taskId].data[1] = RGB_BLUE; - for (i = 0; i < 10; i++) - { - spriteId2 = CreateSprite(&gUnknown_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y - 32, 0); - gSprites[spriteId2].data[0] = i * 51; - gSprites[spriteId2].data[1] = 256; - gSprites[spriteId2].invisible = TRUE; - if (i > 4) - gSprites[spriteId2].data[6] = 21; - } - } - gSprites[spriteId2].data[7] = 1; - return taskId; -} - -static void sub_80A9DB4(u8 taskId) -{ - if (gTasks[taskId].data[2] == 2) - { - gTasks[taskId].data[2] = 0; - BlendPalette(0x100 + gTasks[taskId].data[0] * 16, 16, gTasks[taskId].data[4], gTasks[taskId].data[1]); - if (gTasks[taskId].data[5] == 0) - { - gTasks[taskId].data[4]++; - if (gTasks[taskId].data[4] > 8) - gTasks[taskId].data[5] ^= 1; - } - else - { - u16 var = gTasks[taskId].data[4]; - - gTasks[taskId].data[4]--; - if (gTasks[taskId].data[4] < 0) - { - gTasks[taskId].data[4] = var; - gTasks[taskId].data[5] ^= 1; - gTasks[taskId].data[3]++; - if (gTasks[taskId].data[3] == 2) - DestroyTask(taskId); - } - } - } - else - { - gTasks[taskId].data[2]++; - } -} - -static void sub_80A9E44(struct Sprite *sprite) -{ - if (sprite->data[6] == 0) - { - sprite->invisible = FALSE; - sprite->callback = sub_80A9E78; - sub_80A9E78(sprite); - } - else - { - sprite->data[6]--; - } -} - -static void sub_80A9E78(struct Sprite *sprite) -{ - sprite->pos2.x = Cos(sprite->data[0], 32); - sprite->pos2.y = Sin(sprite->data[0], 8); - if (sprite->data[0] < 128) - sprite->subpriority = 29; - else - sprite->subpriority = 31; - sprite->data[0] = (sprite->data[0] + 8) & 0xFF; - sprite->data[5] += sprite->data[1]; - sprite->pos2.y += sprite->data[5] >> 8; - sprite->data[2]++; - if (sprite->data[2] == 52) - { - if (sprite->data[7]) - DestroySpriteAndFreeResources(sprite); - else - DestroySprite(sprite); - } -} - -void sub_80A9EF4(u8 taskId) -{ - s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - 32; - s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) - 36; - u8 spriteId; - - if (IsContest()) - x -= 6; - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); - spriteId = CreateSprite(&gUnknown_0853EF48, x, y, 4); - if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == 0xFFFF) - gSprites[spriteId].invisible = TRUE; - SetSubspriteTables(&gSprites[spriteId], gUnknown_0853EF40); - gTasks[taskId].data[15] = spriteId; - gTasks[taskId].func = sub_80A9FD0; -} - -static void sub_80A9FD0(u8 taskId) -{ - gTasks[taskId].data[1]++; - if (gTasks[taskId].data[1] == 10) - { - gTasks[taskId].func = sub_80AA020; - gTasks[taskId].data[1] = 0; - } - else - { - u8 var = gTasks[taskId].data[1]; - - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(var, 16 - var)); - } -} - -static void sub_80AA020(u8 taskId) -{ - u8 palIndex = IndexOfSpritePaletteTag(ANIM_TAG_ICE_CUBE); - - if (gTasks[taskId].data[1]++ > 13) - { - gTasks[taskId].data[2]++; - if (gTasks[taskId].data[2] == 3) - { - u16 temp; - - temp = gPlttBufferFaded[0x100 + palIndex * 16 + 13]; - gPlttBufferFaded[0x100 + palIndex * 16 + 13] = gPlttBufferFaded[0x100 + palIndex * 16 + 14]; - gPlttBufferFaded[0x100 + palIndex * 16 + 14] = gPlttBufferFaded[0x100 + palIndex * 16 + 15]; - gPlttBufferFaded[0x100 + palIndex * 16 + 15] = temp; - - gTasks[taskId].data[2] = 0; - gTasks[taskId].data[3]++; - if (gTasks[taskId].data[3] == 3) - { - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[4]++; - if (gTasks[taskId].data[4] == 2) - { - gTasks[taskId].data[1] = 9; - gTasks[taskId].func = sub_80AA0D0; - } - } - } - } -} - -static void sub_80AA0D0(u8 taskId) -{ - gTasks[taskId].data[1]--; - if (gTasks[taskId].data[1] == -1) - { - gTasks[taskId].func = sub_80AA124; - gTasks[taskId].data[1] = 0; - } - else - { - u8 var = gTasks[taskId].data[1]; - - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(var, 16 - var)); - } -} - -static void sub_80AA124(u8 taskId) -{ - gTasks[taskId].data[1]++; - if (gTasks[taskId].data[1] == 37) - { - u8 spriteId = gTasks[taskId].data[15]; - - FreeSpriteOamMatrix(&gSprites[spriteId]); - DestroySprite(&gSprites[spriteId]); - } - else if (gTasks[taskId].data[1] == 39) - { - SetGpuReg(REG_OFFSET_BLDCNT, 0); - SetGpuReg(REG_OFFSET_BLDALPHA, 0); - DestroyAnimVisualTask(taskId); - } -} - -#define CASE(by, stat) case (STAT_ANIM_##by + stat - 1) - -void AnimTask_StatsChange(u8 taskId) -{ - bool16 goesDown = FALSE; - s16 animStatId = 0; - bool16 sharply = FALSE; - - switch (gBattleSpritesDataPtr->animationData->animArg) - { - CASE(PLUS1, STAT_ATK): goesDown = FALSE; animStatId = 0; break; - CASE(PLUS1, STAT_DEF): goesDown = FALSE; animStatId = 1; break; - CASE(PLUS1, STAT_SPEED): goesDown = FALSE; animStatId = 3; break; - CASE(PLUS1, STAT_SPATK): goesDown = FALSE; animStatId = 5; break; - CASE(PLUS1, STAT_SPDEF): goesDown = FALSE; animStatId = 6; break; - CASE(PLUS1, STAT_ACC): goesDown = FALSE; animStatId = 2; break; - CASE(PLUS1, STAT_EVASION): goesDown = FALSE; animStatId = 4; break; - - CASE(MINUS1, STAT_ATK): goesDown = TRUE; animStatId = 0; break; - CASE(MINUS1, STAT_DEF): goesDown = TRUE; animStatId = 1; break; - CASE(MINUS1, STAT_SPEED): goesDown = TRUE; animStatId = 3; break; - CASE(MINUS1, STAT_SPATK): goesDown = TRUE; animStatId = 5; break; - CASE(MINUS1, STAT_SPDEF): goesDown = TRUE; animStatId = 6; break; - CASE(MINUS1, STAT_ACC): goesDown = TRUE; animStatId = 2; break; - CASE(MINUS1, STAT_EVASION): goesDown = TRUE; animStatId = 4; break; - - CASE(PLUS2, STAT_ATK): goesDown = FALSE; animStatId = 0; sharply = TRUE; break; - CASE(PLUS2, STAT_DEF): goesDown = FALSE; animStatId = 1; sharply = TRUE; break; - CASE(PLUS2, STAT_SPEED): goesDown = FALSE; animStatId = 3; sharply = TRUE; break; - CASE(PLUS2, STAT_SPATK): goesDown = FALSE; animStatId = 5; sharply = TRUE; break; - CASE(PLUS2, STAT_SPDEF): goesDown = FALSE; animStatId = 6; sharply = TRUE; break; - CASE(PLUS2, STAT_ACC): goesDown = FALSE; animStatId = 2; sharply = TRUE; break; - CASE(PLUS2, STAT_EVASION): goesDown = FALSE; animStatId = 4; sharply = TRUE; break; - - CASE(MINUS2, STAT_ATK): goesDown = TRUE; animStatId = 0; sharply = TRUE; break; - CASE(MINUS2, STAT_DEF): goesDown = TRUE; animStatId = 1; sharply = TRUE; break; - CASE(MINUS2, STAT_SPEED): goesDown = TRUE; animStatId = 3; sharply = TRUE; break; - CASE(MINUS2, STAT_SPATK): goesDown = TRUE; animStatId = 5; sharply = TRUE; break; - CASE(MINUS2, STAT_SPDEF): goesDown = TRUE; animStatId = 6; sharply = TRUE; break; - CASE(MINUS2, STAT_ACC): goesDown = TRUE; animStatId = 2; sharply = TRUE; break; - CASE(MINUS2, STAT_EVASION): goesDown = TRUE; animStatId = 4; sharply = TRUE; break; - - case STAT_ANIM_MULTIPLE_PLUS1: goesDown = FALSE; animStatId = 0xFF; sharply = FALSE; break; - case STAT_ANIM_MULTIPLE_PLUS2: goesDown = FALSE; animStatId = 0xFF; sharply = TRUE; break; - case STAT_ANIM_MULTIPLE_MINUS1: goesDown = TRUE; animStatId = 0xFF; sharply = FALSE; break; - case STAT_ANIM_MULTIPLE_MINUS2: goesDown = TRUE; animStatId = 0xFF; sharply = TRUE; break; - - default: - DestroyAnimVisualTask(taskId); - return; - } - - gBattleAnimArgs[0] = goesDown; - gBattleAnimArgs[1] = animStatId; - gBattleAnimArgs[2] = 0; - gBattleAnimArgs[3] = 0; - gBattleAnimArgs[4] = sharply; - gTasks[taskId].func = sub_8116EB4; - sub_8116EB4(taskId); -} - -#undef CASE - -void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId) -{ - u8 taskId; - - gBattleAnimAttacker = battlerId; - gBattleAnimTarget = battlerId; - LaunchBattleAnimation(gBattleAnims_StatusConditions, statusAnimId, 0); - taskId = CreateTask(Task_DoStatusAnimation, 10); - gTasks[taskId].data[0] = battlerId; -} - -static void Task_DoStatusAnimation(u8 taskId) -{ - gAnimScriptCallback(); - if (!gAnimScriptActive) - { - gBattleSpritesDataPtr->healthBoxesData[gTasks[taskId].data[0]].statusAnimActive = FALSE; - DestroyTask(taskId); - } -} diff --git a/src/battle_anim_80D51AC.c b/src/battle_anim_80D51AC.c deleted file mode 100644 index 250a0459f..000000000 --- a/src/battle_anim_80D51AC.c +++ /dev/null @@ -1,1059 +0,0 @@ -#include "global.h" -#include "battle.h" -#include "battle_anim.h" -#include "sprite.h" -#include "task.h" -#include "trig.h" - -// This file's functions. -void AnimTask_ShakeMonStep(u8 taskId); -void AnimTask_ShakeMon2Step(u8 taskId); -void AnimTask_ShakeMonInPlaceStep(u8 taskId); -void AnimTask_ShakeAndSinkMonStep(u8 taskId); -void sub_80D57B8(u8 taskId); -static void DoHorizontalLunge(struct Sprite *sprite); -static void ReverseHorizontalLungeDirection(struct Sprite *sprite); -static void DoVerticalDip(struct Sprite *sprite); -static void ReverseVerticalDipDirection(struct Sprite* sprite); -static void SlideMonToOriginalPos(struct Sprite *sprite); -static void SlideMonToOriginalPosStep(struct Sprite *sprite); -static void SlideMonToOffset(struct Sprite *sprite); -static void sub_80D5B48(struct Sprite *sprite); -static void sub_80D5C20(struct Sprite *sprite); -void AnimTask_WindUpLungePart1(u8 taskId); -void AnimTask_WindUpLungePart2(u8 taskId); -void AnimTask_SwayMonStep(u8 taskId); -void AnimTask_ScaleMonAndRestoreStep(u8 taskId); -void sub_80D6308(u8 taskId); -void sub_80D646C(u8 taskId); -void sub_80A8B3C(u8 taskId); - -const struct SpriteTemplate gHorizontalLungeSpriteTemplate = -{ - .tileTag = 0, - .paletteTag = 0, - .oam = &gDummyOamData, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = DoHorizontalLunge, -}; - -const struct SpriteTemplate gVerticalDipSpriteTemplate = -{ - .tileTag = 0, - .paletteTag = 0, - .oam = &gDummyOamData, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = DoVerticalDip, -}; - -const struct SpriteTemplate gSlideMonToOriginalPosSpriteTemplate = -{ - .tileTag = 0, - .paletteTag = 0, - .oam = &gDummyOamData, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SlideMonToOriginalPos, -}; - -const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate = -{ - .tileTag = 0, - .paletteTag = 0, - .oam = &gDummyOamData, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SlideMonToOffset, -}; - -const struct SpriteTemplate gUnknown_0857FE88 = -{ - .tileTag = 0, - .paletteTag = 0, - .oam = &gDummyOamData, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80D5B48, -}; - -// Task to facilitate simple shaking of a pokemon's picture in battle. -// The shaking alternates between the original position and the target position. -// arg 0: anim battler -// arg 1: x pixel offset -// arg 2: y pixel offset -// arg 3: num times to shake -// arg 4: frame delay -void AnimTask_ShakeMon(u8 taskId) -{ - u8 spriteId; - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xff) - { - DestroyAnimVisualTask(taskId); - return; - } - gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; - gSprites[spriteId].pos2.y = gBattleAnimArgs[2]; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[1] = gBattleAnimArgs[3]; - gTasks[taskId].data[2] = gBattleAnimArgs[4]; - gTasks[taskId].data[3] = gBattleAnimArgs[4]; - gTasks[taskId].data[4] = gBattleAnimArgs[1]; - gTasks[taskId].data[5] = gBattleAnimArgs[2]; - gTasks[taskId].func = AnimTask_ShakeMonStep; - AnimTask_ShakeMonStep(taskId); -} - -void AnimTask_ShakeMonStep(u8 taskId) -{ - if (gTasks[taskId].data[3] == 0) - { - if (gSprites[gTasks[taskId].data[0]].pos2.x == 0) - { - gSprites[gTasks[taskId].data[0]].pos2.x = gTasks[taskId].data[4]; - } - else - { - gSprites[gTasks[taskId].data[0]].pos2.x = 0; - } - if (gSprites[gTasks[taskId].data[0]].pos2.y == 0) - { - gSprites[gTasks[taskId].data[0]].pos2.y = gTasks[taskId].data[5]; - } - else - { - gSprites[gTasks[taskId].data[0]].pos2.y = 0; - } - gTasks[taskId].data[3] = gTasks[taskId].data[2]; - if (--gTasks[taskId].data[1] == 0) - { - gSprites[gTasks[taskId].data[0]].pos2.x = 0; - gSprites[gTasks[taskId].data[0]].pos2.y = 0; - DestroyAnimVisualTask(taskId); - return; - } - } - else - { - gTasks[taskId].data[3]--; - } -} - -// Task to facilitate simple shaking of a pokemon's picture in battle. -// The shaking alternates between the positive and negative versions of the specified pixel offsets. -// arg 0: anim battler -// arg 1: x pixel offset -// arg 2: y pixel offset -// arg 3: num times to shake -// arg 4: frame delay -void AnimTask_ShakeMon2(u8 taskId) -{ - u8 spriteId; - bool8 destroy = FALSE; - u8 battlerId; - - if (gBattleAnimArgs[0] < 4) - { - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xff) - { - DestroyAnimVisualTask(taskId); - return; - } - } - else if (gBattleAnimArgs[0] != 8) - { - switch (gBattleAnimArgs[0]) - { - case 4: - battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - break; - case 5: - battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); - break; - case 6: - battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - break; - case 7: - default: - battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); - break; - } - - if (IsBattlerSpriteVisible(battlerId) == FALSE) - destroy = TRUE; - - spriteId = gBattlerSpriteIds[battlerId]; - } - else - { - spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; - } - - if (destroy) - { - DestroyAnimVisualTask(taskId); - return; - } - - gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; - gSprites[spriteId].pos2.y = gBattleAnimArgs[2]; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[1] = gBattleAnimArgs[3]; - gTasks[taskId].data[2] = gBattleAnimArgs[4]; - gTasks[taskId].data[3] = gBattleAnimArgs[4]; - gTasks[taskId].data[4] = gBattleAnimArgs[1]; - gTasks[taskId].data[5] = gBattleAnimArgs[2]; - gTasks[taskId].func = AnimTask_ShakeMon2Step; - gTasks[taskId].func(taskId); -} - -void AnimTask_ShakeMon2Step(u8 taskId) -{ - if (gTasks[taskId].data[3] == 0) - { - if (gSprites[gTasks[taskId].data[0]].pos2.x == gTasks[taskId].data[4]) - gSprites[gTasks[taskId].data[0]].pos2.x = -gTasks[taskId].data[4]; - else - gSprites[gTasks[taskId].data[0]].pos2.x = gTasks[taskId].data[4]; - - if (gSprites[gTasks[taskId].data[0]].pos2.y == gTasks[taskId].data[5]) - gSprites[gTasks[taskId].data[0]].pos2.y = -gTasks[taskId].data[5]; - else - gSprites[gTasks[taskId].data[0]].pos2.y = gTasks[taskId].data[5]; - - gTasks[taskId].data[3] = gTasks[taskId].data[2]; - if (--gTasks[taskId].data[1] == 0) - { - gSprites[gTasks[taskId].data[0]].pos2.x = 0; - gSprites[gTasks[taskId].data[0]].pos2.y = 0; - DestroyAnimVisualTask(taskId); - return; - } - } - else - { - gTasks[taskId].data[3]--; - } -} - -// Task to facilitate simple shaking of a pokemon's picture in battle. -// The shaking alternates between the positive and negative versions of the specified pixel offsets -// with respect to the current location of the mon's picture. -// arg 0: battler -// arg 1: x offset -// arg 2: y offset -// arg 3: num shakes -// arg 4: delay -void AnimTask_ShakeMonInPlace(u8 taskId) -{ - u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xff) - { - DestroyAnimVisualTask(taskId); - return; - } - - gSprites[spriteId].pos2.x += gBattleAnimArgs[1]; - gSprites[spriteId].pos2.y += gBattleAnimArgs[2]; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = gBattleAnimArgs[3]; - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[1] * 2; - gTasks[taskId].data[6] = gBattleAnimArgs[2] * 2; - gTasks[taskId].func = AnimTask_ShakeMonInPlaceStep; - gTasks[taskId].func(taskId); -} - -void AnimTask_ShakeMonInPlaceStep(u8 taskId) -{ - if (gTasks[taskId].data[3] == 0) - { - if (gTasks[taskId].data[1] & 1) - { - gSprites[gTasks[taskId].data[0]].pos2.x += gTasks[taskId].data[5]; - gSprites[gTasks[taskId].data[0]].pos2.y += gTasks[taskId].data[6]; - } - else - { - gSprites[gTasks[taskId].data[0]].pos2.x -= gTasks[taskId].data[5]; - gSprites[gTasks[taskId].data[0]].pos2.y -= gTasks[taskId].data[6]; - } - gTasks[taskId].data[3] = gTasks[taskId].data[4]; - if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2]) - { - if (gTasks[taskId].data[1] & 1) - { - gSprites[gTasks[taskId].data[0]].pos2.x += gTasks[taskId].data[5] / 2; - gSprites[gTasks[taskId].data[0]].pos2.y += gTasks[taskId].data[6] / 2; - } - else - { - gSprites[gTasks[taskId].data[0]].pos2.x -= gTasks[taskId].data[5] / 2; - gSprites[gTasks[taskId].data[0]].pos2.y -= gTasks[taskId].data[6] / 2; - } - DestroyAnimVisualTask(taskId); - return; - } - } - else - { - gTasks[taskId].data[3]--; - } -} - -// Shakes a mon bg horizontally and moves it downward linearly. -// arg 0: battler -// arg 1: x offset -// arg 2: frame delay between each movement -// arg 3: downward speed (subpixel) -// arg 4: duration -void AnimTask_ShakeAndSinkMon(u8 taskId) -{ - u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].func = AnimTask_ShakeAndSinkMonStep; - gTasks[taskId].func(taskId); -} - -void AnimTask_ShakeAndSinkMonStep(u8 taskId) -{ - s16 x; - u8 spriteId; - spriteId = gTasks[taskId].data[0]; - x = gTasks[taskId].data[1]; - if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++) - { - gTasks[taskId].data[8] = 0; - if (gSprites[spriteId].pos2.x == x) - x = -x; - - gSprites[spriteId].pos2.x += x; - } - - gTasks[taskId].data[1] = x; - gTasks[taskId].data[9] += gTasks[taskId].data[3]; - gSprites[spriteId].pos2.y = gTasks[taskId].data[9] >> 8; - if (--gTasks[taskId].data[4] == 0) - { - DestroyAnimVisualTask(taskId); - return; - } -} - -// Moves a mon bg picture along an elliptical path that begins -// and ends at the mon's origin location. -// arg 0: battler -// arg 1: ellipse width -// arg 2: ellipse height -// arg 3: num loops -// arg 4: speed (valid values are 0-5) -void AnimTask_TranslateMonElliptical(u8 taskId) -{ - u8 i; - u8 spriteId; - u8 wavePeriod; - - wavePeriod = 1; - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (gBattleAnimArgs[4] > 5) - gBattleAnimArgs[4] = 5; - - for (i = 0; i < gBattleAnimArgs[4]; i++) - { - wavePeriod <<= 1; - } - - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = wavePeriod; - gTasks[taskId].func = sub_80D57B8; - gTasks[taskId].func(taskId); -} - -void sub_80D57B8(u8 taskId) -{ - u8 spriteId = gTasks[taskId].data[0]; - gSprites[spriteId].pos2.x = Sin(gTasks[taskId].data[5], gTasks[taskId].data[1]); - gSprites[spriteId].pos2.y = -Cos(gTasks[taskId].data[5], gTasks[taskId].data[2]); - gSprites[spriteId].pos2.y += gTasks[taskId].data[2]; - gTasks[taskId].data[5] += gTasks[taskId].data[4]; - gTasks[taskId].data[5] &= 0xff; - - if (gTasks[taskId].data[5] == 0) - gTasks[taskId].data[3]--; - - if (gTasks[taskId].data[3] == 0) - { - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = 0; - DestroyAnimVisualTask(taskId); - return; - } -} - -// Moves a mon bg picture along an elliptical path that begins -// and ends at the mon's origin location. Reverses the direction -// of the path if it's not on the player's side of the battle. -// arg 0: battler -// arg 1: ellipse width -// arg 2: ellipse height -// arg 3: num loops -// arg 4: speed (valid values are 0-5) -void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId) -{ - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - - AnimTask_TranslateMonElliptical(taskId); -} - -// Performs a simple horizontal lunge, where the mon moves -// horizontally, and then moves back in the opposite direction. -// arg 0: duration of single lunge direction -// arg 1: x pixel delta that is applied each frame -static void DoHorizontalLunge(struct Sprite *sprite) -{ - sprite->invisible = TRUE; - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - sprite->data[1] = -gBattleAnimArgs[1]; - else - sprite->data[1] = gBattleAnimArgs[1]; - - sprite->data[0] = gBattleAnimArgs[0]; - sprite->data[2] = 0; - sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; - sprite->data[4] = gBattleAnimArgs[0]; - StoreSpriteCallbackInData6(sprite, ReverseHorizontalLungeDirection); - sprite->callback = TranslateMonSpriteLinear; -} - -static void ReverseHorizontalLungeDirection(struct Sprite *sprite) -{ - sprite->data[0] = sprite->data[4]; - sprite->data[1] = -sprite->data[1]; - sprite->callback = TranslateMonSpriteLinear; - StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); -} - -// Performs a simple vertical dipping motion, where moves vertically, and then -// moves back in the opposite direction. -// arg 0: duration of single dip direction -// arg 1: y pixel delta that is applied each frame -// arg 2: battler -static void DoVerticalDip(struct Sprite *sprite) -{ - u8 spriteId; - sprite->invisible = TRUE; - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); - sprite->data[0] = gBattleAnimArgs[0]; - sprite->data[1] = 0; - sprite->data[2] = gBattleAnimArgs[1]; - sprite->data[3] = spriteId; - sprite->data[4] = gBattleAnimArgs[0]; - StoreSpriteCallbackInData6(sprite, ReverseVerticalDipDirection); - sprite->callback = TranslateMonSpriteLinear; -} - -static void ReverseVerticalDipDirection(struct Sprite *sprite) -{ - sprite->data[0] = sprite->data[4]; - sprite->data[2] = -sprite->data[2]; - sprite->callback = TranslateMonSpriteLinear; - StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); -} - -// Linearly slides a mon's bg picture back to its original sprite position. -// The sprite parameter is a dummy sprite used for facilitating the movement with its callback. -// arg 0: 1 = target or 0 = attacker -// arg 1: direction (0 = horizontal and vertical, 1 = horizontal only, 2 = vertical only) -// arg 2: duration -static void SlideMonToOriginalPos(struct Sprite *sprite) -{ - u32 monSpriteId; - if (!gBattleAnimArgs[0]) - monSpriteId = gBattlerSpriteIds[gBattleAnimAttacker]; - else - monSpriteId = gBattlerSpriteIds[gBattleAnimTarget]; - - sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[1] = gSprites[monSpriteId].pos1.x + gSprites[monSpriteId].pos2.x; - sprite->data[2] = gSprites[monSpriteId].pos1.x; - sprite->data[3] = gSprites[monSpriteId].pos1.y + gSprites[monSpriteId].pos2.y; - sprite->data[4] = gSprites[monSpriteId].pos1.y; - InitSpriteDataForLinearTranslation(sprite); - sprite->data[3] = 0; - sprite->data[4] = 0; - sprite->data[5] = gSprites[monSpriteId].pos2.x; - sprite->data[6] = gSprites[monSpriteId].pos2.y; - sprite->invisible = TRUE; - - if (gBattleAnimArgs[1] == 1) - sprite->data[2] = 0; - else if (gBattleAnimArgs[1] == 2) - sprite->data[1] = 0; - - sprite->data[7] = gBattleAnimArgs[1]; - sprite->data[7] |= monSpriteId << 8; - sprite->callback = SlideMonToOriginalPosStep; -} - -static void SlideMonToOriginalPosStep(struct Sprite *sprite) -{ - s8 monSpriteId; - u8 lo; - struct Sprite *monSprite; - - lo = sprite->data[7] & 0xff; - monSpriteId = sprite->data[7] >> 8; - monSprite = &gSprites[monSpriteId]; - if (sprite->data[0] == 0) - { - if (lo < 2) - monSprite->pos2.x = 0; - - if (lo == 2 || lo == 0) - monSprite->pos2.y = 0; - - DestroyAnimSprite(sprite); - } - else - { - sprite->data[0]--; - sprite->data[3] += sprite->data[1]; - sprite->data[4] += sprite->data[2]; - monSprite->pos2.x = (s8)(sprite->data[3] >> 8) + sprite->data[5]; - monSprite->pos2.y = (s8)(sprite->data[4] >> 8) + sprite->data[6]; - } -} - -// Linearly translates a mon to a target offset. The horizontal offset -// is mirrored for the opponent's pokemon, and the vertical offset -// is only mirrored if arg 3 is set to 1. -// arg 0: 0 = attacker, 1 = target -// arg 1: target x pixel offset -// arg 2: target y pixel offset -// arg 3: mirror vertical translation for opposite battle side -// arg 4: duration -static void SlideMonToOffset(struct Sprite *sprite) -{ - u8 battler; - u8 monSpriteId; - if (!gBattleAnimArgs[0]) - battler = gBattleAnimAttacker; - else - battler = gBattleAnimTarget; - - monSpriteId = gBattlerSpriteIds[battler]; - if (GetBattlerSide(battler) != B_SIDE_PLAYER) - { - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - if (gBattleAnimArgs[3] == 1) - { - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - } - } - - sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = gSprites[monSpriteId].pos1.x; - sprite->data[2] = gSprites[monSpriteId].pos1.x + gBattleAnimArgs[1]; - sprite->data[3] = gSprites[monSpriteId].pos1.y; - sprite->data[4] = gSprites[monSpriteId].pos1.y + gBattleAnimArgs[2]; - InitSpriteDataForLinearTranslation(sprite); - sprite->data[3] = 0; - sprite->data[4] = 0; - sprite->data[5] = monSpriteId; - sprite->invisible = TRUE; - StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = TranslateMonSpriteLinearFixedPoint; -} - -static void sub_80D5B48(struct Sprite *sprite) -{ - u8 spriteId; - u8 battlerId; - sprite->invisible = TRUE; - if (!gBattleAnimArgs[0]) - { - battlerId = gBattleAnimAttacker; - } - else - { - battlerId = gBattleAnimTarget; - } - spriteId = gBattlerSpriteIds[battlerId]; - if (GetBattlerSide(battlerId)) - { - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - if (gBattleAnimArgs[3] == 1) - { - gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - } - } - sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x; - sprite->data[2] = sprite->data[1] + gBattleAnimArgs[1]; - sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y; - sprite->data[4] = sprite->data[3] + gBattleAnimArgs[2]; - InitSpriteDataForLinearTranslation(sprite); - sprite->data[3] = gSprites[spriteId].pos2.x << 8; - sprite->data[4] = gSprites[spriteId].pos2.y << 8; - sprite->data[5] = spriteId; - sprite->data[6] = gBattleAnimArgs[5]; - if (!gBattleAnimArgs[5]) - { - StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - } - else - { - StoreSpriteCallbackInData6(sprite, sub_80D5C20); - } - sprite->callback = TranslateMonSpriteLinearFixedPoint; -} - - -static void sub_80D5C20(struct Sprite *sprite) -{ - gSprites[sprite->data[5]].pos2.x = 0; - gSprites[sprite->data[5]].pos2.y = 0; - DestroyAnimSprite(sprite); -} - -// Task to facilitate a two-part translation animation, in which the sprite -// is first translated in an arc to one position. Then, it "lunges" to a target -// x offset. Used in TAKE_DOWN, for example. -// arg 0: anim bank -// arg 1: horizontal speed (subpixel) -// arg 2: wave amplitude -// arg 3: first duration -// arg 4: delay before starting lunge -// arg 5: target x offset for lunge -// arg 6: lunge duration -void AnimTask_WindUpLunge(u8 taskId) -{ - s16 wavePeriod = 0x8000 / gBattleAnimArgs[3]; - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - { - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - gBattleAnimArgs[5] = -gBattleAnimArgs[5]; - } - gTasks[taskId].data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - gTasks[taskId].data[1] = (gBattleAnimArgs[1] << 8) / gBattleAnimArgs[3]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = (gBattleAnimArgs[5] << 8) / gBattleAnimArgs[6]; - gTasks[taskId].data[6] = gBattleAnimArgs[6]; - gTasks[taskId].data[7] = wavePeriod; - gTasks[taskId].func = AnimTask_WindUpLungePart1; -} - -void AnimTask_WindUpLungePart1(u8 taskId) -{ - u8 spriteId; - spriteId = gTasks[taskId].data[0]; - gTasks[taskId].data[11] += gTasks[taskId].data[1]; - gSprites[spriteId].pos2.x = gTasks[taskId].data[11] >> 8; - gSprites[spriteId].pos2.y = Sin((u8)(gTasks[taskId].data[10] >> 8), gTasks[taskId].data[2]); - gTasks[taskId].data[10] += gTasks[taskId].data[7]; - if (--gTasks[taskId].data[3] == 0) - { - gTasks[taskId].func = AnimTask_WindUpLungePart2; - } -} - -void AnimTask_WindUpLungePart2(u8 taskId) -{ - u8 spriteId; - if (gTasks[taskId].data[4] > 0) - { - gTasks[taskId].data[4]--; - } - else - { - spriteId = gTasks[taskId].data[0]; - gTasks[taskId].data[12] += gTasks[taskId].data[5]; - gSprites[spriteId].pos2.x = (gTasks[taskId].data[12] >> 8) + (gTasks[taskId].data[11] >> 8); - if (--gTasks[taskId].data[6] == 0) - { - DestroyAnimVisualTask(taskId); - return; - } - } -} - -void sub_80D5DB0(u8 taskId) -{ - u8 spriteId; - switch (gBattleAnimArgs[0]) - { - case 0: - case 1: - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - break; - case 2: - if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) - { - DestroyAnimVisualTask(taskId); - return; - } - spriteId = gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]; - break; - case 3: - if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) - { - DestroyAnimVisualTask(taskId); - return; - } - spriteId = gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)]; - break; - default: - DestroyAnimVisualTask(taskId); - return; - } - gTasks[taskId].data[0] = spriteId; - if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER) - { - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - } - else - { - gTasks[taskId].data[1] = -gBattleAnimArgs[1]; - } - gTasks[taskId].func = sub_80A8B3C; -} - -void sub_80A8B3C(u8 taskId) -{ - u8 spriteId = gTasks[taskId].data[0]; - gSprites[spriteId].pos2.x += gTasks[taskId].data[1]; - if (gSprites[spriteId].pos2.x + gSprites[spriteId].pos1.x + 0x20 > 0x130u) - { - DestroyAnimVisualTask(taskId); - return; - } -} - -// Task that facilitates translating the mon bg picture back and forth -// in a swaying motion (uses Sine wave). It can sway either horizontally -// or vertically, but not both. -// arg 0: direction (0 = horizontal, 1 = vertical) -// arg 1: wave amplitude -// arg 2: wave period -// arg 3: num sways -// arg 4: which mon (0 = attacker, 1`= target) -void AnimTask_SwayMon(u8 taskId) -{ - u8 spriteId; - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[4]); - gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = spriteId; - - if (gBattleAnimArgs[4] == 0) - gTasks[taskId].data[5] = gBattleAnimAttacker; - else - gTasks[taskId].data[5] = gBattleAnimTarget; - - gTasks[taskId].data[12] = 1; - gTasks[taskId].func = AnimTask_SwayMonStep; -} - -void AnimTask_SwayMonStep(u8 taskId) -{ - s16 sineValue; - u8 spriteId; - int waveIndex; - u16 sineIndex; - - spriteId = gTasks[taskId].data[4]; - sineIndex = gTasks[taskId].data[10] + gTasks[taskId].data[2]; - gTasks[taskId].data[10] = sineIndex; - waveIndex = sineIndex >> 8; - sineValue = Sin(waveIndex, gTasks[taskId].data[1]); - - if (gTasks[taskId].data[0] == 0) - { - gSprites[spriteId].pos2.x = sineValue; - } - else - { - if (GetBattlerSide(gTasks[taskId].data[5]) == B_SIDE_PLAYER) - { - gSprites[spriteId].pos2.y = (sineValue >= 0) ? sineValue : -sineValue; - } - else - { - gSprites[spriteId].pos2.y = (sineValue >= 0) ? -sineValue : sineValue; - } - } - - if (((waveIndex >= 0x80u) && (gTasks[taskId].data[11] == 0) && (gTasks[taskId].data[12] == 1)) - || ((waveIndex < 0x7fu) && (gTasks[taskId].data[11] == 1) && (gTasks[taskId].data[12] == 0))) - { - gTasks[taskId].data[11] ^= 1; - gTasks[taskId].data[12] ^= 1; - if (--gTasks[taskId].data[3] == 0) - { - gSprites[spriteId].pos2.x = 0; - gSprites[spriteId].pos2.y = 0; - DestroyAnimVisualTask(taskId); - return; - } - } -} - -// Scales a mon's sprite, and then scales back to its original dimensions. -// arg 0: x scale delta -// arg 1: y scale delta -// arg 2: duration -// arg 3: anim bank -// arg 4: sprite object mode -void AnimTask_ScaleMonAndRestore(u8 taskId) -{ - u8 spriteId; - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]); - PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]); - gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[2]; - gTasks[taskId].data[4] = spriteId; - gTasks[taskId].data[10] = 0x100; - gTasks[taskId].data[11] = 0x100; - gTasks[taskId].func = AnimTask_ScaleMonAndRestoreStep; -} - -void AnimTask_ScaleMonAndRestoreStep(u8 taskId) -{ - u8 spriteId; - gTasks[taskId].data[10] += gTasks[taskId].data[0]; - gTasks[taskId].data[11] += gTasks[taskId].data[1]; - spriteId = gTasks[taskId].data[4]; - SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[11], 0); - if (--gTasks[taskId].data[2] == 0) - { - if (gTasks[taskId].data[3] > 0) - { - gTasks[taskId].data[0] = -gTasks[taskId].data[0]; - gTasks[taskId].data[1] = -gTasks[taskId].data[1]; - gTasks[taskId].data[2] = gTasks[taskId].data[3]; - gTasks[taskId].data[3] = 0; - } - else - { - ResetSpriteRotScale(spriteId); - DestroyAnimVisualTask(taskId); - return; - } - } -} - -void sub_80D6134(u8 taskId) -{ - u8 spriteId; - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); - PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = gBattleAnimArgs[0]; - if (gBattleAnimArgs[3] != 1) - { - gTasks[taskId].data[3] = 0; - } - else - { - gTasks[taskId].data[3] = gBattleAnimArgs[0] * gBattleAnimArgs[1]; - } - gTasks[taskId].data[4] = gBattleAnimArgs[1]; - gTasks[taskId].data[5] = spriteId; - gTasks[taskId].data[6] = gBattleAnimArgs[3]; - if (IsContest()) - { - gTasks[taskId].data[7] = 1; - } - else - { - if (gBattleAnimArgs[2] == 0) - { - gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimAttacker); - } - else - { - gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimTarget); - } - } - if (gTasks[taskId].data[7]) - { - if (!IsContest()) - { - gTasks[taskId].data[3] *= -1; - gTasks[taskId].data[4] *= -1; - } - } - gTasks[taskId].func = sub_80D6308; -} - -void sub_80D622C(u8 taskId) -{ - u8 spriteId; - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); - PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = gBattleAnimArgs[0]; - if (gBattleAnimArgs[2] == 0) - { - if (GetBattlerSide(gBattleAnimAttacker)) - { - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - } - } - else - { - if (GetBattlerSide(gBattleAnimTarget)) - { - gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - } - } - if (gBattleAnimArgs[3] != 1) - { - gTasks[taskId].data[3] = 0; - } - else - { - gTasks[taskId].data[3] = gBattleAnimArgs[0] * gBattleAnimArgs[1]; - } - gTasks[taskId].data[4] = gBattleAnimArgs[1]; - gTasks[taskId].data[5] = spriteId; - gTasks[taskId].data[6] = gBattleAnimArgs[3]; - gTasks[taskId].data[7] = 1; - gTasks[taskId].data[3] *= -1; - gTasks[taskId].data[4] *= -1; - gTasks[taskId].func = sub_80D6308; -} - -void sub_80D6308(u8 taskId) -{ - gTasks[taskId].data[3] += gTasks[taskId].data[4]; - SetSpriteRotScale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]); - if (gTasks[taskId].data[7]) - { - SetBattlerSpriteYOffsetFromRotation(gTasks[taskId].data[5]); - } - if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2]) - { - switch (gTasks[taskId].data[6]) - { - case 1: - ResetSpriteRotScale(gTasks[taskId].data[5]); - case 0: - default: - DestroyAnimVisualTask(taskId); - return; - case 2: - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[4] *= -1; - gTasks[taskId].data[6] = 1; - break; - } - } -} - -void sub_80D6388(u8 taskId) -{ - if (!gBattleAnimArgs[0]) - { - gTasks[taskId].data[15] = gAnimMovePower / 12; - if (gTasks[taskId].data[15] < 1) - { - gTasks[taskId].data[15] = 1; - } - if (gTasks[taskId].data[15] > 16) - { - gTasks[taskId].data[15] = 16; - } - } - else - { - gTasks[taskId].data[15] = gAnimMoveDmg / 12; - if (gTasks[taskId].data[15] < 1) - { - gTasks[taskId].data[15] = 1; - } - if (gTasks[taskId].data[15] > 16) - { - gTasks[taskId].data[15] = 16; - } - } - gTasks[taskId].data[14] = gTasks[taskId].data[15] / 2; - gTasks[taskId].data[13] = gTasks[taskId].data[14] + (gTasks[taskId].data[15] & 1); - gTasks[taskId].data[12] = 0; - gTasks[taskId].data[10] = gBattleAnimArgs[3]; - gTasks[taskId].data[11] = gBattleAnimArgs[4]; - gTasks[taskId].data[7] = GetAnimBattlerSpriteId(1); - gTasks[taskId].data[8] = gSprites[gTasks[taskId].data[7]].pos2.x; - gTasks[taskId].data[9] = gSprites[gTasks[taskId].data[7]].pos2.y; - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].func = sub_80D646C; -} - -void sub_80D646C(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - if (++task->data[0] > task->data[1]) - { - task->data[0] = 0; - task->data[12] = (task->data[12] + 1) & 1; - if (task->data[10]) - { - if (task->data[12]) - { - gSprites[task->data[7]].pos2.x = task->data[8] + task->data[13]; - } - else - { - gSprites[task->data[7]].pos2.x = task->data[8] - task->data[14]; - } - } - if (task->data[11]) - { - if (task->data[12]) - { - gSprites[task->data[7]].pos2.y = task->data[15]; - } - else - { - gSprites[task->data[7]].pos2.y = 0; - } - } - if (!--task->data[2]) - { - gSprites[task->data[7]].pos2.x = 0; - gSprites[task->data[7]].pos2.y = 0; - DestroyAnimVisualTask(taskId); - return; - } - } -} diff --git a/src/battle_anim_8170478.c b/src/battle_anim_8170478.c deleted file mode 100755 index 92874fe09..000000000 --- a/src/battle_anim_8170478.c +++ /dev/null @@ -1,2267 +0,0 @@ -#include "global.h" -#include "battle.h" -#include "battle_anim.h" -#include "battle_controllers.h" -#include "battle_interface.h" -#include "decompress.h" -#include "dma3.h" -#include "gpu_regs.h" -#include "graphics.h" -#include "m4a.h" -#include "main.h" -#include "palette.h" -#include "pokeball.h" -#include "sound.h" -#include "sprite.h" -#include "task.h" -#include "trig.h" -#include "util.h" -#include "constants/rgb.h" -#include "constants/items.h" -#include "constants/songs.h" - -// iwram -int gUnknown_030062DC; -u16 gUnknown_030062E0; -u16 gUnknown_030062E4; - -static void sub_8170660(u8); -static void sub_8170A38(u8); -static void sub_8170EF0(u8); -static void sub_8171104(struct Sprite *); -static void sub_8171030(u8); -static void sub_81710A8(u8); -static void sub_8171134(struct Sprite *); -static void sub_8171CAC(struct Sprite *); -static void sub_81711E8(struct Sprite *); -static void sub_8171240(struct Sprite *); -static void sub_817138C(struct Sprite *); -static void sub_81713D0(struct Sprite *); -static void sub_81717B4(struct Sprite *); -static void sub_81714D4(struct Sprite *); -static void sub_8171520(struct Sprite *); -static void sub_81717D8(struct Sprite *); -static void sub_8171AE4(struct Sprite *); -static void sub_81717F8(struct Sprite *); -static void sub_81719EC(struct Sprite *); -static void sub_81718D8(struct Sprite *); -static void sub_81719C0(struct Sprite *); -static void sub_8171D60(u8); -static void sub_8171AAC(struct Sprite *); -static void sub_8171BAC(struct Sprite *); -static void sub_8171CE8(struct Sprite *); -static void PokeBallOpenParticleAnimation_Step1(struct Sprite *); -static void PokeBallOpenParticleAnimation_Step2(struct Sprite *); -static void DestroyBallOpenAnimationParticle(struct Sprite *); -static void FanOutBallOpenParticles_Step1(struct Sprite *); -static void RepeatBallOpenParticleAnimation_Step1(struct Sprite *); -static void PremierBallOpenParticleAnimation_Step1(struct Sprite *); -static void sub_8172AB0(u8); -static void sub_8172B40(u8); -static void sub_8172B90(u8); -static void sub_8172FEC(u8); -static void sub_81731FC(struct Sprite *); -static void sub_8173250(struct Sprite *); -static void sub_81731B0(u8); -static void sub_817339C(struct Sprite *); -static void sub_81733D4(struct Sprite *); -static void sub_8173400(struct Sprite *); -static void PokeBallOpenParticleAnimation(u8); -static void GreatBallOpenParticleAnimation(u8); -static void SafariBallOpenParticleAnimation(u8); -static void UltraBallOpenParticleAnimation(u8); -static void MasterBallOpenParticleAnimation(u8); -static void DiveBallOpenParticleAnimation(u8); -static void RepeatBallOpenParticleAnimation(u8); -static void TimerBallOpenParticleAnimation(u8); -static void PremierBallOpenParticleAnimation(u8); -static void sub_817330C(struct Sprite *); - -struct BallCaptureSuccessStarData -{ - s8 xOffset; - s8 yOffset; - s8 unk2; -}; - -static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] = -{ - { - .xOffset = 10, - .yOffset = 2, - .unk2 = -3, - }, - { - .xOffset = 15, - .yOffset = 0, - .unk2 = -4, - }, - { - .xOffset = -10, - .yOffset = 2, - .unk2 = -4, - }, -}; - -const struct CompressedSpriteSheet gBallOpenParticleSpritesheets[] = -{ - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EC}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6ED}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EE}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EF}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F0}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F1}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F2}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F3}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F4}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F5}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F6}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F7}, -}; - -const struct CompressedSpritePalette gBallOpenParticlePalettes[] = -{ - {gBattleAnimSpritePalette_136, 0xD6EC}, - {gBattleAnimSpritePalette_136, 0xD6ED}, - {gBattleAnimSpritePalette_136, 0xD6EE}, - {gBattleAnimSpritePalette_136, 0xD6EF}, - {gBattleAnimSpritePalette_136, 0xD6F0}, - {gBattleAnimSpritePalette_136, 0xD6F1}, - {gBattleAnimSpritePalette_136, 0xD6F2}, - {gBattleAnimSpritePalette_136, 0xD6F3}, - {gBattleAnimSpritePalette_136, 0xD6F4}, - {gBattleAnimSpritePalette_136, 0xD6F5}, - {gBattleAnimSpritePalette_136, 0xD6F6}, - {gBattleAnimSpritePalette_136, 0xD6F7}, -}; - -const union AnimCmd gUnknown_085E5154[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(2, 1), - ANIMCMD_FRAME(0, 1, .hFlip = TRUE), - ANIMCMD_FRAME(2, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_JUMP(0), -}; - -const union AnimCmd gUnknown_085E5170[] = -{ - ANIMCMD_FRAME(3, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085E5178[] = -{ - ANIMCMD_FRAME(4, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085E5180[] = -{ - ANIMCMD_FRAME(5, 1), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_085E5188[] = -{ - ANIMCMD_FRAME(6, 4), - ANIMCMD_FRAME(7, 4), - ANIMCMD_JUMP(0), -}; - -const union AnimCmd gUnknown_085E5194[] = -{ - ANIMCMD_FRAME(7, 4), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_085E519C[] = -{ - gUnknown_085E5154, - gUnknown_085E5170, - gUnknown_085E5178, - gUnknown_085E5180, - gUnknown_085E5188, - gUnknown_085E5194, -}; - -const u8 gBallOpenParticleAnimNums[] = -{ - 0, - 0, - 0, - 5, - 1, - 2, - 2, - 3, - 5, - 5, - 4, - 4, -}; - -const TaskFunc gBallOpenParticleAnimationFuncs[] = -{ - PokeBallOpenParticleAnimation, - GreatBallOpenParticleAnimation, - SafariBallOpenParticleAnimation, - UltraBallOpenParticleAnimation, - MasterBallOpenParticleAnimation, - SafariBallOpenParticleAnimation, - DiveBallOpenParticleAnimation, - UltraBallOpenParticleAnimation, - RepeatBallOpenParticleAnimation, - TimerBallOpenParticleAnimation, - GreatBallOpenParticleAnimation, - PremierBallOpenParticleAnimation, -}; - -const struct SpriteTemplate gUnknown_085E51F0[] = -{ - { - .tileTag = 55020, - .paletteTag = 55020, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55021, - .paletteTag = 55021, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55022, - .paletteTag = 55022, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55023, - .paletteTag = 55023, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55024, - .paletteTag = 55024, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55025, - .paletteTag = 55025, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55026, - .paletteTag = 55026, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55027, - .paletteTag = 55027, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55028, - .paletteTag = 55028, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55029, - .paletteTag = 55029, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55030, - .paletteTag = 55030, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, - { - .tileTag = 55031, - .paletteTag = 55031, - .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }, -}; - -const u16 gUnknown_085E5310[] = -{ - RGB(31, 22, 30), - RGB(16, 23, 30), - RGB(23, 30, 20), - RGB(31, 31, 15), - RGB(23, 20, 28), - RGB(21, 31, 25), - RGB(12, 25, 30), - RGB(30, 27, 10), - RGB(31, 24, 16), - RGB(29, 30, 30), - RGB(31, 17, 10), - RGB(31, 9, 10), - RGB(0, 0, 0), - RGB(1, 16, 0), - RGB(3, 0, 1), - RGB(1, 8, 0), - RGB(0, 8, 0), - RGB(3, 8, 1), - RGB(6, 8, 1), - RGB(4, 0, 0), -}; - -const struct SpriteTemplate gBattleAnimSpriteTemplate_85E5338 = -{ - .tileTag = ANIM_TAG_UNUSED_RED_BRICK, - .paletteTag = ANIM_TAG_UNUSED_RED_BRICK, - .oam = &gUnknown_0852490C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_817330C, -}; - -const union AnimCmd gUnknown_085E5350[] = -{ - ANIMCMD_FRAME(64, 1), - ANIMCMD_END, -}; - -const union AnimCmd *const gUnknown_085E5358[] = { - gUnknown_085E5350, -}; - -const struct SpriteTemplate gBattleAnimSpriteTemplate_085E535C = -{ - .tileTag = ANIM_TAG_ROCKS, - .paletteTag = ANIM_TAG_ROCKS, - .oam = &gUnknown_08524914, - .anims = gUnknown_085E5358, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_817330C, -}; - -extern const struct SpriteTemplate gUnknown_085CE388; -extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate; - -void unref_sub_8170478(u8 taskId) -{ - struct BattleAnimBgData unknownStruct; - u8 healthBoxSpriteId; - u8 battler; - u8 spriteId1, spriteId2, spriteId3, spriteId4; - - battler = gBattleAnimAttacker; - gBattle_WIN0H = 0; - gBattle_WIN0V = 0; - SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); - SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR); - SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); - SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 0); - SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 0); - SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 1); - SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); - - healthBoxSpriteId = gHealthboxSpriteIds[battler]; - spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; - spriteId2 = gSprites[healthBoxSpriteId].data[5]; - spriteId3 = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); - spriteId4 = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); - gSprites[healthBoxSpriteId].oam.priority = 1; - gSprites[spriteId1].oam.priority = 1; - gSprites[spriteId2].oam.priority = 1; - gSprites[spriteId3] = gSprites[healthBoxSpriteId]; - gSprites[spriteId4] = gSprites[spriteId1]; - gSprites[spriteId3].oam.objMode = ST_OAM_OBJ_WINDOW; - gSprites[spriteId4].oam.objMode = ST_OAM_OBJ_WINDOW; - gSprites[spriteId3].callback = SpriteCallbackDummy; - gSprites[spriteId4].callback = SpriteCallbackDummy; - - sub_80A6B30(&unknownStruct); - AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_08C2EA9C); - AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C2EA50, unknownStruct.tilesOffset); - LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32); - - gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32; - gBattle_BG1_Y = -gSprites[spriteId3].pos1.y - 32; - gTasks[taskId].data[1] = 640; - gTasks[taskId].data[0] = spriteId3; - gTasks[taskId].data[2] = spriteId4; - gTasks[taskId].func = sub_8170660; -} - -static void sub_8170660(u8 taskId) -{ - u8 spriteId1, spriteId2; - u8 battler; - - battler = gBattleAnimAttacker; - gTasks[taskId].data[13] += gTasks[taskId].data[1]; - gBattle_BG1_Y += (u16)gTasks[taskId].data[13] >> 8; - gTasks[taskId].data[13] &= 0xFF; - - switch (gTasks[taskId].data[15]) - { - case 0: - if (gTasks[taskId].data[11]++ > 1) - { - gTasks[taskId].data[11] = 0; - gTasks[taskId].data[12]++; - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12])); - if (gTasks[taskId].data[12] == 8) - gTasks[taskId].data[15]++; - } - break; - case 1: - if (++gTasks[taskId].data[10] == 30) - gTasks[taskId].data[15]++; - break; - case 2: - if (gTasks[taskId].data[11]++ > 1) - { - gTasks[taskId].data[11] = 0; - gTasks[taskId].data[12]--; - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12])); - if (gTasks[taskId].data[12] == 0) - { - sub_80A477C(0); - gBattle_WIN0H = 0; - gBattle_WIN0V = 0; - SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); - SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR); - if (!IsContest()) - SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0); - - SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON); - SetGpuReg(REG_OFFSET_BLDCNT, 0); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0)); - DestroySprite(&gSprites[gTasks[taskId].data[0]]); - DestroySprite(&gSprites[gTasks[taskId].data[2]]); - SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 0); - spriteId1 = gSprites[gHealthboxSpriteIds[battler]].oam.affineParam; - spriteId2 = gSprites[gHealthboxSpriteIds[battler]].data[5]; - gSprites[gHealthboxSpriteIds[battler]].oam.priority = 1; - gSprites[spriteId1].oam.priority = 1; - gSprites[spriteId2].oam.priority = 1; - DestroyAnimVisualTask(taskId); - } - } - break; - } -} - -static void sub_8170834(u8 *paletteId1, u8 *paletteId2, u8 battler) -{ - u8 healthBoxSpriteId; - u8 spriteId1, spriteId2; - u16 offset1, offset2; - - healthBoxSpriteId = gHealthboxSpriteIds[battler]; - spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; - spriteId2 = gSprites[healthBoxSpriteId].data[5]; - *paletteId1 = AllocSpritePalette(0xD709); - *paletteId2 = AllocSpritePalette(0xD70A); - - offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100; - offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100; - LoadPalette(&gPlttBufferUnfaded[offset1], *paletteId1 * 16 + 0x100, 0x20); - LoadPalette(&gPlttBufferUnfaded[offset2], *paletteId2 * 16 + 0x100, 0x20); - - gSprites[healthBoxSpriteId].oam.paletteNum = *paletteId1; - gSprites[spriteId1].oam.paletteNum = *paletteId1; - gSprites[spriteId2].oam.paletteNum = *paletteId2; -} - -void sub_8170920(u8 taskId) -{ - u8 paletteId1, paletteId2; - sub_8170834(&paletteId1, &paletteId2, gBattleAnimAttacker); - DestroyAnimVisualTask(taskId); -} - -static void sub_817094C(u8 battler) -{ - u8 healthBoxSpriteId; - u8 spriteId1, spriteId2; - u8 paletteId1, paletteId2; - - healthBoxSpriteId = gHealthboxSpriteIds[battler]; - spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; - spriteId2 = gSprites[healthBoxSpriteId].data[5]; - - FreeSpritePaletteByTag(0xD709); - FreeSpritePaletteByTag(0xD70A); - paletteId1 = IndexOfSpritePaletteTag(0xD6FF); - paletteId2 = IndexOfSpritePaletteTag(0xD704); - gSprites[healthBoxSpriteId].oam.paletteNum = paletteId1; - gSprites[spriteId1].oam.paletteNum = paletteId1; - gSprites[spriteId2].oam.paletteNum = paletteId2; -} - -void sub_81709EC(u8 taskId) -{ - sub_817094C(gBattleAnimAttacker); - DestroyAnimVisualTask(taskId); -} - -void sub_8170A0C(u8 taskId) -{ - gTasks[taskId].data[10] = gBattleAnimArgs[0]; - gTasks[taskId].data[11] = gBattleAnimArgs[1]; - gTasks[taskId].func = sub_8170A38; -} - -static void sub_8170A38(u8 taskId) -{ - u8 paletteNum; - int paletteOffset, colorOffset; - - gTasks[taskId].data[0]++; - if (gTasks[taskId].data[0]++ >= gTasks[taskId].data[11]) - { - gTasks[taskId].data[0] = 0; - paletteNum = IndexOfSpritePaletteTag(0xD709); - colorOffset = gTasks[taskId].data[10] == 0 ? 6 : 2; - switch (gTasks[taskId].data[1]) - { - case 0: - gTasks[taskId].data[2] += 2; - if (gTasks[taskId].data[2] > 16) - gTasks[taskId].data[2] = 16; - - paletteOffset = paletteNum * 16 + 0x100; - BlendPalette(paletteOffset + colorOffset, 1, gTasks[taskId].data[2], RGB(20, 27, 31)); - if (gTasks[taskId].data[2] == 16) - gTasks[taskId].data[1]++; - break; - case 1: - gTasks[taskId].data[2] -= 2; - if (gTasks[taskId].data[2] < 0) - gTasks[taskId].data[2] = 0; - - paletteOffset = paletteNum * 16 + 0x100; - BlendPalette(paletteOffset + colorOffset, 1, gTasks[taskId].data[2], RGB(20, 27, 31)); - if (gTasks[taskId].data[2] == 0) - DestroyAnimVisualTask(taskId); - break; - } - } -} - -void sub_8170B04(u8 taskId) -{ - u8 spriteId; - - spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; - switch (gTasks[taskId].data[0]) - { - case 0: - PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); - gTasks[taskId].data[10] = 0x100; - gTasks[taskId].data[0]++; - break; - case 1: - gTasks[taskId].data[10] += 0x30; - SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0); - SetBattlerSpriteYOffsetFromYScale(spriteId); - if (gTasks[taskId].data[10] >= 0x2D0) - gTasks[taskId].data[0]++; - break; - case 2: - ResetSpriteRotScale(spriteId); - gSprites[spriteId].invisible = 1; - DestroyAnimVisualTask(taskId); - break; - } -} - -void sub_8170BB0(u8 taskId) -{ - u8 spriteId; - u16 ball; - u8 ballId; - u8 x, y; - u8 priority, subpriority; - u32 selectedPalettes; - - spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; - if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - ball = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_POKEBALL); - else - ball = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_POKEBALL); - - ballId = ItemIdToBallId(ball); - switch (gTasks[taskId].data[0]) - { - case 0: - x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); - priority = gSprites[spriteId].oam.priority; - subpriority = gSprites[spriteId].subpriority; - gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId); - selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0); - gTasks[taskId].data[11] = LaunchBallFadeMonTask(0, gBattleAnimAttacker, selectedPalettes, ballId); - gTasks[taskId].data[0]++; - break; - case 1: - if (!gTasks[gTasks[taskId].data[10]].isActive && !gTasks[gTasks[taskId].data[11]].isActive) - DestroyAnimVisualTask(taskId); - break; - } -} - -void sub_8170CFC(u8 taskId) -{ - u8 ballId = ItemIdToBallId(gLastUsedItem); - LoadBallGfx(ballId); - DestroyAnimVisualTask(taskId); -} - -void sub_8170D24(u8 taskId) -{ - u8 ballId = ItemIdToBallId(gLastUsedItem); - FreeBallGfx(ballId); - DestroyAnimVisualTask(taskId); -} - -void AnimTask_IsBallBlockedByTrainer(u8 taskId) -{ - if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_TRAINER_BLOCK) - gBattleAnimArgs[7] = -1; - else - gBattleAnimArgs[7] = 0; - - DestroyAnimVisualTask(taskId); -} - -u8 ItemIdToBallId(u16 ballItem) -{ - switch (ballItem) - { - case ITEM_MASTER_BALL: - return 4; - case ITEM_ULTRA_BALL: - return 3; - case ITEM_GREAT_BALL: - return 1; - case ITEM_SAFARI_BALL: - return 2; - case ITEM_NET_BALL: - return 5; - case ITEM_DIVE_BALL: - return 6; - case ITEM_NEST_BALL: - return 7; - case ITEM_REPEAT_BALL: - return 8; - case ITEM_TIMER_BALL: - return 9; - case ITEM_LUXURY_BALL: - return 10; - case ITEM_PREMIER_BALL: - return 11; - case ITEM_POKE_BALL: - default: - return 0; - } -} - -void sub_8170E04(u8 taskId) -{ - u8 ballId; - u8 spriteId; - - ballId = ItemIdToBallId(gLastUsedItem); - spriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29); - gSprites[spriteId].data[0] = 34; - gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16; - gSprites[spriteId].callback = sub_8171104; - gBattleSpritesDataPtr->animationData->field_9_x2 = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].func = sub_8170EF0; -} - -static void sub_8170EF0(u8 taskId) -{ - u8 spriteId = gTasks[taskId].data[0]; - if ((u16)gSprites[spriteId].data[0] == 0xFFFF) - DestroyAnimVisualTask(taskId); -} - -void sub_8170F2C(u8 taskId) -{ - int x, y; - u8 ballId; - u8 subpriority; - u8 spriteId; - - if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) - { - x = 32; - y = 11; - } - else - { - x = 23; - y = 5; - } - - ballId = ItemIdToBallId(gLastUsedItem); - subpriority = GetBattlerSpriteSubpriority(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1; - spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x + 32, y | 80, subpriority); - gSprites[spriteId].data[0] = 34; - gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16; - gSprites[spriteId].callback = SpriteCallbackDummy; - gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = sub_8039E84; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].func = sub_8171030; -} - -static void sub_8171030(u8 taskId) -{ - if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animCmdIndex == 1) - { - PlaySE12WithPanning(SE_NAGERU, 0); - gSprites[gTasks[taskId].data[0]].callback = sub_8171104; - CreateTask(sub_81710A8, 10); - gTasks[taskId].func = sub_8170EF0; - } -} - -static void sub_81710A8(u8 taskId) -{ - if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animEnded) - { - StartSpriteAnim(&gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], 0); - DestroyTask(taskId); - } -} - -static void sub_8171104(struct Sprite *sprite) -{ - u16 temp = sprite->data[1]; - u16 temp2 = sprite->data[2]; - sprite->data[1] = sprite->pos1.x; - sprite->data[2] = temp; - sprite->data[3] = sprite->pos1.y; - sprite->data[4] = temp2; - sprite->data[5] = -40; - InitAnimArcTranslation(sprite); - sprite->callback = sub_8171134; -} - -static void sub_8171134(struct Sprite *sprite) -{ - int i; - u8 ballId; - int ballId2; // extra var needed to match - - if (TranslateAnimHorizontalArc(sprite)) - { - if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_TRAINER_BLOCK) - { - sprite->callback = sub_8171CAC; - } - else - { - StartSpriteAnim(sprite, 1); - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.x = 0; - sprite->pos2.y = 0; - - for (i = 0; i < 8; i++) - sprite->data[i] = 0; - - sprite->data[5] = 0; - sprite->callback = sub_81711E8; - ballId = ItemIdToBallId(gLastUsedItem); - ballId2 = ballId; - if (ballId2 > 11) - return; - if (ballId2 < 0) - return; - - AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId); - LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId); - } - } -} - -static void sub_81711E8(struct Sprite *sprite) -{ - if (++sprite->data[5] == 10) - { - sprite->data[5] = CreateTask(TaskDummy, 50); - sprite->callback = sub_8171240; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] = 0; - } -} - -static void sub_8171240(struct Sprite *sprite) -{ - u8 spriteId; - u8 taskId; - - spriteId = gBattlerSpriteIds[gBattleAnimTarget]; - taskId = sprite->data[5]; - - if (++gTasks[taskId].data[1] == 11) - PlaySE(SE_SUIKOMU); - - switch (gTasks[taskId].data[0]) - { - case 0: - PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); - gTasks[taskId].data[10] = 256; - gUnknown_030062DC = 28; - gUnknown_030062E4 = (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) - (sprite->pos1.y + sprite->pos2.y); - gUnknown_030062E0 = (u32)(gUnknown_030062E4 * 256) / 28; - gTasks[taskId].data[2] = gUnknown_030062E0; - gTasks[taskId].data[0]++; - break; - case 1: - gTasks[taskId].data[10] += 0x20; - SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0); - gTasks[taskId].data[3] += gTasks[taskId].data[2]; - gSprites[spriteId].pos2.y = -gTasks[taskId].data[3] >> 8; - if (gTasks[taskId].data[10] >= 0x480) - gTasks[taskId].data[0]++; - break; - case 2: - ResetSpriteRotScale(spriteId); - gSprites[spriteId].invisible = 1; - gTasks[taskId].data[0]++; - break; - default: - if (gTasks[taskId].data[1] > 10) - { - DestroyTask(taskId); - StartSpriteAnim(sprite, 2); - sprite->data[5] = 0; - sprite->callback = sub_817138C; - } - break; - } -} - -static void sub_817138C(struct Sprite *sprite) -{ - int angle; - - if (sprite->animEnded) - { - sprite->data[3] = 0; - sprite->data[4] = 40; - sprite->data[5] = 0; - angle = 0; - sprite->pos1.y += Cos(angle, 40); - sprite->pos2.y = -Cos(angle, sprite->data[4]); - sprite->callback = sub_81713D0; - } -} - -static void sub_81713D0(struct Sprite *sprite) -{ - bool8 lastBounce; - int bounceCount; - - lastBounce = 0; - - switch (sprite->data[3] & 0xFF) - { - case 0: - sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]); - sprite->data[5] += (sprite->data[3] >> 8) + 4; - if (sprite->data[5] >= 64) - { - sprite->data[4] -= 10; - sprite->data[3] += 257; - - bounceCount = sprite->data[3] >> 8; - if (bounceCount == 4) - lastBounce = 1; - - // Play a different sound effect for each pokeball bounce. - switch (bounceCount) - { - case 1: - PlaySE(SE_KON); - break; - case 2: - PlaySE(SE_KON2); - break; - case 3: - PlaySE(SE_KON3); - break; - default: - PlaySE(SE_KON4); - break; - } - } - break; - case 1: - sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]); - sprite->data[5] -= (sprite->data[3] >> 8) + 4; - if (sprite->data[5] <= 0) - { - sprite->data[5] = 0; - sprite->data[3] &= -0x100; - } - break; - } - - if (lastBounce) - { - sprite->data[3] = 0; - sprite->pos1.y += Cos(64, 40); - sprite->pos2.y = 0; - if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_NO_SHAKES) - { - sprite->data[5] = 0; - sprite->callback = sub_81717B4; - } - else - { - sprite->callback = sub_81714D4; - sprite->data[4] = 1; - sprite->data[5] = 0; - } - } -} - -static void sub_81714D4(struct Sprite *sprite) -{ - if (++sprite->data[3] == 31) - { - sprite->data[3] = 0; - sprite->affineAnimPaused = 1; - StartSpriteAffineAnim(sprite, 1); - gBattleSpritesDataPtr->animationData->field_C = 0; - sprite->callback = sub_8171520; - PlaySE(SE_BOWA); - } -} - -static void sub_8171520(struct Sprite *sprite) -{ - s8 state; - u16 var0; - - switch (sprite->data[3] & 0xFF) - { - case 0: - if (gBattleSpritesDataPtr->animationData->field_C > 0xFF) - { - sprite->pos2.x += sprite->data[4]; - gBattleSpritesDataPtr->animationData->field_C &= 0xFF; - } - else - { - gBattleSpritesDataPtr->animationData->field_C += 0xB0; - } - - sprite->data[5]++; - sprite->affineAnimPaused = 0; - var0 = sprite->data[5] + 7; - if (var0 > 14) - { - gBattleSpritesDataPtr->animationData->field_C = 0; - sprite->data[3]++; - sprite->data[5] = 0; - } - break; - case 1: - if (++sprite->data[5] == 1) - { - sprite->data[5] = 0; - sprite->data[4] = -sprite->data[4]; - sprite->data[3]++; - sprite->affineAnimPaused = 0; - if (sprite->data[4] < 0) - ChangeSpriteAffineAnim(sprite, 2); - else - ChangeSpriteAffineAnim(sprite, 1); - } - else - { - sprite->affineAnimPaused = 1; - } - break; - case 2: - if (gBattleSpritesDataPtr->animationData->field_C > 0xFF) - { - sprite->pos2.x += sprite->data[4]; - gBattleSpritesDataPtr->animationData->field_C &= 0xFF; - } - else - { - gBattleSpritesDataPtr->animationData->field_C += 0xB0; - } - - sprite->data[5]++; - sprite->affineAnimPaused = 0; - var0 = sprite->data[5] + 12; - if (var0 > 24) - { - gBattleSpritesDataPtr->animationData->field_C = 0; - sprite->data[3]++; - sprite->data[5] = 0; - } - break; - case 3: - if (sprite->data[5]++ < 0) - { - sprite->affineAnimPaused = 1; - break; - } - - sprite->data[5] = 0; - sprite->data[4] = -sprite->data[4]; - sprite->data[3]++; - sprite->affineAnimPaused = 0; - if (sprite->data[4] < 0) - ChangeSpriteAffineAnim(sprite, 2); - else - ChangeSpriteAffineAnim(sprite, 1); - // fall through - case 4: - if (gBattleSpritesDataPtr->animationData->field_C > 0xFF) - { - sprite->pos2.x += sprite->data[4]; - gBattleSpritesDataPtr->animationData->field_C &= 0xFF; - } - else - { - gBattleSpritesDataPtr->animationData->field_C += 0xB0; - } - - sprite->data[5]++; - sprite->affineAnimPaused = 0; - var0 = sprite->data[5] + 4; - if (var0 > 8) - { - gBattleSpritesDataPtr->animationData->field_C = 0; - sprite->data[3]++; - sprite->data[5] = 0; - sprite->data[4] = -sprite->data[4]; - } - break; - case 5: - sprite->data[3] += 0x100; - state = sprite->data[3] >> 8; - if (state == gBattleSpritesDataPtr->animationData->ballThrowCaseId) - { - sprite->affineAnimPaused = 1; - sprite->callback = sub_81717B4; - } - else - { - if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_3_SHAKES_SUCCESS && state == 3) - { - sprite->callback = sub_81717D8; - sprite->affineAnimPaused = 1; - } - else - { - sprite->data[3]++; - sprite->affineAnimPaused = 1; - } - } - break; - case 6: - default: - if (++sprite->data[5] == 31) - { - sprite->data[5] = 0; - sprite->data[3] &= -0x100; - StartSpriteAffineAnim(sprite, 3); - if (sprite->data[4] < 0) - StartSpriteAffineAnim(sprite, 2); - else - StartSpriteAffineAnim(sprite, 1); - - PlaySE(SE_BOWA); - } - break; - } -} - -static void sub_81717B4(struct Sprite *sprite) -{ - if (++sprite->data[5] == 31) - { - sprite->data[5] = 0; - sprite->callback = sub_8171AE4; - } -} - -static void sub_81717D8(struct Sprite *sprite) -{ - sprite->animPaused = 1; - sprite->callback = sub_81717F8; - sprite->data[3] = 0; - sprite->data[4] = 0; - sprite->data[5] = 0; -} - -static void sub_81717F8(struct Sprite *sprite) -{ - u8 *battler = &gBattleAnimTarget; - - sprite->data[4]++; - if (sprite->data[4] == 40) - { - PlaySE(SE_RG_GETTING); - BlendPalettes(0x10000 << sprite->oam.paletteNum, 6, RGB(0, 0, 0)); - sub_81719EC(sprite); - } - else if (sprite->data[4] == 60) - { - BeginNormalPaletteFade(0x10000 << sprite->oam.paletteNum, 2, 6, 0, RGB(0, 0, 0)); - } - else if (sprite->data[4] == 95) - { - gDoingBattleAnim = 0; - UpdateOamPriorityInAllHealthboxes(1); - m4aMPlayAllStop(); - PlaySE(MUS_RG_FAN6); - } - else if (sprite->data[4] == 315) - { - FreeOamMatrix(gSprites[gBattlerSpriteIds[*battler]].oam.matrixNum); - DestroySprite(&gSprites[gBattlerSpriteIds[*battler]]); - sprite->data[0] = 0; - sprite->callback = sub_81718D8; - } -} - -static void sub_81718D8(struct Sprite *sprite) -{ - u8 paletteIndex; - - switch (sprite->data[0]) - { - case 0: - sprite->data[1] = 0; - sprite->data[2] = 0; - sprite->oam.objMode = ST_OAM_OBJ_BLEND; - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); - paletteIndex = IndexOfSpritePaletteTag(sprite->template->paletteTag); - BeginNormalPaletteFade(1 << (paletteIndex + 0x10), 0, 0, 16, RGB(31, 31, 31)); - sprite->data[0]++; - break; - case 1: - if (sprite->data[1]++ > 0) - { - sprite->data[1] = 0; - sprite->data[2]++; - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - sprite->data[2], sprite->data[2])); - if (sprite->data[2] == 16) - sprite->data[0]++; - } - break; - case 2: - sprite->invisible = 1; - sprite->data[0]++; - break; - default: - if (!gPaletteFade.active) - { - SetGpuReg(REG_OFFSET_BLDCNT, 0); - SetGpuReg(REG_OFFSET_BLDALPHA, 0); - sprite->data[0] = 0; - sprite->callback = sub_81719C0; - } - break; - } -} - -static void sub_81719C0(struct Sprite *sprite) -{ - if (sprite->data[0] == 0) - { - sprite->data[0] = -1; - } - else - { - FreeSpriteOamMatrix(sprite); - DestroySprite(sprite); - } -} - -static void sub_81719EC(struct Sprite *sprite) -{ - u32 i; - u8 subpriority; - - if (sprite->subpriority) - { - subpriority = sprite->subpriority - 1; - } - else - { - subpriority = 0; - sprite->subpriority = 1; - } - - sub_8171D60(4); - for (i = 0; i < 3; i++) - { - u8 spriteId = CreateSprite(&gUnknown_085E51F0[4], sprite->pos1.x, sprite->pos1.y, subpriority); - if (spriteId != MAX_SPRITES) - { - gSprites[spriteId].data[0] = 24; - gSprites[spriteId].data[2] = sprite->pos1.x + sBallCaptureSuccessStarData[i].xOffset; - gSprites[spriteId].data[4] = sprite->pos1.y + sBallCaptureSuccessStarData[i].yOffset; - gSprites[spriteId].data[5] = sBallCaptureSuccessStarData[i].unk2; - InitAnimArcTranslation(&gSprites[spriteId]); - gSprites[spriteId].callback = sub_8171AAC; - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[4]); - } - } -} - -static void sub_8171AAC(struct Sprite *sprite) -{ - sprite->invisible = !sprite->invisible; - if (TranslateAnimHorizontalArc(sprite)) - DestroySprite(sprite); -} - -// fakematching. I think the return type of ItemIdToBallId() -// is wrong because of the weird required casting. -static void sub_8171AE4(struct Sprite *sprite) -{ - u8 ballId; - int ballId2; // extra var needed to match - - StartSpriteAnim(sprite, 1); - StartSpriteAffineAnim(sprite, 0); - sprite->callback = sub_8171BAC; - - ballId = ItemIdToBallId(gLastUsedItem); - ballId2 = ballId; - if (ballId2 > 11) - goto LABEL; - if (ballId2 < 0) - goto LABEL; - - AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId); - LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId); - - LABEL: - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = 0; - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 1); - AnimateSprite(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]]); - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] = 0x1000; -} - -static void sub_8171BAC(struct Sprite *sprite) -{ - int next = FALSE; - - if (sprite->animEnded) - sprite->invisible = 1; - - if (gSprites[gBattlerSpriteIds[gBattleAnimTarget]].affineAnimEnded) - { - StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 0); - next = TRUE; - } - else - { - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] -= 288; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] >> 8; - } - - if (sprite->animEnded && next) - { - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = 0; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = gBattleSpritesDataPtr->animationData->field_9_x2; - sprite->data[0] = 0; - sprite->callback = sub_81719C0; - gDoingBattleAnim = 0; - UpdateOamPriorityInAllHealthboxes(1); - } -} - -static void sub_8171CAC(struct Sprite *sprite) -{ - int i; - - sprite->pos1.x += sprite->pos2.x; - sprite->pos1.y += sprite->pos2.y; - sprite->pos2.y = 0; - sprite->pos2.x = 0; - for (i = 0; i < 6; i++) - sprite->data[i] = 0; - - sprite->callback = sub_8171CE8; -} - -static void sub_8171CE8(struct Sprite *sprite) -{ - s16 var0 = sprite->data[0] + 0x800; - s16 var1 = sprite->data[1] + 0x680; - sprite->pos2.x -= var1 >> 8; - sprite->pos2.y += var0 >> 8; - sprite->data[0] = (sprite->data[0] + 0x800) & 0xFF; - sprite->data[1] = (sprite->data[1] + 0x680) & 0xFF; - - if (sprite->pos1.y + sprite->pos2.y > 160 - || sprite->pos1.x + sprite->pos2.x < -8) - { - sprite->data[0] = 0; - sprite->callback = sub_81719C0; - gDoingBattleAnim = 0; - UpdateOamPriorityInAllHealthboxes(1); - } -} - -static void sub_8171D60(u8 ballId) -{ - u8 taskId; - - if (GetSpriteTileStartByTag(gBallOpenParticleSpritesheets[ballId].tag) == 0xFFFF) - { - LoadCompressedSpriteSheetUsingHeap(&gBallOpenParticleSpritesheets[ballId]); - LoadCompressedSpritePaletteUsingHeap(&gBallOpenParticlePalettes[ballId]); - } -} - -u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId) -{ - u8 taskId; - - sub_8171D60(ballId); - taskId = CreateTask(gBallOpenParticleAnimationFuncs[ballId], 5); - gTasks[taskId].data[1] = x; - gTasks[taskId].data[2] = y; - gTasks[taskId].data[3] = priority; - gTasks[taskId].data[4] = subpriority; - gTasks[taskId].data[15] = ballId; - PlaySE(SE_BOWA2); - - return taskId; -} - -void sub_8171E20(void) -{ - if (gMain.inBattle) - gBattleSpritesDataPtr->animationData->field_A++; -} - -static void PokeBallOpenParticleAnimation(u8 taskId) -{ - u8 spriteId; - u8 x, y; - u8 priority, subpriority; - u8 ballId; - u8 var0; - - ballId = gTasks[taskId].data[15]; - if (gTasks[taskId].data[0] < 16) - { - x = gTasks[taskId].data[1]; - y = gTasks[taskId].data[2]; - priority = gTasks[taskId].data[3]; - subpriority = gTasks[taskId].data[4]; - - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); - if (spriteId != MAX_SPRITES) - { - sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); - gSprites[spriteId].callback = PokeBallOpenParticleAnimation_Step1; - gSprites[spriteId].oam.priority = priority; - - var0 = (u8)gTasks[taskId].data[0]; - if (var0 >= 8) - var0 -= 8; - - gSprites[spriteId].data[0] = var0 * 32; - } - - if (gTasks[taskId].data[0] == 15) - { - if (!gMain.inBattle) - gSprites[spriteId].data[7] = 1; - - DestroyTask(taskId); - return; - } - } - - gTasks[taskId].data[0]++; -} - -static void PokeBallOpenParticleAnimation_Step1(struct Sprite *sprite) -{ - if (sprite->data[1] == 0) - sprite->callback = PokeBallOpenParticleAnimation_Step2; - else - sprite->data[1]--; -} - -static void PokeBallOpenParticleAnimation_Step2(struct Sprite *sprite) -{ - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]); - sprite->data[1] += 2; - if (sprite->data[1] == 50) - DestroyBallOpenAnimationParticle(sprite); -} - -static void TimerBallOpenParticleAnimation(u8 taskId) -{ - u8 i; - u8 x, y, priority, subpriority, ballId; - u8 spriteId; - - ballId = gTasks[taskId].data[15]; - x = gTasks[taskId].data[1]; - y = gTasks[taskId].data[2]; - priority = gTasks[taskId].data[3]; - subpriority = gTasks[taskId].data[4]; - - for (i = 0; i < 8; i++) - { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); - if (spriteId != MAX_SPRITES) - { - sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); - gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; - gSprites[spriteId].oam.priority = priority; - gSprites[spriteId].data[0] = i * 32; - gSprites[spriteId].data[4] = 10; - gSprites[spriteId].data[5] = 2; - gSprites[spriteId].data[6] = 1; - } - } - - if (!gMain.inBattle) - gSprites[spriteId].data[7] = 1; - - DestroyTask(taskId); -} - -static void DiveBallOpenParticleAnimation(u8 taskId) -{ - u8 i; - u8 x, y, priority, subpriority, ballId; - u8 spriteId; - - ballId = gTasks[taskId].data[15]; - x = gTasks[taskId].data[1]; - y = gTasks[taskId].data[2]; - priority = gTasks[taskId].data[3]; - subpriority = gTasks[taskId].data[4]; - - for (i = 0; i < 8; i++) - { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); - if (spriteId != MAX_SPRITES) - { - sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); - gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; - gSprites[spriteId].oam.priority = priority; - gSprites[spriteId].data[0] = i * 32; - gSprites[spriteId].data[4] = 10; - gSprites[spriteId].data[5] = 1; - gSprites[spriteId].data[6] = 2; - } - } - - if (!gMain.inBattle) - gSprites[spriteId].data[7] = 1; - - DestroyTask(taskId); -} - -// Also used for Net Ball -static void SafariBallOpenParticleAnimation(u8 taskId) -{ - u8 i; - u8 x, y, priority, subpriority, ballId; - u8 spriteId; - - ballId = gTasks[taskId].data[15]; - x = gTasks[taskId].data[1]; - y = gTasks[taskId].data[2]; - priority = gTasks[taskId].data[3]; - subpriority = gTasks[taskId].data[4]; - - for (i = 0; i < 8; i++) - { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); - if (spriteId != MAX_SPRITES) - { - sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); - gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; - gSprites[spriteId].oam.priority = priority; - gSprites[spriteId].data[0] = i * 32; - gSprites[spriteId].data[4] = 4; - gSprites[spriteId].data[5] = 1; - gSprites[spriteId].data[6] = 1; - } - } - - if (!gMain.inBattle) - gSprites[spriteId].data[7] = 1; - - DestroyTask(taskId); -} - -// Also used for Nest Ball -static void UltraBallOpenParticleAnimation(u8 taskId) -{ - u8 i; - u8 x, y, priority, subpriority, ballId; - u8 spriteId; - - ballId = gTasks[taskId].data[15]; - x = gTasks[taskId].data[1]; - y = gTasks[taskId].data[2]; - priority = gTasks[taskId].data[3]; - subpriority = gTasks[taskId].data[4]; - - for (i = 0; i < 10; i++) - { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); - if (spriteId != MAX_SPRITES) - { - sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); - gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; - gSprites[spriteId].oam.priority = priority; - gSprites[spriteId].data[0] = i * 25; - gSprites[spriteId].data[4] = 5; - gSprites[spriteId].data[5] = 1; - gSprites[spriteId].data[6] = 1; - } - } - - if (!gMain.inBattle) - gSprites[spriteId].data[7] = 1; - - DestroyTask(taskId); -} - -// Also used for Luxury Ball -static void GreatBallOpenParticleAnimation(u8 taskId) -{ - u8 i; - u8 x, y, priority, subpriority, ballId; - u8 spriteId; - - if (gTasks[taskId].data[7]) - { - gTasks[taskId].data[7]--; - } - else - { - ballId = gTasks[taskId].data[15]; - x = gTasks[taskId].data[1]; - y = gTasks[taskId].data[2]; - priority = gTasks[taskId].data[3]; - subpriority = gTasks[taskId].data[4]; - - for (i = 0; i < 8; i++) - { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); - if (spriteId != MAX_SPRITES) - { - sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); - gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; - gSprites[spriteId].oam.priority = priority; - gSprites[spriteId].data[0] = i * 32; - gSprites[spriteId].data[4] = 8; - gSprites[spriteId].data[5] = 2; - gSprites[spriteId].data[6] = 2; - } - } - - gTasks[taskId].data[7] = 8; - if (++gTasks[taskId].data[0] == 2) - { - if (!gMain.inBattle) - gSprites[spriteId].data[7] = 1; - - DestroyTask(taskId); - } - } -} - -static void FanOutBallOpenParticles_Step1(struct Sprite *sprite) -{ - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], sprite->data[2]); - sprite->data[0] = (sprite->data[0] + sprite->data[4]) & 0xFF; - sprite->data[1] += sprite->data[5]; - sprite->data[2] += sprite->data[6]; - if (++sprite->data[3] == 51) - DestroyBallOpenAnimationParticle(sprite); -} - -static void RepeatBallOpenParticleAnimation(u8 taskId) -{ - u8 i; - u8 x, y, priority, subpriority, ballId; - u8 spriteId; - - ballId = gTasks[taskId].data[15]; - x = gTasks[taskId].data[1]; - y = gTasks[taskId].data[2]; - priority = gTasks[taskId].data[3]; - subpriority = gTasks[taskId].data[4]; - - for (i = 0; i < 12; i++) - { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); - if (spriteId != MAX_SPRITES) - { - sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); - gSprites[spriteId].callback = RepeatBallOpenParticleAnimation_Step1; - gSprites[spriteId].oam.priority = priority; - gSprites[spriteId].data[0] = i * 21; - } - } - - if (!gMain.inBattle) - gSprites[spriteId].data[7] = 1; - - DestroyTask(taskId); -} - -static void RepeatBallOpenParticleAnimation_Step1(struct Sprite *sprite) -{ - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], Sin(sprite->data[0], sprite->data[2])); - sprite->data[0] = (sprite->data[0] + 6) & 0xFF; - sprite->data[1]++; - sprite->data[2]++; - if (++sprite->data[3] == 51) - DestroyBallOpenAnimationParticle(sprite); -} - -static void MasterBallOpenParticleAnimation(u8 taskId) -{ - u8 i, j; - u8 x, y, priority, subpriority, ballId; - u8 spriteId; - - ballId = gTasks[taskId].data[15]; - x = gTasks[taskId].data[1]; - y = gTasks[taskId].data[2]; - priority = gTasks[taskId].data[3]; - subpriority = gTasks[taskId].data[4]; - - for (j = 0; j < 2; j++) - { - for (i = 0; i < 8; i++) - { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); - if (spriteId != MAX_SPRITES) - { - sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); - gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; - gSprites[spriteId].oam.priority = priority; - gSprites[spriteId].data[0] = i * 32; - gSprites[spriteId].data[4] = 8; - - if (j == 0) - { - gSprites[spriteId].data[5] = 2; - gSprites[spriteId].data[6] = 1; - } - else - { - gSprites[spriteId].data[5] = 1; - gSprites[spriteId].data[6] = 2; - } - } - } - } - - if (!gMain.inBattle) - gSprites[spriteId].data[7] = 1; - - DestroyTask(taskId); -} - -static void PremierBallOpenParticleAnimation(u8 taskId) -{ - u8 i; - u8 x, y, priority, subpriority, ballId; - u8 spriteId; - - ballId = gTasks[taskId].data[15]; - x = gTasks[taskId].data[1]; - y = gTasks[taskId].data[2]; - priority = gTasks[taskId].data[3]; - subpriority = gTasks[taskId].data[4]; - - for (i = 0; i < 8; i++) - { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); - if (spriteId != MAX_SPRITES) - { - sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); - gSprites[spriteId].callback = PremierBallOpenParticleAnimation_Step1; - gSprites[spriteId].oam.priority = priority; - gSprites[spriteId].data[0] = i * 32; - } - } - - if (!gMain.inBattle) - gSprites[spriteId].data[7] = 1; - - DestroyTask(taskId); -} - -static void PremierBallOpenParticleAnimation_Step1(struct Sprite *sprite) -{ - sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); - sprite->pos2.y = Cos(sprite->data[0], Sin(sprite->data[0] & 0x3F, sprite->data[2])); - sprite->data[0] = (sprite->data[0] + 10) & 0xFF; - sprite->data[1]++; - sprite->data[2]++; - if (++sprite->data[3] == 51) - DestroyBallOpenAnimationParticle(sprite); -} - -static void DestroyBallOpenAnimationParticle(struct Sprite *sprite) -{ - int i, j; - int temp; - - if (!gMain.inBattle) - { - temp = sprite->data[7]; // temp var needed to match - if (temp == 1) - DestroySpriteAndFreeResources(sprite); - else - DestroySprite(sprite); - } - else - { - gBattleSpritesDataPtr->animationData->field_A--; - if (gBattleSpritesDataPtr->animationData->field_A == 0) - { - for (i = 0; i < 12; i++) - { - if (FuncIsActiveTask(gBallOpenParticleAnimationFuncs[i]) == TRUE) - break; - } - - if (i == 12) - { - for (j = 0; j < 12; j++) - { - FreeSpriteTilesByTag(gBallOpenParticleSpritesheets[j].tag); - FreeSpritePaletteByTag(gBallOpenParticlePalettes[j].tag); - } - } - - DestroySprite(sprite); - } - else - { - DestroySprite(sprite); - } - } -} - -u8 LaunchBallFadeMonTask(u8 unfadeLater, u8 battler, u32 selectedPalettes, u8 ballId) -{ - u8 taskId; - - taskId = CreateTask(sub_8172AB0, 5); - gTasks[taskId].data[15] = ballId; - gTasks[taskId].data[3] = battler; - gTasks[taskId].data[10] = selectedPalettes; - gTasks[taskId].data[11] = selectedPalettes >> 16; - - if (!unfadeLater) - { - BlendPalette(battler * 16 + 0x100, 16, 0, gUnknown_085E5310[ballId]); - gTasks[taskId].data[1] = 1; - } - else - { - BlendPalette(battler * 16 + 0x100, 16, 16, gUnknown_085E5310[ballId]); - gTasks[taskId].data[0] = 16; - gTasks[taskId].data[1] = -1; - gTasks[taskId].func = sub_8172B40; - } - - BeginNormalPaletteFade(selectedPalettes, 0, 0, 16, RGB(31, 31, 31)); - return taskId; -} - -static void sub_8172AB0(u8 taskId) -{ - u8 ballId = gTasks[taskId].data[15]; - - if (gTasks[taskId].data[2] <= 16) - { - BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gUnknown_085E5310[ballId]); - gTasks[taskId].data[0] += gTasks[taskId].data[1]; - gTasks[taskId].data[2]++; - } - else if (!gPaletteFade.active) - { - u32 selectedPalettes = (u16)gTasks[taskId].data[10] | ((u16)gTasks[taskId].data[11] << 16); - BeginNormalPaletteFade(selectedPalettes, 0, 16, 0, RGB(31, 31, 31)); - DestroyTask(taskId); - } -} - -static void sub_8172B40(u8 taskId) -{ - if (!gPaletteFade.active) - { - u32 selectedPalettes = (u16)gTasks[taskId].data[10] | ((u16)gTasks[taskId].data[11] << 16); - BeginNormalPaletteFade(selectedPalettes, 0, 16, 0, RGB(31, 31, 31)); - gTasks[taskId].func = sub_8172B90; - } -} - -static void sub_8172B90(u8 taskId) -{ - u8 ballId = gTasks[taskId].data[15]; - - if (gTasks[taskId].data[2] <= 16) - { - BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gUnknown_085E5310[ballId]); - gTasks[taskId].data[0] += gTasks[taskId].data[1]; - gTasks[taskId].data[2]++; - } - else - { - DestroyTask(taskId); - } -} - -void sub_8172BF0(u8 taskId) -{ - u8 spriteId; - u32 x; - u32 done; - - done = FALSE; - spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; - switch (gTasks[taskId].data[10]) - { - case 0: - gTasks[taskId].data[11] = gBattleAnimArgs[0]; - gTasks[taskId].data[0] += 0x500; - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - gSprites[spriteId].pos2.x += gTasks[taskId].data[0] >> 8; - else - gSprites[spriteId].pos2.x -= gTasks[taskId].data[0] >> 8; - - gTasks[taskId].data[0] &= 0xFF; - x = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x + 32; - if (x > 304) - gTasks[taskId].data[10]++; - break; - case 1: - LoadBattleMonGfxAndAnimate(gBattleAnimAttacker, gTasks[taskId].data[11], spriteId); - gTasks[taskId].data[10]++; - break; - case 2: - gTasks[taskId].data[0] += 0x500; - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - gSprites[spriteId].pos2.x -= gTasks[taskId].data[0] >> 8; - else - gSprites[spriteId].pos2.x += gTasks[taskId].data[0] >> 8; - - gTasks[taskId].data[0] &= 0xFF; - if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) - { - if (gSprites[spriteId].pos2.x <= 0) - { - gSprites[spriteId].pos2.x = 0; - // done = FALSE; // fakematching--can't get the tail merge correct - goto DONE; - } - } - else - { - if (gSprites[spriteId].pos2.x >= 0) - { - gSprites[spriteId].pos2.x = 0; - done = TRUE; - } - } - - if (done) - { - DONE: - DestroyAnimVisualTask(taskId); - } - break; - } -} - -void sub_8172D98(u8 taskId) -{ - u8 spriteId; - - switch (gTasks[taskId].data[15]) - { - case 0: - if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == B_POSITION_OPPONENT_LEFT) - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); - else - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); - - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); - gTasks[taskId].data[15]++; - break; - case 1: - if (gTasks[taskId].data[1]++ > 1) - { - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[0]++; - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - gTasks[taskId].data[0], gTasks[taskId].data[0])); - if (gTasks[taskId].data[0] == 16) - gTasks[taskId].data[15]++; - } - break; - case 2: - spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; - RequestDma3Fill(0, (void *)OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP, 0x800, 1); - ClearBehindSubstituteBit(gBattleAnimAttacker); - DestroyAnimVisualTask(taskId); - break; - } -} - -void sub_8172E9C(u8 taskId) -{ - gBattleAnimArgs[7] = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].behindSubstitute; - DestroyAnimVisualTask(taskId); -} - -void sub_8172ED0(u8 taskId) -{ - gBattleAnimTarget = gEffectBattler; - DestroyAnimVisualTask(taskId); -} - -void sub_8172EF0(u8 battler, struct Pokemon *mon) -{ - int isShiny; - u32 otId, personality; - u32 shinyValue; - u8 taskId1, taskId2; - - isShiny = 0; - gBattleSpritesDataPtr->healthBoxesData[battler].flag_x80 = 1; - otId = GetMonData(mon, MON_DATA_OT_ID); - personality = GetMonData(mon, MON_DATA_PERSONALITY); - - if (IsBattlerSpriteVisible(battler)) - { - shinyValue = HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality); - if (shinyValue < 8) - isShiny = TRUE; - - if (isShiny) - { - if (GetSpriteTileStartByTag(0x27F9) == 0xFFFF) - { - LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[233]); - LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[233]); - } - - taskId1 = CreateTask(sub_8172FEC, 10); - taskId2 = CreateTask(sub_8172FEC, 10); - gTasks[taskId1].data[0] = battler; - gTasks[taskId2].data[0] = battler; - gTasks[taskId1].data[1] = 0; - gTasks[taskId2].data[1] = 1; - return; - } - } - - gBattleSpritesDataPtr->healthBoxesData[battler].field_1_x1 = 1; -} - -static void sub_8172FEC(u8 taskId) -{ - u8 battler; - u8 x, y; - u8 spriteId; - u16 counter; - s16 state; - u8 pan; - - if (gTasks[taskId].data[13] < 60) - { - gTasks[taskId].data[13]++; - return; - } - - if (gBattleSpritesDataPtr->animationData->field_A) - return; - - counter = gTasks[taskId].data[10]++; - if (counter & 3) - return; - - battler = gTasks[taskId].data[0]; - x = GetBattlerSpriteCoord(battler, 0); - y = GetBattlerSpriteCoord(battler, 1); - state = gTasks[taskId].data[11]; - if (state == 0) - { - spriteId = CreateSprite(&gUnknown_085CE388, x, y, 5); - } - else if (state >= 0 && gTasks[taskId].data[11] < 4) - { - spriteId = CreateSprite(&gMiniTwinklingStarSpriteTemplate, x, y, 5); - gSprites[spriteId].oam.tileNum += 4; - } - else - { - spriteId = CreateSprite(&gMiniTwinklingStarSpriteTemplate, x, y, 5); - gSprites[spriteId].oam.tileNum += 5; - } - - if (gTasks[taskId].data[1] == 0) - { - gSprites[spriteId].callback = sub_81731FC; - } - else - { - gSprites[spriteId].callback = sub_8173250; - gSprites[spriteId].pos2.x = -32; - gSprites[spriteId].pos2.y = 32; - gSprites[spriteId].invisible = 1; - if (gTasks[taskId].data[11] == 0) - { - if (GetBattlerSide(battler) == B_SIDE_PLAYER) - pan = 192; - else - pan = 63; - - PlaySE12WithPanning(SE_REAPOKE, pan); - } - } - - gSprites[spriteId].data[0] = taskId; - gTasks[taskId].data[11]++; - if (spriteId != MAX_SPRITES) - gTasks[taskId].data[12]++; - - if (gTasks[taskId].data[11] == 5) - gTasks[taskId].func = sub_81731B0; -} - -static void sub_81731B0(u8 taskId) -{ - u8 battler; - - if (gTasks[taskId].data[12] == 0) - { - if (gTasks[taskId].data[1] == 1) - { - battler = gTasks[taskId].data[0]; - gBattleSpritesDataPtr->healthBoxesData[battler].field_1_x1 = 1; - } - - DestroyTask(taskId); - } -} - -static void sub_81731FC(struct Sprite *sprite) -{ - sprite->pos2.x = Sin(sprite->data[1], 24); - sprite->pos2.y = Cos(sprite->data[1], 24); - sprite->data[1] += 12; - if (sprite->data[1] > 0xFF) - { - gTasks[sprite->data[0]].data[12]--; - FreeSpriteOamMatrix(sprite); - DestroySprite(sprite); - } -} - -static void sub_8173250(struct Sprite *sprite) -{ - if (sprite->data[1] < 4) - { - sprite->data[1]++; - } - else - { - sprite->invisible = 0; - sprite->pos2.x += 5; - sprite->pos2.y -= 5; - if (sprite->pos2.x > 32) - { - gTasks[sprite->data[0]].data[12]--; - FreeSpriteOamMatrix(sprite); - DestroySprite(sprite); - } - } -} - -void sub_81732B0(u8 taskId) -{ - u8 paletteIndex; - - LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[269]); - LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[269]); - paletteIndex = IndexOfSpritePaletteTag(0x281D); // unused - DestroyAnimVisualTask(taskId); -} - -void sub_81732E4(u8 taskId) -{ - FreeSpriteTilesByTag(0x281D); - FreeSpritePaletteByTag(0x281D); - DestroyAnimVisualTask(taskId); -} - -static void sub_817330C(struct Sprite *sprite) -{ - InitSpritePosToAnimAttacker(sprite, 0); - sprite->data[0] = 30; - sprite->data[2] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 0) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 1) + gBattleAnimArgs[3]; - sprite->data[5] = -32; - InitAnimArcTranslation(sprite); - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = sub_8039E84; - sprite->callback = sub_817339C; -} - -static void sub_817339C(struct Sprite *sprite) -{ - if (gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].animCmdIndex == 1) - sprite->callback = sub_81733D4; -} - -static void sub_81733D4(struct Sprite *sprite) -{ - if (TranslateAnimHorizontalArc(sprite)) - { - sprite->data[0] = 0; - sprite->invisible = 1; - sprite->callback = sub_8173400; - } -} - -static void sub_8173400(struct Sprite *sprite) -{ - if (gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].animEnded) - { - if (++sprite->data[0] > 0) - { - StartSpriteAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0); - DestroyAnimSprite(sprite); - } - } -} - -void sub_817345C(u8 taskId) -{ - switch (gBattleAnimArgs[0]) - { - case 0: - gBattleAnimAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - gBattleAnimTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - break; - case 1: - gBattleAnimAttacker = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - gBattleAnimTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - break; - } - - DestroyAnimVisualTask(taskId); -} - -void AnimTask_GetTrappedMoveAnimId(u8 taskId) -{ - if (gBattleSpritesDataPtr->animationData->animArg == 83) - gBattleAnimArgs[0] = 1; - else if (gBattleSpritesDataPtr->animationData->animArg == 250) - gBattleAnimArgs[0] = 2; - else if (gBattleSpritesDataPtr->animationData->animArg == 128) - gBattleAnimArgs[0] = 3; - else if (gBattleSpritesDataPtr->animationData->animArg == 328) - gBattleAnimArgs[0] = 4; - else - gBattleAnimArgs[0] = 0; - - DestroyAnimVisualTask(taskId); -} - -void sub_817351C(u8 taskId) -{ - gBattleAnimAttacker = gBattleSpritesDataPtr->animationData->animArg; - gBattleAnimTarget = gBattleSpritesDataPtr->animationData->animArg >> 8; - DestroyAnimVisualTask(taskId); -} diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c new file mode 100644 index 000000000..250a0459f --- /dev/null +++ b/src/battle_anim_mon_movement.c @@ -0,0 +1,1059 @@ +#include "global.h" +#include "battle.h" +#include "battle_anim.h" +#include "sprite.h" +#include "task.h" +#include "trig.h" + +// This file's functions. +void AnimTask_ShakeMonStep(u8 taskId); +void AnimTask_ShakeMon2Step(u8 taskId); +void AnimTask_ShakeMonInPlaceStep(u8 taskId); +void AnimTask_ShakeAndSinkMonStep(u8 taskId); +void sub_80D57B8(u8 taskId); +static void DoHorizontalLunge(struct Sprite *sprite); +static void ReverseHorizontalLungeDirection(struct Sprite *sprite); +static void DoVerticalDip(struct Sprite *sprite); +static void ReverseVerticalDipDirection(struct Sprite* sprite); +static void SlideMonToOriginalPos(struct Sprite *sprite); +static void SlideMonToOriginalPosStep(struct Sprite *sprite); +static void SlideMonToOffset(struct Sprite *sprite); +static void sub_80D5B48(struct Sprite *sprite); +static void sub_80D5C20(struct Sprite *sprite); +void AnimTask_WindUpLungePart1(u8 taskId); +void AnimTask_WindUpLungePart2(u8 taskId); +void AnimTask_SwayMonStep(u8 taskId); +void AnimTask_ScaleMonAndRestoreStep(u8 taskId); +void sub_80D6308(u8 taskId); +void sub_80D646C(u8 taskId); +void sub_80A8B3C(u8 taskId); + +const struct SpriteTemplate gHorizontalLungeSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = DoHorizontalLunge, +}; + +const struct SpriteTemplate gVerticalDipSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = DoVerticalDip, +}; + +const struct SpriteTemplate gSlideMonToOriginalPosSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SlideMonToOriginalPos, +}; + +const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SlideMonToOffset, +}; + +const struct SpriteTemplate gUnknown_0857FE88 = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D5B48, +}; + +// Task to facilitate simple shaking of a pokemon's picture in battle. +// The shaking alternates between the original position and the target position. +// arg 0: anim battler +// arg 1: x pixel offset +// arg 2: y pixel offset +// arg 3: num times to shake +// arg 4: frame delay +void AnimTask_ShakeMon(u8 taskId) +{ + u8 spriteId; + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + if (spriteId == 0xff) + { + DestroyAnimVisualTask(taskId); + return; + } + gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; + gSprites[spriteId].pos2.y = gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[3]; + gTasks[taskId].data[2] = gBattleAnimArgs[4]; + gTasks[taskId].data[3] = gBattleAnimArgs[4]; + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = gBattleAnimArgs[2]; + gTasks[taskId].func = AnimTask_ShakeMonStep; + AnimTask_ShakeMonStep(taskId); +} + +void AnimTask_ShakeMonStep(u8 taskId) +{ + if (gTasks[taskId].data[3] == 0) + { + if (gSprites[gTasks[taskId].data[0]].pos2.x == 0) + { + gSprites[gTasks[taskId].data[0]].pos2.x = gTasks[taskId].data[4]; + } + else + { + gSprites[gTasks[taskId].data[0]].pos2.x = 0; + } + if (gSprites[gTasks[taskId].data[0]].pos2.y == 0) + { + gSprites[gTasks[taskId].data[0]].pos2.y = gTasks[taskId].data[5]; + } + else + { + gSprites[gTasks[taskId].data[0]].pos2.y = 0; + } + gTasks[taskId].data[3] = gTasks[taskId].data[2]; + if (--gTasks[taskId].data[1] == 0) + { + gSprites[gTasks[taskId].data[0]].pos2.x = 0; + gSprites[gTasks[taskId].data[0]].pos2.y = 0; + DestroyAnimVisualTask(taskId); + return; + } + } + else + { + gTasks[taskId].data[3]--; + } +} + +// Task to facilitate simple shaking of a pokemon's picture in battle. +// The shaking alternates between the positive and negative versions of the specified pixel offsets. +// arg 0: anim battler +// arg 1: x pixel offset +// arg 2: y pixel offset +// arg 3: num times to shake +// arg 4: frame delay +void AnimTask_ShakeMon2(u8 taskId) +{ + u8 spriteId; + bool8 destroy = FALSE; + u8 battlerId; + + if (gBattleAnimArgs[0] < 4) + { + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + if (spriteId == 0xff) + { + DestroyAnimVisualTask(taskId); + return; + } + } + else if (gBattleAnimArgs[0] != 8) + { + switch (gBattleAnimArgs[0]) + { + case 4: + battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + break; + case 5: + battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + break; + case 6: + battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + break; + case 7: + default: + battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + break; + } + + if (IsBattlerSpriteVisible(battlerId) == FALSE) + destroy = TRUE; + + spriteId = gBattlerSpriteIds[battlerId]; + } + else + { + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; + } + + if (destroy) + { + DestroyAnimVisualTask(taskId); + return; + } + + gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; + gSprites[spriteId].pos2.y = gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[3]; + gTasks[taskId].data[2] = gBattleAnimArgs[4]; + gTasks[taskId].data[3] = gBattleAnimArgs[4]; + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = gBattleAnimArgs[2]; + gTasks[taskId].func = AnimTask_ShakeMon2Step; + gTasks[taskId].func(taskId); +} + +void AnimTask_ShakeMon2Step(u8 taskId) +{ + if (gTasks[taskId].data[3] == 0) + { + if (gSprites[gTasks[taskId].data[0]].pos2.x == gTasks[taskId].data[4]) + gSprites[gTasks[taskId].data[0]].pos2.x = -gTasks[taskId].data[4]; + else + gSprites[gTasks[taskId].data[0]].pos2.x = gTasks[taskId].data[4]; + + if (gSprites[gTasks[taskId].data[0]].pos2.y == gTasks[taskId].data[5]) + gSprites[gTasks[taskId].data[0]].pos2.y = -gTasks[taskId].data[5]; + else + gSprites[gTasks[taskId].data[0]].pos2.y = gTasks[taskId].data[5]; + + gTasks[taskId].data[3] = gTasks[taskId].data[2]; + if (--gTasks[taskId].data[1] == 0) + { + gSprites[gTasks[taskId].data[0]].pos2.x = 0; + gSprites[gTasks[taskId].data[0]].pos2.y = 0; + DestroyAnimVisualTask(taskId); + return; + } + } + else + { + gTasks[taskId].data[3]--; + } +} + +// Task to facilitate simple shaking of a pokemon's picture in battle. +// The shaking alternates between the positive and negative versions of the specified pixel offsets +// with respect to the current location of the mon's picture. +// arg 0: battler +// arg 1: x offset +// arg 2: y offset +// arg 3: num shakes +// arg 4: delay +void AnimTask_ShakeMonInPlace(u8 taskId) +{ + u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + if (spriteId == 0xff) + { + DestroyAnimVisualTask(taskId); + return; + } + + gSprites[spriteId].pos2.x += gBattleAnimArgs[1]; + gSprites[spriteId].pos2.y += gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = gBattleAnimArgs[3]; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[4] = gBattleAnimArgs[4]; + gTasks[taskId].data[5] = gBattleAnimArgs[1] * 2; + gTasks[taskId].data[6] = gBattleAnimArgs[2] * 2; + gTasks[taskId].func = AnimTask_ShakeMonInPlaceStep; + gTasks[taskId].func(taskId); +} + +void AnimTask_ShakeMonInPlaceStep(u8 taskId) +{ + if (gTasks[taskId].data[3] == 0) + { + if (gTasks[taskId].data[1] & 1) + { + gSprites[gTasks[taskId].data[0]].pos2.x += gTasks[taskId].data[5]; + gSprites[gTasks[taskId].data[0]].pos2.y += gTasks[taskId].data[6]; + } + else + { + gSprites[gTasks[taskId].data[0]].pos2.x -= gTasks[taskId].data[5]; + gSprites[gTasks[taskId].data[0]].pos2.y -= gTasks[taskId].data[6]; + } + gTasks[taskId].data[3] = gTasks[taskId].data[4]; + if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2]) + { + if (gTasks[taskId].data[1] & 1) + { + gSprites[gTasks[taskId].data[0]].pos2.x += gTasks[taskId].data[5] / 2; + gSprites[gTasks[taskId].data[0]].pos2.y += gTasks[taskId].data[6] / 2; + } + else + { + gSprites[gTasks[taskId].data[0]].pos2.x -= gTasks[taskId].data[5] / 2; + gSprites[gTasks[taskId].data[0]].pos2.y -= gTasks[taskId].data[6] / 2; + } + DestroyAnimVisualTask(taskId); + return; + } + } + else + { + gTasks[taskId].data[3]--; + } +} + +// Shakes a mon bg horizontally and moves it downward linearly. +// arg 0: battler +// arg 1: x offset +// arg 2: frame delay between each movement +// arg 3: downward speed (subpixel) +// arg 4: duration +void AnimTask_ShakeAndSinkMon(u8 taskId) +{ + u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + gSprites[spriteId].pos2.x = gBattleAnimArgs[1]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].data[3] = gBattleAnimArgs[3]; + gTasks[taskId].data[4] = gBattleAnimArgs[4]; + gTasks[taskId].func = AnimTask_ShakeAndSinkMonStep; + gTasks[taskId].func(taskId); +} + +void AnimTask_ShakeAndSinkMonStep(u8 taskId) +{ + s16 x; + u8 spriteId; + spriteId = gTasks[taskId].data[0]; + x = gTasks[taskId].data[1]; + if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++) + { + gTasks[taskId].data[8] = 0; + if (gSprites[spriteId].pos2.x == x) + x = -x; + + gSprites[spriteId].pos2.x += x; + } + + gTasks[taskId].data[1] = x; + gTasks[taskId].data[9] += gTasks[taskId].data[3]; + gSprites[spriteId].pos2.y = gTasks[taskId].data[9] >> 8; + if (--gTasks[taskId].data[4] == 0) + { + DestroyAnimVisualTask(taskId); + return; + } +} + +// Moves a mon bg picture along an elliptical path that begins +// and ends at the mon's origin location. +// arg 0: battler +// arg 1: ellipse width +// arg 2: ellipse height +// arg 3: num loops +// arg 4: speed (valid values are 0-5) +void AnimTask_TranslateMonElliptical(u8 taskId) +{ + u8 i; + u8 spriteId; + u8 wavePeriod; + + wavePeriod = 1; + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + if (gBattleAnimArgs[4] > 5) + gBattleAnimArgs[4] = 5; + + for (i = 0; i < gBattleAnimArgs[4]; i++) + { + wavePeriod <<= 1; + } + + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].data[3] = gBattleAnimArgs[3]; + gTasks[taskId].data[4] = wavePeriod; + gTasks[taskId].func = sub_80D57B8; + gTasks[taskId].func(taskId); +} + +void sub_80D57B8(u8 taskId) +{ + u8 spriteId = gTasks[taskId].data[0]; + gSprites[spriteId].pos2.x = Sin(gTasks[taskId].data[5], gTasks[taskId].data[1]); + gSprites[spriteId].pos2.y = -Cos(gTasks[taskId].data[5], gTasks[taskId].data[2]); + gSprites[spriteId].pos2.y += gTasks[taskId].data[2]; + gTasks[taskId].data[5] += gTasks[taskId].data[4]; + gTasks[taskId].data[5] &= 0xff; + + if (gTasks[taskId].data[5] == 0) + gTasks[taskId].data[3]--; + + if (gTasks[taskId].data[3] == 0) + { + gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].pos2.y = 0; + DestroyAnimVisualTask(taskId); + return; + } +} + +// Moves a mon bg picture along an elliptical path that begins +// and ends at the mon's origin location. Reverses the direction +// of the path if it's not on the player's side of the battle. +// arg 0: battler +// arg 1: ellipse width +// arg 2: ellipse height +// arg 3: num loops +// arg 4: speed (valid values are 0-5) +void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId) +{ + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + + AnimTask_TranslateMonElliptical(taskId); +} + +// Performs a simple horizontal lunge, where the mon moves +// horizontally, and then moves back in the opposite direction. +// arg 0: duration of single lunge direction +// arg 1: x pixel delta that is applied each frame +static void DoHorizontalLunge(struct Sprite *sprite) +{ + sprite->invisible = TRUE; + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + sprite->data[1] = -gBattleAnimArgs[1]; + else + sprite->data[1] = gBattleAnimArgs[1]; + + sprite->data[0] = gBattleAnimArgs[0]; + sprite->data[2] = 0; + sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; + sprite->data[4] = gBattleAnimArgs[0]; + StoreSpriteCallbackInData6(sprite, ReverseHorizontalLungeDirection); + sprite->callback = TranslateMonSpriteLinear; +} + +static void ReverseHorizontalLungeDirection(struct Sprite *sprite) +{ + sprite->data[0] = sprite->data[4]; + sprite->data[1] = -sprite->data[1]; + sprite->callback = TranslateMonSpriteLinear; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +// Performs a simple vertical dipping motion, where moves vertically, and then +// moves back in the opposite direction. +// arg 0: duration of single dip direction +// arg 1: y pixel delta that is applied each frame +// arg 2: battler +static void DoVerticalDip(struct Sprite *sprite) +{ + u8 spriteId; + sprite->invisible = TRUE; + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); + sprite->data[0] = gBattleAnimArgs[0]; + sprite->data[1] = 0; + sprite->data[2] = gBattleAnimArgs[1]; + sprite->data[3] = spriteId; + sprite->data[4] = gBattleAnimArgs[0]; + StoreSpriteCallbackInData6(sprite, ReverseVerticalDipDirection); + sprite->callback = TranslateMonSpriteLinear; +} + +static void ReverseVerticalDipDirection(struct Sprite *sprite) +{ + sprite->data[0] = sprite->data[4]; + sprite->data[2] = -sprite->data[2]; + sprite->callback = TranslateMonSpriteLinear; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +// Linearly slides a mon's bg picture back to its original sprite position. +// The sprite parameter is a dummy sprite used for facilitating the movement with its callback. +// arg 0: 1 = target or 0 = attacker +// arg 1: direction (0 = horizontal and vertical, 1 = horizontal only, 2 = vertical only) +// arg 2: duration +static void SlideMonToOriginalPos(struct Sprite *sprite) +{ + u32 monSpriteId; + if (!gBattleAnimArgs[0]) + monSpriteId = gBattlerSpriteIds[gBattleAnimAttacker]; + else + monSpriteId = gBattlerSpriteIds[gBattleAnimTarget]; + + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gSprites[monSpriteId].pos1.x + gSprites[monSpriteId].pos2.x; + sprite->data[2] = gSprites[monSpriteId].pos1.x; + sprite->data[3] = gSprites[monSpriteId].pos1.y + gSprites[monSpriteId].pos2.y; + sprite->data[4] = gSprites[monSpriteId].pos1.y; + InitSpriteDataForLinearTranslation(sprite); + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = gSprites[monSpriteId].pos2.x; + sprite->data[6] = gSprites[monSpriteId].pos2.y; + sprite->invisible = TRUE; + + if (gBattleAnimArgs[1] == 1) + sprite->data[2] = 0; + else if (gBattleAnimArgs[1] == 2) + sprite->data[1] = 0; + + sprite->data[7] = gBattleAnimArgs[1]; + sprite->data[7] |= monSpriteId << 8; + sprite->callback = SlideMonToOriginalPosStep; +} + +static void SlideMonToOriginalPosStep(struct Sprite *sprite) +{ + s8 monSpriteId; + u8 lo; + struct Sprite *monSprite; + + lo = sprite->data[7] & 0xff; + monSpriteId = sprite->data[7] >> 8; + monSprite = &gSprites[monSpriteId]; + if (sprite->data[0] == 0) + { + if (lo < 2) + monSprite->pos2.x = 0; + + if (lo == 2 || lo == 0) + monSprite->pos2.y = 0; + + DestroyAnimSprite(sprite); + } + else + { + sprite->data[0]--; + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + monSprite->pos2.x = (s8)(sprite->data[3] >> 8) + sprite->data[5]; + monSprite->pos2.y = (s8)(sprite->data[4] >> 8) + sprite->data[6]; + } +} + +// Linearly translates a mon to a target offset. The horizontal offset +// is mirrored for the opponent's pokemon, and the vertical offset +// is only mirrored if arg 3 is set to 1. +// arg 0: 0 = attacker, 1 = target +// arg 1: target x pixel offset +// arg 2: target y pixel offset +// arg 3: mirror vertical translation for opposite battle side +// arg 4: duration +static void SlideMonToOffset(struct Sprite *sprite) +{ + u8 battler; + u8 monSpriteId; + if (!gBattleAnimArgs[0]) + battler = gBattleAnimAttacker; + else + battler = gBattleAnimTarget; + + monSpriteId = gBattlerSpriteIds[battler]; + if (GetBattlerSide(battler) != B_SIDE_PLAYER) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + if (gBattleAnimArgs[3] == 1) + { + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + } + } + + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[1] = gSprites[monSpriteId].pos1.x; + sprite->data[2] = gSprites[monSpriteId].pos1.x + gBattleAnimArgs[1]; + sprite->data[3] = gSprites[monSpriteId].pos1.y; + sprite->data[4] = gSprites[monSpriteId].pos1.y + gBattleAnimArgs[2]; + InitSpriteDataForLinearTranslation(sprite); + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = monSpriteId; + sprite->invisible = TRUE; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + sprite->callback = TranslateMonSpriteLinearFixedPoint; +} + +static void sub_80D5B48(struct Sprite *sprite) +{ + u8 spriteId; + u8 battlerId; + sprite->invisible = TRUE; + if (!gBattleAnimArgs[0]) + { + battlerId = gBattleAnimAttacker; + } + else + { + battlerId = gBattleAnimTarget; + } + spriteId = gBattlerSpriteIds[battlerId]; + if (GetBattlerSide(battlerId)) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + if (gBattleAnimArgs[3] == 1) + { + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + } + } + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x; + sprite->data[2] = sprite->data[1] + gBattleAnimArgs[1]; + sprite->data[3] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y; + sprite->data[4] = sprite->data[3] + gBattleAnimArgs[2]; + InitSpriteDataForLinearTranslation(sprite); + sprite->data[3] = gSprites[spriteId].pos2.x << 8; + sprite->data[4] = gSprites[spriteId].pos2.y << 8; + sprite->data[5] = spriteId; + sprite->data[6] = gBattleAnimArgs[5]; + if (!gBattleAnimArgs[5]) + { + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + } + else + { + StoreSpriteCallbackInData6(sprite, sub_80D5C20); + } + sprite->callback = TranslateMonSpriteLinearFixedPoint; +} + + +static void sub_80D5C20(struct Sprite *sprite) +{ + gSprites[sprite->data[5]].pos2.x = 0; + gSprites[sprite->data[5]].pos2.y = 0; + DestroyAnimSprite(sprite); +} + +// Task to facilitate a two-part translation animation, in which the sprite +// is first translated in an arc to one position. Then, it "lunges" to a target +// x offset. Used in TAKE_DOWN, for example. +// arg 0: anim bank +// arg 1: horizontal speed (subpixel) +// arg 2: wave amplitude +// arg 3: first duration +// arg 4: delay before starting lunge +// arg 5: target x offset for lunge +// arg 6: lunge duration +void AnimTask_WindUpLunge(u8 taskId) +{ + s16 wavePeriod = 0x8000 / gBattleAnimArgs[3]; + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + gBattleAnimArgs[5] = -gBattleAnimArgs[5]; + } + gTasks[taskId].data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + gTasks[taskId].data[1] = (gBattleAnimArgs[1] << 8) / gBattleAnimArgs[3]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].data[3] = gBattleAnimArgs[3]; + gTasks[taskId].data[4] = gBattleAnimArgs[4]; + gTasks[taskId].data[5] = (gBattleAnimArgs[5] << 8) / gBattleAnimArgs[6]; + gTasks[taskId].data[6] = gBattleAnimArgs[6]; + gTasks[taskId].data[7] = wavePeriod; + gTasks[taskId].func = AnimTask_WindUpLungePart1; +} + +void AnimTask_WindUpLungePart1(u8 taskId) +{ + u8 spriteId; + spriteId = gTasks[taskId].data[0]; + gTasks[taskId].data[11] += gTasks[taskId].data[1]; + gSprites[spriteId].pos2.x = gTasks[taskId].data[11] >> 8; + gSprites[spriteId].pos2.y = Sin((u8)(gTasks[taskId].data[10] >> 8), gTasks[taskId].data[2]); + gTasks[taskId].data[10] += gTasks[taskId].data[7]; + if (--gTasks[taskId].data[3] == 0) + { + gTasks[taskId].func = AnimTask_WindUpLungePart2; + } +} + +void AnimTask_WindUpLungePart2(u8 taskId) +{ + u8 spriteId; + if (gTasks[taskId].data[4] > 0) + { + gTasks[taskId].data[4]--; + } + else + { + spriteId = gTasks[taskId].data[0]; + gTasks[taskId].data[12] += gTasks[taskId].data[5]; + gSprites[spriteId].pos2.x = (gTasks[taskId].data[12] >> 8) + (gTasks[taskId].data[11] >> 8); + if (--gTasks[taskId].data[6] == 0) + { + DestroyAnimVisualTask(taskId); + return; + } + } +} + +void sub_80D5DB0(u8 taskId) +{ + u8 spriteId; + switch (gBattleAnimArgs[0]) + { + case 0: + case 1: + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + break; + case 2: + if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) + { + DestroyAnimVisualTask(taskId); + return; + } + spriteId = gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]; + break; + case 3: + if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) + { + DestroyAnimVisualTask(taskId); + return; + } + spriteId = gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)]; + break; + default: + DestroyAnimVisualTask(taskId); + return; + } + gTasks[taskId].data[0] = spriteId; + if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER) + { + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + } + else + { + gTasks[taskId].data[1] = -gBattleAnimArgs[1]; + } + gTasks[taskId].func = sub_80A8B3C; +} + +void sub_80A8B3C(u8 taskId) +{ + u8 spriteId = gTasks[taskId].data[0]; + gSprites[spriteId].pos2.x += gTasks[taskId].data[1]; + if (gSprites[spriteId].pos2.x + gSprites[spriteId].pos1.x + 0x20 > 0x130u) + { + DestroyAnimVisualTask(taskId); + return; + } +} + +// Task that facilitates translating the mon bg picture back and forth +// in a swaying motion (uses Sine wave). It can sway either horizontally +// or vertically, but not both. +// arg 0: direction (0 = horizontal, 1 = vertical) +// arg 1: wave amplitude +// arg 2: wave period +// arg 3: num sways +// arg 4: which mon (0 = attacker, 1`= target) +void AnimTask_SwayMon(u8 taskId) +{ + u8 spriteId; + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[4]); + gTasks[taskId].data[0] = gBattleAnimArgs[0]; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].data[3] = gBattleAnimArgs[3]; + gTasks[taskId].data[4] = spriteId; + + if (gBattleAnimArgs[4] == 0) + gTasks[taskId].data[5] = gBattleAnimAttacker; + else + gTasks[taskId].data[5] = gBattleAnimTarget; + + gTasks[taskId].data[12] = 1; + gTasks[taskId].func = AnimTask_SwayMonStep; +} + +void AnimTask_SwayMonStep(u8 taskId) +{ + s16 sineValue; + u8 spriteId; + int waveIndex; + u16 sineIndex; + + spriteId = gTasks[taskId].data[4]; + sineIndex = gTasks[taskId].data[10] + gTasks[taskId].data[2]; + gTasks[taskId].data[10] = sineIndex; + waveIndex = sineIndex >> 8; + sineValue = Sin(waveIndex, gTasks[taskId].data[1]); + + if (gTasks[taskId].data[0] == 0) + { + gSprites[spriteId].pos2.x = sineValue; + } + else + { + if (GetBattlerSide(gTasks[taskId].data[5]) == B_SIDE_PLAYER) + { + gSprites[spriteId].pos2.y = (sineValue >= 0) ? sineValue : -sineValue; + } + else + { + gSprites[spriteId].pos2.y = (sineValue >= 0) ? -sineValue : sineValue; + } + } + + if (((waveIndex >= 0x80u) && (gTasks[taskId].data[11] == 0) && (gTasks[taskId].data[12] == 1)) + || ((waveIndex < 0x7fu) && (gTasks[taskId].data[11] == 1) && (gTasks[taskId].data[12] == 0))) + { + gTasks[taskId].data[11] ^= 1; + gTasks[taskId].data[12] ^= 1; + if (--gTasks[taskId].data[3] == 0) + { + gSprites[spriteId].pos2.x = 0; + gSprites[spriteId].pos2.y = 0; + DestroyAnimVisualTask(taskId); + return; + } + } +} + +// Scales a mon's sprite, and then scales back to its original dimensions. +// arg 0: x scale delta +// arg 1: y scale delta +// arg 2: duration +// arg 3: anim bank +// arg 4: sprite object mode +void AnimTask_ScaleMonAndRestore(u8 taskId) +{ + u8 spriteId; + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]); + PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]); + gTasks[taskId].data[0] = gBattleAnimArgs[0]; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].data[3] = gBattleAnimArgs[2]; + gTasks[taskId].data[4] = spriteId; + gTasks[taskId].data[10] = 0x100; + gTasks[taskId].data[11] = 0x100; + gTasks[taskId].func = AnimTask_ScaleMonAndRestoreStep; +} + +void AnimTask_ScaleMonAndRestoreStep(u8 taskId) +{ + u8 spriteId; + gTasks[taskId].data[10] += gTasks[taskId].data[0]; + gTasks[taskId].data[11] += gTasks[taskId].data[1]; + spriteId = gTasks[taskId].data[4]; + SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[11], 0); + if (--gTasks[taskId].data[2] == 0) + { + if (gTasks[taskId].data[3] > 0) + { + gTasks[taskId].data[0] = -gTasks[taskId].data[0]; + gTasks[taskId].data[1] = -gTasks[taskId].data[1]; + gTasks[taskId].data[2] = gTasks[taskId].data[3]; + gTasks[taskId].data[3] = 0; + } + else + { + ResetSpriteRotScale(spriteId); + DestroyAnimVisualTask(taskId); + return; + } + } +} + +void sub_80D6134(u8 taskId) +{ + u8 spriteId; + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); + PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = gBattleAnimArgs[0]; + if (gBattleAnimArgs[3] != 1) + { + gTasks[taskId].data[3] = 0; + } + else + { + gTasks[taskId].data[3] = gBattleAnimArgs[0] * gBattleAnimArgs[1]; + } + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = spriteId; + gTasks[taskId].data[6] = gBattleAnimArgs[3]; + if (IsContest()) + { + gTasks[taskId].data[7] = 1; + } + else + { + if (gBattleAnimArgs[2] == 0) + { + gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimAttacker); + } + else + { + gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimTarget); + } + } + if (gTasks[taskId].data[7]) + { + if (!IsContest()) + { + gTasks[taskId].data[3] *= -1; + gTasks[taskId].data[4] *= -1; + } + } + gTasks[taskId].func = sub_80D6308; +} + +void sub_80D622C(u8 taskId) +{ + u8 spriteId; + spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); + PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = gBattleAnimArgs[0]; + if (gBattleAnimArgs[2] == 0) + { + if (GetBattlerSide(gBattleAnimAttacker)) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + } + } + else + { + if (GetBattlerSide(gBattleAnimTarget)) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + } + } + if (gBattleAnimArgs[3] != 1) + { + gTasks[taskId].data[3] = 0; + } + else + { + gTasks[taskId].data[3] = gBattleAnimArgs[0] * gBattleAnimArgs[1]; + } + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = spriteId; + gTasks[taskId].data[6] = gBattleAnimArgs[3]; + gTasks[taskId].data[7] = 1; + gTasks[taskId].data[3] *= -1; + gTasks[taskId].data[4] *= -1; + gTasks[taskId].func = sub_80D6308; +} + +void sub_80D6308(u8 taskId) +{ + gTasks[taskId].data[3] += gTasks[taskId].data[4]; + SetSpriteRotScale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]); + if (gTasks[taskId].data[7]) + { + SetBattlerSpriteYOffsetFromRotation(gTasks[taskId].data[5]); + } + if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2]) + { + switch (gTasks[taskId].data[6]) + { + case 1: + ResetSpriteRotScale(gTasks[taskId].data[5]); + case 0: + default: + DestroyAnimVisualTask(taskId); + return; + case 2: + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[4] *= -1; + gTasks[taskId].data[6] = 1; + break; + } + } +} + +void sub_80D6388(u8 taskId) +{ + if (!gBattleAnimArgs[0]) + { + gTasks[taskId].data[15] = gAnimMovePower / 12; + if (gTasks[taskId].data[15] < 1) + { + gTasks[taskId].data[15] = 1; + } + if (gTasks[taskId].data[15] > 16) + { + gTasks[taskId].data[15] = 16; + } + } + else + { + gTasks[taskId].data[15] = gAnimMoveDmg / 12; + if (gTasks[taskId].data[15] < 1) + { + gTasks[taskId].data[15] = 1; + } + if (gTasks[taskId].data[15] > 16) + { + gTasks[taskId].data[15] = 16; + } + } + gTasks[taskId].data[14] = gTasks[taskId].data[15] / 2; + gTasks[taskId].data[13] = gTasks[taskId].data[14] + (gTasks[taskId].data[15] & 1); + gTasks[taskId].data[12] = 0; + gTasks[taskId].data[10] = gBattleAnimArgs[3]; + gTasks[taskId].data[11] = gBattleAnimArgs[4]; + gTasks[taskId].data[7] = GetAnimBattlerSpriteId(1); + gTasks[taskId].data[8] = gSprites[gTasks[taskId].data[7]].pos2.x; + gTasks[taskId].data[9] = gSprites[gTasks[taskId].data[7]].pos2.y; + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + gTasks[taskId].data[2] = gBattleAnimArgs[2]; + gTasks[taskId].func = sub_80D646C; +} + +void sub_80D646C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (++task->data[0] > task->data[1]) + { + task->data[0] = 0; + task->data[12] = (task->data[12] + 1) & 1; + if (task->data[10]) + { + if (task->data[12]) + { + gSprites[task->data[7]].pos2.x = task->data[8] + task->data[13]; + } + else + { + gSprites[task->data[7]].pos2.x = task->data[8] - task->data[14]; + } + } + if (task->data[11]) + { + if (task->data[12]) + { + gSprites[task->data[7]].pos2.y = task->data[15]; + } + else + { + gSprites[task->data[7]].pos2.y = 0; + } + } + if (!--task->data[2]) + { + gSprites[task->data[7]].pos2.x = 0; + gSprites[task->data[7]].pos2.y = 0; + DestroyAnimVisualTask(taskId); + return; + } + } +} diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c new file mode 100644 index 000000000..372377a0c --- /dev/null +++ b/src/battle_anim_mons.c @@ -0,0 +1,2464 @@ +#include "global.h" +#include "battle.h" +#include "battle_anim.h" +#include "bg.h" +#include "contest.h" +#include "data2.h" +#include "decompress.h" +#include "dma3.h" +#include "gpu_regs.h" +#include "alloc.h" +#include "palette.h" +#include "pokemon_icon.h" +#include "sprite.h" +#include "task.h" +#include "trig.h" +#include "util.h" +#include "constants/battle_anim.h" +#include "constants/species.h" + +#define GET_UNOWN_LETTER(personality) (( \ + (((personality & 0x03000000) >> 24) << 6) \ + | (((personality & 0x00030000) >> 16) << 4) \ + | (((personality & 0x00000300) >> 8) << 2) \ + | (((personality & 0x00000003) >> 0) << 0) \ +) % 28) + +#define IS_DOUBLE_BATTLE() ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + +extern const struct OamData gUnknown_0852497C; +extern const struct MonCoords gMonFrontPicCoords[]; +extern const struct MonCoords gMonBackPicCoords[]; +extern const u8 gEnemyMonElevation[]; +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; +extern const union AffineAnimCmd *gUnknown_082FF6C0[]; + +static void sub_80A6FB4(struct Sprite *sprite); +static void sub_80A7144(struct Sprite *sprite); +static void sub_80A791C(struct Sprite *sprite); +static void sub_80A8DFC(struct Sprite *sprite); +static void sub_80A8E88(struct Sprite *sprite); +static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId); +static void AnimTask_BlendMonInAndOutSetup(struct Task *task); +static void sub_80A7AFC(u8 taskId); +static void sub_80A8CAC(u8 taskId); +static void AnimTask_BlendMonInAndOutStep(u8 taskId); +static bool8 sub_80A7238(void); +static void sub_80A8D78(struct Task *task, u8 taskId); + +// EWRAM vars +EWRAM_DATA static union AffineAnimCmd *gAnimTaskAffineAnim = NULL; + +// Const rom data +static const struct UCoords8 sBattlerCoords[][4] = +{ + { + { 72, 80 }, + { 176, 40 }, + { 48, 40 }, + { 112, 80 }, + }, + { + { 32, 80 }, + { 200, 40 }, + { 90, 88 }, + { 152, 32 }, + }, +}; + +// One entry for each of the four Castform forms. +const struct MonCoords gCastformFrontSpriteCoords[] = +{ + { .size = 0x44, .y_offset = 17 }, // NORMAL + { .size = 0x66, .y_offset = 9 }, // SUN + { .size = 0x46, .y_offset = 9 }, // RAIN + { .size = 0x86, .y_offset = 8 }, // HAIL +}; + +static const u8 sCastformElevations[] = +{ + 13, // NORMAL + 14, // SUN + 13, // RAIN + 13, // HAIL +}; + +// Y position of the backsprite for each of the four Castform forms. +static const u8 sCastformBackSpriteYCoords[] = +{ + 0, // NORMAL + 0, // SUN + 0, // RAIN + 0, // HAIL +}; + +static const struct SpriteTemplate sUnknown_08525F90[] = +{ + { + .tileTag = 55125, + .paletteTag = 55125, + .oam = &gUnknown_0852497C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55126, + .paletteTag = 55126, + .oam = &gUnknown_0852497C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + } +}; + +static const struct SpriteSheet sUnknown_08525FC0[] = +{ + { gMiscBlank_Gfx, 0x800, 55125, }, + { gMiscBlank_Gfx, 0x800, 55126, }, +}; + +u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType) +{ + u8 retVal; + u16 species; + struct BattleSpriteInfo *spriteInfo; + + if (IsContest()) + { + if (coordType == BATTLER_COORD_Y_PIC_OFFSET && battlerId == 3) + coordType = BATTLER_COORD_Y; + } + + switch (coordType) + { + case BATTLER_COORD_X: + case BATTLER_COORD_X_2: + retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].x; + break; + case BATTLER_COORD_Y: + retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y; + break; + case BATTLER_COORD_Y_PIC_OFFSET: + case BATTLER_COORD_Y_PIC_OFFSET_DEFAULT: + default: + if (IsContest()) + { + if (gContestResources->field_18->unk4_0) + species = gContestResources->field_18->unk2; + else + species = gContestResources->field_18->species; + } + else + { + if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + { + spriteInfo = gBattleSpritesDataPtr->battlerData; + if (!spriteInfo[battlerId].transformSpecies) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + else + species = spriteInfo[battlerId].transformSpecies; + } + else + { + spriteInfo = gBattleSpritesDataPtr->battlerData; + if (!spriteInfo[battlerId].transformSpecies) + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + else + species = spriteInfo[battlerId].transformSpecies; + } + } + if (coordType == BATTLER_COORD_Y_PIC_OFFSET) + retVal = GetBattlerSpriteFinal_Y(battlerId, species, TRUE); + else + retVal = GetBattlerSpriteFinal_Y(battlerId, species, FALSE); + break; + } + + return retVal; +} + +u8 GetBattlerYDelta(u8 battlerId, u16 species) +{ + u16 letter; + u32 personality; + struct BattleSpriteInfo *spriteInfo; + u8 ret; + u16 coordSpecies; + + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || IsContest()) + { + if (species == SPECIES_UNOWN) + { + if (IsContest()) + { + if (gContestResources->field_18->unk4_0) + personality = gContestResources->field_18->unk10; + else + personality = gContestResources->field_18->unk8; + } + else + { + spriteInfo = gBattleSpritesDataPtr->battlerData; + if (!spriteInfo[battlerId].transformSpecies) + personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); + else + personality = gTransformedPersonalities[battlerId]; + } + letter = GET_UNOWN_LETTER(personality); + if (!letter) + coordSpecies = species; + else + coordSpecies = letter + SPECIES_UNOWN_B - 1; + ret = gMonBackPicCoords[coordSpecies].y_offset; + } + else if (species == SPECIES_CASTFORM) + { + ret = sCastformBackSpriteYCoords[gBattleMonForms[battlerId]]; + } + else if (species > NUM_SPECIES) + { + ret = gMonBackPicCoords[0].y_offset; + } + else + { + ret = gMonBackPicCoords[species].y_offset; + } + } + else + { + if (species == SPECIES_UNOWN) + { + spriteInfo = gBattleSpritesDataPtr->battlerData; + if (!spriteInfo[battlerId].transformSpecies) + personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); + else + personality = gTransformedPersonalities[battlerId]; + letter = GET_UNOWN_LETTER(personality); + if (!letter) + coordSpecies = species; + else + coordSpecies = letter + SPECIES_UNOWN_B - 1; + ret = gMonFrontPicCoords[coordSpecies].y_offset; + } + else if (species == SPECIES_CASTFORM) + { + ret = gCastformFrontSpriteCoords[gBattleMonForms[battlerId]].y_offset; + } + else if (species > NUM_SPECIES) + { + ret = gMonFrontPicCoords[0].y_offset; + } + else + { + ret = gMonFrontPicCoords[species].y_offset; + } + } + return ret; +} + +u8 GetBattlerElevation(u8 battlerId, u16 species) +{ + u8 ret = 0; + if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT) + { + if (!IsContest()) + { + if (species == SPECIES_CASTFORM) + ret = sCastformElevations[gBattleMonForms[battlerId]]; + else if (species > NUM_SPECIES) + ret = gEnemyMonElevation[0]; + else + ret = gEnemyMonElevation[species]; + } + } + return ret; +} + +u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3) +{ + u16 offset; + u8 y; + + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || IsContest()) + { + offset = GetBattlerYDelta(battlerId, species); + } + else + { + offset = GetBattlerYDelta(battlerId, species); + offset -= GetBattlerElevation(battlerId, species); + } + y = offset + sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y; + if (a3) + { + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) + y += 8; + if (y > 104) + y = 104; + } + return y; +} + +u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType) +{ + u16 species; + struct BattleSpriteInfo *spriteInfo; + + if (coordType == BATTLER_COORD_Y_PIC_OFFSET || coordType == BATTLER_COORD_Y_PIC_OFFSET_DEFAULT) + { + if (IsContest()) + { + if (gContestResources->field_18->unk4_0) + species = gContestResources->field_18->unk2; + else + species = gContestResources->field_18->species; + } + else + { + spriteInfo = gBattleSpritesDataPtr->battlerData; + if (!spriteInfo[battlerId].transformSpecies) + species = gAnimBattlerSpecies[battlerId]; + else + species = spriteInfo[battlerId].transformSpecies; + } + if (coordType == BATTLER_COORD_Y_PIC_OFFSET) + return GetBattlerSpriteFinal_Y(battlerId, species, TRUE); + else + return GetBattlerSpriteFinal_Y(battlerId, species, FALSE); + } + else + { + return GetBattlerSpriteCoord(battlerId, coordType); + } +} + +u8 GetBattlerSpriteDefault_Y(u8 battlerId) +{ + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET_DEFAULT); +} + +u8 GetSubstituteSpriteDefault_Y(u8 battlerId) +{ + u16 y; + if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 16; + else + y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 17; + return y; +} + +u8 GetBattlerYCoordWithElevation(u8 battlerId) +{ + u16 species; + u8 y; + struct BattleSpriteInfo *spriteInfo; + + y = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y); + if (!IsContest()) + { + if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + { + spriteInfo = gBattleSpritesDataPtr->battlerData; + if (!spriteInfo[battlerId].transformSpecies) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + else + species = spriteInfo[battlerId].transformSpecies; + } + else + { + spriteInfo = gBattleSpritesDataPtr->battlerData; + if (!spriteInfo[battlerId].transformSpecies) + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + else + species = spriteInfo[battlerId].transformSpecies; + } + if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + y -= GetBattlerElevation(battlerId, species); + } + return y; +} + +u8 GetAnimBattlerSpriteId(u8 animBattler) +{ + u8 *sprites; + + if (animBattler == ANIM_ATTACKER) + { + if (IsBattlerSpritePresent(gBattleAnimAttacker)) + { + sprites = gBattlerSpriteIds; + return sprites[gBattleAnimAttacker]; + } + else + { + return 0xff; + } + } + else if (animBattler == ANIM_TARGET) + { + if (IsBattlerSpritePresent(gBattleAnimTarget)) + { + sprites = gBattlerSpriteIds; + return sprites[gBattleAnimTarget]; + } + else + { + return 0xff; + } + } + else if (animBattler == ANIM_ATK_PARTNER) + { + if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) + return 0xff; + else + return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]; + } + else + { + if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) + return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)]; + else + return 0xff; + } +} + +void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*callback)(struct Sprite*)) +{ + sprite->data[6] = (u32)(callback) & 0xffff; + sprite->data[7] = (u32)(callback) >> 16; +} + +void SetCallbackToStoredInData6(struct Sprite *sprite) +{ + u32 callback = (u16)sprite->data[6] | (sprite->data[7] << 16); + sprite->callback = (void (*)(struct Sprite *))callback; +} + +void TranslateSpriteInCircleOverDuration(struct Sprite *sprite) +{ + if (sprite->data[3]) + { + sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]); + sprite->data[0] += sprite->data[2]; + if (sprite->data[0] >= 0x100) + sprite->data[0] -= 0x100; + else if (sprite->data[0] < 0) + sprite->data[0] += 0x100; + sprite->data[3]--; + } + else + { + SetCallbackToStoredInData6(sprite); + } +} + +void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite) +{ + if (sprite->data[3]) + { + sprite->pos2.x = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); + sprite->data[0] += sprite->data[2]; + sprite->data[5] += sprite->data[4]; + if (sprite->data[0] >= 0x100) + sprite->data[0] -= 0x100; + else if (sprite->data[0] < 0) + sprite->data[0] += 0x100; + sprite->data[3]--; + } + else + { + SetCallbackToStoredInData6(sprite); + } +} + +void sub_80A63C8(struct Sprite *sprite) +{ + if (sprite->data[3]) + { + sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[4], sprite->data[1]); + sprite->data[0] += sprite->data[2]; + sprite->data[4] += sprite->data[5]; + if (sprite->data[0] >= 0x100) + sprite->data[0] -= 0x100; + else if (sprite->data[0] < 0) + sprite->data[0] += 0x100; + if (sprite->data[4] >= 0x100) + sprite->data[4] -= 0x100; + else if (sprite->data[4] < 0) + sprite->data[4] += 0x100; + sprite->data[3]--; + } + else + { + SetCallbackToStoredInData6(sprite); + } +} + +void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite) +{ + if (sprite->data[3]) + { + sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[0], sprite->data[4]); + sprite->data[0] += sprite->data[2]; + if (sprite->data[0] >= 0x100) + sprite->data[0] -= 0x100; + else if (sprite->data[0] < 0) + sprite->data[0] += 0x100; + sprite->data[3]--; + } + else + { + SetCallbackToStoredInData6(sprite); + } +} + +// Simply waits until the sprite's data[0] hits zero. +// This is used to let sprite anims or affine anims to run for a designated +// duration. +void WaitAnimForDuration(struct Sprite *sprite) +{ + if (sprite->data[0] > 0) + sprite->data[0]--; + else + SetCallbackToStoredInData6(sprite); +} + +static void sub_80A64D0(struct Sprite *sprite) +{ + sub_80A64EC(sprite); + sprite->callback = TranslateSpriteLinear; + sprite->callback(sprite); +} + +void sub_80A64EC(struct Sprite *sprite) +{ + s16 old; + int xDiff; + + if (sprite->data[1] > sprite->data[2]) + sprite->data[0] = -sprite->data[0]; + xDiff = sprite->data[2] - sprite->data[1]; + old = sprite->data[0]; + sprite->data[0] = abs(xDiff / sprite->data[0]); + sprite->data[2] = (sprite->data[4] - sprite->data[3]) / sprite->data[0]; + sprite->data[1] = old; +} + +void TranslateSpriteLinear(struct Sprite *sprite) +{ + if (sprite->data[0] > 0) + { + sprite->data[0]--; + sprite->pos2.x += sprite->data[1]; + sprite->pos2.y += sprite->data[2]; + } + else + { + SetCallbackToStoredInData6(sprite); + } +} + +void TranslateSpriteLinearFixedPoint(struct Sprite *sprite) +{ + if (sprite->data[0] > 0) + { + sprite->data[0]--; + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + sprite->pos2.x = sprite->data[3] >> 8; + sprite->pos2.y = sprite->data[4] >> 8; + } + else + { + SetCallbackToStoredInData6(sprite); + } +} + +static void TranslateSpriteLinearFixedPointIconFrame(struct Sprite *sprite) +{ + if (sprite->data[0] > 0) + { + sprite->data[0]--; + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + sprite->pos2.x = sprite->data[3] >> 8; + sprite->pos2.y = sprite->data[4] >> 8; + } + else + { + SetCallbackToStoredInData6(sprite); + } + + UpdateMonIconFrame(sprite); +} + +void sub_80A65EC(struct Sprite *sprite) +{ + sprite->data[1] = sprite->pos1.x + sprite->pos2.x; + sprite->data[3] = sprite->pos1.y + sprite->pos2.y; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + sprite->callback = sub_80A64D0; +} + +void TranslateMonSpriteLinear(struct Sprite *sprite) +{ + if (sprite->data[0] > 0) + { + sprite->data[0]--; + gSprites[sprite->data[3]].pos2.x += sprite->data[1]; + gSprites[sprite->data[3]].pos2.y += sprite->data[2]; + } + else + { + SetCallbackToStoredInData6(sprite); + } +} + +void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite) +{ + if (sprite->data[0] > 0) + { + sprite->data[0]--; + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + gSprites[sprite->data[5]].pos2.x = sprite->data[3] >> 8; + gSprites[sprite->data[5]].pos2.y = sprite->data[4] >> 8; + } + else + { + SetCallbackToStoredInData6(sprite); + } +} + +void TranslateSpriteLinearAndFlicker(struct Sprite *sprite) +{ + if (sprite->data[0] > 0) + { + sprite->data[0]--; + sprite->pos2.x = sprite->data[2] >> 8; + sprite->data[2] += sprite->data[1]; + sprite->pos2.y = sprite->data[4] >> 8; + sprite->data[4] += sprite->data[3]; + if (sprite->data[0] % sprite->data[5] == 0) + { + if (sprite->data[5]) + sprite->invisible ^= 1; + } + } + else + { + SetCallbackToStoredInData6(sprite); + } +} + +void DestroySpriteAndMatrix(struct Sprite *sprite) +{ + FreeSpriteOamMatrix(sprite); + DestroyAnimSprite(sprite); +} + +void sub_80A6760(struct Sprite *sprite) +{ + sprite->data[1] = sprite->pos1.x + sprite->pos2.x; + sprite->data[3] = sprite->pos1.y + sprite->pos2.y; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->callback = sub_80A64D0; +} + +void sub_80A67A4(struct Sprite *sprite) +{ + ResetPaletteStructByUid(sprite->data[5]); + DestroySpriteAndMatrix(sprite); +} + +void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + SetCallbackToStoredInData6(sprite); +} + +void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite) +{ + if (sprite->animEnded) + SetCallbackToStoredInData6(sprite); +} + +void DestroyAnimSpriteAndDisableBlend(struct Sprite *sprite) +{ + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + DestroyAnimSprite(sprite); +} + +void DestroyAnimVisualTaskAndDisableBlend(u8 taskId) +{ + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + DestroyAnimVisualTask(taskId); +} + +void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite) +{ + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); +} + +// Sets the initial x offset of the anim sprite depending on the horizontal orientation +// of the two involved mons. +void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 xOffset) +{ + u16 attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + u16 targetX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + + if (attackerX > targetX) + { + sprite->pos1.x -= xOffset; + } + else if (attackerX < targetX) + { + sprite->pos1.x += xOffset; + } + else + { + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + sprite->pos1.x -= xOffset; + else + sprite->pos1.x += xOffset; + } +} + +void InitAnimArcTranslation(struct Sprite *sprite) +{ + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; + InitAnimLinearTranslation(sprite); + sprite->data[6] = 0x8000 / sprite->data[0]; + sprite->data[7] = 0; +} + +bool8 TranslateAnimHorizontalArc(struct Sprite *sprite) +{ + if (AnimTranslateLinear(sprite)) + return TRUE; + sprite->data[7] += sprite->data[6]; + sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]); + return FALSE; +} + +bool8 TranslateAnimVerticalArc(struct Sprite *sprite) +{ + if (AnimTranslateLinear(sprite)) + return TRUE; + sprite->data[7] += sprite->data[6]; + sprite->pos2.x += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]); + return FALSE; +} + +void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite) +{ + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; +} + +void InitSpritePosToAnimTarget(struct Sprite *sprite, bool8 respectMonPicOffsets) +{ + // Battle anim sprites are automatically created at the anim target's center, which + // is why there is no else clause for the "respectMonPicOffsets" check. + if (!respectMonPicOffsets) + { + sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X); + sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y); + } + SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); + sprite->pos1.y += gBattleAnimArgs[1]; +} + +void InitSpritePosToAnimAttacker(struct Sprite *sprite, bool8 respectMonPicOffsets) +{ + if (!respectMonPicOffsets) + { + sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y); + } + else + { + sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + } + SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); + sprite->pos1.y += gBattleAnimArgs[1]; +} + +u8 GetBattlerSide(u8 battlerId) +{ + return GET_BATTLER_SIDE2(battlerId); +} + +u8 GetBattlerPosition(u8 battlerId) +{ + return GET_BATTLER_POSITION(battlerId); +} + +u8 GetBattlerAtPosition(u8 position) +{ + u8 i; + + for (i = 0; i < gBattlersCount; i++) + { + if (gBattlerPositions[i] == position) + break; + } + return i; +} + +bool8 IsBattlerSpritePresent(u8 battlerId) +{ + if (IsContest()) + { + if (gBattleAnimAttacker == battlerId) + return TRUE; + else if (gBattleAnimTarget == battlerId) + return TRUE; + else + return FALSE; + } + else + { + if (gBattlerPositions[battlerId] == 0xff) + { + return FALSE; + } + else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + { + if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_HP) != 0) + return TRUE; + } + else + { + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_HP) != 0) + return TRUE; + } + } + return FALSE; +} + +bool8 IsDoubleBattle(void) +{ + return IS_DOUBLE_BATTLE(); +} + +void sub_80A6B30(struct BattleAnimBgData *unk) +{ + if (IsContest()) + { + unk->bgTiles = gUnknown_0202305C; + unk->bgTilemap = (u16 *)gUnknown_02023060; + unk->paletteId = 14; + unk->bgId = 1; + unk->tilesOffset = 0; + unk->unused = 0; + } + else + { + unk->bgTiles = gUnknown_0202305C; + unk->bgTilemap = (u16 *)gUnknown_02023060; + unk->paletteId = 8; + unk->bgId = 1; + unk->tilesOffset = 0x200; + unk->unused = 0; + } +} + +void sub_80A6B90(struct BattleAnimBgData *unk, u32 arg1) +{ + if (IsContest()) + { + unk->bgTiles = gUnknown_0202305C; + unk->bgTilemap = (u16 *)gUnknown_02023060; + unk->paletteId = 14; + unk->bgId = 1; + unk->tilesOffset = 0; + unk->unused = 0; + } + else if (arg1 == 1) + { + sub_80A6B30(unk); + } + else + { + unk->bgTiles = gUnknown_0202305C; + unk->bgTilemap = (u16 *)gUnknown_02023060; + unk->paletteId = 9; + unk->bgId = 2; + unk->tilesOffset = 0x300; + unk->unused = 0; + } +} + +void sub_80A6BFC(struct BattleAnimBgData *unk, u8 unused) +{ + unk->bgTiles = gUnknown_0202305C; + unk->bgTilemap = (u16 *)gUnknown_02023060; + if (IsContest()) + { + unk->paletteId = 14; + unk->bgId = 1; + unk->tilesOffset = 0; + unk->unused = 0; + } + else if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) + { + unk->paletteId = 8; + unk->bgId = 1; + unk->tilesOffset = 0x200; + unk->unused = 0; + } + else + { + unk->paletteId = 9; + unk->bgId = 2; + unk->tilesOffset = 0x300; + unk->unused = 0; + } +} + +void sub_80A6C68(u32 bgId) +{ + struct BattleAnimBgData unkStruct; + + sub_80A6B90(&unkStruct, bgId); + CpuFill32(0, unkStruct.bgTiles, 0x2000); + LoadBgTiles(unkStruct.bgId, unkStruct.bgTiles, 0x2000, unkStruct.tilesOffset); + FillBgTilemapBufferRect(unkStruct.bgId, 0, 0, 0, 32, 64, 17); + CopyBgTilemapBufferToVram(unkStruct.bgId); +} + +void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset) +{ + CpuFill32(0, gUnknown_0202305C, 0x2000); + LZDecompressWram(src, gUnknown_0202305C); + LoadBgTiles(bgId, gUnknown_0202305C, 0x2000, tilesOffset); +} + +static void InitAnimBgTilemapBuffer(u32 bgId, const void *src) +{ + FillBgTilemapBufferRect(bgId, 0, 0, 0, 32, 64, 17); + CopyToBgTilemapBuffer(bgId, src, 0, 0); +} + +void AnimLoadCompressedBgTilemap(u32 bgId, const void *src) +{ + InitAnimBgTilemapBuffer(bgId, src); + CopyBgTilemapBufferToVram(bgId); +} + +void sub_80A6D60(struct BattleAnimBgData *unk, const void *src, u32 arg2) +{ + InitAnimBgTilemapBuffer(unk->bgId, src); + if (IsContest() == TRUE) + sub_80A4720(unk->paletteId, unk->bgTilemap, 0, arg2); + CopyBgTilemapBufferToVram(unk->bgId); +} + +u8 sub_80A6D94(void) +{ + if (IsContest()) + return 1; + else + return 2; +} + +void sub_80A6DAC(bool8 arg0) +{ + if (!arg0 || IsContest()) + { + SetAnimBgAttribute(3, BG_ANIM_SCREEN_SIZE, 0); + SetAnimBgAttribute(3, BG_ANIM_AREA_OVERFLOW_MODE, 1); + } + else + { + SetAnimBgAttribute(3, BG_ANIM_SCREEN_SIZE, 1); + SetAnimBgAttribute(3, BG_ANIM_AREA_OVERFLOW_MODE, 0); + } +} + +void sub_80A6DEC(struct Sprite *sprite) +{ + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; + InitSpriteDataForLinearTranslation(sprite); + sprite->callback = TranslateSpriteLinearFixedPointIconFrame; + sprite->callback(sprite); +} + +void InitSpriteDataForLinearTranslation(struct Sprite *sprite) +{ + s16 x = (sprite->data[2] - sprite->data[1]) << 8; + s16 y = (sprite->data[4] - sprite->data[3]) << 8; + sprite->data[1] = x / sprite->data[0]; + sprite->data[2] = y / sprite->data[0]; + sprite->data[4] = 0; + sprite->data[3] = 0; +} + +void InitAnimLinearTranslation(struct Sprite *sprite) +{ + int x = sprite->data[2] - sprite->data[1]; + int y = sprite->data[4] - sprite->data[3]; + bool8 movingLeft = x < 0; + bool8 movingUp = y < 0; + u16 xDelta = abs(x) << 8; + u16 yDelta = abs(y) << 8; + + xDelta = xDelta / sprite->data[0]; + yDelta = yDelta / sprite->data[0]; + + if (movingLeft) + xDelta |= 1; + else + xDelta &= ~1; + + if (movingUp) + yDelta |= 1; + else + yDelta &= ~1; + + sprite->data[1] = xDelta; + sprite->data[2] = yDelta; + sprite->data[4] = 0; + sprite->data[3] = 0; +} + +void StartAnimLinearTranslation(struct Sprite *sprite) +{ + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; + InitAnimLinearTranslation(sprite); + sprite->callback = sub_80A6F98; + sprite->callback(sprite); +} + +void sub_80A6F14(struct Sprite *sprite) +{ + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; + InitAnimLinearTranslation(sprite); + sprite->callback = sub_80A6FB4; + sprite->callback(sprite); +} + +bool8 AnimTranslateLinear(struct Sprite *sprite) +{ + u16 v1, v2, x, y; + + if (!sprite->data[0]) + return TRUE; + + v1 = sprite->data[1]; + v2 = sprite->data[2]; + x = sprite->data[3]; + y = sprite->data[4]; + x += v1; + y += v2; + + if (v1 & 1) + sprite->pos2.x = -(x >> 8); + else + sprite->pos2.x = x >> 8; + + if (v2 & 1) + sprite->pos2.y = -(y >> 8); + else + sprite->pos2.y = y >> 8; + + sprite->data[3] = x; + sprite->data[4] = y; + sprite->data[0]--; + return FALSE; +} + +void sub_80A6F98(struct Sprite *sprite) +{ + if (AnimTranslateLinear(sprite)) + SetCallbackToStoredInData6(sprite); +} + +static void sub_80A6FB4(struct Sprite *sprite) +{ + sub_8039E9C(sprite); + if (AnimTranslateLinear(sprite)) + SetCallbackToStoredInData6(sprite); +} + +void sub_80A6FD4(struct Sprite *sprite) +{ + int v1 = abs(sprite->data[2] - sprite->data[1]) << 8; + sprite->data[0] = v1 / sprite->data[0]; + InitAnimLinearTranslation(sprite); +} + +void sub_80A7000(struct Sprite *sprite) +{ + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; + sub_80A6FD4(sprite); + sprite->callback = sub_80A6F98; + sprite->callback(sprite); +} + +static void InitAnimFastLinearTranslation(struct Sprite *sprite) +{ + int xDiff = sprite->data[2] - sprite->data[1]; + int yDiff = sprite->data[4] - sprite->data[3]; + bool8 x_sign = xDiff < 0; + bool8 y_sign = yDiff < 0; + u16 x2 = abs(xDiff) << 4; + u16 y2 = abs(yDiff) << 4; + + x2 /= sprite->data[0]; + y2 /= sprite->data[0]; + + if (x_sign) + x2 |= 1; + else + x2 &= ~1; + + if (y_sign) + y2 |= 1; + else + y2 &= ~1; + + sprite->data[1] = x2; + sprite->data[2] = y2; + sprite->data[4] = 0; + sprite->data[3] = 0; +} + +void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite) +{ + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; + InitAnimFastLinearTranslation(sprite); + sprite->callback = sub_80A7144; + sprite->callback(sprite); +} + +bool8 AnimFastTranslateLinear(struct Sprite *sprite) +{ + u16 v1, v2, x, y; + + if (!sprite->data[0]) + return TRUE; + + v1 = sprite->data[1]; + v2 = sprite->data[2]; + x = sprite->data[3]; + y = sprite->data[4]; + x += v1; + y += v2; + + if (v1 & 1) + sprite->pos2.x = -(x >> 4); + else + sprite->pos2.x = x >> 4; + + if (v2 & 1) + sprite->pos2.y = -(y >> 4); + else + sprite->pos2.y = y >> 4; + + sprite->data[3] = x; + sprite->data[4] = y; + sprite->data[0]--; + return FALSE; +} + +static void sub_80A7144(struct Sprite *sprite) +{ + if (AnimFastTranslateLinear(sprite)) + SetCallbackToStoredInData6(sprite); +} + +void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite) +{ + int xDiff = abs(sprite->data[2] - sprite->data[1]) << 4; + sprite->data[0] = xDiff / sprite->data[0]; + InitAnimFastLinearTranslation(sprite); +} + +void sub_80A718C(struct Sprite *sprite) +{ + sprite->data[1] = sprite->pos1.x; + sprite->data[3] = sprite->pos1.y; + InitAnimFastLinearTranslationWithSpeed(sprite); + sprite->callback = sub_80A7144; + sprite->callback(sprite); +} + +void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation) +{ + int i; + struct ObjAffineSrcData src; + struct OamMatrix matrix; + + src.xScale = xScale; + src.yScale = yScale; + src.rotation = rotation; + if (sub_80A7238()) + src.xScale = -src.xScale; + i = gSprites[spriteId].oam.matrixNum; + ObjAffineSet(&src, &matrix, 1, 2); + gOamMatrices[i].a = matrix.a; + gOamMatrices[i].b = matrix.b; + gOamMatrices[i].c = matrix.c; + gOamMatrices[i].d = matrix.d; +} + +static bool8 sub_80A7238(void) +{ + if (IsContest()) + { + if (gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].data[2] == SPECIES_UNOWN) + return FALSE; + else + return TRUE; + } + else + { + return FALSE; + } +} + +void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode) +{ + u8 battlerId = gSprites[spriteId].data[0]; + + if (IsContest() || IsBattlerSpriteVisible(battlerId)) + gSprites[spriteId].invisible = FALSE; + gSprites[spriteId].oam.objMode = objMode; + gSprites[spriteId].affineAnimPaused = TRUE; + if (!IsContest() && !gSprites[spriteId].oam.affineMode) + gSprites[spriteId].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[battlerId].matrixNum; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE; + CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode); +} + +void ResetSpriteRotScale(u8 spriteId) +{ + SetSpriteRotScale(spriteId, 0x100, 0x100, 0); + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[spriteId].oam.objMode = 0; + gSprites[spriteId].affineAnimPaused = FALSE; + CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode); +} + +// Sets the sprite's y offset equal to the y displacement caused by the +// matrix's rotation. +void SetBattlerSpriteYOffsetFromRotation(u8 spriteId) +{ + u16 matrixNum = gSprites[spriteId].oam.matrixNum; + // The "c" component of the battler sprite matrix contains the sine of the rotation angle divided by some scale amount. + s16 c = gOamMatrices[matrixNum].c; + if (c < 0) + c = -c; + + gSprites[spriteId].pos2.y = c >> 3; +} + +void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation) +{ + int i; + struct ObjAffineSrcData src; + struct OamMatrix matrix; + + if (sprite->oam.affineMode & 1) + { + sprite->affineAnimPaused = TRUE; + if (recalcCenterVector) + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); + src.xScale = xScale; + src.yScale = yScale; + src.rotation = rotation; + if (sub_80A7238()) + src.xScale = -src.xScale; + i = sprite->oam.matrixNum; + ObjAffineSet(&src, &matrix, 1, 2); + gOamMatrices[i].a = matrix.a; + gOamMatrices[i].b = matrix.b; + gOamMatrices[i].c = matrix.c; + gOamMatrices[i].d = matrix.d; + } +} + +void sub_80A749C(struct Sprite *sprite) +{ + TrySetSpriteRotScale(sprite, TRUE, 0x100, 0x100, 0); + sprite->affineAnimPaused = FALSE; + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); +} + +static u16 ArcTan2_(s16 a, s16 b) +{ + return ArcTan2(a, b); +} + +u16 ArcTan2Neg(s16 a, s16 b) +{ + u16 var = ArcTan2_(a, b); + return -var; +} + +void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor) +{ + int i; + struct PlttData *originalColor; + struct PlttData *destColor; + u16 average; + + paletteNum *= 16; + + if (!restoreOriginalColor) + { + for (i = 0; i < 16; i++) + { + originalColor = (struct PlttData *)&gPlttBufferUnfaded[paletteNum + i]; + average = originalColor->r + originalColor->g + originalColor->b; + average /= 3; + + destColor = (struct PlttData *)&gPlttBufferFaded[paletteNum + i]; + destColor->r = average; + destColor->g = average; + destColor->b = average; + } + } + else + { + CpuCopy32(&gPlttBufferUnfaded[paletteNum], &gPlttBufferFaded[paletteNum], 32); + } +} + +u32 sub_80A75AC(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7) +{ + u32 selectedPalettes = 0; + u32 shift; + + if (battleBackground) + { + if (!IsContest()) + selectedPalettes = 0xe; + else + selectedPalettes = 1 << sub_80A6D94(); + } + if (attacker) + { + shift = gBattleAnimAttacker + 16; + selectedPalettes |= 1 << shift; + } + if (target) + { + shift = gBattleAnimTarget + 16; + selectedPalettes |= 1 << shift; + } + if (attackerPartner) + { + if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) + { + shift = BATTLE_PARTNER(gBattleAnimAttacker) + 16; + selectedPalettes |= 1 << shift; + } + } + if (targetPartner) + { + if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) + { + shift = BATTLE_PARTNER(gBattleAnimTarget) + 16; + selectedPalettes |= 1 << shift; + } + } + if (a6) + { + if (!IsContest()) + selectedPalettes |= 0x100; + else + selectedPalettes |= 0x4000; + } + if (a7) + { + if (!IsContest()) + selectedPalettes |= 0x200; + } + return selectedPalettes; +} + +u32 sub_80A76C4(u8 a1, u8 a2, u8 a3, u8 a4) +{ + u32 var = 0; + u32 shift; + + if (IsContest()) + { + if (a1) + { + var |= 1 << 18; + return var; + } + } + else + { + if (a1) + { + if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT))) + { + var |= 1 << (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) + 16); + } + } + if (a2) + { + if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT))) + { + shift = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) + 16; + var |= 1 << shift; + } + } + if (a3) + { + if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))) + { + shift = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT) + 16; + var |= 1 << shift; + } + } + if (a4) + { + if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) + { + shift = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT) + 16; + var |= 1 << shift; + } + } + } + return var; +} + +u8 sub_80A77AC(u8 a1) +{ + return a1; +} + +static u8 GetBattlerAtPosition_(u8 position) +{ + return GetBattlerAtPosition(position); +} + +void sub_80A77C8(struct Sprite *sprite) +{ + bool8 var; + + if (!sprite->data[0]) + { + if (!gBattleAnimArgs[3]) + var = TRUE; + else + var = FALSE; + if (!gBattleAnimArgs[2]) + InitSpritePosToAnimAttacker(sprite, var); + else + InitSpritePosToAnimTarget(sprite, var); + sprite->data[0]++; + + } + else if (sprite->animEnded || sprite->affineAnimEnded) + { + DestroySpriteAndMatrix(sprite); + } +} + +// Linearly translates a sprite to a target position on the +// other mon's sprite. +// arg 0: initial x offset +// arg 1: initial y offset +// arg 2: target x offset +// arg 3: target y offset +// arg 4: duration +// arg 5: lower 8 bits = location on attacking mon, upper 8 bits = location on target mon pick to target +void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite) +{ + bool8 v1; + u8 coordType; + + if (!(gBattleAnimArgs[5] & 0xff00)) + v1 = TRUE; + else + v1 = FALSE; + + if (!(gBattleAnimArgs[5] & 0xff)) + coordType = BATTLER_COORD_Y_PIC_OFFSET; + else + coordType = BATTLER_COORD_Y; + + InitSpritePosToAnimAttacker(sprite, v1); + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, coordType) + gBattleAnimArgs[3]; + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +void sub_80A78AC(struct Sprite *sprite) +{ + InitSpritePosToAnimAttacker(sprite, 1); + if (GetBattlerSide(gBattleAnimAttacker)) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; + sprite->data[5] = gBattleAnimArgs[5]; + InitAnimArcTranslation(sprite); + sprite->callback = sub_80A791C; +} + +static void sub_80A791C(struct Sprite *sprite) +{ + if (TranslateAnimHorizontalArc(sprite)) + DestroyAnimSprite(sprite); +} + +void sub_80A7938(struct Sprite *sprite) +{ + bool8 r4; + u8 battlerId, coordType; + + if (!gBattleAnimArgs[6]) + { + r4 = TRUE; + coordType = BATTLER_COORD_Y_PIC_OFFSET; + } + else + { + r4 = FALSE; + coordType = BATTLER_COORD_Y; + } + if (!gBattleAnimArgs[5]) + { + InitSpritePosToAnimAttacker(sprite, r4); + battlerId = gBattleAnimAttacker; + } + else + { + InitSpritePosToAnimTarget(sprite, r4); + battlerId = gBattleAnimTarget; + } + if (GetBattlerSide(gBattleAnimAttacker)) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + InitSpritePosToAnimTarget(sprite, r4); + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(battlerId, coordType) + gBattleAnimArgs[3]; + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +s16 CloneBattlerSpriteWithBlend(u8 animBattler) +{ + u16 i; + u8 spriteId = GetAnimBattlerSpriteId(animBattler); + + if (spriteId != 0xFF) + { + for (i = 0; i < MAX_SPRITES; i++) + { + if (!gSprites[i].inUse) + { + gSprites[i] = gSprites[spriteId]; + gSprites[i].oam.objMode = ST_OAM_OBJ_BLEND; + gSprites[i].invisible = FALSE; + return i; + } + } + } + return -1; +} + +void obj_delete_but_dont_free_vram(struct Sprite *sprite) +{ + sprite->usingSheet = TRUE; + DestroySprite(sprite); +} + +void sub_80A7A74(u8 taskId) +{ + s16 v1 = 0; + s16 v2 = 0; + + if (gBattleAnimArgs[2] > gBattleAnimArgs[0]) + v2 = 1; + if (gBattleAnimArgs[2] < gBattleAnimArgs[0]) + v2 = -1; + if (gBattleAnimArgs[3] > gBattleAnimArgs[1]) + v1 = 1; + if (gBattleAnimArgs[3] < gBattleAnimArgs[1]) + v1 = -1; + + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = gBattleAnimArgs[4]; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = gBattleAnimArgs[0]; + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = v2; + gTasks[taskId].data[6] = v1; + gTasks[taskId].data[7] = gBattleAnimArgs[2]; + gTasks[taskId].data[8] = gBattleAnimArgs[3]; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gBattleAnimArgs[0], gBattleAnimArgs[1])); + gTasks[taskId].func = sub_80A7AFC; +} + +static void sub_80A7AFC(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + if (++task->data[0] > task->data[1]) + { + task->data[0] = 0; + if (++task->data[2] & 1) + { + if (task->data[3] != task->data[7]) + task->data[3] += task->data[5]; + } + else + { + if (task->data[4] != task->data[8]) + task->data[4] += task->data[6]; + } + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[3], task->data[4])); + if (task->data[3] == task->data[7] && task->data[4] == task->data[8]) + { + DestroyAnimVisualTask(taskId); + return; + } + } +} + +// Linearly blends a mon's sprite colors with a target color with increasing +// strength, and then blends out to the original color. +// arg 0: anim bank +// arg 1: blend color +// arg 2: target blend coefficient +// arg 3: initial delay +// arg 4: number of times to blend in and out +void AnimTask_BlendMonInAndOut(u8 task) +{ + u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + if (spriteId == 0xff) + { + DestroyAnimVisualTask(task); + return; + } + gTasks[task].data[0] = (gSprites[spriteId].oam.paletteNum * 0x10) + 0x101; + AnimTask_BlendMonInAndOutSetup(&gTasks[task]); +} + +static void AnimTask_BlendMonInAndOutSetup(struct Task *task) +{ + task->data[1] = gBattleAnimArgs[1]; + task->data[2] = 0; + task->data[3] = gBattleAnimArgs[2]; + task->data[4] = 0; + task->data[5] = gBattleAnimArgs[3]; + task->data[6] = 0; + task->data[7] = gBattleAnimArgs[4]; + task->func = AnimTask_BlendMonInAndOutStep; +} + +static void AnimTask_BlendMonInAndOutStep(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + if (++task->data[4] >= task->data[5]) + { + task->data[4] = 0; + if (!task->data[6]) + { + task->data[2]++; + BlendPalette(task->data[0], 15, task->data[2], task->data[1]); + if (task->data[2] == task->data[3]) + task->data[6] = 1; + } + else + { + task->data[2]--; + BlendPalette(task->data[0], 15, task->data[2], task->data[1]); + if (!task->data[2]) + { + if (--task->data[7]) + { + task->data[4] = 0; + task->data[6] = 0; + } + else + { + DestroyAnimVisualTask(taskId); + return; + } + } + } + } +} + +void sub_80A7CB4(u8 task) +{ + u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]); + + if (palette == 0xff) + { + DestroyAnimVisualTask(task); + return; + } + gTasks[task].data[0] = (palette * 0x10) + 0x101; + AnimTask_BlendMonInAndOutSetup(&gTasks[task]); +} + +void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds) +{ + task->data[7] = 0; + task->data[8] = 0; + task->data[9] = 0; + task->data[15] = spriteId; + task->data[10] = 0x100; + task->data[11] = 0x100; + task->data[12] = 0; + StorePointerInVars(&task->data[13], &task->data[14], affineAnimCmds); + PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); +} + +bool8 RunAffineAnimFromTaskData(struct Task *task) +{ + gAnimTaskAffineAnim = LoadPointerFromVars(task->data[13], task->data[14]) + (task->data[7] << 3); + switch (gAnimTaskAffineAnim->type) + { + default: + if (!gAnimTaskAffineAnim->frame.duration) + { + task->data[10] = gAnimTaskAffineAnim->frame.xScale; + task->data[11] = gAnimTaskAffineAnim->frame.yScale; + task->data[12] = gAnimTaskAffineAnim->frame.rotation; + task->data[7]++; + gAnimTaskAffineAnim++; + } + task->data[10] += gAnimTaskAffineAnim->frame.xScale; + task->data[11] += gAnimTaskAffineAnim->frame.yScale; + task->data[12] += gAnimTaskAffineAnim->frame.rotation; + SetSpriteRotScale(task->data[15], task->data[10], task->data[11], task->data[12]); + SetBattlerSpriteYOffsetFromYScale(task->data[15]); + if (++task->data[8] >= gAnimTaskAffineAnim->frame.duration) + { + task->data[8] = 0; + task->data[7]++; + } + break; + case AFFINEANIMCMDTYPE_JUMP: + task->data[7] = gAnimTaskAffineAnim->jump.target; + break; + case AFFINEANIMCMDTYPE_LOOP: + if (gAnimTaskAffineAnim->loop.count) + { + if (task->data[9]) + { + if (!--task->data[9]) + { + task->data[7]++; + break; + } + } + else + { + task->data[9] = gAnimTaskAffineAnim->loop.count; + } + if (!task->data[7]) + { + break; + } + for (;;) + { + task->data[7]--; + gAnimTaskAffineAnim--; + if (gAnimTaskAffineAnim->type == AFFINEANIMCMDTYPE_LOOP) + { + task->data[7]++; + return TRUE; + } + if (!task->data[7]) + return TRUE; + } + } + task->data[7]++; + break; + case AFFINEANIMCMDTYPE_END: + gSprites[task->data[15]].pos2.y = 0; + ResetSpriteRotScale(task->data[15]); + return FALSE; + } + + return TRUE; +} + +// Sets the sprite's y offset equal to the y displacement caused by the +// matrix's scale in the y dimension. +void SetBattlerSpriteYOffsetFromYScale(u8 spriteId) +{ + int var = 64 - GetBattlerYDeltaFromSpriteId(spriteId) * 2; + u16 matrix = gSprites[spriteId].oam.matrixNum; + int var2 = (var << 8) / gOamMatrices[matrix].d; + + if (var2 > 128) + var2 = 128; + gSprites[spriteId].pos2.y = (var - var2) / 2; +} + +// Sets the sprite's y offset equal to the y displacement caused by another sprite +// matrix's scale in the y dimension. +void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId) +{ + int var = 64 - GetBattlerYDeltaFromSpriteId(otherSpriteId) * 2; + u16 matrix = gSprites[spriteId].oam.matrixNum; + int var2 = (var << 8) / gOamMatrices[matrix].d; + + if (var2 > 128) + var2 = 128; + gSprites[spriteId].pos2.y = (var - var2) / 2; +} + +static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) +{ + struct BattleSpriteInfo *spriteInfo; + u8 battlerId = gSprites[spriteId].data[0]; + u16 species; + u16 i; + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) + { + if (gBattlerSpriteIds[i] == spriteId) + { + if (IsContest()) + { + species = gContestResources->field_18->species; + return gMonBackPicCoords[species].y_offset; + } + else + { + if (GetBattlerSide(i) == B_SIDE_PLAYER) + { + spriteInfo = gBattleSpritesDataPtr->battlerData; + if (!spriteInfo[battlerId].transformSpecies) + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); + else + species = spriteInfo[battlerId].transformSpecies; + + if (species == SPECIES_CASTFORM) + return sCastformBackSpriteYCoords[gBattleMonForms[battlerId]]; + else + return gMonBackPicCoords[species].y_offset; + } + else + { + spriteInfo = gBattleSpritesDataPtr->battlerData; + if (!spriteInfo[battlerId].transformSpecies) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES); + else + species = spriteInfo[battlerId].transformSpecies; + + if (species == SPECIES_CASTFORM) + return sCastformElevations[gBattleMonForms[battlerId]]; + else + return gMonFrontPicCoords[species].y_offset; + } + } + } + } + return 64; +} + +void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr) +{ + *lo = ((intptr_t) ptr) & 0xffff; + *hi = (((intptr_t) ptr) >> 16) & 0xffff; +} + +void *LoadPointerFromVars(s16 lo, s16 hi) +{ + return (void *)((u16)lo | ((u16)hi << 16)); +} + +void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7) +{ + task->data[8] = a7; + task->data[15] = a2; // spriteId + task->data[9] = a3; + task->data[10] = a4; + task->data[13] = a5; + task->data[14] = a6; + task->data[11] = (a5 - a3) / a7; + task->data[12] = (a6 - a4) / a7; +} + +u8 sub_80A80C8(struct Task *task) +{ + if (!task->data[8]) + return 0; + + if (--task->data[8] != 0) + { + task->data[9] += task->data[11]; + task->data[10] += task->data[12]; + } + else + { + task->data[9] = task->data[13]; + task->data[10] = task->data[14]; + } + SetSpriteRotScale(task->data[15], task->data[9], task->data[10], 0); + if (task->data[8]) + SetBattlerSpriteYOffsetFromYScale(task->data[15]); + else + gSprites[task->data[15]].pos2.y = 0; + return task->data[8]; +} + +void AnimTask_GetFrustrationPowerLevel(u8 taskId) +{ + u16 powerLevel; + + if (gAnimFriendship <= 30) + powerLevel = 0; + else if (gAnimFriendship <= 100) + powerLevel = 1; + else if (gAnimFriendship <= 200) + powerLevel = 2; + else + powerLevel = 3; + gBattleAnimArgs[7] = powerLevel; + DestroyAnimVisualTask(taskId); +} + +void sub_80A8174(u8 priority) +{ + if (IsBattlerSpriteVisible(gBattleAnimTarget)) + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].oam.priority = priority; + if (IsBattlerSpriteVisible(gBattleAnimAttacker)) + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].oam.priority = priority; + if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) + gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)]].oam.priority = priority; + if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) + gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority = priority; +} + +void sub_80A8278(void) +{ + int i; + + for (i = 0; i < gBattlersCount; i++) + { + if (IsBattlerSpriteVisible(i)) + { + gSprites[gBattlerSpriteIds[i]].subpriority = GetBattlerSpriteSubpriority(i); + gSprites[gBattlerSpriteIds[i]].oam.priority = 2; + } + } +} + +u8 GetBattlerSpriteSubpriority(u8 battlerId) +{ + u8 position; + u8 subpriority; + + if (IsContest()) + { + if (battlerId == 2) + return 30; + else + return 40; + } + else + { + position = GetBattlerPosition(battlerId); + if (position == B_POSITION_PLAYER_LEFT) + subpriority = 30; + else if (position == B_POSITION_PLAYER_RIGHT) + subpriority = 20; + else if (position == B_POSITION_OPPONENT_LEFT) + subpriority = 40; + else + subpriority = 50; + } + + return subpriority; +} + +u8 GetBattlerSpriteBGPriority(u8 battlerId) +{ + u8 position = GetBattlerPosition(battlerId); + + if (IsContest()) + return 2; + else if (position == B_POSITION_PLAYER_LEFT || position == B_POSITION_OPPONENT_RIGHT) + return GetAnimBgAttribute(2, BG_ANIM_PRIORITY); + else + return GetAnimBgAttribute(1, BG_ANIM_PRIORITY); +} + +u8 GetBattlerSpriteBGPriorityRank(u8 battlerId) +{ + if (!IsContest()) + { + u8 position = GetBattlerPosition(battlerId); + if (position == B_POSITION_PLAYER_LEFT || position == B_POSITION_OPPONENT_RIGHT) + return 2; + else + return 1; + } + return 1; +} + +u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10) +{ + u8 spriteId; + u16 sheet = LoadSpriteSheet(&sUnknown_08525FC0[a3]); + u16 palette = AllocSpritePalette(sUnknown_08525F90[a3].paletteTag); + + if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->field_17C == NULL) + gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000); + if (!isBackpic) + { + LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); + if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) + LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], + gMonSpritesGfxPtr->field_17C, + species, + personality, + TRUE); + else + LoadSpecialPokePic_2(&gMonFrontPicTable[species], + gMonSpritesGfxPtr->field_17C, + species, + personality, + TRUE); + } + else + { + LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); + if (a10 == 1 || sub_80688F8(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0) + LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], + gMonSpritesGfxPtr->field_17C, + species, + personality, + FALSE); + else + LoadSpecialPokePic_2(&gMonBackPicTable[species], + gMonSpritesGfxPtr->field_17C, + species, + personality, + FALSE); + } + + RequestDma3Copy(gMonSpritesGfxPtr->field_17C, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1); + FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C); + + if (!isBackpic) + spriteId = CreateSprite(&sUnknown_08525F90[a3], x, y + gMonFrontPicCoords[species].y_offset, subpriority); + else + spriteId = CreateSprite(&sUnknown_08525F90[a3], x, y + gMonBackPicCoords[species].y_offset, subpriority); + + if (IsContest()) + { + gSprites[spriteId].affineAnims = gUnknown_082FF6C0; + StartSpriteAffineAnim(&gSprites[spriteId], 0); + } + return spriteId; +} + +void DestroySpriteAndFreeResources_(struct Sprite *sprite) +{ + DestroySpriteAndFreeResources(sprite); +} + +s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) +{ + u16 species; + u32 personality; + u16 letter; + u16 unownSpecies; + int ret; + const struct MonCoords *coords; + struct BattleSpriteInfo *spriteInfo; + + if (IsContest()) + { + if (gContestResources->field_18->unk4_0) + { + species = gContestResources->field_18->unk2; + personality = gContestResources->field_18->unk10; + } + else + { + species = gContestResources->field_18->species; + personality = gContestResources->field_18->unk8; + } + if (species == SPECIES_UNOWN) + { + letter = GET_UNOWN_LETTER(personality); + if (!letter) + unownSpecies = SPECIES_UNOWN; + else + unownSpecies = letter + SPECIES_UNOWN_B - 1; + coords = &gMonBackPicCoords[unownSpecies]; + } + else if (species == SPECIES_CASTFORM) + { + coords = &gCastformFrontSpriteCoords[gBattleMonForms[battlerId]]; + } + else if (species <= SPECIES_EGG) + { + coords = &gMonBackPicCoords[species]; + } + else + { + coords = &gMonBackPicCoords[0]; + } + } + else + { + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) + { + spriteInfo = gBattleSpritesDataPtr->battlerData; + if (!spriteInfo[battlerId].transformSpecies) + { + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); + } + else + { + species = spriteInfo[battlerId].transformSpecies; + personality = gTransformedPersonalities[battlerId]; + } + + if (species == SPECIES_UNOWN) + { + letter = GET_UNOWN_LETTER(personality); + if (!letter) + unownSpecies = SPECIES_UNOWN; + else + unownSpecies = letter + SPECIES_UNOWN_B - 1; + coords = &gMonBackPicCoords[unownSpecies]; + } + else if (species > NUM_SPECIES) + { + coords = &gMonBackPicCoords[0]; + } + else + { + coords = &gMonBackPicCoords[species]; + } + } + else + { + spriteInfo = gBattleSpritesDataPtr->battlerData; + if (!spriteInfo[battlerId].transformSpecies) + { + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); + } + else + { + species = spriteInfo[battlerId].transformSpecies; + personality = gTransformedPersonalities[battlerId]; + } + + if (species == SPECIES_UNOWN) + { + letter = GET_UNOWN_LETTER(personality); + if (!letter) + unownSpecies = SPECIES_UNOWN; + else + unownSpecies = letter + SPECIES_UNOWN_B - 1; + coords = &gMonFrontPicCoords[unownSpecies]; + } + else if (species == SPECIES_CASTFORM) + { + coords = &gCastformFrontSpriteCoords[gBattleMonForms[battlerId]]; + } + else if (species > NUM_SPECIES) + { + coords = &gMonFrontPicCoords[0]; + } + else + { + coords = &gMonFrontPicCoords[species]; + } + } + } + + switch (attr) + { + case BATTLER_COORD_ATTR_HEIGHT: + return (coords->size & 0xf) * 8; + case BATTLER_COORD_ATTR_WIDTH: + return (coords->size >> 4) * 8; + case BATTLER_COORD_ATTR_LEFT: + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - ((coords->size >> 4) * 4); + case BATTLER_COORD_ATTR_RIGHT: + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + ((coords->size >> 4) * 4); + case BATTLER_COORD_ATTR_TOP: + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - ((coords->size & 0xf) * 4); + case BATTLER_COORD_ATTR_BOTTOM: + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + ((coords->size & 0xf) * 4); + case BATTLER_COORD_ATTR_RAW_BOTTOM: + ret = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 31; + return ret - coords->y_offset; + default: + return 0; + } +} + +void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y) +{ + u8 xCoordType, yCoordType; + s16 battlerX, battlerY; + s16 partnerX, partnerY; + + if (!respectMonPicOffsets) + { + xCoordType = BATTLER_COORD_X; + yCoordType = BATTLER_COORD_Y; + } + else + { + xCoordType = BATTLER_COORD_X_2; + yCoordType = BATTLER_COORD_Y_PIC_OFFSET; + } + + battlerX = GetBattlerSpriteCoord(battlerId, xCoordType); + battlerY = GetBattlerSpriteCoord(battlerId, yCoordType); + if (IsDoubleBattle() && !IsContest()) + { + partnerX = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), xCoordType); + partnerY = GetBattlerSpriteCoord(BATTLE_PARTNER(battlerId), yCoordType); + } + else + { + partnerX = battlerX; + partnerY = battlerY; + } + + *x = (battlerX + partnerX) / 2; + *y = (battlerY + partnerY) / 2; +} + +u8 sub_80A89C8(int battlerId, u8 spriteId, int species) +{ + u8 newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); + gSprites[newSpriteId] = gSprites[spriteId]; + gSprites[newSpriteId].usingSheet = TRUE; + gSprites[newSpriteId].oam.priority = 0; + gSprites[newSpriteId].oam.objMode = 2; + gSprites[newSpriteId].oam.tileNum = gSprites[spriteId].oam.tileNum; + gSprites[newSpriteId].callback = SpriteCallbackDummy; + return newSpriteId; +} + +void sub_80A8A6C(struct Sprite *sprite) +{ + SetSpriteCoordsToAnimAttackerCoords(sprite); + if (GetBattlerSide(gBattleAnimAttacker)) + { + sprite->pos1.x -= gBattleAnimArgs[0]; + gBattleAnimArgs[3] = -gBattleAnimArgs[3]; + sprite->hFlip = TRUE; + } + else + { + sprite->pos1.x += gBattleAnimArgs[0]; + } + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[3] = gBattleAnimArgs[4]; + sprite->data[5] = gBattleAnimArgs[5]; + StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); + sprite->callback = TranslateSpriteLinearAndFlicker; +} + +void sub_80A8AEC(struct Sprite *sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + sprite->pos1.x -= gBattleAnimArgs[0]; + gBattleAnimArgs[3] *= -1; + } + else + { + sprite->pos1.x += gBattleAnimArgs[0]; + } + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[3] = gBattleAnimArgs[4]; + sprite->data[5] = gBattleAnimArgs[5]; + StartSpriteAnim(sprite, gBattleAnimArgs[6]); + StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); + sprite->callback = TranslateSpriteLinearAndFlicker; +} + +void sub_80A8B64(struct Sprite *sprite) +{ + SetSpriteCoordsToAnimAttackerCoords(sprite); + if (GetBattlerSide(gBattleAnimAttacker)) + sprite->pos1.x -= gBattleAnimArgs[0]; + else + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->callback = RunStoredCallbackWhenAnimEnds; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +void sub_80A8BC4(u8 taskId) +{ + u16 src; + u16 dest; + struct Task *task = &gTasks[taskId]; + + task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER); + task->data[1] = ((GetBattlerSide(gBattleAnimAttacker)) != B_SIDE_PLAYER) ? -8 : 8; + task->data[2] = 0; + task->data[3] = 0; + gSprites[task->data[0]].pos2.x -= task->data[0]; + task->data[4] = AllocSpritePalette(10097); + task->data[5] = 0; + + dest = (task->data[4] + 0x10) * 0x10; + src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10; + task->data[6] = GetBattlerSpriteSubpriority(gBattleAnimAttacker); + if (task->data[6] == 20 || task->data[6] == 40) + task->data[6] = 2; + else + task->data[6] = 3; + CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20); + BlendPalette(dest, 16, gBattleAnimArgs[1], gBattleAnimArgs[0]); + task->func = sub_80A8CAC; +} + +static void sub_80A8CAC(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + switch (task->data[2]) + { + case 0: + sub_80A8D78(task, taskId); + gSprites[task->data[0]].pos2.x += task->data[1]; + if (++task->data[3] == 5) + { + task->data[3]--; + task->data[2]++; + } + break; + case 1: + sub_80A8D78(task, taskId); + gSprites[task->data[0]].pos2.x -= task->data[1]; + if (--task->data[3] == 0) + { + gSprites[task->data[0]].pos2.x = 0; + task->data[2]++; + } + break; + case 2: + if (!task->data[5]) + { + FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON); + DestroyAnimVisualTask(taskId); + } + break; + } +} + +static void sub_80A8D78(struct Task *task, u8 taskId) +{ + s16 spriteId = CloneBattlerSpriteWithBlend(0); + if (spriteId >= 0) + { + gSprites[spriteId].oam.priority = task->data[6]; + gSprites[spriteId].oam.paletteNum = task->data[4]; + gSprites[spriteId].data[0] = 8; + gSprites[spriteId].data[1] = taskId; + gSprites[spriteId].data[2] = spriteId; + gSprites[spriteId].pos2.x = gSprites[task->data[0]].pos2.x; + gSprites[spriteId].callback = sub_80A8DFC; + task->data[5]++; + } +} + +static void sub_80A8DFC(struct Sprite *sprite) +{ + if (--sprite->data[0] == 0) + { + gTasks[sprite->data[1]].data[5]--; + obj_delete_but_dont_free_vram(sprite); + } +} + +void sub_80A8E30(struct Sprite *sprite) +{ + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + if (!GetBattlerSide(gBattleAnimAttacker)) + sprite->data[0] = 5; + else + sprite->data[0] = -10; + sprite->data[1] = -40; + sprite->callback = sub_80A8E88; +} + +static void sub_80A8E88(struct Sprite *sprite) +{ + sprite->data[2] += sprite->data[0]; + sprite->data[3] += sprite->data[1]; + sprite->pos2.x = sprite->data[2] / 10; + sprite->pos2.y = sprite->data[3] / 10; + if (sprite->data[1] < -20) + sprite->data[1]++; + if (sprite->pos1.y + sprite->pos2.y < -32) + DestroyAnimSprite(sprite); +} + +void sub_80A8EE4(struct Sprite *sprite) +{ + int x; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[4]; + sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[5]; + if (!GetBattlerSide(gBattleAnimTarget)) + { + x = (u16)gBattleAnimArgs[4] + 30; + sprite->pos1.x += x; + sprite->pos1.y = gBattleAnimArgs[5] - 20; + } + else + { + x = (u16)gBattleAnimArgs[4] - 30; + sprite->pos1.x += x; + sprite->pos1.y = gBattleAnimArgs[5] - 80; + } + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c new file mode 100755 index 000000000..92874fe09 --- /dev/null +++ b/src/battle_anim_special.c @@ -0,0 +1,2267 @@ +#include "global.h" +#include "battle.h" +#include "battle_anim.h" +#include "battle_controllers.h" +#include "battle_interface.h" +#include "decompress.h" +#include "dma3.h" +#include "gpu_regs.h" +#include "graphics.h" +#include "m4a.h" +#include "main.h" +#include "palette.h" +#include "pokeball.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "trig.h" +#include "util.h" +#include "constants/rgb.h" +#include "constants/items.h" +#include "constants/songs.h" + +// iwram +int gUnknown_030062DC; +u16 gUnknown_030062E0; +u16 gUnknown_030062E4; + +static void sub_8170660(u8); +static void sub_8170A38(u8); +static void sub_8170EF0(u8); +static void sub_8171104(struct Sprite *); +static void sub_8171030(u8); +static void sub_81710A8(u8); +static void sub_8171134(struct Sprite *); +static void sub_8171CAC(struct Sprite *); +static void sub_81711E8(struct Sprite *); +static void sub_8171240(struct Sprite *); +static void sub_817138C(struct Sprite *); +static void sub_81713D0(struct Sprite *); +static void sub_81717B4(struct Sprite *); +static void sub_81714D4(struct Sprite *); +static void sub_8171520(struct Sprite *); +static void sub_81717D8(struct Sprite *); +static void sub_8171AE4(struct Sprite *); +static void sub_81717F8(struct Sprite *); +static void sub_81719EC(struct Sprite *); +static void sub_81718D8(struct Sprite *); +static void sub_81719C0(struct Sprite *); +static void sub_8171D60(u8); +static void sub_8171AAC(struct Sprite *); +static void sub_8171BAC(struct Sprite *); +static void sub_8171CE8(struct Sprite *); +static void PokeBallOpenParticleAnimation_Step1(struct Sprite *); +static void PokeBallOpenParticleAnimation_Step2(struct Sprite *); +static void DestroyBallOpenAnimationParticle(struct Sprite *); +static void FanOutBallOpenParticles_Step1(struct Sprite *); +static void RepeatBallOpenParticleAnimation_Step1(struct Sprite *); +static void PremierBallOpenParticleAnimation_Step1(struct Sprite *); +static void sub_8172AB0(u8); +static void sub_8172B40(u8); +static void sub_8172B90(u8); +static void sub_8172FEC(u8); +static void sub_81731FC(struct Sprite *); +static void sub_8173250(struct Sprite *); +static void sub_81731B0(u8); +static void sub_817339C(struct Sprite *); +static void sub_81733D4(struct Sprite *); +static void sub_8173400(struct Sprite *); +static void PokeBallOpenParticleAnimation(u8); +static void GreatBallOpenParticleAnimation(u8); +static void SafariBallOpenParticleAnimation(u8); +static void UltraBallOpenParticleAnimation(u8); +static void MasterBallOpenParticleAnimation(u8); +static void DiveBallOpenParticleAnimation(u8); +static void RepeatBallOpenParticleAnimation(u8); +static void TimerBallOpenParticleAnimation(u8); +static void PremierBallOpenParticleAnimation(u8); +static void sub_817330C(struct Sprite *); + +struct BallCaptureSuccessStarData +{ + s8 xOffset; + s8 yOffset; + s8 unk2; +}; + +static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] = +{ + { + .xOffset = 10, + .yOffset = 2, + .unk2 = -3, + }, + { + .xOffset = 15, + .yOffset = 0, + .unk2 = -4, + }, + { + .xOffset = -10, + .yOffset = 2, + .unk2 = -4, + }, +}; + +const struct CompressedSpriteSheet gBallOpenParticleSpritesheets[] = +{ + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EC}, + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6ED}, + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EE}, + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EF}, + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F0}, + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F1}, + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F2}, + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F3}, + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F4}, + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F5}, + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F6}, + {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F7}, +}; + +const struct CompressedSpritePalette gBallOpenParticlePalettes[] = +{ + {gBattleAnimSpritePalette_136, 0xD6EC}, + {gBattleAnimSpritePalette_136, 0xD6ED}, + {gBattleAnimSpritePalette_136, 0xD6EE}, + {gBattleAnimSpritePalette_136, 0xD6EF}, + {gBattleAnimSpritePalette_136, 0xD6F0}, + {gBattleAnimSpritePalette_136, 0xD6F1}, + {gBattleAnimSpritePalette_136, 0xD6F2}, + {gBattleAnimSpritePalette_136, 0xD6F3}, + {gBattleAnimSpritePalette_136, 0xD6F4}, + {gBattleAnimSpritePalette_136, 0xD6F5}, + {gBattleAnimSpritePalette_136, 0xD6F6}, + {gBattleAnimSpritePalette_136, 0xD6F7}, +}; + +const union AnimCmd gUnknown_085E5154[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(2, 1), + ANIMCMD_FRAME(0, 1, .hFlip = TRUE), + ANIMCMD_FRAME(2, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gUnknown_085E5170[] = +{ + ANIMCMD_FRAME(3, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085E5178[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085E5180[] = +{ + ANIMCMD_FRAME(5, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085E5188[] = +{ + ANIMCMD_FRAME(6, 4), + ANIMCMD_FRAME(7, 4), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gUnknown_085E5194[] = +{ + ANIMCMD_FRAME(7, 4), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_085E519C[] = +{ + gUnknown_085E5154, + gUnknown_085E5170, + gUnknown_085E5178, + gUnknown_085E5180, + gUnknown_085E5188, + gUnknown_085E5194, +}; + +const u8 gBallOpenParticleAnimNums[] = +{ + 0, + 0, + 0, + 5, + 1, + 2, + 2, + 3, + 5, + 5, + 4, + 4, +}; + +const TaskFunc gBallOpenParticleAnimationFuncs[] = +{ + PokeBallOpenParticleAnimation, + GreatBallOpenParticleAnimation, + SafariBallOpenParticleAnimation, + UltraBallOpenParticleAnimation, + MasterBallOpenParticleAnimation, + SafariBallOpenParticleAnimation, + DiveBallOpenParticleAnimation, + UltraBallOpenParticleAnimation, + RepeatBallOpenParticleAnimation, + TimerBallOpenParticleAnimation, + GreatBallOpenParticleAnimation, + PremierBallOpenParticleAnimation, +}; + +const struct SpriteTemplate gUnknown_085E51F0[] = +{ + { + .tileTag = 55020, + .paletteTag = 55020, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55021, + .paletteTag = 55021, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55022, + .paletteTag = 55022, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55023, + .paletteTag = 55023, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55024, + .paletteTag = 55024, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55025, + .paletteTag = 55025, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55026, + .paletteTag = 55026, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55027, + .paletteTag = 55027, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55028, + .paletteTag = 55028, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55029, + .paletteTag = 55029, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55030, + .paletteTag = 55030, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, + { + .tileTag = 55031, + .paletteTag = 55031, + .oam = &gUnknown_08524904, + .anims = gUnknown_085E519C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, +}; + +const u16 gUnknown_085E5310[] = +{ + RGB(31, 22, 30), + RGB(16, 23, 30), + RGB(23, 30, 20), + RGB(31, 31, 15), + RGB(23, 20, 28), + RGB(21, 31, 25), + RGB(12, 25, 30), + RGB(30, 27, 10), + RGB(31, 24, 16), + RGB(29, 30, 30), + RGB(31, 17, 10), + RGB(31, 9, 10), + RGB(0, 0, 0), + RGB(1, 16, 0), + RGB(3, 0, 1), + RGB(1, 8, 0), + RGB(0, 8, 0), + RGB(3, 8, 1), + RGB(6, 8, 1), + RGB(4, 0, 0), +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_85E5338 = +{ + .tileTag = ANIM_TAG_UNUSED_RED_BRICK, + .paletteTag = ANIM_TAG_UNUSED_RED_BRICK, + .oam = &gUnknown_0852490C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_817330C, +}; + +const union AnimCmd gUnknown_085E5350[] = +{ + ANIMCMD_FRAME(64, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_085E5358[] = { + gUnknown_085E5350, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_085E535C = +{ + .tileTag = ANIM_TAG_ROCKS, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gUnknown_08524914, + .anims = gUnknown_085E5358, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_817330C, +}; + +extern const struct SpriteTemplate gUnknown_085CE388; +extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate; + +void unref_sub_8170478(u8 taskId) +{ + struct BattleAnimBgData unknownStruct; + u8 healthBoxSpriteId; + u8 battler; + u8 spriteId1, spriteId2, spriteId3, spriteId4; + + battler = gBattleAnimAttacker; + gBattle_WIN0H = 0; + gBattle_WIN0V = 0; + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); + SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 0); + SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 0); + SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 1); + SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); + + healthBoxSpriteId = gHealthboxSpriteIds[battler]; + spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; + spriteId2 = gSprites[healthBoxSpriteId].data[5]; + spriteId3 = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); + spriteId4 = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); + gSprites[healthBoxSpriteId].oam.priority = 1; + gSprites[spriteId1].oam.priority = 1; + gSprites[spriteId2].oam.priority = 1; + gSprites[spriteId3] = gSprites[healthBoxSpriteId]; + gSprites[spriteId4] = gSprites[spriteId1]; + gSprites[spriteId3].oam.objMode = ST_OAM_OBJ_WINDOW; + gSprites[spriteId4].oam.objMode = ST_OAM_OBJ_WINDOW; + gSprites[spriteId3].callback = SpriteCallbackDummy; + gSprites[spriteId4].callback = SpriteCallbackDummy; + + sub_80A6B30(&unknownStruct); + AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_08C2EA9C); + AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C2EA50, unknownStruct.tilesOffset); + LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32); + + gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32; + gBattle_BG1_Y = -gSprites[spriteId3].pos1.y - 32; + gTasks[taskId].data[1] = 640; + gTasks[taskId].data[0] = spriteId3; + gTasks[taskId].data[2] = spriteId4; + gTasks[taskId].func = sub_8170660; +} + +static void sub_8170660(u8 taskId) +{ + u8 spriteId1, spriteId2; + u8 battler; + + battler = gBattleAnimAttacker; + gTasks[taskId].data[13] += gTasks[taskId].data[1]; + gBattle_BG1_Y += (u16)gTasks[taskId].data[13] >> 8; + gTasks[taskId].data[13] &= 0xFF; + + switch (gTasks[taskId].data[15]) + { + case 0: + if (gTasks[taskId].data[11]++ > 1) + { + gTasks[taskId].data[11] = 0; + gTasks[taskId].data[12]++; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12])); + if (gTasks[taskId].data[12] == 8) + gTasks[taskId].data[15]++; + } + break; + case 1: + if (++gTasks[taskId].data[10] == 30) + gTasks[taskId].data[15]++; + break; + case 2: + if (gTasks[taskId].data[11]++ > 1) + { + gTasks[taskId].data[11] = 0; + gTasks[taskId].data[12]--; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12])); + if (gTasks[taskId].data[12] == 0) + { + sub_80A477C(0); + gBattle_WIN0H = 0; + gBattle_WIN0V = 0; + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR); + if (!IsContest()) + SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0); + + SetGpuReg(REG_OFFSET_DISPCNT, GetGpuReg(REG_OFFSET_DISPCNT) ^ DISPCNT_OBJWIN_ON); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0)); + DestroySprite(&gSprites[gTasks[taskId].data[0]]); + DestroySprite(&gSprites[gTasks[taskId].data[2]]); + SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 0); + spriteId1 = gSprites[gHealthboxSpriteIds[battler]].oam.affineParam; + spriteId2 = gSprites[gHealthboxSpriteIds[battler]].data[5]; + gSprites[gHealthboxSpriteIds[battler]].oam.priority = 1; + gSprites[spriteId1].oam.priority = 1; + gSprites[spriteId2].oam.priority = 1; + DestroyAnimVisualTask(taskId); + } + } + break; + } +} + +static void sub_8170834(u8 *paletteId1, u8 *paletteId2, u8 battler) +{ + u8 healthBoxSpriteId; + u8 spriteId1, spriteId2; + u16 offset1, offset2; + + healthBoxSpriteId = gHealthboxSpriteIds[battler]; + spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; + spriteId2 = gSprites[healthBoxSpriteId].data[5]; + *paletteId1 = AllocSpritePalette(0xD709); + *paletteId2 = AllocSpritePalette(0xD70A); + + offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100; + offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100; + LoadPalette(&gPlttBufferUnfaded[offset1], *paletteId1 * 16 + 0x100, 0x20); + LoadPalette(&gPlttBufferUnfaded[offset2], *paletteId2 * 16 + 0x100, 0x20); + + gSprites[healthBoxSpriteId].oam.paletteNum = *paletteId1; + gSprites[spriteId1].oam.paletteNum = *paletteId1; + gSprites[spriteId2].oam.paletteNum = *paletteId2; +} + +void sub_8170920(u8 taskId) +{ + u8 paletteId1, paletteId2; + sub_8170834(&paletteId1, &paletteId2, gBattleAnimAttacker); + DestroyAnimVisualTask(taskId); +} + +static void sub_817094C(u8 battler) +{ + u8 healthBoxSpriteId; + u8 spriteId1, spriteId2; + u8 paletteId1, paletteId2; + + healthBoxSpriteId = gHealthboxSpriteIds[battler]; + spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; + spriteId2 = gSprites[healthBoxSpriteId].data[5]; + + FreeSpritePaletteByTag(0xD709); + FreeSpritePaletteByTag(0xD70A); + paletteId1 = IndexOfSpritePaletteTag(0xD6FF); + paletteId2 = IndexOfSpritePaletteTag(0xD704); + gSprites[healthBoxSpriteId].oam.paletteNum = paletteId1; + gSprites[spriteId1].oam.paletteNum = paletteId1; + gSprites[spriteId2].oam.paletteNum = paletteId2; +} + +void sub_81709EC(u8 taskId) +{ + sub_817094C(gBattleAnimAttacker); + DestroyAnimVisualTask(taskId); +} + +void sub_8170A0C(u8 taskId) +{ + gTasks[taskId].data[10] = gBattleAnimArgs[0]; + gTasks[taskId].data[11] = gBattleAnimArgs[1]; + gTasks[taskId].func = sub_8170A38; +} + +static void sub_8170A38(u8 taskId) +{ + u8 paletteNum; + int paletteOffset, colorOffset; + + gTasks[taskId].data[0]++; + if (gTasks[taskId].data[0]++ >= gTasks[taskId].data[11]) + { + gTasks[taskId].data[0] = 0; + paletteNum = IndexOfSpritePaletteTag(0xD709); + colorOffset = gTasks[taskId].data[10] == 0 ? 6 : 2; + switch (gTasks[taskId].data[1]) + { + case 0: + gTasks[taskId].data[2] += 2; + if (gTasks[taskId].data[2] > 16) + gTasks[taskId].data[2] = 16; + + paletteOffset = paletteNum * 16 + 0x100; + BlendPalette(paletteOffset + colorOffset, 1, gTasks[taskId].data[2], RGB(20, 27, 31)); + if (gTasks[taskId].data[2] == 16) + gTasks[taskId].data[1]++; + break; + case 1: + gTasks[taskId].data[2] -= 2; + if (gTasks[taskId].data[2] < 0) + gTasks[taskId].data[2] = 0; + + paletteOffset = paletteNum * 16 + 0x100; + BlendPalette(paletteOffset + colorOffset, 1, gTasks[taskId].data[2], RGB(20, 27, 31)); + if (gTasks[taskId].data[2] == 0) + DestroyAnimVisualTask(taskId); + break; + } + } +} + +void sub_8170B04(u8 taskId) +{ + u8 spriteId; + + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; + switch (gTasks[taskId].data[0]) + { + case 0: + PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); + gTasks[taskId].data[10] = 0x100; + gTasks[taskId].data[0]++; + break; + case 1: + gTasks[taskId].data[10] += 0x30; + SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0); + SetBattlerSpriteYOffsetFromYScale(spriteId); + if (gTasks[taskId].data[10] >= 0x2D0) + gTasks[taskId].data[0]++; + break; + case 2: + ResetSpriteRotScale(spriteId); + gSprites[spriteId].invisible = 1; + DestroyAnimVisualTask(taskId); + break; + } +} + +void sub_8170BB0(u8 taskId) +{ + u8 spriteId; + u16 ball; + u8 ballId; + u8 x, y; + u8 priority, subpriority; + u32 selectedPalettes; + + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + ball = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_POKEBALL); + else + ball = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_POKEBALL); + + ballId = ItemIdToBallId(ball); + switch (gTasks[taskId].data[0]) + { + case 0: + x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + priority = gSprites[spriteId].oam.priority; + subpriority = gSprites[spriteId].subpriority; + gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId); + selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0); + gTasks[taskId].data[11] = LaunchBallFadeMonTask(0, gBattleAnimAttacker, selectedPalettes, ballId); + gTasks[taskId].data[0]++; + break; + case 1: + if (!gTasks[gTasks[taskId].data[10]].isActive && !gTasks[gTasks[taskId].data[11]].isActive) + DestroyAnimVisualTask(taskId); + break; + } +} + +void sub_8170CFC(u8 taskId) +{ + u8 ballId = ItemIdToBallId(gLastUsedItem); + LoadBallGfx(ballId); + DestroyAnimVisualTask(taskId); +} + +void sub_8170D24(u8 taskId) +{ + u8 ballId = ItemIdToBallId(gLastUsedItem); + FreeBallGfx(ballId); + DestroyAnimVisualTask(taskId); +} + +void AnimTask_IsBallBlockedByTrainer(u8 taskId) +{ + if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_TRAINER_BLOCK) + gBattleAnimArgs[7] = -1; + else + gBattleAnimArgs[7] = 0; + + DestroyAnimVisualTask(taskId); +} + +u8 ItemIdToBallId(u16 ballItem) +{ + switch (ballItem) + { + case ITEM_MASTER_BALL: + return 4; + case ITEM_ULTRA_BALL: + return 3; + case ITEM_GREAT_BALL: + return 1; + case ITEM_SAFARI_BALL: + return 2; + case ITEM_NET_BALL: + return 5; + case ITEM_DIVE_BALL: + return 6; + case ITEM_NEST_BALL: + return 7; + case ITEM_REPEAT_BALL: + return 8; + case ITEM_TIMER_BALL: + return 9; + case ITEM_LUXURY_BALL: + return 10; + case ITEM_PREMIER_BALL: + return 11; + case ITEM_POKE_BALL: + default: + return 0; + } +} + +void sub_8170E04(u8 taskId) +{ + u8 ballId; + u8 spriteId; + + ballId = ItemIdToBallId(gLastUsedItem); + spriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29); + gSprites[spriteId].data[0] = 34; + gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16; + gSprites[spriteId].callback = sub_8171104; + gBattleSpritesDataPtr->animationData->field_9_x2 = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].func = sub_8170EF0; +} + +static void sub_8170EF0(u8 taskId) +{ + u8 spriteId = gTasks[taskId].data[0]; + if ((u16)gSprites[spriteId].data[0] == 0xFFFF) + DestroyAnimVisualTask(taskId); +} + +void sub_8170F2C(u8 taskId) +{ + int x, y; + u8 ballId; + u8 subpriority; + u8 spriteId; + + if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) + { + x = 32; + y = 11; + } + else + { + x = 23; + y = 5; + } + + ballId = ItemIdToBallId(gLastUsedItem); + subpriority = GetBattlerSpriteSubpriority(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1; + spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x + 32, y | 80, subpriority); + gSprites[spriteId].data[0] = 34; + gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16; + gSprites[spriteId].callback = SpriteCallbackDummy; + gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = sub_8039E84; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].func = sub_8171030; +} + +static void sub_8171030(u8 taskId) +{ + if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animCmdIndex == 1) + { + PlaySE12WithPanning(SE_NAGERU, 0); + gSprites[gTasks[taskId].data[0]].callback = sub_8171104; + CreateTask(sub_81710A8, 10); + gTasks[taskId].func = sub_8170EF0; + } +} + +static void sub_81710A8(u8 taskId) +{ + if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animEnded) + { + StartSpriteAnim(&gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], 0); + DestroyTask(taskId); + } +} + +static void sub_8171104(struct Sprite *sprite) +{ + u16 temp = sprite->data[1]; + u16 temp2 = sprite->data[2]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = temp; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = temp2; + sprite->data[5] = -40; + InitAnimArcTranslation(sprite); + sprite->callback = sub_8171134; +} + +static void sub_8171134(struct Sprite *sprite) +{ + int i; + u8 ballId; + int ballId2; // extra var needed to match + + if (TranslateAnimHorizontalArc(sprite)) + { + if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_TRAINER_BLOCK) + { + sprite->callback = sub_8171CAC; + } + else + { + StartSpriteAnim(sprite, 1); + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + + for (i = 0; i < 8; i++) + sprite->data[i] = 0; + + sprite->data[5] = 0; + sprite->callback = sub_81711E8; + ballId = ItemIdToBallId(gLastUsedItem); + ballId2 = ballId; + if (ballId2 > 11) + return; + if (ballId2 < 0) + return; + + AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId); + LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId); + } + } +} + +static void sub_81711E8(struct Sprite *sprite) +{ + if (++sprite->data[5] == 10) + { + sprite->data[5] = CreateTask(TaskDummy, 50); + sprite->callback = sub_8171240; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] = 0; + } +} + +static void sub_8171240(struct Sprite *sprite) +{ + u8 spriteId; + u8 taskId; + + spriteId = gBattlerSpriteIds[gBattleAnimTarget]; + taskId = sprite->data[5]; + + if (++gTasks[taskId].data[1] == 11) + PlaySE(SE_SUIKOMU); + + switch (gTasks[taskId].data[0]) + { + case 0: + PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); + gTasks[taskId].data[10] = 256; + gUnknown_030062DC = 28; + gUnknown_030062E4 = (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) - (sprite->pos1.y + sprite->pos2.y); + gUnknown_030062E0 = (u32)(gUnknown_030062E4 * 256) / 28; + gTasks[taskId].data[2] = gUnknown_030062E0; + gTasks[taskId].data[0]++; + break; + case 1: + gTasks[taskId].data[10] += 0x20; + SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0); + gTasks[taskId].data[3] += gTasks[taskId].data[2]; + gSprites[spriteId].pos2.y = -gTasks[taskId].data[3] >> 8; + if (gTasks[taskId].data[10] >= 0x480) + gTasks[taskId].data[0]++; + break; + case 2: + ResetSpriteRotScale(spriteId); + gSprites[spriteId].invisible = 1; + gTasks[taskId].data[0]++; + break; + default: + if (gTasks[taskId].data[1] > 10) + { + DestroyTask(taskId); + StartSpriteAnim(sprite, 2); + sprite->data[5] = 0; + sprite->callback = sub_817138C; + } + break; + } +} + +static void sub_817138C(struct Sprite *sprite) +{ + int angle; + + if (sprite->animEnded) + { + sprite->data[3] = 0; + sprite->data[4] = 40; + sprite->data[5] = 0; + angle = 0; + sprite->pos1.y += Cos(angle, 40); + sprite->pos2.y = -Cos(angle, sprite->data[4]); + sprite->callback = sub_81713D0; + } +} + +static void sub_81713D0(struct Sprite *sprite) +{ + bool8 lastBounce; + int bounceCount; + + lastBounce = 0; + + switch (sprite->data[3] & 0xFF) + { + case 0: + sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]); + sprite->data[5] += (sprite->data[3] >> 8) + 4; + if (sprite->data[5] >= 64) + { + sprite->data[4] -= 10; + sprite->data[3] += 257; + + bounceCount = sprite->data[3] >> 8; + if (bounceCount == 4) + lastBounce = 1; + + // Play a different sound effect for each pokeball bounce. + switch (bounceCount) + { + case 1: + PlaySE(SE_KON); + break; + case 2: + PlaySE(SE_KON2); + break; + case 3: + PlaySE(SE_KON3); + break; + default: + PlaySE(SE_KON4); + break; + } + } + break; + case 1: + sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]); + sprite->data[5] -= (sprite->data[3] >> 8) + 4; + if (sprite->data[5] <= 0) + { + sprite->data[5] = 0; + sprite->data[3] &= -0x100; + } + break; + } + + if (lastBounce) + { + sprite->data[3] = 0; + sprite->pos1.y += Cos(64, 40); + sprite->pos2.y = 0; + if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_NO_SHAKES) + { + sprite->data[5] = 0; + sprite->callback = sub_81717B4; + } + else + { + sprite->callback = sub_81714D4; + sprite->data[4] = 1; + sprite->data[5] = 0; + } + } +} + +static void sub_81714D4(struct Sprite *sprite) +{ + if (++sprite->data[3] == 31) + { + sprite->data[3] = 0; + sprite->affineAnimPaused = 1; + StartSpriteAffineAnim(sprite, 1); + gBattleSpritesDataPtr->animationData->field_C = 0; + sprite->callback = sub_8171520; + PlaySE(SE_BOWA); + } +} + +static void sub_8171520(struct Sprite *sprite) +{ + s8 state; + u16 var0; + + switch (sprite->data[3] & 0xFF) + { + case 0: + if (gBattleSpritesDataPtr->animationData->field_C > 0xFF) + { + sprite->pos2.x += sprite->data[4]; + gBattleSpritesDataPtr->animationData->field_C &= 0xFF; + } + else + { + gBattleSpritesDataPtr->animationData->field_C += 0xB0; + } + + sprite->data[5]++; + sprite->affineAnimPaused = 0; + var0 = sprite->data[5] + 7; + if (var0 > 14) + { + gBattleSpritesDataPtr->animationData->field_C = 0; + sprite->data[3]++; + sprite->data[5] = 0; + } + break; + case 1: + if (++sprite->data[5] == 1) + { + sprite->data[5] = 0; + sprite->data[4] = -sprite->data[4]; + sprite->data[3]++; + sprite->affineAnimPaused = 0; + if (sprite->data[4] < 0) + ChangeSpriteAffineAnim(sprite, 2); + else + ChangeSpriteAffineAnim(sprite, 1); + } + else + { + sprite->affineAnimPaused = 1; + } + break; + case 2: + if (gBattleSpritesDataPtr->animationData->field_C > 0xFF) + { + sprite->pos2.x += sprite->data[4]; + gBattleSpritesDataPtr->animationData->field_C &= 0xFF; + } + else + { + gBattleSpritesDataPtr->animationData->field_C += 0xB0; + } + + sprite->data[5]++; + sprite->affineAnimPaused = 0; + var0 = sprite->data[5] + 12; + if (var0 > 24) + { + gBattleSpritesDataPtr->animationData->field_C = 0; + sprite->data[3]++; + sprite->data[5] = 0; + } + break; + case 3: + if (sprite->data[5]++ < 0) + { + sprite->affineAnimPaused = 1; + break; + } + + sprite->data[5] = 0; + sprite->data[4] = -sprite->data[4]; + sprite->data[3]++; + sprite->affineAnimPaused = 0; + if (sprite->data[4] < 0) + ChangeSpriteAffineAnim(sprite, 2); + else + ChangeSpriteAffineAnim(sprite, 1); + // fall through + case 4: + if (gBattleSpritesDataPtr->animationData->field_C > 0xFF) + { + sprite->pos2.x += sprite->data[4]; + gBattleSpritesDataPtr->animationData->field_C &= 0xFF; + } + else + { + gBattleSpritesDataPtr->animationData->field_C += 0xB0; + } + + sprite->data[5]++; + sprite->affineAnimPaused = 0; + var0 = sprite->data[5] + 4; + if (var0 > 8) + { + gBattleSpritesDataPtr->animationData->field_C = 0; + sprite->data[3]++; + sprite->data[5] = 0; + sprite->data[4] = -sprite->data[4]; + } + break; + case 5: + sprite->data[3] += 0x100; + state = sprite->data[3] >> 8; + if (state == gBattleSpritesDataPtr->animationData->ballThrowCaseId) + { + sprite->affineAnimPaused = 1; + sprite->callback = sub_81717B4; + } + else + { + if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_3_SHAKES_SUCCESS && state == 3) + { + sprite->callback = sub_81717D8; + sprite->affineAnimPaused = 1; + } + else + { + sprite->data[3]++; + sprite->affineAnimPaused = 1; + } + } + break; + case 6: + default: + if (++sprite->data[5] == 31) + { + sprite->data[5] = 0; + sprite->data[3] &= -0x100; + StartSpriteAffineAnim(sprite, 3); + if (sprite->data[4] < 0) + StartSpriteAffineAnim(sprite, 2); + else + StartSpriteAffineAnim(sprite, 1); + + PlaySE(SE_BOWA); + } + break; + } +} + +static void sub_81717B4(struct Sprite *sprite) +{ + if (++sprite->data[5] == 31) + { + sprite->data[5] = 0; + sprite->callback = sub_8171AE4; + } +} + +static void sub_81717D8(struct Sprite *sprite) +{ + sprite->animPaused = 1; + sprite->callback = sub_81717F8; + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = 0; +} + +static void sub_81717F8(struct Sprite *sprite) +{ + u8 *battler = &gBattleAnimTarget; + + sprite->data[4]++; + if (sprite->data[4] == 40) + { + PlaySE(SE_RG_GETTING); + BlendPalettes(0x10000 << sprite->oam.paletteNum, 6, RGB(0, 0, 0)); + sub_81719EC(sprite); + } + else if (sprite->data[4] == 60) + { + BeginNormalPaletteFade(0x10000 << sprite->oam.paletteNum, 2, 6, 0, RGB(0, 0, 0)); + } + else if (sprite->data[4] == 95) + { + gDoingBattleAnim = 0; + UpdateOamPriorityInAllHealthboxes(1); + m4aMPlayAllStop(); + PlaySE(MUS_RG_FAN6); + } + else if (sprite->data[4] == 315) + { + FreeOamMatrix(gSprites[gBattlerSpriteIds[*battler]].oam.matrixNum); + DestroySprite(&gSprites[gBattlerSpriteIds[*battler]]); + sprite->data[0] = 0; + sprite->callback = sub_81718D8; + } +} + +static void sub_81718D8(struct Sprite *sprite) +{ + u8 paletteIndex; + + switch (sprite->data[0]) + { + case 0: + sprite->data[1] = 0; + sprite->data[2] = 0; + sprite->oam.objMode = ST_OAM_OBJ_BLEND; + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); + paletteIndex = IndexOfSpritePaletteTag(sprite->template->paletteTag); + BeginNormalPaletteFade(1 << (paletteIndex + 0x10), 0, 0, 16, RGB(31, 31, 31)); + sprite->data[0]++; + break; + case 1: + if (sprite->data[1]++ > 0) + { + sprite->data[1] = 0; + sprite->data[2]++; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - sprite->data[2], sprite->data[2])); + if (sprite->data[2] == 16) + sprite->data[0]++; + } + break; + case 2: + sprite->invisible = 1; + sprite->data[0]++; + break; + default: + if (!gPaletteFade.active) + { + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + sprite->data[0] = 0; + sprite->callback = sub_81719C0; + } + break; + } +} + +static void sub_81719C0(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + { + sprite->data[0] = -1; + } + else + { + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + } +} + +static void sub_81719EC(struct Sprite *sprite) +{ + u32 i; + u8 subpriority; + + if (sprite->subpriority) + { + subpriority = sprite->subpriority - 1; + } + else + { + subpriority = 0; + sprite->subpriority = 1; + } + + sub_8171D60(4); + for (i = 0; i < 3; i++) + { + u8 spriteId = CreateSprite(&gUnknown_085E51F0[4], sprite->pos1.x, sprite->pos1.y, subpriority); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[0] = 24; + gSprites[spriteId].data[2] = sprite->pos1.x + sBallCaptureSuccessStarData[i].xOffset; + gSprites[spriteId].data[4] = sprite->pos1.y + sBallCaptureSuccessStarData[i].yOffset; + gSprites[spriteId].data[5] = sBallCaptureSuccessStarData[i].unk2; + InitAnimArcTranslation(&gSprites[spriteId]); + gSprites[spriteId].callback = sub_8171AAC; + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[4]); + } + } +} + +static void sub_8171AAC(struct Sprite *sprite) +{ + sprite->invisible = !sprite->invisible; + if (TranslateAnimHorizontalArc(sprite)) + DestroySprite(sprite); +} + +// fakematching. I think the return type of ItemIdToBallId() +// is wrong because of the weird required casting. +static void sub_8171AE4(struct Sprite *sprite) +{ + u8 ballId; + int ballId2; // extra var needed to match + + StartSpriteAnim(sprite, 1); + StartSpriteAffineAnim(sprite, 0); + sprite->callback = sub_8171BAC; + + ballId = ItemIdToBallId(gLastUsedItem); + ballId2 = ballId; + if (ballId2 > 11) + goto LABEL; + if (ballId2 < 0) + goto LABEL; + + AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId); + LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId); + + LABEL: + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = 0; + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 1); + AnimateSprite(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]]); + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] = 0x1000; +} + +static void sub_8171BAC(struct Sprite *sprite) +{ + int next = FALSE; + + if (sprite->animEnded) + sprite->invisible = 1; + + if (gSprites[gBattlerSpriteIds[gBattleAnimTarget]].affineAnimEnded) + { + StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 0); + next = TRUE; + } + else + { + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] -= 288; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] >> 8; + } + + if (sprite->animEnded && next) + { + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = 0; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = gBattleSpritesDataPtr->animationData->field_9_x2; + sprite->data[0] = 0; + sprite->callback = sub_81719C0; + gDoingBattleAnim = 0; + UpdateOamPriorityInAllHealthboxes(1); + } +} + +static void sub_8171CAC(struct Sprite *sprite) +{ + int i; + + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.y = 0; + sprite->pos2.x = 0; + for (i = 0; i < 6; i++) + sprite->data[i] = 0; + + sprite->callback = sub_8171CE8; +} + +static void sub_8171CE8(struct Sprite *sprite) +{ + s16 var0 = sprite->data[0] + 0x800; + s16 var1 = sprite->data[1] + 0x680; + sprite->pos2.x -= var1 >> 8; + sprite->pos2.y += var0 >> 8; + sprite->data[0] = (sprite->data[0] + 0x800) & 0xFF; + sprite->data[1] = (sprite->data[1] + 0x680) & 0xFF; + + if (sprite->pos1.y + sprite->pos2.y > 160 + || sprite->pos1.x + sprite->pos2.x < -8) + { + sprite->data[0] = 0; + sprite->callback = sub_81719C0; + gDoingBattleAnim = 0; + UpdateOamPriorityInAllHealthboxes(1); + } +} + +static void sub_8171D60(u8 ballId) +{ + u8 taskId; + + if (GetSpriteTileStartByTag(gBallOpenParticleSpritesheets[ballId].tag) == 0xFFFF) + { + LoadCompressedSpriteSheetUsingHeap(&gBallOpenParticleSpritesheets[ballId]); + LoadCompressedSpritePaletteUsingHeap(&gBallOpenParticlePalettes[ballId]); + } +} + +u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId) +{ + u8 taskId; + + sub_8171D60(ballId); + taskId = CreateTask(gBallOpenParticleAnimationFuncs[ballId], 5); + gTasks[taskId].data[1] = x; + gTasks[taskId].data[2] = y; + gTasks[taskId].data[3] = priority; + gTasks[taskId].data[4] = subpriority; + gTasks[taskId].data[15] = ballId; + PlaySE(SE_BOWA2); + + return taskId; +} + +void sub_8171E20(void) +{ + if (gMain.inBattle) + gBattleSpritesDataPtr->animationData->field_A++; +} + +static void PokeBallOpenParticleAnimation(u8 taskId) +{ + u8 spriteId; + u8 x, y; + u8 priority, subpriority; + u8 ballId; + u8 var0; + + ballId = gTasks[taskId].data[15]; + if (gTasks[taskId].data[0] < 16) + { + x = gTasks[taskId].data[1]; + y = gTasks[taskId].data[2]; + priority = gTasks[taskId].data[3]; + subpriority = gTasks[taskId].data[4]; + + spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + if (spriteId != MAX_SPRITES) + { + sub_8171E20(); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + gSprites[spriteId].callback = PokeBallOpenParticleAnimation_Step1; + gSprites[spriteId].oam.priority = priority; + + var0 = (u8)gTasks[taskId].data[0]; + if (var0 >= 8) + var0 -= 8; + + gSprites[spriteId].data[0] = var0 * 32; + } + + if (gTasks[taskId].data[0] == 15) + { + if (!gMain.inBattle) + gSprites[spriteId].data[7] = 1; + + DestroyTask(taskId); + return; + } + } + + gTasks[taskId].data[0]++; +} + +static void PokeBallOpenParticleAnimation_Step1(struct Sprite *sprite) +{ + if (sprite->data[1] == 0) + sprite->callback = PokeBallOpenParticleAnimation_Step2; + else + sprite->data[1]--; +} + +static void PokeBallOpenParticleAnimation_Step2(struct Sprite *sprite) +{ + sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]); + sprite->data[1] += 2; + if (sprite->data[1] == 50) + DestroyBallOpenAnimationParticle(sprite); +} + +static void TimerBallOpenParticleAnimation(u8 taskId) +{ + u8 i; + u8 x, y, priority, subpriority, ballId; + u8 spriteId; + + ballId = gTasks[taskId].data[15]; + x = gTasks[taskId].data[1]; + y = gTasks[taskId].data[2]; + priority = gTasks[taskId].data[3]; + subpriority = gTasks[taskId].data[4]; + + for (i = 0; i < 8; i++) + { + spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + if (spriteId != MAX_SPRITES) + { + sub_8171E20(); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; + gSprites[spriteId].oam.priority = priority; + gSprites[spriteId].data[0] = i * 32; + gSprites[spriteId].data[4] = 10; + gSprites[spriteId].data[5] = 2; + gSprites[spriteId].data[6] = 1; + } + } + + if (!gMain.inBattle) + gSprites[spriteId].data[7] = 1; + + DestroyTask(taskId); +} + +static void DiveBallOpenParticleAnimation(u8 taskId) +{ + u8 i; + u8 x, y, priority, subpriority, ballId; + u8 spriteId; + + ballId = gTasks[taskId].data[15]; + x = gTasks[taskId].data[1]; + y = gTasks[taskId].data[2]; + priority = gTasks[taskId].data[3]; + subpriority = gTasks[taskId].data[4]; + + for (i = 0; i < 8; i++) + { + spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + if (spriteId != MAX_SPRITES) + { + sub_8171E20(); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; + gSprites[spriteId].oam.priority = priority; + gSprites[spriteId].data[0] = i * 32; + gSprites[spriteId].data[4] = 10; + gSprites[spriteId].data[5] = 1; + gSprites[spriteId].data[6] = 2; + } + } + + if (!gMain.inBattle) + gSprites[spriteId].data[7] = 1; + + DestroyTask(taskId); +} + +// Also used for Net Ball +static void SafariBallOpenParticleAnimation(u8 taskId) +{ + u8 i; + u8 x, y, priority, subpriority, ballId; + u8 spriteId; + + ballId = gTasks[taskId].data[15]; + x = gTasks[taskId].data[1]; + y = gTasks[taskId].data[2]; + priority = gTasks[taskId].data[3]; + subpriority = gTasks[taskId].data[4]; + + for (i = 0; i < 8; i++) + { + spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + if (spriteId != MAX_SPRITES) + { + sub_8171E20(); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; + gSprites[spriteId].oam.priority = priority; + gSprites[spriteId].data[0] = i * 32; + gSprites[spriteId].data[4] = 4; + gSprites[spriteId].data[5] = 1; + gSprites[spriteId].data[6] = 1; + } + } + + if (!gMain.inBattle) + gSprites[spriteId].data[7] = 1; + + DestroyTask(taskId); +} + +// Also used for Nest Ball +static void UltraBallOpenParticleAnimation(u8 taskId) +{ + u8 i; + u8 x, y, priority, subpriority, ballId; + u8 spriteId; + + ballId = gTasks[taskId].data[15]; + x = gTasks[taskId].data[1]; + y = gTasks[taskId].data[2]; + priority = gTasks[taskId].data[3]; + subpriority = gTasks[taskId].data[4]; + + for (i = 0; i < 10; i++) + { + spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + if (spriteId != MAX_SPRITES) + { + sub_8171E20(); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; + gSprites[spriteId].oam.priority = priority; + gSprites[spriteId].data[0] = i * 25; + gSprites[spriteId].data[4] = 5; + gSprites[spriteId].data[5] = 1; + gSprites[spriteId].data[6] = 1; + } + } + + if (!gMain.inBattle) + gSprites[spriteId].data[7] = 1; + + DestroyTask(taskId); +} + +// Also used for Luxury Ball +static void GreatBallOpenParticleAnimation(u8 taskId) +{ + u8 i; + u8 x, y, priority, subpriority, ballId; + u8 spriteId; + + if (gTasks[taskId].data[7]) + { + gTasks[taskId].data[7]--; + } + else + { + ballId = gTasks[taskId].data[15]; + x = gTasks[taskId].data[1]; + y = gTasks[taskId].data[2]; + priority = gTasks[taskId].data[3]; + subpriority = gTasks[taskId].data[4]; + + for (i = 0; i < 8; i++) + { + spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + if (spriteId != MAX_SPRITES) + { + sub_8171E20(); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; + gSprites[spriteId].oam.priority = priority; + gSprites[spriteId].data[0] = i * 32; + gSprites[spriteId].data[4] = 8; + gSprites[spriteId].data[5] = 2; + gSprites[spriteId].data[6] = 2; + } + } + + gTasks[taskId].data[7] = 8; + if (++gTasks[taskId].data[0] == 2) + { + if (!gMain.inBattle) + gSprites[spriteId].data[7] = 1; + + DestroyTask(taskId); + } + } +} + +static void FanOutBallOpenParticles_Step1(struct Sprite *sprite) +{ + sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[0], sprite->data[2]); + sprite->data[0] = (sprite->data[0] + sprite->data[4]) & 0xFF; + sprite->data[1] += sprite->data[5]; + sprite->data[2] += sprite->data[6]; + if (++sprite->data[3] == 51) + DestroyBallOpenAnimationParticle(sprite); +} + +static void RepeatBallOpenParticleAnimation(u8 taskId) +{ + u8 i; + u8 x, y, priority, subpriority, ballId; + u8 spriteId; + + ballId = gTasks[taskId].data[15]; + x = gTasks[taskId].data[1]; + y = gTasks[taskId].data[2]; + priority = gTasks[taskId].data[3]; + subpriority = gTasks[taskId].data[4]; + + for (i = 0; i < 12; i++) + { + spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + if (spriteId != MAX_SPRITES) + { + sub_8171E20(); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + gSprites[spriteId].callback = RepeatBallOpenParticleAnimation_Step1; + gSprites[spriteId].oam.priority = priority; + gSprites[spriteId].data[0] = i * 21; + } + } + + if (!gMain.inBattle) + gSprites[spriteId].data[7] = 1; + + DestroyTask(taskId); +} + +static void RepeatBallOpenParticleAnimation_Step1(struct Sprite *sprite) +{ + sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[0], Sin(sprite->data[0], sprite->data[2])); + sprite->data[0] = (sprite->data[0] + 6) & 0xFF; + sprite->data[1]++; + sprite->data[2]++; + if (++sprite->data[3] == 51) + DestroyBallOpenAnimationParticle(sprite); +} + +static void MasterBallOpenParticleAnimation(u8 taskId) +{ + u8 i, j; + u8 x, y, priority, subpriority, ballId; + u8 spriteId; + + ballId = gTasks[taskId].data[15]; + x = gTasks[taskId].data[1]; + y = gTasks[taskId].data[2]; + priority = gTasks[taskId].data[3]; + subpriority = gTasks[taskId].data[4]; + + for (j = 0; j < 2; j++) + { + for (i = 0; i < 8; i++) + { + spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + if (spriteId != MAX_SPRITES) + { + sub_8171E20(); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; + gSprites[spriteId].oam.priority = priority; + gSprites[spriteId].data[0] = i * 32; + gSprites[spriteId].data[4] = 8; + + if (j == 0) + { + gSprites[spriteId].data[5] = 2; + gSprites[spriteId].data[6] = 1; + } + else + { + gSprites[spriteId].data[5] = 1; + gSprites[spriteId].data[6] = 2; + } + } + } + } + + if (!gMain.inBattle) + gSprites[spriteId].data[7] = 1; + + DestroyTask(taskId); +} + +static void PremierBallOpenParticleAnimation(u8 taskId) +{ + u8 i; + u8 x, y, priority, subpriority, ballId; + u8 spriteId; + + ballId = gTasks[taskId].data[15]; + x = gTasks[taskId].data[1]; + y = gTasks[taskId].data[2]; + priority = gTasks[taskId].data[3]; + subpriority = gTasks[taskId].data[4]; + + for (i = 0; i < 8; i++) + { + spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + if (spriteId != MAX_SPRITES) + { + sub_8171E20(); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + gSprites[spriteId].callback = PremierBallOpenParticleAnimation_Step1; + gSprites[spriteId].oam.priority = priority; + gSprites[spriteId].data[0] = i * 32; + } + } + + if (!gMain.inBattle) + gSprites[spriteId].data[7] = 1; + + DestroyTask(taskId); +} + +static void PremierBallOpenParticleAnimation_Step1(struct Sprite *sprite) +{ + sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); + sprite->pos2.y = Cos(sprite->data[0], Sin(sprite->data[0] & 0x3F, sprite->data[2])); + sprite->data[0] = (sprite->data[0] + 10) & 0xFF; + sprite->data[1]++; + sprite->data[2]++; + if (++sprite->data[3] == 51) + DestroyBallOpenAnimationParticle(sprite); +} + +static void DestroyBallOpenAnimationParticle(struct Sprite *sprite) +{ + int i, j; + int temp; + + if (!gMain.inBattle) + { + temp = sprite->data[7]; // temp var needed to match + if (temp == 1) + DestroySpriteAndFreeResources(sprite); + else + DestroySprite(sprite); + } + else + { + gBattleSpritesDataPtr->animationData->field_A--; + if (gBattleSpritesDataPtr->animationData->field_A == 0) + { + for (i = 0; i < 12; i++) + { + if (FuncIsActiveTask(gBallOpenParticleAnimationFuncs[i]) == TRUE) + break; + } + + if (i == 12) + { + for (j = 0; j < 12; j++) + { + FreeSpriteTilesByTag(gBallOpenParticleSpritesheets[j].tag); + FreeSpritePaletteByTag(gBallOpenParticlePalettes[j].tag); + } + } + + DestroySprite(sprite); + } + else + { + DestroySprite(sprite); + } + } +} + +u8 LaunchBallFadeMonTask(u8 unfadeLater, u8 battler, u32 selectedPalettes, u8 ballId) +{ + u8 taskId; + + taskId = CreateTask(sub_8172AB0, 5); + gTasks[taskId].data[15] = ballId; + gTasks[taskId].data[3] = battler; + gTasks[taskId].data[10] = selectedPalettes; + gTasks[taskId].data[11] = selectedPalettes >> 16; + + if (!unfadeLater) + { + BlendPalette(battler * 16 + 0x100, 16, 0, gUnknown_085E5310[ballId]); + gTasks[taskId].data[1] = 1; + } + else + { + BlendPalette(battler * 16 + 0x100, 16, 16, gUnknown_085E5310[ballId]); + gTasks[taskId].data[0] = 16; + gTasks[taskId].data[1] = -1; + gTasks[taskId].func = sub_8172B40; + } + + BeginNormalPaletteFade(selectedPalettes, 0, 0, 16, RGB(31, 31, 31)); + return taskId; +} + +static void sub_8172AB0(u8 taskId) +{ + u8 ballId = gTasks[taskId].data[15]; + + if (gTasks[taskId].data[2] <= 16) + { + BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gUnknown_085E5310[ballId]); + gTasks[taskId].data[0] += gTasks[taskId].data[1]; + gTasks[taskId].data[2]++; + } + else if (!gPaletteFade.active) + { + u32 selectedPalettes = (u16)gTasks[taskId].data[10] | ((u16)gTasks[taskId].data[11] << 16); + BeginNormalPaletteFade(selectedPalettes, 0, 16, 0, RGB(31, 31, 31)); + DestroyTask(taskId); + } +} + +static void sub_8172B40(u8 taskId) +{ + if (!gPaletteFade.active) + { + u32 selectedPalettes = (u16)gTasks[taskId].data[10] | ((u16)gTasks[taskId].data[11] << 16); + BeginNormalPaletteFade(selectedPalettes, 0, 16, 0, RGB(31, 31, 31)); + gTasks[taskId].func = sub_8172B90; + } +} + +static void sub_8172B90(u8 taskId) +{ + u8 ballId = gTasks[taskId].data[15]; + + if (gTasks[taskId].data[2] <= 16) + { + BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gUnknown_085E5310[ballId]); + gTasks[taskId].data[0] += gTasks[taskId].data[1]; + gTasks[taskId].data[2]++; + } + else + { + DestroyTask(taskId); + } +} + +void sub_8172BF0(u8 taskId) +{ + u8 spriteId; + u32 x; + u32 done; + + done = FALSE; + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; + switch (gTasks[taskId].data[10]) + { + case 0: + gTasks[taskId].data[11] = gBattleAnimArgs[0]; + gTasks[taskId].data[0] += 0x500; + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gSprites[spriteId].pos2.x += gTasks[taskId].data[0] >> 8; + else + gSprites[spriteId].pos2.x -= gTasks[taskId].data[0] >> 8; + + gTasks[taskId].data[0] &= 0xFF; + x = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x + 32; + if (x > 304) + gTasks[taskId].data[10]++; + break; + case 1: + LoadBattleMonGfxAndAnimate(gBattleAnimAttacker, gTasks[taskId].data[11], spriteId); + gTasks[taskId].data[10]++; + break; + case 2: + gTasks[taskId].data[0] += 0x500; + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gSprites[spriteId].pos2.x -= gTasks[taskId].data[0] >> 8; + else + gSprites[spriteId].pos2.x += gTasks[taskId].data[0] >> 8; + + gTasks[taskId].data[0] &= 0xFF; + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + if (gSprites[spriteId].pos2.x <= 0) + { + gSprites[spriteId].pos2.x = 0; + // done = FALSE; // fakematching--can't get the tail merge correct + goto DONE; + } + } + else + { + if (gSprites[spriteId].pos2.x >= 0) + { + gSprites[spriteId].pos2.x = 0; + done = TRUE; + } + } + + if (done) + { + DONE: + DestroyAnimVisualTask(taskId); + } + break; + } +} + +void sub_8172D98(u8 taskId) +{ + u8 spriteId; + + switch (gTasks[taskId].data[15]) + { + case 0: + if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == B_POSITION_OPPONENT_LEFT) + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); + else + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); + gTasks[taskId].data[15]++; + break; + case 1: + if (gTasks[taskId].data[1]++ > 1) + { + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[0]++; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - gTasks[taskId].data[0], gTasks[taskId].data[0])); + if (gTasks[taskId].data[0] == 16) + gTasks[taskId].data[15]++; + } + break; + case 2: + spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; + RequestDma3Fill(0, (void *)OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP, 0x800, 1); + ClearBehindSubstituteBit(gBattleAnimAttacker); + DestroyAnimVisualTask(taskId); + break; + } +} + +void sub_8172E9C(u8 taskId) +{ + gBattleAnimArgs[7] = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].behindSubstitute; + DestroyAnimVisualTask(taskId); +} + +void sub_8172ED0(u8 taskId) +{ + gBattleAnimTarget = gEffectBattler; + DestroyAnimVisualTask(taskId); +} + +void sub_8172EF0(u8 battler, struct Pokemon *mon) +{ + int isShiny; + u32 otId, personality; + u32 shinyValue; + u8 taskId1, taskId2; + + isShiny = 0; + gBattleSpritesDataPtr->healthBoxesData[battler].flag_x80 = 1; + otId = GetMonData(mon, MON_DATA_OT_ID); + personality = GetMonData(mon, MON_DATA_PERSONALITY); + + if (IsBattlerSpriteVisible(battler)) + { + shinyValue = HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality); + if (shinyValue < 8) + isShiny = TRUE; + + if (isShiny) + { + if (GetSpriteTileStartByTag(0x27F9) == 0xFFFF) + { + LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[233]); + LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[233]); + } + + taskId1 = CreateTask(sub_8172FEC, 10); + taskId2 = CreateTask(sub_8172FEC, 10); + gTasks[taskId1].data[0] = battler; + gTasks[taskId2].data[0] = battler; + gTasks[taskId1].data[1] = 0; + gTasks[taskId2].data[1] = 1; + return; + } + } + + gBattleSpritesDataPtr->healthBoxesData[battler].field_1_x1 = 1; +} + +static void sub_8172FEC(u8 taskId) +{ + u8 battler; + u8 x, y; + u8 spriteId; + u16 counter; + s16 state; + u8 pan; + + if (gTasks[taskId].data[13] < 60) + { + gTasks[taskId].data[13]++; + return; + } + + if (gBattleSpritesDataPtr->animationData->field_A) + return; + + counter = gTasks[taskId].data[10]++; + if (counter & 3) + return; + + battler = gTasks[taskId].data[0]; + x = GetBattlerSpriteCoord(battler, 0); + y = GetBattlerSpriteCoord(battler, 1); + state = gTasks[taskId].data[11]; + if (state == 0) + { + spriteId = CreateSprite(&gUnknown_085CE388, x, y, 5); + } + else if (state >= 0 && gTasks[taskId].data[11] < 4) + { + spriteId = CreateSprite(&gMiniTwinklingStarSpriteTemplate, x, y, 5); + gSprites[spriteId].oam.tileNum += 4; + } + else + { + spriteId = CreateSprite(&gMiniTwinklingStarSpriteTemplate, x, y, 5); + gSprites[spriteId].oam.tileNum += 5; + } + + if (gTasks[taskId].data[1] == 0) + { + gSprites[spriteId].callback = sub_81731FC; + } + else + { + gSprites[spriteId].callback = sub_8173250; + gSprites[spriteId].pos2.x = -32; + gSprites[spriteId].pos2.y = 32; + gSprites[spriteId].invisible = 1; + if (gTasks[taskId].data[11] == 0) + { + if (GetBattlerSide(battler) == B_SIDE_PLAYER) + pan = 192; + else + pan = 63; + + PlaySE12WithPanning(SE_REAPOKE, pan); + } + } + + gSprites[spriteId].data[0] = taskId; + gTasks[taskId].data[11]++; + if (spriteId != MAX_SPRITES) + gTasks[taskId].data[12]++; + + if (gTasks[taskId].data[11] == 5) + gTasks[taskId].func = sub_81731B0; +} + +static void sub_81731B0(u8 taskId) +{ + u8 battler; + + if (gTasks[taskId].data[12] == 0) + { + if (gTasks[taskId].data[1] == 1) + { + battler = gTasks[taskId].data[0]; + gBattleSpritesDataPtr->healthBoxesData[battler].field_1_x1 = 1; + } + + DestroyTask(taskId); + } +} + +static void sub_81731FC(struct Sprite *sprite) +{ + sprite->pos2.x = Sin(sprite->data[1], 24); + sprite->pos2.y = Cos(sprite->data[1], 24); + sprite->data[1] += 12; + if (sprite->data[1] > 0xFF) + { + gTasks[sprite->data[0]].data[12]--; + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + } +} + +static void sub_8173250(struct Sprite *sprite) +{ + if (sprite->data[1] < 4) + { + sprite->data[1]++; + } + else + { + sprite->invisible = 0; + sprite->pos2.x += 5; + sprite->pos2.y -= 5; + if (sprite->pos2.x > 32) + { + gTasks[sprite->data[0]].data[12]--; + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + } + } +} + +void sub_81732B0(u8 taskId) +{ + u8 paletteIndex; + + LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[269]); + LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[269]); + paletteIndex = IndexOfSpritePaletteTag(0x281D); // unused + DestroyAnimVisualTask(taskId); +} + +void sub_81732E4(u8 taskId) +{ + FreeSpriteTilesByTag(0x281D); + FreeSpritePaletteByTag(0x281D); + DestroyAnimVisualTask(taskId); +} + +static void sub_817330C(struct Sprite *sprite) +{ + InitSpritePosToAnimAttacker(sprite, 0); + sprite->data[0] = 30; + sprite->data[2] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 0) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 1) + gBattleAnimArgs[3]; + sprite->data[5] = -32; + InitAnimArcTranslation(sprite); + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = sub_8039E84; + sprite->callback = sub_817339C; +} + +static void sub_817339C(struct Sprite *sprite) +{ + if (gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].animCmdIndex == 1) + sprite->callback = sub_81733D4; +} + +static void sub_81733D4(struct Sprite *sprite) +{ + if (TranslateAnimHorizontalArc(sprite)) + { + sprite->data[0] = 0; + sprite->invisible = 1; + sprite->callback = sub_8173400; + } +} + +static void sub_8173400(struct Sprite *sprite) +{ + if (gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].animEnded) + { + if (++sprite->data[0] > 0) + { + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0); + DestroyAnimSprite(sprite); + } + } +} + +void sub_817345C(u8 taskId) +{ + switch (gBattleAnimArgs[0]) + { + case 0: + gBattleAnimAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + gBattleAnimTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + break; + case 1: + gBattleAnimAttacker = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + gBattleAnimTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + break; + } + + DestroyAnimVisualTask(taskId); +} + +void AnimTask_GetTrappedMoveAnimId(u8 taskId) +{ + if (gBattleSpritesDataPtr->animationData->animArg == 83) + gBattleAnimArgs[0] = 1; + else if (gBattleSpritesDataPtr->animationData->animArg == 250) + gBattleAnimArgs[0] = 2; + else if (gBattleSpritesDataPtr->animationData->animArg == 128) + gBattleAnimArgs[0] = 3; + else if (gBattleSpritesDataPtr->animationData->animArg == 328) + gBattleAnimArgs[0] = 4; + else + gBattleAnimArgs[0] = 0; + + DestroyAnimVisualTask(taskId); +} + +void sub_817351C(u8 taskId) +{ + gBattleAnimAttacker = gBattleSpritesDataPtr->animationData->animArg; + gBattleAnimTarget = gBattleSpritesDataPtr->animationData->animArg >> 8; + DestroyAnimVisualTask(taskId); +} diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c new file mode 100644 index 000000000..1271680e0 --- /dev/null +++ b/src/battle_anim_status_effects.c @@ -0,0 +1,534 @@ +#include "global.h" +#include "battle.h" +#include "battle_anim.h" +#include "decompress.h" +#include "gpu_regs.h" +#include "palette.h" +#include "sprite.h" +#include "task.h" +#include "trig.h" +#include "util.h" +#include "constants/battle_anim.h" +#include "constants/rgb.h" + +extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; +extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; +extern const u8 *const gBattleAnims_StatusConditions[]; +extern const struct OamData gUnknown_08524904; +extern const struct OamData gUnknown_08524A3C; + +// This file's functions. +static void sub_80A9DB4(u8 taskId); +static void sub_80A9FD0(u8 taskId); +static void sub_80AA020(u8 taskId); +static void sub_80AA0D0(u8 taskId); +static void sub_80AA124(u8 taskId); +static void Task_DoStatusAnimation(u8 taskId); +static void sub_80A9E44(struct Sprite *sprite); +static void sub_80A9E78(struct Sprite *sprite); + +// const rom data +static const union AnimCmd sSpriteAnim_853EDE4[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(4, 3), + ANIMCMD_FRAME(8, 3), + ANIMCMD_FRAME(12, 3), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EDF8[] = +{ + sSpriteAnim_853EDE4 +}; + +const struct SpriteTemplate gUnknown_0853EDFC = +{ + .tileTag = ANIM_TAG_UNUSED_ORB, + .paletteTag = ANIM_TAG_UNUSED_ORB, + .oam = &gUnknown_0852490C, + .anims = sSpriteAnimTable_853EDF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8AEC, +}; + +const struct SpriteTemplate gUnknown_0853EE14 = +{ + .tileTag = ANIM_TAG_UNUSED_ORB, + .paletteTag = ANIM_TAG_UNUSED_ORB, + .oam = &gUnknown_0852490C, + .anims = sSpriteAnimTable_853EDF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8A6C, +}; + +static const union AnimCmd sSpriteAnim_853EE2C[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EE34[] = +{ + sSpriteAnim_853EE2C +}; + +const struct SpriteTemplate gUnknown_0853EE38 = +{ + .tileTag = ANIM_TAG_WEATHER_BALL, + .paletteTag = ANIM_TAG_WEATHER_BALL, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EE34, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8E30, +}; + +const struct SpriteTemplate gUnknown_0853EE50 = +{ + .tileTag = ANIM_TAG_WEATHER_BALL, + .paletteTag = ANIM_TAG_WEATHER_BALL, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EE34, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8EE4, +}; + +static const union AnimCmd sSpriteAnim_853EE68[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_FRAME(64, 3), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_853EE80[] = +{ + sSpriteAnim_853EE68 +}; + +const struct SpriteTemplate gUnknown_0853EE84 = +{ + .tileTag = ANIM_TAG_SPARKLE_4, + .paletteTag = ANIM_TAG_SPARKLE_4, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EE80, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8B64, +}; + +const struct SpriteTemplate gUnknown_0853EE9C = +{ + .tileTag = ANIM_TAG_UNUSED_MONSTER_FOOT, + .paletteTag = ANIM_TAG_UNUSED_MONSTER_FOOT, + .oam = &gUnknown_08524914, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8AEC, +}; + +static const union AnimCmd sSpriteAnim_853EEB4[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_853EEBC[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_853EEC4[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EECC[] = +{ + sSpriteAnim_853EEB4, + sSpriteAnim_853EEBC, + sSpriteAnim_853EEC4 +}; + +const struct SpriteTemplate gUnknown_0853EED8 = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_IMPACT, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EECC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8AEC, +}; + +static const union AnimCmd sSpriteAnim_853EEF0[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EEF8[] = +{ + sSpriteAnim_853EEF0 +}; + +static const union AffineAnimCmd sSpriteAffineAnim_853EEFC[] = +{ + AFFINEANIMCMD_FRAME(96, 96, 0, 0), + AFFINEANIMCMD_FRAME(2, 2, 0, 1), + AFFINEANIMCMD_JUMP(1) +}; + +static const union AffineAnimCmd *const sSpriteAffineAnimTable_853EEF8[] = +{ + sSpriteAffineAnim_853EEFC +}; + +const struct SpriteTemplate gUnknown_0853EF18 = +{ + .tileTag = ANIM_TAG_UNUSED_ORB, + .paletteTag = ANIM_TAG_UNUSED_ORB, + .oam = &gUnknown_085249CC, + .anims = sSpriteAnimTable_853EEF8, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_853EEF8, + .callback = sub_80A8A6C, +}; + +static const struct Subsprite gUnknown_0853EF30[] = +{ + {.x = -16, .y = -16, .shape = ST_OAM_SQUARE, .size = 3, .tileOffset = 0, .priority = 2}, + {.x = -16, .y = 48, .shape = ST_OAM_H_RECTANGLE, .size = 3, .tileOffset = 64, .priority = 2}, + {.x = 48, .y = -16, .shape = ST_OAM_V_RECTANGLE, .size = 3, .tileOffset = 96, .priority = 2}, + {.x = 48, .y = 48, .shape = ST_OAM_SQUARE, .size = 2, .tileOffset = 128, .priority = 2}, +}; + +static const struct SubspriteTable gUnknown_0853EF40[] = +{ + {ARRAY_COUNT(gUnknown_0853EF30), gUnknown_0853EF30}, +}; + +static const struct SpriteTemplate gUnknown_0853EF48 = +{ + .tileTag = ANIM_TAG_ICE_CUBE, + .paletteTag = ANIM_TAG_ICE_CUBE, + .oam = &gUnknown_08524A3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const struct SpriteTemplate gUnknown_0853EF60 = +{ + .tileTag = ANIM_TAG_CIRCLE_IMPACT, + .paletteTag = ANIM_TAG_CIRCLE_IMPACT, + .oam = &gUnknown_08524904, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A9E44, +}; + +// code +u8 sub_80A9C70(u8 battlerId, bool8 b) +{ + u8 battlerSpriteId = gBattlerSpriteIds[battlerId]; + u8 taskId = CreateTask(sub_80A9DB4, 10); + u8 spriteId2; + u8 i; + + LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]); + LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]); + gTasks[taskId].data[0] = battlerId; + if (b) + { + gTasks[taskId].data[1] = RGB_RED; + for (i = 0; i < 10; i++) + { + spriteId2 = CreateSprite(&gUnknown_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y + 32, 0); + gSprites[spriteId2].data[0] = i * 51; + gSprites[spriteId2].data[1] = -256; + gSprites[spriteId2].invisible = TRUE; + if (i > 4) + gSprites[spriteId2].data[6] = 21; + } + } + else + { + gTasks[taskId].data[1] = RGB_BLUE; + for (i = 0; i < 10; i++) + { + spriteId2 = CreateSprite(&gUnknown_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y - 32, 0); + gSprites[spriteId2].data[0] = i * 51; + gSprites[spriteId2].data[1] = 256; + gSprites[spriteId2].invisible = TRUE; + if (i > 4) + gSprites[spriteId2].data[6] = 21; + } + } + gSprites[spriteId2].data[7] = 1; + return taskId; +} + +static void sub_80A9DB4(u8 taskId) +{ + if (gTasks[taskId].data[2] == 2) + { + gTasks[taskId].data[2] = 0; + BlendPalette(0x100 + gTasks[taskId].data[0] * 16, 16, gTasks[taskId].data[4], gTasks[taskId].data[1]); + if (gTasks[taskId].data[5] == 0) + { + gTasks[taskId].data[4]++; + if (gTasks[taskId].data[4] > 8) + gTasks[taskId].data[5] ^= 1; + } + else + { + u16 var = gTasks[taskId].data[4]; + + gTasks[taskId].data[4]--; + if (gTasks[taskId].data[4] < 0) + { + gTasks[taskId].data[4] = var; + gTasks[taskId].data[5] ^= 1; + gTasks[taskId].data[3]++; + if (gTasks[taskId].data[3] == 2) + DestroyTask(taskId); + } + } + } + else + { + gTasks[taskId].data[2]++; + } +} + +static void sub_80A9E44(struct Sprite *sprite) +{ + if (sprite->data[6] == 0) + { + sprite->invisible = FALSE; + sprite->callback = sub_80A9E78; + sub_80A9E78(sprite); + } + else + { + sprite->data[6]--; + } +} + +static void sub_80A9E78(struct Sprite *sprite) +{ + sprite->pos2.x = Cos(sprite->data[0], 32); + sprite->pos2.y = Sin(sprite->data[0], 8); + if (sprite->data[0] < 128) + sprite->subpriority = 29; + else + sprite->subpriority = 31; + sprite->data[0] = (sprite->data[0] + 8) & 0xFF; + sprite->data[5] += sprite->data[1]; + sprite->pos2.y += sprite->data[5] >> 8; + sprite->data[2]++; + if (sprite->data[2] == 52) + { + if (sprite->data[7]) + DestroySpriteAndFreeResources(sprite); + else + DestroySprite(sprite); + } +} + +void sub_80A9EF4(u8 taskId) +{ + s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - 32; + s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) - 36; + u8 spriteId; + + if (IsContest()) + x -= 6; + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); + spriteId = CreateSprite(&gUnknown_0853EF48, x, y, 4); + if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == 0xFFFF) + gSprites[spriteId].invisible = TRUE; + SetSubspriteTables(&gSprites[spriteId], gUnknown_0853EF40); + gTasks[taskId].data[15] = spriteId; + gTasks[taskId].func = sub_80A9FD0; +} + +static void sub_80A9FD0(u8 taskId) +{ + gTasks[taskId].data[1]++; + if (gTasks[taskId].data[1] == 10) + { + gTasks[taskId].func = sub_80AA020; + gTasks[taskId].data[1] = 0; + } + else + { + u8 var = gTasks[taskId].data[1]; + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(var, 16 - var)); + } +} + +static void sub_80AA020(u8 taskId) +{ + u8 palIndex = IndexOfSpritePaletteTag(ANIM_TAG_ICE_CUBE); + + if (gTasks[taskId].data[1]++ > 13) + { + gTasks[taskId].data[2]++; + if (gTasks[taskId].data[2] == 3) + { + u16 temp; + + temp = gPlttBufferFaded[0x100 + palIndex * 16 + 13]; + gPlttBufferFaded[0x100 + palIndex * 16 + 13] = gPlttBufferFaded[0x100 + palIndex * 16 + 14]; + gPlttBufferFaded[0x100 + palIndex * 16 + 14] = gPlttBufferFaded[0x100 + palIndex * 16 + 15]; + gPlttBufferFaded[0x100 + palIndex * 16 + 15] = temp; + + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3]++; + if (gTasks[taskId].data[3] == 3) + { + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[4]++; + if (gTasks[taskId].data[4] == 2) + { + gTasks[taskId].data[1] = 9; + gTasks[taskId].func = sub_80AA0D0; + } + } + } + } +} + +static void sub_80AA0D0(u8 taskId) +{ + gTasks[taskId].data[1]--; + if (gTasks[taskId].data[1] == -1) + { + gTasks[taskId].func = sub_80AA124; + gTasks[taskId].data[1] = 0; + } + else + { + u8 var = gTasks[taskId].data[1]; + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(var, 16 - var)); + } +} + +static void sub_80AA124(u8 taskId) +{ + gTasks[taskId].data[1]++; + if (gTasks[taskId].data[1] == 37) + { + u8 spriteId = gTasks[taskId].data[15]; + + FreeSpriteOamMatrix(&gSprites[spriteId]); + DestroySprite(&gSprites[spriteId]); + } + else if (gTasks[taskId].data[1] == 39) + { + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + DestroyAnimVisualTask(taskId); + } +} + +#define CASE(by, stat) case (STAT_ANIM_##by + stat - 1) + +void AnimTask_StatsChange(u8 taskId) +{ + bool16 goesDown = FALSE; + s16 animStatId = 0; + bool16 sharply = FALSE; + + switch (gBattleSpritesDataPtr->animationData->animArg) + { + CASE(PLUS1, STAT_ATK): goesDown = FALSE; animStatId = 0; break; + CASE(PLUS1, STAT_DEF): goesDown = FALSE; animStatId = 1; break; + CASE(PLUS1, STAT_SPEED): goesDown = FALSE; animStatId = 3; break; + CASE(PLUS1, STAT_SPATK): goesDown = FALSE; animStatId = 5; break; + CASE(PLUS1, STAT_SPDEF): goesDown = FALSE; animStatId = 6; break; + CASE(PLUS1, STAT_ACC): goesDown = FALSE; animStatId = 2; break; + CASE(PLUS1, STAT_EVASION): goesDown = FALSE; animStatId = 4; break; + + CASE(MINUS1, STAT_ATK): goesDown = TRUE; animStatId = 0; break; + CASE(MINUS1, STAT_DEF): goesDown = TRUE; animStatId = 1; break; + CASE(MINUS1, STAT_SPEED): goesDown = TRUE; animStatId = 3; break; + CASE(MINUS1, STAT_SPATK): goesDown = TRUE; animStatId = 5; break; + CASE(MINUS1, STAT_SPDEF): goesDown = TRUE; animStatId = 6; break; + CASE(MINUS1, STAT_ACC): goesDown = TRUE; animStatId = 2; break; + CASE(MINUS1, STAT_EVASION): goesDown = TRUE; animStatId = 4; break; + + CASE(PLUS2, STAT_ATK): goesDown = FALSE; animStatId = 0; sharply = TRUE; break; + CASE(PLUS2, STAT_DEF): goesDown = FALSE; animStatId = 1; sharply = TRUE; break; + CASE(PLUS2, STAT_SPEED): goesDown = FALSE; animStatId = 3; sharply = TRUE; break; + CASE(PLUS2, STAT_SPATK): goesDown = FALSE; animStatId = 5; sharply = TRUE; break; + CASE(PLUS2, STAT_SPDEF): goesDown = FALSE; animStatId = 6; sharply = TRUE; break; + CASE(PLUS2, STAT_ACC): goesDown = FALSE; animStatId = 2; sharply = TRUE; break; + CASE(PLUS2, STAT_EVASION): goesDown = FALSE; animStatId = 4; sharply = TRUE; break; + + CASE(MINUS2, STAT_ATK): goesDown = TRUE; animStatId = 0; sharply = TRUE; break; + CASE(MINUS2, STAT_DEF): goesDown = TRUE; animStatId = 1; sharply = TRUE; break; + CASE(MINUS2, STAT_SPEED): goesDown = TRUE; animStatId = 3; sharply = TRUE; break; + CASE(MINUS2, STAT_SPATK): goesDown = TRUE; animStatId = 5; sharply = TRUE; break; + CASE(MINUS2, STAT_SPDEF): goesDown = TRUE; animStatId = 6; sharply = TRUE; break; + CASE(MINUS2, STAT_ACC): goesDown = TRUE; animStatId = 2; sharply = TRUE; break; + CASE(MINUS2, STAT_EVASION): goesDown = TRUE; animStatId = 4; sharply = TRUE; break; + + case STAT_ANIM_MULTIPLE_PLUS1: goesDown = FALSE; animStatId = 0xFF; sharply = FALSE; break; + case STAT_ANIM_MULTIPLE_PLUS2: goesDown = FALSE; animStatId = 0xFF; sharply = TRUE; break; + case STAT_ANIM_MULTIPLE_MINUS1: goesDown = TRUE; animStatId = 0xFF; sharply = FALSE; break; + case STAT_ANIM_MULTIPLE_MINUS2: goesDown = TRUE; animStatId = 0xFF; sharply = TRUE; break; + + default: + DestroyAnimVisualTask(taskId); + return; + } + + gBattleAnimArgs[0] = goesDown; + gBattleAnimArgs[1] = animStatId; + gBattleAnimArgs[2] = 0; + gBattleAnimArgs[3] = 0; + gBattleAnimArgs[4] = sharply; + gTasks[taskId].func = sub_8116EB4; + sub_8116EB4(taskId); +} + +#undef CASE + +void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId) +{ + u8 taskId; + + gBattleAnimAttacker = battlerId; + gBattleAnimTarget = battlerId; + LaunchBattleAnimation(gBattleAnims_StatusConditions, statusAnimId, 0); + taskId = CreateTask(Task_DoStatusAnimation, 10); + gTasks[taskId].data[0] = battlerId; +} + +static void Task_DoStatusAnimation(u8 taskId) +{ + gAnimScriptCallback(); + if (!gAnimScriptActive) + { + gBattleSpritesDataPtr->healthBoxesData[gTasks[taskId].data[0]].statusAnimActive = FALSE; + DestroyTask(taskId); + } +} diff --git a/src/battle_main.c b/src/battle_main.c index 0f593fef6..19fd01e3c 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "battle_anim.h" #include "battle_ai_script_commands.h" #include "battle_arena.h" #include "battle_controllers.h" diff --git a/src/battle_message.c b/src/battle_message.c index 6762cd416..f93765b89 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "battle_anim.h" #include "battle_controllers.h" #include "battle_message.h" #include "battle_setup.h" diff --git a/src/battle_tv.c b/src/battle_tv.c index d3ca9b61f..26df08786 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -1,6 +1,7 @@ #include "global.h" #include "pokemon.h" #include "battle.h" +#include "battle_anim.h" #include "battle_tv.h" #include "constants/battle_string_ids.h" #include "constants/battle_anim.h" diff --git a/src/battle_util.c b/src/battle_util.c index aa88cf952..a7962b7f7 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "battle_anim.h" #include "constants/battle_script_commands.h" #include "constants/abilities.h" #include "constants/moves.h" diff --git a/src/battle_util2.c b/src/battle_util2.c index 9c0d55a57..5ef969fd5 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "battle_anim.h" #include "battle_controllers.h" #include "alloc.h" #include "pokemon.h" diff --git a/src/pokemon.c b/src/pokemon.c index 1ee9c4cff..7c26b4c22 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -2,6 +2,7 @@ #include "alloc.h" #include "apprentice.h" #include "battle.h" +#include "battle_anim.h" #include "battle_controllers.h" #include "battle_message.h" #include "battle_pike.h" diff --git a/src/recorded_battle.c b/src/recorded_battle.c index c11dc55e7..acd4c2ce6 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "battle_anim.h" #include "recorded_battle.h" #include "main.h" #include "pokemon.h" -- cgit v1.2.3 From d13563b174119121964c2da62380bce44743b93f Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 31 Mar 2019 14:09:40 -0500 Subject: Document some faraway_island code --- src/event_object_movement.c | 4 +- src/faraway_island.c | 131 ++++++++++++++++++++++---------------------- 2 files changed, 68 insertions(+), 67 deletions(-) (limited to 'src') diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 30dffd8d7..6a3527bc1 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -4414,8 +4414,8 @@ bool8 CopyablePlayerMovement_GoSpeed0(struct EventObject *eventObject, struct Sp direction = playerDirection; if (EventObjectIsFarawayIslandMew(eventObject)) { - direction = sub_81D427C(); - if (direction == 0) + direction = GetMewMoveDirection(); + if (direction == DIR_NONE) { direction = playerDirection; direction = state_to_direction(gInitialMovementTypeFacingDirections[eventObject->movementType], eventObject->directionSequenceIndex, direction); diff --git a/src/faraway_island.c b/src/faraway_island.c index 1c8dff14e..6a835a02b 100755 --- a/src/faraway_island.c +++ b/src/faraway_island.c @@ -17,12 +17,13 @@ static u8 sub_81D4C9C(struct EventObject*, u8); static u8 sub_81D4C58(struct EventObject*, u8); static u8 sub_81D4CE0(struct EventObject*, u8); static u8 sub_81D4D24(u8); -static bool8 sub_81D4834(s16, s16); +static bool8 CanMewWalkToCoords(s16, s16); -extern u8 gUnknown_0203CF50; -extern s16 gUnknown_030012F8; -extern s16 gUnknown_030012FA; -extern u8 gUnknown_030012FC[4]; +static EWRAM_DATA u8 sUnknown_0203CF50 = 0; + +static s16 sPlayerToMewDeltaX; +static s16 sPlayerToMewDeltaY; +static u8 sMewDirectionCandidates[4]; extern const struct SpritePalette gFieldEffectObjectPaletteInfo1; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; @@ -35,23 +36,23 @@ static const s16 sFarawayIslandRockCoords[4][2] = {20, 20}, }; -static u8 sub_81D4258(void) +static u8 GetMewEventObjectId(void) { u8 eventObjectId; TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); return eventObjectId; } -u32 sub_81D427C(void) +u32 GetMewMoveDirection(void) { u8 i; int skip; - struct EventObject *mew = &gEventObjects[sub_81D4258()]; + struct EventObject *mew = &gEventObjects[GetMewEventObjectId()]; - gUnknown_030012F8 = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x - mew->currentCoords.x; - gUnknown_030012FA = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y - mew->currentCoords.y; - for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) - gUnknown_030012FC[i] = DIR_NONE; + sPlayerToMewDeltaX = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x - mew->currentCoords.x; + sPlayerToMewDeltaY = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y - mew->currentCoords.y; + for (i = 0; i < ARRAY_COUNT(sMewDirectionCandidates); i++) + sMewDirectionCandidates[i] = DIR_NONE; if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x && gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y) @@ -85,33 +86,33 @@ u32 sub_81D427C(void) if (!skip) { - if (gUnknown_030012F8 > 0) + if (sPlayerToMewDeltaX > 0) { if (mew->currentCoords.x + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) { - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; } } - else if (gUnknown_030012F8 < 0) + else if (sPlayerToMewDeltaX < 0) { if (mew->currentCoords.x - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) { - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } } if (mew->currentCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) { - if (gUnknown_030012FA > 0) + if (sPlayerToMewDeltaY > 0) { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; } else { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } } @@ -134,33 +135,33 @@ u32 sub_81D427C(void) if (!skip) { - if (gUnknown_030012FA > 0) + if (sPlayerToMewDeltaY > 0) { if (mew->currentCoords.y + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } } - else if (gUnknown_030012FA < 0) + else if (sPlayerToMewDeltaY < 0) { if (mew->currentCoords.y - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; } } if (mew->currentCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) { - if (gUnknown_030012F8 > 0) + if (sPlayerToMewDeltaX > 0) { - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } else { - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; } } @@ -208,52 +209,52 @@ u32 sub_81D427C(void) return DIR_WEST; } - if (gUnknown_030012FA == 0) + if (sPlayerToMewDeltaY == 0) { if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y > mew->currentCoords.y) { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; } if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y < mew->currentCoords.y) { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) return DIR_NORTH; - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) return DIR_SOUTH; } - if (gUnknown_030012F8 == 0) + if (sPlayerToMewDeltaX == 0) { if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x > mew->currentCoords.x) { - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x < mew->currentCoords.x) { - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; } - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) return DIR_EAST; - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) return DIR_WEST; } return sub_81D4890(DIR_NONE); } -static bool8 sub_81D4834(s16 x, s16 y) +static bool8 CanMewWalkToCoords(s16 x, s16 y) { if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x == x && gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y == y) @@ -268,39 +269,39 @@ static u8 sub_81D4890(u8 ignoredDir) { u8 i; u8 count = 0; - struct EventObject *mew = &gEventObjects[sub_81D4258()]; + struct EventObject *mew = &gEventObjects[GetMewEventObjectId()]; - for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) - gUnknown_030012FC[i] = DIR_NONE; + for (i = 0; i < ARRAY_COUNT(sMewDirectionCandidates); i++) + sMewDirectionCandidates[i] = DIR_NONE; - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) + if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) { - gUnknown_030012FC[count] = DIR_NORTH; + sMewDirectionCandidates[count] = DIR_NORTH; count++; } - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) + if (CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) { - gUnknown_030012FC[count] = DIR_EAST; + sMewDirectionCandidates[count] = DIR_EAST; count++; } - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) + if (CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) { - gUnknown_030012FC[count] = DIR_SOUTH; + sMewDirectionCandidates[count] = DIR_SOUTH; count++; } - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) + if (CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) { - gUnknown_030012FC[count] = DIR_WEST; + sMewDirectionCandidates[count] = DIR_WEST; count++; } if (count > 1) - return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % count]; + return sMewDirectionCandidates[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % count]; else - return gUnknown_030012FC[0]; + return sMewDirectionCandidates[0]; } void UpdateFarawayIslandStepCounter(void) @@ -355,7 +356,7 @@ void sub_81D4A90(void) s16 x; s16 y; u8 spriteId; - struct EventObject *mew = &gEventObjects[sub_81D4258()]; + struct EventObject *mew = &gEventObjects[GetMewEventObjectId()]; mew->invisible = 0; if (gSpecialVar_0x8004 == 1) @@ -378,10 +379,10 @@ void sub_81D4A90(void) x = mew->currentCoords.x; y = mew->currentCoords.y; sub_80930E0(&x, &y, 8, 8); - gUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); - if (gUnknown_0203CF50 != MAX_SPRITES) + sUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); + if (sUnknown_0203CF50 != MAX_SPRITES) { - struct Sprite *sprite = &gSprites[gUnknown_0203CF50]; + struct Sprite *sprite = &gSprites[sUnknown_0203CF50]; sprite->coordOffsetEnabled = 1; sprite->oam.priority = 2; sprite->callback = SpriteCallbackDummy; @@ -391,15 +392,15 @@ void sub_81D4A90(void) void sub_81D4BEC(void) { - if (gUnknown_0203CF50 != MAX_SPRITES) - DestroySprite(&gSprites[gUnknown_0203CF50]); + if (sUnknown_0203CF50 != MAX_SPRITES) + DestroySprite(&gSprites[sUnknown_0203CF50]); } static bool8 sub_81D4C14(struct EventObject *mew, u8 index) { - if (gUnknown_030012FA > 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + if (sPlayerToMewDeltaY > 0 && CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y - 1)) { - gUnknown_030012FC[index] = DIR_NORTH; + sMewDirectionCandidates[index] = DIR_NORTH; return TRUE; } @@ -408,9 +409,9 @@ static bool8 sub_81D4C14(struct EventObject *mew, u8 index) static u8 sub_81D4C58(struct EventObject *mew, u8 index) { - if (gUnknown_030012F8 < 0 && sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + if (sPlayerToMewDeltaX < 0 && CanMewWalkToCoords(mew->currentCoords.x + 1, mew->currentCoords.y)) { - gUnknown_030012FC[index] = DIR_EAST; + sMewDirectionCandidates[index] = DIR_EAST; return TRUE; } @@ -419,9 +420,9 @@ static u8 sub_81D4C58(struct EventObject *mew, u8 index) static u8 sub_81D4C9C(struct EventObject *mew, u8 index) { - if (gUnknown_030012FA < 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + if (sPlayerToMewDeltaY < 0 && CanMewWalkToCoords(mew->currentCoords.x, mew->currentCoords.y + 1)) { - gUnknown_030012FC[index] = DIR_SOUTH; + sMewDirectionCandidates[index] = DIR_SOUTH; return TRUE; } @@ -430,9 +431,9 @@ static u8 sub_81D4C9C(struct EventObject *mew, u8 index) static u8 sub_81D4CE0(struct EventObject *mew, u8 index) { - if (gUnknown_030012F8 > 0 && sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + if (sPlayerToMewDeltaX > 0 && CanMewWalkToCoords(mew->currentCoords.x - 1, mew->currentCoords.y)) { - gUnknown_030012FC[index] = DIR_WEST; + sMewDirectionCandidates[index] = DIR_WEST; return TRUE; } @@ -441,5 +442,5 @@ static u8 sub_81D4CE0(struct EventObject *mew, u8 index) static u8 sub_81D4D24(u8 mod) { - return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % mod]; + return sMewDirectionCandidates[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % mod]; } -- cgit v1.2.3 From f34cda3b5209735fbf276b0f23e29549b1a1a3d9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Mar 2019 13:14:00 -0400 Subject: Start decompiling mystery gift --- src/mystery_gift.c | 253 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 src/mystery_gift.c (limited to 'src') diff --git a/src/mystery_gift.c b/src/mystery_gift.c new file mode 100644 index 000000000..b6c317281 --- /dev/null +++ b/src/mystery_gift.c @@ -0,0 +1,253 @@ +#include "global.h" +#include "main.h" +#include "text.h" +#include "task.h" +#include "alloc.h" +#include "gpu_regs.h" +#include "scanline_effect.h" +#include "text_window.h" +#include "bg.h" +#include "window.h" +#include "text_window.h" +#include "menu.h" +#include "palette.h" +#include "constants/songs.h" +#include "sound.h" +#include "mystery_gift.h" + +void bgid_upload_textbox_1(u8 bgId); +void sub_8018798(u8); +void sub_80186EC(u8, u8); + +const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal"); +const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz"); + +const struct BgTemplate gUnknown_082F0598[] = { + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 15, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000 + }, { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 14, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0x000 + }, { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 13, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x000 + }, { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 12, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0x000 + } +}; + +const struct WindowTemplate gUnknown_082F05A8[] = { + { + .bg = 0x00, + .tilemapLeft = 0x00, + .tilemapTop = 0x00, + .width = 0x1e, + .height = 0x02, + .paletteNum = 0x0c, + .baseBlock = 0x0013 + }, { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x0f, + .width = 0x1c, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x004f + }, { + .bg = 0x00, + .tilemapLeft = 0x00, + .tilemapTop = 0x0f, + .width = 0x1e, + .height = 0x05, + .paletteNum = 0x0d, + .baseBlock = 0x004f + }, { + 0xFF + } +}; + +const struct WindowTemplate gUnknown_082F05C8 = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x0f, + .width = 0x1c, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x00e5 +}; + +const struct WindowTemplate gUnknown_082F05D0 = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x0f, + .width = 0x14, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x00e5 +}; + +const struct WindowTemplate gUnknown_082F05D8 = { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x0f, + .width = 0x13, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x00e5 +}; + +const struct WindowTemplate gUnknown_082F05E0 = { + .bg = 0x00, + .tilemapLeft = 0x08, + .tilemapTop = 0x06, + .width = 0x0e, + .height = 0x06, + .paletteNum = 0x0c, + .baseBlock = 0x0155 +}; + +const struct WindowTemplate gUnknown_082F05E8 = { + .bg = 0x00, + .tilemapLeft = 0x17, + .tilemapTop = 0x0f, + .width = 0x06, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x0155 +}; + +const struct WindowTemplate gUnknown_082F05F0 = { + .bg = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0b, + .width = 0x07, + .height = 0x08, + .paletteNum = 0x0c, + .baseBlock = 0x0155 +}; + +const struct WindowTemplate gUnknown_082F05F8 = { + .bg = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0d, + .width = 0x07, + .height = 0x06, + .paletteNum = 0x0c, + .baseBlock = 0x0155 +}; + +const struct WindowTemplate gUnknown_082F0600 = { + .bg = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0f, + .width = 0x07, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x0155 +}; + +void sub_8018424(void) +{ + ProcessSpriteCopyRequests(); + LoadOam(); + TransferPlttBuffer(); +} + +void sub_8018438(void) +{ + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); +} + +bool32 sub_8018450(s32 arg) +{ + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + ResetPaletteFade(); + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + ScanlineEffect_Stop(); + ResetBgsAndClearDma3BusyFlags(0); + + InitBgsFromTemplates(0, gUnknown_082F0598, ARRAY_COUNT(gUnknown_082F0598)); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + + SetBgTilemapBuffer(3, Alloc(0x800)); + SetBgTilemapBuffer(2, Alloc(0x800)); + SetBgTilemapBuffer(1, Alloc(0x800)); + SetBgTilemapBuffer(0, Alloc(0x800)); + + bgid_upload_textbox_1(3); + InitWindows(gUnknown_082F05A8); + DeactivateAllTextPrinters(); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + gMain.state++; + break; + case 1: + LoadPalette(gUnkTextboxBorderPal, 0, 0x20); + LoadPalette(stdpal_get(2), 0xd0, 0x20); + sub_81978B0(0xC0); + LoadUserWindowBorderGfx(0, 0xA, 0xE0); + LoadUserWindowBorderGfx_(0, 0x1, 0xF0); + FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0x11); + FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11); + FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11); + sub_8018798(3); + sub_80186EC(arg, 0); + gMain.state++; + break; + case 2: + CopyBgTilemapBufferToVram(3); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(0); + gMain.state++; + break; + case 3: + ShowBg(0); + ShowBg(3); + PlayBGM(MUS_RG_OKURIMONO); + SetVBlankCallback(sub_8018424); + EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + return TRUE; + } + + return FALSE; +} -- cgit v1.2.3 From aafe9df454f42c77146d76676cc477e876d6540b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Mar 2019 14:36:52 -0400 Subject: through sub_8018798 --- src/cable_club.c | 3 +- src/ereader_helpers.c | 2 +- src/ereader_screen.c | 2 +- src/link_rfu.c | 4 +- src/mevent_801BAAC.c | 1 + src/mystery_gift.c | 245 +++++++++++++++++++++++++++++++++++++++++++++++++- src/party_menu.c | 2 +- src/start_menu.c | 1 + src/trade.c | 3 + src/union_room.c | 4 +- 10 files changed, 256 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/cable_club.c b/src/cable_club.c index b80e76e99..fab187b07 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -17,7 +17,8 @@ #include "menu.h" #include "overworld.h" #include "palette.h" -#include "rom_8011DC0.h" +#include "union_room.h" +#include "mevent2.h" #include "script.h" #include "script_pokemon_util_80F87D8.h" #include "sound.h" diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c index 6c92b676f..cdb829ac8 100755 --- a/src/ereader_helpers.c +++ b/src/ereader_helpers.c @@ -4,7 +4,7 @@ #include "ereader_helpers.h" #include "link.h" #include "main.h" -#include "rom_8011DC0.h" +#include "union_room.h" #include "save.h" #include "sprite.h" #include "task.h" diff --git a/src/ereader_screen.c b/src/ereader_screen.c index b15c1fd0c..10a23e251 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -4,7 +4,7 @@ #include "ereader_helpers.h" #include "link.h" #include "main.h" -#include "rom_8011DC0.h" +#include "union_room.h" #include "save.h" #include "sound.h" #include "sprite.h" diff --git a/src/link_rfu.c b/src/link_rfu.c index 945806459..43d19be03 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -11,13 +11,13 @@ #include "overworld.h" #include "random.h" #include "palette.h" -#include "rom_8011DC0.h" +#include "union_room.h" #include "string_util.h" #include "task.h" #include "text.h" #include "constants/species.h" #include "save.h" -#include "rom_8011DC0.h" +#include "mystery_gift.h" extern u16 gHeldKeyCodeToSend; diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c index 857ca3fde..d69ab0495 100644 --- a/src/mevent_801BAAC.c +++ b/src/mevent_801BAAC.c @@ -13,6 +13,7 @@ #include "string_util.h" #include "link_rfu.h" #include "mevent.h" +#include "mystery_gift.h" struct UnkStruct_8467FB8 { diff --git a/src/mystery_gift.c b/src/mystery_gift.c index b6c317281..3fbe11378 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -8,16 +8,24 @@ #include "text_window.h" #include "bg.h" #include "window.h" +#include "strings.h" #include "text_window.h" #include "menu.h" #include "palette.h" #include "constants/songs.h" #include "sound.h" #include "mystery_gift.h" +#include "union_room.h" +#include "title_screen.h" +#include "ereader_screen.h" +#include "international_string_util.h" +#include "list_menu.h" void bgid_upload_textbox_1(u8 bgId); -void sub_8018798(u8); -void sub_80186EC(u8, u8); +void task_add_00_mystery_gift(void); + +EWRAM_DATA u8 gUnknown_02022C58 = 0; +EWRAM_DATA u8 gUnknown_02022C59 = 0; const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal"); const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz"); @@ -168,6 +176,158 @@ const struct WindowTemplate gUnknown_082F0600 = { .baseBlock = 0x0155 }; +const struct ListMenuItem gUnknown_082F0608[] = { + { gText_WonderCards, 0 }, + { gText_WonderNews, 1 }, + { gText_Exit3, -2 } +}; + +const struct ListMenuItem gUnknown_082F0620[] = { + { gText_WirelessCommunication, 0 }, + { gText_Friend2, 1 }, + { gText_Cancel2, -2 } +}; + +const struct ListMenuTemplate gUnknown_082F0638 = { + .items = NULL, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 3, + .maxShowed = 3, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 1, + .cursorKind = 0 +}; + +const struct ListMenuItem gUnknown_082F0650[] = { + { gText_Receive, 0 }, + { gText_Send, 1 }, + { gText_Toss, 2 }, + { gText_Cancel2, -2 } +}; + +const struct ListMenuItem gUnknown_082F0670[] = { + { gText_Receive, 0 }, + { gText_Toss, 2 }, + { gText_Cancel2, -2 } +}; + +const struct ListMenuItem gUnknown_082F0688[] = { + { gText_Receive, 0 }, + { gText_Send, 1 }, + { gText_Cancel2, -2 } +}; + +const struct ListMenuItem gUnknown_082F06A0[] = { + { gText_Receive, 0 }, + { gText_Cancel2, -2 } +}; + +const struct ListMenuTemplate gUnknown_082F06B0 = { + .items = gUnknown_082F0650, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 4, + .maxShowed = 4, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 1, + .cursorKind = 0 +}; + +const struct ListMenuTemplate gUnknown_082F06C8 = { + .items = gUnknown_082F0670, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 3, + .maxShowed = 3, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 1, + .cursorKind = 0 +}; + +const struct ListMenuTemplate gUnknown_082F06E0 = { + .items = gUnknown_082F0688, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 3, + .maxShowed = 3, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 1, + .cursorKind = 0 +}; + +const struct ListMenuTemplate gUnknown_082F06F8 = { + .items = gUnknown_082F06A0, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .itemPrintFunc = NULL, + .totalItems = 2, + .maxShowed = 2, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = 0, + .fontId = 1, + .cursorKind = 0 +}; + +const u8 *const Unref_082F0710[] = { + gText_VarietyOfEventsImportedWireless, + gText_WonderCardsInPossession, + gText_ReadNewsThatArrived, + gText_ReturnToTitle +}; + +ALIGNED(2) const u8 gUnknown_082F0720[] = { 0, 1, 2 }; +ALIGNED(2) const u8 gUnknown_082F0724[] = { 0, 1, 2 }; +ALIGNED(2) const u8 gUnknown_082F0728[] = { 1, 2, 3 }; + void sub_8018424(void) { ProcessSpriteCopyRequests(); @@ -251,3 +411,84 @@ bool32 sub_8018450(s32 arg) return FALSE; } + +void c2_mystery_gift(void) +{ + if (sub_8018450(0)) + { + SetMainCallback2(sub_8018438); + gUnknown_02022C60 = FALSE; + task_add_00_mystery_gift(); + } + RunTasks(); +} + +void sub_801867C(void) +{ + if (sub_8018450(1)) + { + SetMainCallback2(sub_8018438); + gUnknown_02022C60 = TRUE; + sub_81D5014(); + } +} + +void sub_80186A4(void) +{ + gUnknown_02022C60 = FALSE; + FreeAllWindowBuffers(); + Free(GetBgTilemapBuffer(0)); + Free(GetBgTilemapBuffer(1)); + Free(GetBgTilemapBuffer(2)); + Free(GetBgTilemapBuffer(3)); + SetMainCallback2(CB2_InitTitleScreen); +} + +void sub_80186EC(bool8 isJapanese, bool32 usePickOkCancel) +{ + const u8 * header; + const u8 * options; + FillWindowPixelBuffer(0, 0); + if (!isJapanese) + { + header = gText_MysteryGift; + options = !usePickOkCancel ? gText_PickOKExit : gText_PickOKCancel; + } + else + { + header = gJPText_MysteryGift; + options = gJPText_DecideStop; + } + + AddTextPrinterParameterized4(0, 1, 4, 1, 0, 0, gUnknown_082F0720, -1, header); + AddTextPrinterParameterized4(0, 0, GetStringRightAlignXOffset(0, options, 0xDE), 1, 0, 0, gUnknown_082F0720, -1, options); + CopyWindowToVram(0, 2); + PutWindowTilemap(0); +} + +void sub_8018784(u8 windowId) +{ + sub_8098858(windowId, 0x01, 0xF); +} + +void sub_8018798(u32 bg) +{ + s32 i = 0, j; + + FillBgTilemapBufferRect(bg, 0x003, 0, 0, 32, 2, 0x11); + + for (i = 0; i < 18; i++) + { + for (j = 0; j < 32; j++) + { + if ((i & 1) != (j & 1)) + { + FillBgTilemapBufferRect(bg, 1, j, i + 2, 1, 1, 0x11); + } + else + { + FillBgTilemapBufferRect(bg, 2, j, i + 2, 1, 1, 0x11); + } + } + } +} diff --git a/src/party_menu.c b/src/party_menu.c index 7db24b6ca..6233558ff 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -49,7 +49,7 @@ #include "pokemon_summary_screen.h" #include "region_map.h" #include "reshow_battle_screen.h" -#include "rom_8011DC0.h" +#include "union_room.h" #include "scanline_effect.h" #include "script.h" #include "sound.h" diff --git a/src/start_menu.c b/src/start_menu.c index 4822c12e6..f573f9bdf 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -44,6 +44,7 @@ #include "window.h" #include "constants/songs.h" #include "rom_8011DC0.h" +#include "union_room.h" // Menu actions enum diff --git a/src/trade.c b/src/trade.c index df8f493f1..34f49060f 100644 --- a/src/trade.c +++ b/src/trade.c @@ -19,6 +19,8 @@ #include "load_save.h" #include "mail.h" #include "main.h" +#include "mevent2.h" +#include "mystery_gift.h" #include "overworld.h" #include "palette.h" #include "party_menu.h" @@ -39,6 +41,7 @@ #include "text_window.h" #include "trainer_card.h" #include "trade.h" +#include "union_room.h" #include "util.h" #include "window.h" #include "constants/easy_chat.h" diff --git a/src/union_room.c b/src/union_room.c index 5050b04f1..df0137379 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -40,7 +40,7 @@ #include "strings.h" #include "mevent.h" #include "dynamic_placeholder_text_util.h" -#include "rom_8011DC0.h" +#include "union_room.h" #include "easy_chat.h" #include "event_obj_lock.h" #include "union_room_chat.h" @@ -102,8 +102,6 @@ void sub_802493C(u8 monId, MainCallback callback); void sub_80149D8(void); u16 sub_8019930(void); void sub_8018784(u8 windowId); -void sub_8018884(const u8 *src); -bool32 mevent_0814257C(u8 *textState, const u8 *str); s8 sub_8018B08(u8 *textState, u8 *arg1, u8 arg2, const u8 *str); bool32 sub_8016F1C(struct UnkLinkRfuStruct_02022B14 *arg0, s16 arg1); u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2); -- cgit v1.2.3 From 82a3f29b880037f1e06e26e10f53ecc0c045ec00 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 30 Mar 2019 20:04:30 -0400 Subject: through sub_8018A50 --- src/mystery_gift.c | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 145 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mystery_gift.c b/src/mystery_gift.c index 3fbe11378..7c686964d 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -20,12 +20,12 @@ #include "ereader_screen.h" #include "international_string_util.h" #include "list_menu.h" +#include "string_util.h" void bgid_upload_textbox_1(u8 bgId); void task_add_00_mystery_gift(void); -EWRAM_DATA u8 gUnknown_02022C58 = 0; -EWRAM_DATA u8 gUnknown_02022C59 = 0; +EWRAM_DATA u8 gUnknown_02022C58[2] = {}; const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal"); const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz"); @@ -492,3 +492,146 @@ void sub_8018798(u32 bg) } } } + +void sub_8018838(bool32 arg) +{ + switch (arg) + { + case 0: + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x11); + break; + case 1: + FillBgTilemapBufferRect(0, 0, 0, 2, 32, 30, 0x11); + break; + } + CopyBgTilemapBufferToVram(0); +} + +void sub_8018884(const u8 *str) +{ + StringExpandPlaceholders(gStringVar4, str); + FillWindowPixelBuffer(1, 0x11); + AddTextPrinterParameterized4(1, 1, 0, 1, 0, 0, gUnknown_082F0728, 0, gStringVar4); + sub_8098858(1, 0x001, 0xF); + PutWindowTilemap(1); + CopyWindowToVram(1, 3); +} + +void sub_80188DC(void) +{ + rbox_fill_rectangle(1); + ClearWindowTilemap(1); + CopyWindowToVram(1, 1); +} + +bool32 mevent_0814257C(u8 *textState, const u8 *str) +{ + switch (*textState) + { + case 0: + sub_8018884(str); + goto inc; + case 1: + DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]); + if (({gMain.newKeys & (A_BUTTON | B_BUTTON);})) + { + inc: + (*textState)++; + } + break; + case 2: + DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]); + *textState = 0; + sub_80188DC(); + return TRUE; + case 0xFF: + *textState = 2; + break; + } + return FALSE; +} + +void sub_801898C(void) +{ + DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]); +} + +void sub_80189B4(void) +{ + DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]); +} + +bool32 sub_80189DC(u8 * textState) +{ + switch (*textState) + { + case 0: + sub_801898C(); + if (({gMain.newKeys & (A_BUTTON | B_BUTTON);})) + { + (*textState)++; + } + break; + case 1: + sub_80189B4(); + *textState = 0; + return TRUE; + } + return FALSE; +} + +bool32 sub_8018A1C(u8 * counter, const u8 * str) +{ + if (*counter == 0) + { + sub_8018884(str); + } + if (++(*counter) > 120) + { + *counter = 0; + sub_80188DC(); + return TRUE; + } + else + { + return FALSE; + } +} + +s32 sub_8018A50(u32 unused0, u32 unused1, bool8 r2) +{ + struct ListMenuTemplate listMenuTemplate = gUnknown_082F0638; + struct WindowTemplate windowTemplate = gUnknown_082F05E0; + s32 r3; + s32 r4; + + if (r2 == FALSE) + { + listMenuTemplate.items = gUnknown_082F0608; + } + else + { + listMenuTemplate.items = gUnknown_082F0620; + } + r3 = sub_81DB41C(&listMenuTemplate); + if (r3 & 1) + { + r3++; + } + windowTemplate.width = r3; + if (r3 < 30) + { + windowTemplate.tilemapLeft = (30 - r3) / 2; + } + else + { + windowTemplate.tilemapLeft = 0; + } + r4 = DoMysteryGiftListMenu(&windowTemplate, &listMenuTemplate, 1, 0x00A, 0xE0); + if (r4 != -1) + { + ClearWindowTilemap(2); + CopyWindowToVram(2, 1); + } + return r4; +} -- cgit v1.2.3 From 608a2172403abdae4ceba7f56ab78120dd0b9f1f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Mar 2019 10:33:27 -0400 Subject: sub_8018B08 --- src/mystery_gift.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mystery_gift.c b/src/mystery_gift.c index 7c686964d..da2a3bcc0 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -598,7 +598,7 @@ bool32 sub_8018A1C(u8 * counter, const u8 * str) } } -s32 sub_8018A50(u32 unused0, u32 unused1, bool8 r2) +s32 sub_8018A50(u8 * unused0, u8 * unused1, bool8 r2) { struct ListMenuTemplate listMenuTemplate = gUnknown_082F0638; struct WindowTemplate windowTemplate = gUnknown_082F05E0; @@ -635,3 +635,64 @@ s32 sub_8018A50(u32 unused0, u32 unused1, bool8 r2) } return r4; } + +s32 sub_8018B08(u8 * textState, u16 * windowId, bool8 r6, const u8 * str) +{ + struct WindowTemplate windowTemplate; + s8 input; + + switch (*textState) + { + case 0: + StringExpandPlaceholders(gStringVar4, str); + if (r6 == 0) + { + *windowId = AddWindow(&gUnknown_082F05C8); + } + else + { + *windowId = AddWindow(&gUnknown_082F05D0); + } + FillWindowPixelBuffer(*windowId, 0x11); + AddTextPrinterParameterized4(*windowId, 1, 0, 1, 0, 0, gUnknown_082F0728, 0, gStringVar4); + sub_8098858(*windowId, 0x001, 0x0F); + CopyWindowToVram(*windowId, 2); + PutWindowTilemap(*windowId); + (*textState)++; + break; + case 1: + windowTemplate = gUnknown_082F05E8; + if (r6 == 0) + { + windowTemplate.tilemapTop = 9; + } + else + { + windowTemplate.tilemapTop = 15; + } + CreateYesNoMenu(&windowTemplate, 10, 14, 0); + (*textState)++; + break; + case 2: + input = Menu_ProcessInputNoWrapClearOnChoose(); + if (input == -1 || input == 0 || input == 1) + { + *textState = 0; + rbox_fill_rectangle(*windowId); + ClearWindowTilemap(*windowId); + CopyWindowToVram(*windowId, 1); + RemoveWindow(*windowId); + return input; + } + break; + case 0xFF: + *textState = 0; + rbox_fill_rectangle(*windowId); + ClearWindowTilemap(*windowId); + CopyWindowToVram(*windowId, 1); + RemoveWindow(*windowId); + return -1; + } + + return -2; +} -- cgit v1.2.3 From f88f815cff272f4cd19759f2df24f85bc5f02ae1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Mar 2019 11:16:19 -0400 Subject: WIP sub_8018DAC --- src/list_menu.c | 2 +- src/mystery_gift.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/list_menu.c b/src/list_menu.c index 57bcc5c4f..3bcd3073d 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -312,7 +312,7 @@ static void ListMenuDummyTask(u8 taskId) } -s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum) +s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum) { switch (sMysteryGiftLinkMenu.state) { diff --git a/src/mystery_gift.c b/src/mystery_gift.c index da2a3bcc0..9561fbbeb 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -21,6 +21,8 @@ #include "international_string_util.h" #include "list_menu.h" #include "string_util.h" +#include "mevent.h" +#include "mevent_801BAAC.h" void bgid_upload_textbox_1(u8 bgId); void task_add_00_mystery_gift(void); @@ -696,3 +698,121 @@ s32 sub_8018B08(u8 * textState, u16 * windowId, bool8 r6, const u8 * str) return -2; } + +s32 sub_8018C4C(u8 * textState, u16 * windowId, bool32 r2, bool32 r3) +{ + struct WindowTemplate windowTemplate; + s32 input; + + switch (*textState) + { + case 0: + if (r2 == 0) + { + StringExpandPlaceholders(gStringVar4, gText_WhatToDoWithCards); + } + else + { + StringExpandPlaceholders(gStringVar4, gText_WhatToDoWithNews); + } + *windowId = AddWindow(&gUnknown_082F05D8); + FillWindowPixelBuffer(*windowId, 0x11); + AddTextPrinterParameterized4(*windowId, 1, 0, 1, 0, 0, gUnknown_082F0728, 0, gStringVar4); + sub_8098858(*windowId, 0x001, 0x0F); + CopyWindowToVram(*windowId, 2); + PutWindowTilemap(*windowId); + (*textState)++; + break; + case 1: + windowTemplate = gUnknown_082F05E8; + if (r3) + { + if (r2 == 0) + { + input = DoMysteryGiftListMenu(&gUnknown_082F05F8, &gUnknown_082F06C8, 1, 0x00A, 0xE0); + } + else + { + input = DoMysteryGiftListMenu(&gUnknown_082F0600, &gUnknown_082F06F8, 1, 0x00A, 0xE0); + } + } + else + { + if (r2 == 0) + { + input = DoMysteryGiftListMenu(&gUnknown_082F05F0, &gUnknown_082F06B0, 1, 0x00A, 0xE0); + } + else + { + input = DoMysteryGiftListMenu(&gUnknown_082F05F8, &gUnknown_082F06E0, 1, 0x00A, 0xE0); + } + } + if (input != -1) + { + *textState = 0; + rbox_fill_rectangle(*windowId); + ClearWindowTilemap(*windowId); + CopyWindowToVram(*windowId, 1); + RemoveWindow(*windowId); + return input; + } + break; + case 0xFF: + *textState = 0; + rbox_fill_rectangle(*windowId); + ClearWindowTilemap(*windowId); + CopyWindowToVram(*windowId, 1); + RemoveWindow(*windowId); + return -2; + } + + return -1; +} + +s32 sub_8018D98(bool32 a0) +{ + if (a0 == 0) + { + return sub_801B27C(); + } + else + { + return sub_801B0CC(); + } +} + +/*bool32 sub_8018DAC(u8 * state, bool32 arg1) +{ + switch (*state) + { + case 0: + if (arg1 == 0) + { + sub_801BAAC(sav1_get_mevent_buffer_1(), sav1_get_mevent_buffer_2()); + } + else + { + sub_801C6C8(sub_801B00C()); + } + (*state)++; + case 1: + if (arg1 == 0) + { + if (sub_801BB74() == 0) + { + break; + } + } + else + { + if (sub_801C758() == 0) + { + break; + } + } + *state = 0; + return TRUE; + } + + return FALSE; +}*/ -- cgit v1.2.3 From 813de11154ac9ac6d561ef820d2a13995ce5bb35 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Mar 2019 12:27:36 -0400 Subject: Through mevent_save_game --- src/mystery_gift.c | 118 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 110 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/mystery_gift.c b/src/mystery_gift.c index 9561fbbeb..206a9e50b 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -23,6 +23,7 @@ #include "string_util.h" #include "mevent.h" #include "mevent_801BAAC.h" +#include "save.h" void bgid_upload_textbox_1(u8 bgId); void task_add_00_mystery_gift(void); @@ -781,8 +782,10 @@ s32 sub_8018D98(bool32 a0) } } -/*bool32 sub_8018DAC(u8 * state, bool32 arg1) +bool32 sub_8018DAC(u8 * state, bool32 arg1) { + s32 v0; + switch (*state) { case 0: @@ -795,24 +798,123 @@ s32 sub_8018D98(bool32 a0) sub_801C6C8(sub_801B00C()); } (*state)++; + break; case 1: if (arg1 == 0) { - if (sub_801BB74() == 0) + v0 = sub_801BB74(); + check: + if (v0 != 0) { - break; + goto done; } + break; } else { - if (sub_801C758() == 0) - { - break; - } + v0 = sub_801C758(); + goto check; + } + done: + *state = 0; + return TRUE; + } + + return FALSE; +} + +bool32 sub_8018E08(bool32 arg0) +{ + if (arg0 == 0) + { + sub_801B1E8(); + } + else + { + sub_801B06C(); + } + return TRUE; +} + +bool32 sub_8018E20(bool32 arg0, bool32 arg1) +{ + if (arg0 == 0) + { + if (sub_801BDA4(arg1) != 0) + { + sub_801BB48(); + return TRUE; + } + else + { + return FALSE; + } + } + else + { + if (sub_801CA50(arg1) != 0) + { + sub_801C72C(); + return TRUE; + } + else + { + return FALSE; + } + } +} + +s8 sub_8018E50(u8 * textState, u16 * windowId, bool32 r2) +{ + if (r2 == 0) + { + return sub_8018B08(textState, windowId, TRUE, gText_IfThrowAwayCardEventWontHappen); + } + else + { + return sub_8018B08(textState, windowId, TRUE, gText_OkayToDiscardNews); + } +} + +bool32 mevent_message_was_thrown_away(u8 * textState, bool32 r1) +{ + if (r1 == 0) + { + return mevent_0814257C(textState, gText_WonderCardThrownAway); + } + else + { + return mevent_0814257C(textState, gText_WonderNewsThrownAway); + } +} + +bool32 mevent_save_game(u8 * state) +{ + switch (*state) + { + case 0: + sub_8018884(gText_DataWillBeSaved); + (*state)++; + break; + case 1: + TrySavingData(0); + (*state)++; + break; + case 2: + sub_8018884(gText_SaveCompletedPressA); + (*state)++; + break; + case 3: + if (({gMain.newKeys & (A_BUTTON | B_BUTTON);})) + { + (*state)++; } + break; + case 4: *state = 0; + sub_80188DC(); return TRUE; } return FALSE; -}*/ +} -- cgit v1.2.3 From fb5c19a33bf314f4976ae56ce13f4dc9d9ed0fe0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Mar 2019 12:36:48 -0400 Subject: through mevent_message --- src/mystery_gift.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'src') diff --git a/src/mystery_gift.c b/src/mystery_gift.c index 206a9e50b..c8a507355 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -918,3 +918,73 @@ bool32 mevent_save_game(u8 * state) return FALSE; } + +const u8 * mevent_message(u32 * a0, u8 a1, u8 a2, u32 a3) +{ + const u8 * msg = NULL; + *a0 = 0; + + switch (a3) + { + case 0: + *a0 = 0; + msg = gText_NothingSentOver; + break; + case 1: + *a0 = 0; + msg = gText_RecordUploadedViaWireless; + break; + case 2: + *a0 = 1; + msg = a2 == 0 ? gText_WonderCardReceived : gText_WonderCardReceivedFrom; + break; + case 3: + *a0 = 1; + msg = a2 == 0 ? gText_WonderNewsReceived : gText_WonderNewsReceivedFrom; + break; + case 4: + *a0 = 1; + msg = gText_NewStampReceived; + break; + case 5: + *a0 = 0; + msg = gText_AlreadyHadCard; + break; + case 6: + *a0 = 0; + msg = gText_AlreadyHadStamp; + break; + case 7: + *a0 = 0; + msg = gText_AlreadyHadNews; + break; + case 8: + *a0 = 0; + msg = gText_NoMoreRoomForStamps; + break; + case 9: + *a0 = 0; + msg = gText_CommunicationCanceled; + break; + case 10: + *a0 = 0; + msg = a1 == 0 ? gText_CantAcceptCardFromTrainer : gText_CantAcceptNewsFromTrainer; + break; + case 11: + *a0 = 0; + msg = gText_CommunicationError; + break; + case 12: + *a0 = 1; + msg = gText_NewTrainerReceived; + break; + case 13: + *a0 = 1; + break; + case 14: + *a0 = 0; + break; + } + + return msg; +} -- cgit v1.2.3 From 90fb329b70433e75cfd571d8b33df2593d2b7656 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Mar 2019 12:55:27 -0400 Subject: through task_add_00_mystery_gift --- src/mystery_gift.c | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) (limited to 'src') diff --git a/src/mystery_gift.c b/src/mystery_gift.c index c8a507355..30aa6f323 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -27,12 +27,34 @@ void bgid_upload_textbox_1(u8 bgId); void task_add_00_mystery_gift(void); +void task00_mystery_gift(u8 taskId); EWRAM_DATA u8 gUnknown_02022C58[2] = {}; const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal"); const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz"); +struct MysteryGiftExtraData +{ + u8 filler_00[0x40]; +}; + +struct MysteryGiftTaskData +{ + u16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; + u8 unkD; + u8 unkE; + struct MysteryGiftExtraData * unk10; +}; + const struct BgTemplate gUnknown_082F0598[] = { { .bg = 0, @@ -988,3 +1010,123 @@ const u8 * mevent_message(u32 * a0, u8 a1, u8 a2, u32 a3) return msg; } + +bool32 mevent_08142CE8(u8 * state, const u8 * arg1, u16 * arg2) +{ + switch (*state) + { + case 0: + if (arg1 != NULL) + { + sub_8018884(arg1); + } + PlayFanfare(MUS_FANFA4); + *arg2 = 0; + (*state)++; + break; + case 1: + if (++(*arg2) > 0xF0) + { + (*state)++; + } + break; + case 2: + if (IsFanfareTaskInactive()) + { + *state = 0; + sub_80188DC(); + return TRUE; + } + break; + } + return FALSE; +} + +const u8 * mevent_message_stamp_card_etc_send_status(u32 * a0, u8 unused, u32 state) +{ + const u8 * result = gText_CommunicationError; + *a0 = 0; + switch (state) + { + case 0: + result = gText_NothingSentOver; + break; + case 1: + result = gText_RecordUploadedViaWireless; + break; + case 2: + result = gText_WonderCardSentTo; + *a0 = 1; + break; + case 3: + result = gText_WonderNewsSentTo; + *a0 = 1; + break; + case 4: + result = gText_StampSentTo; + break; + case 5: + result = gText_OtherTrainerHasCard; + break; + case 6: + result = gText_OtherTrainerHasStamp; + break; + case 7: + result = gText_OtherTrainerHasNews; + break; + case 8: + result = gText_NoMoreRoomForStamps; + break; + case 9: + result = gText_OtherTrainerCanceled; + break; + case 10: + result = gText_CantSendGiftToTrainer; + break; + case 11: + result = gText_CommunicationError; + break; + case 12: + result = gText_GiftSentTo; + break; + case 13: + result = gText_GiftSentTo; + break; + case 14: + result = gText_CantSendGiftToTrainer; + break; + } + return result; +} + +bool32 sub_8019174(u8 * state_p, u16 * arg1, u8 arg2, u32 state) +{ + u32 flag; + const u8 * str = mevent_message_stamp_card_etc_send_status(&flag, arg2, state); + if (flag) + { + return mevent_08142CE8(state_p, str, arg1); + } + else + { + return mevent_0814257C(state_p, str); + } +} + +void task_add_00_mystery_gift(void) +{ + u8 taskId = CreateTask(task00_mystery_gift, 0); + struct MysteryGiftTaskData * data = (void *)gTasks[taskId].data; + data->unk8 = 0; + data->unk9 = 0; + data->unkA = 0; + data->unkB = 0; + data->unkC = 0; + data->unkD = 0; + data->unk0 = 0; + data->unk2 = 0; + data->unk4 = 0; + data->unk6 = 0; + data->unkE = 0; + data->unk10 = AllocZeroed(sizeof(*data->unk10)); +} -- cgit v1.2.3 From 0a8427c8effeefc58c542f249d7384648585ff4a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Mar 2019 15:50:25 -0400 Subject: fakematching task00_mystery_gift --- src/mevent_801BAAC.c | 2 +- src/mystery_gift.c | 580 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 571 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c index d69ab0495..b9931a682 100644 --- a/src/mevent_801BAAC.c +++ b/src/mevent_801BAAC.c @@ -724,7 +724,7 @@ void sub_801CC80(void) } } -u8 sub_801CCD0(u16 input) +u32 sub_801CCD0(u16 input) { if (gUnknown_02022C78->unk_01C2_0) { diff --git a/src/mystery_gift.c b/src/mystery_gift.c index 30aa6f323..5e000a249 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -24,6 +24,12 @@ #include "mevent.h" #include "mevent_801BAAC.h" #include "save.h" +#include "link.h" +#include "mevent_server_ish.h" +#include "event_data.h" +#include "link_rfu.h" +#include "mevent_news.h" +#include "mevent_server.h" void bgid_upload_textbox_1(u8 bgId); void task_add_00_mystery_gift(void); @@ -34,11 +40,6 @@ EWRAM_DATA u8 gUnknown_02022C58[2] = {}; const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal"); const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz"); -struct MysteryGiftExtraData -{ - u8 filler_00[0x40]; -}; - struct MysteryGiftTaskData { u16 unk0; @@ -52,7 +53,7 @@ struct MysteryGiftTaskData u8 unkC; u8 unkD; u8 unkE; - struct MysteryGiftExtraData * unk10; + u8 * unk10; }; const struct BgTemplate gUnknown_082F0598[] = { @@ -623,7 +624,7 @@ bool32 sub_8018A1C(u8 * counter, const u8 * str) } } -s32 sub_8018A50(u8 * unused0, u8 * unused1, bool8 r2) +u32 sub_8018A50(u8 * unused0, u16 * unused1, bool8 r2) { struct ListMenuTemplate listMenuTemplate = gUnknown_082F0638; struct WindowTemplate windowTemplate = gUnknown_082F05E0; @@ -661,7 +662,7 @@ s32 sub_8018A50(u8 * unused0, u8 * unused1, bool8 r2) return r4; } -s32 sub_8018B08(u8 * textState, u16 * windowId, bool8 r6, const u8 * str) +s8 sub_8018B08(u8 * textState, u16 * windowId, bool8 r6, const u8 * str) { struct WindowTemplate windowTemplate; s8 input; @@ -886,7 +887,7 @@ bool32 sub_8018E20(bool32 arg0, bool32 arg1) } } -s8 sub_8018E50(u8 * textState, u16 * windowId, bool32 r2) +s32 sub_8018E50(u8 * textState, u16 * windowId, bool32 r2) { if (r2 == 0) { @@ -1128,5 +1129,564 @@ void task_add_00_mystery_gift(void) data->unk4 = 0; data->unk6 = 0; data->unkE = 0; - data->unk10 = AllocZeroed(sizeof(*data->unk10)); + data->unk10 = AllocZeroed(0x40); +} + +void task00_mystery_gift(u8 taskId) +{ + struct MysteryGiftTaskData * data = (void *)gTasks[taskId].data; + u32 sp0; + const u8 * r1; + + switch (data->unk8) + { + case 0: + data->unk8 = 1; + break; + case 1: + switch (sub_8018A50(&data->unk9, &data->unk0, FALSE)) + { + case 0: + data->unkC = 0; + if (sub_801B27C() == TRUE) + { + data->unk8 = 18; + } + else + { + data->unk8 = 2; + } + break; + case 1: + data->unkC = 1; + if (sub_801B0CC() == TRUE) + { + data->unk8 = 18; + } + else + { + data->unk8 = 2; + } + break; + case -2u: + data->unk8 = 37; + break; + } + break; + case 2: + { + if (data->unkC == 0) + { + if (mevent_0814257C(&data->unk9, gText_DontHaveCardNewOneInput)) + { + data->unk8 = 3; + sub_80186EC(0, 1); + } + } + else + { + if (mevent_0814257C(&data->unk9, gText_DontHaveNewsNewOneInput)) + { + data->unk8 = 3; + sub_80186EC(0, 1); + } + } + break; + } + case 3: + if (data->unkC == 0) + { + sub_8018884(gText_WhereShouldCardBeAccessed); + } + else + { + sub_8018884(gText_WhereShouldNewsBeAccessed); + } + data->unk8 = 4; + break; + case 4: + switch (sub_8018A50(&data->unk9, &data->unk0, TRUE)) + { + case 0: + sub_80188DC(); + data->unk8 = 5; + data->unkD = 0; + break; + case 1: + sub_80188DC(); + data->unk8 = 5; + data->unkD = 1; + break; + case -2u: + sub_80188DC(); + if (sub_8018D98(data->unkC)) + { + data->unk8 = 18; + } + else + { + data->unk8 = 0; + sub_80186EC(0, 0); + } + break; + } + break; + case 5: + { + register u8 eos asm("r1"); + gStringVar1[0] = (eos = EOS); + gStringVar2[0] = eos; + gStringVar3[0] = eos; + } + switch (data->unkC) + { + case 0: + if (data->unkD == 1) + { + sub_8014EFC(0x15); + } + else if (data->unkD == 0) + { + sub_80152A8(0x15); + } + break; + case 1: + if (data->unkD == 1) + { + sub_8014EFC(0x16); + } + else if (data->unkD == 0) + { + sub_80152A8(0x16); + } + break; + } + data->unk8 = 6; + break; + case 6: + if (gReceivedRemoteLinkPlayers != 0) + { + sub_8018838(TRUE); + data->unk8 = 7; + sub_801D484(data->unkC); + } + else if (gSpecialVar_Result == 5) + { + sub_8018838(TRUE); + data->unk8 = 3; + } + break; + case 7: + sub_8018884(gText_Communicating); + data->unk8 = 8; + break; + case 8: + switch (sub_801D4A8(&data->unk0)) + { + case 6: + task_add_05_task_del_08FA224_when_no_RfuFunc(); + data->unkE = data->unk0; + data->unk8 = 13; + break; + case 5: + memcpy(data->unk10, sub_801D4F4(), 0x40); + sub_801D4E4(); + break; + case 3: + data->unk8 = 10; + break; + case 2: + data->unk8 = 9; + break; + case 4: + data->unk8 = 11; + StringCopy(gStringVar1, gLinkPlayers[0].name); + break; + } + break; + case 9: + switch ((u32)sub_8018B08(&data->unk9, &data->unk0, FALSE, sub_801D4F4())) + { + case 0: + sub_801D500(0); + sub_801D4E4(); + data->unk8 = 7; + break; + case 1: + sub_801D500(1); + sub_801D4E4(); + data->unk8 = 7; + break; + case -1u: + sub_801D500(1); + sub_801D4E4(); + data->unk8 = 7; + break; + } + break; + case 10: + if (mevent_0814257C(&data->unk9, sub_801D4F4())) + { + sub_801D4E4(); + data->unk8 = 7; + } + break; + case 11: + switch ((u32)sub_8018B08(&data->unk9, &data->unk0, FALSE, gText_ThrowAwayWonderCard)) + { + case 0: + if (sub_801B3F8() == TRUE) + { + data->unk8 = 12; + } + else + { + sub_801D500(0); + sub_801D4E4(); + data->unk8 = 7; + } + break; + case 1: + sub_801D500(1); + sub_801D4E4(); + data->unk8 = 7; + break; + case -1u: + sub_801D500(1); + sub_801D4E4(); + data->unk8 = 7; + break; + } + break; + case 12: + switch ((u32)sub_8018B08(&data->unk9, &data->unk0, FALSE, gText_HaventReceivedCardsGift)) + { + case 0: + sub_801D500(0); + sub_801D4E4(); + data->unk8 = 7; + break; + case 1: + sub_801D500(1); + sub_801D4E4(); + data->unk8 = 7; + break; + case -1u: + sub_801D500(1); + sub_801D4E4(); + data->unk8 = 7; + break; + } + break; + case 13: + if (gReceivedRemoteLinkPlayers == 0) + { + sub_800E084(); + data->unk8 = 14; + } + break; + case 14: + if (sub_8018A1C(&data->unk9, gText_CommunicationCompleted)) + { + if (data->unkD == 1) + { + StringCopy(gStringVar1, gLinkPlayers[0].name); + } + data->unk8 = 15; + } + break; + case 15: + { + register bool32 flag asm("r1"); + r1 = mevent_message(&sp0, data->unkC, data->unkD, data->unkE); + if (r1 == NULL) + { + r1 = data->unk10; + } + if (sp0) + { + flag = mevent_08142CE8(&data->unk9, r1, &data->unk0); + } + else + { + flag = mevent_0814257C(&data->unk9, r1); + } + if (flag) + { + if (data->unkE == 3) + { + if (data->unkD == 1) + { + sub_801DB68(1); + } + else + { + sub_801DB68(2); + } + } + if (sp0 == 0) + { + data->unk8 = 0; + sub_80186EC(0, 0); + } + else + { + data->unk8 = 17; + } + } + break; + } + case 16: + if (mevent_0814257C(&data->unk9, gText_CommunicationError)) + { + data->unk8 = 0; + sub_80186EC(0, 0); + } + break; + case 17: + if (mevent_save_game(&data->unk9)) + { + data->unk8 = 18; + } + break; + case 18: + if (sub_8018DAC(&data->unk9, data->unkC)) + { + data->unk8 = 20; + } + break; + case 20: + if (data->unkC == 0) + { + if (({gMain.newKeys & A_BUTTON;})) + { + data->unk8 = 21; + } + if (({gMain.newKeys & B_BUTTON;})) + { + data->unk8 = 27; + } + } + else + { + switch (sub_801CCD0(gMain.newKeys)) + { + case 0: + sub_801CC38(); + data->unk8 = 21; + break; + case 1: + data->unk8 = 27; + break; + } + } + break; + case 21: + { + u32 result; + if (data->unkC == 0) + { + if (sub_801B308()) + { + result = sub_8018C4C(&data->unk9, &data->unk0, data->unkC, FALSE); + } + else + { + result = sub_8018C4C(&data->unk9, &data->unk0, data->unkC, TRUE); + } + } + else + { + if (sub_801B128()) + { + result = sub_8018C4C(&data->unk9, &data->unk0, data->unkC, FALSE); + } + else + { + result = sub_8018C4C(&data->unk9, &data->unk0, data->unkC, TRUE); + } + } + switch (result) + { + case 0: + data->unk8 = 28; + break; + case 1: + data->unk8 = 29; + break; + case 2: + data->unk8 = 22; + break; + case -2u: + if (data->unkC == 1) + { + sub_801CC80(); + } + data->unk8 = 20; + break; + } + break; + } + case 22: + switch (sub_8018E50(&data->unk9, &data->unk0, data->unkC)) + { + case 0: + if (data->unkC == 0 && sub_801B3F8() == TRUE) + { + data->unk8 = 23; + } + else + { + data->unk8 = 24; + } + break; + case 1: + data->unk8 = 21; + break; + case -1: + data->unk8 = 21; + break; + } + break; + case 23: + switch ((u32)sub_8018B08(&data->unk9, &data->unk0, TRUE, gText_HaventReceivedGiftOkayToDiscard)) + { + case 0: + data->unk8 = 24; + break; + case 1: + data->unk8 = 21; + break; + case -1u: + data->unk8 = 21; + break; + } + break; + case 24: + if (sub_8018E20(data->unkC, 1)) + { + sub_8018E08(data->unkC); + data->unk8 = 25; + } + break; + case 25: + if (mevent_save_game(&data->unk9)) + { + data->unk8 = 26; + } + break; + case 26: + if (mevent_message_was_thrown_away(&data->unk9, data->unkC)) + { + data->unk8 = 0; + sub_80186EC(0, 0); + } + break; + case 27: + if (sub_8018E20(data->unkC, 0)) + { + data->unk8 = 0; + } + break; + case 28: + if (sub_8018E20(data->unkC, 1)) + { + data->unk8 = 3; + } + break; + case 29: + if (sub_8018E20(data->unkC, 1)) + { + switch (data->unkC) + { + case 0: + sub_8014A00(21); + break; + case 1: + sub_8014A00(22); + break; + } + data->unkD = 1; + data->unk8 = 30; + } + break; + case 30: + if (gReceivedRemoteLinkPlayers != 0) + { + sub_8018838(1); + data->unk8 = 31; + } + else if (gSpecialVar_Result == 5) + { + sub_8018838(1); + data->unk8 = 18; + } + break; + case 31: + { + register u8 eos asm("r1"); + gStringVar1[0] = (eos = EOS); + gStringVar2[0] = eos; + gStringVar3[0] = eos; + } + if (data->unkC == 0) + { + sub_8018884(gText_SendingWonderCard); + mevent_srv_new_wcard(); + } + else + { + sub_8018884(gText_SendingWonderNews); + mevent_srv_init_wnews(); + } + data->unk8 = 32; + break; + case 32: + if (sub_801D0C4(&data->unk0) == 3) + { + data->unkE = data->unk0; + data->unk8 = 33; + } + break; + case 33: + task_add_05_task_del_08FA224_when_no_RfuFunc(); + StringCopy(gStringVar1, gLinkPlayers[1].name); + data->unk8 = 34; + break; + case 34: + if (gReceivedRemoteLinkPlayers == 0) + { + sub_800E084(); + data->unk8 = 35; + } + break; + case 35: + if (sub_8019174(&data->unk9, &data->unk0, data->unkD, data->unkE)) + { + if (data->unkD == 1 && data->unkE == 3) + { + sub_801DB68(3); + data->unk8 = 17; + } + else + { + data->unk8 = 0; + sub_80186EC(0, 0); + } + } + break; + case 36: + if (mevent_0814257C(&data->unk9, gText_CommunicationError)) + { + data->unk8 = 0; + sub_80186EC(0, 0); + } + break; + case 37: + CloseLink(); + Free(data->unk10); + DestroyTask(taskId); + SetMainCallback2(sub_80186A4); + break; + } } -- cgit v1.2.3 From ade01833781ee8a8057f2b2945095bababb2e639 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 31 Mar 2019 18:59:52 -0400 Subject: Document mystery_gift --- src/battle_bg.c | 2 +- src/berry_blender.c | 2 +- src/berry_crush.c | 2 +- src/contest_link_80F57C4.c | 2 +- src/easy_chat.c | 2 +- src/ereader_screen.c | 34 +- src/evolution_scene.c | 2 +- src/international_string_util.c | 2 +- src/link_rfu.c | 6 +- src/list_menu.c | 2 +- src/main_menu.c | 3 +- src/menu.c | 2 +- src/mevent2.c | 46 +-- src/mevent_801BAAC.c | 380 +++++++++---------- src/mevent_news.c | 4 +- src/mystery_event_menu.c | 2 +- src/mystery_gift.c | 747 +++++++++++++++++++------------------- src/pokemon_storage_system.c | 2 +- src/script.c | 2 +- src/script_pokemon_util_80F87D8.c | 2 +- src/start_menu.c | 4 +- src/text_window.c | 4 +- src/trade.c | 10 +- src/union_room.c | 86 ++--- src/union_room_chat.c | 8 +- src/use_pokeblock.c | 6 +- 26 files changed, 688 insertions(+), 676 deletions(-) (limited to 'src') diff --git a/src/battle_bg.c b/src/battle_bg.c index 524f73abf..814e8dad9 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -709,7 +709,7 @@ void LoadBattleMenuWindowGfx(void) if (gBattleTypeFlags & BATTLE_TYPE_ARENA) { - sub_81978B0(0x70); + Menu_LoadStdPalAt(0x70); LoadMessageBoxGfx(0, 0x30, 0x70); gPlttBufferUnfaded[0x76] = 0; CpuCopy16(&gPlttBufferUnfaded[0x76], &gPlttBufferFaded[0x76], 2); diff --git a/src/berry_blender.c b/src/berry_blender.c index c792b9b40..26327a634 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -940,7 +940,7 @@ static void InitBerryBlenderWindows(void) FillWindowPixelBuffer(i, PIXEL_FILL(0)); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); - sub_81978B0(0xE0); + Menu_LoadStdPalAt(0xE0); } } diff --git a/src/berry_crush.c b/src/berry_crush.c index dc4c546b0..51dbe8203 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -582,7 +582,7 @@ int sub_802130C(void) ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); break; case 6: - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); sub_8022960(var0); sub_8034CC8(); break; diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index a4b88c074..59f41d72a 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -778,7 +778,7 @@ static void sub_80F677C(u8 taskId) if (!gReceivedRemoteLinkPlayers) { if (gIsLinkContest & 0x2) - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); sub_80F7144(); gTasks[taskId].func = sub_80F67C4; diff --git a/src/easy_chat.c b/src/easy_chat.c index 2e384de6e..1cb7b0fe8 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -3721,7 +3721,7 @@ static void sub_811D0BC(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); LoadUserWindowBorderGfx(1, 1, 0xE0); - sub_8098858(1, 1, 14); + DrawTextBorderOuter(1, 1, 14); sub_811D104(0); PutWindowTilemap(1); CopyBgTilemapBufferToVram(0); diff --git a/src/ereader_screen.c b/src/ereader_screen.c index 10a23e251..bac29cd42 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -4,7 +4,7 @@ #include "ereader_helpers.h" #include "link.h" #include "main.h" -#include "union_room.h" +#include "mystery_gift.h" #include "save.h" #include "sound.h" #include "sprite.h" @@ -209,7 +209,7 @@ static u32 sub_81D4EE4(u8 *arg0, u16 *arg1) return 0; } -void sub_81D5014(void) +void task_add_00_ereader(void) { int value; struct Unk81D5014 *data; @@ -251,7 +251,7 @@ static void sub_81D5084(u8 taskId) switch (data->unk8) { case 0: - if (mevent_0814257C(&data->unk9, gUnknown_085EDFD6)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EDFD6)) data->unk8 = 1; break; case 1: @@ -275,9 +275,9 @@ static void sub_81D5084(u8 taskId) } break; case 4: - if (mevent_0814257C(&data->unk9, gUnknown_085EDFF5)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EDFF5)) { - sub_8018884(gUnknown_085EE014); + AddTextPrinterToWindow1(gUnknown_085EE014); sub_81D505C(&data->unk0); data->unk8 = 5; } @@ -324,11 +324,11 @@ static void sub_81D5084(u8 taskId) } break; case 7: - if (mevent_0814257C(&data->unk9, gUnknown_085EE05C)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE05C)) data->unk8 = 4; break; case 8: - sub_8018884(gUnknown_085EE097); + AddTextPrinterToWindow1(gUnknown_085EE097); // XXX: This (u32*) cast is discarding the const qualifier from gUnknown_089A3470 sub_81D4D50(&gUnknown_03006370, gMultiBootProgram_BerryGlitchFix_Start - gUnknown_089A3470, (u32*)gUnknown_089A3470); data->unk8 = 9; @@ -347,7 +347,7 @@ static void sub_81D5084(u8 taskId) else if (data->unkE == 1) { sub_81D505C(&data->unk0); - sub_8018884(gUnknown_085EE120); + AddTextPrinterToWindow1(gUnknown_085EE120); data->unk8 = 11; } else @@ -361,7 +361,7 @@ static void sub_81D5084(u8 taskId) break; case 12: sub_81D4E30(); - sub_8018884(gUnknown_085EE0DC); + AddTextPrinterToWindow1(gUnknown_085EE0DC); data->unk8 = 13; break; case 13: @@ -370,7 +370,7 @@ static void sub_81D5084(u8 taskId) case 0: break; case 2: - sub_8018884(gUnknown_085EE097); + AddTextPrinterToWindow1(gUnknown_085EE097); data->unk8 = 14; break; case 1: @@ -418,7 +418,7 @@ static void sub_81D5084(u8 taskId) case 17: if (sub_81D3AB0((struct Unk81D38FC *)&gDecompressionBuffer)) { - sub_8018884(gUnknown_085EE0FA); + AddTextPrinterToWindow1(gUnknown_085EE0FA); sub_81D505C(&data->unk0); data->unk8 = 18; } @@ -430,7 +430,7 @@ static void sub_81D5084(u8 taskId) case 18: if (sub_81D5064(&data->unk0, 120)) { - sub_8018884(gUnknown_085EE107); + AddTextPrinterToWindow1(gUnknown_085EE107); PlayFanfare(MUS_FANFA4); data->unk8 = 19; } @@ -440,25 +440,25 @@ static void sub_81D5084(u8 taskId) data->unk8 = 26; break; case 23: - if (mevent_0814257C(&data->unk9,gUnknown_085EE06B)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9,gUnknown_085EE06B)) data->unk8 = 26; break; case 20: - if (mevent_0814257C(&data->unk9, gUnknown_085EE0A3)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE0A3)) data->unk8 = 0; break; case 21: - if (mevent_0814257C(&data->unk9, gUnknown_085EE0BF)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE0BF)) data->unk8 = 0; break; case 22: - if (mevent_0814257C(&data->unk9, gUnknown_085EE12D)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->unk9, gUnknown_085EE12D)) data->unk8 = 0; break; case 26: Free(data->unk10); DestroyTask(taskId); - SetMainCallback2(sub_80186A4); + SetMainCallback2(MainCB_FreeAllBuffersAndReturnToInitTitleScreen); break; } } diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 4bf7701be..8c4847b8d 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -1228,7 +1228,7 @@ static void Task_TradeEvolutionScene(u8 taskID) if (!gPaletteFade.active) { if (gWirelessCommType) - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); Free(GetBgTilemapBuffer(3)); Free(GetBgTilemapBuffer(1)); diff --git a/src/international_string_util.c b/src/international_string_util.c index a7c42c39e..dfeda49e3 100644 --- a/src/international_string_util.c +++ b/src/international_string_util.c @@ -62,7 +62,7 @@ int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2) return convert_pixel_width_to_tile_width(var); } -int sub_81DB41C(const struct ListMenuTemplate *listMenu) +int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu) { int i, maxWidth, finalWidth; const struct ListMenuItem *items = listMenu->items; diff --git a/src/link_rfu.c b/src/link_rfu.c index 43d19be03..a430f6e24 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -2243,7 +2243,7 @@ void CreateWirelessStatusIndicatorSprite(u8 x, u8 y) } } -void sub_800E084(void) +void DestroyWirelessStatusIndicatorSprite(void) { if (gSprites[gWirelessStatusIndicatorSpriteId].data[7] == 0x1234) { @@ -2356,7 +2356,7 @@ void sub_800E174(void) CpuCopy16(gMain.oamBuffer + 125, (struct OamData *)OAM + 125, sizeof(struct OamData)); if (sub_8011A74() == 1) { - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); } } } @@ -4209,7 +4209,7 @@ void sub_8010DB4(void) { if (gUnknown_03005000.unk_ee == 1 && gUnknown_03004140.unk_02 == 0) { - if (gMain.callback2 == sub_8018438 || gUnknown_03004140.unk_3c->unk_04) + if (gMain.callback2 == c2_mystery_gift_e_reader_run || gUnknown_03004140.unk_3c->unk_04) gWirelessCommType = 2; SetMainCallback2(CB2_LinkError); gMain.savedCallback = CB2_LinkError; diff --git a/src/list_menu.c b/src/list_menu.c index 3bcd3073d..6d51559f7 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -324,7 +324,7 @@ s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const str case 2: LoadUserWindowBorderGfx(sMysteryGiftLinkMenu.windowId, tileNum, palNum); case 1: - sub_8098858(sMysteryGiftLinkMenu.windowId, tileNum, palNum / 16); + DrawTextBorderOuter(sMysteryGiftLinkMenu.windowId, tileNum, palNum / 16); break; } gMultiuseListMenuTemplate = *listMenuTemplate; diff --git a/src/main_menu.c b/src/main_menu.c index cbd257cb1..8c9612c24 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -38,6 +38,7 @@ #include "text_window.h" #include "title_screen.h" #include "window.h" +#include "mystery_gift.h" /* * Main menu state machine @@ -1083,7 +1084,7 @@ static void Task_HandleMainMenuAPressed(u8 taskId) DestroyTask(taskId); break; case ACTION_EREADER: - SetMainCallback2(sub_801867C); + SetMainCallback2(c2_ereader); DestroyTask(taskId); break; case ACTION_INVALID: diff --git a/src/menu.c b/src/menu.c index b04572b81..958788b25 100644 --- a/src/menu.c +++ b/src/menu.c @@ -432,7 +432,7 @@ void sub_819789C(void) LoadPalette(gUnknown_0860F074, STD_WINDOW_PALETTE_NUM * 0x10, 0x14); } -void sub_81978B0(u16 offset) +void Menu_LoadStdPalAt(u16 offset) { LoadPalette(gUnknown_0860F074, offset, 0x14); } diff --git a/src/mevent2.c b/src/mevent2.c index 8a6bd9faa..4174c4055 100755 --- a/src/mevent2.c +++ b/src/mevent2.c @@ -14,7 +14,7 @@ static EWRAM_DATA bool32 gUnknown_02022C70 = FALSE; static void sub_801B180(void); -static void sub_801B14C(void); +static void s_DestroyWonderNews(void); static bool32 sub_801B114(const struct MEventBuffer_3120_Sub *data); static bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub *data); static void sub_801B330(void); @@ -29,7 +29,7 @@ void sub_801AFD8(void) sub_811F8BC(); } -struct MEventBuffer_3120_Sub *sub_801B00C(void) +struct MEventBuffer_3120_Sub *sav1_get_mevent_buffer_0(void) { return &gSaveBlock1Ptr->unk_322C.buffer_000.data; } @@ -54,9 +54,9 @@ u16 *sub_801B058(void) return gSaveBlock1Ptr->unk_322C.unk_338; } -void sub_801B06C(void) +void DestroyWonderNews(void) { - sub_801B14C(); + s_DestroyWonderNews(); } bool32 sub_801B078(const struct MEventBuffer_3120_Sub *src) @@ -64,13 +64,13 @@ bool32 sub_801B078(const struct MEventBuffer_3120_Sub *src) if (!sub_801B114(src)) return FALSE; - sub_801B14C(); + s_DestroyWonderNews(); gSaveBlock1Ptr->unk_322C.buffer_000.data = *src; gSaveBlock1Ptr->unk_322C.buffer_000.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)); return TRUE; } -bool32 sub_801B0CC(void) +bool32 ValidateReceivedWonderNews(void) { if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)) != gSaveBlock1Ptr->unk_322C.buffer_000.crc) return FALSE; @@ -88,7 +88,7 @@ static bool32 sub_801B114(const struct MEventBuffer_3120_Sub *data) return TRUE; } -bool32 sub_801B128(void) +bool32 WonderNews_Test_Unk_02(void) { const struct MEventBuffer_3120_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_000.data; if (data->unk_02 == 0) @@ -97,9 +97,9 @@ bool32 sub_801B128(void) return TRUE; } -static void sub_801B14C(void) +static void s_DestroyWonderNews(void) { - CpuFill32(0, sub_801B00C(), sizeof(gSaveBlock1Ptr->unk_322C.buffer_000.data)); + CpuFill32(0, sav1_get_mevent_buffer_0(), sizeof(gSaveBlock1Ptr->unk_322C.buffer_000.data)); gSaveBlock1Ptr->unk_322C.buffer_000.crc = 0; } @@ -113,7 +113,7 @@ bool32 sub_801B1A4(const u8 *src) { const u8 *r5 = (const u8 *)&gSaveBlock1Ptr->unk_322C.buffer_000.data; u32 i; - if (!sub_801B0CC()) + if (!ValidateReceivedWonderNews()) return FALSE; for (i = 0; i < sizeof(struct MEventBuffer_3120_Sub); i++) @@ -125,7 +125,7 @@ bool32 sub_801B1A4(const u8 *src) return TRUE; } -void sub_801B1E8(void) +void DestroyWonderCard(void) { sub_801B330(); sub_801B368(); @@ -143,7 +143,7 @@ bool32 sub_801B21C(const struct MEventBuffer_32E0_Sub *data) if (!sub_801B2CC(data)) return FALSE; - sub_801B1E8(); + DestroyWonderCard(); memcpy(&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, data, sizeof(struct MEventBuffer_32E0_Sub)); gSaveBlock1Ptr->unk_322C.buffer_1c0.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub)); r2 = &gSaveBlock1Ptr->unk_322C.buffer_310.data; @@ -152,7 +152,7 @@ bool32 sub_801B21C(const struct MEventBuffer_32E0_Sub *data) return TRUE; } -bool32 sub_801B27C(void) +bool32 ValidateReceivedWonderCard(void) { if (gSaveBlock1Ptr->unk_322C.buffer_1c0.crc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub))) return FALSE; @@ -180,7 +180,7 @@ static bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub *data) return TRUE; } -bool32 sub_801B308(void) +bool32 WonderCard_Test_Unk_08_6(void) { const struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; if (data->unk_08_6 == 0) @@ -201,9 +201,9 @@ static void sub_801B368(void) gSaveBlock1Ptr->unk_322C.buffer_310.crc = 0; } -u16 sub_801B39C(void) +u16 GetWonderCardFlagID(void) { - if (sub_801B27C()) + if (ValidateReceivedWonderCard()) return gSaveBlock1Ptr->unk_322C.buffer_1c0.data.unk_00; return 0; @@ -215,7 +215,7 @@ void sub_801B3C0(struct MEventBuffer_32E0_Sub *buffer) buffer->unk_08_6 = 0; } -static bool32 sub_801B3D8(u16 a0) +static bool32 IsWonderCardFlagIDInValidRange(u16 a0) { if (a0 >= 1000 && a0 < 1020) return TRUE; @@ -247,10 +247,10 @@ static const u16 sMysteryGiftFlags[] = FLAG_UNUSED_MYSTERY_GIFT_0x14D, }; -bool32 sub_801B3F8(void) +bool32 CheckReceivedGiftFromWonderCard(void) { - u16 value = sub_801B39C(); - if (!sub_801B3D8(value)) + u16 value = GetWonderCardFlagID(); + if (!IsWonderCardFlagIDInValidRange(value)) return FALSE; if (FlagGet(sMysteryGiftFlags[value - 1000]) == TRUE) @@ -300,7 +300,7 @@ static bool32 sub_801B4A4(const u16 *data) static int sub_801B4CC(void) { struct MEventBuffer_32E0_Sub *data; - if (!sub_801B27C()) + if (!ValidateReceivedWonderCard()) return 0; data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; @@ -353,7 +353,7 @@ void sub_801B580(struct MEventStruct_Unk1442CC *data, bool32 a1) data->unk_10 = 0x0200; } - if (sub_801B27C()) + if (ValidateReceivedWonderCard()) { data->unk_14 = sav1_get_mevent_buffer_1()->unk_00; data->unk_20 = *sav1_get_mevent_buffer_2(); @@ -554,7 +554,7 @@ bool32 sub_801B94C(u16 a0) if (a0 == 0) return FALSE; - if (!sub_801B27C()) + if (!ValidateReceivedWonderCard()) return FALSE; if (gSaveBlock1Ptr->unk_322C.buffer_1c0.data.unk_00 != a0) diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c index b9931a682..24a999f69 100644 --- a/src/mevent_801BAAC.c +++ b/src/mevent_801BAAC.c @@ -53,7 +53,7 @@ struct UnkStruct_203F3C8 /*045C*/ u8 buffer_045C[0x1000]; }; -EWRAM_DATA struct UnkStruct_203F3C8 * gUnknown_02022C74 = NULL; +EWRAM_DATA struct UnkStruct_203F3C8 * sWonderCardData = NULL; void sub_801BEF8(void); void sub_801C178(u8 whichWindow); @@ -150,40 +150,40 @@ const struct UnkStruct_8467FB8 gUnknown_082F1D60[8] = { {1, 0, 0, 7, gWonderCardBgGfx8, gWonderCardBgTilemap8, gWonderCardBgPal8} }; -bool32 sub_801BAAC(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6) +bool32 InitWonderCardResources(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6) { if (r5 == NULL || r6 == NULL) return FALSE; - gUnknown_02022C74 = AllocZeroed(sizeof(struct UnkStruct_203F3C8)); - if (gUnknown_02022C74 == NULL) + sWonderCardData = AllocZeroed(sizeof(struct UnkStruct_203F3C8)); + if (sWonderCardData == NULL) return FALSE; - gUnknown_02022C74->unk_0000 = *r5; - gUnknown_02022C74->unk_014C = *r6; - if (gUnknown_02022C74->unk_0000.unk_08_2 >= ARRAY_COUNT(gUnknown_082F1D60)) - gUnknown_02022C74->unk_0000.unk_08_2 = 0; - if (gUnknown_02022C74->unk_0000.unk_08_0 >= ARRAY_COUNT(gUnknown_082F0E18)) - gUnknown_02022C74->unk_0000.unk_08_0 = 0; - if (gUnknown_02022C74->unk_0000.unk_09 > ARRAY_COUNT(gUnknown_02022C74->unk_017D)) - gUnknown_02022C74->unk_0000.unk_09 = 0; - gUnknown_02022C74->unk_0170 = &gUnknown_082F1D60[gUnknown_02022C74->unk_0000.unk_08_2]; + sWonderCardData->unk_0000 = *r5; + sWonderCardData->unk_014C = *r6; + if (sWonderCardData->unk_0000.unk_08_2 >= ARRAY_COUNT(gUnknown_082F1D60)) + sWonderCardData->unk_0000.unk_08_2 = 0; + if (sWonderCardData->unk_0000.unk_08_0 >= ARRAY_COUNT(gUnknown_082F0E18)) + sWonderCardData->unk_0000.unk_08_0 = 0; + if (sWonderCardData->unk_0000.unk_09 > ARRAY_COUNT(sWonderCardData->unk_017D)) + sWonderCardData->unk_0000.unk_09 = 0; + sWonderCardData->unk_0170 = &gUnknown_082F1D60[sWonderCardData->unk_0000.unk_08_2]; return TRUE; } -void sub_801BB48(void) +void DestroyWonderCardResources(void) { - if (gUnknown_02022C74 != NULL) + if (sWonderCardData != NULL) { - *gUnknown_02022C74 = (struct UnkStruct_203F3C8){}; - Free(gUnknown_02022C74); - gUnknown_02022C74 = NULL; + *sWonderCardData = (struct UnkStruct_203F3C8){}; + Free(sWonderCardData); + sWonderCardData = NULL; } } -s32 sub_801BB74(void) +s32 FadeToWonderCardMenu(void) { - if (gUnknown_02022C74 == NULL) + if (sWonderCardData == NULL) return -1; - switch(gUnknown_02022C74->unk_0174) + switch(sWonderCardData->unk_0174) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); @@ -199,19 +199,19 @@ s32 sub_801BB74(void) CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); - decompress_and_copy_tile_data_to_vram(2, gUnknown_02022C74->unk_0170->tiles, 0, 0x008, 0); - gUnknown_02022C74->unk_0176[0] = AddWindow(&gUnknown_082F0E1C[0]); - gUnknown_02022C74->unk_0176[1] = AddWindow(&gUnknown_082F0E1C[1]); - gUnknown_02022C74->unk_0176[2] = AddWindow(&gUnknown_082F0E1C[2]); + decompress_and_copy_tile_data_to_vram(2, sWonderCardData->unk_0170->tiles, 0, 0x008, 0); + sWonderCardData->unk_0176[0] = AddWindow(&gUnknown_082F0E1C[0]); + sWonderCardData->unk_0176[1] = AddWindow(&gUnknown_082F0E1C[1]); + sWonderCardData->unk_0176[2] = AddWindow(&gUnknown_082F0E1C[2]); break; case 3: if (free_temp_tile_data_buffers_if_possible()) return 0; LoadPalette(stdpal_get(1), 0x20, 0x20); gPaletteFade.bufferTransferDisabled = TRUE; - LoadPalette(gUnknown_02022C74->unk_0170->pal, 0x10, 0x20); - LZ77UnCompWram(gUnknown_02022C74->unk_0170->map, gUnknown_02022C74->buffer_045C); - CopyRectToBgTilemapBufferRect(2, gUnknown_02022C74->buffer_045C, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0); + LoadPalette(sWonderCardData->unk_0170->pal, 0x10, 0x20); + LZ77UnCompWram(sWonderCardData->unk_0170->map, sWonderCardData->buffer_045C); + CopyRectToBgTilemapBufferRect(2, sWonderCardData->buffer_045C, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0); CopyBgTilemapBufferToVram(2); break; case 4: @@ -237,18 +237,18 @@ s32 sub_801BB74(void) default: if (UpdatePaletteFade()) return 0; - gUnknown_02022C74->unk_0174 = 0; + sWonderCardData->unk_0174 = 0; return 1; } - ++gUnknown_02022C74->unk_0174; + ++sWonderCardData->unk_0174; return 0; } -s32 sub_801BDA4(bool32 flag) +s32 FadeOutFromWonderCard(bool32 flag) { - if (gUnknown_02022C74 == NULL) + if (sWonderCardData == NULL) return -1; - switch (gUnknown_02022C74->unk_0174) + switch (sWonderCardData->unk_0174) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); @@ -268,26 +268,26 @@ s32 sub_801BDA4(bool32 flag) case 3: HideBg(1); HideBg(2); - RemoveWindow(gUnknown_02022C74->unk_0176[2]); - RemoveWindow(gUnknown_02022C74->unk_0176[1]); - RemoveWindow(gUnknown_02022C74->unk_0176[0]); + RemoveWindow(sWonderCardData->unk_0176[2]); + RemoveWindow(sWonderCardData->unk_0176[1]); + RemoveWindow(sWonderCardData->unk_0176[0]); break; case 4: sub_801C61C(); FreeMonIconPalettes(); break; case 5: - sub_80186EC(gUnknown_02022C60, flag); + PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag); CopyBgTilemapBufferToVram(0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); break; default: if (UpdatePaletteFade()) return 0; - gUnknown_02022C74->unk_0174 = 0; + sWonderCardData->unk_0174 = 0; return 1; } - ++gUnknown_02022C74->unk_0174; + ++sWonderCardData->unk_0174; return 0; } @@ -297,59 +297,59 @@ void sub_801BEF8(void) u16 r6; u16 sp0[3] = {0, 0, 0}; - memcpy(gUnknown_02022C74->unk_018B, gUnknown_02022C74->unk_0000.unk_0A, 40); - gUnknown_02022C74->unk_018B[40] = EOS; - memcpy(gUnknown_02022C74->unk_01B4, gUnknown_02022C74->unk_0000.unk_32, 40); - gUnknown_02022C74->unk_01B4[40] = EOS; - if (gUnknown_02022C74->unk_0000.unk_04 > 999999) - gUnknown_02022C74->unk_0000.unk_04 = 999999; - ConvertIntToDecimalStringN(gUnknown_02022C74->unk_01DD, gUnknown_02022C74->unk_0000.unk_04, STR_CONV_MODE_LEFT_ALIGN, 6); + memcpy(sWonderCardData->unk_018B, sWonderCardData->unk_0000.unk_0A, 40); + sWonderCardData->unk_018B[40] = EOS; + memcpy(sWonderCardData->unk_01B4, sWonderCardData->unk_0000.unk_32, 40); + sWonderCardData->unk_01B4[40] = EOS; + if (sWonderCardData->unk_0000.unk_04 > 999999) + sWonderCardData->unk_0000.unk_04 = 999999; + ConvertIntToDecimalStringN(sWonderCardData->unk_01DD, sWonderCardData->unk_0000.unk_04, STR_CONV_MODE_LEFT_ALIGN, 6); for (i = 0; i < 4; i++) { - memcpy(gUnknown_02022C74->unk_01E4[i], gUnknown_02022C74->unk_0000.unk_5A[i], 40); - gUnknown_02022C74->unk_01E4[i][40] = EOS; + memcpy(sWonderCardData->unk_01E4[i], sWonderCardData->unk_0000.unk_5A[i], 40); + sWonderCardData->unk_01E4[i][40] = EOS; } - memcpy(gUnknown_02022C74->unk_0288, gUnknown_02022C74->unk_0000.unk_FA, 40); - gUnknown_02022C74->unk_0288[40] = EOS; - switch (gUnknown_02022C74->unk_0000.unk_08_0) + memcpy(sWonderCardData->unk_0288, sWonderCardData->unk_0000.unk_FA, 40); + sWonderCardData->unk_0288[40] = EOS; + switch (sWonderCardData->unk_0000.unk_08_0) { case 0: - memcpy(gUnknown_02022C74->unk_02B1, gUnknown_02022C74->unk_0000.unk_122, 40); - gUnknown_02022C74->unk_02B1[40] = EOS; + memcpy(sWonderCardData->unk_02B1, sWonderCardData->unk_0000.unk_122, 40); + sWonderCardData->unk_02B1[40] = EOS; break; case 1: - gUnknown_02022C74->unk_02B1[00] = EOS; + sWonderCardData->unk_02B1[00] = EOS; break; case 2: - gUnknown_02022C74->unk_02B1[00] = EOS; - sp0[0] = gUnknown_02022C74->unk_014C.unk_00 < 999 ? gUnknown_02022C74->unk_014C.unk_00 : 999; - sp0[1] = gUnknown_02022C74->unk_014C.unk_02 < 999 ? gUnknown_02022C74->unk_014C.unk_02 : 999; - sp0[2] = gUnknown_02022C74->unk_014C.unk_04 < 999 ? gUnknown_02022C74->unk_014C.unk_04 : 999; + sWonderCardData->unk_02B1[00] = EOS; + sp0[0] = sWonderCardData->unk_014C.unk_00 < 999 ? sWonderCardData->unk_014C.unk_00 : 999; + sp0[1] = sWonderCardData->unk_014C.unk_02 < 999 ? sWonderCardData->unk_014C.unk_02 : 999; + sp0[2] = sWonderCardData->unk_014C.unk_04 < 999 ? sWonderCardData->unk_014C.unk_04 : 999; for (i = 0; i < 8; i++) { - memset(gUnknown_02022C74->unk_02DC[i].unk_42, EOS, 4); - memset(gUnknown_02022C74->unk_02DC[i].unk_01, EOS, 41); + memset(sWonderCardData->unk_02DC[i].unk_42, EOS, 4); + memset(sWonderCardData->unk_02DC[i].unk_01, EOS, 41); } for (i = 0, r6 = 0; i < 40; i++) { - if (gUnknown_02022C74->unk_0000.unk_122[i] != 0xF7) + if (sWonderCardData->unk_0000.unk_122[i] != 0xF7) { - gUnknown_02022C74->unk_02DC[gUnknown_02022C74->unk_0175].unk_01[r6] = gUnknown_02022C74->unk_0000.unk_122[i]; + sWonderCardData->unk_02DC[sWonderCardData->unk_0175].unk_01[r6] = sWonderCardData->unk_0000.unk_122[i]; r6++; } else { - u8 r3 = gUnknown_02022C74->unk_0000.unk_122[i + 1]; + u8 r3 = sWonderCardData->unk_0000.unk_122[i + 1]; if (r3 > 2) { i += 2; } else { - ConvertIntToDecimalStringN(gUnknown_02022C74->unk_02DC[gUnknown_02022C74->unk_0175].unk_42, sp0[r3], STR_CONV_MODE_LEADING_ZEROS, 3); - gUnknown_02022C74->unk_02DC[gUnknown_02022C74->unk_0175].unk_00 = gUnknown_02022C74->unk_0000.unk_122[i + 2]; - gUnknown_02022C74->unk_0175++; - if (gUnknown_02022C74->unk_0175 > 7) + ConvertIntToDecimalStringN(sWonderCardData->unk_02DC[sWonderCardData->unk_0175].unk_42, sp0[r3], STR_CONV_MODE_LEADING_ZEROS, 3); + sWonderCardData->unk_02DC[sWonderCardData->unk_0175].unk_00 = sWonderCardData->unk_0000.unk_122[i + 2]; + sWonderCardData->unk_0175++; + if (sWonderCardData->unk_0175 > 7) break; r6 = 0; i += 2; @@ -362,7 +362,7 @@ void sub_801BEF8(void) void sub_801C178(u8 whichWindow) { s8 sp0C = 0; - s32 windowId = gUnknown_02022C74->unk_0176[whichWindow]; + s32 windowId = sWonderCardData->unk_0176[whichWindow]; PutWindowTilemap(windowId); FillWindowPixelBuffer(windowId, 0); switch (whichWindow) @@ -370,42 +370,42 @@ void sub_801C178(u8 whichWindow) case 0: { s32 x; - AddTextPrinterParameterized3(windowId, 3, 0, 1, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal1], 0, gUnknown_02022C74->unk_018B); - x = 160 - GetStringWidth(3, gUnknown_02022C74->unk_01B4, GetFontAttribute(3, 2)); + AddTextPrinterParameterized3(windowId, 3, 0, 1, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_018B); + x = 160 - GetStringWidth(3, sWonderCardData->unk_01B4, GetFontAttribute(3, 2)); if (x < 0) x = 0; - AddTextPrinterParameterized3(windowId, 3, x, 17, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal1], 0, gUnknown_02022C74->unk_01B4); - if (gUnknown_02022C74->unk_0000.unk_04 != 0) + AddTextPrinterParameterized3(windowId, 3, x, 17, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_01B4); + if (sWonderCardData->unk_0000.unk_04 != 0) { - AddTextPrinterParameterized3(windowId, 1, 166, 17, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal1], 0, gUnknown_02022C74->unk_01DD); + AddTextPrinterParameterized3(windowId, 1, 166, 17, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal1], 0, sWonderCardData->unk_01DD); } break; } case 1: for (; sp0C < 4; sp0C++) { - AddTextPrinterParameterized3(windowId, 3, 0, 16 * sp0C + 2, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal2], 0, gUnknown_02022C74->unk_01E4[sp0C]); + AddTextPrinterParameterized3(windowId, 3, 0, 16 * sp0C + 2, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal2], 0, sWonderCardData->unk_01E4[sp0C]); } break; case 2: - AddTextPrinterParameterized3(windowId, 3, 0, gUnknown_082F0E18[gUnknown_02022C74->unk_0000.unk_08_0], gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_0288); - if (gUnknown_02022C74->unk_0000.unk_08_0 != 2) + AddTextPrinterParameterized3(windowId, 3, 0, gUnknown_082F0E18[sWonderCardData->unk_0000.unk_08_0], gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_0288); + if (sWonderCardData->unk_0000.unk_08_0 != 2) { - AddTextPrinterParameterized3(windowId, 3, 0, 16 + gUnknown_082F0E18[gUnknown_02022C74->unk_0000.unk_08_0], gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_02B1); + AddTextPrinterParameterized3(windowId, 3, 0, 16 + gUnknown_082F0E18[sWonderCardData->unk_0000.unk_08_0], gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02B1); } else { s32 x = 0; - s32 y = gUnknown_082F0E18[gUnknown_02022C74->unk_0000.unk_08_0] + 16; + s32 y = gUnknown_082F0E18[sWonderCardData->unk_0000.unk_08_0] + 16; s32 spacing = GetFontAttribute(3, 2); - for (; sp0C < gUnknown_02022C74->unk_0175; sp0C++) + for (; sp0C < sWonderCardData->unk_0175; sp0C++) { - AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_02DC[sp0C].unk_01); - if (gUnknown_02022C74->unk_02DC[sp0C].unk_42[0] != EOS) + AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02DC[sp0C].unk_01); + if (sWonderCardData->unk_02DC[sp0C].unk_42[0] != EOS) { - x += GetStringWidth(3, gUnknown_02022C74->unk_02DC[sp0C].unk_01, spacing); - AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[gUnknown_02022C74->unk_0170->textPal3], 0, gUnknown_02022C74->unk_02DC[sp0C].unk_42); - x += GetStringWidth(3, gUnknown_02022C74->unk_02DC[sp0C].unk_42, spacing) + gUnknown_02022C74->unk_02DC[sp0C].unk_00; + x += GetStringWidth(3, sWonderCardData->unk_02DC[sp0C].unk_01, spacing); + AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_082F0E10[sWonderCardData->unk_0170->textPal3], 0, sWonderCardData->unk_02DC[sp0C].unk_42); + x += GetStringWidth(3, sWonderCardData->unk_02DC[sp0C].unk_42, spacing) + sWonderCardData->unk_02DC[sp0C].unk_00; } } } @@ -417,24 +417,24 @@ void sub_801C178(u8 whichWindow) void sub_801C4C0(void) { u8 r7 = 0; - gUnknown_02022C74->unk_017C = 0xFF; - if (gUnknown_02022C74->unk_014C.unk_06 != SPECIES_NONE) + sWonderCardData->unk_017C = 0xFF; + if (sWonderCardData->unk_014C.unk_06 != SPECIES_NONE) { - gUnknown_02022C74->unk_017C = sub_80D2D78(sub_80D2E84(gUnknown_02022C74->unk_014C.unk_06), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE); - gSprites[gUnknown_02022C74->unk_017C].oam.priority = 2; + sWonderCardData->unk_017C = sub_80D2D78(sub_80D2E84(sWonderCardData->unk_014C.unk_06), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE); + gSprites[sWonderCardData->unk_017C].oam.priority = 2; } - if (gUnknown_02022C74->unk_0000.unk_09 != 0 && gUnknown_02022C74->unk_0000.unk_08_0 == 1) + if (sWonderCardData->unk_0000.unk_09 != 0 && sWonderCardData->unk_0000.unk_08_0 == 1) { LoadCompressedSpriteSheetUsingHeap(&gUnknown_082F1D00); - LoadSpritePalette(&gUnknown_082F1D08[gUnknown_02022C74->unk_0170->textPal4]); - for (; r7 < gUnknown_02022C74->unk_0000.unk_09; r7++) + LoadSpritePalette(&gUnknown_082F1D08[sWonderCardData->unk_0170->textPal4]); + for (; r7 < sWonderCardData->unk_0000.unk_09; r7++) { - gUnknown_02022C74->unk_017D[r7][0] = 0xFF; - gUnknown_02022C74->unk_017D[r7][1] = 0xFF; - gUnknown_02022C74->unk_017D[r7][0] = CreateSprite(&gUnknown_082F1D48, 0xd8 - 32 * r7, 0x90, 8); - if (gUnknown_02022C74->unk_014C.unk_08[0][r7] != 0) + sWonderCardData->unk_017D[r7][0] = 0xFF; + sWonderCardData->unk_017D[r7][1] = 0xFF; + sWonderCardData->unk_017D[r7][0] = CreateSprite(&gUnknown_082F1D48, 0xd8 - 32 * r7, 0x90, 8); + if (sWonderCardData->unk_014C.unk_08[0][r7] != 0) { - gUnknown_02022C74->unk_017D[r7][1] = sub_80D2D78(sub_80D2E84(gUnknown_02022C74->unk_014C.unk_08[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0); + sWonderCardData->unk_017D[r7][1] = sub_80D2D78(sub_80D2E84(sWonderCardData->unk_014C.unk_08[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0); } } } @@ -443,19 +443,19 @@ void sub_801C4C0(void) void sub_801C61C(void) { u8 r6 = 0; - if (gUnknown_02022C74->unk_017C != 0xFF) - sub_80D2EF8(&gSprites[gUnknown_02022C74->unk_017C]); - if (gUnknown_02022C74->unk_0000.unk_09 != 0 && gUnknown_02022C74->unk_0000.unk_08_0 == 1) + if (sWonderCardData->unk_017C != 0xFF) + sub_80D2EF8(&gSprites[sWonderCardData->unk_017C]); + if (sWonderCardData->unk_0000.unk_09 != 0 && sWonderCardData->unk_0000.unk_08_0 == 1) { - for (; r6 < gUnknown_02022C74->unk_0000.unk_09; r6++) + for (; r6 < sWonderCardData->unk_0000.unk_09; r6++) { - if (gUnknown_02022C74->unk_017D[r6][0] != 0xFF) + if (sWonderCardData->unk_017D[r6][0] != 0xFF) { - DestroySprite(&gSprites[gUnknown_02022C74->unk_017D[r6][0]]); + DestroySprite(&gSprites[sWonderCardData->unk_017D[r6][0]]); } - if (gUnknown_02022C74->unk_017D[r6][1] != 0xFF) + if (sWonderCardData->unk_017D[r6][1] != 0xFF) { - sub_80D2EF8(&gSprites[gUnknown_02022C74->unk_017D[r6][1]]); + sub_80D2EF8(&gSprites[sWonderCardData->unk_017D[r6][1]]); } } FreeSpriteTilesByTag(0x8000); @@ -484,7 +484,7 @@ struct UnkStruct_203F3CC /*03a4*/ u8 buffer_03A4[0x1000]; }; -EWRAM_DATA struct UnkStruct_203F3CC * gUnknown_02022C78 = NULL; +EWRAM_DATA struct UnkStruct_203F3CC * sWonderNewsData = NULL; void sub_801CDCC(void); void sub_801CE7C(void); @@ -542,37 +542,37 @@ const struct UnkStruct_8467FB8 gUnknown_082F24C8[] = { {1, 0, 0, 0, gWonderNewsGfx8, gWonderNewsTilemap8, gWonderNewsPal8} }; -bool32 sub_801C6C8(const struct MEventBuffer_3120_Sub * a0) +bool32 InitWonderNewsResources(const struct MEventBuffer_3120_Sub * a0) { if (a0 == NULL) return FALSE; - gUnknown_02022C78 = AllocZeroed(sizeof(struct UnkStruct_203F3CC)); - if (gUnknown_02022C78 == NULL) + sWonderNewsData = AllocZeroed(sizeof(struct UnkStruct_203F3CC)); + if (sWonderNewsData == NULL) return FALSE; - gUnknown_02022C78->unk_0000 = *a0; - if (gUnknown_02022C78->unk_0000.unk_03 >= ARRAY_COUNT(gUnknown_082F24C8)) - gUnknown_02022C78->unk_0000.unk_03 = 0; - gUnknown_02022C78->unk_01BC = &gUnknown_082F24C8[gUnknown_02022C78->unk_0000.unk_03]; - gUnknown_02022C78->unk_01C1 = 0xFF; + sWonderNewsData->unk_0000 = *a0; + if (sWonderNewsData->unk_0000.unk_03 >= ARRAY_COUNT(gUnknown_082F24C8)) + sWonderNewsData->unk_0000.unk_03 = 0; + sWonderNewsData->unk_01BC = &gUnknown_082F24C8[sWonderNewsData->unk_0000.unk_03]; + sWonderNewsData->unk_01C1 = 0xFF; return TRUE; } -void sub_801C72C(void) +void DestroyWonderNewsResources(void) { - if (gUnknown_02022C78 != NULL) + if (sWonderNewsData != NULL) { - *gUnknown_02022C78 = (struct UnkStruct_203F3CC){}; - Free(gUnknown_02022C78); - gUnknown_02022C78 = NULL; + *sWonderNewsData = (struct UnkStruct_203F3CC){}; + Free(sWonderNewsData); + sWonderNewsData = NULL; } } -s32 sub_801C758(void) +s32 FadeToWonderNewsMenu(void) { - if (gUnknown_02022C78 == NULL) + if (sWonderNewsData == NULL) return -1; - switch (gUnknown_02022C78->unk_01C0_1) + switch (sWonderNewsData->unk_01C0_1) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); @@ -599,19 +599,19 @@ s32 sub_801C758(void) CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(3); - decompress_and_copy_tile_data_to_vram(3, gUnknown_02022C78->unk_01BC->tiles, 0, 8, 0); - gUnknown_02022C78->unk_01C8[0] = AddWindow(&gUnknown_082F1DE8[0]); - gUnknown_02022C78->unk_01C8[1] = AddWindow(&gUnknown_082F1DE8[1]); + decompress_and_copy_tile_data_to_vram(3, sWonderNewsData->unk_01BC->tiles, 0, 8, 0); + sWonderNewsData->unk_01C8[0] = AddWindow(&gUnknown_082F1DE8[0]); + sWonderNewsData->unk_01C8[1] = AddWindow(&gUnknown_082F1DE8[1]); break; case 3: if (free_temp_tile_data_buffers_if_possible()) return 0; LoadPalette(stdpal_get(1), 0x20, 0x20); gPaletteFade.bufferTransferDisabled = TRUE; - LoadPalette(gUnknown_02022C78->unk_01BC->pal, 0x10, 0x20); - LZ77UnCompWram(gUnknown_02022C78->unk_01BC->map, gUnknown_02022C78->buffer_03A4); - CopyRectToBgTilemapBufferRect(1, gUnknown_02022C78->buffer_03A4, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0); - CopyRectToBgTilemapBufferRect(3, gUnknown_02022C78->buffer_03A4, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0); + LoadPalette(sWonderNewsData->unk_01BC->pal, 0x10, 0x20); + LZ77UnCompWram(sWonderNewsData->unk_01BC->map, sWonderNewsData->buffer_03A4); + CopyRectToBgTilemapBufferRect(1, sWonderNewsData->buffer_03A4, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0); + CopyRectToBgTilemapBufferRect(3, sWonderNewsData->buffer_03A4, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(3); break; @@ -628,26 +628,26 @@ s32 sub_801C758(void) ShowBg(2); ShowBg(3); gPaletteFade.bufferTransferDisabled = FALSE; - gUnknown_02022C78->unk_01C1 = AddScrollIndicatorArrowPair(&gUnknown_02022C78->unk_0394, &gUnknown_02022C78->unk_01C6); + sWonderNewsData->unk_01C1 = AddScrollIndicatorArrowPair(&sWonderNewsData->unk_0394, &sWonderNewsData->unk_01C6); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); UpdatePaletteFade(); break; default: if (UpdatePaletteFade()) return 0; - gUnknown_02022C78->unk_01C0_1 = 0; + sWonderNewsData->unk_01C0_1 = 0; return 1; } - ++gUnknown_02022C78->unk_01C0_1; + ++sWonderNewsData->unk_01C0_1; return 0; } -s32 sub_801CA50(bool32 flag) +s32 FadeOutFromWonderNews(bool32 flag) { - if (gUnknown_02022C78 == NULL) + if (sWonderNewsData == NULL) return -1; - switch (gUnknown_02022C78->unk_01C0_1) + switch (sWonderNewsData->unk_01C0_1) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); @@ -675,21 +675,21 @@ s32 sub_801CA50(bool32 flag) case 3: HideBg(1); HideBg(2); - RemoveWindow(gUnknown_02022C78->unk_01C8[1]); - RemoveWindow(gUnknown_02022C78->unk_01C8[0]); + RemoveWindow(sWonderNewsData->unk_01C8[1]); + RemoveWindow(sWonderNewsData->unk_01C8[0]); break; case 4: ChangeBgY(2, 0, 0); ChangeBgY(3, 0, 0); - if (gUnknown_02022C78->unk_01C1 != 0xFF) + if (sWonderNewsData->unk_01C1 != 0xFF) { - RemoveScrollIndicatorArrowPair(gUnknown_02022C78->unk_01C1); - gUnknown_02022C78->unk_01C1 = 0xFF; + RemoveScrollIndicatorArrowPair(sWonderNewsData->unk_01C1); + sWonderNewsData->unk_01C1 = 0xFF; } break; case 5: - sub_80186EC(gUnknown_02022C60, flag); - sub_8018798(3); + PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag); + MG_DrawCheckerboardPattern(3); CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(3); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); @@ -697,36 +697,36 @@ s32 sub_801CA50(bool32 flag) default: if (UpdatePaletteFade()) return 0; - gUnknown_02022C78->unk_01C0_1 = 0; + sWonderNewsData->unk_01C0_1 = 0; return 1; } - ++gUnknown_02022C78->unk_01C0_1; + ++sWonderNewsData->unk_01C0_1; return 0; } -void sub_801CC38(void) +void MENews_RemoveScrollIndicatorArrowPair(void) { - if (!gUnknown_02022C78->unk_01C0_0 && gUnknown_02022C78->unk_01C1 != 0xFF) + if (!sWonderNewsData->unk_01C0_0 && sWonderNewsData->unk_01C1 != 0xFF) { - RemoveScrollIndicatorArrowPair(gUnknown_02022C78->unk_01C1); - gUnknown_02022C78->unk_01C1 = 0xFF; - gUnknown_02022C78->unk_01C0_0 = TRUE; + RemoveScrollIndicatorArrowPair(sWonderNewsData->unk_01C1); + sWonderNewsData->unk_01C1 = 0xFF; + sWonderNewsData->unk_01C0_0 = TRUE; } } -void sub_801CC80(void) +void MENews_AddScrollIndicatorArrowPair(void) { - if (gUnknown_02022C78->unk_01C0_0) + if (sWonderNewsData->unk_01C0_0) { - gUnknown_02022C78->unk_01C1 = AddScrollIndicatorArrowPair(&gUnknown_02022C78->unk_0394, &gUnknown_02022C78->unk_01C6); - gUnknown_02022C78->unk_01C0_0 = FALSE; + sWonderNewsData->unk_01C1 = AddScrollIndicatorArrowPair(&sWonderNewsData->unk_0394, &sWonderNewsData->unk_01C6); + sWonderNewsData->unk_01C0_0 = FALSE; } } -u32 sub_801CCD0(u16 input) +u32 MENews_GetInput(u16 input) { - if (gUnknown_02022C78->unk_01C2_0) + if (sWonderNewsData->unk_01C2_0) { sub_801CFA4(); return 0xFF; @@ -738,26 +738,26 @@ u32 sub_801CCD0(u16 input) case B_BUTTON: return 1; case DPAD_UP: - if (gUnknown_02022C78->unk_01C6 == 0) + if (sWonderNewsData->unk_01C6 == 0) return 0xFF; - if (gUnknown_02022C78->unk_01C0_0) + if (sWonderNewsData->unk_01C0_0) return 0xFF; - gUnknown_02022C78->unk_01C3_0 = FALSE; + sWonderNewsData->unk_01C3_0 = FALSE; break; case DPAD_DOWN: - if (gUnknown_02022C78->unk_01C6 == gUnknown_02022C78->unk_01C4) + if (sWonderNewsData->unk_01C6 == sWonderNewsData->unk_01C4) return 0xFF; - if (gUnknown_02022C78->unk_01C0_0) + if (sWonderNewsData->unk_01C0_0) return 0xFF; - gUnknown_02022C78->unk_01C3_0 = TRUE; + sWonderNewsData->unk_01C3_0 = TRUE; break; default: return 0xFF; } - gUnknown_02022C78->unk_01C2_0 = TRUE; - gUnknown_02022C78->unk_01C2_1 = 2; - gUnknown_02022C78->unk_01C3_1 = 0; - if (gUnknown_02022C78->unk_01C3_0 == FALSE) + sWonderNewsData->unk_01C2_0 = TRUE; + sWonderNewsData->unk_01C2_1 = 2; + sWonderNewsData->unk_01C3_1 = 0; + if (sWonderNewsData->unk_01C3_0 == FALSE) return 2; else return 3; @@ -766,44 +766,44 @@ u32 sub_801CCD0(u16 input) void sub_801CDCC(void) { u8 i = 0; - memcpy(gUnknown_02022C78->unk_01CE, gUnknown_02022C78->unk_0000.unk_04, 40); - gUnknown_02022C78->unk_01CE[40] = EOS; + memcpy(sWonderNewsData->unk_01CE, sWonderNewsData->unk_0000.unk_04, 40); + sWonderNewsData->unk_01CE[40] = EOS; for (; i < 10; ++i) { - memcpy(gUnknown_02022C78->unk_01F7[i], gUnknown_02022C78->unk_0000.unk_2C[i], 40); - gUnknown_02022C78->unk_01F7[i][40] = EOS; - if (i > 7 && gUnknown_02022C78->unk_01F7[i][0] != EOS) - ++gUnknown_02022C78->unk_01C4; + memcpy(sWonderNewsData->unk_01F7[i], sWonderNewsData->unk_0000.unk_2C[i], 40); + sWonderNewsData->unk_01F7[i][40] = EOS; + if (i > 7 && sWonderNewsData->unk_01F7[i][0] != EOS) + ++sWonderNewsData->unk_01C4; } - gUnknown_02022C78->unk_0394 = gUnknown_082F1DF8; - gUnknown_02022C78->unk_0394.fullyDownThreshold = gUnknown_02022C78->unk_01C4; + sWonderNewsData->unk_0394 = gUnknown_082F1DF8; + sWonderNewsData->unk_0394.fullyDownThreshold = sWonderNewsData->unk_01C4; } void sub_801CE7C(void) { u8 i = 0; s32 x; - PutWindowTilemap(gUnknown_02022C78->unk_01C8[0]); - PutWindowTilemap(gUnknown_02022C78->unk_01C8[1]); - FillWindowPixelBuffer(gUnknown_02022C78->unk_01C8[0], 0); - FillWindowPixelBuffer(gUnknown_02022C78->unk_01C8[1], 0); - x = (0xe0 - GetStringWidth(3, gUnknown_02022C78->unk_01CE, GetFontAttribute(3, 2))) / 2; + PutWindowTilemap(sWonderNewsData->unk_01C8[0]); + PutWindowTilemap(sWonderNewsData->unk_01C8[1]); + FillWindowPixelBuffer(sWonderNewsData->unk_01C8[0], 0); + FillWindowPixelBuffer(sWonderNewsData->unk_01C8[1], 0); + x = (0xe0 - GetStringWidth(3, sWonderNewsData->unk_01CE, GetFontAttribute(3, 2))) / 2; if (x < 0) x = 0; - AddTextPrinterParameterized3(gUnknown_02022C78->unk_01C8[0], 3, x, 6, gUnknown_082F1DE0[gUnknown_02022C78->unk_01BC->textPal1], 0, gUnknown_02022C78->unk_01CE); + AddTextPrinterParameterized3(sWonderNewsData->unk_01C8[0], 3, x, 6, gUnknown_082F1DE0[sWonderNewsData->unk_01BC->textPal1], 0, sWonderNewsData->unk_01CE); for (; i < 10; ++i) { - AddTextPrinterParameterized3(gUnknown_02022C78->unk_01C8[1], 3, 0, 16 * i + 2, gUnknown_082F1DE0[gUnknown_02022C78->unk_01BC->textPal2], 0, gUnknown_02022C78->unk_01F7[i]); + AddTextPrinterParameterized3(sWonderNewsData->unk_01C8[1], 3, 0, 16 * i + 2, gUnknown_082F1DE0[sWonderNewsData->unk_01BC->textPal2], 0, sWonderNewsData->unk_01F7[i]); } - CopyWindowToVram(gUnknown_02022C78->unk_01C8[0], 3); - CopyWindowToVram(gUnknown_02022C78->unk_01C8[1], 3); + CopyWindowToVram(sWonderNewsData->unk_01C8[0], 3); + CopyWindowToVram(sWonderNewsData->unk_01C8[1], 3); } void sub_801CFA4(void) { - u16 r4 = gUnknown_02022C78->unk_01C2_1; + u16 r4 = sWonderNewsData->unk_01C2_1; r4 <<= 8; - if (gUnknown_02022C78->unk_01C3_0) + if (sWonderNewsData->unk_01C3_0) { ChangeBgY(2, r4, 1); ChangeBgY(3, r4, 1); @@ -813,14 +813,14 @@ void sub_801CFA4(void) ChangeBgY(2, r4, 2); ChangeBgY(3, r4, 2); } - gUnknown_02022C78->unk_01C3_1 += gUnknown_02022C78->unk_01C2_1; - if (gUnknown_02022C78->unk_01C3_1 > 15) + sWonderNewsData->unk_01C3_1 += sWonderNewsData->unk_01C2_1; + if (sWonderNewsData->unk_01C3_1 > 15) { - if (gUnknown_02022C78->unk_01C3_0) - ++gUnknown_02022C78->unk_01C6; + if (sWonderNewsData->unk_01C3_0) + ++sWonderNewsData->unk_01C6; else - --gUnknown_02022C78->unk_01C6; - gUnknown_02022C78->unk_01C2_0 = FALSE; - gUnknown_02022C78->unk_01C3_1 = 0; + --sWonderNewsData->unk_01C6; + sWonderNewsData->unk_01C2_0 = FALSE; + sWonderNewsData->unk_01C3_1 = 0; } } diff --git a/src/mevent_news.c b/src/mevent_news.c index f5a061c84..192bb0fc7 100644 --- a/src/mevent_news.c +++ b/src/mevent_news.c @@ -10,7 +10,7 @@ static u32 sub_801DD44(struct MysteryEventStruct *); static void sub_801DCD8(struct MysteryEventStruct *); static void sub_801DCCC(struct MysteryEventStruct *); -void sub_801DB68(u32 a0) +void GenerateRandomNews(u32 a0) { struct MysteryEventStruct *r5 = sub_801B044(); @@ -59,7 +59,7 @@ u16 sub_801DC20(void) struct MysteryEventStruct *r4 = sub_801B044(); u16 r5; - if (!IsMysteryEventEnabled() || !sub_801B0CC()) + if (!IsMysteryEventEnabled() || !ValidateReceivedWonderNews()) return 0; r5 = sub_801DD44(r4); diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index ad4a2e692..850b22d5b 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -94,7 +94,7 @@ void CB2_InitMysteryEventMenu(void) FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); LoadUserWindowBorderGfx(0, 1u, 0xD0u); - sub_81978B0(0xE0); + Menu_LoadStdPalAt(0xE0); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON); SetGpuReg(REG_OFFSET_BLDCNT, 0); CreateTask(Task_DestroySelf, 0); diff --git a/src/mystery_gift.c b/src/mystery_gift.c index 5e000a249..c8b3a9060 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -35,28 +35,29 @@ void bgid_upload_textbox_1(u8 bgId); void task_add_00_mystery_gift(void); void task00_mystery_gift(u8 taskId); -EWRAM_DATA u8 gUnknown_02022C58[2] = {}; +EWRAM_DATA u8 sDownArrowCounterAndYCoordIdx[8] = {}; +EWRAM_DATA bool8 gGiftIsFromEReader = FALSE; -const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal"); -const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz"); +static const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal"); +static const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz"); struct MysteryGiftTaskData { - u16 unk0; + u16 curPromptWindowId; u16 unk2; u16 unk4; u16 unk6; - u8 unk8; - u8 unk9; + u8 state; + u8 textState; u8 unkA; u8 unkB; - u8 unkC; - u8 unkD; - u8 unkE; - u8 * unk10; + u8 IsCardOrNews; + u8 source; + u8 prevPromptWindowId; + u8 * buffer; }; -const struct BgTemplate gUnknown_082F0598[] = { +static const struct BgTemplate sBGTemplates[] = { { .bg = 0, .charBaseIndex = 2, @@ -92,7 +93,7 @@ const struct BgTemplate gUnknown_082F0598[] = { } }; -const struct WindowTemplate gUnknown_082F05A8[] = { +static const struct WindowTemplate sMainWindows[] = { { .bg = 0x00, .tilemapLeft = 0x00, @@ -122,7 +123,7 @@ const struct WindowTemplate gUnknown_082F05A8[] = { } }; -const struct WindowTemplate gUnknown_082F05C8 = { +static const struct WindowTemplate sWindowTemplate_PromptYesOrNo_Width28 = { .bg = 0x00, .tilemapLeft = 0x01, .tilemapTop = 0x0f, @@ -132,7 +133,7 @@ const struct WindowTemplate gUnknown_082F05C8 = { .baseBlock = 0x00e5 }; -const struct WindowTemplate gUnknown_082F05D0 = { +static const struct WindowTemplate sWindowTemplate_PromptYesOrNo_Width20 = { .bg = 0x00, .tilemapLeft = 0x01, .tilemapTop = 0x0f, @@ -142,7 +143,7 @@ const struct WindowTemplate gUnknown_082F05D0 = { .baseBlock = 0x00e5 }; -const struct WindowTemplate gUnknown_082F05D8 = { +static const struct WindowTemplate sMysteryGiftMenuWindowTemplate = { .bg = 0x00, .tilemapLeft = 0x01, .tilemapTop = 0x0f, @@ -152,7 +153,7 @@ const struct WindowTemplate gUnknown_082F05D8 = { .baseBlock = 0x00e5 }; -const struct WindowTemplate gUnknown_082F05E0 = { +static const struct WindowTemplate sWindowTemplate_ThreeOptions = { .bg = 0x00, .tilemapLeft = 0x08, .tilemapTop = 0x06, @@ -162,7 +163,7 @@ const struct WindowTemplate gUnknown_082F05E0 = { .baseBlock = 0x0155 }; -const struct WindowTemplate gUnknown_082F05E8 = { +static const struct WindowTemplate sWindowTemplate_YesNoBox = { .bg = 0x00, .tilemapLeft = 0x17, .tilemapTop = 0x0f, @@ -172,7 +173,7 @@ const struct WindowTemplate gUnknown_082F05E8 = { .baseBlock = 0x0155 }; -const struct WindowTemplate gUnknown_082F05F0 = { +static const struct WindowTemplate sWindowTemplate_7by8 = { .bg = 0x00, .tilemapLeft = 0x16, .tilemapTop = 0x0b, @@ -182,7 +183,7 @@ const struct WindowTemplate gUnknown_082F05F0 = { .baseBlock = 0x0155 }; -const struct WindowTemplate gUnknown_082F05F8 = { +static const struct WindowTemplate sWindowTemplate_7by6 = { .bg = 0x00, .tilemapLeft = 0x16, .tilemapTop = 0x0d, @@ -192,7 +193,7 @@ const struct WindowTemplate gUnknown_082F05F8 = { .baseBlock = 0x0155 }; -const struct WindowTemplate gUnknown_082F0600 = { +static const struct WindowTemplate sWindowTemplate_7by4 = { .bg = 0x00, .tilemapLeft = 0x16, .tilemapTop = 0x0f, @@ -202,19 +203,19 @@ const struct WindowTemplate gUnknown_082F0600 = { .baseBlock = 0x0155 }; -const struct ListMenuItem gUnknown_082F0608[] = { +static const struct ListMenuItem sListMenuItems_CardsOrNews[] = { { gText_WonderCards, 0 }, { gText_WonderNews, 1 }, { gText_Exit3, -2 } }; -const struct ListMenuItem gUnknown_082F0620[] = { +static const struct ListMenuItem sListMenuItems_WirelessOrFriend[] = { { gText_WirelessCommunication, 0 }, { gText_Friend2, 1 }, { gText_Cancel2, -2 } }; -const struct ListMenuTemplate gUnknown_082F0638 = { +static const struct ListMenuTemplate sListMenuTemplate_ThreeOptions = { .items = NULL, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .itemPrintFunc = NULL, @@ -235,32 +236,32 @@ const struct ListMenuTemplate gUnknown_082F0638 = { .cursorKind = 0 }; -const struct ListMenuItem gUnknown_082F0650[] = { +static const struct ListMenuItem sListMenuItems_ReceiveSendToss[] = { { gText_Receive, 0 }, { gText_Send, 1 }, { gText_Toss, 2 }, { gText_Cancel2, -2 } }; -const struct ListMenuItem gUnknown_082F0670[] = { +static const struct ListMenuItem sListMenuItems_ReceiveToss[] = { { gText_Receive, 0 }, { gText_Toss, 2 }, { gText_Cancel2, -2 } }; -const struct ListMenuItem gUnknown_082F0688[] = { +static const struct ListMenuItem sListMenuItems_ReceiveSend[] = { { gText_Receive, 0 }, { gText_Send, 1 }, { gText_Cancel2, -2 } }; -const struct ListMenuItem gUnknown_082F06A0[] = { +static const struct ListMenuItem sListMenuItems_Receive[] = { { gText_Receive, 0 }, { gText_Cancel2, -2 } }; -const struct ListMenuTemplate gUnknown_082F06B0 = { - .items = gUnknown_082F0650, +static const struct ListMenuTemplate sListMenu_ReceiveSendToss = { + .items = sListMenuItems_ReceiveSendToss, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .itemPrintFunc = NULL, .totalItems = 4, @@ -280,8 +281,8 @@ const struct ListMenuTemplate gUnknown_082F06B0 = { .cursorKind = 0 }; -const struct ListMenuTemplate gUnknown_082F06C8 = { - .items = gUnknown_082F0670, +static const struct ListMenuTemplate sListMenu_ReceiveToss = { + .items = sListMenuItems_ReceiveToss, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .itemPrintFunc = NULL, .totalItems = 3, @@ -301,8 +302,8 @@ const struct ListMenuTemplate gUnknown_082F06C8 = { .cursorKind = 0 }; -const struct ListMenuTemplate gUnknown_082F06E0 = { - .items = gUnknown_082F0688, +static const struct ListMenuTemplate sListMenu_ReceiveSend = { + .items = sListMenuItems_ReceiveSend, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .itemPrintFunc = NULL, .totalItems = 3, @@ -322,8 +323,8 @@ const struct ListMenuTemplate gUnknown_082F06E0 = { .cursorKind = 0 }; -const struct ListMenuTemplate gUnknown_082F06F8 = { - .items = gUnknown_082F06A0, +static const struct ListMenuTemplate sListMenu_Receive = { + .items = sListMenuItems_Receive, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .itemPrintFunc = NULL, .totalItems = 2, @@ -343,25 +344,25 @@ const struct ListMenuTemplate gUnknown_082F06F8 = { .cursorKind = 0 }; -const u8 *const Unref_082F0710[] = { +static const u8 *const Unref_082F0710[] = { gText_VarietyOfEventsImportedWireless, gText_WonderCardsInPossession, gText_ReadNewsThatArrived, gText_ReturnToTitle }; -ALIGNED(2) const u8 gUnknown_082F0720[] = { 0, 1, 2 }; -ALIGNED(2) const u8 gUnknown_082F0724[] = { 0, 1, 2 }; -ALIGNED(2) const u8 gUnknown_082F0728[] = { 1, 2, 3 }; +ALIGNED(2) const u8 sMG_Ereader_TextColor_1[] = { 0, 1, 2 }; +ALIGNED(2) const u8 sMG_Ereader_TextColor_1_Copy[] = { 0, 1, 2 }; +ALIGNED(2) const u8 sMG_Ereader_TextColor_2[] = { 1, 2, 3 }; -void sub_8018424(void) +void vblankcb_mystery_gift_e_reader_run(void) { ProcessSpriteCopyRequests(); LoadOam(); TransferPlttBuffer(); } -void sub_8018438(void) +void c2_mystery_gift_e_reader_run(void) { RunTasks(); RunTextPrinters(); @@ -369,7 +370,7 @@ void sub_8018438(void) BuildOamBuffer(); } -bool32 sub_8018450(s32 arg) +bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) { switch (gMain.state) { @@ -382,7 +383,7 @@ bool32 sub_8018450(s32 arg) ScanlineEffect_Stop(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_082F0598, ARRAY_COUNT(gUnknown_082F0598)); + InitBgsFromTemplates(0, sBGTemplates, ARRAY_COUNT(sBGTemplates)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -398,7 +399,7 @@ bool32 sub_8018450(s32 arg) SetBgTilemapBuffer(0, Alloc(0x800)); bgid_upload_textbox_1(3); - InitWindows(gUnknown_082F05A8); + InitWindows(sMainWindows); DeactivateAllTextPrinters(); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); SetGpuReg(REG_OFFSET_BLDCNT, 0); @@ -409,14 +410,14 @@ bool32 sub_8018450(s32 arg) case 1: LoadPalette(gUnkTextboxBorderPal, 0, 0x20); LoadPalette(stdpal_get(2), 0xd0, 0x20); - sub_81978B0(0xC0); + Menu_LoadStdPalAt(0xC0); LoadUserWindowBorderGfx(0, 0xA, 0xE0); LoadUserWindowBorderGfx_(0, 0x1, 0xF0); FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0x11); FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11); FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11); - sub_8018798(3); - sub_80186EC(arg, 0); + MG_DrawCheckerboardPattern(3); + PrintMysteryGiftOrEReaderTopMenu(mg_or_ereader, 0); gMain.state++; break; case 2: @@ -430,7 +431,7 @@ bool32 sub_8018450(s32 arg) ShowBg(0); ShowBg(3); PlayBGM(MUS_RG_OKURIMONO); - SetVBlankCallback(sub_8018424); + SetVBlankCallback(vblankcb_mystery_gift_e_reader_run); EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); return TRUE; } @@ -440,28 +441,28 @@ bool32 sub_8018450(s32 arg) void c2_mystery_gift(void) { - if (sub_8018450(0)) + if (HandleMysteryGiftOrEReaderSetup(0)) { - SetMainCallback2(sub_8018438); - gUnknown_02022C60 = FALSE; + SetMainCallback2(c2_mystery_gift_e_reader_run); + gGiftIsFromEReader = FALSE; task_add_00_mystery_gift(); } RunTasks(); } -void sub_801867C(void) +void c2_ereader(void) { - if (sub_8018450(1)) + if (HandleMysteryGiftOrEReaderSetup(1)) { - SetMainCallback2(sub_8018438); - gUnknown_02022C60 = TRUE; - sub_81D5014(); + SetMainCallback2(c2_mystery_gift_e_reader_run); + gGiftIsFromEReader = TRUE; + task_add_00_ereader(); } } -void sub_80186A4(void) +void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void) { - gUnknown_02022C60 = FALSE; + gGiftIsFromEReader = FALSE; FreeAllWindowBuffers(); Free(GetBgTilemapBuffer(0)); Free(GetBgTilemapBuffer(1)); @@ -470,12 +471,12 @@ void sub_80186A4(void) SetMainCallback2(CB2_InitTitleScreen); } -void sub_80186EC(bool8 isJapanese, bool32 usePickOkCancel) +void PrintMysteryGiftOrEReaderTopMenu(bool8 mg_or_ereader, bool32 usePickOkCancel) { const u8 * header; const u8 * options; FillWindowPixelBuffer(0, 0); - if (!isJapanese) + if (mg_or_ereader == 0) { header = gText_MysteryGift; options = !usePickOkCancel ? gText_PickOKExit : gText_PickOKCancel; @@ -486,18 +487,18 @@ void sub_80186EC(bool8 isJapanese, bool32 usePickOkCancel) options = gJPText_DecideStop; } - AddTextPrinterParameterized4(0, 1, 4, 1, 0, 0, gUnknown_082F0720, -1, header); - AddTextPrinterParameterized4(0, 0, GetStringRightAlignXOffset(0, options, 0xDE), 1, 0, 0, gUnknown_082F0720, -1, options); + AddTextPrinterParameterized4(0, 1, 4, 1, 0, 0, sMG_Ereader_TextColor_1, -1, header); + AddTextPrinterParameterized4(0, 0, GetStringRightAlignXOffset(0, options, 0xDE), 1, 0, 0, sMG_Ereader_TextColor_1, -1, options); CopyWindowToVram(0, 2); PutWindowTilemap(0); } -void sub_8018784(u8 windowId) +void MG_DrawTextBorder(u8 windowId) { - sub_8098858(windowId, 0x01, 0xF); + DrawTextBorderOuter(windowId, 0x01, 0xF); } -void sub_8018798(u32 bg) +void MG_DrawCheckerboardPattern(u32 bg) { s32 i = 0, j; @@ -519,9 +520,9 @@ void sub_8018798(u32 bg) } } -void sub_8018838(bool32 arg) +void ClearScreenInBg0(bool32 ignoreTopTwoRows) { - switch (arg) + switch (ignoreTopTwoRows) { case 0: FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x11); @@ -533,32 +534,32 @@ void sub_8018838(bool32 arg) CopyBgTilemapBufferToVram(0); } -void sub_8018884(const u8 *str) +void AddTextPrinterToWindow1(const u8 *str) { StringExpandPlaceholders(gStringVar4, str); FillWindowPixelBuffer(1, 0x11); - AddTextPrinterParameterized4(1, 1, 0, 1, 0, 0, gUnknown_082F0728, 0, gStringVar4); - sub_8098858(1, 0x001, 0xF); + AddTextPrinterParameterized4(1, 1, 0, 1, 0, 0, sMG_Ereader_TextColor_2, 0, gStringVar4); + DrawTextBorderOuter(1, 0x001, 0xF); PutWindowTilemap(1); CopyWindowToVram(1, 3); } -void sub_80188DC(void) +static void ClearTextWindow(void) { rbox_fill_rectangle(1); ClearWindowTilemap(1); CopyWindowToVram(1, 1); } -bool32 mevent_0814257C(u8 *textState, const u8 *str) +bool32 MG_PrintTextOnWindow1AndWaitButton(u8 *textState, const u8 *str) { switch (*textState) { case 0: - sub_8018884(str); + AddTextPrinterToWindow1(str); goto inc; case 1: - DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]); + DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); if (({gMain.newKeys & (A_BUTTON | B_BUTTON);})) { inc: @@ -566,9 +567,9 @@ bool32 mevent_0814257C(u8 *textState, const u8 *str) } break; case 2: - DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]); + DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); *textState = 0; - sub_80188DC(); + ClearTextWindow(); return TRUE; case 0xFF: *textState = 2; @@ -577,45 +578,45 @@ bool32 mevent_0814257C(u8 *textState, const u8 *str) return FALSE; } -void sub_801898C(void) +static void HideDownArrow(void) { - DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]); + DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); } -void sub_80189B4(void) +static void ShowDownArrow(void) { - DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &gUnknown_02022C58[0], &gUnknown_02022C58[1]); + DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); } -bool32 sub_80189DC(u8 * textState) +bool32 unref_HideDownArrowAndWaitButton(u8 * textState) { switch (*textState) { case 0: - sub_801898C(); + HideDownArrow(); if (({gMain.newKeys & (A_BUTTON | B_BUTTON);})) { (*textState)++; } break; case 1: - sub_80189B4(); + ShowDownArrow(); *textState = 0; return TRUE; } return FALSE; } -bool32 sub_8018A1C(u8 * counter, const u8 * str) +static bool32 PrintStringAndWait2Seconds(u8 * counter, const u8 * str) { if (*counter == 0) { - sub_8018884(str); + AddTextPrinterToWindow1(str); } if (++(*counter) > 120) { *counter = 0; - sub_80188DC(); + ClearTextWindow(); return TRUE; } else @@ -624,45 +625,45 @@ bool32 sub_8018A1C(u8 * counter, const u8 * str) } } -u32 sub_8018A50(u8 * unused0, u16 * unused1, bool8 r2) +static u32 MysteryGift_HandleThreeOptionMenu(u8 * unused0, u16 * unused1, u8 whichMenu) { - struct ListMenuTemplate listMenuTemplate = gUnknown_082F0638; - struct WindowTemplate windowTemplate = gUnknown_082F05E0; - s32 r3; - s32 r4; + struct ListMenuTemplate listMenuTemplate = sListMenuTemplate_ThreeOptions; + struct WindowTemplate windowTemplate = sWindowTemplate_ThreeOptions; + s32 width; + s32 response; - if (r2 == FALSE) + if (whichMenu == 0) { - listMenuTemplate.items = gUnknown_082F0608; + listMenuTemplate.items = sListMenuItems_CardsOrNews; } else { - listMenuTemplate.items = gUnknown_082F0620; + listMenuTemplate.items = sListMenuItems_WirelessOrFriend; } - r3 = sub_81DB41C(&listMenuTemplate); - if (r3 & 1) + width = Intl_GetListMenuWidth(&listMenuTemplate); + if (width & 1) { - r3++; + width++; } - windowTemplate.width = r3; - if (r3 < 30) + windowTemplate.width = width; + if (width < 30) { - windowTemplate.tilemapLeft = (30 - r3) / 2; + windowTemplate.tilemapLeft = (30 - width) / 2; } else { windowTemplate.tilemapLeft = 0; } - r4 = DoMysteryGiftListMenu(&windowTemplate, &listMenuTemplate, 1, 0x00A, 0xE0); - if (r4 != -1) + response = DoMysteryGiftListMenu(&windowTemplate, &listMenuTemplate, 1, 0x00A, 0xE0); + if (response != -1) { ClearWindowTilemap(2); CopyWindowToVram(2, 1); } - return r4; + return response; } -s8 sub_8018B08(u8 * textState, u16 * windowId, bool8 r6, const u8 * str) +s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, const u8 * str) { struct WindowTemplate windowTemplate; s8 input; @@ -671,24 +672,24 @@ s8 sub_8018B08(u8 * textState, u16 * windowId, bool8 r6, const u8 * str) { case 0: StringExpandPlaceholders(gStringVar4, str); - if (r6 == 0) + if (yesNoBoxPlacement == 0) { - *windowId = AddWindow(&gUnknown_082F05C8); + *windowId = AddWindow(&sWindowTemplate_PromptYesOrNo_Width28); } else { - *windowId = AddWindow(&gUnknown_082F05D0); + *windowId = AddWindow(&sWindowTemplate_PromptYesOrNo_Width20); } FillWindowPixelBuffer(*windowId, 0x11); - AddTextPrinterParameterized4(*windowId, 1, 0, 1, 0, 0, gUnknown_082F0728, 0, gStringVar4); - sub_8098858(*windowId, 0x001, 0x0F); + AddTextPrinterParameterized4(*windowId, 1, 0, 1, 0, 0, sMG_Ereader_TextColor_2, 0, gStringVar4); + DrawTextBorderOuter(*windowId, 0x001, 0x0F); CopyWindowToVram(*windowId, 2); PutWindowTilemap(*windowId); (*textState)++; break; case 1: - windowTemplate = gUnknown_082F05E8; - if (r6 == 0) + windowTemplate = sWindowTemplate_YesNoBox; + if (yesNoBoxPlacement == 0) { windowTemplate.tilemapTop = 9; } @@ -723,7 +724,7 @@ s8 sub_8018B08(u8 * textState, u16 * windowId, bool8 r6, const u8 * str) return -2; } -s32 sub_8018C4C(u8 * textState, u16 * windowId, bool32 r2, bool32 r3) +static s32 HandleMysteryGiftListMenu(u8 * textState, u16 * windowId, bool32 cannotToss, bool32 cannotSend) { struct WindowTemplate windowTemplate; s32 input; @@ -731,7 +732,7 @@ s32 sub_8018C4C(u8 * textState, u16 * windowId, bool32 r2, bool32 r3) switch (*textState) { case 0: - if (r2 == 0) + if (cannotToss == 0) { StringExpandPlaceholders(gStringVar4, gText_WhatToDoWithCards); } @@ -739,36 +740,36 @@ s32 sub_8018C4C(u8 * textState, u16 * windowId, bool32 r2, bool32 r3) { StringExpandPlaceholders(gStringVar4, gText_WhatToDoWithNews); } - *windowId = AddWindow(&gUnknown_082F05D8); + *windowId = AddWindow(&sMysteryGiftMenuWindowTemplate); FillWindowPixelBuffer(*windowId, 0x11); - AddTextPrinterParameterized4(*windowId, 1, 0, 1, 0, 0, gUnknown_082F0728, 0, gStringVar4); - sub_8098858(*windowId, 0x001, 0x0F); + AddTextPrinterParameterized4(*windowId, 1, 0, 1, 0, 0, sMG_Ereader_TextColor_2, 0, gStringVar4); + DrawTextBorderOuter(*windowId, 0x001, 0x0F); CopyWindowToVram(*windowId, 2); PutWindowTilemap(*windowId); (*textState)++; break; case 1: - windowTemplate = gUnknown_082F05E8; - if (r3) + windowTemplate = sWindowTemplate_YesNoBox; + if (cannotSend) { - if (r2 == 0) + if (cannotToss == 0) { - input = DoMysteryGiftListMenu(&gUnknown_082F05F8, &gUnknown_082F06C8, 1, 0x00A, 0xE0); + input = DoMysteryGiftListMenu(&sWindowTemplate_7by6, &sListMenu_ReceiveToss, 1, 0x00A, 0xE0); } else { - input = DoMysteryGiftListMenu(&gUnknown_082F0600, &gUnknown_082F06F8, 1, 0x00A, 0xE0); + input = DoMysteryGiftListMenu(&sWindowTemplate_7by4, &sListMenu_Receive, 1, 0x00A, 0xE0); } } else { - if (r2 == 0) + if (cannotToss == 0) { - input = DoMysteryGiftListMenu(&gUnknown_082F05F0, &gUnknown_082F06B0, 1, 0x00A, 0xE0); + input = DoMysteryGiftListMenu(&sWindowTemplate_7by8, &sListMenu_ReceiveSendToss, 1, 0x00A, 0xE0); } else { - input = DoMysteryGiftListMenu(&gUnknown_082F05F8, &gUnknown_082F06E0, 1, 0x00A, 0xE0); + input = DoMysteryGiftListMenu(&sWindowTemplate_7by6, &sListMenu_ReceiveSend, 1, 0x00A, 0xE0); } } if (input != -1) @@ -793,39 +794,39 @@ s32 sub_8018C4C(u8 * textState, u16 * windowId, bool32 r2, bool32 r3) return -1; } -s32 sub_8018D98(bool32 a0) +static bool32 ValidateCardOrNews(bool32 cardOrNews) { - if (a0 == 0) + if (cardOrNews == 0) { - return sub_801B27C(); + return ValidateReceivedWonderCard(); } else { - return sub_801B0CC(); + return ValidateReceivedWonderNews(); } } -bool32 sub_8018DAC(u8 * state, bool32 arg1) +static bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews) { s32 v0; switch (*state) { case 0: - if (arg1 == 0) + if (cardOrNews == 0) { - sub_801BAAC(sav1_get_mevent_buffer_1(), sav1_get_mevent_buffer_2()); + InitWonderCardResources(sav1_get_mevent_buffer_1(), sav1_get_mevent_buffer_2()); } else { - sub_801C6C8(sub_801B00C()); + InitWonderNewsResources(sav1_get_mevent_buffer_0()); } (*state)++; break; case 1: - if (arg1 == 0) + if (cardOrNews == 0) { - v0 = sub_801BB74(); + v0 = FadeToWonderCardMenu(); check: if (v0 != 0) { @@ -835,7 +836,7 @@ bool32 sub_8018DAC(u8 * state, bool32 arg1) } else { - v0 = sub_801C758(); + v0 = FadeToWonderNewsMenu(); goto check; } done: @@ -846,26 +847,26 @@ bool32 sub_8018DAC(u8 * state, bool32 arg1) return FALSE; } -bool32 sub_8018E08(bool32 arg0) +static bool32 DestroyNewsOrCard(bool32 cardOrNews) { - if (arg0 == 0) + if (cardOrNews == 0) { - sub_801B1E8(); + DestroyWonderCard(); } else { - sub_801B06C(); + DestroyWonderNews(); } return TRUE; } -bool32 sub_8018E20(bool32 arg0, bool32 arg1) +static bool32 TearDownCardOrNews_ReturnToTopMenu(bool32 cardOrNews, bool32 arg1) { - if (arg0 == 0) + if (cardOrNews == 0) { - if (sub_801BDA4(arg1) != 0) + if (FadeOutFromWonderCard(arg1) != 0) { - sub_801BB48(); + DestroyWonderCardResources(); return TRUE; } else @@ -875,9 +876,9 @@ bool32 sub_8018E20(bool32 arg0, bool32 arg1) } else { - if (sub_801CA50(arg1) != 0) + if (FadeOutFromWonderNews(arg1) != 0) { - sub_801C72C(); + DestroyWonderNewsResources(); return TRUE; } else @@ -887,36 +888,36 @@ bool32 sub_8018E20(bool32 arg0, bool32 arg1) } } -s32 sub_8018E50(u8 * textState, u16 * windowId, bool32 r2) +static s32 mevent_message_prompt_discard(u8 * textState, u16 * windowId, bool32 cardOrNews) { - if (r2 == 0) + if (cardOrNews == 0) { - return sub_8018B08(textState, windowId, TRUE, gText_IfThrowAwayCardEventWontHappen); + return mevent_message_print_and_prompt_yes_no(textState, windowId, TRUE, gText_IfThrowAwayCardEventWontHappen); } else { - return sub_8018B08(textState, windowId, TRUE, gText_OkayToDiscardNews); + return mevent_message_print_and_prompt_yes_no(textState, windowId, TRUE, gText_OkayToDiscardNews); } } -bool32 mevent_message_was_thrown_away(u8 * textState, bool32 r1) +static bool32 mevent_message_was_thrown_away(u8 * textState, bool32 cardOrNews) { - if (r1 == 0) + if (cardOrNews == 0) { - return mevent_0814257C(textState, gText_WonderCardThrownAway); + return MG_PrintTextOnWindow1AndWaitButton(textState, gText_WonderCardThrownAway); } else { - return mevent_0814257C(textState, gText_WonderNewsThrownAway); + return MG_PrintTextOnWindow1AndWaitButton(textState, gText_WonderNewsThrownAway); } } -bool32 mevent_save_game(u8 * state) +static bool32 mevent_save_game(u8 * state) { switch (*state) { case 0: - sub_8018884(gText_DataWillBeSaved); + AddTextPrinterToWindow1(gText_DataWillBeSaved); (*state)++; break; case 1: @@ -924,7 +925,7 @@ bool32 mevent_save_game(u8 * state) (*state)++; break; case 2: - sub_8018884(gText_SaveCompletedPressA); + AddTextPrinterToWindow1(gText_SaveCompletedPressA); (*state)++; break; case 3: @@ -935,19 +936,19 @@ bool32 mevent_save_game(u8 * state) break; case 4: *state = 0; - sub_80188DC(); + ClearTextWindow(); return TRUE; } return FALSE; } -const u8 * mevent_message(u32 * a0, u8 a1, u8 a2, u32 a3) +static const u8 * mevent_message(u32 * a0, u8 a1, u8 cardOrNews, u32 msgId) { const u8 * msg = NULL; *a0 = 0; - switch (a3) + switch (msgId) { case 0: *a0 = 0; @@ -959,11 +960,11 @@ const u8 * mevent_message(u32 * a0, u8 a1, u8 a2, u32 a3) break; case 2: *a0 = 1; - msg = a2 == 0 ? gText_WonderCardReceived : gText_WonderCardReceivedFrom; + msg = cardOrNews == 0 ? gText_WonderCardReceived : gText_WonderCardReceivedFrom; break; case 3: *a0 = 1; - msg = a2 == 0 ? gText_WonderNewsReceived : gText_WonderNewsReceivedFrom; + msg = cardOrNews == 0 ? gText_WonderNewsReceived : gText_WonderNewsReceivedFrom; break; case 4: *a0 = 1; @@ -1012,14 +1013,14 @@ const u8 * mevent_message(u32 * a0, u8 a1, u8 a2, u32 a3) return msg; } -bool32 mevent_08142CE8(u8 * state, const u8 * arg1, u16 * arg2) +static bool32 PrintMGSuccessMessage(u8 * state, const u8 * arg1, u16 * arg2) { switch (*state) { case 0: if (arg1 != NULL) { - sub_8018884(arg1); + AddTextPrinterToWindow1(arg1); } PlayFanfare(MUS_FANFA4); *arg2 = 0; @@ -1035,7 +1036,7 @@ bool32 mevent_08142CE8(u8 * state, const u8 * arg1, u16 * arg2) if (IsFanfareTaskInactive()) { *state = 0; - sub_80188DC(); + ClearTextWindow(); return TRUE; } break; @@ -1043,11 +1044,11 @@ bool32 mevent_08142CE8(u8 * state, const u8 * arg1, u16 * arg2) return FALSE; } -const u8 * mevent_message_stamp_card_etc_send_status(u32 * a0, u8 unused, u32 state) +static const u8 * mevent_message_stamp_card_etc_send_status(u32 * a0, u8 unused, u32 msgId) { const u8 * result = gText_CommunicationError; *a0 = 0; - switch (state) + switch (msgId) { case 0: result = gText_NothingSentOver; @@ -1100,17 +1101,17 @@ const u8 * mevent_message_stamp_card_etc_send_status(u32 * a0, u8 unused, u32 st return result; } -bool32 sub_8019174(u8 * state_p, u16 * arg1, u8 arg2, u32 state) +static bool32 PrintMGSendStatus(u8 * state, u16 * arg1, u8 arg2, u32 msgId) { u32 flag; - const u8 * str = mevent_message_stamp_card_etc_send_status(&flag, arg2, state); + const u8 * str = mevent_message_stamp_card_etc_send_status(&flag, arg2, msgId); if (flag) { - return mevent_08142CE8(state_p, str, arg1); + return PrintMGSuccessMessage(state, str, arg1); } else { - return mevent_0814257C(state_p, str); + return MG_PrintTextOnWindow1AndWaitButton(state, str); } } @@ -1118,18 +1119,18 @@ void task_add_00_mystery_gift(void) { u8 taskId = CreateTask(task00_mystery_gift, 0); struct MysteryGiftTaskData * data = (void *)gTasks[taskId].data; - data->unk8 = 0; - data->unk9 = 0; + data->state = 0; + data->textState = 0; data->unkA = 0; data->unkB = 0; - data->unkC = 0; - data->unkD = 0; - data->unk0 = 0; + data->IsCardOrNews = 0; + data->source = 0; + data->curPromptWindowId = 0; data->unk2 = 0; data->unk4 = 0; data->unk6 = 0; - data->unkE = 0; - data->unk10 = AllocZeroed(0x40); + data->prevPromptWindowId = 0; + data->buffer = AllocZeroed(0x40); } void task00_mystery_gift(u8 taskId) @@ -1138,95 +1139,95 @@ void task00_mystery_gift(u8 taskId) u32 sp0; const u8 * r1; - switch (data->unk8) + switch (data->state) { case 0: - data->unk8 = 1; + data->state = 1; break; case 1: - switch (sub_8018A50(&data->unk9, &data->unk0, FALSE)) + switch (MysteryGift_HandleThreeOptionMenu(&data->textState, &data->curPromptWindowId, FALSE)) { case 0: - data->unkC = 0; - if (sub_801B27C() == TRUE) + data->IsCardOrNews = 0; + if (ValidateReceivedWonderCard() == TRUE) { - data->unk8 = 18; + data->state = 18; } else { - data->unk8 = 2; + data->state = 2; } break; case 1: - data->unkC = 1; - if (sub_801B0CC() == TRUE) + data->IsCardOrNews = 1; + if (ValidateReceivedWonderNews() == TRUE) { - data->unk8 = 18; + data->state = 18; } else { - data->unk8 = 2; + data->state = 2; } break; case -2u: - data->unk8 = 37; + data->state = 37; break; } break; case 2: { - if (data->unkC == 0) + if (data->IsCardOrNews == 0) { - if (mevent_0814257C(&data->unk9, gText_DontHaveCardNewOneInput)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_DontHaveCardNewOneInput)) { - data->unk8 = 3; - sub_80186EC(0, 1); + data->state = 3; + PrintMysteryGiftOrEReaderTopMenu(0, 1); } } else { - if (mevent_0814257C(&data->unk9, gText_DontHaveNewsNewOneInput)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_DontHaveNewsNewOneInput)) { - data->unk8 = 3; - sub_80186EC(0, 1); + data->state = 3; + PrintMysteryGiftOrEReaderTopMenu(0, 1); } } break; } case 3: - if (data->unkC == 0) + if (data->IsCardOrNews == 0) { - sub_8018884(gText_WhereShouldCardBeAccessed); + AddTextPrinterToWindow1(gText_WhereShouldCardBeAccessed); } else { - sub_8018884(gText_WhereShouldNewsBeAccessed); + AddTextPrinterToWindow1(gText_WhereShouldNewsBeAccessed); } - data->unk8 = 4; + data->state = 4; break; case 4: - switch (sub_8018A50(&data->unk9, &data->unk0, TRUE)) + switch (MysteryGift_HandleThreeOptionMenu(&data->textState, &data->curPromptWindowId, TRUE)) { case 0: - sub_80188DC(); - data->unk8 = 5; - data->unkD = 0; + ClearTextWindow(); + data->state = 5; + data->source = 0; break; case 1: - sub_80188DC(); - data->unk8 = 5; - data->unkD = 1; + ClearTextWindow(); + data->state = 5; + data->source = 1; break; case -2u: - sub_80188DC(); - if (sub_8018D98(data->unkC)) + ClearTextWindow(); + if (ValidateCardOrNews(data->IsCardOrNews)) { - data->unk8 = 18; + data->state = 18; } else { - data->unk8 = 0; - sub_80186EC(0, 0); + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); } break; } @@ -1238,245 +1239,245 @@ void task00_mystery_gift(u8 taskId) gStringVar2[0] = eos; gStringVar3[0] = eos; } - switch (data->unkC) + switch (data->IsCardOrNews) { case 0: - if (data->unkD == 1) + if (data->source == 1) { - sub_8014EFC(0x15); + MEvent_CreateTask_CardOrNewsWithFriend(0x15); } - else if (data->unkD == 0) + else if (data->source == 0) { - sub_80152A8(0x15); + MEvent_CreateTask_CardOrNewsOverWireless(0x15); } break; case 1: - if (data->unkD == 1) + if (data->source == 1) { - sub_8014EFC(0x16); + MEvent_CreateTask_CardOrNewsWithFriend(0x16); } - else if (data->unkD == 0) + else if (data->source == 0) { - sub_80152A8(0x16); + MEvent_CreateTask_CardOrNewsOverWireless(0x16); } break; } - data->unk8 = 6; + data->state = 6; break; case 6: if (gReceivedRemoteLinkPlayers != 0) { - sub_8018838(TRUE); - data->unk8 = 7; - sub_801D484(data->unkC); + ClearScreenInBg0(TRUE); + data->state = 7; + mevent_srv_ish_do_init(data->IsCardOrNews); } else if (gSpecialVar_Result == 5) { - sub_8018838(TRUE); - data->unk8 = 3; + ClearScreenInBg0(TRUE); + data->state = 3; } break; case 7: - sub_8018884(gText_Communicating); - data->unk8 = 8; + AddTextPrinterToWindow1(gText_Communicating); + data->state = 8; break; case 8: - switch (sub_801D4A8(&data->unk0)) + switch (mevent_srv_ish_do_exec(&data->curPromptWindowId)) { case 6: task_add_05_task_del_08FA224_when_no_RfuFunc(); - data->unkE = data->unk0; - data->unk8 = 13; + data->prevPromptWindowId = data->curPromptWindowId; + data->state = 13; break; case 5: - memcpy(data->unk10, sub_801D4F4(), 0x40); - sub_801D4E4(); + memcpy(data->buffer, mevent_srv_ish_get_buffer(), 0x40); + mevent_srv_ish_inc_flag(); break; case 3: - data->unk8 = 10; + data->state = 10; break; case 2: - data->unk8 = 9; + data->state = 9; break; case 4: - data->unk8 = 11; + data->state = 11; StringCopy(gStringVar1, gLinkPlayers[0].name); break; } break; case 9: - switch ((u32)sub_8018B08(&data->unk9, &data->unk0, FALSE, sub_801D4F4())) + switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, mevent_srv_ish_get_buffer())) { case 0: - sub_801D500(0); - sub_801D4E4(); - data->unk8 = 7; + mevent_srv_ish_set_param(0); + mevent_srv_ish_inc_flag(); + data->state = 7; break; case 1: - sub_801D500(1); - sub_801D4E4(); - data->unk8 = 7; + mevent_srv_ish_set_param(1); + mevent_srv_ish_inc_flag(); + data->state = 7; break; case -1u: - sub_801D500(1); - sub_801D4E4(); - data->unk8 = 7; + mevent_srv_ish_set_param(1); + mevent_srv_ish_inc_flag(); + data->state = 7; break; } break; case 10: - if (mevent_0814257C(&data->unk9, sub_801D4F4())) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, mevent_srv_ish_get_buffer())) { - sub_801D4E4(); - data->unk8 = 7; + mevent_srv_ish_inc_flag(); + data->state = 7; } break; case 11: - switch ((u32)sub_8018B08(&data->unk9, &data->unk0, FALSE, gText_ThrowAwayWonderCard)) + switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, gText_ThrowAwayWonderCard)) { case 0: - if (sub_801B3F8() == TRUE) + if (CheckReceivedGiftFromWonderCard() == TRUE) { - data->unk8 = 12; + data->state = 12; } else { - sub_801D500(0); - sub_801D4E4(); - data->unk8 = 7; + mevent_srv_ish_set_param(0); + mevent_srv_ish_inc_flag(); + data->state = 7; } break; case 1: - sub_801D500(1); - sub_801D4E4(); - data->unk8 = 7; + mevent_srv_ish_set_param(1); + mevent_srv_ish_inc_flag(); + data->state = 7; break; case -1u: - sub_801D500(1); - sub_801D4E4(); - data->unk8 = 7; + mevent_srv_ish_set_param(1); + mevent_srv_ish_inc_flag(); + data->state = 7; break; } break; case 12: - switch ((u32)sub_8018B08(&data->unk9, &data->unk0, FALSE, gText_HaventReceivedCardsGift)) + switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, gText_HaventReceivedCardsGift)) { case 0: - sub_801D500(0); - sub_801D4E4(); - data->unk8 = 7; + mevent_srv_ish_set_param(0); + mevent_srv_ish_inc_flag(); + data->state = 7; break; case 1: - sub_801D500(1); - sub_801D4E4(); - data->unk8 = 7; + mevent_srv_ish_set_param(1); + mevent_srv_ish_inc_flag(); + data->state = 7; break; case -1u: - sub_801D500(1); - sub_801D4E4(); - data->unk8 = 7; + mevent_srv_ish_set_param(1); + mevent_srv_ish_inc_flag(); + data->state = 7; break; } break; case 13: if (gReceivedRemoteLinkPlayers == 0) { - sub_800E084(); - data->unk8 = 14; + DestroyWirelessStatusIndicatorSprite(); + data->state = 14; } break; case 14: - if (sub_8018A1C(&data->unk9, gText_CommunicationCompleted)) + if (PrintStringAndWait2Seconds(&data->textState, gText_CommunicationCompleted)) { - if (data->unkD == 1) + if (data->source == 1) { StringCopy(gStringVar1, gLinkPlayers[0].name); } - data->unk8 = 15; + data->state = 15; } break; case 15: { register bool32 flag asm("r1"); - r1 = mevent_message(&sp0, data->unkC, data->unkD, data->unkE); + r1 = mevent_message(&sp0, data->IsCardOrNews, data->source, data->prevPromptWindowId); if (r1 == NULL) { - r1 = data->unk10; + r1 = data->buffer; } if (sp0) { - flag = mevent_08142CE8(&data->unk9, r1, &data->unk0); + flag = PrintMGSuccessMessage(&data->textState, r1, &data->curPromptWindowId); } else { - flag = mevent_0814257C(&data->unk9, r1); + flag = MG_PrintTextOnWindow1AndWaitButton(&data->textState, r1); } if (flag) { - if (data->unkE == 3) + if (data->prevPromptWindowId == 3) { - if (data->unkD == 1) + if (data->source == 1) { - sub_801DB68(1); + GenerateRandomNews(1); } else { - sub_801DB68(2); + GenerateRandomNews(2); } } if (sp0 == 0) { - data->unk8 = 0; - sub_80186EC(0, 0); + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); } else { - data->unk8 = 17; + data->state = 17; } } break; } case 16: - if (mevent_0814257C(&data->unk9, gText_CommunicationError)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_CommunicationError)) { - data->unk8 = 0; - sub_80186EC(0, 0); + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); } break; case 17: - if (mevent_save_game(&data->unk9)) + if (mevent_save_game(&data->textState)) { - data->unk8 = 18; + data->state = 18; } break; case 18: - if (sub_8018DAC(&data->unk9, data->unkC)) + if (HandleLoadWonderCardOrNews(&data->textState, data->IsCardOrNews)) { - data->unk8 = 20; + data->state = 20; } break; case 20: - if (data->unkC == 0) + if (data->IsCardOrNews == 0) { if (({gMain.newKeys & A_BUTTON;})) { - data->unk8 = 21; + data->state = 21; } if (({gMain.newKeys & B_BUTTON;})) { - data->unk8 = 27; + data->state = 27; } } else { - switch (sub_801CCD0(gMain.newKeys)) + switch (MENews_GetInput(gMain.newKeys)) { case 0: - sub_801CC38(); - data->unk8 = 21; + MENews_RemoveScrollIndicatorArrowPair(); + data->state = 21; break; case 1: - data->unk8 = 27; + data->state = 27; break; } } @@ -1484,142 +1485,142 @@ void task00_mystery_gift(u8 taskId) case 21: { u32 result; - if (data->unkC == 0) + if (data->IsCardOrNews == 0) { - if (sub_801B308()) + if (WonderCard_Test_Unk_08_6()) { - result = sub_8018C4C(&data->unk9, &data->unk0, data->unkC, FALSE); + result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, FALSE); } else { - result = sub_8018C4C(&data->unk9, &data->unk0, data->unkC, TRUE); + result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, TRUE); } } else { - if (sub_801B128()) + if (WonderNews_Test_Unk_02()) { - result = sub_8018C4C(&data->unk9, &data->unk0, data->unkC, FALSE); + result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, FALSE); } else { - result = sub_8018C4C(&data->unk9, &data->unk0, data->unkC, TRUE); + result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, TRUE); } } switch (result) { case 0: - data->unk8 = 28; + data->state = 28; break; case 1: - data->unk8 = 29; + data->state = 29; break; case 2: - data->unk8 = 22; + data->state = 22; break; case -2u: - if (data->unkC == 1) + if (data->IsCardOrNews == 1) { - sub_801CC80(); + MENews_AddScrollIndicatorArrowPair(); } - data->unk8 = 20; + data->state = 20; break; } break; } case 22: - switch (sub_8018E50(&data->unk9, &data->unk0, data->unkC)) + switch (mevent_message_prompt_discard(&data->textState, &data->curPromptWindowId, data->IsCardOrNews)) { case 0: - if (data->unkC == 0 && sub_801B3F8() == TRUE) + if (data->IsCardOrNews == 0 && CheckReceivedGiftFromWonderCard() == TRUE) { - data->unk8 = 23; + data->state = 23; } else { - data->unk8 = 24; + data->state = 24; } break; case 1: - data->unk8 = 21; + data->state = 21; break; case -1: - data->unk8 = 21; + data->state = 21; break; } break; case 23: - switch ((u32)sub_8018B08(&data->unk9, &data->unk0, TRUE, gText_HaventReceivedGiftOkayToDiscard)) + switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, TRUE, gText_HaventReceivedGiftOkayToDiscard)) { case 0: - data->unk8 = 24; + data->state = 24; break; case 1: - data->unk8 = 21; + data->state = 21; break; case -1u: - data->unk8 = 21; + data->state = 21; break; } break; case 24: - if (sub_8018E20(data->unkC, 1)) + if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 1)) { - sub_8018E08(data->unkC); - data->unk8 = 25; + DestroyNewsOrCard(data->IsCardOrNews); + data->state = 25; } break; case 25: - if (mevent_save_game(&data->unk9)) + if (mevent_save_game(&data->textState)) { - data->unk8 = 26; + data->state = 26; } break; case 26: - if (mevent_message_was_thrown_away(&data->unk9, data->unkC)) + if (mevent_message_was_thrown_away(&data->textState, data->IsCardOrNews)) { - data->unk8 = 0; - sub_80186EC(0, 0); + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); } break; case 27: - if (sub_8018E20(data->unkC, 0)) + if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 0)) { - data->unk8 = 0; + data->state = 0; } break; case 28: - if (sub_8018E20(data->unkC, 1)) + if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 1)) { - data->unk8 = 3; + data->state = 3; } break; case 29: - if (sub_8018E20(data->unkC, 1)) + if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 1)) { - switch (data->unkC) + switch (data->IsCardOrNews) { case 0: - sub_8014A00(21); + MEvent_CreateTask_Leader(21); break; case 1: - sub_8014A00(22); + MEvent_CreateTask_Leader(22); break; } - data->unkD = 1; - data->unk8 = 30; + data->source = 1; + data->state = 30; } break; case 30: if (gReceivedRemoteLinkPlayers != 0) { - sub_8018838(1); - data->unk8 = 31; + ClearScreenInBg0(1); + data->state = 31; } else if (gSpecialVar_Result == 5) { - sub_8018838(1); - data->unk8 = 18; + ClearScreenInBg0(1); + data->state = 18; } break; case 31: @@ -1629,64 +1630,74 @@ void task00_mystery_gift(u8 taskId) gStringVar2[0] = eos; gStringVar3[0] = eos; } - if (data->unkC == 0) + if (data->IsCardOrNews == 0) { - sub_8018884(gText_SendingWonderCard); + AddTextPrinterToWindow1(gText_SendingWonderCard); mevent_srv_new_wcard(); } else { - sub_8018884(gText_SendingWonderNews); + AddTextPrinterToWindow1(gText_SendingWonderNews); mevent_srv_init_wnews(); } - data->unk8 = 32; + data->state = 32; break; case 32: - if (sub_801D0C4(&data->unk0) == 3) + if (mevent_srv_common_do_exec(&data->curPromptWindowId) == 3) { - data->unkE = data->unk0; - data->unk8 = 33; + data->prevPromptWindowId = data->curPromptWindowId; + data->state = 33; } break; case 33: task_add_05_task_del_08FA224_when_no_RfuFunc(); StringCopy(gStringVar1, gLinkPlayers[1].name); - data->unk8 = 34; + data->state = 34; break; case 34: if (gReceivedRemoteLinkPlayers == 0) { - sub_800E084(); - data->unk8 = 35; + DestroyWirelessStatusIndicatorSprite(); + data->state = 35; } break; case 35: - if (sub_8019174(&data->unk9, &data->unk0, data->unkD, data->unkE)) + if (PrintMGSendStatus(&data->textState, &data->curPromptWindowId, data->source, data->prevPromptWindowId)) { - if (data->unkD == 1 && data->unkE == 3) + if (data->source == 1 && data->prevPromptWindowId == 3) { - sub_801DB68(3); - data->unk8 = 17; + GenerateRandomNews(3); + data->state = 17; } else { - data->unk8 = 0; - sub_80186EC(0, 0); + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); } } break; case 36: - if (mevent_0814257C(&data->unk9, gText_CommunicationError)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_CommunicationError)) { - data->unk8 = 0; - sub_80186EC(0, 0); + data->state = 0; + PrintMysteryGiftOrEReaderTopMenu(0, 0); } break; case 37: CloseLink(); - Free(data->unk10); + Free(data->buffer); DestroyTask(taskId); - SetMainCallback2(sub_80186A4); + SetMainCallback2(MainCB_FreeAllBuffersAndReturnToInitTitleScreen); break; } } + +u16 GetMysteryGiftBaseBlock(void) +{ + return 0x1A9; +} + +void bgid_upload_textbox_1(u8 bgId) +{ + DecompressAndLoadBgGfxUsingHeap(bgId, gUnkTextboxBorderGfx, 0x100, 0, 0); +} diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 30f5af14c..fb1be0698 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -4419,7 +4419,7 @@ static void PrintStorageActionText(u8 id) DynamicPlaceholderTextUtil_ExpandPlaceholders(sPSSData->field_2190, gPCStorageActionTexts[id].text); FillWindowPixelBuffer(1, PIXEL_FILL(1)); AddTextPrinterParameterized(1, 1, sPSSData->field_2190, 0, 1, TEXT_SPEED_FF, NULL); - sub_8098858(1, 2, 14); + DrawTextBorderOuter(1, 2, 14); PutWindowTilemap(1); CopyWindowToVram(1, 2); schedule_bg_copy_tilemap_to_vram(0); diff --git a/src/script.c b/src/script.c index 91690dd33..cb06300bf 100644 --- a/src/script.c +++ b/src/script.c @@ -405,7 +405,7 @@ bool32 sub_80991F8(void) u8 *sub_8099244(void) { struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data; - if (!sub_801B27C()) + if (!ValidateReceivedWonderCard()) return NULL; if (scriptData->magic != RAM_SCRIPT_MAGIC) return NULL; diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index 7d6020c7a..7e4c14531 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -488,7 +488,7 @@ void sub_80F910C(void) if (gIsLinkContest & 2) { if (gReceivedRemoteLinkPlayers) - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); } } diff --git a/src/start_menu.c b/src/start_menu.c index f573f9bdf..5b527e15e 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -1185,7 +1185,7 @@ static bool32 sub_80A03E4(u8 *par1) InitBgsFromTemplates(0, sUnknown_085105A8, ARRAY_COUNT(sUnknown_085105A8)); InitWindows(sUnknown_085105AC); LoadUserWindowBorderGfx_(0, 8, 224); - sub_81978B0(240); + Menu_LoadStdPalAt(240); break; case 3: ShowBg(0); @@ -1234,7 +1234,7 @@ static void sub_80A0550(u8 taskId) 2, 1, 3); - sub_8098858(0, 8, 14); + DrawTextBorderOuter(0, 8, 14); PutWindowTilemap(0); CopyWindowToVram(0, 3); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); diff --git a/src/text_window.c b/src/text_window.c index 517f4bdb9..98fc09e87 100644 --- a/src/text_window.c +++ b/src/text_window.c @@ -113,7 +113,7 @@ void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palOffset) LoadWindowGfx(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palOffset); } -void sub_8098858(u8 windowId, u16 tileNum, u8 palNum) +void DrawTextBorderOuter(u8 windowId, u16 tileNum, u8 palNum) { u8 bgLayer = GetWindowAttribute(windowId, WINDOW_BG); u16 tilemapLeft = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT); @@ -131,7 +131,7 @@ void sub_8098858(u8 windowId, u16 tileNum, u8 palNum) FillBgTilemapBufferRect(bgLayer, tileNum + 8, tilemapLeft + width, tilemapTop + height, 1, 1, palNum); } -void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum) +void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum) { u8 bgLayer = GetWindowAttribute(windowId, WINDOW_BG); u16 tilemapLeft = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT); diff --git a/src/trade.c b/src/trade.c index 34f49060f..80c74d2cd 100644 --- a/src/trade.c +++ b/src/trade.c @@ -2014,7 +2014,7 @@ static void sub_80781C8(void) FreeAllWindowBuffers(); Free(gUnknown_0203229C); gMain.callback1 = NULL; - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); SetMainCallback2(sub_807AE50); } } @@ -2543,7 +2543,7 @@ static void sub_8078DBC(void) if (gUnknown_0203229C->tradeMenuCursorPosition < 6) { - sub_8098858(1, 1, 14); + DrawTextBorderOuter(1, 1, 14); FillWindowPixelBuffer(1, PIXEL_FILL(1)); PrintMenuTable(1, 2, gUnknown_0832DEAC); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0); @@ -2844,7 +2844,7 @@ static void sub_80794CC(void) Free(gUnknown_02032184); Free(gUnknown_0203229C); FreeAllWindowBuffers(); - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); SetMainCallback2(CB2_ReturnToFieldFromMultiplayer); } } @@ -3341,7 +3341,7 @@ static void sub_807A19C(u8 a0) { FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized(0, 1, gUnknown_0832DEBC[a0], 0, 1, TEXT_SPEED_FF, NULL); - sub_8098858(0, 20, 12); + DrawTextBorderOuter(0, 20, 12); PutWindowTilemap(0); CopyWindowToVram(0, 3); } @@ -6123,7 +6123,7 @@ static void c2_080543C4(void) FreeMonSpritesGfx(); FREE_AND_SET_NULL(gUnknown_020322A0); if (gWirelessCommType) - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); SetMainCallback2(gMain.savedCallback); } RunTasks(); diff --git a/src/union_room.c b/src/union_room.c index df0137379..8aeaaf6fb 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -45,6 +45,7 @@ #include "event_obj_lock.h" #include "union_room_chat.h" #include "berry_crush.h" +#include "mystery_gift.h" EWRAM_DATA u8 gUnknown_02022C20[12] = {}; EWRAM_DATA u8 gUnknown_02022C2C = 0; @@ -100,9 +101,8 @@ void sub_801AC54(void); void sub_802A9A8(u8 monId, MainCallback callback); void sub_802493C(u8 monId, MainCallback callback); void sub_80149D8(void); -u16 sub_8019930(void); -void sub_8018784(u8 windowId); -s8 sub_8018B08(u8 *textState, u8 *arg1, u8 arg2, const u8 *str); +void MG_DrawTextBorder(u8 windowId); +s8 mevent_message_print_and_prompt_yes_no(u8 *textState, u8 *arg1, u8 arg2, const u8 *str); bool32 sub_8016F1C(struct UnkLinkRfuStruct_02022B14 *arg0, s16 arg1); u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2); void sub_8019F2C(void); @@ -1555,7 +1555,7 @@ void sub_8012780(u8 taskId) break; case 21: case 23: - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); sub_800EDD4(); sub_8012F64(data); data->state++; @@ -2076,7 +2076,7 @@ void sub_80134E8(u8 taskId) data->state++; break; case 13: - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()])) { gSpecialVar_Result = 6; @@ -2084,12 +2084,12 @@ void sub_80134E8(u8 taskId) } break; case 11: - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); gSpecialVar_Result = 5; data->state = 23; break; case 15: - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); if (PrintOnTextbox(&data->textState, gUnknown_082EDE9C[sub_8011A74()])) { gSpecialVar_Result = 8; @@ -2481,7 +2481,7 @@ void sub_80143E4(void *arg0, bool32 arg1) TrainerCard_GenerateCardForPlayer((struct TrainerCard *)argAsU16Ptr); if (arg1) - argAsU16Ptr[48] = sub_801B39C(); + argAsU16Ptr[48] = GetWonderCardFlagID(); else argAsU16Ptr[48] = 0; } @@ -2680,7 +2680,7 @@ void sub_8014790(u8 taskId) case 8: if (gReceivedRemoteLinkPlayers == 0) { - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); EnableBothScriptContexts(); DestroyTask(taskId); } @@ -2699,7 +2699,7 @@ void sub_80149D8(void) gTasks[taskId].data[0] = 0; } -void sub_8014A00(u32 arg0) +void MEvent_CreateTask_Leader(u32 arg0) { u8 taskId; struct UnkStruct_Leader *dataPtr; @@ -2745,10 +2745,10 @@ void sub_8014A40(u8 taskId) data->field_17 = sub_8016FC0(data->field_4, 0xFF); winTemplate = gUnknown_082F011C; - winTemplate.baseBlock = sub_8019930(); + winTemplate.baseBlock = GetMysteryGiftBaseBlock(); winTemplate.paletteNum = 0xC; data->listWindowId = AddWindow(&winTemplate); - sub_8018784(data->listWindowId); + MG_DrawTextBorder(data->listWindowId); gMultiuseListMenuTemplate = gUnknown_082F015C; gMultiuseListMenuTemplate.windowId = data->listWindowId; data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); @@ -2763,7 +2763,7 @@ void sub_8014A40(u8 taskId) data->state = 3; break; case 3: - sub_8018884(gStringVar4); + AddTextPrinterToWindow1(gStringVar4); data->state = 4; break; case 4: @@ -2771,11 +2771,11 @@ void sub_8014A40(u8 taskId) if (gMain.newKeys & B_BUTTON) { data->state = 13; - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); } break; case 6: - if (mevent_0814257C(&data->textState, gUnknown_082EDF40)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EDF40)) { data->field_13 = sub_8013398(data->field_0); RedrawListMenu(data->listTaskId); @@ -2786,7 +2786,7 @@ void sub_8014A40(u8 taskId) data->state = 7; break; case 7: - switch (sub_8018B08(&data->textState, &data->field_14, 0, gStringVar4)) + switch (mevent_message_print_and_prompt_yes_no(&data->textState, &data->field_14, 0, gStringVar4)) { case 0: sub_800E0E8(); @@ -2837,7 +2837,7 @@ void sub_8014A40(u8 taskId) } break; case 9: - sub_8018884(gStringVar4); + AddTextPrinterToWindow1(gStringVar4); data->state = 10; break; case 10: @@ -2860,7 +2860,7 @@ void sub_8014A40(u8 taskId) } break; case 13: - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); sub_800EDD4(); DestroyListMenuTask(data->listTaskId, 0, 0); CopyBgTilemapBufferToVram(0); @@ -2872,7 +2872,7 @@ void sub_8014A40(u8 taskId) data->state++; break; case 14: - if (mevent_0814257C(&data->textState, gText_PleaseStartOver)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_PleaseStartOver)) { DestroyTask(taskId); gSpecialVar_Result = 5; @@ -2907,7 +2907,7 @@ void sub_8014A40(u8 taskId) } } -void sub_8014EFC(u32 arg0) +void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0) { u8 taskId; struct UnkStruct_Group *dataPtr; @@ -2940,7 +2940,7 @@ void sub_8014F48(u8 taskId) data->state = 1; break; case 1: - sub_8018884(gUnknown_082EF7F8); + AddTextPrinterToWindow1(gUnknown_082EF7F8); data->state = 2; break; case 2: @@ -2949,7 +2949,7 @@ void sub_8014F48(u8 taskId) data->field_11 = sub_8016FC0(data->field_4, data->field_12 + 7); winTemplate1 = gUnknown_082F0174; - winTemplate1.baseBlock = sub_8019930(); + winTemplate1.baseBlock = GetMysteryGiftBaseBlock(); winTemplate1.paletteNum = 0xC; data->listWindowId = AddWindow(&winTemplate1); @@ -2957,12 +2957,12 @@ void sub_8014F48(u8 taskId) winTemplate2.paletteNum = 0xC; data->field_D = AddWindow(&winTemplate2); - sub_8018784(data->listWindowId); + MG_DrawTextBorder(data->listWindowId); gMultiuseListMenuTemplate = gUnknown_082F0204; gMultiuseListMenuTemplate.windowId = data->listWindowId; data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); - sub_8018784(data->field_D); + MG_DrawTextBorder(data->field_D); FillWindowPixelBuffer(data->field_D, PIXEL_FILL(1)); PutWindowTilemap(data->field_D); sub_80125BC(data->field_D); @@ -3013,7 +3013,7 @@ void sub_8014F48(u8 taskId) } break; case 4: - sub_8018884(gUnknown_082EFC3C); + AddTextPrinterToWindow1(gUnknown_082EFC3C); sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); data->state = 5; break; @@ -3032,7 +3032,7 @@ void sub_8014F48(u8 taskId) data->state = 8; break; case 5: - sub_8018884(gUnknown_082EDDF4); + AddTextPrinterToWindow1(gUnknown_082EDDF4); sub_8011A64(0, 0); break; } @@ -3050,17 +3050,17 @@ void sub_8014F48(u8 taskId) data->state++; break; case 9: - if (mevent_0814257C(&data->textState, gUnknown_082EDF80[sub_8011A74()])) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EDF80[sub_8011A74()])) { - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); sub_800EDD4(); gSpecialVar_Result = 5; } break; case 7: - sub_800E084(); - sub_8018884(gText_PleaseStartOver); + DestroyWirelessStatusIndicatorSprite(); + AddTextPrinterToWindow1(gText_PleaseStartOver); DestroyTask(taskId); sub_800EDD4(); gSpecialVar_Result = 5; @@ -3076,7 +3076,7 @@ void sub_8014F48(u8 taskId) } } -void sub_80152A8(u32 arg0) +void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0) { u8 taskId; struct UnkStruct_Group *dataPtr; @@ -3109,7 +3109,7 @@ void sub_80152F4(u8 taskId) data->state = 1; break; case 1: - sub_8018884(gUnknown_082EFBC8); + AddTextPrinterToWindow1(gUnknown_082EFBC8); data->state = 2; break; case 2: @@ -3120,10 +3120,10 @@ void sub_80152F4(u8 taskId) if (data->field_13 != 0) { winTemplate = gUnknown_082F0174; - winTemplate.baseBlock = sub_8019930(); + winTemplate.baseBlock = GetMysteryGiftBaseBlock(); data->listWindowId = AddWindow(&winTemplate); - sub_8018784(data->listWindowId); + MG_DrawTextBorder(data->listWindowId); gMultiuseListMenuTemplate = gUnknown_082F0204; gMultiuseListMenuTemplate.windowId = data->listWindowId; data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); @@ -3178,7 +3178,7 @@ void sub_80152F4(u8 taskId) } break; case 4: - sub_8018884(gUnknown_082EFC90); + AddTextPrinterToWindow1(gUnknown_082EFC90); sub_8018404(gStringVar1, &data->field_0->arr[data->field_F]); data->state = 5; break; @@ -3197,7 +3197,7 @@ void sub_80152F4(u8 taskId) data->state = 8; break; case 5: - sub_8018884(gUnknown_082EDEC4); + AddTextPrinterToWindow1(gUnknown_082EDEC4); sub_8011A64(0, 0); break; } @@ -3218,27 +3218,27 @@ void sub_80152F4(u8 taskId) data->state++; break; case 9: - if (mevent_0814257C(&data->textState, gUnknown_082EDF04)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EDF04)) { - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); sub_800EDD4(); gSpecialVar_Result = 5; } break; case 7: - if (mevent_0814257C(&data->textState, gText_WirelessSearchCanceled)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_WirelessSearchCanceled)) { - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); sub_800EDD4(); gSpecialVar_Result = 5; } break; case 11: - if (mevent_0814257C(&data->textState, gUnknown_082EFD58[data->field_12])) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_082EFD58[data->field_12])) { - sub_800E084(); + DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); sub_800EDD4(); gSpecialVar_Result = 5; @@ -4513,7 +4513,7 @@ s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTe { case 0: winTemplateCopy = *winTemplate; - r1 = sub_81DB41C(menuTemplate); + r1 = Intl_GetListMenuWidth(menuTemplate); if (winTemplateCopy.width > r1) { winTemplateCopy.width = r1; diff --git a/src/union_room_chat.c b/src/union_room_chat.c index 85cfa6e2e..120252d36 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -2074,7 +2074,7 @@ static void sub_801FDDC(u8 left, u8 top, u8 initialCursorPos) PutWindowTilemap(gUnknown_02022C88->unk18); AddTextPrinterParameterized(gUnknown_02022C88->unk18, 1, gText_Yes, 8, 1, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(gUnknown_02022C88->unk18, 1, gText_No, 8, 17, TEXT_SPEED_FF, NULL); - sub_8098858(gUnknown_02022C88->unk18, 1, 13); + DrawTextBorderOuter(gUnknown_02022C88->unk18, 1, 13); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(gUnknown_02022C88->unk18, 2, initialCursorPos); } } @@ -2140,7 +2140,7 @@ static void sub_801FF18(int arg0, u16 arg1) PutWindowTilemap(windowId); if (gUnknown_082F2D40[arg0].unk4 == 1) { - sub_80989E0(windowId, 0xA, 2); + DrawTextBorderInner(windowId, 0xA, 2); AddTextPrinterParameterized5( windowId, 1, @@ -2154,7 +2154,7 @@ static void sub_801FF18(int arg0, u16 arg1) } else { - sub_8098858(windowId, 0xA, 2); + DrawTextBorderOuter(windowId, 0xA, 2); AddTextPrinterParameterized5( windowId, 1, @@ -2316,7 +2316,7 @@ static bool32 sub_8020368(void) static void sub_80203B0(void) { FillWindowPixelBuffer(3, PIXEL_FILL(1)); - sub_8098858(3, 1, 13); + DrawTextBorderOuter(3, 1, 13); PrintTextArray(3, 2, 8, 1, 14, 5, gUnknown_082F2DC8); sub_81983AC(3, 2, 0, 1, 14, 5, sub_801F0B0()); PutWindowTilemap(3); diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 6df826214..4eaf60be4 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -617,7 +617,7 @@ void sub_8166D44(void) StringAppend(stringBuffer, gText_GetsAPokeBlockQuestion); StringCopy(gStringVar4, stringBuffer); FillWindowPixelBuffer(2, 17); - sub_8098858(2, 151, 14); + DrawTextBorderOuter(2, 151, 14); AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); PutWindowTilemap(2); CopyWindowToVram(2, 3); @@ -645,7 +645,7 @@ s8 sub_8166DE4(void) void sub_8166E24(void) { - sub_8098858(2, 151, 14); + DrawTextBorderOuter(2, 151, 14); FillWindowPixelBuffer(2, 17); for (gUnknown_0203BC90->field_53 = 0; gUnknown_0203BC90->field_53 < 5; gUnknown_0203BC90->field_53++) @@ -693,7 +693,7 @@ bool8 sub_8166EDC(void) void sub_8166F50(void) { FillWindowPixelBuffer(2, 17); - sub_8098858(2, 151, 14); + DrawTextBorderOuter(2, 151, 14); AddTextPrinterParameterized(2, 1, gText_WontEatAnymore, 0, 1, 0, NULL); PutWindowTilemap(2); CopyWindowToVram(2, 3); -- cgit v1.2.3 From 207a54393c533e073e54365a8069753536fefa3c Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 31 Mar 2019 20:07:24 -0400 Subject: Fix mistakes and use EVENT_OBJ_GFX_* macros --- src/data/contest_opponents.h | 392 ++++++++++++++++++++--------------------- src/data/contest_text_tables.h | 118 ++++++------- 2 files changed, 255 insertions(+), 255 deletions(-) (limited to 'src') diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index 2ebfd1dfd..ef1fdba9f 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 fa32f33b5..8375520d1 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 +}; -- cgit v1.2.3 From 23ac2cc94e2914a427e97467103c0160af6f1be0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 31 Mar 2019 20:15:44 -0400 Subject: Prep for merge --- src/contest.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index da3075e65..53d7e547d 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 } -- cgit v1.2.3 From b7057e8d923e78c6d29ab122b3e136ca93fdd7b4 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 31 Mar 2019 20:33:25 -0400 Subject: Update OAMs to use new constants --- src/contest.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 53d7e547d..0591668ff 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, -- cgit v1.2.3 From 3181c64c64afa47b3adc04f325ad3798c8c324ec Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 31 Mar 2019 20:40:14 -0400 Subject: Change names from MAP_AREA_ to MAP_GROUP_ --- src/pokedex_area_screen.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index d43c556c8..7404e9d5a 100755 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -341,11 +341,11 @@ static void FindMapsWithMon(u16 species) { switch (sFeebasData[i][1]) { - case MAP_AREA_OVERWORLD_MONS: + case MAP_GROUP_OVERWORLD_MONS: SetAreaHasMon(sFeebasData[i][1], sFeebasData[i][2]); break; - case MAP_AREA_SPECIAL_MONS_1: - case MAP_AREA_SPECIAL_MONS_2: + case MAP_GROUP_SPECIAL_MONS_1: + case MAP_GROUP_SPECIAL_MONS_2: SetSpecialMapHasMon(sFeebasData[i][1], sFeebasData[i][2]); break; } @@ -358,11 +358,11 @@ static void FindMapsWithMon(u16 species) { switch (gWildMonHeaders[i].mapGroup) { - case MAP_AREA_OVERWORLD_MONS: + case MAP_GROUP_OVERWORLD_MONS: SetAreaHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); break; - case MAP_AREA_SPECIAL_MONS_1: - case MAP_AREA_SPECIAL_MONS_2: + case MAP_GROUP_SPECIAL_MONS_1: + case MAP_GROUP_SPECIAL_MONS_2: SetSpecialMapHasMon(gWildMonHeaders[i].mapGroup, gWildMonHeaders[i].mapNum); break; } -- cgit v1.2.3 From 099ea89b77fdde1a6b31c7ef3e1975e57a175dd9 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 31 Mar 2019 21:07:29 -0500 Subject: Document rain weather effect --- src/braille_puzzles.c | 72 ++--- src/field_weather.c | 5 +- src/field_weather_effect.c | 721 ++++++++++++++++++++++++--------------------- 3 files changed, 416 insertions(+), 382 deletions(-) (limited to 'src') diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 07b941f11..659f8682e 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -25,42 +25,42 @@ EWRAM_DATA static u8 sBraillePuzzleCallbackFlag = 0; static const u8 gRegicePathCoords[][2] = { - {0x04, 0x15}, - {0x05, 0x15}, - {0x06, 0x15}, - {0x07, 0x15}, - {0x08, 0x15}, - {0x09, 0x15}, - {0x0a, 0x15}, - {0x0b, 0x15}, - {0x0c, 0x15}, - {0x0c, 0x16}, - {0x0c, 0x17}, - {0x0d, 0x17}, - {0x0d, 0x18}, - {0x0d, 0x19}, - {0x0d, 0x1a}, - {0x0d, 0x1b}, - {0x0c, 0x1b}, - {0x0c, 0x1c}, - {0x04, 0x1d}, - {0x05, 0x1d}, - {0x06, 0x1d}, - {0x07, 0x1d}, - {0x08, 0x1d}, - {0x09, 0x1d}, - {0x0a, 0x1d}, - {0x0b, 0x1d}, - {0x0c, 0x1d}, - {0x04, 0x1c}, - {0x04, 0x1b}, - {0x03, 0x1b}, - {0x03, 0x1a}, - {0x03, 0x19}, - {0x03, 0x18}, - {0x03, 0x17}, - {0x04, 0x17}, - {0x04, 0x16}, + {4, 21}, + {5, 21}, + {6, 21}, + {7, 21}, + {8, 21}, + {9, 21}, + {10, 21}, + {11, 21}, + {12, 21}, + {12, 22}, + {12, 23}, + {13, 23}, + {13, 24}, + {13, 25}, + {13, 26}, + {13, 27}, + {12, 27}, + {12, 28}, + {4, 29}, + {5, 29}, + {6, 29}, + {7, 29}, + {8, 29}, + {9, 29}, + {10, 29}, + {11, 29}, + {12, 29}, + {4, 28}, + {4, 27}, + {3, 27}, + {3, 26}, + {3, 25}, + {3, 24}, + {3, 23}, + {4, 23}, + {4, 22}, }; void SealedChamberShakingEffect(u8); diff --git a/src/field_weather.c b/src/field_weather.c index 9913e9a61..a2c40052b 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -167,7 +167,7 @@ void StartWeather(void) gWeatherPtr->altGammaSpritePalIndex = index; gWeatherPtr->weatherPicSpritePalIndex = AllocSpritePalette(0x1201); gWeatherPtr->rainSpriteCount = 0; - gWeatherPtr->unknown_6D8 = 0; + gWeatherPtr->curRainSpriteIndex = 0; gWeatherPtr->cloudSpritesCreated = 0; gWeatherPtr->snowflakeSpriteCount = 0; gWeatherPtr->ashSpritesCreated = 0; @@ -234,7 +234,8 @@ static void Task_WeatherMain(u8 taskId) { if (gWeatherPtr->currWeather != gWeatherPtr->nextWeather) { - if (!sWeatherFuncs[gWeatherPtr->currWeather].finish() && gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_SCREEN_FADING_OUT) + if (!sWeatherFuncs[gWeatherPtr->currWeather].finish() + && gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_SCREEN_FADING_OUT) { // Finished cleaning up previous weather. Now transition to next weather. sWeatherFuncs[gWeatherPtr->nextWeather].initVars(); diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 6ec83f1a0..95f80d061 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -12,9 +12,6 @@ #include "trig.h" #include "gpu_regs.h" -// This file's functions. -void sub_80AC6B4(struct Sprite *); - // EWRAM EWRAM_DATA static u8 gCurrentAlternatingWeather = 0; EWRAM_DATA static u16 gUnusedWeatherRelated = 0; @@ -32,6 +29,12 @@ const u8 gWeatherAshTiles[] = INCBIN_U8("graphics/weather/ash.4bpp"); const u8 gWeatherRainTiles[] = INCBIN_U8("graphics/weather/rain.4bpp"); const u8 gWeatherSandstormTiles[] = INCBIN_U8("graphics/weather/sandstorm.4bpp"); +//------------------------------------------------------------------------------ +// Clouds +//------------------------------------------------------------------------------ + +static void sub_80AC6B4(struct Sprite *); + static const struct Coords16 gUnknown_0854FB50[] = { { 0, 66}, @@ -39,7 +42,12 @@ static const struct Coords16 gUnknown_0854FB50[] = {10, 78}, }; -static const struct SpriteSheet sCloudSpriteSheet = {gWeatherCloudTiles, sizeof(gWeatherCloudTiles), 0x1200}; +static const struct SpriteSheet sCloudSpriteSheet = +{ + .data = gWeatherCloudTiles, + .size = sizeof(gWeatherCloudTiles), + .tag = 0x1200 +}; static const struct OamData gOamData_839A9DC = { @@ -80,10 +88,6 @@ static const struct SpriteTemplate sCloudSpriteTemplate = .callback = sub_80AC6B4, }; -//------------------------------------------------------------------------------ -// Clouds -//------------------------------------------------------------------------------ - void Clouds_InitVars(void) { gWeatherPtr->gammaTargetIndex = 0; @@ -214,7 +218,7 @@ void sub_807E0A0(void) gWeatherPtr->cloudSpritesCreated = FALSE; } -void sub_80AC6B4(struct Sprite *sprite) +static void sub_80AC6B4(struct Sprite *sprite) { sprite->data[0] = (sprite->data[0] + 1) & 1; if (sprite->data[0] != 0) @@ -350,14 +354,128 @@ void task50_0807B6D4(u8 taskId) // Light Rain //------------------------------------------------------------------------------ +static void LoadRainSpriteSheet(void); +static bool8 CreateRainSprite(void); +static void UpdateRainSprite(struct Sprite *sprite); +static bool8 UpdateVisibleRainSprites(void); +static void DestroyRainSprites(void); + +static const struct Coords16 sRainSpriteCoords[] = +{ + { 0, 0}, + { 0, 160}, + { 0, 64}, + {144, 224}, + {144, 128}, + { 32, 32}, + { 32, 192}, + { 32, 96}, + { 72, 128}, + { 72, 32}, + { 72, 192}, + {216, 96}, + {216, 0}, + {104, 160}, + {104, 64}, + {104, 224}, + {144, 0}, + {144, 160}, + {144, 64}, + { 32, 224}, + { 32, 128}, + { 72, 32}, + { 72, 192}, + { 48, 96}, +}; + +static const struct OamData sRainSpriteOamData = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 1, + .paletteNum = 2, + .affineParam = 0, +}; + +static const union AnimCmd sRainSpriteFallAnimCmd[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sRainSpriteSplashAnimCmd[] = +{ + ANIMCMD_FRAME(8, 3), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(40, 2), + ANIMCMD_END, +}; + +static const union AnimCmd sRainSpriteHeavySplashAnimCmd[] = +{ + ANIMCMD_FRAME(8, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(24, 4), + ANIMCMD_END, +}; + +static const union AnimCmd *const sRainSpriteAnimCmds[] = +{ + sRainSpriteFallAnimCmd, + sRainSpriteSplashAnimCmd, + sRainSpriteHeavySplashAnimCmd, +}; + +static const struct SpriteTemplate sRainSpriteTemplate = +{ + .tileTag = 4614, + .paletteTag = 4608, + .oam = &sRainSpriteOamData, + .anims = sRainSpriteAnimCmds, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = UpdateRainSprite, +}; + +// Q28.4 fixed-point format values +static const s16 sRainSpriteMovement[][2] = +{ + {-0x68, 0xD0}, + {-0xA0, 0x140}, +}; + +// First byte is the number of frames a raindrop falls before it splashes. +// Second byte is the maximum number of frames a raindrop can "wait" before +// it appears and starts falling. (This is only for the initial raindrop spawn.) +static const u16 sRainSpriteFallingDurations[][2] = +{ + {18, 7}, + {12, 10}, +}; + +static const struct SpriteSheet sRainSpriteSheet = +{ + .data = gWeatherRainTiles, + .size = sizeof(gWeatherRainTiles), + .tag = 0x1206, +}; + void LightRain_InitVars(void) { gWeatherPtr->initStep = 0; gWeatherPtr->weatherGfxLoaded = FALSE; - gWeatherPtr->unknown_6D6 = 0; - gWeatherPtr->unknown_6DB = 8; - gWeatherPtr->unknown_6DC = 0; - gWeatherPtr->unknown_6D9 = 10; + gWeatherPtr->rainSpriteVisibleCounter = 0; + gWeatherPtr->rainSpriteVisibleDelay = 8; + gWeatherPtr->isHeavyRain = 0; + gWeatherPtr->maxRainSprites = 10; gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; SetRainStrengthFromSoundEffect(SE_T_KOAME); @@ -366,14 +484,10 @@ void LightRain_InitVars(void) void LightRain_InitAll(void) { LightRain_InitVars(); - while (gWeatherPtr->weatherGfxLoaded == FALSE) + while (!gWeatherPtr->weatherGfxLoaded) LightRain_Main(); } -void LoadRainSpriteSheet(void); -u8 CreateRainSprite(void); -u8 sub_807E8E8(void); - void LightRain_Main(void) { switch (gWeatherPtr->initStep) @@ -383,11 +497,11 @@ void LightRain_Main(void) gWeatherPtr->initStep++; break; case 1: - if (CreateRainSprite() == 0) + if (!CreateRainSprite()) gWeatherPtr->initStep++; break; case 2: - if (sub_807E8E8() == FALSE) + if (!UpdateVisibleRainSprites()) { gWeatherPtr->weatherGfxLoaded = TRUE; gWeatherPtr->initStep++; @@ -396,8 +510,6 @@ void LightRain_Main(void) } } -void DestroyRainSprites(void); - bool8 LightRain_Finish(void) { switch (gWeatherPtr->finishStep) @@ -412,12 +524,12 @@ bool8 LightRain_Finish(void) } else { - gWeatherPtr->unknown_6D9 = 0; + gWeatherPtr->maxRainSprites = 0; gWeatherPtr->finishStep++; } // fall through case 1: - if (sub_807E8E8() == FALSE) + if (!UpdateVisibleRainSprites()) { DestroyRainSprites(); gWeatherPtr->finishStep++; @@ -428,66 +540,74 @@ bool8 LightRain_Finish(void) return FALSE; } -// defined below -extern const s16 gUnknown_0839AABC[][2]; -extern const u16 gUnknown_0839AAC4[][2]; +#define tCounter data[0] +#define tRandom data[1] +#define tPosX data[2] +#define tPosY data[3] +#define tState data[4] +#define tActive data[5] +#define tWaiting data[6] -void sub_807E4EC(struct Sprite *sprite) +static void StartRainSpriteFall(struct Sprite *sprite) { - u32 randVal; - u16 r6; - s32 r4; - s32 r0; + u32 rand; + u16 numFallingFrames; + int tileX; + int tileY; - if (sprite->data[1] == 0) - sprite->data[1] = 361; - randVal = sprite->data[1] * 1103515245 + 12345; - sprite->data[1] = ((randVal & 0x7FFF0000) >> 16) % 600; + if (sprite->tRandom == 0) + sprite->tRandom = 361; - r6 = gUnknown_0839AAC4[gWeatherPtr->unknown_6DC][0]; + // Standard RNG sequence. + rand = sprite->tRandom * 1103515245 + 12345; + sprite->tRandom = ((rand & 0x7FFF0000) >> 16) % 600; - r4 = sprite->data[1] % 30; - sprite->data[2] = r4 * 8; // useless assignment + numFallingFrames = sRainSpriteFallingDurations[gWeatherPtr->isHeavyRain][0]; - r0 = sprite->data[1] / 30; - sprite->data[3] = r0 * 8; // useless assignment + tileX = sprite->tRandom % 30; + sprite->tPosX = tileX * 8; // Useless assignment, leftover from before fixed-point values were used - sprite->data[2] = r4; - sprite->data[2] <<= 7; + tileY = sprite->tRandom / 30; + sprite->tPosY = tileY * 8; // Useless assignment, leftover from before fixed-point values were used - sprite->data[3] = r0; - sprite->data[3] <<= 7; + sprite->tPosX = tileX; + sprite->tPosX <<= 7; // This is tileX * 8, using a fixed-point value with 4 decimal places - sprite->data[2] -= gUnknown_0839AABC[gWeatherPtr->unknown_6DC][0] * r6; - sprite->data[3] -= gUnknown_0839AABC[gWeatherPtr->unknown_6DC][1] * r6; + sprite->tPosY = tileY; + sprite->tPosY <<= 7; // This is tileX * 8, using a fixed-point value with 4 decimal places + + // "Rewind" the rain sprites, from their ending position. + sprite->tPosX -= sRainSpriteMovement[gWeatherPtr->isHeavyRain][0] * numFallingFrames; + sprite->tPosY -= sRainSpriteMovement[gWeatherPtr->isHeavyRain][1] * numFallingFrames; StartSpriteAnim(sprite, 0); - sprite->data[4] = 0; + sprite->tState = 0; sprite->coordOffsetEnabled = FALSE; - sprite->data[0] = r6; + sprite->tCounter = numFallingFrames; } -void sub_807E5C0(struct Sprite *sprite) +static void UpdateRainSprite(struct Sprite *sprite) { - if (sprite->data[4] == 0) + if (sprite->tState == 0) { - sprite->data[2] += gUnknown_0839AABC[gWeatherPtr->unknown_6DC][0]; - sprite->data[3] += gUnknown_0839AABC[gWeatherPtr->unknown_6DC][1]; - sprite->pos1.x = sprite->data[2] >> 4; - sprite->pos1.y = sprite->data[3] >> 4; + // Raindrop is in its "falling" motion. + sprite->tPosX += sRainSpriteMovement[gWeatherPtr->isHeavyRain][0]; + sprite->tPosY += sRainSpriteMovement[gWeatherPtr->isHeavyRain][1]; + sprite->pos1.x = sprite->tPosX >> 4; + sprite->pos1.y = sprite->tPosY >> 4; - if (sprite->data[5] != 0 + if (sprite->tActive && (sprite->pos1.x >= -8 && sprite->pos1.x <= 248) && sprite->pos1.y >= -16 && sprite->pos1.y <= 176) sprite->invisible = FALSE; else sprite->invisible = TRUE; - sprite->data[0]--; - if (sprite->data[0] == 0) + if (--sprite->tCounter == 0) { - StartSpriteAnim(sprite, gWeatherPtr->unknown_6DC + 1); - sprite->data[4] = 1; + // Make raindrop splash on the ground + StartSpriteAnim(sprite, gWeatherPtr->isHeavyRain + 1); + sprite->tState = 1; sprite->pos1.x -= gSpriteCoordOffsetX; sprite->pos1.y -= gSpriteCoordOffsetY; sprite->coordOffsetEnabled = TRUE; @@ -495,151 +615,230 @@ void sub_807E5C0(struct Sprite *sprite) } else if (sprite->animEnded) { + // The splashing animation ended. sprite->invisible = TRUE; - sub_807E4EC(sprite); + StartRainSpriteFall(sprite); } } -void sub_807E6C4(struct Sprite *sprite) +static void WaitRainSprite(struct Sprite *sprite) { - if (sprite->data[0] == 0) + if (sprite->tCounter == 0) { - sub_807E4EC(sprite); - sprite->callback = sub_807E5C0; + StartRainSpriteFall(sprite); + sprite->callback = UpdateRainSprite; } else { - sprite->data[0]--; + sprite->tCounter--; } } -void sub_807E6F0(struct Sprite *sprite, u16 b) +static void InitRainSpriteMovement(struct Sprite *sprite, u16 val) { - u16 r8 = gUnknown_0839AAC4[gWeatherPtr->unknown_6DC][0]; - u16 r6 = b / (gUnknown_0839AAC4[gWeatherPtr->unknown_6DC][1] + r8); - u16 r4 = b % (gUnknown_0839AAC4[gWeatherPtr->unknown_6DC][1] + r8); + u16 numFallingFrames = sRainSpriteFallingDurations[gWeatherPtr->isHeavyRain][0]; + u16 numAdvanceRng = val / (sRainSpriteFallingDurations[gWeatherPtr->isHeavyRain][1] + numFallingFrames); + u16 frameVal = val % (sRainSpriteFallingDurations[gWeatherPtr->isHeavyRain][1] + numFallingFrames); + + while (--numAdvanceRng != 0xFFFF) + StartRainSpriteFall(sprite); - while (--r6 != 0xFFFF) - sub_807E4EC(sprite); - if (r4 < r8) + if (frameVal < numFallingFrames) { - while (--r4 != 0xFFFF) - sub_807E5C0(sprite); - sprite->data[6] = 0; + while (--frameVal != 0xFFFF) + UpdateRainSprite(sprite); + + sprite->tWaiting = 0; } else { - sprite->data[0] = r4 - r8; + sprite->tCounter = frameVal - numFallingFrames; sprite->invisible = TRUE; - sprite->data[6] = 1; + sprite->tWaiting = 1; } } -extern const struct SpriteSheet sRainSpriteSheet; // defined below - -void LoadRainSpriteSheet(void) +static void LoadRainSpriteSheet(void) { LoadSpriteSheet(&sRainSpriteSheet); } -static const struct Coords16 sRainSpriteCoords[] = +static bool8 CreateRainSprite(void) { - { 0, 0}, - { 0, 160}, - { 0, 64}, - {144, 224}, - {144, 128}, - { 32, 32}, - { 32, 192}, - { 32, 96}, - { 72, 128}, - { 72, 32}, - { 72, 192}, - {216, 96}, - {216, 0}, - {104, 160}, - {104, 64}, - {104, 224}, - {144, 0}, - {144, 160}, - {144, 64}, - { 32, 224}, - { 32, 128}, - { 72, 32}, - { 72, 192}, - { 48, 96}, -}; + u8 spriteIndex; + u8 spriteId; -static const struct OamData gOamData_839AA68 = -{ - .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 1, - .paletteNum = 2, - .affineParam = 0, -}; + if (gWeatherPtr->rainSpriteCount == MAX_RAIN_SPRITES) + return FALSE; + + spriteIndex = gWeatherPtr->rainSpriteCount; + spriteId = CreateSpriteAtEnd(&sRainSpriteTemplate, + sRainSpriteCoords[spriteIndex].x, sRainSpriteCoords[spriteIndex].y, 78); + + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].tActive = 0; + gSprites[spriteId].tRandom = spriteIndex * 145; + while (gSprites[spriteId].tRandom >= 600) + gSprites[spriteId].tRandom -= 600; + + StartRainSpriteFall(&gSprites[spriteId]); + InitRainSpriteMovement(&gSprites[spriteId], spriteIndex * 9); + gSprites[spriteId].invisible = TRUE; + gWeatherPtr->sprites.s1.rainSprites[spriteIndex] = &gSprites[spriteId]; + } + else + { + gWeatherPtr->sprites.s1.rainSprites[spriteIndex] = NULL; + } + + if (++gWeatherPtr->rainSpriteCount == MAX_RAIN_SPRITES) + { + u16 i; + for (i = 0; i < MAX_RAIN_SPRITES; i++) + { + if (gWeatherPtr->sprites.s1.rainSprites[i]) + { + if (!gWeatherPtr->sprites.s1.rainSprites[i]->tWaiting) + gWeatherPtr->sprites.s1.rainSprites[i]->callback = UpdateRainSprite; + else + gWeatherPtr->sprites.s1.rainSprites[i]->callback = WaitRainSprite; + } + } + + return FALSE; + } -static const union AnimCmd gSpriteAnim_839AA70[] = + return TRUE; +} + +static bool8 UpdateVisibleRainSprites(void) { - ANIMCMD_FRAME(0, 16), - ANIMCMD_JUMP(0), -}; + if (gWeatherPtr->curRainSpriteIndex == gWeatherPtr->maxRainSprites) + return FALSE; -static const union AnimCmd gSpriteAnim_839AA78[] = + if (++gWeatherPtr->rainSpriteVisibleCounter > gWeatherPtr->rainSpriteVisibleDelay) + { + gWeatherPtr->rainSpriteVisibleCounter = 0; + if (gWeatherPtr->curRainSpriteIndex < gWeatherPtr->maxRainSprites) + { + gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex++]->tActive = 1; + } + else + { + gWeatherPtr->curRainSpriteIndex--; + gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex]->tActive = 0; + gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex]->invisible = TRUE; + } + } + return TRUE; +} + +static void DestroyRainSprites(void) { - ANIMCMD_FRAME(8, 3), - ANIMCMD_FRAME(32, 2), - ANIMCMD_FRAME(40, 2), - ANIMCMD_END, -}; + u16 i; + + for (i = 0; i < gWeatherPtr->rainSpriteCount; i++) + { + if (gWeatherPtr->sprites.s1.rainSprites[i] != NULL) + DestroySprite(gWeatherPtr->sprites.s1.rainSprites[i]); + } + gWeatherPtr->rainSpriteCount = 0; + FreeSpriteTilesByTag(0x1206); +} -static const union AnimCmd gSpriteAnim_839AA88[] = +#undef tCounter +#undef tRandom +#undef tPosX +#undef tPosY +#undef tState +#undef tActive +#undef tWaiting + +//------------------------------------------------------------------------------ +// Snow +//------------------------------------------------------------------------------ + +void Snow_InitVars(void) { - ANIMCMD_FRAME(8, 3), - ANIMCMD_FRAME(16, 3), - ANIMCMD_FRAME(24, 4), - ANIMCMD_END, -}; + gWeatherPtr->initStep = 0; + gWeatherPtr->weatherGfxLoaded = FALSE; + gWeatherPtr->gammaTargetIndex = 3; + gWeatherPtr->gammaStepDelay = 20; + gWeatherPtr->unknown_6E5 = 16; + gWeatherPtr->unknown_6E0 = 0; +} + +void Snow_Main(void); +void sub_807ED48(struct Sprite *); -static const union AnimCmd *const gSpriteAnimTable_839AA98[] = +void Snow_InitAll(void) { - gSpriteAnim_839AA70, - gSpriteAnim_839AA78, - gSpriteAnim_839AA88, -}; + Snow_InitVars(); + while (gWeatherPtr->weatherGfxLoaded == FALSE) + { + u16 i; -static const struct SpriteTemplate sRainSpriteTemplate = + Snow_Main(); + for (i = 0; i < gWeatherPtr->snowflakeSpriteCount; i++) + { + sub_807ED48(gWeatherPtr->sprites.s1.snowflakeSprites[i]); + } + } +} + +u8 snowflakes_progress(void); + +void Snow_Main(void) { - .tileTag = 4614, - .paletteTag = 4608, - .oam = &gOamData_839AA68, - .anims = gSpriteAnimTable_839AA98, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_807E5C0, -}; + if (gWeatherPtr->initStep == 0 && snowflakes_progress() == FALSE) + { + gWeatherPtr->weatherGfxLoaded = TRUE; + gWeatherPtr->initStep++; + } +} -const s16 gUnknown_0839AABC[][2] = +bool8 Snow_Finish(void) { - {-104, 208}, - {-160, 320}, -}; + switch (gWeatherPtr->finishStep) + { + case 0: + gWeatherPtr->unknown_6E5 = 0; + gWeatherPtr->unknown_6E0 = 0; + gWeatherPtr->finishStep++; + // fall through + case 1: + if (snowflakes_progress() == FALSE) + { + gWeatherPtr->finishStep++; + return FALSE; + } + return TRUE; + } + return FALSE; +} -const u16 gUnknown_0839AAC4[][2] = +bool8 CreateSnowflakeSprite(void); +bool8 RemoveSnowflakeSprite(void); + +bool8 snowflakes_progress(void) { - {18, 7}, - {12, 10}, -}; + if (gWeatherPtr->snowflakeSpriteCount == gWeatherPtr->unknown_6E5) + return FALSE; -static const struct SpriteSheet sRainSpriteSheet = {gWeatherRainTiles, sizeof(gWeatherRainTiles), 0x1206}; + gWeatherPtr->unknown_6E0++; + if (gWeatherPtr->unknown_6E0 > 36) + { + gWeatherPtr->unknown_6E0 = 0; + if (gWeatherPtr->snowflakeSpriteCount < gWeatherPtr->unknown_6E5) + CreateSnowflakeSprite(); + else + RemoveSnowflakeSprite(); + } + return (gWeatherPtr->snowflakeSpriteCount != gWeatherPtr->unknown_6E5); +} + +void sub_807EC40(struct Sprite *); static const struct OamData gOamData_839AAD4 = { @@ -783,172 +982,6 @@ static const struct SpriteTemplate sFog1SpriteTemplate = .callback = Fog1SpriteCallback, }; -bool8 CreateRainSprite(void) -{ - u8 spriteNum; - u8 spriteId; - - if (gWeatherPtr->rainSpriteCount == 24) - return FALSE; - - spriteNum = gWeatherPtr->rainSpriteCount; - spriteId = CreateSpriteAtEnd(&sRainSpriteTemplate, - sRainSpriteCoords[spriteNum].x, sRainSpriteCoords[spriteNum].y, 78); - if (spriteId != MAX_SPRITES) - { - gSprites[spriteId].data[5] = 0; - gSprites[spriteId].data[1] = spriteNum * 145; - while (gSprites[spriteId].data[1] >= 600) - gSprites[spriteId].data[1] -= 600; - sub_807E4EC(&gSprites[spriteId]); - sub_807E6F0(&gSprites[spriteId], spriteNum * 9); - gSprites[spriteId].invisible = TRUE; - gWeatherPtr->sprites.s1.rainSprites[spriteNum] = &gSprites[spriteId]; - } - else - { - gWeatherPtr->sprites.s1.rainSprites[spriteNum] = NULL; - } - - if (++gWeatherPtr->rainSpriteCount == 24) - { - u16 i; - - for (i = 0; i < 24; i++) - { - if (gWeatherPtr->sprites.s1.rainSprites[i] != NULL) - { - if (gWeatherPtr->sprites.s1.rainSprites[i]->data[6] == 0) - gWeatherPtr->sprites.s1.rainSprites[i]->callback = sub_807E5C0; - else - gWeatherPtr->sprites.s1.rainSprites[i]->callback = sub_807E6C4; - } - } - return FALSE; - } - return TRUE; -} - -bool8 sub_807E8E8(void) -{ - if (gWeatherPtr->unknown_6D8 == gWeatherPtr->unknown_6D9) - return FALSE; - - if (++gWeatherPtr->unknown_6D6 > gWeatherPtr->unknown_6DB) - { - gWeatherPtr->unknown_6D6 = 0; - if (gWeatherPtr->unknown_6D8 < gWeatherPtr->unknown_6D9) - { - gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->unknown_6D8++]->data[5] = 1; - } - else - { - gWeatherPtr->unknown_6D8--; - gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->unknown_6D8]->data[5] = 0; - gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->unknown_6D8]->invisible = TRUE; - } - } - return TRUE; -} - -void DestroyRainSprites(void) -{ - u16 i; - - for (i = 0; i < gWeatherPtr->rainSpriteCount; i++) - { - if (gWeatherPtr->sprites.s1.rainSprites[i] != NULL) - DestroySprite(gWeatherPtr->sprites.s1.rainSprites[i]); - } - gWeatherPtr->rainSpriteCount = 0; - FreeSpriteTilesByTag(0x1206); -} - -//------------------------------------------------------------------------------ -// Snow -//------------------------------------------------------------------------------ - -void Snow_InitVars(void) -{ - gWeatherPtr->initStep = 0; - gWeatherPtr->weatherGfxLoaded = FALSE; - gWeatherPtr->gammaTargetIndex = 3; - gWeatherPtr->gammaStepDelay = 20; - gWeatherPtr->unknown_6E5 = 16; - gWeatherPtr->unknown_6E0 = 0; -} - -void Snow_Main(void); -void sub_807ED48(struct Sprite *); - -void Snow_InitAll(void) -{ - Snow_InitVars(); - while (gWeatherPtr->weatherGfxLoaded == FALSE) - { - u16 i; - - Snow_Main(); - for (i = 0; i < gWeatherPtr->snowflakeSpriteCount; i++) - { - sub_807ED48(gWeatherPtr->sprites.s1.snowflakeSprites[i]); - } - } -} - -u8 snowflakes_progress(void); - -void Snow_Main(void) -{ - if (gWeatherPtr->initStep == 0 && snowflakes_progress() == FALSE) - { - gWeatherPtr->weatherGfxLoaded = TRUE; - gWeatherPtr->initStep++; - } -} - -bool8 Snow_Finish(void) -{ - switch (gWeatherPtr->finishStep) - { - case 0: - gWeatherPtr->unknown_6E5 = 0; - gWeatherPtr->unknown_6E0 = 0; - gWeatherPtr->finishStep++; - // fall through - case 1: - if (snowflakes_progress() == FALSE) - { - gWeatherPtr->finishStep++; - return FALSE; - } - return TRUE; - } - return FALSE; -} - -bool8 CreateSnowflakeSprite(void); -bool8 RemoveSnowflakeSprite(void); - -bool8 snowflakes_progress(void) -{ - if (gWeatherPtr->snowflakeSpriteCount == gWeatherPtr->unknown_6E5) - return FALSE; - - gWeatherPtr->unknown_6E0++; - if (gWeatherPtr->unknown_6E0 > 36) - { - gWeatherPtr->unknown_6E0 = 0; - if (gWeatherPtr->snowflakeSpriteCount < gWeatherPtr->unknown_6E5) - CreateSnowflakeSprite(); - else - RemoveSnowflakeSprite(); - } - return (gWeatherPtr->snowflakeSpriteCount != gWeatherPtr->unknown_6E5); -} - -void sub_807EC40(struct Sprite *); - bool8 CreateSnowflakeSprite(void) { u8 spriteId = CreateSpriteAtEnd(&sSnowflakeSpriteTemplate, 0, 0, 78); @@ -1057,10 +1090,10 @@ void MedRain_InitVars(void) { gWeatherPtr->initStep = 0; gWeatherPtr->weatherGfxLoaded = FALSE; - gWeatherPtr->unknown_6D6 = 0; - gWeatherPtr->unknown_6DB = 4; - gWeatherPtr->unknown_6DC = 0; - gWeatherPtr->unknown_6D9 = 16; + gWeatherPtr->rainSpriteVisibleCounter = 0; + gWeatherPtr->rainSpriteVisibleDelay = 4; + gWeatherPtr->isHeavyRain = 0; + gWeatherPtr->maxRainSprites = 16; gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment @@ -1085,10 +1118,10 @@ void HeavyRain_InitVars(void) { gWeatherPtr->initStep = 0; gWeatherPtr->weatherGfxLoaded = FALSE; - gWeatherPtr->unknown_6D6 = 0; - gWeatherPtr->unknown_6DB = 4; - gWeatherPtr->unknown_6DC = 1; - gWeatherPtr->unknown_6D9 = 24; + gWeatherPtr->rainSpriteVisibleCounter = 0; + gWeatherPtr->rainSpriteVisibleDelay = 4; + gWeatherPtr->isHeavyRain = 1; + gWeatherPtr->maxRainSprites = 24; gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment @@ -1102,8 +1135,8 @@ void HeavyRain_InitAll(void) Rain_Main(); } -void UpdateThunderSound(void); -void SetThunderCounter(u16); +static void UpdateThunderSound(void); +static void SetThunderCounter(u16); void Rain_Main(void) { @@ -1120,7 +1153,7 @@ void Rain_Main(void) gWeatherPtr->initStep++; break; case 2: - if (sub_807E8E8()) + if (UpdateVisibleRainSprites()) break; gWeatherPtr->weatherGfxLoaded = TRUE; gWeatherPtr->initStep++; @@ -1224,12 +1257,12 @@ bool8 Rain_Finish(void) || gWeatherPtr->nextWeather == WEATHER_RAIN_MED || gWeatherPtr->nextWeather == WEATHER_RAIN_HEAVY) return FALSE; - gWeatherPtr->unknown_6D9 = 0; + gWeatherPtr->maxRainSprites = 0; gWeatherPtr->finishStep++; } break; case 2: - if (sub_807E8E8()) + if (UpdateVisibleRainSprites()) break; DestroyRainSprites(); gWeatherPtr->unknown_6ED = 0; @@ -1241,7 +1274,7 @@ bool8 Rain_Finish(void) return TRUE; } -void SetThunderCounter(u16 max) +static void SetThunderCounter(u16 max) { if (gWeatherPtr->unknown_6ED == 0) { @@ -1250,7 +1283,7 @@ void SetThunderCounter(u16 max) } } -void UpdateThunderSound(void) +static void UpdateThunderSound(void) { if (gWeatherPtr->unknown_6ED == 1) { @@ -2125,7 +2158,7 @@ bool8 Shade_Finish(void) } //------------------------------------------------------------------------------ -// Weather 14 +// Bubbles //------------------------------------------------------------------------------ const u8 gUnknown_0839AC68[] = {40, 90, 60, 90, 2, 60, 40, 30}; -- cgit v1.2.3 From 1fe52085606ccd9258eea5a037c43b30fc04d7c5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 1 Apr 2019 12:05:58 -0400 Subject: through sub_801A02C --- src/union_room_player_avatar.c | 462 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 462 insertions(+) create mode 100644 src/union_room_player_avatar.c (limited to 'src') diff --git a/src/union_room_player_avatar.c b/src/union_room_player_avatar.c new file mode 100644 index 000000000..298ad04c7 --- /dev/null +++ b/src/union_room_player_avatar.c @@ -0,0 +1,462 @@ +#include "global.h" +#include "constants/flags.h" +#include "constants/event_object_movement_constants.h" +#include "event_data.h" +#include "event_object_movement.h" +#include "script.h" +#include "field_player_avatar.h" +#include "fieldmap.h" +#include "union_room.h" +#include "task.h" + +EWRAM_DATA struct UnkStruct_8019BA8 * gUnknown_02022C64 = NULL; +EWRAM_DATA u32 gUnknown_02022C68 = 0; + +u8 sub_8019DF4(void); +bool32 sub_8019F8C(u32 playerIdx, u32 arg1); +void sub_801A3B0(u32 arg0, u32 arg1, u8 arg2); + +ALIGNED(4) const u8 gUnknown_082F072C[][10] = { + {0x21, 0x2c, 0x1f, 0x23, 0x25, 0x24, 0x41, 0x42}, + {0x22, 0x28, 0x20, 0x2f, 0x2f, 0x0e, 0x14, 0x2d} +}; + +const s16 gUnknown_082F0740[][2] = { + {0x4, 0x6}, + {0xd, 0x8}, + {0xa, 0x6}, + {0x1, 0x8}, + {0xd, 0x4}, + {0x7, 0x4}, + {0x1, 0x4}, + {0x7, 0x8} +}; + +const s8 gUnknown_082F0760[][2] = { + { 0, 0}, + { 1, 0}, + { 0, -1}, + {-1, 0}, + { 0, 1} +}; + +const u8 gUnknown_082F076A[] = { + 0x00, 0x02, 0x01, 0x04, 0x03 +}; + +const u8 gUnknown_082F076F[] = { + 0x01, 0x03, 0x01, 0x04, 0x02 +}; + +const u8 gUnknown_082F0774[] = { + 0x09, 0x08, 0x07, 0x02, 0x06, 0x05, 0x04, 0x03, + 0xbf, 0x02, 0xc0, 0x02, 0xc1, 0x02, 0xc2, 0x02, + 0xc3, 0x02, 0xc4, 0x02, 0xc5, 0x02, 0xc6, 0x02 +}; + +const u8 gUnknown_082F078C[2] = { + MOVEMENT_ACTION_FLY_UP, + MOVEMENT_ACTION_STEP_END +}; + +const u8 gUnknown_082F078E[2] = { + MOVEMENT_ACTION_FLY_DOWN, + MOVEMENT_ACTION_STEP_END +}; + +bool32 is_walking_or_running(void) +{ + if (gPlayerAvatar.tileTransitionState == 2 || gPlayerAvatar.tileTransitionState == 0) + { + return TRUE; + } + else + { + return FALSE; + } +} + +u8 sub_8019978(u32 a0, u32 a1) +{ + return gUnknown_082F072C[a0][a1 % 8]; +} + +void sub_8019990(u32 a0, u32 a1, s32 * a2, s32 * a3) +{ + *a2 = gUnknown_082F0740[a0][0] + gUnknown_082F0760[a1][0] + 7; + *a3 = gUnknown_082F0740[a0][1] + gUnknown_082F0760[a1][1] + 7; +} + +bool32 sub_80199E0(u32 a0, u32 a1, s32 a2, s32 a3) +{ + if (gUnknown_082F0740[a0][0] + gUnknown_082F0760[a1][0] + 7 != a2) + { + return FALSE; + } + else if (gUnknown_082F0740[a0][1] + gUnknown_082F0760[a1][1] + 7 != a3) + { + return FALSE; + } + else + { + return TRUE; + } +} + +bool32 IsUnionRoomPlayerHidden(u32 player_idx) +{ + return FlagGet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); +} + +void HideUnionRoomPlayer(u32 player_idx) +{ + FlagSet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); +} + +void ShowUnionRoomPlayer(u32 player_idx) +{ + FlagClear(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); +} + +void SetUnionRoomPlayerGfx(u32 playerIdx, u32 gfxId) +{ + VarSet(VAR_OBJ_GFX_ID_0 + playerIdx, gfxId); +} + +void CreateUnionRoomPlayerEventObject(u32 playerIdx) +{ + show_sprite(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); +} + +void RemoveUnionRoomPlayerEventObject(u32 playerIdx) +{ + RemoveEventObjectByLocalIdAndMap(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); +} + +bool32 SetUnionRoomPlayerEnterExitMovement(u32 playerIdx, const u8 * movement) +{ + u8 objectId; + struct EventObject * object; + if (TryGetEventObjectIdByLocalIdAndMap(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectId)) + { + return FALSE; + } + object = &gEventObjects[objectId]; + if (EventObjectIsMovementOverridden(object)) + { + return FALSE; + } + if (EventObjectSetHeldMovement(object, *movement)) + { + return FALSE; + } + return TRUE; +} + +bool32 sub_8019B3C(u32 playerIdx) +{ + u8 objectId; + struct EventObject * object; + if (TryGetEventObjectIdByLocalIdAndMap(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectId)) + { + return TRUE; + } + object = &gEventObjects[objectId]; + if (!EventObjectClearHeldMovementIfFinished(object)) + { + return FALSE; + } + if (!ScriptContext2_IsEnabled()) + { + UnfreezeEventObject(object); + } + else + { + FreezeEventObject(object); + } + return TRUE; +} + +u8 sub_8019BA8(struct UnkStruct_8019BA8 * ptr) +{ + s32 i; + + gUnknown_02022C68 = 0; + gUnknown_02022C64 = ptr; + for (i = 0; i < 8; i++) + { + ptr[i].field_0 = 0; + ptr[i].field_1 = 0; + ptr[i].field_2 = 0; + ptr[i].field_3 = 0; + } + return sub_8019DF4(); +} + +bool32 sub_8019BDC(s8 * a0, u32 playerIdx, struct UnkStruct_8019BA8 * ptr) +{ + switch (*a0) + { + case 0: + if (SetUnionRoomPlayerEnterExitMovement(playerIdx, gUnknown_082F078C) == TRUE) + { + HideUnionRoomPlayer(playerIdx); + (*a0)++; + } + break; + case 1: + if (sub_8019B3C(playerIdx)) + { + RemoveUnionRoomPlayerEventObject(playerIdx); + HideUnionRoomPlayer(playerIdx); + *a0 = 0; + return TRUE; + } + break; + } + return FALSE; +} + +bool32 sub_8019C38(s8 * a0, u32 playerIdx, struct UnkStruct_8019BA8 * ptr) +{ + s16 x, y; + + switch (*a0) + { + case 0: + if (!is_walking_or_running()) + { + break; + } + PlayerGetDestCoords(&x, &y); + if (sub_80199E0(playerIdx, 0, x, y) == 1) + { + break; + } + player_get_pos_including_state_based_drift(&x, &y); + if (sub_80199E0(playerIdx, 0, x, y) == 1) + { + break; + } + SetUnionRoomPlayerGfx(playerIdx, ptr->field_1); + CreateUnionRoomPlayerEventObject(playerIdx); + ShowUnionRoomPlayer(playerIdx); + (*a0)++; + // fallthrough + case 3: // incorrect? + if (SetUnionRoomPlayerEnterExitMovement(playerIdx, gUnknown_082F078E) == 1) + { + (*a0)++; + } + break; + case 2: + if (sub_8019B3C(playerIdx)) + { + *a0 = 0; + return TRUE; + } + break; + } + return FALSE; +} + +bool32 sub_8019CF0(u32 playerIdx, u32 a1, u32 a2) +{ + struct UnkStruct_8019BA8 * ptr = &gUnknown_02022C64[playerIdx]; + ptr->field_3 = 1; + ptr->field_1 = sub_8019978(a1, a2); + if (ptr->field_0 == 0) + { + return TRUE; + } + else + { + return FALSE; + } +} + +bool32 sub_8019D20(u32 playerIdx) +{ + struct UnkStruct_8019BA8 * ptr = &gUnknown_02022C64[playerIdx]; + ptr->field_3 = 2; + if (ptr->field_0 == 1) + { + return TRUE; + } + else + { + return FALSE; + } +} + +void sub_8019D44(u32 playerIdx, struct UnkStruct_8019BA8 * ptr) +{ + switch (ptr->field_0) + { + case 0: + if (ptr->field_3 == 1) + { + ptr->field_0 = 2; + ptr->field_2 = 0; + } + else + { + break; + } + // fallthrough + case 2: + if (!sub_8019F8C(playerIdx, 0) && ptr->field_3 == 2) + { + ptr->field_0 = 0; + ptr->field_2 = 0; + RemoveUnionRoomPlayerEventObject(playerIdx); + HideUnionRoomPlayer(playerIdx); + } + else if (sub_8019C38(&ptr->field_2, playerIdx, ptr) == 1) + { + ptr->field_0 = 1; + } + break; + case 1: + if (ptr->field_3 == 2) + { + ptr->field_0 = 3; + ptr->field_2 = 0; + } + else + { + break; + } + // fallthrough + case 3: + if (sub_8019BDC(&ptr->field_2, playerIdx, ptr) == 1) + { + ptr->field_0 = 0; + } + break; + } + ptr->field_3 = 0; +} + +void sub_8019DD0(u8 taskId) +{ + s32 i; + for (i = 0; i < 8; i++) + { + sub_8019D44(i, &gUnknown_02022C64[i]); + } +} + +u8 sub_8019DF4(void) +{ + if (FuncIsActiveTask(sub_8019DD0) == 1) + { + return NUM_TASKS; + } + else + { + return CreateTask(sub_8019DD0, 5); + } +} + +void sub_8019E20(void) +{ + u8 taskId = FindTaskIdByFunc(sub_8019DD0); + if (taskId < NUM_TASKS) + { + DestroyTask(taskId); + } +} + +void sub_8019E3C(void) +{ + s32 i; + for (i = 0; i < 8; i++) + { + if (!IsUnionRoomPlayerHidden(i)) + { + RemoveUnionRoomPlayerEventObject(i); + HideUnionRoomPlayer(i); + } + } + gUnknown_02022C64 = NULL; + sub_8019E20(); +} + +void sub_8019E70(u8 * sp8, s32 r9) +{ + s32 r7; + + for (r7 = 0; r7 < 5; r7++) + { + s32 r5 = 5 * r9 + r7; + sp8[r5] = sprite_new(0x41, r5 - 0x38, gUnknown_082F0740[r9][0] + gUnknown_082F0760[r7][0], gUnknown_082F0740[r9][1] + gUnknown_082F0760[r7][1], 3, 1); + sub_8097C44(r5 - 0x38, TRUE); + } +} + +void sub_8019F04(u8 * r5) +{ + s32 i; + for (i = 0; i < 40; i++) + { + DestroySprite(&gSprites[r5[i]]); + } +} + +void sub_8019F2C(void) +{ + s32 i, j, x, y; + for (i = 0; i < 8; i++) + { + for (j = 0; j < 5; j++) + { + sub_8019990(i, j, &x, &y); + sub_8088B94(x, y, 0); + } + } +} + +u8 sub_8019F64(u32 r1, u32 unused, struct UnkLinkRfuStruct_02022B14 * r2) +{ + if (r1 != 0) + { + return gUnknown_082F076F[r1]; + } + else if (r2->unk_0a_0 == 0x45) + { + return 1; + } + else + { + return 4; + } +} + +u32 sub_8019F8C(u32 a0, u32 a1) +{ + return sub_8097C8C(5 * a0 + a1 - 0x38); +} + +void sub_8019FA4(u32 r5, u32 r6, u8 r8, struct UnkLinkRfuStruct_02022B14 * r9) +{ + s32 x, y; + s32 r7 = 5 * r5 + r6; + if (sub_8019F8C(r5, r6) == 1) + { + sub_8097C44(r7 - 0x38, FALSE); + sub_8097CC4(r7 - 0x38, 1); + } + sub_8097BB4(r7 - 0x38, r8); + sub_801A3B0(r6, r5, sub_8019F64(r6, r5, r9)); + sub_8019990(r5, r6, &x, &y); + sub_8088B94(x, y, 1); +} + +void sub_801A02C(u32 a0, u32 a1) +{ + s32 x, y; + sub_8097CC4(5 * a0 + a1 - 0x38, 2); + sub_8019990(a0, a1, &x, &y); + sub_8088B94(x, y, 0); +} -- cgit v1.2.3 From ce89cf6f75a94e08d02cc8c60147469c91ea99c9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 1 Apr 2019 14:09:56 -0400 Subject: through sub_801A3D0 --- src/union_room_player_avatar.c | 151 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 150 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/union_room_player_avatar.c b/src/union_room_player_avatar.c index 298ad04c7..e7af24b38 100644 --- a/src/union_room_player_avatar.c +++ b/src/union_room_player_avatar.c @@ -14,7 +14,7 @@ EWRAM_DATA u32 gUnknown_02022C68 = 0; u8 sub_8019DF4(void); bool32 sub_8019F8C(u32 playerIdx, u32 arg1); -void sub_801A3B0(u32 arg0, u32 arg1, u8 arg2); +void sub_801A3B0(s32 arg0, s32 arg1, u8 arg2); ALIGNED(4) const u8 gUnknown_082F072C[][10] = { {0x21, 0x2c, 0x1f, 0x23, 0x25, 0x24, 0x41, 0x42}, @@ -460,3 +460,152 @@ void sub_801A02C(u32 a0, u32 a1) sub_8019990(a0, a1, &x, &y); sub_8088B94(x, y, 0); } + +void sub_801A064(u32 r7, struct UnkLinkRfuStruct_02022B14 * r8) +{ + s16 x, y, x2, y2; + s32 i; + + PlayerGetDestCoords(&x, &y); + player_get_pos_including_state_based_drift(&x2, &y2); + if (sub_8097C8C(5 * r7 - 0x38) == 1) + { + if (sub_80199E0(r7, 0, x, y) == 1 || sub_80199E0(r7, 0, x2, y2) == 1) + { + return; + } + sub_8019FA4(r7, 0, sub_8019978(r8->playerGender, r8->unk_00.playerTrainerId[0]), r8); + } + for (i = 1; i < 5; i++) + { + if (r8->unk_04[i - 1] == 0) + { + sub_801A02C(r7, i); + } + else if (sub_80199E0(r7, i, x, y) == 0 && sub_80199E0(r7, i, x2, y2) == 0) + { + sub_8019FA4(r7, i, sub_8019978((r8->unk_04[i - 1] >> 3) & 1, r8->unk_04[i - 1] & 7), r8); + } + } +} + +void sub_801A16C(u32 r5, struct UnkLinkRfuStruct_02022B14 * r4) +{ + u32 i; + switch (r4->unk_0a_0) + { + case 0x40: + case 0x54: + sub_8019CF0(r5, r4->playerGender, r4->unk_00.playerTrainerId[0]); + for (i = 0; i < 5; i++) + { + sub_801A02C(r5, i); + } + break; + case 0x41: + case 0x44: + case 0x45: + case 0x48: + case 0x51: + case 0x52: + case 0x53: + sub_8019D20(r5); + sub_801A064(r5, r4); + break; + } +} + +void sub_801A214(u32 r5, struct UnkLinkRfuStruct_02022B14 * unused) +{ + s32 i; + sub_8019D20(r5); + for (i = 0; i < 5; i++) + { + sub_801A02C(r5, i); + } +} + +void sub_801A234(struct UnkStruct_URoom *r0) +{ + s32 i; + struct UnkStruct_x20 * r4; + gUnknown_02022C68 = 0; + for (i = 0, r4 = r0->field_0->arr; i < 8; i++) + { + if (r4[i].field_1A_0 == 1) + { + sub_801A16C(i, &r4[i].unk.field_0); + } + else if (r4[i].field_1A_0 == 2) + { + sub_801A214(i, &r4[i].unk.field_0); + } + } +} + +void sub_801A274(void) +{ + gUnknown_02022C68 = 300; +} + +void sub_801A284(struct UnkStruct_URoom *r2) +{ + if (++gUnknown_02022C68 > 300) + { + sub_801A234(r2); + } +} + +bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3) +{ + s16 x, y; + s32 i, j; + struct UnkStruct_x20 * r4; + if (!is_walking_or_running()) + { + return FALSE; + } + GetXYCoordsOneStepInFrontOfPlayer(&x, &y); + for (i = 0, r4 = arg0->arr; i < 8; i++) + { + for (j = 0; j < 5; j++) + { + s32 r3 = 5 * i + j; + if (x != gUnknown_082F0740[i][0] + gUnknown_082F0760[j][0] + 7) + { + continue; + } + if (y != gUnknown_082F0740[i][1] + gUnknown_082F0760[j][1] + 7) + { + continue; + } + if (sub_8097C8C(r3 - 0x38) != 0) + { + continue; + } + if (sub_8097D9C(r3 - 0x38) != 0) + { + continue; + } + if (r4[i].field_1A_0 != 1) + { + continue; + } + sub_801A3B0(j, i, gUnknown_082F076A[GetPlayerFacingDirection()]); + *arg1 = j; + *arg2 = i; + return TRUE; + } + } + return FALSE; +} + +void sub_801A3B0(s32 arg0, s32 arg1, u8 arg2) +{ + sub_8097B78(5 * arg1 - 0x38 + arg0, arg2); +} + +void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2) +{ + return sub_801A3B0(arg0, arg1, sub_8019F64(arg0, arg1, &arg2->arr[arg1].unk.field_0)); +} -- cgit v1.2.3 From 9f1d1219cec0643bb6e58cb2cdba07ca6f8587ed Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 1 Apr 2019 14:20:34 -0400 Subject: create header and fix prototypes --- src/union_room.c | 9 ++--- src/union_room_player_avatar.c | 80 +++++++++++++++++++++--------------------- 2 files changed, 42 insertions(+), 47 deletions(-) (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index 8aeaaf6fb..ad33112e4 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -46,6 +46,7 @@ #include "union_room_chat.h" #include "berry_crush.h" #include "mystery_gift.h" +#include "union_room_player_avatar.h" EWRAM_DATA u8 gUnknown_02022C20[12] = {}; EWRAM_DATA u8 gUnknown_02022C2C = 0; @@ -106,15 +107,12 @@ s8 mevent_message_print_and_prompt_yes_no(u8 *textState, u8 *arg1, u8 arg2, cons bool32 sub_8016F1C(struct UnkLinkRfuStruct_02022B14 *arg0, s16 arg1); u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2); void sub_8019F2C(void); -void sub_8019E70(u8 *arg0, s32 arg1); bool32 sub_80180A0(u32 monId, struct TradeUnkStruct *arg1); void sub_80180E8(u32 monId, struct TradeUnkStruct *arg1); -bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3); void sub_80181CC(void); bool32 sub_8017940(void); u8 sub_8016B00(void); void sub_801A274(struct UnkStruct_URoom *arg0); -void sub_801A284(struct UnkStruct_URoom *arg0); bool32 sub_8017FD8(struct UnkStruct_URoom *arg0); void sub_801689C(struct UnkStruct_URoom *arg0); u8 sub_80181DC(struct UnkStruct_URoom *arg0); @@ -123,7 +121,6 @@ bool32 sub_801704C(void); s32 sub_8017CF8(s32 arg1, struct UnkStruct_Main0 *arg0); s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender); void sub_801818C(bool32 arg0); -void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2); s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate); s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6); s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1); @@ -133,12 +130,10 @@ void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2); void sub_8017D9C(u8 *dst, s32 arg1, u32 playerGender); u32 sub_80179AC(struct UnkStruct_x20 *arg0); void sub_8017E00(u8 *dst, u8 arg1); -void sub_8019F04(u8 *spriteIds); -void sub_8019E3C(void); void sub_80173B0(void); s32 sub_8017D04(u32 type, u32 species); bool32 sub_8017020(const u8 *src); -void sub_8019BA8(void *); +u8 sub_8019BA8(struct UnkStruct_8019BA8 * ); s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3); void sub_801697C(u8 taskId); bool8 sub_8017630(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1); diff --git a/src/union_room_player_avatar.c b/src/union_room_player_avatar.c index e7af24b38..61be86a37 100644 --- a/src/union_room_player_avatar.c +++ b/src/union_room_player_avatar.c @@ -12,16 +12,16 @@ EWRAM_DATA struct UnkStruct_8019BA8 * gUnknown_02022C64 = NULL; EWRAM_DATA u32 gUnknown_02022C68 = 0; -u8 sub_8019DF4(void); -bool32 sub_8019F8C(u32 playerIdx, u32 arg1); -void sub_801A3B0(s32 arg0, s32 arg1, u8 arg2); +static u8 sub_8019DF4(void); +static u32 sub_8019F8C(u32 playerIdx, u32 arg1); +static void sub_801A3B0(s32 arg0, s32 arg1, u8 arg2); ALIGNED(4) const u8 gUnknown_082F072C[][10] = { {0x21, 0x2c, 0x1f, 0x23, 0x25, 0x24, 0x41, 0x42}, {0x22, 0x28, 0x20, 0x2f, 0x2f, 0x0e, 0x14, 0x2d} }; -const s16 gUnknown_082F0740[][2] = { +static const s16 gUnknown_082F0740[][2] = { {0x4, 0x6}, {0xd, 0x8}, {0xa, 0x6}, @@ -32,7 +32,7 @@ const s16 gUnknown_082F0740[][2] = { {0x7, 0x8} }; -const s8 gUnknown_082F0760[][2] = { +static const s8 gUnknown_082F0760[][2] = { { 0, 0}, { 1, 0}, { 0, -1}, @@ -40,31 +40,31 @@ const s8 gUnknown_082F0760[][2] = { { 0, 1} }; -const u8 gUnknown_082F076A[] = { +static const u8 gUnknown_082F076A[] = { 0x00, 0x02, 0x01, 0x04, 0x03 }; -const u8 gUnknown_082F076F[] = { +static const u8 gUnknown_082F076F[] = { 0x01, 0x03, 0x01, 0x04, 0x02 }; -const u8 gUnknown_082F0774[] = { +static const u8 gUnknown_082F0774[] = { 0x09, 0x08, 0x07, 0x02, 0x06, 0x05, 0x04, 0x03, 0xbf, 0x02, 0xc0, 0x02, 0xc1, 0x02, 0xc2, 0x02, 0xc3, 0x02, 0xc4, 0x02, 0xc5, 0x02, 0xc6, 0x02 }; -const u8 gUnknown_082F078C[2] = { +static const u8 gUnknown_082F078C[2] = { MOVEMENT_ACTION_FLY_UP, MOVEMENT_ACTION_STEP_END }; -const u8 gUnknown_082F078E[2] = { +static const u8 gUnknown_082F078E[2] = { MOVEMENT_ACTION_FLY_DOWN, MOVEMENT_ACTION_STEP_END }; -bool32 is_walking_or_running(void) +static bool32 is_walking_or_running(void) { if (gPlayerAvatar.tileTransitionState == 2 || gPlayerAvatar.tileTransitionState == 0) { @@ -76,18 +76,18 @@ bool32 is_walking_or_running(void) } } -u8 sub_8019978(u32 a0, u32 a1) +static u8 sub_8019978(u32 a0, u32 a1) { return gUnknown_082F072C[a0][a1 % 8]; } -void sub_8019990(u32 a0, u32 a1, s32 * a2, s32 * a3) +static void sub_8019990(u32 a0, u32 a1, s32 * a2, s32 * a3) { *a2 = gUnknown_082F0740[a0][0] + gUnknown_082F0760[a1][0] + 7; *a3 = gUnknown_082F0740[a0][1] + gUnknown_082F0760[a1][1] + 7; } -bool32 sub_80199E0(u32 a0, u32 a1, s32 a2, s32 a3) +static bool32 sub_80199E0(u32 a0, u32 a1, s32 a2, s32 a3) { if (gUnknown_082F0740[a0][0] + gUnknown_082F0760[a1][0] + 7 != a2) { @@ -103,37 +103,37 @@ bool32 sub_80199E0(u32 a0, u32 a1, s32 a2, s32 a3) } } -bool32 IsUnionRoomPlayerHidden(u32 player_idx) +static bool32 IsUnionRoomPlayerHidden(u32 player_idx) { return FlagGet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); } -void HideUnionRoomPlayer(u32 player_idx) +static void HideUnionRoomPlayer(u32 player_idx) { FlagSet(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); } -void ShowUnionRoomPlayer(u32 player_idx) +static void ShowUnionRoomPlayer(u32 player_idx) { FlagClear(FLAG_HIDE_UNION_ROOM_PLAYER_1 + player_idx); } -void SetUnionRoomPlayerGfx(u32 playerIdx, u32 gfxId) +static void SetUnionRoomPlayerGfx(u32 playerIdx, u32 gfxId) { VarSet(VAR_OBJ_GFX_ID_0 + playerIdx, gfxId); } -void CreateUnionRoomPlayerEventObject(u32 playerIdx) +static void CreateUnionRoomPlayerEventObject(u32 playerIdx) { show_sprite(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); } -void RemoveUnionRoomPlayerEventObject(u32 playerIdx) +static void RemoveUnionRoomPlayerEventObject(u32 playerIdx) { RemoveEventObjectByLocalIdAndMap(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); } -bool32 SetUnionRoomPlayerEnterExitMovement(u32 playerIdx, const u8 * movement) +static bool32 SetUnionRoomPlayerEnterExitMovement(u32 playerIdx, const u8 * movement) { u8 objectId; struct EventObject * object; @@ -153,7 +153,7 @@ bool32 SetUnionRoomPlayerEnterExitMovement(u32 playerIdx, const u8 * movement) return TRUE; } -bool32 sub_8019B3C(u32 playerIdx) +static bool32 sub_8019B3C(u32 playerIdx) { u8 objectId; struct EventObject * object; @@ -193,7 +193,7 @@ u8 sub_8019BA8(struct UnkStruct_8019BA8 * ptr) return sub_8019DF4(); } -bool32 sub_8019BDC(s8 * a0, u32 playerIdx, struct UnkStruct_8019BA8 * ptr) +static bool32 sub_8019BDC(s8 * a0, u32 playerIdx, struct UnkStruct_8019BA8 * ptr) { switch (*a0) { @@ -217,7 +217,7 @@ bool32 sub_8019BDC(s8 * a0, u32 playerIdx, struct UnkStruct_8019BA8 * ptr) return FALSE; } -bool32 sub_8019C38(s8 * a0, u32 playerIdx, struct UnkStruct_8019BA8 * ptr) +static bool32 sub_8019C38(s8 * a0, u32 playerIdx, struct UnkStruct_8019BA8 * ptr) { s16 x, y; @@ -260,7 +260,7 @@ bool32 sub_8019C38(s8 * a0, u32 playerIdx, struct UnkStruct_8019BA8 * ptr) return FALSE; } -bool32 sub_8019CF0(u32 playerIdx, u32 a1, u32 a2) +static bool32 sub_8019CF0(u32 playerIdx, u32 a1, u32 a2) { struct UnkStruct_8019BA8 * ptr = &gUnknown_02022C64[playerIdx]; ptr->field_3 = 1; @@ -275,7 +275,7 @@ bool32 sub_8019CF0(u32 playerIdx, u32 a1, u32 a2) } } -bool32 sub_8019D20(u32 playerIdx) +static bool32 sub_8019D20(u32 playerIdx) { struct UnkStruct_8019BA8 * ptr = &gUnknown_02022C64[playerIdx]; ptr->field_3 = 2; @@ -289,7 +289,7 @@ bool32 sub_8019D20(u32 playerIdx) } } -void sub_8019D44(u32 playerIdx, struct UnkStruct_8019BA8 * ptr) +static void sub_8019D44(u32 playerIdx, struct UnkStruct_8019BA8 * ptr) { switch (ptr->field_0) { @@ -338,7 +338,7 @@ void sub_8019D44(u32 playerIdx, struct UnkStruct_8019BA8 * ptr) ptr->field_3 = 0; } -void sub_8019DD0(u8 taskId) +static void sub_8019DD0(u8 taskId) { s32 i; for (i = 0; i < 8; i++) @@ -347,7 +347,7 @@ void sub_8019DD0(u8 taskId) } } -u8 sub_8019DF4(void) +static u8 sub_8019DF4(void) { if (FuncIsActiveTask(sub_8019DD0) == 1) { @@ -359,7 +359,7 @@ u8 sub_8019DF4(void) } } -void sub_8019E20(void) +static void sub_8019E20(void) { u8 taskId = FindTaskIdByFunc(sub_8019DD0); if (taskId < NUM_TASKS) @@ -417,7 +417,7 @@ void sub_8019F2C(void) } } -u8 sub_8019F64(u32 r1, u32 unused, struct UnkLinkRfuStruct_02022B14 * r2) +static u8 sub_8019F64(u32 r1, u32 unused, struct UnkLinkRfuStruct_02022B14 * r2) { if (r1 != 0) { @@ -433,12 +433,12 @@ u8 sub_8019F64(u32 r1, u32 unused, struct UnkLinkRfuStruct_02022B14 * r2) } } -u32 sub_8019F8C(u32 a0, u32 a1) +static u32 sub_8019F8C(u32 a0, u32 a1) { return sub_8097C8C(5 * a0 + a1 - 0x38); } -void sub_8019FA4(u32 r5, u32 r6, u8 r8, struct UnkLinkRfuStruct_02022B14 * r9) +static void sub_8019FA4(u32 r5, u32 r6, u8 r8, struct UnkLinkRfuStruct_02022B14 * r9) { s32 x, y; s32 r7 = 5 * r5 + r6; @@ -453,7 +453,7 @@ void sub_8019FA4(u32 r5, u32 r6, u8 r8, struct UnkLinkRfuStruct_02022B14 * r9) sub_8088B94(x, y, 1); } -void sub_801A02C(u32 a0, u32 a1) +static void sub_801A02C(u32 a0, u32 a1) { s32 x, y; sub_8097CC4(5 * a0 + a1 - 0x38, 2); @@ -461,7 +461,7 @@ void sub_801A02C(u32 a0, u32 a1) sub_8088B94(x, y, 0); } -void sub_801A064(u32 r7, struct UnkLinkRfuStruct_02022B14 * r8) +static void sub_801A064(u32 r7, struct UnkLinkRfuStruct_02022B14 * r8) { s16 x, y, x2, y2; s32 i; @@ -489,7 +489,7 @@ void sub_801A064(u32 r7, struct UnkLinkRfuStruct_02022B14 * r8) } } -void sub_801A16C(u32 r5, struct UnkLinkRfuStruct_02022B14 * r4) +static void sub_801A16C(u32 r5, struct UnkLinkRfuStruct_02022B14 * r4) { u32 i; switch (r4->unk_0a_0) @@ -515,7 +515,7 @@ void sub_801A16C(u32 r5, struct UnkLinkRfuStruct_02022B14 * r4) } } -void sub_801A214(u32 r5, struct UnkLinkRfuStruct_02022B14 * unused) +static void sub_801A214(u32 r5, struct UnkLinkRfuStruct_02022B14 * unused) { s32 i; sub_8019D20(r5); @@ -525,7 +525,7 @@ void sub_801A214(u32 r5, struct UnkLinkRfuStruct_02022B14 * unused) } } -void sub_801A234(struct UnkStruct_URoom *r0) +static void sub_801A234(struct UnkStruct_URoom *r0) { s32 i; struct UnkStruct_x20 * r4; @@ -543,7 +543,7 @@ void sub_801A234(struct UnkStruct_URoom *r0) } } -void sub_801A274(void) +void sub_801A274(struct UnkStruct_URoom *unused) { gUnknown_02022C68 = 300; } @@ -600,7 +600,7 @@ bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3) return FALSE; } -void sub_801A3B0(s32 arg0, s32 arg1, u8 arg2) +static void sub_801A3B0(s32 arg0, s32 arg1, u8 arg2) { sub_8097B78(5 * arg1 - 0x38 + arg0, arg2); } -- cgit v1.2.3 From c429e6d69c3df23687e2336039b676b8927c238e Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 1 Apr 2019 20:30:41 -0400 Subject: Move gPlayerFacingPosition out of sym_ewram.txt (#617) * Move gPlayerFacingPosition out of sym_ewram.txt * Fix tabs in sym_ewram.txt * Remove redundant faraway island extern --- src/fldeff_misc.c | 2 +- src/fldeff_rocksmash.c | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) (limited to 'src') diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index 5d1920aac..efde43b76 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -23,7 +23,7 @@ #include "constants/songs.h" #include "constants/vars.h" -extern struct MapPosition gPlayerFacingPosition; +EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0}; static void sub_80F9C90(u8); static void sub_80F9DFC(u8); diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index 86df8e943..a9077f2ff 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -27,9 +27,6 @@ static void sub_813561C(u8 taskId); static void sub_81356C4(void); static void sub_8135714(void); -// extern RAM loc -extern struct MapPosition gPlayerFacingPosition; - // text bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) { -- cgit v1.2.3 From 35505c7f5b421b7589d1d761dcbd41a1c40affb6 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 1 Apr 2019 20:04:23 -0500 Subject: Document somre more weather effects --- src/event_object_movement.c | 49 ++- src/field_effect_helpers.c | 2 +- src/field_weather.c | 2 +- src/field_weather_effect.c | 785 +++++++++++++++++++++++--------------------- src/overworld.c | 2 +- 5 files changed, 438 insertions(+), 402 deletions(-) (limited to 'src') diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 6a3527bc1..45b721f56 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1949,7 +1949,7 @@ void EventObjectSetGraphicsId(struct EventObject *eventObject, u8 graphicsId) sprite->oam.paletteNum = paletteSlot; eventObject->inanimate = graphicsInfo->inanimate; eventObject->graphicsId = graphicsId; - sub_8093038(eventObject->currentCoords.x, eventObject->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y); + SetSpritePosToMapCoords(eventObject->currentCoords.x, eventObject->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y); sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); sprite->pos1.x += 8; @@ -2253,7 +2253,7 @@ void sub_808EB08(struct EventObject *eventObject, s16 x, s16 y) sprite = &gSprites[eventObject->spriteId]; graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId); SetEventObjectCoords(eventObject, x, y); - sub_8093038(eventObject->currentCoords.x, eventObject->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y); + SetSpritePosToMapCoords(eventObject->currentCoords.x, eventObject->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y); sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); sprite->pos1.x += 8; @@ -5024,44 +5024,37 @@ static void MoveCoordsInDirection(u32 dir, s16 *x, s16 *y, s16 deltaX, s16 delta *y -= dy2; } -void sub_8092FF0(s16 x, s16 y, s16 *dest_x, s16 *dest_y) +void sub_8092FF0(s16 x, s16 y, s16 *destX, s16 *destY) { - *dest_x = (x - gSaveBlock1Ptr->pos.x) << 4; - *dest_y = (y - gSaveBlock1Ptr->pos.y) << 4; - *dest_x -= gTotalCameraPixelOffsetX; - *dest_y -= gTotalCameraPixelOffsetY; + *destX = (x - gSaveBlock1Ptr->pos.x) << 4; + *destY = (y - gSaveBlock1Ptr->pos.y) << 4; + *destX -= gTotalCameraPixelOffsetX; + *destY -= gTotalCameraPixelOffsetY; } -void sub_8093038(s16 x, s16 y, s16 *dest_x, s16 *dest_y) +void SetSpritePosToMapCoords(s16 mapX, s16 mapY, s16 *destX, s16 *destY) { - s16 dx; - s16 dy; - - dx = -gTotalCameraPixelOffsetX - gFieldCamera.x; - dy = -gTotalCameraPixelOffsetY - gFieldCamera.y; + s16 dx = -gTotalCameraPixelOffsetX - gFieldCamera.x; + s16 dy = -gTotalCameraPixelOffsetY - gFieldCamera.y; if (gFieldCamera.x > 0) - { - dx += 0x10; - } + dx += 1 << 4; + if (gFieldCamera.x < 0) - { - dx -= 0x10; - } + dx -= 1 << 4; + if (gFieldCamera.y > 0) - { - dy += 0x10; - } + dy += 1 << 4; + if (gFieldCamera.y < 0) - { - dy -= 0x10; - } - *dest_x = ((x - gSaveBlock1Ptr->pos.x) << 4) + dx; - *dest_y = ((y - gSaveBlock1Ptr->pos.y) << 4) + dy; + dy -= 1 << 4; + + *destX = ((mapX - gSaveBlock1Ptr->pos.x) << 4) + dx; + *destY = ((mapY - gSaveBlock1Ptr->pos.y) << 4) + dy; } void sub_80930E0(s16 *x, s16 *y, s16 dx, s16 dy) { - sub_8093038(*x, *y, x, y); + SetSpritePosToMapCoords(*x, *y, x, y); *x += dx; *y += dy; } diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 3f75fbb84..c715da25d 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -191,7 +191,7 @@ void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y) sprite = &gSprites[spriteId]; if (sprite->invisible || sprite->data[0] != x || sprite->data[1] != y) { - sub_8093038(x, y, &x2, &y2); + SetSpritePosToMapCoords(x, y, &x2, &y2); sprite = &gSprites[spriteId]; sprite->pos1.x = x2 + 8; sprite->pos1.y = y2 + 8; diff --git a/src/field_weather.c b/src/field_weather.c index a2c40052b..346d30a38 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -91,7 +91,7 @@ static const struct WeatherCallbacks sWeatherFuncs[] = { {None_Init, None_Main, None_Init, None_Finish}, {Clouds_InitVars, Clouds_Main, Clouds_InitAll, Clouds_Finish}, - {Weather2_InitVars, Weather2_Main, Weather2_InitAll, Weather2_Finish}, + {Sunny_InitVars, Sunny_Main, Sunny_InitAll, Sunny_Finish}, {LightRain_InitVars, LightRain_Main, LightRain_InitAll, LightRain_Finish}, {Snow_InitVars, Snow_Main, Snow_InitAll, Snow_Finish}, {MedRain_InitVars, Rain_Main, MedRain_InitAll, Rain_Finish}, diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 95f80d061..0544710ad 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -33,9 +33,13 @@ const u8 gWeatherSandstormTiles[] = INCBIN_U8("graphics/weather/sandstorm.4bpp") // Clouds //------------------------------------------------------------------------------ -static void sub_80AC6B4(struct Sprite *); +static void CreateCloudSprites(void); +static void DestroyCloudSprites(void); +static void UpdateCloudSprite(struct Sprite *); -static const struct Coords16 gUnknown_0854FB50[] = +// The clouds are positioned on the map's grid. +// These coordinates are for the lower half of Route 120. +static const struct Coords16 sCloudSpriteMapCoords[] = { { 0, 66}, { 5, 73}, @@ -49,11 +53,11 @@ static const struct SpriteSheet sCloudSpriteSheet = .tag = 0x1200 }; -static const struct OamData gOamData_839A9DC = +static const struct OamData sCloudSpriteOamData = { .y = 0, .affineMode = 0, - .objMode = 1, + .objMode = ST_OAM_OBJ_BLEND, .mosaic = 0, .bpp = 0, .shape = SPRITE_SHAPE(64x64), @@ -66,26 +70,26 @@ static const struct OamData gOamData_839A9DC = .affineParam = 0, }; -static const union AnimCmd gSpriteAnim_839A9E4[] = +static const union AnimCmd sCloudSpriteAnimCmd[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; -static const union AnimCmd *const gSpriteAnimTable_839A9EC[] = +static const union AnimCmd *const sCloudSpriteAnimCmds[] = { - gSpriteAnim_839A9E4, + sCloudSpriteAnimCmd, }; static const struct SpriteTemplate sCloudSpriteTemplate = { - .tileTag = 4608, - .paletteTag = 4609, - .oam = &gOamData_839A9DC, - .anims = gSpriteAnimTable_839A9EC, + .tileTag = 0x1200, + .paletteTag = 0x1201, + .oam = &sCloudSpriteOamData, + .anims = sCloudSpriteAnimCmds, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AC6B4, + .callback = UpdateCloudSprite, }; void Clouds_InitVars(void) @@ -105,8 +109,6 @@ void Clouds_InitAll(void) Clouds_Main(); } -void CreateCloudSprites(void); - void Clouds_Main(void) { switch (gWeatherPtr->initStep) @@ -129,8 +131,6 @@ void Clouds_Main(void) } } -void sub_807E0A0(void); - bool8 Clouds_Finish(void) { switch (gWeatherPtr->finishStep) @@ -142,7 +142,7 @@ bool8 Clouds_Finish(void) case 1: if (Weather_UpdateBlend()) { - sub_807E0A0(); + DestroyCloudSprites(); gWeatherPtr->finishStep++; } return TRUE; @@ -150,49 +150,45 @@ bool8 Clouds_Finish(void) return FALSE; } -//------------------------------------------------------------------------------ -// Weather 2 -//------------------------------------------------------------------------------ - -void Weather2_InitVars(void) +void Sunny_InitVars(void) { gWeatherPtr->gammaTargetIndex = 0; gWeatherPtr->gammaStepDelay = 20; } -void Weather2_InitAll(void) +void Sunny_InitAll(void) { - Weather2_InitVars(); + Sunny_InitVars(); } -void Weather2_Main(void) +void Sunny_Main(void) { } -bool8 Weather2_Finish(void) +bool8 Sunny_Finish(void) { - return 0; + return FALSE; } -void CreateCloudSprites(void) +static void CreateCloudSprites(void) { u16 i; + u8 spriteId; + struct Sprite *sprite; if (gWeatherPtr->cloudSpritesCreated == TRUE) return; + LoadSpriteSheet(&sCloudSpriteSheet); LoadCustomWeatherSpritePalette(gUnknown_0854C290); - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_CLOUD_SPRITES; i++) { - u8 spriteId = CreateSprite(&sCloudSpriteTemplate, 0, 0, 0xFF); - + spriteId = CreateSprite(&sCloudSpriteTemplate, 0, 0, 0xFF); if (spriteId != MAX_SPRITES) { - struct Sprite *sprite; - gWeatherPtr->sprites.s1.cloudSprites[i] = &gSprites[spriteId]; sprite = gWeatherPtr->sprites.s1.cloudSprites[i]; - sub_8093038(gUnknown_0854FB50[i].x + 7, gUnknown_0854FB50[i].y + 7, &sprite->pos1.x, &sprite->pos1.y); + SetSpritePosToMapCoords(sCloudSpriteMapCoords[i].x + 7, sCloudSpriteMapCoords[i].y + 7, &sprite->pos1.x, &sprite->pos1.y); sprite->coordOffsetEnabled = TRUE; } else @@ -200,28 +196,32 @@ void CreateCloudSprites(void) gWeatherPtr->sprites.s1.cloudSprites[i] = NULL; } } + gWeatherPtr->cloudSpritesCreated = TRUE; } -void sub_807E0A0(void) +static void DestroyCloudSprites(void) { u16 i; - if (gWeatherPtr->cloudSpritesCreated == FALSE) + if (!gWeatherPtr->cloudSpritesCreated) return; - for (i = 0; i < 3; i++) + + for (i = 0; i < NUM_CLOUD_SPRITES; i++) { if (gWeatherPtr->sprites.s1.cloudSprites[i] != NULL) DestroySprite(gWeatherPtr->sprites.s1.cloudSprites[i]); } + FreeSpriteTilesByTag(0x1200); gWeatherPtr->cloudSpritesCreated = FALSE; } -static void sub_80AC6B4(struct Sprite *sprite) +static void UpdateCloudSprite(struct Sprite *sprite) { + // Move 1 pixel left every 2 frames. sprite->data[0] = (sprite->data[0] + 1) & 1; - if (sprite->data[0] != 0) + if (sprite->data[0]) sprite->pos1.x--; } @@ -437,7 +437,7 @@ static const union AnimCmd *const sRainSpriteAnimCmds[] = static const struct SpriteTemplate sRainSpriteTemplate = { .tileTag = 4614, - .paletteTag = 4608, + .paletteTag = 0x1200, .oam = &sRainSpriteOamData, .anims = sRainSpriteAnimCmds, .images = NULL, @@ -475,7 +475,7 @@ void LightRain_InitVars(void) gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleDelay = 8; gWeatherPtr->isHeavyRain = 0; - gWeatherPtr->maxRainSprites = 10; + gWeatherPtr->targetRainSpriteCount = 10; gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; SetRainStrengthFromSoundEffect(SE_T_KOAME); @@ -524,7 +524,7 @@ bool8 LightRain_Finish(void) } else { - gWeatherPtr->maxRainSprites = 0; + gWeatherPtr->targetRainSpriteCount = 0; gWeatherPtr->finishStep++; } // fall through @@ -714,13 +714,13 @@ static bool8 CreateRainSprite(void) static bool8 UpdateVisibleRainSprites(void) { - if (gWeatherPtr->curRainSpriteIndex == gWeatherPtr->maxRainSprites) + if (gWeatherPtr->curRainSpriteIndex == gWeatherPtr->targetRainSpriteCount) return FALSE; if (++gWeatherPtr->rainSpriteVisibleCounter > gWeatherPtr->rainSpriteVisibleDelay) { gWeatherPtr->rainSpriteVisibleCounter = 0; - if (gWeatherPtr->curRainSpriteIndex < gWeatherPtr->maxRainSprites) + if (gWeatherPtr->curRainSpriteIndex < gWeatherPtr->targetRainSpriteCount) { gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex++]->tActive = 1; } @@ -759,39 +759,38 @@ static void DestroyRainSprites(void) // Snow //------------------------------------------------------------------------------ +static void UpdateSnowflakeSprite(struct Sprite *); +static bool8 UpdateVisibleSnowflakeSprites(void); +static bool8 CreateSnowflakeSprite(void); +static bool8 DestroySnowflakeSprite(void); +static void InitSnowflakeSpriteMovement(struct Sprite *); + void Snow_InitVars(void) { gWeatherPtr->initStep = 0; gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; - gWeatherPtr->unknown_6E5 = 16; - gWeatherPtr->unknown_6E0 = 0; + gWeatherPtr->targetSnowflakeSpriteCount = 16; + gWeatherPtr->snowflakeVisibleCounter = 0; } -void Snow_Main(void); -void sub_807ED48(struct Sprite *); - void Snow_InitAll(void) { + u16 i; + Snow_InitVars(); while (gWeatherPtr->weatherGfxLoaded == FALSE) { - u16 i; - Snow_Main(); for (i = 0; i < gWeatherPtr->snowflakeSpriteCount; i++) - { - sub_807ED48(gWeatherPtr->sprites.s1.snowflakeSprites[i]); - } + UpdateSnowflakeSprite(gWeatherPtr->sprites.s1.snowflakeSprites[i]); } } -u8 snowflakes_progress(void); - void Snow_Main(void) { - if (gWeatherPtr->initStep == 0 && snowflakes_progress() == FALSE) + if (gWeatherPtr->initStep == 0 && !UpdateVisibleSnowflakeSprites()) { gWeatherPtr->weatherGfxLoaded = TRUE; gWeatherPtr->initStep++; @@ -803,44 +802,40 @@ bool8 Snow_Finish(void) switch (gWeatherPtr->finishStep) { case 0: - gWeatherPtr->unknown_6E5 = 0; - gWeatherPtr->unknown_6E0 = 0; + gWeatherPtr->targetSnowflakeSpriteCount = 0; + gWeatherPtr->snowflakeVisibleCounter = 0; gWeatherPtr->finishStep++; // fall through case 1: - if (snowflakes_progress() == FALSE) + if (!UpdateVisibleSnowflakeSprites()) { gWeatherPtr->finishStep++; return FALSE; } return TRUE; } + return FALSE; } -bool8 CreateSnowflakeSprite(void); -bool8 RemoveSnowflakeSprite(void); - -bool8 snowflakes_progress(void) +static bool8 UpdateVisibleSnowflakeSprites(void) { - if (gWeatherPtr->snowflakeSpriteCount == gWeatherPtr->unknown_6E5) + if (gWeatherPtr->snowflakeSpriteCount == gWeatherPtr->targetSnowflakeSpriteCount) return FALSE; - gWeatherPtr->unknown_6E0++; - if (gWeatherPtr->unknown_6E0 > 36) + if (++gWeatherPtr->snowflakeVisibleCounter > 36) { - gWeatherPtr->unknown_6E0 = 0; - if (gWeatherPtr->snowflakeSpriteCount < gWeatherPtr->unknown_6E5) + gWeatherPtr->snowflakeVisibleCounter = 0; + if (gWeatherPtr->snowflakeSpriteCount < gWeatherPtr->targetSnowflakeSpriteCount) CreateSnowflakeSprite(); else - RemoveSnowflakeSprite(); + DestroySnowflakeSprite(); } - return (gWeatherPtr->snowflakeSpriteCount != gWeatherPtr->unknown_6E5); -} -void sub_807EC40(struct Sprite *); + return gWeatherPtr->snowflakeSpriteCount != gWeatherPtr->targetSnowflakeSpriteCount; +} -static const struct OamData gOamData_839AAD4 = +static const struct OamData sSnowflakeSpriteOamData = { .y = 0, .affineMode = 0, @@ -857,231 +852,161 @@ static const struct OamData gOamData_839AAD4 = .affineParam = 0, }; -static const struct SpriteFrameImage gSpriteImageTable_839AADC[] = +static const struct SpriteFrameImage sSnowflakeSpriteImages[] = { {gWeatherSnow1Tiles, sizeof(gWeatherSnow1Tiles)}, {gWeatherSnow2Tiles, sizeof(gWeatherSnow2Tiles)}, }; -static const union AnimCmd gSpriteAnim_839AAEC[] = +static const union AnimCmd sSnowflakeAnimCmd0[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AAF4[] = +static const union AnimCmd sSnowflakeAnimCmd1[] = { ANIMCMD_FRAME(1, 16), ANIMCMD_END, }; -static const union AnimCmd *const gSpriteAnimTable_839AAFC[] = +static const union AnimCmd *const sSnowflakeAnimCmds[] = { - gSpriteAnim_839AAEC, - gSpriteAnim_839AAF4, + sSnowflakeAnimCmd0, + sSnowflakeAnimCmd1, }; -void sub_807ED48(struct Sprite *); static const struct SpriteTemplate sSnowflakeSpriteTemplate = { .tileTag = 0xFFFF, - .paletteTag = 4608, - .oam = &gOamData_839AAD4, - .anims = gSpriteAnimTable_839AAFC, - .images = gSpriteImageTable_839AADC, + .paletteTag = 0x1200, + .oam = &sSnowflakeSpriteOamData, + .anims = sSnowflakeAnimCmds, + .images = sSnowflakeSpriteImages, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_807ED48, -}; - -// unused data -static const u16 unusedData_839AB1C[] = {0, 6, 6, 12, 18, 42, 300, 300}; - -static const struct OamData gOamData_839AB2C = -{ - .y = 0, - .affineMode = 0, - .objMode = 1, - .mosaic = 0, - .bpp = 0, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, - .affineParam = 0, -}; - -static const union AnimCmd gSpriteAnim_839AB34[] = -{ - ANIMCMD_FRAME(0, 16), - ANIMCMD_END, -}; - -static const union AnimCmd gSpriteAnim_839AB3C[] = -{ - ANIMCMD_FRAME(32, 16), - ANIMCMD_END, -}; - -static const union AnimCmd gSpriteAnim_839AB44[] = -{ - ANIMCMD_FRAME(64, 16), - ANIMCMD_END, -}; - -static const union AnimCmd gSpriteAnim_839AB4C[] = -{ - ANIMCMD_FRAME(96, 16), - ANIMCMD_END, -}; - -static const union AnimCmd gSpriteAnim_839AB54[] = -{ - ANIMCMD_FRAME(128, 16), - ANIMCMD_END, -}; - -static const union AnimCmd gSpriteAnim_839AB5C[] = -{ - ANIMCMD_FRAME(160, 16), - ANIMCMD_END, -}; - -static const union AnimCmd *const gSpriteAnimTable_839AB64[] = -{ - gSpriteAnim_839AB34, - gSpriteAnim_839AB3C, - gSpriteAnim_839AB44, - gSpriteAnim_839AB4C, - gSpriteAnim_839AB54, - gSpriteAnim_839AB5C, -}; - -static const union AffineAnimCmd gSpriteAffineAnim_839AB7C[] = -{ - AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), - AFFINEANIMCMD_END, -}; - -static const union AffineAnimCmd *const gSpriteAffineAnimTable_839AB8C[] = -{ - gSpriteAffineAnim_839AB7C, + .callback = UpdateSnowflakeSprite, }; -static void Fog1SpriteCallback(struct Sprite *); -static const struct SpriteTemplate sFog1SpriteTemplate = -{ - .tileTag = 4609, - .paletteTag = 4608, - .oam = &gOamData_839AB2C, - .anims = gSpriteAnimTable_839AB64, - .images = NULL, - .affineAnims = gSpriteAffineAnimTable_839AB8C, - .callback = Fog1SpriteCallback, -}; +#define tPosY data[0] +#define tDeltaY data[1] +#define tWaveDelta data[2] +#define tWaveIndex data[3] +#define tSnowflakeId data[4] +#define tFallCounter data[5] +#define tFallDuration data[6] +#define tDeltaY2 data[7] -bool8 CreateSnowflakeSprite(void) +static bool8 CreateSnowflakeSprite(void) { u8 spriteId = CreateSpriteAtEnd(&sSnowflakeSpriteTemplate, 0, 0, 78); - if (spriteId == MAX_SPRITES) return FALSE; - gSprites[spriteId].data[4] = gWeatherPtr->snowflakeSpriteCount; - sub_807EC40(&gSprites[spriteId]); + + gSprites[spriteId].tSnowflakeId = gWeatherPtr->snowflakeSpriteCount; + InitSnowflakeSpriteMovement(&gSprites[spriteId]); gSprites[spriteId].coordOffsetEnabled = TRUE; gWeatherPtr->sprites.s1.snowflakeSprites[gWeatherPtr->snowflakeSpriteCount++] = &gSprites[spriteId]; return TRUE; } -bool8 RemoveSnowflakeSprite(void) +static bool8 DestroySnowflakeSprite(void) { - if (gWeatherPtr->snowflakeSpriteCount != 0) + if (gWeatherPtr->snowflakeSpriteCount) { DestroySprite(gWeatherPtr->sprites.s1.snowflakeSprites[--gWeatherPtr->snowflakeSpriteCount]); return TRUE; } + return FALSE; } -void sub_807EC40(struct Sprite *sprite) +static void InitSnowflakeSpriteMovement(struct Sprite *sprite) { - u16 r4 = ((sprite->data[4] * 5) & 7) * 30 + (Random() % 30); - u16 r6; + u16 rand; + u16 x = ((sprite->tSnowflakeId * 5) & 7) * 30 + (Random() % 30); sprite->pos1.y = -3 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); - sprite->pos1.x = r4 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); - sprite->data[0] = sprite->pos1.y * 128; + sprite->pos1.x = x - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); + sprite->tPosY = sprite->pos1.y * 128; sprite->pos2.x = 0; - r6 = Random(); - sprite->data[1] = (r6 & 3) * 5 + 64; - sprite->data[7] = (r6 & 3) * 5 + 64; - StartSpriteAnim(sprite, (r6 & 1) ? 0 : 1); - sprite->data[3] = 0; - sprite->data[2] = ((r6 & 3) == 0) ? 2 : 1; - sprite->data[6] = (r6 & 0x1F) + 210; - sprite->data[5] = 0; + rand = Random(); + sprite->tDeltaY = (rand & 3) * 5 + 64; + sprite->tDeltaY2 = sprite->tDeltaY; + StartSpriteAnim(sprite, (rand & 1) ? 0 : 1); + sprite->tWaveIndex = 0; + sprite->tWaveDelta = ((rand & 3) == 0) ? 2 : 1; + sprite->tFallDuration = (rand & 0x1F) + 210; + sprite->tFallCounter = 0; } -void sub_807ECEC(struct Sprite *sprite) +static void WaitSnowflakeSprite(struct Sprite *sprite) { if (gWeatherPtr->unknown_6E2 > 18) { sprite->invisible = FALSE; - sprite->callback = sub_807ED48; - sprite->pos1.y = 0xFA - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); - sprite->data[0] = sprite->pos1.y * 128; + sprite->callback = UpdateSnowflakeSprite; + sprite->pos1.y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); + sprite->tPosY = sprite->pos1.y * 128; gWeatherPtr->unknown_6E2 = 0; } } -void sub_807ED48(struct Sprite *sprite) +static void UpdateSnowflakeSprite(struct Sprite *sprite) { - s16 r3; - s16 r2; + s16 x; + s16 y; + + sprite->tPosY += sprite->tDeltaY; + sprite->pos1.y = sprite->tPosY >> 7; + sprite->tWaveIndex += sprite->tWaveDelta; + sprite->tWaveIndex &= 0xFF; + sprite->pos2.x = gSineTable[sprite->tWaveIndex] / 64; - sprite->data[0] += sprite->data[1]; - sprite->pos1.y = sprite->data[0] >> 7; - sprite->data[3] = (sprite->data[3] + sprite->data[2]) & 0xFF; - sprite->pos2.x = gSineTable[sprite->data[3]] / 64; + x = (sprite->pos1.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX) & 0x1FF; + if (x & 0x100) + x |= -0x100; - r3 = (sprite->pos1.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX) & 0x1FF; - if (r3 & 0x100) - r3 |= -0x100; // hmm... what is this? - if (r3 < -3) + if (x < -3) sprite->pos1.x = 242 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); - else if (r3 > 242) + else if (x > 242) sprite->pos1.x = -3 - (gSpriteCoordOffsetX + sprite->centerToCornerVecX); - r2 = (sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY) & 0xFF; - if (r2 > 163 && r2 < 171) + y = (sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY) & 0xFF; + if (y > 163 && y < 171) { sprite->pos1.y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); - sprite->data[0] = sprite->pos1.y * 128; - sprite->data[5] = 0; - sprite->data[6] = 220; + sprite->tPosY = sprite->pos1.y * 128; + sprite->tFallCounter = 0; + sprite->tFallDuration = 220; } - else if (r2 > 242 && r2 < 250) + else if (y > 242 && y < 250) { sprite->pos1.y = 163; - sprite->data[0] = sprite->pos1.y * 128; - sprite->data[5] = 0; - sprite->data[6] = 220; + sprite->tPosY = sprite->pos1.y * 128; + sprite->tFallCounter = 0; + sprite->tFallDuration = 220; sprite->invisible = TRUE; - sprite->callback = sub_807ECEC; + sprite->callback = WaitSnowflakeSprite; } - sprite->data[5]++; - if (sprite->data[5] == sprite->data[6]) + if (++sprite->tFallCounter == sprite->tFallDuration) { - sub_807EC40(sprite); + InitSnowflakeSpriteMovement(sprite); sprite->pos1.y = 250; sprite->invisible = TRUE; - sprite->callback = sub_807ECEC; + sprite->callback = WaitSnowflakeSprite; } } +#undef tPosY +#undef tDeltaY +#undef tWaveDelta +#undef tWaveIndex +#undef tSnowflakeId +#undef tFallCounter +#undef tFallDuration +#undef tDeltaY2 + //------------------------------------------------------------------------------ // Medium Rain //------------------------------------------------------------------------------ @@ -1093,16 +1018,14 @@ void MedRain_InitVars(void) gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleDelay = 4; gWeatherPtr->isHeavyRain = 0; - gWeatherPtr->maxRainSprites = 16; + gWeatherPtr->targetRainSpriteCount = 16; gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment - gWeatherPtr->unknown_6ED = 0; + gWeatherPtr->thunderTriggered = 0; SetRainStrengthFromSoundEffect(SE_T_AME); } -void Rain_Main(void); - void MedRain_InitAll(void) { MedRain_InitVars(); @@ -1114,6 +1037,9 @@ void MedRain_InitAll(void) // Heavy Rain //------------------------------------------------------------------------------ +static void UpdateThunderSound(void); +static void SetThunderCounter(u16); + void HeavyRain_InitVars(void) { gWeatherPtr->initStep = 0; @@ -1121,7 +1047,7 @@ void HeavyRain_InitVars(void) gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleDelay = 4; gWeatherPtr->isHeavyRain = 1; - gWeatherPtr->maxRainSprites = 24; + gWeatherPtr->targetRainSpriteCount = 24; gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment @@ -1135,9 +1061,6 @@ void HeavyRain_InitAll(void) Rain_Main(); } -static void UpdateThunderSound(void); -static void SetThunderCounter(u16); - void Rain_Main(void) { UpdateThunderSound(); @@ -1148,20 +1071,19 @@ void Rain_Main(void) gWeatherPtr->initStep++; break; case 1: - if (CreateRainSprite()) - break; - gWeatherPtr->initStep++; + if (!CreateRainSprite()) + gWeatherPtr->initStep++; break; case 2: - if (UpdateVisibleRainSprites()) - break; - gWeatherPtr->weatherGfxLoaded = TRUE; - gWeatherPtr->initStep++; + if (!UpdateVisibleRainSprites()) + { + gWeatherPtr->weatherGfxLoaded = TRUE; + gWeatherPtr->initStep++; + } break; case 3: - if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_CHANGING_WEATHER) - break; - gWeatherPtr->initStep = 6; + if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_CHANGING_WEATHER) + gWeatherPtr->initStep = 6; break; case 4: gWeatherPtr->unknown_6EA = 1; @@ -1169,9 +1091,8 @@ void Rain_Main(void) gWeatherPtr->initStep++; // fall through case 5: - if (--gWeatherPtr->unknown_6E6 != 0) - break; - gWeatherPtr->initStep++; + if (--gWeatherPtr->unknown_6E6 == 0) + gWeatherPtr->initStep++; break; case 6: gWeatherPtr->unknown_6EA = 1; @@ -1186,57 +1107,60 @@ void Rain_Main(void) sub_80ABC48(19); if (gWeatherPtr->unknown_6EB == 0 && gWeatherPtr->unknown_6EC == 1) SetThunderCounter(20); + gWeatherPtr->unknown_6E6 = (Random() % 3) + 6; gWeatherPtr->initStep++; break; case 9: - if (--gWeatherPtr->unknown_6E6 != 0) - break; - sub_80ABC48(3); - gWeatherPtr->unknown_6EA = 1; - if (--gWeatherPtr->unknown_6EC != 0) - { - gWeatherPtr->unknown_6E6 = (Random() % 16) + 60; - gWeatherPtr->initStep = 10; - } - else if (gWeatherPtr->unknown_6EB == 0) + if (--gWeatherPtr->unknown_6E6 == 0) { - gWeatherPtr->initStep = 4; - } - else - { - gWeatherPtr->initStep = 11; + sub_80ABC48(3); + gWeatherPtr->unknown_6EA = 1; + if (--gWeatherPtr->unknown_6EC != 0) + { + gWeatherPtr->unknown_6E6 = (Random() % 16) + 60; + gWeatherPtr->initStep = 10; + } + else if (gWeatherPtr->unknown_6EB == 0) + { + gWeatherPtr->initStep = 4; + } + else + { + gWeatherPtr->initStep = 11; + } } break; case 10: - if (--gWeatherPtr->unknown_6E6 != 0) - break; - gWeatherPtr->initStep = 8; + if (--gWeatherPtr->unknown_6E6 == 0) + gWeatherPtr->initStep = 8; break; case 11: gWeatherPtr->unknown_6E6 = (Random() % 16) + 60; gWeatherPtr->initStep++; break; case 12: - if (--gWeatherPtr->unknown_6E6 != 0) - break; - SetThunderCounter(100); - sub_80ABC48(19); - // Why use "% 16" everywhere else and "& 0xF" here. So dumb. - gWeatherPtr->unknown_6E6 = (Random() & 0xF) + 30; - gWeatherPtr->initStep++; + if (--gWeatherPtr->unknown_6E6 == 0) + { + SetThunderCounter(100); + sub_80ABC48(19); + gWeatherPtr->unknown_6E6 = (Random() & 0xF) + 30; + gWeatherPtr->initStep++; + } break; case 13: - if (--gWeatherPtr->unknown_6E6 != 0) - break; - sub_80ABC7C(19, 3, 5); - gWeatherPtr->initStep++; + if (--gWeatherPtr->unknown_6E6 == 0) + { + sub_80ABC7C(19, 3, 5); + gWeatherPtr->initStep++; + } break; case 14: - if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_IDLE) - break; - gWeatherPtr->unknown_6EA = 1; - gWeatherPtr->initStep = 4; + if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE) + { + gWeatherPtr->unknown_6EA = 1; + gWeatherPtr->initStep = 4; + } break; } } @@ -1251,23 +1175,26 @@ bool8 Rain_Finish(void) // fall through case 1: Rain_Main(); - if (gWeatherPtr->unknown_6EA != 0) + if (gWeatherPtr->unknown_6EA) { if (gWeatherPtr->nextWeather == WEATHER_RAIN_LIGHT || gWeatherPtr->nextWeather == WEATHER_RAIN_MED || gWeatherPtr->nextWeather == WEATHER_RAIN_HEAVY) return FALSE; - gWeatherPtr->maxRainSprites = 0; + + gWeatherPtr->targetRainSpriteCount = 0; gWeatherPtr->finishStep++; } break; case 2: - if (UpdateVisibleRainSprites()) - break; - DestroyRainSprites(); - gWeatherPtr->unknown_6ED = 0; - gWeatherPtr->finishStep++; - return FALSE; + if (!UpdateVisibleRainSprites()) + { + DestroyRainSprites(); + gWeatherPtr->thunderTriggered = 0; + gWeatherPtr->finishStep++; + return FALSE; + } + break; default: return FALSE; } @@ -1276,26 +1203,28 @@ bool8 Rain_Finish(void) static void SetThunderCounter(u16 max) { - if (gWeatherPtr->unknown_6ED == 0) + if (gWeatherPtr->thunderTriggered == 0) { gWeatherPtr->thunderCounter = Random() % max; - gWeatherPtr->unknown_6ED = 1; + gWeatherPtr->thunderTriggered = 1; } } static void UpdateThunderSound(void) { - if (gWeatherPtr->unknown_6ED == 1) + if (gWeatherPtr->thunderTriggered == 1) { if (gWeatherPtr->thunderCounter == 0) { if (IsSEPlaying()) return; + if (Random() & 1) PlaySE(SE_T_KAMI); else PlaySE(SE_T_KAMI2); - gWeatherPtr->unknown_6ED = 0; + + gWeatherPtr->thunderTriggered = 0; } else { @@ -1308,6 +1237,95 @@ static void UpdateThunderSound(void) // Fog 1 //------------------------------------------------------------------------------ +// unused data +static const u16 unusedData_839AB1C[] = {0, 6, 6, 12, 18, 42, 300, 300}; + +static const struct OamData gOamData_839AB2C = +{ + .y = 0, + .affineMode = 0, + .objMode = 1, + .mosaic = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd gSpriteAnim_839AB34[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_839AB3C[] = +{ + ANIMCMD_FRAME(32, 16), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_839AB44[] = +{ + ANIMCMD_FRAME(64, 16), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_839AB4C[] = +{ + ANIMCMD_FRAME(96, 16), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_839AB54[] = +{ + ANIMCMD_FRAME(128, 16), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_839AB5C[] = +{ + ANIMCMD_FRAME(160, 16), + ANIMCMD_END, +}; + +static const union AnimCmd *const gSpriteAnimTable_839AB64[] = +{ + gSpriteAnim_839AB34, + gSpriteAnim_839AB3C, + gSpriteAnim_839AB44, + gSpriteAnim_839AB4C, + gSpriteAnim_839AB54, + gSpriteAnim_839AB5C, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_839AB7C[] = +{ + AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd *const gSpriteAffineAnimTable_839AB8C[] = +{ + gSpriteAffineAnim_839AB7C, +}; + +static void Fog1SpriteCallback(struct Sprite *); +static const struct SpriteTemplate sFog1SpriteTemplate = +{ + .tileTag = 0x1201, + .paletteTag = 0x1200, + .oam = &gOamData_839AB2C, + .anims = gSpriteAnimTable_839AB64, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_839AB8C, + .callback = Fog1SpriteCallback, +}; + void Fog1_Main(void); static void CreateFog1Sprites(void); static void DestroyFog1Sprites(void); @@ -1320,8 +1338,8 @@ void Fog1_InitVars(void) gWeatherPtr->gammaStepDelay = 20; if (gWeatherPtr->fog1SpritesCreated == 0) { - gWeatherPtr->unknown_6F0 = 0; - gWeatherPtr->unknown_6F2 = 0; + gWeatherPtr->fog1ScrollCounter = 0; + gWeatherPtr->fog1ScrollOffset = 0; gWeatherPtr->fog1ScrollPosX = 0; Weather_SetBlendCoeffs(0, 16); } @@ -1336,11 +1354,11 @@ void Fog1_InitAll(void) void Fog1_Main(void) { - gWeatherPtr->fog1ScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->unknown_6F2) & 0xFF; - if (++gWeatherPtr->unknown_6F0 > 3) + gWeatherPtr->fog1ScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->fog1ScrollOffset) & 0xFF; + if (++gWeatherPtr->fog1ScrollCounter > 3) { - gWeatherPtr->unknown_6F0 = 0; - gWeatherPtr->unknown_6F2++; + gWeatherPtr->fog1ScrollCounter = 0; + gWeatherPtr->fog1ScrollOffset++; } switch (gWeatherPtr->initStep) { @@ -1364,12 +1382,13 @@ void Fog1_Main(void) bool8 Fog1_Finish(void) { - gWeatherPtr->fog1ScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->unknown_6F2) & 0xFF; - if (++gWeatherPtr->unknown_6F0 > 3) + gWeatherPtr->fog1ScrollPosX = (gSpriteCoordOffsetX - gWeatherPtr->fog1ScrollOffset) & 0xFF; + if (++gWeatherPtr->fog1ScrollCounter > 3) { - gWeatherPtr->unknown_6F0 = 0; - gWeatherPtr->unknown_6F2++; + gWeatherPtr->fog1ScrollCounter = 0; + gWeatherPtr->fog1ScrollOffset++; } + switch (gWeatherPtr->finishStep) { case 0: @@ -1377,9 +1396,8 @@ bool8 Fog1_Finish(void) gWeatherPtr->finishStep++; break; case 1: - if (!Weather_UpdateBlend()) - break; - gWeatherPtr->finishStep++; + if (Weather_UpdateBlend()) + gWeatherPtr->finishStep++; break; case 2: DestroyFog1Sprites(); @@ -1391,15 +1409,15 @@ bool8 Fog1_Finish(void) return TRUE; } -#define sprColumn data[0] +#define tSpriteColumn data[0] static void Fog1SpriteCallback(struct Sprite *sprite) { sprite->pos2.y = (u8)gSpriteCoordOffsetY; - sprite->pos1.x = gWeatherPtr->fog1ScrollPosX + 32 + sprite->sprColumn * 64; - if (sprite->pos1.x > 0x10F) + sprite->pos1.x = gWeatherPtr->fog1ScrollPosX + 32 + sprite->tSpriteColumn * 64; + if (sprite->pos1.x > 271) { - sprite->pos1.x = 480 + gWeatherPtr->fog1ScrollPosX - (4 - sprite->sprColumn) * 64; + sprite->pos1.x = 480 + gWeatherPtr->fog1ScrollPosX - (4 - sprite->tSpriteColumn) * 64; sprite->pos1.x &= 0x1FF; } } @@ -1407,21 +1425,24 @@ static void Fog1SpriteCallback(struct Sprite *sprite) static void CreateFog1Sprites(void) { u16 i; + u8 spriteId; + struct Sprite *sprite; if (!gWeatherPtr->fog1SpritesCreated) { - struct SpriteSheet fog1SpriteSheet = {gWeatherFog1Tiles, sizeof(gWeatherFog1Tiles), 0x1201}; - + struct SpriteSheet fog1SpriteSheet = { + .data = gWeatherFog1Tiles, + .size = sizeof(gWeatherFog1Tiles), + .tag = 0x1201, + }; LoadSpriteSheet(&fog1SpriteSheet); - for (i = 0; i < 20; i++) + for (i = 0; i < NUM_FOG_SPRITES; i++) { - u8 spriteId = CreateSpriteAtEnd(&sFog1SpriteTemplate, 0, 0, 0xFF); - + spriteId = CreateSpriteAtEnd(&sFog1SpriteTemplate, 0, 0, 0xFF); if (spriteId != MAX_SPRITES) { - struct Sprite *sprite = &gSprites[spriteId]; - - sprite->sprColumn = i % 5; + sprite = &gSprites[spriteId]; + sprite->tSpriteColumn = i % 5; sprite->pos1.x = (i % 5) * 64 + 32; sprite->pos1.y = (i / 5) * 64 + 32; gWeatherPtr->sprites.s2.fog1Sprites[i] = sprite; @@ -1431,36 +1452,38 @@ static void CreateFog1Sprites(void) gWeatherPtr->sprites.s2.fog1Sprites[i] = NULL; } } + gWeatherPtr->fog1SpritesCreated = TRUE; } } -#undef sprColumn - static void DestroyFog1Sprites(void) { u16 i; if (gWeatherPtr->fog1SpritesCreated) { - for (i = 0; i < 20; i++) + for (i = 0; i < NUM_FOG_SPRITES; i++) { if (gWeatherPtr->sprites.s2.fog1Sprites[i] != NULL) DestroySprite(gWeatherPtr->sprites.s2.fog1Sprites[i]); } + FreeSpriteTilesByTag(0x1201); gWeatherPtr->fog1SpritesCreated = 0; } } +#undef tSpriteColumn + //------------------------------------------------------------------------------ // Volcanic ash //------------------------------------------------------------------------------ -void Ash_Main(void); -void LoadAshSpriteSheet(void); -void CreateAshSprites(void); -void DestroyAshSprites(void); +static void LoadAshSpriteSheet(void); +static void CreateAshSprites(void); +static void DestroyAshSprites(void); +static void UpdateAshSprite(struct Sprite *); void Ash_InitVars(void) { @@ -1472,7 +1495,7 @@ void Ash_InitVars(void) if (!gWeatherPtr->ashSpritesCreated) { Weather_SetBlendCoeffs(0, 16); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(64, 63)); // Those aren't even valid coefficients! + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(64, 63)); // These aren't valid blend coefficients! } } @@ -1485,9 +1508,10 @@ void Ash_InitAll(void) void Ash_Main(void) { - gWeatherPtr->unknown_6FC = gSpriteCoordOffsetX & 0x1FF; - while (gWeatherPtr->unknown_6FC > 0xEF) - gWeatherPtr->unknown_6FC -= 0xF0; + gWeatherPtr->baseAshSpritesX = gSpriteCoordOffsetX & 0x1FF; + while (gWeatherPtr->baseAshSpritesX >= 240) + gWeatherPtr->baseAshSpritesX -= 240; + switch (gWeatherPtr->initStep) { case 0: @@ -1497,14 +1521,16 @@ void Ash_Main(void) case 1: if (!gWeatherPtr->ashSpritesCreated) CreateAshSprites(); + Weather_SetTargetBlendCoeffs(16, 0, 1); gWeatherPtr->initStep++; break; case 2: - if (!Weather_UpdateBlend()) - break; - gWeatherPtr->weatherGfxLoaded = TRUE; - gWeatherPtr->initStep++; + if (Weather_UpdateBlend()) + { + gWeatherPtr->weatherGfxLoaded = TRUE; + gWeatherPtr->initStep++; + } break; default: Weather_UpdateBlend(); @@ -1521,10 +1547,11 @@ bool8 Ash_Finish(void) gWeatherPtr->finishStep++; break; case 1: - if (!Weather_UpdateBlend()) - break; - DestroyAshSprites(); - gWeatherPtr->finishStep++; + if (Weather_UpdateBlend()) + { + DestroyAshSprites(); + gWeatherPtr->finishStep++; + } break; case 2: SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -1536,18 +1563,23 @@ bool8 Ash_Finish(void) return TRUE; } -static const struct SpriteSheet sAshSpriteSheet = {gWeatherAshTiles, sizeof(gWeatherAshTiles), 0x1202}; +static const struct SpriteSheet sAshSpriteSheet = +{ + .data = gWeatherAshTiles, + .size = sizeof(gWeatherAshTiles), + .tag = 0x1202, +}; -void LoadAshSpriteSheet(void) +static void LoadAshSpriteSheet(void) { LoadSpriteSheet(&sAshSpriteSheet); } -const struct OamData gOamData_839ABB8 = +static const struct OamData sAshSpriteOamData = { .y = 0, .affineMode = 0, - .objMode = 1, + .objMode = ST_OAM_OBJ_BLEND, .mosaic = 0, .bpp = 0, .shape = SPRITE_SHAPE(64x64), @@ -1560,48 +1592,52 @@ const struct OamData gOamData_839ABB8 = .affineParam = 0, }; -const union AnimCmd gSpriteAnim_839ABC0[] = +static const union AnimCmd sAshSpriteAnimCmd0[] = { ANIMCMD_FRAME(0, 60), ANIMCMD_FRAME(64, 60), ANIMCMD_JUMP(0), }; -const union AnimCmd *const gSpriteAnimTable_839ABCC[] = +static const union AnimCmd *const sAshSpriteAnimCmds[] = { - gSpriteAnim_839ABC0, + sAshSpriteAnimCmd0, }; -void sub_807FAA8(struct Sprite *); static const struct SpriteTemplate sAshSpriteTemplate = { .tileTag = 4610, - .paletteTag = 4608, - .oam = &gOamData_839ABB8, - .anims = gSpriteAnimTable_839ABCC, + .paletteTag = 0x1200, + .oam = &sAshSpriteOamData, + .anims = sAshSpriteAnimCmds, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_807FAA8, + .callback = UpdateAshSprite, }; -void CreateAshSprites(void) +#define tOffsetY data[0] +#define tCounterY data[1] +#define tSpriteColumn data[2] +#define tSpriteRow data[3] + +static void CreateAshSprites(void) { u8 i; + u8 spriteId; + struct Sprite *sprite; if (!gWeatherPtr->ashSpritesCreated) { - for (i = 0; i < 20; i++) + for (i = 0; i < NUM_ASH_SPRITES; i++) { - u8 spriteId = CreateSpriteAtEnd(&sAshSpriteTemplate, 0, 0, 0x4E); - + spriteId = CreateSpriteAtEnd(&sAshSpriteTemplate, 0, 0, 0x4E); if (spriteId != MAX_SPRITES) { - struct Sprite *sprite = &gSprites[spriteId]; - - sprite->data[1] = 0; - sprite->data[2] = (u8)(i % 5); - sprite->data[3] = (u8)(i / 5); - sprite->data[0] = sprite->data[3] * 64 + 32; + sprite = &gSprites[spriteId]; + sprite->tCounterY = 0; + sprite->tSpriteColumn = (u8)(i % 5); + sprite->tSpriteRow = (u8)(i / 5); + sprite->tOffsetY = sprite->tSpriteRow * 64 + 32; gWeatherPtr->sprites.s2.ashSprites[i] = sprite; } else @@ -1609,43 +1645,50 @@ void CreateAshSprites(void) gWeatherPtr->sprites.s2.ashSprites[i] = NULL; } } + gWeatherPtr->ashSpritesCreated = TRUE; } } -void DestroyAshSprites(void) +static void DestroyAshSprites(void) { u16 i; if (gWeatherPtr->ashSpritesCreated) { - for (i = 0; i < 20; i++) + for (i = 0; i < NUM_ASH_SPRITES; i++) { if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL) DestroySprite(gWeatherPtr->sprites.s2.ashSprites[i]); } + FreeSpriteTilesByTag(0x1202); gWeatherPtr->ashSpritesCreated = FALSE; } } -void sub_807FAA8(struct Sprite *sprite) +static void UpdateAshSprite(struct Sprite *sprite) { - sprite->data[1]++; - if (sprite->data[1] > 5) + if (++sprite->tCounterY > 5) { - sprite->data[1] = 0; - sprite->data[0]++; + sprite->tCounterY = 0; + sprite->tOffsetY++; } - sprite->pos1.y = gSpriteCoordOffsetY + sprite->data[0]; - sprite->pos1.x = gWeatherPtr->unknown_6FC + 32 + sprite->data[2] * 64; + + sprite->pos1.y = gSpriteCoordOffsetY + sprite->tOffsetY; + sprite->pos1.x = gWeatherPtr->baseAshSpritesX + 32 + sprite->tSpriteColumn * 64; if (sprite->pos1.x > 271) { - sprite->pos1.x = gWeatherPtr->unknown_6FC + 0x1E0 - (4 - sprite->data[2]) * 64; + sprite->pos1.x = gWeatherPtr->baseAshSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; sprite->pos1.x &= 0x1FF; } } +#undef tOffsetY +#undef tCounterY +#undef tSpriteColumn +#undef tSpriteRow + //------------------------------------------------------------------------------ // Fog 2 //------------------------------------------------------------------------------ @@ -1656,8 +1699,8 @@ void Fog2_InitVars(void) gWeatherPtr->weatherGfxLoaded = 0; gWeatherPtr->gammaTargetIndex = 0; gWeatherPtr->gammaStepDelay = 20; - gWeatherPtr->unknown_6F0 = 0; - gWeatherPtr->unknown_6F2 = 1; + gWeatherPtr->fog1ScrollCounter = 0; + gWeatherPtr->fog1ScrollOffset = 1; if (gWeatherPtr->fog2SpritesCreated == 0) { gWeatherPtr->unknown_71C = 0; @@ -1812,7 +1855,7 @@ void Fog2SpriteCallback(struct Sprite *); const struct SpriteTemplate sFog2SpriteTemplate = { .tileTag = 4611, - .paletteTag = 4608, + .paletteTag = 0x1200, .oam = &gOamData_839ABF0, .anims = gSpriteAnimTable_839AC00, .images = NULL, @@ -2017,8 +2060,8 @@ const union AnimCmd *const gSpriteAnimTable_839AC34[] = void SandstormSpriteCallback1(struct Sprite *); const struct SpriteTemplate sSandstormSpriteTemplate = { - .tileTag = 4612, - .paletteTag = 4609, + .tileTag = 0x1204, + .paletteTag = 0x1201, .oam = &gOamData_839AC1C, .anims = gSpriteAnimTable_839AC34, .images = NULL, @@ -2250,7 +2293,7 @@ void unc_0807DAB4(struct Sprite *); const struct SpriteTemplate gSpriteTemplate_839ACBC = { .tileTag = 4613, - .paletteTag = 4608, + .paletteTag = 0x1200, .oam = &gUnknown_08524904, .anims = gSpriteAnimTable_839ACB8, .images = NULL, diff --git a/src/overworld.c b/src/overworld.c index ce1e21ab1..ae6efefd7 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -2960,7 +2960,7 @@ static void InitLinkPlayerEventObjectPos(struct EventObject *eventObj, s16 x, s1 eventObj->currentCoords.y = y; eventObj->previousCoords.x = x; eventObj->previousCoords.y = y; - sub_8093038(x, y, &eventObj->initialCoords.x, &eventObj->initialCoords.y); + SetSpritePosToMapCoords(x, y, &eventObj->initialCoords.x, &eventObj->initialCoords.y); eventObj->initialCoords.x += 8; EventObjectUpdateZCoord(eventObj); } -- cgit v1.2.3 From 4be97b2dc691d5215ae402a345708b3e207ceb9f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 1 Apr 2019 18:42:57 -0400 Subject: through sub_801A960 --- src/union_room.c | 2 - src/union_room_battle.c | 466 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 466 insertions(+), 2 deletions(-) create mode 100644 src/union_room_battle.c (limited to 'src') diff --git a/src/union_room.c b/src/union_room.c index ad33112e4..88ac65baa 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -62,8 +62,6 @@ EWRAM_DATA struct TradeUnkStruct gUnknown_02022C40 = {}; IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; IWRAM_DATA struct UnkStruct_Group *gUnknown_03000DA4; IWRAM_DATA struct UnkStruct_URoom *gUnknown_03000DA8; -IWRAM_DATA void *gUnknown_03000DAC; -IWRAM_DATA bool32 gUnknown_03000DB0; // this file's functions void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5); diff --git a/src/union_room_battle.c b/src/union_room_battle.c new file mode 100644 index 000000000..b571e803a --- /dev/null +++ b/src/union_room_battle.c @@ -0,0 +1,466 @@ +#include "global.h" +#include "battle.h" +#include "task.h" +#include "text.h" +#include "main.h" +#include "bg.h" +#include "palette.h" +#include "gpu_regs.h" +#include "alloc.h" +#include "menu.h" +#include "window.h" +#include "scanline_effect.h" +#include "m4a.h" +#include "dynamic_placeholder_text_util.h" +#include "overworld.h" +#include "strings.h" +#include "string_util.h" +#include "international_string_util.h" +#include "sound.h" +#include "constants/songs.h" +#include "union_room.h" +#include "union_room_battle.h" + +struct UnkStruct_3000DAC +{ + /*0x00*/ u32 unk00[4]; + /*0x10*/ u32 unk10[4]; + /*0x20*/ u32 unk20[16]; + /*0x60*/ u8 taskId; + /*0x61*/ u8 unk61; + /*0x62*/ u8 filler_62[10]; +}; + +IWRAM_DATA struct UnkStruct_3000DAC * gUnknown_03000DAC; +IWRAM_DATA bool32 gUnknown_03000DB0; + +void sub_801A43C(void); +void sub_801A6C0(u8 taskId); +static void sub_801A8B0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 mode); +bool32 sub_801AA30(u32 * a0, u32 * a1, u32 * a2, u8 a3); + +const u16 gWirelessInfoScreenPal[] = INCBIN_U16("graphics/interface/wireless_info_screen.gbapal"); +const u32 gWirelessInfoScreenGfx[] = INCBIN_U32("graphics/interface/wireless_info_screen.4bpp.lz"); +const u32 gWirelessInfoScreenTilemap[] = INCBIN_U32("graphics/interface/wireless_info_screen.bin.lz"); + +const struct BgTemplate gUnknown_082F0D34[] = { + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 0x1F, + .priority = 0 + }, { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 0x08, + .priority = 1 + } +}; + +const struct WindowTemplate gUnknown_082F0D3C[] = { + { + .bg = 0x00, + .tilemapLeft = 0x03, + .tilemapTop = 0x00, + .width = 0x18, + .height = 0x03, + .paletteNum = 0x0f, + .baseBlock = 0x0001 + }, { + .bg = 0x00, + .tilemapLeft = 0x03, + .tilemapTop = 0x04, + .width = 0x15, + .height = 0x0f, + .paletteNum = 0x0f, + .baseBlock = 0x0049 + }, { + .bg = 0x00, + .tilemapLeft = 0x18, + .tilemapTop = 0x04, + .width = 0x03, + .height = 0x0f, + .paletteNum = 0x0f, + .baseBlock = 0x0184 + }, + { 0xFF } +}; + +const u8 *const gUnknown_082F0D5C[] = { + gText_WirelessCommStatus, + gText_PeopleTrading, + gText_PeopleBattling, + gText_PeopleInUnionRoom, + gText_PeopleCommunicating +}; + +const u8 gUnknown_082F0D70[][3] = { + {0x01, 0x01, 0x02}, + {0x02, 0x01, 0x02}, + {0x03, 0x01, 0x04}, + {0x04, 0x00, 0x02}, + {0x06, 0x03, 0x02}, + {0x07, 0x03, 0x02}, + {0x09, 0x03, 0x00}, + {0x0a, 0x03, 0x00}, + {0x0b, 0x03, 0x00}, + {0x0c, 0xff, 0x00}, + {0x0d, 0x00, 0x00}, + {0x10, 0x03, 0x00}, + {0x0f, 0x03, 0x00}, + {0x40, 0x02, 0x01}, + {0x41, 0x02, 0x02}, + {0x44, 0x02, 0x02}, + {0x45, 0x02, 0x00}, + {0x48, 0x02, 0x02}, + {0x54, 0x02, 0x01}, + {0x53, 0x02, 0x02}, + {0x51, 0x02, 0x01}, + {0x52, 0x02, 0x01}, + {0x15, 0x03, 0x02}, + {0x16, 0x03, 0x02}, + {0x17, 0x03, 0x00}, + {0x18, 0x03, 0x00}, + {0x19, 0x03, 0x00}, + {0x1a, 0x03, 0x00}, + {0x1b, 0x03, 0x00}, + {0x1c, 0x01, 0x02}, + {0x0e, 0x01, 0x02} +}; + +void sub_801A3F4(void) +{ + if (!IsDma3ManagerBusyWithBgCopy()) + { + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + } +} + +void sub_801A418(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_801A42C(void) +{ + SetMainCallback2(sub_801A43C); +} + +void sub_801A43C(void) +{ + SetGpuReg(REG_OFFSET_DISPCNT, 0x0000); + gUnknown_03000DAC = AllocZeroed(sizeof(struct UnkStruct_3000DAC)); + SetVBlankCallback(NULL); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_082F0D34, ARRAY_COUNT(gUnknown_082F0D34)); + SetBgTilemapBuffer(1, Alloc(0x800)); + SetBgTilemapBuffer(0, Alloc(0x800)); + DecompressAndLoadBgGfxUsingHeap(1, gWirelessInfoScreenGfx, 0, 0, 0); + CopyToBgTilemapBuffer(1, gWirelessInfoScreenTilemap, 0, 0); + InitWindows(gUnknown_082F0D3C); + DeactivateAllTextPrinters(); + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + ScanlineEffect_Stop(); + m4aSoundVSyncOn(); + SetVBlankCallback(sub_801A418); + gUnknown_03000DAC->taskId = CreateTask(sub_801A6C0, 0); + gUnknown_03000DAC->unk61 = sub_8013C40(); + gUnknown_03000DAC->unk10[3] = 1; + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + LoadPalette(gWirelessInfoScreenPal, 0x00, 0x20); + Menu_LoadStdPalAt(0xF0); + DynamicPlaceholderTextUtil_Reset(); + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x0F); + CopyBgTilemapBufferToVram(1); + SetMainCallback2(sub_801A3F4); + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_801A584(void) +{ + s32 i; + FreeAllWindowBuffers(); + for (i = 0; i < 2; i++) + { + Free(GetBgTilemapBuffer(i)); + } + Free(gUnknown_03000DAC); + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); +} + +void sub_801A5BC(s16 * a0, s16 * a1) +{ + if (++(*a0) > 5) + { + if (++(*a1) == 14) + { + *a1 = 0; + } + *a0 = 0; + } + LoadPalette(gWirelessInfoScreenPal + 16 * (*a1 + 2), 0, 0x10); +} + +void sub_801A600(void) +{ + s32 i; + FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(2, 0); + sub_801A8B0(0, 1, gUnknown_082F0D5C[0], GetStringCenterAlignXOffset(1, gUnknown_082F0D5C[0], 0xC0), 6, 3); + for (i = 0; i < 3; i++) + { + sub_801A8B0(1, 1, gUnknown_082F0D5C[i + 1], 0, 30 * i + 8, 1); + } + sub_801A8B0(1, 1, gUnknown_082F0D5C[i + 1], 0, 30 * i + 8, 2); + PutWindowTilemap(0); + CopyWindowToVram(0, 2); + PutWindowTilemap(1); + CopyWindowToVram(1, 2); +} + +void sub_801A6C0(u8 taskId) +{ + s32 i; + switch (gTasks[taskId].data[0]) + { + case 0: + sub_801A600(); + gTasks[taskId].data[0]++; + break; + case 1: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + ShowBg(1); + CopyBgTilemapBufferToVram(0); + ShowBg(0); + gTasks[taskId].data[0]++; + break; + case 2: + if (!gPaletteFade.active) + { + gTasks[taskId].data[0]++; + } + break; + case 3: + if (sub_801AA30(gUnknown_03000DAC->unk00, gUnknown_03000DAC->unk10, gUnknown_03000DAC->unk20, gUnknown_03000DAC->unk61)) + { + FillWindowPixelBuffer(2, 0); + for (i = 0; i < 4; i++) + { + ConvertIntToDecimalStringN(gStringVar4, gUnknown_03000DAC->unk00[i], STR_CONV_MODE_RIGHT_ALIGN, 2); + if (i != 3) + { + sub_801A8B0(2, 1, gStringVar4, 12, 30 * i + 8, 1); + } + else + { + sub_801A8B0(2, 1, gStringVar4, 12, 98, 2); + } + } + PutWindowTilemap(2); + CopyWindowToVram(2, 3); + } + if (({gMain.newKeys & A_BUTTON;}) || ({gMain.newKeys & B_BUTTON;})) + { + PlaySE(SE_SELECT); + gTasks[gUnknown_03000DAC->unk61].data[15] = 0xFF; + gTasks[taskId].data[0]++; + } + sub_801A5BC(&gTasks[taskId].data[7], &gTasks[taskId].data[8]); + break; + case 4: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gTasks[taskId].data[0]++; + break; + case 5: + if (!gPaletteFade.active) + { + SetMainCallback2(sub_801A584); + DestroyTask(taskId); + } + break; + } +} + +static void sub_801A8B0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 mode) +{ + u8 color[3]; + + switch (mode) + { + case 0: + color[0] = 0; + color[1] = 2; + color[2] = 3; + break; + case 1: + color[0] = 0; + color[1] = 1; + color[2] = 3; + break; + case 2: + color[0] = 0; + color[1] = 4; + color[2] = 5; + break; + case 3: + color[0] = 0; + color[1] = 7; + color[2] = 6; + break; + case 4: + color[0] = 0; + color[1] = 1; + color[2] = 2; + break; + } + + AddTextPrinterParameterized4(windowId, fontId, x, y, 0, 0, color, -1, str); +} + +#ifdef NONMATCHING +// register swap r2, r3 +u8 sub_801A960(struct UnkStruct_x20 * a0, u32 * a1) +{ + s32 i, j, r2; + u8 result = a0->unk.field_0.unk_0a_0; + + for (i = 0; i < (unsigned)ARRAY_COUNT(gUnknown_082F0D70); i++) + { + if (result != gUnknown_082F0D70[i][0]) + { + continue; + } + if (a0->field_1A_0 != 1) + { + continue; + } + if (gUnknown_082F0D70[i][2] == 0) + { + r2 = 0; + for (j = 0; j < 4; j++) + { + if (a0->unk.field_0.unk_04[j] != 0) + { + r2++; + } + } + r2++; + a1[gUnknown_082F0D70[i][1]] += r2; + } + else + { + a1[gUnknown_082F0D70[i][1]] += gUnknown_082F0D70[i][2]; + } + } + return result; +} +#else +NAKED +u8 sub_801A960(struct UnkStruct_x20 * a0, u32 * a1) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0x4\n" + "\tmov r12, r0\n" + "\tadds r7, r1, 0\n" + "\tldrb r0, [r0, 0xA]\n" + "\tlsls r0, 25\n" + "\tlsrs r0, 25\n" + "\tmov r8, r0\n" + "\tmovs r4, 0\n" + "\tldr r0, =gUnknown_082F0D70\n" + "\tmov r9, r0\n" + "\tmovs r1, 0x1\n" + "\tadd r1, r9\n" + "\tmov r10, r1\n" + "\tmov r3, r12\n" + "\tadds r3, 0x4\n" + "\tstr r3, [sp]\n" + "_0801A98A:\n" + "\tlsls r0, r4, 1\n" + "\tadds r2, r0, r4\n" + "\tmov r3, r9\n" + "\tadds r1, r2, r3\n" + "\tadds r5, r0, 0\n" + "\tadds r6, r4, 0x1\n" + "\tldrb r1, [r1]\n" + "\tcmp r8, r1\n" + "\tbne _0801A9EE\n" + "\tmov r0, r12\n" + "\tldrb r1, [r0, 0x1A]\n" + "\tmovs r0, 0x3\n" + "\tands r0, r1\n" + "\tcmp r0, 0x1\n" + "\tbne _0801A9EE\n" + "\tmov r0, r9\n" + "\tadds r0, 0x2\n" + "\tadds r3, r2, r0\n" + "\tldrb r0, [r3]\n" + "\tcmp r0, 0\n" + "\tbne _0801A9DC\n" + "\tmovs r2, 0\n" + "\tmovs r1, 0\n" + "\tldr r3, [sp]\n" + "_0801A9BA:\n" + "\tadds r0, r3, r1\n" + "\tldrb r0, [r0]\n" + "\tcmp r0, 0\n" + "\tbeq _0801A9C4\n" + "\tadds r2, 0x1\n" + "_0801A9C4:\n" + "\tadds r1, 0x1\n" + "\tcmp r1, 0x3\n" + "\tble _0801A9BA\n" + "\tadds r2, 0x1\n" + "\tadds r0, r5, r4\n" + "\tadd r0, r10\n" + "\tldrb r1, [r0]\n" + "\tlsls r1, 2\n" + "\tadds r1, r7\n" + "\tb _0801A9E8\n" + "\t.pool\n" + "_0801A9DC:\n" + "\tmov r1, r10\n" + "\tadds r0, r2, r1\n" + "\tldrb r1, [r0]\n" + "\tlsls r1, 2\n" + "\tadds r1, r7\n" + "\tldrb r2, [r3]\n" + "_0801A9E8:\n" + "\tldr r0, [r1]\n" + "\tadds r0, r2\n" + "\tstr r0, [r1]\n" + "_0801A9EE:\n" + "\tadds r4, r6, 0\n" + "\tcmp r4, 0x1E\n" + "\tbls _0801A98A\n" + "\tmov r0, r8\n" + "\tadd sp, 0x4\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r1}\n" + "\tbx r1"); +} +#endif //NONMATCHING -- cgit v1.2.3 From 7571969a458fefcfa242acdd4a38dce134897977 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 1 Apr 2019 22:30:30 -0400 Subject: Finish union room battle --- src/mauville_old_man.c | 2 +- src/union_room.c | 2 +- src/union_room_battle.c | 359 +++++++++++++++++++++++++++++++++++------------- 3 files changed, 264 insertions(+), 99 deletions(-) (limited to 'src') diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index ec5cb238b..ddd3f931e 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -914,7 +914,7 @@ struct Story }; static const struct Story sStorytellerStories[] = { - {GAME_STAT_50, 1, MauvilleCity_PokemonCenter_1F_Text_28E930, MauvilleCity_PokemonCenter_1F_Text_28E947, MauvilleCity_PokemonCenter_1F_Text_28E956}, + {GAME_STAT_NUM_UNION_ROOM_BATTLES, 1, MauvilleCity_PokemonCenter_1F_Text_28E930, MauvilleCity_PokemonCenter_1F_Text_28E947, MauvilleCity_PokemonCenter_1F_Text_28E956}, {GAME_STAT_STARTED_TRENDS, 1, MauvilleCity_PokemonCenter_1F_Text_28E9D7, MauvilleCity_PokemonCenter_1F_Text_28E9EF, MauvilleCity_PokemonCenter_1F_Text_28E9FE}, {GAME_STAT_PLANTED_BERRIES, 1, MauvilleCity_PokemonCenter_1F_Text_28EA7D, MauvilleCity_PokemonCenter_1F_Text_28EA98, MauvilleCity_PokemonCenter_1F_Text_28EAA8}, {GAME_STAT_TRADED_BIKES, 1, MauvilleCity_PokemonCenter_1F_Text_28EB19, MauvilleCity_PokemonCenter_1F_Text_28EB31, MauvilleCity_PokemonCenter_1F_Text_28EB3E}, diff --git a/src/union_room.c b/src/union_room.c index 88ac65baa..ea3658903 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -2332,7 +2332,7 @@ void sub_8013F90(u8 taskId) if (GetBlockReceivedStatus() == 3) { gEnemyParty[0] = *(struct Pokemon*)(gBlockRecvBuffer[GetMultiplayerId() ^ 1]); - IncrementGameStat(GAME_STAT_50); + IncrementGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES); ResetBlockReceivedFlags(); gTasks[taskId].data[0]++; } diff --git a/src/union_room_battle.c b/src/union_room_battle.c index b571e803a..9d9f9dcf3 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -9,6 +9,7 @@ #include "alloc.h" #include "menu.h" #include "window.h" +#include "text_window.h" #include "scanline_effect.h" #include "m4a.h" #include "dynamic_placeholder_text_util.h" @@ -18,6 +19,9 @@ #include "international_string_util.h" #include "sound.h" #include "constants/songs.h" +#include "party_menu.h" +#include "battle_setup.h" +#include "link.h" #include "union_room.h" #include "union_room_battle.h" @@ -31,13 +35,20 @@ struct UnkStruct_3000DAC /*0x62*/ u8 filler_62[10]; }; +struct UnkStruct_2022C6C +{ + s16 a0; +}; + IWRAM_DATA struct UnkStruct_3000DAC * gUnknown_03000DAC; IWRAM_DATA bool32 gUnknown_03000DB0; +EWRAM_DATA struct UnkStruct_2022C6C * gUnknown_02022C6C = NULL; + void sub_801A43C(void); void sub_801A6C0(u8 taskId); static void sub_801A8B0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 mode); -bool32 sub_801AA30(u32 * a0, u32 * a1, u32 * a2, u8 a3); +bool32 sub_801AA30(u32 * a0, u32 * a1, u32 * a2, u8 taskId); const u16 gWirelessInfoScreenPal[] = INCBIN_U16("graphics/interface/wireless_info_screen.gbapal"); const u32 gWirelessInfoScreenGfx[] = INCBIN_U32("graphics/interface/wireless_info_screen.4bpp.lz"); @@ -128,6 +139,29 @@ const u8 gUnknown_082F0D70[][3] = { {0x0e, 0x01, 0x02} }; +const struct BgTemplate gUnknown_082F0DD0[] = { + { + .bg = 0, + .charBaseIndex = 3, + .mapBaseIndex = 31 + } +}; + +const struct WindowTemplate gUnknown_082F0DD4[] = { + { + .bg = 0, + .tilemapLeft = 3, + .tilemapTop = 15, + .width = 24, + .height = 4, + .paletteNum = 0xE, + .baseBlock = 0x014 + }, + { 0xFF } +}; + +const u8 gUnknown_082F0DE4[] = { 1, 2, 3 }; + void sub_801A3F4(void) { if (!IsDma3ManagerBusyWithBgCopy()) @@ -333,12 +367,10 @@ static void sub_801A8B0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 m AddTextPrinterParameterized4(windowId, fontId, x, y, 0, 0, color, -1, str); } -#ifdef NONMATCHING -// register swap r2, r3 -u8 sub_801A960(struct UnkStruct_x20 * a0, u32 * a1) +u32 sub_801A960(struct UnkStruct_x20 * a0, u32 * a1) { s32 i, j, r2; - u8 result = a0->unk.field_0.unk_0a_0; + u32 result = a0->unk.field_0.unk_0a_0; for (i = 0; i < (unsigned)ARRAY_COUNT(gUnknown_082F0D70); i++) { @@ -370,97 +402,230 @@ u8 sub_801A960(struct UnkStruct_x20 * a0, u32 * a1) } return result; } -#else -NAKED -u8 sub_801A960(struct UnkStruct_x20 * a0, u32 * a1) + +bool32 sub_801AA08(u32 * a0, u32 * a1) +{ + s32 i; + for (i = 0; i < 4; i++) + { + if (a0[i] != a1[i]) + { + return TRUE; + } + } + return FALSE; +} + +bool32 sub_801AA30(u32 * a0, u32 * a1, u32 * a2, u8 taskId) +{ + bool32 r8 = FALSE; + u32 sp0[4] = {0, 0, 0, 0}; + struct UnkStruct_x20 ** data = (void *)gTasks[taskId].data; + s32 i; + + for (i = 0; i < 16; i++) + { + u32 r1 = sub_801A960(&(*data)[i], sp0); + if (r1 != a2[i]) + { + a2[i] = r1; + r8 = TRUE; + } + } + if (sub_801AA08(sp0, a1) == 0) + { + if (r8 != TRUE) + { + return FALSE; + } + } + else + { + memcpy(a0, sp0, sizeof(sp0)); + memcpy(a1, sp0, sizeof(sp0)); + a0[3] = a0[0] + a0[1] + a0[2] + a0[3]; + } + return TRUE; +} + +void sub_801AAD4(void) +{ + s32 i; + sub_8014210(10); + for (i = 0; i < 2; i++) + { + gEnemyParty[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; + } + for (i = 0; i < 6; i++) + { + ZeroMonData(&gPlayerParty[i]); + } + for (i = 0; i < 2; i++) + { + gPlayerParty[i] = gEnemyParty[i]; + } + IncrementGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES); + CalculatePlayerPartyCount(); + gTrainerBattleOpponent_A = 0xC00; + SetMainCallback2(CB2_InitBattle); +} + +void sub_801AB68(u8 windowId, const u8 * str, u8 x, u8 y, s32 speed) +{ + s32 letterSpacing = 0; + s32 lineSpacing = 1; + FillWindowPixelBuffer(windowId, (gUnknown_082F0DE4[0] << 4) | gUnknown_082F0DE4[0]); + AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, gUnknown_082F0DE4, speed, str); +} + +bool32 sub_801ABDC(s16 * state, const u8 * str, s32 speed) +{ + switch (*state) + { + case 0: + DrawTextBorderOuter(0, 0x001, 0xD); + sub_801AB68(0, str, 0, 1, speed); + PutWindowTilemap(0); + CopyWindowToVram(0, 3); + (*state)++; + break; + case 1: + if (!IsTextPrinterActive(0)) + { + *state = 0; + return TRUE; + } + break; + } + return FALSE; +} + +void sub_801AC40(void) { - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tsub sp, 0x4\n" - "\tmov r12, r0\n" - "\tadds r7, r1, 0\n" - "\tldrb r0, [r0, 0xA]\n" - "\tlsls r0, 25\n" - "\tlsrs r0, 25\n" - "\tmov r8, r0\n" - "\tmovs r4, 0\n" - "\tldr r0, =gUnknown_082F0D70\n" - "\tmov r9, r0\n" - "\tmovs r1, 0x1\n" - "\tadd r1, r9\n" - "\tmov r10, r1\n" - "\tmov r3, r12\n" - "\tadds r3, 0x4\n" - "\tstr r3, [sp]\n" - "_0801A98A:\n" - "\tlsls r0, r4, 1\n" - "\tadds r2, r0, r4\n" - "\tmov r3, r9\n" - "\tadds r1, r2, r3\n" - "\tadds r5, r0, 0\n" - "\tadds r6, r4, 0x1\n" - "\tldrb r1, [r1]\n" - "\tcmp r8, r1\n" - "\tbne _0801A9EE\n" - "\tmov r0, r12\n" - "\tldrb r1, [r0, 0x1A]\n" - "\tmovs r0, 0x3\n" - "\tands r0, r1\n" - "\tcmp r0, 0x1\n" - "\tbne _0801A9EE\n" - "\tmov r0, r9\n" - "\tadds r0, 0x2\n" - "\tadds r3, r2, r0\n" - "\tldrb r0, [r3]\n" - "\tcmp r0, 0\n" - "\tbne _0801A9DC\n" - "\tmovs r2, 0\n" - "\tmovs r1, 0\n" - "\tldr r3, [sp]\n" - "_0801A9BA:\n" - "\tadds r0, r3, r1\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, 0\n" - "\tbeq _0801A9C4\n" - "\tadds r2, 0x1\n" - "_0801A9C4:\n" - "\tadds r1, 0x1\n" - "\tcmp r1, 0x3\n" - "\tble _0801A9BA\n" - "\tadds r2, 0x1\n" - "\tadds r0, r5, r4\n" - "\tadd r0, r10\n" - "\tldrb r1, [r0]\n" - "\tlsls r1, 2\n" - "\tadds r1, r7\n" - "\tb _0801A9E8\n" - "\t.pool\n" - "_0801A9DC:\n" - "\tmov r1, r10\n" - "\tadds r0, r2, r1\n" - "\tldrb r1, [r0]\n" - "\tlsls r1, 2\n" - "\tadds r1, r7\n" - "\tldrb r2, [r3]\n" - "_0801A9E8:\n" - "\tldr r0, [r1]\n" - "\tadds r0, r2\n" - "\tstr r0, [r1]\n" - "_0801A9EE:\n" - "\tadds r4, r6, 0\n" - "\tcmp r4, 0x1E\n" - "\tbls _0801A98A\n" - "\tmov r0, r8\n" - "\tadd sp, 0x4\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r1}\n" - "\tbx r1"); + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_801AC54(void) +{ + switch (gMain.state) + { + case 0: + SetGpuReg(REG_OFFSET_DISPCNT, 0x0000); + gUnknown_02022C6C = AllocZeroed(4); + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_082F0DD0, 1); + reset_temp_tile_data_buffers(); + if (!InitWindows(gUnknown_082F0DD4)) + { + return; + } + DeactivateAllTextPrinters(); + ClearWindowTilemap(0); + FillWindowPixelBuffer(0, 0x00); + FillWindowPixelBuffer(0, 0x11); + FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 0xF); + LoadUserWindowBorderGfx(0, 1, 0xD0); + LoadUserWindowBorderGfx_(0, 1, 0xD0); + sub_819789C(); + SetVBlankCallback(sub_801AC40); + gMain.state++; + break; + case 1: + if (sub_801ABDC(&gUnknown_02022C6C->a0, gText_CommStandbyAwaitingOtherPlayer, 0)) + { + gMain.state++; + } + break; + case 2: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + ShowBg(0); + gMain.state++; + break; + case 3: + if (!UpdatePaletteFade()) + { + memset(gBlockSendBuffer, 0, 0x20); + if (gSelectedOrderFromParty[0] == -gSelectedOrderFromParty[1]) + { + gBlockSendBuffer[0] = 0x52; + } + else + { + gBlockSendBuffer[0] = 0x51; + } + SendBlock(0, gBlockSendBuffer, 0x20); + gMain.state++; + } + break; + case 4: + if (GetBlockReceivedStatus() == 3) + { + if (gBlockRecvBuffer[0][0] == 0x51 && gBlockRecvBuffer[1][0] == 0x51) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gMain.state = 50; + } + else + { + sub_800AC34(); + if (gBlockRecvBuffer[GetMultiplayerId()][0] == 0x52) + { + gMain.state = 6; + } + else + { + gMain.state = 8; + } + } + ResetBlockReceivedFlags(); + } + break; + case 50: + if (!UpdatePaletteFade()) + { + sub_800ADF8(); + gMain.state++; + } + break; + case 51: + if (IsLinkTaskFinished()) + { + SetMainCallback2(sub_801AAD4); + } + break; + case 6: + if (gReceivedRemoteLinkPlayers == 0) + { + gMain.state++; + } + break; + case 7: + if (sub_801ABDC(&gUnknown_02022C6C->a0, gText_RefusedBattle, 1)) + { + SetMainCallback2(CB2_ReturnToField); + } + break; + case 8: + if (gReceivedRemoteLinkPlayers == 0) + { + gMain.state++; + } + break; + case 9: + if (sub_801ABDC(&gUnknown_02022C6C->a0, gText_BattleWasRefused, 1)) + { + SetMainCallback2(CB2_ReturnToField); + } + break; + } + RunTasks(); + RunTextPrinters(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); } -#endif //NONMATCHING -- cgit v1.2.3 From ca9f7fe3563b84504d499bdb291ca10d38cbf229 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 2 Apr 2019 00:59:01 -0400 Subject: Fix hardcoded array sizes --- src/pokenav_match_call.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/pokenav_match_call.c b/src/pokenav_match_call.c index b775ed10e..0a21c4edc 100644 --- a/src/pokenav_match_call.c +++ b/src/pokenav_match_call.c @@ -680,7 +680,7 @@ bool32 MatchCallFlagGetByIndex(u32 idx) match_call_t matchCall; u32 i; - if (idx > 20) + if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1) return FALSE; matchCall = sMatchCallHeaders[idx]; i = MatchCallGetFunctionIndex(matchCall); @@ -727,7 +727,7 @@ u8 sub_81D16DC(u32 idx) match_call_t matchCall; u32 i; - if (idx > 20) + if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1) return 0; matchCall = sMatchCallHeaders[idx]; i = MatchCallGetFunctionIndex(matchCall); @@ -771,7 +771,7 @@ bool32 MatchCall_IsRematchable(u32 idx) match_call_t matchCall; u32 i; - if (idx > 20) + if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1) return 0; matchCall = sMatchCallHeaders[idx]; i = MatchCallGetFunctionIndex(matchCall); @@ -810,13 +810,13 @@ bool32 sub_81D17E8(u32 idx) match_call_t matchCall; u32 i; - if (idx > 20) + if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1) return FALSE; matchCall = sMatchCallHeaders[idx]; i = MatchCallGetFunctionIndex(matchCall); if (gUnknown_08625338[i](matchCall)) return TRUE; - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sMatchCallCheckPageOverrides); i++) { if (sMatchCallCheckPageOverrides[i].idx == idx) return TRUE; @@ -854,7 +854,7 @@ u32 MatchCall_GetRematchTableIdx(u32 idx) match_call_t matchCall; u32 i; - if (idx > 20) + if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1) return REMATCH_TABLE_ENTRIES; matchCall = sMatchCallHeaders[idx]; i = MatchCallGetFunctionIndex(matchCall); @@ -891,7 +891,7 @@ void MatchCall_GetMessage(u32 idx, u8 *dest) match_call_t matchCall; u32 i; - if (idx > 20) + if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1) return; matchCall = sMatchCallHeaders[idx]; i = MatchCallGetFunctionIndex(matchCall); @@ -1093,7 +1093,7 @@ void sub_81D1A78(u32 idx, const u8 **desc, const u8 **name) match_call_t matchCall; u32 i; - if (idx > 20) + if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1) return; matchCall = sMatchCallHeaders[idx]; i = MatchCallGetFunctionIndex(matchCall); @@ -1146,11 +1146,11 @@ const u8 *sub_81D1B40(u32 idx, u32 offset) { u32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sMatchCallCheckPageOverrides); i++) { if (sMatchCallCheckPageOverrides[i].idx == idx) { - for (; i + 1 < 4 && sMatchCallCheckPageOverrides[i + 1].idx == idx; i++) + for (; i + 1 < ARRAY_COUNT(sMatchCallCheckPageOverrides) && sMatchCallCheckPageOverrides[i + 1].idx == idx; i++) { if (!FlagGet(sMatchCallCheckPageOverrides[i + 1].v4)) break; @@ -1244,7 +1244,7 @@ s32 sub_81D1BD0(u32 idx) { u32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sMatchCallCheckPageOverrides); i++) { if (sMatchCallCheckPageOverrides[i].idx == idx) return sMatchCallCheckPageOverrides[i].v2; @@ -1256,7 +1256,7 @@ bool32 sub_81D1BF8(u32 idx) { s32 i; - for (i = 0; i < 21; i++) + for (i = 0; i < (s32)ARRAY_COUNT(sMatchCallHeaders); i++) { u32 r0 = MatchCall_GetRematchTableIdx(i); if (r0 != REMATCH_TABLE_ENTRIES && r0 == idx) -- cgit v1.2.3 From 65d8b68f9db02252ae5e4ba8ee779218eb67f135 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 2 Apr 2019 01:10:20 -0400 Subject: Expicitly hardcode rematch indecies Inserting an entry without updating the indecies will now cause a compiler error. This will make it easier for modders to remember to update the constants. --- src/battle_setup.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/battle_setup.c b/src/battle_setup.c index 347486a0b..cb7b63ebe 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -296,7 +296,8 @@ const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES] = {{TRAINER_TRENT_1, TRAINER_TRENT_2, TRAINER_TRENT_3, TRAINER_TRENT_4, TRAINER_TRENT_5}, 0x0, 0x1b}, {{TRAINER_SAWYER_1, TRAINER_SAWYER_2, TRAINER_SAWYER_3, TRAINER_SAWYER_4, TRAINER_SAWYER_5}, 0x18, 0xc}, {{TRAINER_KIRA_AND_DAN_1, TRAINER_KIRA_AND_DAN_2, TRAINER_KIRA_AND_DAN_3, TRAINER_KIRA_AND_DAN_4, TRAINER_KIRA_AND_DAN_5}, 0x18, 0x3e}, - {{TRAINER_WALLY_3, TRAINER_WALLY_4, TRAINER_WALLY_5, TRAINER_WALLY_6, TRAINER_WALLY_6}, 0x18, 0x2b}, + // Wally's entry index is hardcoded. + [REMATCH_WALLY_ENTRY] = {{TRAINER_WALLY_3, TRAINER_WALLY_4, TRAINER_WALLY_5, TRAINER_WALLY_6, TRAINER_WALLY_6}, 0x18, 0x2b}, {{TRAINER_ROXANNE_1, TRAINER_ROXANNE_2, TRAINER_ROXANNE_3, TRAINER_ROXANNE_4, TRAINER_ROXANNE_5}, 0x0, 0x3}, {{TRAINER_BRAWLY_1, TRAINER_BRAWLY_2, TRAINER_BRAWLY_3, TRAINER_BRAWLY_4, TRAINER_BRAWLY_5}, 0x0, 0xb}, {{TRAINER_WATTSON_1, TRAINER_WATTSON_2, TRAINER_WATTSON_3, TRAINER_WATTSON_4, TRAINER_WATTSON_5}, 0x0, 0x2}, @@ -305,7 +306,8 @@ const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES] = {{TRAINER_WINONA_1, TRAINER_WINONA_2, TRAINER_WINONA_3, TRAINER_WINONA_4, TRAINER_WINONA_5}, 0x0, 0x4}, {{TRAINER_TATE_AND_LIZA_1, TRAINER_TATE_AND_LIZA_2, TRAINER_TATE_AND_LIZA_3, TRAINER_TATE_AND_LIZA_4, TRAINER_TATE_AND_LIZA_5}, 0x0, 0x6}, {{TRAINER_JUAN_1, TRAINER_JUAN_2, TRAINER_JUAN_3, TRAINER_JUAN_4, TRAINER_JUAN_5}, 0x0, 0x7}, - {{TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY}, 0x0, 0x8}, + + [REMATCH_ELITE_FOUR_ENTRIES] = {{TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY}, 0x0, 0x8}, {{TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE}, 0x0, 0x8}, {{TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA}, 0x0, 0x8}, {{TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE}, 0x0, 0x8}, -- cgit v1.2.3 From 6916f09cd5cdb508e270bfba40f1bd165a16762f Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 2 Apr 2019 03:22:07 -0400 Subject: Expand MatchCallStruct defs, use REMATCH_* enum --- src/battle_setup.c | 162 ++++++++++++++++---------------- src/pokenav_match_call.c | 236 +++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 286 insertions(+), 112 deletions(-) (limited to 'src') diff --git a/src/battle_setup.c b/src/battle_setup.c index cb7b63ebe..7395c175b 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -232,86 +232,84 @@ static const struct TrainerBattleParameter sTrainerBContinueScriptBattleParams[] const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES] = { - {{TRAINER_ROSE_1, TRAINER_ROSE_2, TRAINER_ROSE_3, TRAINER_ROSE_4, TRAINER_ROSE_5}, 0x0, 0x21}, - {{TRAINER_ANDRES_1, TRAINER_ANDRES_2, TRAINER_ANDRES_3, TRAINER_ANDRES_4, TRAINER_ANDRES_5}, 0x0, 0x14}, - {{TRAINER_DUSTY_1, TRAINER_DUSTY_2, TRAINER_DUSTY_3, TRAINER_DUSTY_4, TRAINER_DUSTY_5}, 0x0, 0x1a}, - {{TRAINER_LOLA_1, TRAINER_LOLA_2, TRAINER_LOLA_3, TRAINER_LOLA_4, TRAINER_LOLA_5}, 0x0, 0x18}, - {{TRAINER_RICKY_1, TRAINER_RICKY_2, TRAINER_RICKY_3, TRAINER_RICKY_4, TRAINER_RICKY_5}, 0x0, 0x18}, - {{TRAINER_LILA_AND_ROY_1, TRAINER_LILA_AND_ROY_2, TRAINER_LILA_AND_ROY_3, TRAINER_LILA_AND_ROY_4, TRAINER_LILA_AND_ROY_5}, 0x0, 0x27}, - {{TRAINER_CRISTIN_1, TRAINER_CRISTIN_2, TRAINER_CRISTIN_3, TRAINER_CRISTIN_4, TRAINER_CRISTIN_5}, 0x0, 0x24}, - {{TRAINER_BROOKE_1, TRAINER_BROOKE_2, TRAINER_BROOKE_3, TRAINER_BROOKE_4, TRAINER_BROOKE_5}, 0x0, 0x1a}, - {{TRAINER_WILTON_1, TRAINER_WILTON_2, TRAINER_WILTON_3, TRAINER_WILTON_4, TRAINER_WILTON_5}, 0x0, 0x1a}, - {{TRAINER_VALERIE_1, TRAINER_VALERIE_2, TRAINER_VALERIE_3, TRAINER_VALERIE_4, TRAINER_VALERIE_5}, 0x18, 0x14}, - {{TRAINER_CINDY_1, TRAINER_CINDY_3, TRAINER_CINDY_4, TRAINER_CINDY_5, TRAINER_CINDY_6}, 0x0, 0x13}, - {{TRAINER_THALIA_1, TRAINER_THALIA_2, TRAINER_THALIA_3, TRAINER_THALIA_4, TRAINER_THALIA_5}, 0x18, 0x38}, - {{TRAINER_JESSICA_1, TRAINER_JESSICA_2, TRAINER_JESSICA_3, TRAINER_JESSICA_4, TRAINER_JESSICA_5}, 0x0, 0x24}, - {{TRAINER_WINSTON_1, TRAINER_WINSTON_2, TRAINER_WINSTON_3, TRAINER_WINSTON_4, TRAINER_WINSTON_5}, 0x0, 0x13}, - {{TRAINER_STEVE_1, TRAINER_STEVE_2, TRAINER_STEVE_3, TRAINER_STEVE_4, TRAINER_STEVE_5}, 0x0, 0x1d}, - {{TRAINER_TONY_1, TRAINER_TONY_2, TRAINER_TONY_3, TRAINER_TONY_4, TRAINER_TONY_5}, 0x0, 0x16}, - {{TRAINER_NOB_1, TRAINER_NOB_2, TRAINER_NOB_3, TRAINER_NOB_4, TRAINER_NOB_5}, 0x0, 0x1e}, - {{TRAINER_KOJI_1, TRAINER_KOJI_2, TRAINER_KOJI_3, TRAINER_KOJI_4, TRAINER_KOJI_5}, 0x0, 0x2a}, - {{TRAINER_FERNANDO_1, TRAINER_FERNANDO_2, TRAINER_FERNANDO_3, TRAINER_FERNANDO_4, TRAINER_FERNANDO_5}, 0x0, 0x26}, - {{TRAINER_DALTON_1, TRAINER_DALTON_2, TRAINER_DALTON_3, TRAINER_DALTON_4, TRAINER_DALTON_5}, 0x0, 0x21}, - {{TRAINER_BERNIE_1, TRAINER_BERNIE_2, TRAINER_BERNIE_3, TRAINER_BERNIE_4, TRAINER_BERNIE_5}, 0x0, 0x1d}, - {{TRAINER_ETHAN_1, TRAINER_ETHAN_2, TRAINER_ETHAN_3, TRAINER_ETHAN_4, TRAINER_ETHAN_5}, 0x18, 0xd}, - {{TRAINER_JOHN_AND_JAY_1, TRAINER_JOHN_AND_JAY_2, TRAINER_JOHN_AND_JAY_3, TRAINER_JOHN_AND_JAY_4, TRAINER_JOHN_AND_JAY_5}, 0x18, 0x1}, - {{TRAINER_JEFFREY_1, TRAINER_JEFFREY_2, TRAINER_JEFFREY_3, TRAINER_JEFFREY_4, TRAINER_JEFFREY_5}, 0x0, 0x23}, - {{TRAINER_CAMERON_1, TRAINER_CAMERON_2, TRAINER_CAMERON_3, TRAINER_CAMERON_4, TRAINER_CAMERON_5}, 0x0, 0x26}, - {{TRAINER_JACKI_1, TRAINER_JACKI_2, TRAINER_JACKI_3, TRAINER_JACKI_4, TRAINER_JACKI_5}, 0x0, 0x26}, - {{TRAINER_WALTER_1, TRAINER_WALTER_2, TRAINER_WALTER_3, TRAINER_WALTER_4, TRAINER_WALTER_5}, 0x0, 0x24}, - {{TRAINER_KAREN_1, TRAINER_KAREN_2, TRAINER_KAREN_3, TRAINER_KAREN_4, TRAINER_KAREN_5}, 0x0, 0x1f}, - {{TRAINER_JERRY_1, TRAINER_JERRY_2, TRAINER_JERRY_3, TRAINER_JERRY_4, TRAINER_JERRY_5}, 0x0, 0x1f}, - {{TRAINER_ANNA_AND_MEG_1, TRAINER_ANNA_AND_MEG_2, TRAINER_ANNA_AND_MEG_3, TRAINER_ANNA_AND_MEG_4, TRAINER_ANNA_AND_MEG_5}, 0x0, 0x20}, - {{TRAINER_ISABEL_1, TRAINER_ISABEL_2, TRAINER_ISABEL_3, TRAINER_ISABEL_4, TRAINER_ISABEL_5}, 0x0, 0x19}, - {{TRAINER_MIGUEL_1, TRAINER_MIGUEL_2, TRAINER_MIGUEL_3, TRAINER_MIGUEL_4, TRAINER_MIGUEL_5}, 0x0, 0x12}, - {{TRAINER_TIMOTHY_1, TRAINER_TIMOTHY_2, TRAINER_TIMOTHY_3, TRAINER_TIMOTHY_4, TRAINER_TIMOTHY_5}, 0x0, 0x1e}, - {{TRAINER_SHELBY_1, TRAINER_SHELBY_2, TRAINER_SHELBY_3, TRAINER_SHELBY_4, TRAINER_SHELBY_5}, 0x18, 0xc}, - {{TRAINER_CALVIN_1, TRAINER_CALVIN_2, TRAINER_CALVIN_3, TRAINER_CALVIN_4, TRAINER_CALVIN_5}, 0x0, 0x11}, - {{TRAINER_ELLIOT_1, TRAINER_ELLIOT_2, TRAINER_ELLIOT_3, TRAINER_ELLIOT_4, TRAINER_ELLIOT_5}, 0x0, 0x15}, - {{TRAINER_ISAIAH_1, TRAINER_ISAIAH_2, TRAINER_ISAIAH_3, TRAINER_ISAIAH_4, TRAINER_ISAIAH_5}, 0x0, 0x2b}, - {{TRAINER_MARIA_1, TRAINER_MARIA_2, TRAINER_MARIA_3, TRAINER_MARIA_4, TRAINER_MARIA_5}, 0x0, 0x20}, - {{TRAINER_ABIGAIL_1, TRAINER_ABIGAIL_2, TRAINER_ABIGAIL_3, TRAINER_ABIGAIL_4, TRAINER_ABIGAIL_5}, 0x0, 0x19}, - {{TRAINER_DYLAN_1, TRAINER_DYLAN_2, TRAINER_DYLAN_3, TRAINER_DYLAN_4, TRAINER_DYLAN_5}, 0x0, 0x20}, - {{TRAINER_KATELYN_1, TRAINER_KATELYN_2, TRAINER_KATELYN_3, TRAINER_KATELYN_4, TRAINER_KATELYN_5}, 0x0, 0x2b}, - {{TRAINER_BENJAMIN_1, TRAINER_BENJAMIN_2, TRAINER_BENJAMIN_3, TRAINER_BENJAMIN_4, TRAINER_BENJAMIN_5}, 0x0, 0x19}, - {{TRAINER_PABLO_1, TRAINER_PABLO_2, TRAINER_PABLO_3, TRAINER_PABLO_4, TRAINER_PABLO_5}, 0x0, 0x29}, - {{TRAINER_NICOLAS_1, TRAINER_NICOLAS_2, TRAINER_NICOLAS_3, TRAINER_NICOLAS_4, TRAINER_NICOLAS_5}, 0x18, 0x1}, - {{TRAINER_ROBERT_1, TRAINER_ROBERT_2, TRAINER_ROBERT_3, TRAINER_ROBERT_4, TRAINER_ROBERT_5}, 0x0, 0x23}, - {{TRAINER_LAO_1, TRAINER_LAO_2, TRAINER_LAO_3, TRAINER_LAO_4, TRAINER_LAO_5}, 0x0, 0x1c}, - {{TRAINER_CYNDY_1, TRAINER_CYNDY_2, TRAINER_CYNDY_3, TRAINER_CYNDY_4, TRAINER_CYNDY_5}, 0x0, 0x1e}, - {{TRAINER_MADELINE_1, TRAINER_MADELINE_2, TRAINER_MADELINE_3, TRAINER_MADELINE_4, TRAINER_MADELINE_5}, 0x0, 0x1c}, - {{TRAINER_JENNY_1, TRAINER_JENNY_2, TRAINER_JENNY_3, TRAINER_JENNY_4, TRAINER_JENNY_5}, 0x0, 0x27}, - {{TRAINER_DIANA_1, TRAINER_DIANA_2, TRAINER_DIANA_3, TRAINER_DIANA_4, TRAINER_DIANA_5}, 0x18, 0xd}, - {{TRAINER_AMY_AND_LIV_1, TRAINER_AMY_AND_LIV_2, TRAINER_AMY_AND_LIV_4, TRAINER_AMY_AND_LIV_5, TRAINER_AMY_AND_LIV_6}, 0x0, 0x12}, - {{TRAINER_ERNEST_1, TRAINER_ERNEST_2, TRAINER_ERNEST_3, TRAINER_ERNEST_4, TRAINER_ERNEST_5}, 0x0, 0x28}, - {{TRAINER_CORY_1, TRAINER_CORY_2, TRAINER_CORY_3, TRAINER_CORY_4, TRAINER_CORY_5}, 0x0, 0x17}, - {{TRAINER_EDWIN_1, TRAINER_EDWIN_2, TRAINER_EDWIN_3, TRAINER_EDWIN_4, TRAINER_EDWIN_5}, 0x0, 0x19}, - {{TRAINER_LYDIA_1, TRAINER_LYDIA_2, TRAINER_LYDIA_3, TRAINER_LYDIA_4, TRAINER_LYDIA_5}, 0x0, 0x20}, - {{TRAINER_ISAAC_1, TRAINER_ISAAC_2, TRAINER_ISAAC_3, TRAINER_ISAAC_4, TRAINER_ISAAC_5}, 0x0, 0x20}, - {{TRAINER_GABRIELLE_1, TRAINER_GABRIELLE_2, TRAINER_GABRIELLE_3, TRAINER_GABRIELLE_4, TRAINER_GABRIELLE_5}, 0x18, 0x11}, - {{TRAINER_CATHERINE_1, TRAINER_CATHERINE_2, TRAINER_CATHERINE_3, TRAINER_CATHERINE_4, TRAINER_CATHERINE_5}, 0x0, 0x22}, - {{TRAINER_JACKSON_1, TRAINER_JACKSON_2, TRAINER_JACKSON_3, TRAINER_JACKSON_4, TRAINER_JACKSON_5}, 0x0, 0x22}, - {{TRAINER_HALEY_1, TRAINER_HALEY_2, TRAINER_HALEY_3, TRAINER_HALEY_4, TRAINER_HALEY_5}, 0x0, 0x13}, - {{TRAINER_JAMES_1, TRAINER_JAMES_2, TRAINER_JAMES_3, TRAINER_JAMES_4, TRAINER_JAMES_5}, 0x18, 0xb}, - {{TRAINER_TRENT_1, TRAINER_TRENT_2, TRAINER_TRENT_3, TRAINER_TRENT_4, TRAINER_TRENT_5}, 0x0, 0x1b}, - {{TRAINER_SAWYER_1, TRAINER_SAWYER_2, TRAINER_SAWYER_3, TRAINER_SAWYER_4, TRAINER_SAWYER_5}, 0x18, 0xc}, - {{TRAINER_KIRA_AND_DAN_1, TRAINER_KIRA_AND_DAN_2, TRAINER_KIRA_AND_DAN_3, TRAINER_KIRA_AND_DAN_4, TRAINER_KIRA_AND_DAN_5}, 0x18, 0x3e}, - // Wally's entry index is hardcoded. - [REMATCH_WALLY_ENTRY] = {{TRAINER_WALLY_3, TRAINER_WALLY_4, TRAINER_WALLY_5, TRAINER_WALLY_6, TRAINER_WALLY_6}, 0x18, 0x2b}, - {{TRAINER_ROXANNE_1, TRAINER_ROXANNE_2, TRAINER_ROXANNE_3, TRAINER_ROXANNE_4, TRAINER_ROXANNE_5}, 0x0, 0x3}, - {{TRAINER_BRAWLY_1, TRAINER_BRAWLY_2, TRAINER_BRAWLY_3, TRAINER_BRAWLY_4, TRAINER_BRAWLY_5}, 0x0, 0xb}, - {{TRAINER_WATTSON_1, TRAINER_WATTSON_2, TRAINER_WATTSON_3, TRAINER_WATTSON_4, TRAINER_WATTSON_5}, 0x0, 0x2}, - {{TRAINER_FLANNERY_1, TRAINER_FLANNERY_2, TRAINER_FLANNERY_3, TRAINER_FLANNERY_4, TRAINER_FLANNERY_5}, 0x0, 0xc}, - {{TRAINER_NORMAN_1, TRAINER_NORMAN_2, TRAINER_NORMAN_3, TRAINER_NORMAN_4, TRAINER_NORMAN_5}, 0x0, 0x0}, - {{TRAINER_WINONA_1, TRAINER_WINONA_2, TRAINER_WINONA_3, TRAINER_WINONA_4, TRAINER_WINONA_5}, 0x0, 0x4}, - {{TRAINER_TATE_AND_LIZA_1, TRAINER_TATE_AND_LIZA_2, TRAINER_TATE_AND_LIZA_3, TRAINER_TATE_AND_LIZA_4, TRAINER_TATE_AND_LIZA_5}, 0x0, 0x6}, - {{TRAINER_JUAN_1, TRAINER_JUAN_2, TRAINER_JUAN_3, TRAINER_JUAN_4, TRAINER_JUAN_5}, 0x0, 0x7}, - - [REMATCH_ELITE_FOUR_ENTRIES] = {{TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY}, 0x0, 0x8}, - {{TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE}, 0x0, 0x8}, - {{TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA}, 0x0, 0x8}, - {{TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE}, 0x0, 0x8}, - {{TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE}, 0x0, 0x8}, + [REMATCH_ROSE] = {{TRAINER_ROSE_1, TRAINER_ROSE_2, TRAINER_ROSE_3, TRAINER_ROSE_4, TRAINER_ROSE_5}, 0x0, 0x21}, + [REMATCH_ANDRES] = {{TRAINER_ANDRES_1, TRAINER_ANDRES_2, TRAINER_ANDRES_3, TRAINER_ANDRES_4, TRAINER_ANDRES_5}, 0x0, 0x14}, + [REMATCH_DUSTY] = {{TRAINER_DUSTY_1, TRAINER_DUSTY_2, TRAINER_DUSTY_3, TRAINER_DUSTY_4, TRAINER_DUSTY_5}, 0x0, 0x1a}, + [REMATCH_LOLA] = {{TRAINER_LOLA_1, TRAINER_LOLA_2, TRAINER_LOLA_3, TRAINER_LOLA_4, TRAINER_LOLA_5}, 0x0, 0x18}, + [REMATCH_RICKY] = {{TRAINER_RICKY_1, TRAINER_RICKY_2, TRAINER_RICKY_3, TRAINER_RICKY_4, TRAINER_RICKY_5}, 0x0, 0x18}, + [REMATCH_LILA_AND_ROY] = {{TRAINER_LILA_AND_ROY_1, TRAINER_LILA_AND_ROY_2, TRAINER_LILA_AND_ROY_3, TRAINER_LILA_AND_ROY_4, TRAINER_LILA_AND_ROY_5}, 0x0, 0x27}, + [REMATCH_CRISTIN] = {{TRAINER_CRISTIN_1, TRAINER_CRISTIN_2, TRAINER_CRISTIN_3, TRAINER_CRISTIN_4, TRAINER_CRISTIN_5}, 0x0, 0x24}, + [REMATCH_BROOKE] = {{TRAINER_BROOKE_1, TRAINER_BROOKE_2, TRAINER_BROOKE_3, TRAINER_BROOKE_4, TRAINER_BROOKE_5}, 0x0, 0x1a}, + [REMATCH_WILTON] = {{TRAINER_WILTON_1, TRAINER_WILTON_2, TRAINER_WILTON_3, TRAINER_WILTON_4, TRAINER_WILTON_5}, 0x0, 0x1a}, + [REMATCH_VALERIE] = {{TRAINER_VALERIE_1, TRAINER_VALERIE_2, TRAINER_VALERIE_3, TRAINER_VALERIE_4, TRAINER_VALERIE_5}, 0x18, 0x14}, + [REMATCH_CINDY] = {{TRAINER_CINDY_1, TRAINER_CINDY_3, TRAINER_CINDY_4, TRAINER_CINDY_5, TRAINER_CINDY_6}, 0x0, 0x13}, + [REMATCH_THALIA] = {{TRAINER_THALIA_1, TRAINER_THALIA_2, TRAINER_THALIA_3, TRAINER_THALIA_4, TRAINER_THALIA_5}, 0x18, 0x38}, + [REMATCH_JESSICA] = {{TRAINER_JESSICA_1, TRAINER_JESSICA_2, TRAINER_JESSICA_3, TRAINER_JESSICA_4, TRAINER_JESSICA_5}, 0x0, 0x24}, + [REMATCH_WINSTON] = {{TRAINER_WINSTON_1, TRAINER_WINSTON_2, TRAINER_WINSTON_3, TRAINER_WINSTON_4, TRAINER_WINSTON_5}, 0x0, 0x13}, + [REMATCH_STEVE] = {{TRAINER_STEVE_1, TRAINER_STEVE_2, TRAINER_STEVE_3, TRAINER_STEVE_4, TRAINER_STEVE_5}, 0x0, 0x1d}, + [REMATCH_TONY] = {{TRAINER_TONY_1, TRAINER_TONY_2, TRAINER_TONY_3, TRAINER_TONY_4, TRAINER_TONY_5}, 0x0, 0x16}, + [REMATCH_NOB] = {{TRAINER_NOB_1, TRAINER_NOB_2, TRAINER_NOB_3, TRAINER_NOB_4, TRAINER_NOB_5}, 0x0, 0x1e}, + [REMATCH_KOJI] = {{TRAINER_KOJI_1, TRAINER_KOJI_2, TRAINER_KOJI_3, TRAINER_KOJI_4, TRAINER_KOJI_5}, 0x0, 0x2a}, + [REMATCH_FERNANDO] = {{TRAINER_FERNANDO_1, TRAINER_FERNANDO_2, TRAINER_FERNANDO_3, TRAINER_FERNANDO_4, TRAINER_FERNANDO_5}, 0x0, 0x26}, + [REMATCH_DALTON] = {{TRAINER_DALTON_1, TRAINER_DALTON_2, TRAINER_DALTON_3, TRAINER_DALTON_4, TRAINER_DALTON_5}, 0x0, 0x21}, + [REMATCH_BERNIE] = {{TRAINER_BERNIE_1, TRAINER_BERNIE_2, TRAINER_BERNIE_3, TRAINER_BERNIE_4, TRAINER_BERNIE_5}, 0x0, 0x1d}, + [REMATCH_ETHAN] = {{TRAINER_ETHAN_1, TRAINER_ETHAN_2, TRAINER_ETHAN_3, TRAINER_ETHAN_4, TRAINER_ETHAN_5}, 0x18, 0xd}, + [REMATCH_JOHN_AND_JAY] = {{TRAINER_JOHN_AND_JAY_1, TRAINER_JOHN_AND_JAY_2, TRAINER_JOHN_AND_JAY_3, TRAINER_JOHN_AND_JAY_4, TRAINER_JOHN_AND_JAY_5}, 0x18, 0x1}, + [REMATCH_JEFFREY] = {{TRAINER_JEFFREY_1, TRAINER_JEFFREY_2, TRAINER_JEFFREY_3, TRAINER_JEFFREY_4, TRAINER_JEFFREY_5}, 0x0, 0x23}, + [REMATCH_CAMERON] = {{TRAINER_CAMERON_1, TRAINER_CAMERON_2, TRAINER_CAMERON_3, TRAINER_CAMERON_4, TRAINER_CAMERON_5}, 0x0, 0x26}, + [REMATCH_JACKI] = {{TRAINER_JACKI_1, TRAINER_JACKI_2, TRAINER_JACKI_3, TRAINER_JACKI_4, TRAINER_JACKI_5}, 0x0, 0x26}, + [REMATCH_WALTER] = {{TRAINER_WALTER_1, TRAINER_WALTER_2, TRAINER_WALTER_3, TRAINER_WALTER_4, TRAINER_WALTER_5}, 0x0, 0x24}, + [REMATCH_KAREN] = {{TRAINER_KAREN_1, TRAINER_KAREN_2, TRAINER_KAREN_3, TRAINER_KAREN_4, TRAINER_KAREN_5}, 0x0, 0x1f}, + [REMATCH_JERRY] = {{TRAINER_JERRY_1, TRAINER_JERRY_2, TRAINER_JERRY_3, TRAINER_JERRY_4, TRAINER_JERRY_5}, 0x0, 0x1f}, + [REMATCH_ANNA_AND_MEG] = {{TRAINER_ANNA_AND_MEG_1, TRAINER_ANNA_AND_MEG_2, TRAINER_ANNA_AND_MEG_3, TRAINER_ANNA_AND_MEG_4, TRAINER_ANNA_AND_MEG_5}, 0x0, 0x20}, + [REMATCH_ISABEL] = {{TRAINER_ISABEL_1, TRAINER_ISABEL_2, TRAINER_ISABEL_3, TRAINER_ISABEL_4, TRAINER_ISABEL_5}, 0x0, 0x19}, + [REMATCH_MIGUEL] = {{TRAINER_MIGUEL_1, TRAINER_MIGUEL_2, TRAINER_MIGUEL_3, TRAINER_MIGUEL_4, TRAINER_MIGUEL_5}, 0x0, 0x12}, + [REMATCH_TIMOTHY] = {{TRAINER_TIMOTHY_1, TRAINER_TIMOTHY_2, TRAINER_TIMOTHY_3, TRAINER_TIMOTHY_4, TRAINER_TIMOTHY_5}, 0x0, 0x1e}, + [REMATCH_SHELBY] = {{TRAINER_SHELBY_1, TRAINER_SHELBY_2, TRAINER_SHELBY_3, TRAINER_SHELBY_4, TRAINER_SHELBY_5}, 0x18, 0xc}, + [REMATCH_CALVIN] = {{TRAINER_CALVIN_1, TRAINER_CALVIN_2, TRAINER_CALVIN_3, TRAINER_CALVIN_4, TRAINER_CALVIN_5}, 0x0, 0x11}, + [REMATCH_ELLIOT] = {{TRAINER_ELLIOT_1, TRAINER_ELLIOT_2, TRAINER_ELLIOT_3, TRAINER_ELLIOT_4, TRAINER_ELLIOT_5}, 0x0, 0x15}, + [REMATCH_ISAIAH] = {{TRAINER_ISAIAH_1, TRAINER_ISAIAH_2, TRAINER_ISAIAH_3, TRAINER_ISAIAH_4, TRAINER_ISAIAH_5}, 0x0, 0x2b}, + [REMATCH_MARIA] = {{TRAINER_MARIA_1, TRAINER_MARIA_2, TRAINER_MARIA_3, TRAINER_MARIA_4, TRAINER_MARIA_5}, 0x0, 0x20}, + [REMATCH_ABIGAIL] = {{TRAINER_ABIGAIL_1, TRAINER_ABIGAIL_2, TRAINER_ABIGAIL_3, TRAINER_ABIGAIL_4, TRAINER_ABIGAIL_5}, 0x0, 0x19}, + [REMATCH_DYLAN] = {{TRAINER_DYLAN_1, TRAINER_DYLAN_2, TRAINER_DYLAN_3, TRAINER_DYLAN_4, TRAINER_DYLAN_5}, 0x0, 0x20}, + [REMATCH_KATELYN] = {{TRAINER_KATELYN_1, TRAINER_KATELYN_2, TRAINER_KATELYN_3, TRAINER_KATELYN_4, TRAINER_KATELYN_5}, 0x0, 0x2b}, + [REMATCH_BENJAMIN] = {{TRAINER_BENJAMIN_1, TRAINER_BENJAMIN_2, TRAINER_BENJAMIN_3, TRAINER_BENJAMIN_4, TRAINER_BENJAMIN_5}, 0x0, 0x19}, + [REMATCH_PABLO] = {{TRAINER_PABLO_1, TRAINER_PABLO_2, TRAINER_PABLO_3, TRAINER_PABLO_4, TRAINER_PABLO_5}, 0x0, 0x29}, + [REMATCH_NICOLAS] = {{TRAINER_NICOLAS_1, TRAINER_NICOLAS_2, TRAINER_NICOLAS_3, TRAINER_NICOLAS_4, TRAINER_NICOLAS_5}, 0x18, 0x1}, + [REMATCH_ROBERT] = {{TRAINER_ROBERT_1, TRAINER_ROBERT_2, TRAINER_ROBERT_3, TRAINER_ROBERT_4, TRAINER_ROBERT_5}, 0x0, 0x23}, + [REMATCH_LAO] = {{TRAINER_LAO_1, TRAINER_LAO_2, TRAINER_LAO_3, TRAINER_LAO_4, TRAINER_LAO_5}, 0x0, 0x1c}, + [REMATCH_CYNDY] = {{TRAINER_CYNDY_1, TRAINER_CYNDY_2, TRAINER_CYNDY_3, TRAINER_CYNDY_4, TRAINER_CYNDY_5}, 0x0, 0x1e}, + [REMATCH_MADELINE] = {{TRAINER_MADELINE_1, TRAINER_MADELINE_2, TRAINER_MADELINE_3, TRAINER_MADELINE_4, TRAINER_MADELINE_5}, 0x0, 0x1c}, + [REMATCH_JENNY] = {{TRAINER_JENNY_1, TRAINER_JENNY_2, TRAINER_JENNY_3, TRAINER_JENNY_4, TRAINER_JENNY_5}, 0x0, 0x27}, + [REMATCH_DIANA] = {{TRAINER_DIANA_1, TRAINER_DIANA_2, TRAINER_DIANA_3, TRAINER_DIANA_4, TRAINER_DIANA_5}, 0x18, 0xd}, + [REMATCH_AMY_AND_LIV] = {{TRAINER_AMY_AND_LIV_1, TRAINER_AMY_AND_LIV_2, TRAINER_AMY_AND_LIV_4, TRAINER_AMY_AND_LIV_5, TRAINER_AMY_AND_LIV_6}, 0x0, 0x12}, + [REMATCH_ERNEST] = {{TRAINER_ERNEST_1, TRAINER_ERNEST_2, TRAINER_ERNEST_3, TRAINER_ERNEST_4, TRAINER_ERNEST_5}, 0x0, 0x28}, + [REMATCH_CORY] = {{TRAINER_CORY_1, TRAINER_CORY_2, TRAINER_CORY_3, TRAINER_CORY_4, TRAINER_CORY_5}, 0x0, 0x17}, + [REMATCH_EDWIN] = {{TRAINER_EDWIN_1, TRAINER_EDWIN_2, TRAINER_EDWIN_3, TRAINER_EDWIN_4, TRAINER_EDWIN_5}, 0x0, 0x19}, + [REMATCH_LYDIA] = {{TRAINER_LYDIA_1, TRAINER_LYDIA_2, TRAINER_LYDIA_3, TRAINER_LYDIA_4, TRAINER_LYDIA_5}, 0x0, 0x20}, + [REMATCH_ISAAC] = {{TRAINER_ISAAC_1, TRAINER_ISAAC_2, TRAINER_ISAAC_3, TRAINER_ISAAC_4, TRAINER_ISAAC_5}, 0x0, 0x20}, + [REMATCH_GABRIELLE] = {{TRAINER_GABRIELLE_1, TRAINER_GABRIELLE_2, TRAINER_GABRIELLE_3, TRAINER_GABRIELLE_4, TRAINER_GABRIELLE_5}, 0x18, 0x11}, + [REMATCH_CATHERINE] = {{TRAINER_CATHERINE_1, TRAINER_CATHERINE_2, TRAINER_CATHERINE_3, TRAINER_CATHERINE_4, TRAINER_CATHERINE_5}, 0x0, 0x22}, + [REMATCH_JACKSON] = {{TRAINER_JACKSON_1, TRAINER_JACKSON_2, TRAINER_JACKSON_3, TRAINER_JACKSON_4, TRAINER_JACKSON_5}, 0x0, 0x22}, + [REMATCH_HALEY] = {{TRAINER_HALEY_1, TRAINER_HALEY_2, TRAINER_HALEY_3, TRAINER_HALEY_4, TRAINER_HALEY_5}, 0x0, 0x13}, + [REMATCH_JAMES] = {{TRAINER_JAMES_1, TRAINER_JAMES_2, TRAINER_JAMES_3, TRAINER_JAMES_4, TRAINER_JAMES_5}, 0x18, 0xb}, + [REMATCH_TRENT] = {{TRAINER_TRENT_1, TRAINER_TRENT_2, TRAINER_TRENT_3, TRAINER_TRENT_4, TRAINER_TRENT_5}, 0x0, 0x1b}, + [REMATCH_SAWYER] = {{TRAINER_SAWYER_1, TRAINER_SAWYER_2, TRAINER_SAWYER_3, TRAINER_SAWYER_4, TRAINER_SAWYER_5}, 0x18, 0xc}, + [REMATCH_KIRA_AND_DAN] = {{TRAINER_KIRA_AND_DAN_1, TRAINER_KIRA_AND_DAN_2, TRAINER_KIRA_AND_DAN_3, TRAINER_KIRA_AND_DAN_4, TRAINER_KIRA_AND_DAN_5}, 0x18, 0x3e}, + [REMATCH_WALLY_3] = {{TRAINER_WALLY_3, TRAINER_WALLY_4, TRAINER_WALLY_5, TRAINER_WALLY_6, TRAINER_WALLY_6}, 0x18, 0x2b}, + [REMATCH_ROXANNE] = {{TRAINER_ROXANNE_1, TRAINER_ROXANNE_2, TRAINER_ROXANNE_3, TRAINER_ROXANNE_4, TRAINER_ROXANNE_5}, 0x0, 0x3}, + [REMATCH_BRAWLY] = {{TRAINER_BRAWLY_1, TRAINER_BRAWLY_2, TRAINER_BRAWLY_3, TRAINER_BRAWLY_4, TRAINER_BRAWLY_5}, 0x0, 0xb}, + [REMATCH_WATTSON] = {{TRAINER_WATTSON_1, TRAINER_WATTSON_2, TRAINER_WATTSON_3, TRAINER_WATTSON_4, TRAINER_WATTSON_5}, 0x0, 0x2}, + [REMATCH_FLANNERY] = {{TRAINER_FLANNERY_1, TRAINER_FLANNERY_2, TRAINER_FLANNERY_3, TRAINER_FLANNERY_4, TRAINER_FLANNERY_5}, 0x0, 0xc}, + [REMATCH_NORMAN] = {{TRAINER_NORMAN_1, TRAINER_NORMAN_2, TRAINER_NORMAN_3, TRAINER_NORMAN_4, TRAINER_NORMAN_5}, 0x0, 0x0}, + [REMATCH_WINONA] = {{TRAINER_WINONA_1, TRAINER_WINONA_2, TRAINER_WINONA_3, TRAINER_WINONA_4, TRAINER_WINONA_5}, 0x0, 0x4}, + [REMATCH_TATE_AND_LIZA] = {{TRAINER_TATE_AND_LIZA_1, TRAINER_TATE_AND_LIZA_2, TRAINER_TATE_AND_LIZA_3, TRAINER_TATE_AND_LIZA_4, TRAINER_TATE_AND_LIZA_5}, 0x0, 0x6}, + [REMATCH_JUAN] = {{TRAINER_JUAN_1, TRAINER_JUAN_2, TRAINER_JUAN_3, TRAINER_JUAN_4, TRAINER_JUAN_5}, 0x0, 0x7}, + [REMATCH_SIDNEY] = {{TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY}, 0x0, 0x8}, + [REMATCH_PHOEBE] = {{TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE}, 0x0, 0x8}, + [REMATCH_GLACIA] = {{TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA}, 0x0, 0x8}, + [REMATCH_DRAKE] = {{TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE}, 0x0, 0x8}, + [REMATCH_WALLACE] = {{TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE}, 0x0, 0x8}, }; static const u16 sBadgeFlags[8] = @@ -1547,7 +1545,7 @@ static bool32 sub_80B1D94(s32 rematchTableId) { if (rematchTableId >= REMATCH_ELITE_FOUR_ENTRIES) return TRUE; - else if (rematchTableId == REMATCH_WALLY_ENTRY) + else if (rematchTableId == REMATCH_WALLY_3) return (FlagGet(FLAG_DEFEATED_WALLY_VICTORY_ROAD) == FALSE); else return FALSE; @@ -1575,7 +1573,7 @@ static bool32 UpdateRandomTrainerRematches(const struct RematchTrainer *table, u s32 i; bool32 ret = FALSE; - for (i = 0; i <= REMATCH_WALLY_ENTRY; i++) + for (i = 0; i <= REMATCH_WALLY_3; i++) { if (table[i].mapGroup == mapGroup && table[i].mapNum == mapNum && !sub_80B1D94(i)) { diff --git a/src/pokenav_match_call.c b/src/pokenav_match_call.c index 0a21c4edc..ce00401a9 100644 --- a/src/pokenav_match_call.c +++ b/src/pokenav_match_call.c @@ -73,22 +73,17 @@ struct MatchCallStruct4 { const match_call_text_data_t *textData; }; +// Note: Type1 and Type5 have identical struct layouts. struct MatchCallStruct5 { u8 type; u8 v1; u16 flag; - u16 v4; + u16 rematchTableIdx; const u8 *desc; const u8 *name; const match_call_text_data_t *textData; }; -#define MATCHCALLDEF(name, type_, ...) \ -static const struct MatchCallStruct##type_ name = { \ - .type = type_, \ - __VA_ARGS__ \ -}; - typedef union { const struct MatchCallStructCommon *common; const struct MatchCallStruct0 *type0; @@ -328,7 +323,15 @@ static const match_call_text_data_t sMrStoneTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sMrStoneMatchCallHeader, 0, 10, 0xffff, gMrStoneMatchCallDesc, gMrStoneMatchCallName, sMrStoneTextScripts); +static const struct MatchCallStruct0 sMrStoneMatchCallHeader = +{ + .type = 0, + .v1 = 10, + .flag = 0xFFFF, + .desc = gMrStoneMatchCallDesc, + .name = gMrStoneMatchCallName, + .textData = sMrStoneTextScripts +}; static const match_call_text_data_t sNormanTextScripts[] = { { gText_Norman_Pokenav_2B5719, FLAG_ENABLE_NORMAN_MATCH_CALL, 0xFFFF }, @@ -343,9 +346,25 @@ static const match_call_text_data_t sNormanTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sNormanMatchCallHeader, 5, 7, FLAG_ENABLE_NORMAN_MATCH_CALL, 0x45, gNormanMatchCallDesc, gNormanMatchCallName, sNormanTextScripts); +static const struct MatchCallStruct5 sNormanMatchCallHeader = +{ + .type = 5, + .v1 = 7, + .flag = FLAG_ENABLE_NORMAN_MATCH_CALL, + .rematchTableIdx = REMATCH_NORMAN, + .desc = gNormanMatchCallDesc, + .name = gNormanMatchCallName, + .textData = sNormanTextScripts +}; -MATCHCALLDEF(sProfBirchMatchCallHeader, 3, 0, FLAG_ENABLE_PROF_BIRCH_MATCH_CALL, gProfBirchMatchCallDesc, gProfBirchMatchCallName) +static const struct MatchCallStruct3 sProfBirchMatchCallHeader = +{ + .type = 3, + .v1 = 0, + .flag = FLAG_ENABLE_PROF_BIRCH_MATCH_CALL, + .desc = gProfBirchMatchCallDesc, + .name = gProfBirchMatchCallName +}; static const match_call_text_data_t sMomTextScripts[] = { { gText_Mom_Pokenav_2B227B, 0xffff, 0xffff }, @@ -354,7 +373,15 @@ static const match_call_text_data_t sMomTextScripts[] = { { NULL, 0xffff, 0xffff } }; -MATCHCALLDEF(sMomMatchCallHeader, 0, 0, FLAG_ENABLE_MOM_MATCH_CALL, gMomMatchCallDesc, gMomMatchCallName, sMomTextScripts); +static const struct MatchCallStruct0 sMomMatchCallHeader = +{ + .type = 0, + .v1 = 0, + .flag = FLAG_ENABLE_MOM_MATCH_CALL, + .desc = gMomMatchCallDesc, + .name = gMomMatchCallName, + .textData = sMomTextScripts +}; static const match_call_text_data_t sStevenTextScripts[] = { { gText_Steven_Pokenav_2B5B95, 0xffff, 0xffff }, @@ -367,7 +394,15 @@ static const match_call_text_data_t sStevenTextScripts[] = { { NULL, 0xffff, 0xffff }, }; -MATCHCALLDEF(sStevenMatchCallHeader, 0, 0xd5, FLAG_REGISTERED_STEVEN_POKENAV, gStevenMatchCallDesc, gStevenMatchCallName, sStevenTextScripts); +static const struct MatchCallStruct0 sStevenMatchCallHeader = +{ + .type = 0, + .v1 = 0xD5, + .flag = FLAG_REGISTERED_STEVEN_POKENAV, + .desc = gStevenMatchCallDesc, + .name = gStevenMatchCallName, + .textData = sStevenTextScripts +}; static const match_call_text_data_t sMayTextScripts[] = { { gText_May_Pokenav_2B3AB3, 0xFFFF, 0xFFFF }, @@ -388,7 +423,15 @@ static const match_call_text_data_t sMayTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sMayMatchCallHeader, 4, MALE, FLAG_ENABLE_RIVAL_MATCH_CALL, gMayBrendanMatchCallDesc, gExpandedPlaceholder_May, sMayTextScripts); +static const struct MatchCallStruct4 sMayMatchCallHeader = +{ + .type = 4, + .gender = MALE, + .flag = FLAG_ENABLE_RIVAL_MATCH_CALL, + .desc = gMayBrendanMatchCallDesc, + .name = gExpandedPlaceholder_May, + .textData = sMayTextScripts +}; static const match_call_text_data_t sBrendanTextScripts[] = { { gText_Brendan_Pokenav_2B43EF, 0xFFFF, 0xFFFF }, @@ -409,7 +452,15 @@ static const match_call_text_data_t sBrendanTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sBrendanMatchCallHeader, 4, FEMALE, FLAG_ENABLE_RIVAL_MATCH_CALL, gMayBrendanMatchCallDesc, gExpandedPlaceholder_Brendan, sBrendanTextScripts); +static const struct MatchCallStruct4 sBrendanMatchCallHeader = +{ + .type = 4, + .gender = FEMALE, + .flag = FLAG_ENABLE_RIVAL_MATCH_CALL, + .desc = gMayBrendanMatchCallDesc, + .name = gExpandedPlaceholder_Brendan, + .textData = sBrendanTextScripts +}; static const match_call_text_data_t sWallyTextScripts[] = { { gText_Wally_Pokenav_2B4DE2, 0xFFFF, 0xFFFF }, @@ -429,7 +480,16 @@ const struct MatchCallSubstruct2 sWallyAdditionalData[] = { { 0xFFFF, 0xD5 } }; -MATCHCALLDEF(sWallyMatchCallHeader, 2, 0, FLAG_ENABLE_WALLY_MATCH_CALL, REMATCH_WALLY_3, gWallyMatchCallDesc, sWallyTextScripts, sWallyAdditionalData); +static const struct MatchCallStruct2 sWallyMatchCallHeader = +{ + .type = 2, + .v1 = 0, + .flag = FLAG_ENABLE_WALLY_MATCH_CALL, + .rematchTableIdx = REMATCH_WALLY_3, + .desc = gWallyMatchCallDesc, + .textData = sWallyTextScripts, + .v10 = sWallyAdditionalData +}; static const match_call_text_data_t sScottTextScripts[] = { { gText_Scott_Pokenav_2B5184, 0xFFFF, 0xFFFF }, @@ -443,7 +503,15 @@ static const match_call_text_data_t sScottTextScripts[] = { }; -MATCHCALLDEF(sScottMatchCallHeader, 0, 0xD5, FLAG_ENABLE_SCOTT_MATCH_CALL, gScottMatchCallDesc, gScottMatchCallName, sScottTextScripts); +static const struct MatchCallStruct0 sScottMatchCallHeader = +{ + .type = 0, + .v1 = 0xD5, + .flag = FLAG_ENABLE_SCOTT_MATCH_CALL, + .desc = gScottMatchCallDesc, + .name = gScottMatchCallName, + .textData = sScottTextScripts +}; static const match_call_text_data_t sRoxanneTextScripts[] = { { gText_Roxanne_Pokenav_2B2456, 0xFFFE, 0xFFFF }, @@ -453,7 +521,16 @@ static const match_call_text_data_t sRoxanneTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sRoxanneMatchCallHeader, 5, 10, FLAG_ENABLE_ROXANNE_MATCH_CALL, 0x41, gRoxanneMatchCallDesc, NULL, sRoxanneTextScripts); +static const struct MatchCallStruct5 sRoxanneMatchCallHeader = +{ + .type = 5, + .v1 = 10, + .flag = FLAG_ENABLE_ROXANNE_MATCH_CALL, + .rematchTableIdx = REMATCH_ROXANNE, + .desc = gRoxanneMatchCallDesc, + .name = NULL, + .textData = sRoxanneTextScripts +}; static const match_call_text_data_t sBrawlyTextScripts[] = { { gText_Brawly_Pokenav_2B2659, 0xFFFE, 0xFFFF }, @@ -463,7 +540,16 @@ static const match_call_text_data_t sBrawlyTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sBrawlyMatchCallHeader, 5, 2, FLAG_ENABLE_BRAWLY_MATCH_CALL, 0x42, gBrawlyMatchCallDesc, NULL, sBrawlyTextScripts); +static const struct MatchCallStruct5 sBrawlyMatchCallHeader = +{ + .type = 5, + .v1 = 2, + .flag = FLAG_ENABLE_BRAWLY_MATCH_CALL, + .rematchTableIdx = REMATCH_BRAWLY, + .desc = gBrawlyMatchCallDesc, + .name = NULL, + .textData = sBrawlyTextScripts +}; static const match_call_text_data_t sWattsonTextScripts[] = { { gText_Wattson_Pokenav_2B2912, 0xFFFE, 0xFFFF }, @@ -473,7 +559,16 @@ static const match_call_text_data_t sWattsonTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sWattsonMatchCallHeader, 5, 9, FLAG_ENABLE_WATTSON_MATCH_CALL, 0x43, gWattsonMatchCallDesc, NULL, sWattsonTextScripts); +static const struct MatchCallStruct5 sWattsonMatchCallHeader = +{ + .type = 5, + .v1 = 9, + .flag = FLAG_ENABLE_WATTSON_MATCH_CALL, + .rematchTableIdx = REMATCH_WATTSON, + .desc = gWattsonMatchCallDesc, + .name = NULL, + .textData = sWattsonTextScripts +}; static const match_call_text_data_t sFlanneryTextScripts[] = { { gText_Flannery_Pokenav_2B2B4D, 0xFFFE, 0xFFFF }, @@ -483,7 +578,16 @@ static const match_call_text_data_t sFlanneryTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sFlanneryMatchCallHeader, 5, 3, FLAG_ENABLE_FLANNERY_MATCH_CALL, 0x44, gFlanneryMatchCallDesc, NULL, sFlanneryTextScripts); +static const struct MatchCallStruct5 sFlanneryMatchCallHeader = +{ + .type = 5, + .v1 = 3, + .flag = FLAG_ENABLE_FLANNERY_MATCH_CALL, + .rematchTableIdx = REMATCH_FLANNERY, + .desc = gFlanneryMatchCallDesc, + .name = NULL, + .textData = sFlanneryTextScripts +}; static const match_call_text_data_t sWinonaTextScripts[] = { { gText_Winona_Pokenav_2B2DA4, 0xFFFE, 0xFFFF }, @@ -493,7 +597,16 @@ static const match_call_text_data_t sWinonaTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sWinonaMatchCallHeader, 5, 11, FLAG_ENABLE_WINONA_MATCH_CALL, 0x46, gWinonaMatchCallDesc, NULL, sWinonaTextScripts); +static const struct MatchCallStruct5 sWinonaMatchCallHeader = +{ + .type = 5, + .v1 = 11, + .flag = FLAG_ENABLE_WINONA_MATCH_CALL, + .rematchTableIdx = REMATCH_WINONA, + .desc = gWinonaMatchCallDesc, + .name = NULL, + .textData = sWinonaTextScripts +}; static const match_call_text_data_t sTateLizaTextScripts[] = { { gText_TateLiza_Pokenav_2B2F97, 0xFFFE, 0xFFFF }, @@ -503,7 +616,16 @@ static const match_call_text_data_t sTateLizaTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sTateLizaMatchCallHeader, 5, 13, FLAG_ENABLE_TATE_AND_LIZA_MATCH_CALL, 0x47, gTateLizaMatchCallDesc, NULL, sTateLizaTextScripts); +static const struct MatchCallStruct5 sTateLizaMatchCallHeader = +{ + .type = 5, + .v1 = 13, + .flag = FLAG_ENABLE_TATE_AND_LIZA_MATCH_CALL, + .rematchTableIdx = REMATCH_TATE_AND_LIZA, + .desc = gTateLizaMatchCallDesc, + .name = NULL, + .textData = sTateLizaTextScripts +}; static const match_call_text_data_t sJuanTextScripts[] = { { gText_Juan_Pokenav_2B3249, 0xFFFE, 0xFFFF }, @@ -513,42 +635,96 @@ static const match_call_text_data_t sJuanTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sJuanMatchCallHeader, 5, 14, FLAG_ENABLE_JUAN_MATCH_CALL, 0x48, gJuanMatchCallDesc, NULL, sJuanTextScripts); +static const struct MatchCallStruct5 sJuanMatchCallHeader = +{ + .type = 5, + .v1 = 14, + .flag = FLAG_ENABLE_JUAN_MATCH_CALL, + .rematchTableIdx = REMATCH_JUAN, + .desc = gJuanMatchCallDesc, + .name = NULL, + .textData = sJuanTextScripts +}; static const match_call_text_data_t sSidneyTextScripts[] = { { gText_Sidney_Pokenav_2B34CC, 0xFFFF, 0xFFFF }, { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sSidneyMatchCallHeader, 5, 15, FLAG_REMATCH_JUAN, 0x49, gEliteFourMatchCallDesc, NULL, sSidneyTextScripts); +static const struct MatchCallStruct5 sSidneyMatchCallHeader = +{ + .type = 5, + .v1 = 15, + .flag = FLAG_REMATCH_SIDNEY, + .rematchTableIdx = REMATCH_SIDNEY, + .desc = gEliteFourMatchCallDesc, + .name = NULL, + .textData = sSidneyTextScripts +}; static const match_call_text_data_t sPhoebeTextScripts[] = { { gText_Phoebe_Pokenav_2B3561, 0xFFFF, 0xFFFF }, { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sPhoebeMatchCallHeader, 5, 15, FLAG_REMATCH_SIDNEY, 0x4A, gEliteFourMatchCallDesc, NULL, sPhoebeTextScripts); +static const struct MatchCallStruct5 sPhoebeMatchCallHeader = +{ + .type = 5, + .v1 = 15, + .flag = FLAG_REMATCH_PHOEBE, + .rematchTableIdx = REMATCH_PHOEBE, + .desc = gEliteFourMatchCallDesc, + .name = NULL, + .textData = sPhoebeTextScripts +}; static const match_call_text_data_t sGlaciaTextScripts[] = { { gText_Glacia_Pokenav_2B35E4, 0xFFFF, 0xFFFF }, { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sGlaciaMatchCallHeader, 5, 15, FLAG_REMATCH_PHOEBE, 0x4B, gEliteFourMatchCallDesc, NULL, sGlaciaTextScripts); +static const struct MatchCallStruct5 sGlaciaMatchCallHeader = +{ + .type = 5, + .v1 = 15, + .flag = FLAG_REMATCH_GLACIA, + .rematchTableIdx = REMATCH_GLACIA, + .desc = gEliteFourMatchCallDesc, + .name = NULL, + .textData = sGlaciaTextScripts +}; static const match_call_text_data_t sDrakeTextScripts[] = { { gText_Drake_Pokenav_2B368B, 0xFFFF, 0xFFFF }, { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sDrakeMatchCallHeader, 5, 15, FLAG_REMATCH_GLACIA, 0x4C, gEliteFourMatchCallDesc, NULL, sDrakeTextScripts); +static const struct MatchCallStruct5 sDrakeMatchCallHeader = +{ + .type = 5, + .v1 = 15, + .flag = FLAG_REMATCH_DRAKE, + .rematchTableIdx = REMATCH_DRAKE, + .desc = gEliteFourMatchCallDesc, + .name = NULL, + .textData = sDrakeTextScripts +}; static const match_call_text_data_t sWallaceTextScripts[] = { { gText_Wallace_Pokenav_2B3790, 0xFFFF, 0xFFFF }, { NULL, 0xFFFF, 0xFFFF } }; -MATCHCALLDEF(sWallaceMatchCallHeader, 5, 15, FLAG_REMATCH_DRAKE, 0x4D, gChampionMatchCallDesc, NULL, sWallaceTextScripts); +static const struct MatchCallStruct5 sWallaceMatchCallHeader = +{ + .type = 5, + .v1 = 15, + .flag = FLAG_REMATCH_WALLACE, + .rematchTableIdx = REMATCH_WALLACE, + .desc = gChampionMatchCallDesc, + .name = NULL, + .textData = sWallaceTextScripts +}; static const match_call_t sMatchCallHeaders[] = { {.type0 = &sMrStoneMatchCallHeader}, @@ -906,9 +1082,9 @@ static void MatchCall_GetMessage_Type0(match_call_t matchCall, u8 *dest) static void MatchCall_GetMessage_Type1(match_call_t matchCall, u8 *dest) { if (matchCall.common->type != 5) - sub_81D1920(matchCall.type5->textData, dest); + sub_81D1920(matchCall.type1->textData, dest); else - sub_81D199C(matchCall.type1->textData, matchCall.type1->rematchTableIdx, dest); + sub_81D199C(matchCall.type5->textData, matchCall.type5->rematchTableIdx, dest); } static void MatchCall_GetMessage_Type2(match_call_t matchCall, u8 *dest) -- cgit v1.2.3 From 1aa95a1821cd4ebe552a39bbfed067a305071e31 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 2 Apr 2019 08:36:22 +0200 Subject: Document a bit of anims --- src/battle_anim_effects_1.c | 16 ++++++++-------- src/battle_anim_effects_2.c | 4 ++-- src/bug.c | 19 +++++++++++++------ src/dark.c | 44 ++++++++++++++++++++++++++------------------ 4 files changed, 49 insertions(+), 34 deletions(-) (limited to 'src') diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index f14e502f3..af4bc19ec 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -1093,7 +1093,7 @@ const struct SpriteTemplate gUnknown_085928D0 = .callback = sub_8100A50, }; -const struct SpriteTemplate gUnknown_085928E8 = +const struct SpriteTemplate gVineWhipSpriteTemplate = { .tileTag = ANIM_TAG_WHIP_HIT, .paletteTag = ANIM_TAG_WHIP_HIT, @@ -2336,7 +2336,7 @@ void AnimHyperBeamOrb(struct Sprite* sprite) { u16 speed; u16 animNum = Random2(); - + StartSpriteAnim(sprite, animNum % 8); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -2660,7 +2660,7 @@ static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite) s16 a = sprite->data[0]; s16 b = sprite->data[7]; s16 r0; - + sprite->data[0] = 1; TranslateAnimHorizontalArc(sprite); r0 = sprite->data[7]; @@ -2675,7 +2675,7 @@ static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite) if (sprite->oam.affineParam == 30) destroy = TRUE; } - + if (sprite->pos1.x + sprite->pos2.x > 256 || sprite->pos1.x + sprite->pos2.x < -16 || sprite->pos1.y + sprite->pos2.y > 160 @@ -3748,7 +3748,7 @@ void sub_81009F8(struct Sprite* sprite) void sub_8100A50(struct Sprite* sprite) { - if (GetBattlerSide(gBattleAnimAttacker) == 0) + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) StartSpriteAnim(sprite, 1); sprite->callback = sub_81009DC; @@ -3770,7 +3770,7 @@ void sub_8100A94(struct Sprite* sprite) } // Moves the sprite in a diagonally slashing motion across the target mon. -// Used by moves such as MOVE_CUT and MOVE_AERIAL_ACE. +// Used by moves such as MOVE_CUT and MOVE_AERIAL_ACE. // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: slice direction; 0 = right-to-left, 1 = left-to-right @@ -5350,10 +5350,10 @@ static void sub_8102DE4(struct Sprite* sprite) void sub_8102EB0(struct Sprite* sprite) { - int a; + int a; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) { - a = gBattleAnimArgs[1]; + a = gBattleAnimArgs[1]; (u16)gBattleAnimArgs[1] = -a; } diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 80b3258b4..e3295acb8 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -889,7 +889,7 @@ const struct SpriteTemplate gUnknown_08593958 = .callback = sub_8105DE8, }; -const struct SpriteTemplate gUnknown_08593970 = +const struct SpriteTemplate gMagentaHeartSpriteTemplate = { .tileTag = ANIM_TAG_MAGENTA_HEART, .paletteTag = ANIM_TAG_MAGENTA_HEART, @@ -3286,7 +3286,7 @@ static void sub_810627C(struct Sprite *sprite) } } -void sub_81062E8(u8 taskId) +void AnimTask_HeartsBackground(u8 taskId) { struct BattleAnimBgData animBg; diff --git a/src/bug.c b/src/bug.c index 88f93a3d5..4fa6a5bb6 100644 --- a/src/bug.c +++ b/src/bug.c @@ -6,7 +6,7 @@ void sub_8110368(struct Sprite *); void sub_8110438(struct Sprite *); -void sub_81104E4(struct Sprite *); +void AnimTranslateWebThread(struct Sprite *); void sub_81105B4(struct Sprite *); void sub_811067C(struct Sprite *); void AnimTranslateStinger(struct Sprite *); @@ -90,7 +90,7 @@ const struct SpriteTemplate gUnknown_085969C8 = .callback = sub_8110438, }; -const struct SpriteTemplate gUnknown_085969E0 = +const struct SpriteTemplate gWebThreadSpriteTemplate = { .tileTag = ANIM_TAG_WEB_THREAD, .paletteTag = ANIM_TAG_WEB_THREAD, @@ -98,7 +98,7 @@ const struct SpriteTemplate gUnknown_085969E0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81104E4, + .callback = AnimTranslateWebThread, }; const struct SpriteTemplate gUnknown_085969F8 = @@ -124,7 +124,7 @@ const union AffineAnimCmd *const gUnknown_08596A28[] = gUnknown_08596A10, }; -const struct SpriteTemplate gUnknown_08596A2C = +const struct SpriteTemplate gSpiderWebSpriteTemplate = { .tileTag = ANIM_TAG_SPIDER_WEB, .paletteTag = ANIM_TAG_SPIDER_WEB, @@ -247,12 +247,19 @@ void sub_8110438(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_81104E4(struct Sprite *sprite) +// Creates a single web thread that travels from attacker to target. +// Used by MOVE_STRING_SHOT and MOVE_SPIDER_WEB in their first move phase. +// arg 0: x +// arg 1: y +// arg 2: controls the left-to-right movement +// arg 3: amplitude +// arg 4: if targets both opponents +void AnimTranslateWebThread(struct Sprite *sprite) { if (IsContest()) gBattleAnimArgs[2] /= 2; - InitSpritePosToAnimAttacker(sprite, 1); + InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; diff --git a/src/dark.c b/src/dark.c index 80ce61800..482c09c04 100644 --- a/src/dark.c +++ b/src/dark.c @@ -803,17 +803,23 @@ void sub_81144BC(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_81144F8(u8 taskId) +// Makes the attacker metallic and shining. +// Used by MOVE_HARDEN and MOVE_IRON_DEFENSE. +// arg0: if true won't change battler's palette back +// arg1: if true, use custom color +// arg2: custom color +// Custom color argument is used in MOVE_POISON_TAIL to make the mon turn purplish/pinkish as if became cloaked in poison. +void AnimTask_MetallicShine(u8 taskId) { u16 species; u8 spriteId; u8 newSpriteId; u16 paletteNum; struct BattleAnimBgData animBg; - int var0 = 0; + bool32 priorityChanged = FALSE; - gBattle_WIN0H = var0; - gBattle_WIN0V = var0; + gBattle_WIN0H = 0; + gBattle_WIN0V = 0; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG0 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); @@ -832,7 +838,7 @@ void sub_81144F8(u8 taskId) { gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority--; SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); - var0 = 1; + priorityChanged = TRUE; } } } @@ -861,7 +867,7 @@ void sub_81144F8(u8 taskId) gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32; paletteNum = 16 + gSprites[spriteId].oam.paletteNum; - if (gBattleAnimArgs[1] == 0) + if (gBattleAnimArgs[1] == 0) SetGreyscaleOrOriginalPalette(paletteNum, FALSE); else BlendPalette(paletteNum * 16, 16, 11, gBattleAnimArgs[2]); @@ -870,7 +876,7 @@ void sub_81144F8(u8 taskId) gTasks[taskId].data[1] = gBattleAnimArgs[0]; gTasks[taskId].data[2] = gBattleAnimArgs[1]; gTasks[taskId].data[3] = gBattleAnimArgs[2]; - gTasks[taskId].data[6] = var0; + gTasks[taskId].data[6] = priorityChanged; gTasks[taskId].func = sub_8114748; } @@ -879,29 +885,28 @@ static void sub_8114748(u8 taskId) struct BattleAnimBgData animBg; u16 paletteNum; u8 spriteId; - u8 taskIdCopy = taskId; - gTasks[taskIdCopy].data[10] += 4; + gTasks[taskId].data[10] += 4; gBattle_BG1_X -= 4; - if (gTasks[taskIdCopy].data[10] == 128) + if (gTasks[taskId].data[10] == 128) { - gTasks[taskIdCopy].data[10] = 0; + gTasks[taskId].data[10] = 0; gBattle_BG1_X += 128; - gTasks[taskIdCopy].data[11]++; - if (gTasks[taskIdCopy].data[11] == 2) + gTasks[taskId].data[11]++; + if (gTasks[taskId].data[11] == 2) { spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); paletteNum = 16 + gSprites[spriteId].oam.paletteNum; - if (gTasks[taskIdCopy].data[1] == 0) + if (gTasks[taskId].data[1] == 0) SetGreyscaleOrOriginalPalette(paletteNum, 1); - DestroySprite(&gSprites[gTasks[taskIdCopy].data[0]]); + DestroySprite(&gSprites[gTasks[taskId].data[0]]); sub_80A6B30(&animBg); sub_80A6C68(animBg.bgId); - if (gTasks[taskIdCopy].data[6] == 1) + if (gTasks[taskId].data[6] == 1) gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++; } - else if (gTasks[taskIdCopy].data[11] == 3) + else if (gTasks[taskId].data[11] == 3) { gBattle_WIN0H = 0; gBattle_WIN0V = 0; @@ -918,7 +923,10 @@ static void sub_8114748(u8 taskId) } } -void sub_811489C(u8 taskId) +// Changes battler's palette to either greyscale or original. +// arg0: which battler +// arg1: 0 grayscale, 1 original +void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) { u8 spriteId; u8 battler; -- cgit v1.2.3 From 201c0953ae4f6c6b65958065f009cbaee3c8f3ee Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 1 Apr 2019 18:31:10 -0400 Subject: Cleanup OamData entries --- src/battle_anim.c | 362 +++++++++++++++++++++++++++++++++++++++++++++ src/battle_main.c | 22 ++- src/cable_car.c | 34 ++++- src/contest.c | 39 ++--- src/contest_painting.c | 5 +- src/decoration.c | 13 +- src/field_effect.c | 41 ++++- src/field_weather_effect.c | 29 ++-- src/link_rfu.c | 14 +- src/naming_screen.c | 29 ++-- src/pokedex_cry_screen.c | 8 +- src/pokemon_icon.c | 11 +- 12 files changed, 511 insertions(+), 96 deletions(-) mode change 100755 => 100644 src/cable_car.c mode change 100755 => 100644 src/pokedex_cry_screen.c (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index 31ff11ee8..88de3ee88 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -117,651 +117,1011 @@ EWRAM_DATA u8 gUnknown_02038440 = 0; const struct OamData gUnknown_08524904 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x8), + .x = 0, .size = SPRITE_SIZE(8x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_0852490C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), + .x = 0, .size = SPRITE_SIZE(16x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524914 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x32), + .x = 0, .size = SPRITE_SIZE(32x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_0852491C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), + .x = 0, .size = SPRITE_SIZE(64x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524924 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x8), + .x = 0, .size = SPRITE_SIZE(16x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_0852492C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x8), + .x = 0, .size = SPRITE_SIZE(32x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524934 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x16), + .x = 0, .size = SPRITE_SIZE(32x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_0852493C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x32), + .x = 0, .size = SPRITE_SIZE(64x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524944 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x16), + .x = 0, .size = SPRITE_SIZE(8x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_0852494C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x32), + .x = 0, .size = SPRITE_SIZE(8x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524954 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x32), + .x = 0, .size = SPRITE_SIZE(16x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_0852495C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x64), + .x = 0, .size = SPRITE_SIZE(32x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524964 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x8), + .x = 0, .size = SPRITE_SIZE(8x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_0852496C = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), + .x = 0, .size = SPRITE_SIZE(16x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524974 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x32), + .x = 0, .size = SPRITE_SIZE(32x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_0852497C = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), + .x = 0, .size = SPRITE_SIZE(64x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524984 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x8), + .x = 0, .size = SPRITE_SIZE(16x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_0852498C = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x8), + .x = 0, .size = SPRITE_SIZE(32x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524994 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x16), + .x = 0, .size = SPRITE_SIZE(32x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_0852499C = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x32), + .x = 0, .size = SPRITE_SIZE(64x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249A4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x16), + .x = 0, .size = SPRITE_SIZE(8x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249AC = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x32), + .x = 0, .size = SPRITE_SIZE(8x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249B4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x32), + .x = 0, .size = SPRITE_SIZE(16x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249BC = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x64), + .x = 0, .size = SPRITE_SIZE(32x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249C4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x8), + .x = 0, .size = SPRITE_SIZE(8x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249CC = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), + .x = 0, .size = SPRITE_SIZE(16x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249D4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x32), + .x = 0, .size = SPRITE_SIZE(32x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249DC = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), + .x = 0, .size = SPRITE_SIZE(64x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249E4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x8), + .x = 0, .size = SPRITE_SIZE(16x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249EC = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x8), + .x = 0, .size = SPRITE_SIZE(32x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249F4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x16), + .x = 0, .size = SPRITE_SIZE(32x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_085249FC = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x32), + .x = 0, .size = SPRITE_SIZE(64x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A04 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x16), + .x = 0, .size = SPRITE_SIZE(8x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A0C = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x32), + .x = 0, .size = SPRITE_SIZE(8x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A14 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x32), + .x = 0, .size = SPRITE_SIZE(16x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A1C = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x64), + .x = 0, .size = SPRITE_SIZE(32x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A24 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x8), + .x = 0, .size = SPRITE_SIZE(8x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A2C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), + .x = 0, .size = SPRITE_SIZE(16x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A34 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x32), + .x = 0, .size = SPRITE_SIZE(32x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A3C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), + .x = 0, .size = SPRITE_SIZE(64x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A44 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x8), + .x = 0, .size = SPRITE_SIZE(16x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A4C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x8), + .x = 0, .size = SPRITE_SIZE(32x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A54 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x16), + .x = 0, .size = SPRITE_SIZE(32x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A5C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x32), + .x = 0, .size = SPRITE_SIZE(64x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A64 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x16), + .x = 0, .size = SPRITE_SIZE(8x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A6C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x32), + .x = 0, .size = SPRITE_SIZE(8x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A74 = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x32), + .x = 0, .size = SPRITE_SIZE(16x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A7C = { + .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x64), + .x = 0, .size = SPRITE_SIZE(32x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A84 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x8), + .x = 0, .size = SPRITE_SIZE(8x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A8C = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), + .x = 0, .size = SPRITE_SIZE(16x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A94 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x32), + .x = 0, .size = SPRITE_SIZE(32x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524A9C = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), + .x = 0, .size = SPRITE_SIZE(64x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524AA4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x8), + .x = 0, .size = SPRITE_SIZE(16x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524AAC = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x8), + .x = 0, .size = SPRITE_SIZE(32x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524AB4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x16), + .x = 0, .size = SPRITE_SIZE(32x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524ABC = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x32), + .x = 0, .size = SPRITE_SIZE(64x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524AC4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x16), + .x = 0, .size = SPRITE_SIZE(8x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524ACC = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x32), + .x = 0, .size = SPRITE_SIZE(8x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524AD4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x32), + .x = 0, .size = SPRITE_SIZE(16x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524ADC = { + .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x64), + .x = 0, .size = SPRITE_SIZE(32x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524AE4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x8), + .x = 0, .size = SPRITE_SIZE(8x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524AEC = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), + .x = 0, .size = SPRITE_SIZE(16x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524AF4 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x32), + .x = 0, .size = SPRITE_SIZE(32x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524AFC = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), + .x = 0, .size = SPRITE_SIZE(64x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524B04 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x8), + .x = 0, .size = SPRITE_SIZE(16x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524B0C = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x8), + .x = 0, .size = SPRITE_SIZE(32x8), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524B14 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x16), + .x = 0, .size = SPRITE_SIZE(32x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524B1C = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x32), + .x = 0, .size = SPRITE_SIZE(64x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524B24 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x16), + .x = 0, .size = SPRITE_SIZE(8x16), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524B2C = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x32), + .x = 0, .size = SPRITE_SIZE(8x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524B34 = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x32), + .x = 0, .size = SPRITE_SIZE(16x32), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct OamData gUnknown_08524B3C = { + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x64), + .x = 0, .size = SPRITE_SIZE(32x64), + .tileNum = 0, .priority = 2, + .paletteNum = 0, }; const struct CompressedSpriteSheet gBattleAnimPicTable[] = @@ -3088,3 +3448,5 @@ static void ScriptCmd_stopsound(void) m4aMPlayStop(&gMPlayInfo_SE2); sBattleAnimScriptPtr++; } + + diff --git a/src/battle_main.c b/src/battle_main.c index 19fd01e3c..92f12636d 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -293,35 +293,31 @@ static const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin const struct OamData gOamData_831ACA8 = { .y = 0, - .affineMode = 1, - .objMode = 0, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, .paletteNum = 0, - .affineParam = 0 + .affineParam = 0, }; const struct OamData gOamData_831ACB0 = { .y = 0, - .affineMode = 1, - .objMode = 0, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, .paletteNum = 2, - .affineParam = 0 + .affineParam = 0, }; // Unknown and unused data. Feel free to remove. @@ -5891,3 +5887,5 @@ static void HandleAction_ActionFinished(void) gBattleScripting.multihitMoveEffect = 0; gBattleResources->battleScriptsStack->size = 0; } + + diff --git a/src/cable_car.c b/src/cable_car.c old mode 100755 new mode 100644 index ab7b5726a..4e6980c4e --- a/src/cable_car.c +++ b/src/cable_car.c @@ -151,25 +151,46 @@ const struct SpritePalette gUnknown_085CDB74[] = { { } }; -const struct OamData gOamData_85CDB84 = { +const struct OamData gOamData_85CDB84 = +{ + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), + .x = 0, .size = SPRITE_SIZE(64x64), - .priority = 2 + .tileNum = 0, + .priority = 2, + .paletteNum = 0, }; -const struct OamData gOamData_85CDB8C = { +const struct OamData gOamData_85CDB8C = +{ + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x8), + .x = 0, .size = SPRITE_SIZE(16x8), - .priority = 2 + .tileNum = 0, + .priority = 2, + .paletteNum = 0, }; -const struct OamData gOamData_85CDB94 = { +const struct OamData gOamData_85CDB94 = +{ + .y = 0, .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), + .x = 0, .size = SPRITE_SIZE(16x16), - .priority = 2 + .tileNum = 0, + .priority = 2, + .paletteNum = 0, }; const struct SpriteTemplate gSpriteTemplate_85CDB9C[] = @@ -1007,3 +1028,4 @@ static void sub_81514C8(u8 arg0) sCableCar->unk1C = 0; } + diff --git a/src/contest.c b/src/contest.c index 0591668ff..02d7038cf 100644 --- a/src/contest.c +++ b/src/contest.c @@ -445,18 +445,15 @@ const struct CompressedSpriteSheet gUnknown_08587B88 = const struct OamData gOamData_8587B90 = { .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, - .affineParam = 0 }; const struct SpriteTemplate gSpriteTemplate_8587B98 = @@ -486,18 +483,15 @@ const struct SpritePalette gUnknown_08587BB8 = const struct OamData gOamData_8587BC0 = { .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x32), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 0, .paletteNum = 0, - .affineParam = 0 }; const struct SpriteTemplate gSpriteTemplate_8587BC8 = @@ -514,18 +508,15 @@ const struct SpriteTemplate gSpriteTemplate_8587BC8 = const struct OamData gOamData_8587BE0 = { .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 3, .paletteNum = 2, - .affineParam = 0 }; const struct SpriteTemplate gSpriteTemplate_8587BE8 = @@ -768,18 +759,16 @@ static const struct SpritePalette sUnknown_08589924[] = const struct OamData gOamData_8589944 = { .y = 0, - .affineMode = 3, - .objMode = 1, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, - .affineParam = 0 + .affineParam = 0, }; const union AffineAnimCmd gSpriteAffineAnim_858994C[] = @@ -5762,3 +5751,5 @@ void sub_80DFA08(struct ContestPokemon *mon, s32 language) name[PLAYER_NAME_LENGTH] = EOS; } } + + diff --git a/src/contest_painting.c b/src/contest_painting.c index 29f3c871d..87598f2bd 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -152,16 +152,14 @@ const struct OamData gUnknown_085B0830 = .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 1, + .mosaic = TRUE, .bpp = ST_OAM_8BPP, .shape = SPRITE_SHAPE(64x64), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, - .affineParam = 0, }; const u16 gUnknown_085B0838[] = {RGB(0, 0, 0), RGB(0, 0, 0)}; @@ -705,3 +703,4 @@ static void sub_8130884(u8 arg0, u8 arg1) sub_8130688(arg0); sub_8130430(arg0, arg1); } + diff --git a/src/decoration.c b/src/decoration.c index 3c8809c6a..4baa6d4c8 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -391,10 +391,18 @@ const struct SpritePalette gUnknown_085A73E0 = { Unknown_085A7328, OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG }; -const struct OamData Unknown_085A73E8 = { +const struct OamData Unknown_085A73E8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), + .x = 0, .size = SPRITE_SIZE(16x16), - .priority = 1 + .tileNum = 0, + .priority = 1, + .paletteNum = 0, }; const union AnimCmd Unknown_085A73F0[] = { @@ -2740,3 +2748,4 @@ void sub_812A478(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_DecorationThrownAway); DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C); } + diff --git a/src/field_effect.c b/src/field_effect.c index 825efc380..93d7e5ef8 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -284,20 +284,44 @@ bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = const struct OamData gNewGameBirchOamAttributes = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), - .size = SPRITE_SIZE(64x64) + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 0, + .paletteNum = 0, }; const struct OamData gOamData_855C218 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x8), - .size = SPRITE_SIZE(8x8) + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 0, + .paletteNum = 0, }; const struct OamData gOamData_855C220 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), - .size = SPRITE_SIZE(16x16) + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 0, + .paletteNum = 0, }; const struct SpriteFrameImage gNewGameBirchPicTable[] = @@ -347,8 +371,16 @@ const struct SpritePalette gFieldEffectObjectPaletteInfo5 = const struct OamData gOamData_855C26C = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x16), - .size = SPRITE_SIZE(32x16) + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 0, + .paletteNum = 0, }; const struct SpriteFrameImage gSpriteImageTable_855C274[] = @@ -3759,3 +3791,4 @@ static void Fldeff_MoveDeoxysRock_Step(u8 taskId) break; } } + diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 6ec83f1a0..1468f7ca0 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -1513,18 +1513,15 @@ void LoadAshSpriteSheet(void) const struct OamData gOamData_839ABB8 = { .y = 0, - .affineMode = 0, - .objMode = 1, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 15, - .affineParam = 0, }; const union AnimCmd gSpriteAnim_839ABC0[] = @@ -1750,18 +1747,15 @@ void CreateFog2Sprites(void) const struct OamData gOamData_839ABF0 = { .y = 0, - .affineMode = 0, - .objMode = 1, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, .paletteNum = 0, - .affineParam = 0, }; const union AnimCmd gSpriteAnim_839ABF8[] = @@ -1949,18 +1943,15 @@ void sub_80800E4(void) const struct OamData gOamData_839AC1C = { .y = 0, - .affineMode = 0, - .objMode = 1, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 0, - .affineParam = 0, }; const union AnimCmd gSpriteAnim_839AC24[] = @@ -2470,3 +2461,5 @@ static void UpdateRainCounter(u8 newWeather, u8 oldWeather) && (newWeather == WEATHER_RAIN_LIGHT || newWeather == WEATHER_RAIN_MED)) IncrementGameStat(GAME_STAT_GOT_RAINED_ON); } + + diff --git a/src/link_rfu.c b/src/link_rfu.c index a430f6e24..1e4c9c7e6 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -154,9 +154,18 @@ const u8 sWireless_RSEtoASCIITable[] = { 0x20, 0x2b, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00 }; -const struct OamData sWirelessStatusIndicatorOamData = { +const struct OamData sWirelessStatusIndicatorOamData = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), - .size = SPRITE_SIZE(16x16) + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 0, + .paletteNum = 0, }; static const union AnimCmd sWirelessStatusIndicatorAnim0[] = { // 3 bars @@ -5182,3 +5191,4 @@ u32 GetRfuRecvQueueLength(void) { return gUnknown_03005000.unk_124.unk_8c2; } + diff --git a/src/naming_screen.c b/src/naming_screen.c index 75b7c8566..3b8ba037c 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1906,52 +1906,43 @@ static const struct NamingScreenTemplate *const sNamingScreenTemplates[] = const struct OamData gOamData_858BFEC = { .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(8x8), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 0, .paletteNum = 0, - .affineParam = 0, }; const struct OamData gOamData_858BFF4 = { .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(16x16), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, - .affineParam = 0, }; const struct OamData gOamData_858BFFC = { .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x16), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 0, .paletteNum = 0, - .affineParam = 0, }; static const struct Subsprite gUnknown_0858C004[] = @@ -2203,3 +2194,5 @@ static const struct SpritePalette gUnknown_0858C230[] = {gNamingScreenMenu_Pal + 0x40, 0x0007}, {NULL} }; + + diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c old mode 100755 new mode 100644 index 8ca0c8d6e..487db6d58 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -169,9 +169,14 @@ const struct OamData gOamData_85B8C60 = { .y = 160, .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(64x64), + .x = 0, .size = SPRITE_SIZE(64x64), - .priority = 1 + .tileNum = 0, + .priority = 1, + .paletteNum = 0, }; const struct SpriteTemplate gUnknown_085B8C68 = @@ -521,3 +526,4 @@ static void sub_8145B24(s8 a0) sCryVolumeMeter->unk1 = r2; sCryVolumeMeter->unk2 = 5; } + diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 4ff182a0e..a5d3f8961 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -927,18 +927,15 @@ const struct SpritePalette gMonIconPaletteTable[] = const struct OamData sMonIconOamData = { .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, .shape = SPRITE_SHAPE(32x32), .x = 0, - .matrixNum = 0, .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, - .affineParam = 0 }; // fastest to slowest @@ -1311,3 +1308,5 @@ void sub_80D32C8(struct Sprite *sprite, u8 animNum) sprite->animDelayCounter = 0; sprite->animCmdIndex = 0; } + + -- cgit v1.2.3 From 02e2b1af97dc46824faa3b3b6a28dc2483c1b41d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 2 Apr 2019 20:57:09 +0200 Subject: Use species defines in gMonIconTable --- src/pokemon_icon.c | 886 ++++++++++++++++++++++++++--------------------------- 1 file changed, 442 insertions(+), 444 deletions(-) (limited to 'src') diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index a5d3f8961..6a135875e 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -25,446 +25,446 @@ static u8 CreateMonIconSprite(struct MonIconSpriteTemplate *, s16, s16, u8); const u8 *const gMonIconTable[] = { - gMonIcon_Bulbasaur, - gMonIcon_Bulbasaur, - gMonIcon_Ivysaur, - gMonIcon_Venusaur, - gMonIcon_Charmander, - gMonIcon_Charmeleon, - gMonIcon_Charizard, - gMonIcon_Squirtle, - gMonIcon_Wartortle, - gMonIcon_Blastoise, - gMonIcon_Caterpie, - gMonIcon_Metapod, - gMonIcon_Butterfree, - gMonIcon_Weedle, - gMonIcon_Kakuna, - gMonIcon_Beedrill, - gMonIcon_Pidgey, - gMonIcon_Pidgeotto, - gMonIcon_Pidgeot, - gMonIcon_Rattata, - gMonIcon_Raticate, - gMonIcon_Spearow, - gMonIcon_Fearow, - gMonIcon_Ekans, - gMonIcon_Arbok, - gMonIcon_Pikachu, - gMonIcon_Raichu, - gMonIcon_Sandshrew, - gMonIcon_Sandslash, - gMonIcon_NidoranF, - gMonIcon_Nidorina, - gMonIcon_Nidoqueen, - gMonIcon_NidoranM, - gMonIcon_Nidorino, - gMonIcon_Nidoking, - gMonIcon_Clefairy, - gMonIcon_Clefable, - gMonIcon_Vulpix, - gMonIcon_Ninetales, - gMonIcon_Jigglypuff, - gMonIcon_Wigglytuff, - gMonIcon_Zubat, - gMonIcon_Golbat, - gMonIcon_Oddish, - gMonIcon_Gloom, - gMonIcon_Vileplume, - gMonIcon_Paras, - gMonIcon_Parasect, - gMonIcon_Venonat, - gMonIcon_Venomoth, - gMonIcon_Diglett, - gMonIcon_Dugtrio, - gMonIcon_Meowth, - gMonIcon_Persian, - gMonIcon_Psyduck, - gMonIcon_Golduck, - gMonIcon_Mankey, - gMonIcon_Primeape, - gMonIcon_Growlithe, - gMonIcon_Arcanine, - gMonIcon_Poliwag, - gMonIcon_Poliwhirl, - gMonIcon_Poliwrath, - gMonIcon_Abra, - gMonIcon_Kadabra, - gMonIcon_Alakazam, - gMonIcon_Machop, - gMonIcon_Machoke, - gMonIcon_Machamp, - gMonIcon_Bellsprout, - gMonIcon_Weepinbell, - gMonIcon_Victreebel, - gMonIcon_Tentacool, - gMonIcon_Tentacruel, - gMonIcon_Geodude, - gMonIcon_Graveler, - gMonIcon_Golem, - gMonIcon_Ponyta, - gMonIcon_Rapidash, - gMonIcon_Slowpoke, - gMonIcon_Slowbro, - gMonIcon_Magnemite, - gMonIcon_Magneton, - gMonIcon_Farfetchd, - gMonIcon_Doduo, - gMonIcon_Dodrio, - gMonIcon_Seel, - gMonIcon_Dewgong, - gMonIcon_Grimer, - gMonIcon_Muk, - gMonIcon_Shellder, - gMonIcon_Cloyster, - gMonIcon_Gastly, - gMonIcon_Haunter, - gMonIcon_Gengar, - gMonIcon_Onix, - gMonIcon_Drowzee, - gMonIcon_Hypno, - gMonIcon_Krabby, - gMonIcon_Kingler, - gMonIcon_Voltorb, - gMonIcon_Electrode, - gMonIcon_Exeggcute, - gMonIcon_Exeggutor, - gMonIcon_Cubone, - gMonIcon_Marowak, - gMonIcon_Hitmonlee, - gMonIcon_Hitmonchan, - gMonIcon_Lickitung, - gMonIcon_Koffing, - gMonIcon_Weezing, - gMonIcon_Rhyhorn, - gMonIcon_Rhydon, - gMonIcon_Chansey, - gMonIcon_Tangela, - gMonIcon_Kangaskhan, - gMonIcon_Horsea, - gMonIcon_Seadra, - gMonIcon_Goldeen, - gMonIcon_Seaking, - gMonIcon_Staryu, - gMonIcon_Starmie, - gMonIcon_Mrmime, - gMonIcon_Scyther, - gMonIcon_Jynx, - gMonIcon_Electabuzz, - gMonIcon_Magmar, - gMonIcon_Pinsir, - gMonIcon_Tauros, - gMonIcon_Magikarp, - gMonIcon_Gyarados, - gMonIcon_Lapras, - gMonIcon_Ditto, - gMonIcon_Eevee, - gMonIcon_Vaporeon, - gMonIcon_Jolteon, - gMonIcon_Flareon, - gMonIcon_Porygon, - gMonIcon_Omanyte, - gMonIcon_Omastar, - gMonIcon_Kabuto, - gMonIcon_Kabutops, - gMonIcon_Aerodactyl, - gMonIcon_Snorlax, - gMonIcon_Articuno, - gMonIcon_Zapdos, - gMonIcon_Moltres, - gMonIcon_Dratini, - gMonIcon_Dragonair, - gMonIcon_Dragonite, - gMonIcon_Mewtwo, - gMonIcon_Mew, - gMonIcon_Chikorita, - gMonIcon_Bayleef, - gMonIcon_Meganium, - gMonIcon_Cyndaquil, - gMonIcon_Quilava, - gMonIcon_Typhlosion, - gMonIcon_Totodile, - gMonIcon_Croconaw, - gMonIcon_Feraligatr, - gMonIcon_Sentret, - gMonIcon_Furret, - gMonIcon_Hoothoot, - gMonIcon_Noctowl, - gMonIcon_Ledyba, - gMonIcon_Ledian, - gMonIcon_Spinarak, - gMonIcon_Ariados, - gMonIcon_Crobat, - gMonIcon_Chinchou, - gMonIcon_Lanturn, - gMonIcon_Pichu, - gMonIcon_Cleffa, - gMonIcon_Igglybuff, - gMonIcon_Togepi, - gMonIcon_Togetic, - gMonIcon_Natu, - gMonIcon_Xatu, - gMonIcon_Mareep, - gMonIcon_Flaaffy, - gMonIcon_Ampharos, - gMonIcon_Bellossom, - gMonIcon_Marill, - gMonIcon_Azumarill, - gMonIcon_Sudowoodo, - gMonIcon_Politoed, - gMonIcon_Hoppip, - gMonIcon_Skiploom, - gMonIcon_Jumpluff, - gMonIcon_Aipom, - gMonIcon_Sunkern, - gMonIcon_Sunflora, - gMonIcon_Yanma, - gMonIcon_Wooper, - gMonIcon_Quagsire, - gMonIcon_Espeon, - gMonIcon_Umbreon, - gMonIcon_Murkrow, - gMonIcon_Slowking, - gMonIcon_Misdreavus, - gMonIcon_UnownA, - gMonIcon_Wobbuffet, - gMonIcon_Girafarig, - gMonIcon_Pineco, - gMonIcon_Forretress, - gMonIcon_Dunsparce, - gMonIcon_Gligar, - gMonIcon_Steelix, - gMonIcon_Snubbull, - gMonIcon_Granbull, - gMonIcon_Qwilfish, - gMonIcon_Scizor, - gMonIcon_Shuckle, - gMonIcon_Heracross, - gMonIcon_Sneasel, - gMonIcon_Teddiursa, - gMonIcon_Ursaring, - gMonIcon_Slugma, - gMonIcon_Magcargo, - gMonIcon_Swinub, - gMonIcon_Piloswine, - gMonIcon_Corsola, - gMonIcon_Remoraid, - gMonIcon_Octillery, - gMonIcon_Delibird, - gMonIcon_Mantine, - gMonIcon_Skarmory, - gMonIcon_Houndour, - gMonIcon_Houndoom, - gMonIcon_Kingdra, - gMonIcon_Phanpy, - gMonIcon_Donphan, - gMonIcon_Porygon2, - gMonIcon_Stantler, - gMonIcon_Smeargle, - gMonIcon_Tyrogue, - gMonIcon_Hitmontop, - gMonIcon_Smoochum, - gMonIcon_Elekid, - gMonIcon_Magby, - gMonIcon_Miltank, - gMonIcon_Blissey, - gMonIcon_Raikou, - gMonIcon_Entei, - gMonIcon_Suicune, - gMonIcon_Larvitar, - gMonIcon_Pupitar, - gMonIcon_Tyranitar, - gMonIcon_Lugia, - gMonIcon_HoOh, - gMonIcon_Celebi, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_QuestionMark, - gMonIcon_Treecko, - gMonIcon_Grovyle, - gMonIcon_Sceptile, - gMonIcon_Torchic, - gMonIcon_Combusken, - gMonIcon_Blaziken, - gMonIcon_Mudkip, - gMonIcon_Marshtomp, - gMonIcon_Swampert, - gMonIcon_Poochyena, - gMonIcon_Mightyena, - gMonIcon_Zigzagoon, - gMonIcon_Linoone, - gMonIcon_Wurmple, - gMonIcon_Silcoon, - gMonIcon_Beautifly, - gMonIcon_Cascoon, - gMonIcon_Dustox, - gMonIcon_Lotad, - gMonIcon_Lombre, - gMonIcon_Ludicolo, - gMonIcon_Seedot, - gMonIcon_Nuzleaf, - gMonIcon_Shiftry, - gMonIcon_Nincada, - gMonIcon_Ninjask, - gMonIcon_Shedinja, - gMonIcon_Taillow, - gMonIcon_Swellow, - gMonIcon_Shroomish, - gMonIcon_Breloom, - gMonIcon_Spinda, - gMonIcon_Wingull, - gMonIcon_Pelipper, - gMonIcon_Surskit, - gMonIcon_Masquerain, - gMonIcon_Wailmer, - gMonIcon_Wailord, - gMonIcon_Skitty, - gMonIcon_Delcatty, - gMonIcon_Kecleon, - gMonIcon_Baltoy, - gMonIcon_Claydol, - gMonIcon_Nosepass, - gMonIcon_Torkoal, - gMonIcon_Sableye, - gMonIcon_Barboach, - gMonIcon_Whiscash, - gMonIcon_Luvdisc, - gMonIcon_Corphish, - gMonIcon_Crawdaunt, - gMonIcon_Feebas, - gMonIcon_Milotic, - gMonIcon_Carvanha, - gMonIcon_Sharpedo, - gMonIcon_Trapinch, - gMonIcon_Vibrava, - gMonIcon_Flygon, - gMonIcon_Makuhita, - gMonIcon_Hariyama, - gMonIcon_Electrike, - gMonIcon_Manectric, - gMonIcon_Numel, - gMonIcon_Camerupt, - gMonIcon_Spheal, - gMonIcon_Sealeo, - gMonIcon_Walrein, - gMonIcon_Cacnea, - gMonIcon_Cacturne, - gMonIcon_Snorunt, - gMonIcon_Glalie, - gMonIcon_Lunatone, - gMonIcon_Solrock, - gMonIcon_Azurill, - gMonIcon_Spoink, - gMonIcon_Grumpig, - gMonIcon_Plusle, - gMonIcon_Minun, - gMonIcon_Mawile, - gMonIcon_Meditite, - gMonIcon_Medicham, - gMonIcon_Swablu, - gMonIcon_Altaria, - gMonIcon_Wynaut, - gMonIcon_Duskull, - gMonIcon_Dusclops, - gMonIcon_Roselia, - gMonIcon_Slakoth, - gMonIcon_Vigoroth, - gMonIcon_Slaking, - gMonIcon_Gulpin, - gMonIcon_Swalot, - gMonIcon_Tropius, - gMonIcon_Whismur, - gMonIcon_Loudred, - gMonIcon_Exploud, - gMonIcon_Clamperl, - gMonIcon_Huntail, - gMonIcon_Gorebyss, - gMonIcon_Absol, - gMonIcon_Shuppet, - gMonIcon_Banette, - gMonIcon_Seviper, - gMonIcon_Zangoose, - gMonIcon_Relicanth, - gMonIcon_Aron, - gMonIcon_Lairon, - gMonIcon_Aggron, - gMonIcon_Castform, - gMonIcon_Volbeat, - gMonIcon_Illumise, - gMonIcon_Lileep, - gMonIcon_Cradily, - gMonIcon_Anorith, - gMonIcon_Armaldo, - gMonIcon_Ralts, - gMonIcon_Kirlia, - gMonIcon_Gardevoir, - gMonIcon_Bagon, - gMonIcon_Shelgon, - gMonIcon_Salamence, - gMonIcon_Beldum, - gMonIcon_Metang, - gMonIcon_Metagross, - gMonIcon_Regirock, - gMonIcon_Regice, - gMonIcon_Registeel, - gMonIcon_Kyogre, - gMonIcon_Groudon, - gMonIcon_Rayquaza, - gMonIcon_Latias, - gMonIcon_Latios, - gMonIcon_Jirachi, - gMonIcon_Deoxys, - gMonIcon_Chimecho, - gMonIcon_Egg, - gMonIcon_UnownB, - gMonIcon_UnownC, - gMonIcon_UnownD, - gMonIcon_UnownE, - gMonIcon_UnownF, - gMonIcon_UnownG, - gMonIcon_UnownH, - gMonIcon_UnownI, - gMonIcon_UnownJ, - gMonIcon_UnownK, - gMonIcon_UnownL, - gMonIcon_UnownM, - gMonIcon_UnownN, - gMonIcon_UnownO, - gMonIcon_UnownP, - gMonIcon_UnownQ, - gMonIcon_UnownR, - gMonIcon_UnownS, - gMonIcon_UnownT, - gMonIcon_UnownU, - gMonIcon_UnownV, - gMonIcon_UnownW, - gMonIcon_UnownX, - gMonIcon_UnownY, - gMonIcon_UnownZ, - gMonIcon_UnownExclamationMark, - gMonIcon_UnownQuestionMark, + [SPECIES_NONE] = gMonIcon_Bulbasaur, + [SPECIES_BULBASAUR] = gMonIcon_Bulbasaur, + [SPECIES_IVYSAUR] = gMonIcon_Ivysaur, + [SPECIES_VENUSAUR] = gMonIcon_Venusaur, + [SPECIES_CHARMANDER] = gMonIcon_Charmander, + [SPECIES_CHARMELEON] = gMonIcon_Charmeleon, + [SPECIES_CHARIZARD] = gMonIcon_Charizard, + [SPECIES_SQUIRTLE] = gMonIcon_Squirtle, + [SPECIES_WARTORTLE] = gMonIcon_Wartortle, + [SPECIES_BLASTOISE] = gMonIcon_Blastoise, + [SPECIES_CATERPIE] = gMonIcon_Caterpie, + [SPECIES_METAPOD] = gMonIcon_Metapod, + [SPECIES_BUTTERFREE] = gMonIcon_Butterfree, + [SPECIES_WEEDLE] = gMonIcon_Weedle, + [SPECIES_KAKUNA] = gMonIcon_Kakuna, + [SPECIES_BEEDRILL] = gMonIcon_Beedrill, + [SPECIES_PIDGEY] = gMonIcon_Pidgey, + [SPECIES_PIDGEOTTO] = gMonIcon_Pidgeotto, + [SPECIES_PIDGEOT] = gMonIcon_Pidgeot, + [SPECIES_RATTATA] = gMonIcon_Rattata, + [SPECIES_RATICATE] = gMonIcon_Raticate, + [SPECIES_SPEAROW] = gMonIcon_Spearow, + [SPECIES_FEAROW] = gMonIcon_Fearow, + [SPECIES_EKANS] = gMonIcon_Ekans, + [SPECIES_ARBOK] = gMonIcon_Arbok, + [SPECIES_PIKACHU] = gMonIcon_Pikachu, + [SPECIES_RAICHU] = gMonIcon_Raichu, + [SPECIES_SANDSHREW] = gMonIcon_Sandshrew, + [SPECIES_SANDSLASH] = gMonIcon_Sandslash, + [SPECIES_NIDORAN_F] = gMonIcon_NidoranF, + [SPECIES_NIDORINA] = gMonIcon_Nidorina, + [SPECIES_NIDOQUEEN] = gMonIcon_Nidoqueen, + [SPECIES_NIDORAN_M] = gMonIcon_NidoranM, + [SPECIES_NIDORINO] = gMonIcon_Nidorino, + [SPECIES_NIDOKING] = gMonIcon_Nidoking, + [SPECIES_CLEFAIRY] = gMonIcon_Clefairy, + [SPECIES_CLEFABLE] = gMonIcon_Clefable, + [SPECIES_VULPIX] = gMonIcon_Vulpix, + [SPECIES_NINETALES] = gMonIcon_Ninetales, + [SPECIES_JIGGLYPUFF] = gMonIcon_Jigglypuff, + [SPECIES_WIGGLYTUFF] = gMonIcon_Wigglytuff, + [SPECIES_ZUBAT] = gMonIcon_Zubat, + [SPECIES_GOLBAT] = gMonIcon_Golbat, + [SPECIES_ODDISH] = gMonIcon_Oddish, + [SPECIES_GLOOM] = gMonIcon_Gloom, + [SPECIES_VILEPLUME] = gMonIcon_Vileplume, + [SPECIES_PARAS] = gMonIcon_Paras, + [SPECIES_PARASECT] = gMonIcon_Parasect, + [SPECIES_VENONAT] = gMonIcon_Venonat, + [SPECIES_VENOMOTH] = gMonIcon_Venomoth, + [SPECIES_DIGLETT] = gMonIcon_Diglett, + [SPECIES_DUGTRIO] = gMonIcon_Dugtrio, + [SPECIES_MEOWTH] = gMonIcon_Meowth, + [SPECIES_PERSIAN] = gMonIcon_Persian, + [SPECIES_PSYDUCK] = gMonIcon_Psyduck, + [SPECIES_GOLDUCK] = gMonIcon_Golduck, + [SPECIES_MANKEY] = gMonIcon_Mankey, + [SPECIES_PRIMEAPE] = gMonIcon_Primeape, + [SPECIES_GROWLITHE] = gMonIcon_Growlithe, + [SPECIES_ARCANINE] = gMonIcon_Arcanine, + [SPECIES_POLIWAG] = gMonIcon_Poliwag, + [SPECIES_POLIWHIRL] = gMonIcon_Poliwhirl, + [SPECIES_POLIWRATH] = gMonIcon_Poliwrath, + [SPECIES_ABRA] = gMonIcon_Abra, + [SPECIES_KADABRA] = gMonIcon_Kadabra, + [SPECIES_ALAKAZAM] = gMonIcon_Alakazam, + [SPECIES_MACHOP] = gMonIcon_Machop, + [SPECIES_MACHOKE] = gMonIcon_Machoke, + [SPECIES_MACHAMP] = gMonIcon_Machamp, + [SPECIES_BELLSPROUT] = gMonIcon_Bellsprout, + [SPECIES_WEEPINBELL] = gMonIcon_Weepinbell, + [SPECIES_VICTREEBEL] = gMonIcon_Victreebel, + [SPECIES_TENTACOOL] = gMonIcon_Tentacool, + [SPECIES_TENTACRUEL] = gMonIcon_Tentacruel, + [SPECIES_GEODUDE] = gMonIcon_Geodude, + [SPECIES_GRAVELER] = gMonIcon_Graveler, + [SPECIES_GOLEM] = gMonIcon_Golem, + [SPECIES_PONYTA] = gMonIcon_Ponyta, + [SPECIES_RAPIDASH] = gMonIcon_Rapidash, + [SPECIES_SLOWPOKE] = gMonIcon_Slowpoke, + [SPECIES_SLOWBRO] = gMonIcon_Slowbro, + [SPECIES_MAGNEMITE] = gMonIcon_Magnemite, + [SPECIES_MAGNETON] = gMonIcon_Magneton, + [SPECIES_FARFETCHD] = gMonIcon_Farfetchd, + [SPECIES_DODUO] = gMonIcon_Doduo, + [SPECIES_DODRIO] = gMonIcon_Dodrio, + [SPECIES_SEEL] = gMonIcon_Seel, + [SPECIES_DEWGONG] = gMonIcon_Dewgong, + [SPECIES_GRIMER] = gMonIcon_Grimer, + [SPECIES_MUK] = gMonIcon_Muk, + [SPECIES_SHELLDER] = gMonIcon_Shellder, + [SPECIES_CLOYSTER] = gMonIcon_Cloyster, + [SPECIES_GASTLY] = gMonIcon_Gastly, + [SPECIES_HAUNTER] = gMonIcon_Haunter, + [SPECIES_GENGAR] = gMonIcon_Gengar, + [SPECIES_ONIX] = gMonIcon_Onix, + [SPECIES_DROWZEE] = gMonIcon_Drowzee, + [SPECIES_HYPNO] = gMonIcon_Hypno, + [SPECIES_KRABBY] = gMonIcon_Krabby, + [SPECIES_KINGLER] = gMonIcon_Kingler, + [SPECIES_VOLTORB] = gMonIcon_Voltorb, + [SPECIES_ELECTRODE] = gMonIcon_Electrode, + [SPECIES_EXEGGCUTE] = gMonIcon_Exeggcute, + [SPECIES_EXEGGUTOR] = gMonIcon_Exeggutor, + [SPECIES_CUBONE] = gMonIcon_Cubone, + [SPECIES_MAROWAK] = gMonIcon_Marowak, + [SPECIES_HITMONLEE] = gMonIcon_Hitmonlee, + [SPECIES_HITMONCHAN] = gMonIcon_Hitmonchan, + [SPECIES_LICKITUNG] = gMonIcon_Lickitung, + [SPECIES_KOFFING] = gMonIcon_Koffing, + [SPECIES_WEEZING] = gMonIcon_Weezing, + [SPECIES_RHYHORN] = gMonIcon_Rhyhorn, + [SPECIES_RHYDON] = gMonIcon_Rhydon, + [SPECIES_CHANSEY] = gMonIcon_Chansey, + [SPECIES_TANGELA] = gMonIcon_Tangela, + [SPECIES_KANGASKHAN] = gMonIcon_Kangaskhan, + [SPECIES_HORSEA] = gMonIcon_Horsea, + [SPECIES_SEADRA] = gMonIcon_Seadra, + [SPECIES_GOLDEEN] = gMonIcon_Goldeen, + [SPECIES_SEAKING] = gMonIcon_Seaking, + [SPECIES_STARYU] = gMonIcon_Staryu, + [SPECIES_STARMIE] = gMonIcon_Starmie, + [SPECIES_MR_MIME] = gMonIcon_Mrmime, + [SPECIES_SCYTHER] = gMonIcon_Scyther, + [SPECIES_JYNX] = gMonIcon_Jynx, + [SPECIES_ELECTABUZZ] = gMonIcon_Electabuzz, + [SPECIES_MAGMAR] = gMonIcon_Magmar, + [SPECIES_PINSIR] = gMonIcon_Pinsir, + [SPECIES_TAUROS] = gMonIcon_Tauros, + [SPECIES_MAGIKARP] = gMonIcon_Magikarp, + [SPECIES_GYARADOS] = gMonIcon_Gyarados, + [SPECIES_LAPRAS] = gMonIcon_Lapras, + [SPECIES_DITTO] = gMonIcon_Ditto, + [SPECIES_EEVEE] = gMonIcon_Eevee, + [SPECIES_VAPOREON] = gMonIcon_Vaporeon, + [SPECIES_JOLTEON] = gMonIcon_Jolteon, + [SPECIES_FLAREON] = gMonIcon_Flareon, + [SPECIES_PORYGON] = gMonIcon_Porygon, + [SPECIES_OMANYTE] = gMonIcon_Omanyte, + [SPECIES_OMASTAR] = gMonIcon_Omastar, + [SPECIES_KABUTO] = gMonIcon_Kabuto, + [SPECIES_KABUTOPS] = gMonIcon_Kabutops, + [SPECIES_AERODACTYL] = gMonIcon_Aerodactyl, + [SPECIES_SNORLAX] = gMonIcon_Snorlax, + [SPECIES_ARTICUNO] = gMonIcon_Articuno, + [SPECIES_ZAPDOS] = gMonIcon_Zapdos, + [SPECIES_MOLTRES] = gMonIcon_Moltres, + [SPECIES_DRATINI] = gMonIcon_Dratini, + [SPECIES_DRAGONAIR] = gMonIcon_Dragonair, + [SPECIES_DRAGONITE] = gMonIcon_Dragonite, + [SPECIES_MEWTWO] = gMonIcon_Mewtwo, + [SPECIES_MEW] = gMonIcon_Mew, + [SPECIES_CHIKORITA] = gMonIcon_Chikorita, + [SPECIES_BAYLEEF] = gMonIcon_Bayleef, + [SPECIES_MEGANIUM] = gMonIcon_Meganium, + [SPECIES_CYNDAQUIL] = gMonIcon_Cyndaquil, + [SPECIES_QUILAVA] = gMonIcon_Quilava, + [SPECIES_TYPHLOSION] = gMonIcon_Typhlosion, + [SPECIES_TOTODILE] = gMonIcon_Totodile, + [SPECIES_CROCONAW] = gMonIcon_Croconaw, + [SPECIES_FERALIGATR] = gMonIcon_Feraligatr, + [SPECIES_SENTRET] = gMonIcon_Sentret, + [SPECIES_FURRET] = gMonIcon_Furret, + [SPECIES_HOOTHOOT] = gMonIcon_Hoothoot, + [SPECIES_NOCTOWL] = gMonIcon_Noctowl, + [SPECIES_LEDYBA] = gMonIcon_Ledyba, + [SPECIES_LEDIAN] = gMonIcon_Ledian, + [SPECIES_SPINARAK] = gMonIcon_Spinarak, + [SPECIES_ARIADOS] = gMonIcon_Ariados, + [SPECIES_CROBAT] = gMonIcon_Crobat, + [SPECIES_CHINCHOU] = gMonIcon_Chinchou, + [SPECIES_LANTURN] = gMonIcon_Lanturn, + [SPECIES_PICHU] = gMonIcon_Pichu, + [SPECIES_CLEFFA] = gMonIcon_Cleffa, + [SPECIES_IGGLYBUFF] = gMonIcon_Igglybuff, + [SPECIES_TOGEPI] = gMonIcon_Togepi, + [SPECIES_TOGETIC] = gMonIcon_Togetic, + [SPECIES_NATU] = gMonIcon_Natu, + [SPECIES_XATU] = gMonIcon_Xatu, + [SPECIES_MAREEP] = gMonIcon_Mareep, + [SPECIES_FLAAFFY] = gMonIcon_Flaaffy, + [SPECIES_AMPHAROS] = gMonIcon_Ampharos, + [SPECIES_BELLOSSOM] = gMonIcon_Bellossom, + [SPECIES_MARILL] = gMonIcon_Marill, + [SPECIES_AZUMARILL] = gMonIcon_Azumarill, + [SPECIES_SUDOWOODO] = gMonIcon_Sudowoodo, + [SPECIES_POLITOED] = gMonIcon_Politoed, + [SPECIES_HOPPIP] = gMonIcon_Hoppip, + [SPECIES_SKIPLOOM] = gMonIcon_Skiploom, + [SPECIES_JUMPLUFF] = gMonIcon_Jumpluff, + [SPECIES_AIPOM] = gMonIcon_Aipom, + [SPECIES_SUNKERN] = gMonIcon_Sunkern, + [SPECIES_SUNFLORA] = gMonIcon_Sunflora, + [SPECIES_YANMA] = gMonIcon_Yanma, + [SPECIES_WOOPER] = gMonIcon_Wooper, + [SPECIES_QUAGSIRE] = gMonIcon_Quagsire, + [SPECIES_ESPEON] = gMonIcon_Espeon, + [SPECIES_UMBREON] = gMonIcon_Umbreon, + [SPECIES_MURKROW] = gMonIcon_Murkrow, + [SPECIES_SLOWKING] = gMonIcon_Slowking, + [SPECIES_MISDREAVUS] = gMonIcon_Misdreavus, + [SPECIES_UNOWN] = gMonIcon_UnownA, + [SPECIES_WOBBUFFET] = gMonIcon_Wobbuffet, + [SPECIES_GIRAFARIG] = gMonIcon_Girafarig, + [SPECIES_PINECO] = gMonIcon_Pineco, + [SPECIES_FORRETRESS] = gMonIcon_Forretress, + [SPECIES_DUNSPARCE] = gMonIcon_Dunsparce, + [SPECIES_GLIGAR] = gMonIcon_Gligar, + [SPECIES_STEELIX] = gMonIcon_Steelix, + [SPECIES_SNUBBULL] = gMonIcon_Snubbull, + [SPECIES_GRANBULL] = gMonIcon_Granbull, + [SPECIES_QWILFISH] = gMonIcon_Qwilfish, + [SPECIES_SCIZOR] = gMonIcon_Scizor, + [SPECIES_SHUCKLE] = gMonIcon_Shuckle, + [SPECIES_HERACROSS] = gMonIcon_Heracross, + [SPECIES_SNEASEL] = gMonIcon_Sneasel, + [SPECIES_TEDDIURSA] = gMonIcon_Teddiursa, + [SPECIES_URSARING] = gMonIcon_Ursaring, + [SPECIES_SLUGMA] = gMonIcon_Slugma, + [SPECIES_MAGCARGO] = gMonIcon_Magcargo, + [SPECIES_SWINUB] = gMonIcon_Swinub, + [SPECIES_PILOSWINE] = gMonIcon_Piloswine, + [SPECIES_CORSOLA] = gMonIcon_Corsola, + [SPECIES_REMORAID] = gMonIcon_Remoraid, + [SPECIES_OCTILLERY] = gMonIcon_Octillery, + [SPECIES_DELIBIRD] = gMonIcon_Delibird, + [SPECIES_MANTINE] = gMonIcon_Mantine, + [SPECIES_SKARMORY] = gMonIcon_Skarmory, + [SPECIES_HOUNDOUR] = gMonIcon_Houndour, + [SPECIES_HOUNDOOM] = gMonIcon_Houndoom, + [SPECIES_KINGDRA] = gMonIcon_Kingdra, + [SPECIES_PHANPY] = gMonIcon_Phanpy, + [SPECIES_DONPHAN] = gMonIcon_Donphan, + [SPECIES_PORYGON2] = gMonIcon_Porygon2, + [SPECIES_STANTLER] = gMonIcon_Stantler, + [SPECIES_SMEARGLE] = gMonIcon_Smeargle, + [SPECIES_TYROGUE] = gMonIcon_Tyrogue, + [SPECIES_HITMONTOP] = gMonIcon_Hitmontop, + [SPECIES_SMOOCHUM] = gMonIcon_Smoochum, + [SPECIES_ELEKID] = gMonIcon_Elekid, + [SPECIES_MAGBY] = gMonIcon_Magby, + [SPECIES_MILTANK] = gMonIcon_Miltank, + [SPECIES_BLISSEY] = gMonIcon_Blissey, + [SPECIES_RAIKOU] = gMonIcon_Raikou, + [SPECIES_ENTEI] = gMonIcon_Entei, + [SPECIES_SUICUNE] = gMonIcon_Suicune, + [SPECIES_LARVITAR] = gMonIcon_Larvitar, + [SPECIES_PUPITAR] = gMonIcon_Pupitar, + [SPECIES_TYRANITAR] = gMonIcon_Tyranitar, + [SPECIES_LUGIA] = gMonIcon_Lugia, + [SPECIES_HO_OH] = gMonIcon_HoOh, + [SPECIES_CELEBI] = gMonIcon_Celebi, + [SPECIES_OLD_UNOWN_B] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_C] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_D] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_E] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_F] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_G] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_H] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_I] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_J] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_K] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_L] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_M] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_N] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_O] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_P] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_Q] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_R] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_S] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_T] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_U] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_V] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_W] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_X] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_Y] = gMonIcon_QuestionMark, + [SPECIES_OLD_UNOWN_Z] = gMonIcon_QuestionMark, + [SPECIES_TREECKO] = gMonIcon_Treecko, + [SPECIES_GROVYLE] = gMonIcon_Grovyle, + [SPECIES_SCEPTILE] = gMonIcon_Sceptile, + [SPECIES_TORCHIC] = gMonIcon_Torchic, + [SPECIES_COMBUSKEN] = gMonIcon_Combusken, + [SPECIES_BLAZIKEN] = gMonIcon_Blaziken, + [SPECIES_MUDKIP] = gMonIcon_Mudkip, + [SPECIES_MARSHTOMP] = gMonIcon_Marshtomp, + [SPECIES_SWAMPERT] = gMonIcon_Swampert, + [SPECIES_POOCHYENA] = gMonIcon_Poochyena, + [SPECIES_MIGHTYENA] = gMonIcon_Mightyena, + [SPECIES_ZIGZAGOON] = gMonIcon_Zigzagoon, + [SPECIES_LINOONE] = gMonIcon_Linoone, + [SPECIES_WURMPLE] = gMonIcon_Wurmple, + [SPECIES_SILCOON] = gMonIcon_Silcoon, + [SPECIES_BEAUTIFLY] = gMonIcon_Beautifly, + [SPECIES_CASCOON] = gMonIcon_Cascoon, + [SPECIES_DUSTOX] = gMonIcon_Dustox, + [SPECIES_LOTAD] = gMonIcon_Lotad, + [SPECIES_LOMBRE] = gMonIcon_Lombre, + [SPECIES_LUDICOLO] = gMonIcon_Ludicolo, + [SPECIES_SEEDOT] = gMonIcon_Seedot, + [SPECIES_NUZLEAF] = gMonIcon_Nuzleaf, + [SPECIES_SHIFTRY] = gMonIcon_Shiftry, + [SPECIES_NINCADA] = gMonIcon_Nincada, + [SPECIES_NINJASK] = gMonIcon_Ninjask, + [SPECIES_SHEDINJA] = gMonIcon_Shedinja, + [SPECIES_TAILLOW] = gMonIcon_Taillow, + [SPECIES_SWELLOW] = gMonIcon_Swellow, + [SPECIES_SHROOMISH] = gMonIcon_Shroomish, + [SPECIES_BRELOOM] = gMonIcon_Breloom, + [SPECIES_SPINDA] = gMonIcon_Spinda, + [SPECIES_WINGULL] = gMonIcon_Wingull, + [SPECIES_PELIPPER] = gMonIcon_Pelipper, + [SPECIES_SURSKIT] = gMonIcon_Surskit, + [SPECIES_MASQUERAIN] = gMonIcon_Masquerain, + [SPECIES_WAILMER] = gMonIcon_Wailmer, + [SPECIES_WAILORD] = gMonIcon_Wailord, + [SPECIES_SKITTY] = gMonIcon_Skitty, + [SPECIES_DELCATTY] = gMonIcon_Delcatty, + [SPECIES_KECLEON] = gMonIcon_Kecleon, + [SPECIES_BALTOY] = gMonIcon_Baltoy, + [SPECIES_CLAYDOL] = gMonIcon_Claydol, + [SPECIES_NOSEPASS] = gMonIcon_Nosepass, + [SPECIES_TORKOAL] = gMonIcon_Torkoal, + [SPECIES_SABLEYE] = gMonIcon_Sableye, + [SPECIES_BARBOACH] = gMonIcon_Barboach, + [SPECIES_WHISCASH] = gMonIcon_Whiscash, + [SPECIES_LUVDISC] = gMonIcon_Luvdisc, + [SPECIES_CORPHISH] = gMonIcon_Corphish, + [SPECIES_CRAWDAUNT] = gMonIcon_Crawdaunt, + [SPECIES_FEEBAS] = gMonIcon_Feebas, + [SPECIES_MILOTIC] = gMonIcon_Milotic, + [SPECIES_CARVANHA] = gMonIcon_Carvanha, + [SPECIES_SHARPEDO] = gMonIcon_Sharpedo, + [SPECIES_TRAPINCH] = gMonIcon_Trapinch, + [SPECIES_VIBRAVA] = gMonIcon_Vibrava, + [SPECIES_FLYGON] = gMonIcon_Flygon, + [SPECIES_MAKUHITA] = gMonIcon_Makuhita, + [SPECIES_HARIYAMA] = gMonIcon_Hariyama, + [SPECIES_ELECTRIKE] = gMonIcon_Electrike, + [SPECIES_MANECTRIC] = gMonIcon_Manectric, + [SPECIES_NUMEL] = gMonIcon_Numel, + [SPECIES_CAMERUPT] = gMonIcon_Camerupt, + [SPECIES_SPHEAL] = gMonIcon_Spheal, + [SPECIES_SEALEO] = gMonIcon_Sealeo, + [SPECIES_WALREIN] = gMonIcon_Walrein, + [SPECIES_CACNEA] = gMonIcon_Cacnea, + [SPECIES_CACTURNE] = gMonIcon_Cacturne, + [SPECIES_SNORUNT] = gMonIcon_Snorunt, + [SPECIES_GLALIE] = gMonIcon_Glalie, + [SPECIES_LUNATONE] = gMonIcon_Lunatone, + [SPECIES_SOLROCK] = gMonIcon_Solrock, + [SPECIES_AZURILL] = gMonIcon_Azurill, + [SPECIES_SPOINK] = gMonIcon_Spoink, + [SPECIES_GRUMPIG] = gMonIcon_Grumpig, + [SPECIES_PLUSLE] = gMonIcon_Plusle, + [SPECIES_MINUN] = gMonIcon_Minun, + [SPECIES_MAWILE] = gMonIcon_Mawile, + [SPECIES_MEDITITE] = gMonIcon_Meditite, + [SPECIES_MEDICHAM] = gMonIcon_Medicham, + [SPECIES_SWABLU] = gMonIcon_Swablu, + [SPECIES_ALTARIA] = gMonIcon_Altaria, + [SPECIES_WYNAUT] = gMonIcon_Wynaut, + [SPECIES_DUSKULL] = gMonIcon_Duskull, + [SPECIES_DUSCLOPS] = gMonIcon_Dusclops, + [SPECIES_ROSELIA] = gMonIcon_Roselia, + [SPECIES_SLAKOTH] = gMonIcon_Slakoth, + [SPECIES_VIGOROTH] = gMonIcon_Vigoroth, + [SPECIES_SLAKING] = gMonIcon_Slaking, + [SPECIES_GULPIN] = gMonIcon_Gulpin, + [SPECIES_SWALOT] = gMonIcon_Swalot, + [SPECIES_TROPIUS] = gMonIcon_Tropius, + [SPECIES_WHISMUR] = gMonIcon_Whismur, + [SPECIES_LOUDRED] = gMonIcon_Loudred, + [SPECIES_EXPLOUD] = gMonIcon_Exploud, + [SPECIES_CLAMPERL] = gMonIcon_Clamperl, + [SPECIES_HUNTAIL] = gMonIcon_Huntail, + [SPECIES_GOREBYSS] = gMonIcon_Gorebyss, + [SPECIES_ABSOL] = gMonIcon_Absol, + [SPECIES_SHUPPET] = gMonIcon_Shuppet, + [SPECIES_BANETTE] = gMonIcon_Banette, + [SPECIES_SEVIPER] = gMonIcon_Seviper, + [SPECIES_ZANGOOSE] = gMonIcon_Zangoose, + [SPECIES_RELICANTH] = gMonIcon_Relicanth, + [SPECIES_ARON] = gMonIcon_Aron, + [SPECIES_LAIRON] = gMonIcon_Lairon, + [SPECIES_AGGRON] = gMonIcon_Aggron, + [SPECIES_CASTFORM] = gMonIcon_Castform, + [SPECIES_VOLBEAT] = gMonIcon_Volbeat, + [SPECIES_ILLUMISE] = gMonIcon_Illumise, + [SPECIES_LILEEP] = gMonIcon_Lileep, + [SPECIES_CRADILY] = gMonIcon_Cradily, + [SPECIES_ANORITH] = gMonIcon_Anorith, + [SPECIES_ARMALDO] = gMonIcon_Armaldo, + [SPECIES_RALTS] = gMonIcon_Ralts, + [SPECIES_KIRLIA] = gMonIcon_Kirlia, + [SPECIES_GARDEVOIR] = gMonIcon_Gardevoir, + [SPECIES_BAGON] = gMonIcon_Bagon, + [SPECIES_SHELGON] = gMonIcon_Shelgon, + [SPECIES_SALAMENCE] = gMonIcon_Salamence, + [SPECIES_BELDUM] = gMonIcon_Beldum, + [SPECIES_METANG] = gMonIcon_Metang, + [SPECIES_METAGROSS] = gMonIcon_Metagross, + [SPECIES_REGIROCK] = gMonIcon_Regirock, + [SPECIES_REGICE] = gMonIcon_Regice, + [SPECIES_REGISTEEL] = gMonIcon_Registeel, + [SPECIES_KYOGRE] = gMonIcon_Kyogre, + [SPECIES_GROUDON] = gMonIcon_Groudon, + [SPECIES_RAYQUAZA] = gMonIcon_Rayquaza, + [SPECIES_LATIAS] = gMonIcon_Latias, + [SPECIES_LATIOS] = gMonIcon_Latios, + [SPECIES_JIRACHI] = gMonIcon_Jirachi, + [SPECIES_DEOXYS] = gMonIcon_Deoxys, + [SPECIES_CHIMECHO] = gMonIcon_Chimecho, + [SPECIES_EGG] = gMonIcon_Egg, + [SPECIES_UNOWN_B] = gMonIcon_UnownB, + [SPECIES_UNOWN_C] = gMonIcon_UnownC, + [SPECIES_UNOWN_D] = gMonIcon_UnownD, + [SPECIES_UNOWN_E] = gMonIcon_UnownE, + [SPECIES_UNOWN_F] = gMonIcon_UnownF, + [SPECIES_UNOWN_G] = gMonIcon_UnownG, + [SPECIES_UNOWN_H] = gMonIcon_UnownH, + [SPECIES_UNOWN_I] = gMonIcon_UnownI, + [SPECIES_UNOWN_J] = gMonIcon_UnownJ, + [SPECIES_UNOWN_K] = gMonIcon_UnownK, + [SPECIES_UNOWN_L] = gMonIcon_UnownL, + [SPECIES_UNOWN_M] = gMonIcon_UnownM, + [SPECIES_UNOWN_N] = gMonIcon_UnownN, + [SPECIES_UNOWN_O] = gMonIcon_UnownO, + [SPECIES_UNOWN_P] = gMonIcon_UnownP, + [SPECIES_UNOWN_Q] = gMonIcon_UnownQ, + [SPECIES_UNOWN_R] = gMonIcon_UnownR, + [SPECIES_UNOWN_S] = gMonIcon_UnownS, + [SPECIES_UNOWN_T] = gMonIcon_UnownT, + [SPECIES_UNOWN_U] = gMonIcon_UnownU, + [SPECIES_UNOWN_V] = gMonIcon_UnownV, + [SPECIES_UNOWN_W] = gMonIcon_UnownW, + [SPECIES_UNOWN_X] = gMonIcon_UnownX, + [SPECIES_UNOWN_Y] = gMonIcon_UnownY, + [SPECIES_UNOWN_Z] = gMonIcon_UnownZ, + [SPECIES_UNOWN_EMARK] = gMonIcon_UnownExclamationMark, + [SPECIES_UNOWN_QMARK] = gMonIcon_UnownQuestionMark, }; const u8 gMonIconPaletteIndices[] = @@ -1138,7 +1138,7 @@ void sub_80D2EF8(struct Sprite *sprite) void LoadMonIconPalettes(void) { u8 i; - for (i = 0; i < 6; i++) + for (i = 0; i < ARRAY_COUNT(gMonIconPaletteTable); i++) LoadSpritePalette(&gMonIconPaletteTable[i]); } @@ -1192,7 +1192,7 @@ void sub_80D3014(struct Sprite *sprite) const u8* GetMonIconTiles(u16 species, bool32 extra) { const u8* iconSprite = gMonIconTable[species]; - if(species == SPECIES_DEOXYS && extra == TRUE) + if (species == SPECIES_DEOXYS && extra == TRUE) { iconSprite = (const u8*)(0x400 + (u32)iconSprite); //WTF? } @@ -1308,5 +1308,3 @@ void sub_80D32C8(struct Sprite *sprite, u8 animNum) sprite->animDelayCounter = 0; sprite->animCmdIndex = 0; } - - -- cgit v1.2.3 From 2745cdc7d26e84d7efc5349519a494610390e130 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 2 Apr 2019 18:02:43 +0200 Subject: Remove unneeded sMonAnimationDelayTable entries --- src/pokemon.c | 360 +--------------------------------------------------------- 1 file changed, 2 insertions(+), 358 deletions(-) (limited to 'src') diff --git a/src/pokemon.c b/src/pokemon.c index 7c26b4c22..984c484a2 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1810,419 +1810,63 @@ static const u8 sMonFrontAnimIdsTable[] = [SPECIES_CHIMECHO - 1] = 0x1d, }; -static const u8 sMonAnimationDelayTable[] = -{ - [SPECIES_BULBASAUR - 1] = 0x00, - [SPECIES_IVYSAUR - 1] = 0x00, - [SPECIES_VENUSAUR - 1] = 0x00, - [SPECIES_CHARMANDER - 1] = 0x00, - [SPECIES_CHARMELEON - 1] = 0x00, - [SPECIES_CHARIZARD - 1] = 0x00, - [SPECIES_SQUIRTLE - 1] = 0x00, - [SPECIES_WARTORTLE - 1] = 0x00, +static const u8 sMonAnimationDelayTable[NUM_SPECIES - 1] = +{ [SPECIES_BLASTOISE - 1] = 0x32, - [SPECIES_CATERPIE - 1] = 0x00, - [SPECIES_METAPOD - 1] = 0x00, - [SPECIES_BUTTERFREE - 1] = 0x00, [SPECIES_WEEDLE - 1] = 0x0a, [SPECIES_KAKUNA - 1] = 0x14, [SPECIES_BEEDRILL - 1] = 0x23, - [SPECIES_PIDGEY - 1] = 0x00, [SPECIES_PIDGEOTTO - 1] = 0x19, - [SPECIES_PIDGEOT - 1] = 0x00, - [SPECIES_RATTATA - 1] = 0x00, - [SPECIES_RATICATE - 1] = 0x00, - [SPECIES_SPEAROW - 1] = 0x00, [SPECIES_FEAROW - 1] = 0x02, [SPECIES_EKANS - 1] = 0x1e, - [SPECIES_ARBOK - 1] = 0x00, - [SPECIES_PIKACHU - 1] = 0x00, - [SPECIES_RAICHU - 1] = 0x00, - [SPECIES_SANDSHREW - 1] = 0x00, - [SPECIES_SANDSLASH - 1] = 0x00, [SPECIES_NIDORAN_F - 1] = 0x1c, - [SPECIES_NIDORINA - 1] = 0x00, - [SPECIES_NIDOQUEEN - 1] = 0x00, - [SPECIES_NIDORAN_M - 1] = 0x00, - [SPECIES_NIDORINO - 1] = 0x00, [SPECIES_NIDOKING - 1] = 0x19, - [SPECIES_CLEFAIRY - 1] = 0x00, - [SPECIES_CLEFABLE - 1] = 0x00, - [SPECIES_VULPIX - 1] = 0x00, - [SPECIES_NINETALES - 1] = 0x00, - [SPECIES_JIGGLYPUFF - 1] = 0x00, - [SPECIES_WIGGLYTUFF - 1] = 0x00, - [SPECIES_ZUBAT - 1] = 0x00, - [SPECIES_GOLBAT - 1] = 0x00, - [SPECIES_ODDISH - 1] = 0x00, - [SPECIES_GLOOM - 1] = 0x00, - [SPECIES_VILEPLUME - 1] = 0x00, [SPECIES_PARAS - 1] = 0x0a, [SPECIES_PARASECT - 1] = 0x2d, [SPECIES_VENONAT - 1] = 0x14, - [SPECIES_VENOMOTH - 1] = 0x00, [SPECIES_DIGLETT - 1] = 0x19, [SPECIES_DUGTRIO - 1] = 0x23, [SPECIES_MEOWTH - 1] = 0x28, [SPECIES_PERSIAN - 1] = 0x14, - [SPECIES_PSYDUCK - 1] = 0x00, - [SPECIES_GOLDUCK - 1] = 0x00, [SPECIES_MANKEY - 1] = 0x14, - [SPECIES_PRIMEAPE - 1] = 0x00, [SPECIES_GROWLITHE - 1] = 0x1e, [SPECIES_ARCANINE - 1] = 0x28, - [SPECIES_POLIWAG - 1] = 0x00, [SPECIES_POLIWHIRL - 1] = 0x05, - [SPECIES_POLIWRATH - 1] = 0x00, - [SPECIES_ABRA - 1] = 0x00, - [SPECIES_KADABRA - 1] = 0x00, - [SPECIES_ALAKAZAM - 1] = 0x00, - [SPECIES_MACHOP - 1] = 0x00, - [SPECIES_MACHOKE - 1] = 0x00, - [SPECIES_MACHAMP - 1] = 0x00, - [SPECIES_BELLSPROUT - 1] = 0x00, [SPECIES_WEEPINBELL - 1] = 0x03, - [SPECIES_VICTREEBEL - 1] = 0x00, - [SPECIES_TENTACOOL - 1] = 0x00, - [SPECIES_TENTACRUEL - 1] = 0x00, - [SPECIES_GEODUDE - 1] = 0x00, - [SPECIES_GRAVELER - 1] = 0x00, - [SPECIES_GOLEM - 1] = 0x00, - [SPECIES_PONYTA - 1] = 0x00, - [SPECIES_RAPIDASH - 1] = 0x00, - [SPECIES_SLOWPOKE - 1] = 0x00, - [SPECIES_SLOWBRO - 1] = 0x00, - [SPECIES_MAGNEMITE - 1] = 0x00, - [SPECIES_MAGNETON - 1] = 0x00, - [SPECIES_FARFETCHD - 1] = 0x00, - [SPECIES_DODUO - 1] = 0x00, - [SPECIES_DODRIO - 1] = 0x00, - [SPECIES_SEEL - 1] = 0x00, - [SPECIES_DEWGONG - 1] = 0x00, - [SPECIES_GRIMER - 1] = 0x00, [SPECIES_MUK - 1] = 0x2d, [SPECIES_SHELLDER - 1] = 0x14, - [SPECIES_CLOYSTER - 1] = 0x00, - [SPECIES_GASTLY - 1] = 0x00, [SPECIES_HAUNTER - 1] = 0x17, - [SPECIES_GENGAR - 1] = 0x00, - [SPECIES_ONIX - 1] = 0x00, [SPECIES_DROWZEE - 1] = 0x30, [SPECIES_HYPNO - 1] = 0x28, - [SPECIES_KRABBY - 1] = 0x00, - [SPECIES_KINGLER - 1] = 0x00, - [SPECIES_VOLTORB - 1] = 0x00, - [SPECIES_ELECTRODE - 1] = 0x00, - [SPECIES_EXEGGCUTE - 1] = 0x00, - [SPECIES_EXEGGUTOR - 1] = 0x00, - [SPECIES_CUBONE - 1] = 0x00, - [SPECIES_MAROWAK - 1] = 0x00, - [SPECIES_HITMONLEE - 1] = 0x00, [SPECIES_HITMONCHAN - 1] = 0x19, - [SPECIES_LICKITUNG - 1] = 0x00, - [SPECIES_KOFFING - 1] = 0x00, - [SPECIES_WEEZING - 1] = 0x00, - [SPECIES_RHYHORN - 1] = 0x00, - [SPECIES_RHYDON - 1] = 0x00, - [SPECIES_CHANSEY - 1] = 0x00, - [SPECIES_TANGELA - 1] = 0x00, - [SPECIES_KANGASKHAN - 1] = 0x00, - [SPECIES_HORSEA - 1] = 0x00, - [SPECIES_SEADRA - 1] = 0x00, - [SPECIES_GOLDEEN - 1] = 0x00, - [SPECIES_SEAKING - 1] = 0x00, - [SPECIES_STARYU - 1] = 0x00, - [SPECIES_STARMIE - 1] = 0x00, - [SPECIES_MR_MIME - 1] = 0x00, [SPECIES_SCYTHER - 1] = 0x0a, - [SPECIES_JYNX - 1] = 0x00, - [SPECIES_ELECTABUZZ - 1] = 0x00, - [SPECIES_MAGMAR - 1] = 0x00, - [SPECIES_PINSIR - 1] = 0x00, [SPECIES_TAUROS - 1] = 0x0a, - [SPECIES_MAGIKARP - 1] = 0x00, - [SPECIES_GYARADOS - 1] = 0x00, - [SPECIES_LAPRAS - 1] = 0x00, - [SPECIES_DITTO - 1] = 0x00, - [SPECIES_EEVEE - 1] = 0x00, - [SPECIES_VAPOREON - 1] = 0x00, - [SPECIES_JOLTEON - 1] = 0x00, - [SPECIES_FLAREON - 1] = 0x00, - [SPECIES_PORYGON - 1] = 0x00, - [SPECIES_OMANYTE - 1] = 0x00, - [SPECIES_OMASTAR - 1] = 0x00, - [SPECIES_KABUTO - 1] = 0x00, - [SPECIES_KABUTOPS - 1] = 0x00, - [SPECIES_AERODACTYL - 1] = 0x00, - [SPECIES_SNORLAX - 1] = 0x00, - [SPECIES_ARTICUNO - 1] = 0x00, - [SPECIES_ZAPDOS - 1] = 0x00, - [SPECIES_MOLTRES - 1] = 0x00, - [SPECIES_DRATINI - 1] = 0x00, - [SPECIES_DRAGONAIR - 1] = 0x00, - [SPECIES_DRAGONITE - 1] = 0x00, - [SPECIES_MEWTWO - 1] = 0x00, - [SPECIES_MEW - 1] = 0x00, - [SPECIES_CHIKORITA - 1] = 0x00, - [SPECIES_BAYLEEF - 1] = 0x00, - [SPECIES_MEGANIUM - 1] = 0x00, - [SPECIES_CYNDAQUIL - 1] = 0x00, - [SPECIES_QUILAVA - 1] = 0x00, [SPECIES_TYPHLOSION - 1] = 0x14, - [SPECIES_TOTODILE - 1] = 0x00, - [SPECIES_CROCONAW - 1] = 0x00, [SPECIES_FERALIGATR - 1] = 0x05, - [SPECIES_SENTRET - 1] = 0x00, - [SPECIES_FURRET - 1] = 0x00, - [SPECIES_HOOTHOOT - 1] = 0x00, - [SPECIES_NOCTOWL - 1] = 0x00, - [SPECIES_LEDYBA - 1] = 0x00, - [SPECIES_LEDIAN - 1] = 0x00, - [SPECIES_SPINARAK - 1] = 0x00, - [SPECIES_ARIADOS - 1] = 0x00, - [SPECIES_CROBAT - 1] = 0x00, - [SPECIES_CHINCHOU - 1] = 0x00, - [SPECIES_LANTURN - 1] = 0x00, - [SPECIES_PICHU - 1] = 0x00, - [SPECIES_CLEFFA - 1] = 0x00, - [SPECIES_IGGLYBUFF - 1] = 0x00, - [SPECIES_TOGEPI - 1] = 0x00, - [SPECIES_TOGETIC - 1] = 0x00, [SPECIES_NATU - 1] = 0x1e, - [SPECIES_XATU - 1] = 0x00, [SPECIES_MAREEP - 1] = 0x32, - [SPECIES_FLAAFFY - 1] = 0x00, [SPECIES_AMPHAROS - 1] = 0x0a, - [SPECIES_BELLOSSOM - 1] = 0x00, - [SPECIES_MARILL - 1] = 0x00, - [SPECIES_AZUMARILL - 1] = 0x00, - [SPECIES_SUDOWOODO - 1] = 0x00, [SPECIES_POLITOED - 1] = 0x28, - [SPECIES_HOPPIP - 1] = 0x00, - [SPECIES_SKIPLOOM - 1] = 0x00, - [SPECIES_JUMPLUFF - 1] = 0x00, - [SPECIES_AIPOM - 1] = 0x00, - [SPECIES_SUNKERN - 1] = 0x00, - [SPECIES_SUNFLORA - 1] = 0x00, - [SPECIES_YANMA - 1] = 0x00, - [SPECIES_WOOPER - 1] = 0x00, - [SPECIES_QUAGSIRE - 1] = 0x00, - [SPECIES_ESPEON - 1] = 0x00, - [SPECIES_UMBREON - 1] = 0x00, - [SPECIES_MURKROW - 1] = 0x00, - [SPECIES_SLOWKING - 1] = 0x00, - [SPECIES_MISDREAVUS - 1] = 0x00, - [SPECIES_UNOWN - 1] = 0x00, - [SPECIES_WOBBUFFET - 1] = 0x00, - [SPECIES_GIRAFARIG - 1] = 0x00, - [SPECIES_PINECO - 1] = 0x00, - [SPECIES_FORRETRESS - 1] = 0x00, [SPECIES_DUNSPARCE - 1] = 0x0a, - [SPECIES_GLIGAR - 1] = 0x00, [SPECIES_STEELIX - 1] = 0x2d, - [SPECIES_SNUBBULL - 1] = 0x00, - [SPECIES_GRANBULL - 1] = 0x00, [SPECIES_QWILFISH - 1] = 0x27, [SPECIES_SCIZOR - 1] = 0x13, - [SPECIES_SHUCKLE - 1] = 0x00, - [SPECIES_HERACROSS - 1] = 0x00, - [SPECIES_SNEASEL - 1] = 0x00, - [SPECIES_TEDDIURSA - 1] = 0x00, - [SPECIES_URSARING - 1] = 0x00, - [SPECIES_SLUGMA - 1] = 0x00, - [SPECIES_MAGCARGO - 1] = 0x00, - [SPECIES_SWINUB - 1] = 0x00, - [SPECIES_PILOSWINE - 1] = 0x00, - [SPECIES_CORSOLA - 1] = 0x00, - [SPECIES_REMORAID - 1] = 0x00, [SPECIES_OCTILLERY - 1] = 0x14, - [SPECIES_DELIBIRD - 1] = 0x00, - [SPECIES_MANTINE - 1] = 0x00, - [SPECIES_SKARMORY - 1] = 0x00, - [SPECIES_HOUNDOUR - 1] = 0x00, - [SPECIES_HOUNDOOM - 1] = 0x00, - [SPECIES_KINGDRA - 1] = 0x00, - [SPECIES_PHANPY - 1] = 0x00, - [SPECIES_DONPHAN - 1] = 0x00, - [SPECIES_PORYGON2 - 1] = 0x00, - [SPECIES_STANTLER - 1] = 0x00, - [SPECIES_SMEARGLE - 1] = 0x00, - [SPECIES_TYROGUE - 1] = 0x00, - [SPECIES_HITMONTOP - 1] = 0x00, [SPECIES_SMOOCHUM - 1] = 0x28, - [SPECIES_ELEKID - 1] = 0x00, - [SPECIES_MAGBY - 1] = 0x00, - [SPECIES_MILTANK - 1] = 0x00, - [SPECIES_BLISSEY - 1] = 0x00, - [SPECIES_RAIKOU - 1] = 0x00, - [SPECIES_ENTEI - 1] = 0x00, - [SPECIES_SUICUNE - 1] = 0x00, - [SPECIES_LARVITAR - 1] = 0x00, - [SPECIES_PUPITAR - 1] = 0x00, [SPECIES_TYRANITAR - 1] = 0x0a, [SPECIES_LUGIA - 1] = 0x14, - [SPECIES_HO_OH - 1] = 0x00, - [SPECIES_CELEBI - 1] = 0x00, - [SPECIES_OLD_UNOWN_B - 1] = 0x00, - [SPECIES_OLD_UNOWN_C - 1] = 0x00, - [SPECIES_OLD_UNOWN_D - 1] = 0x00, - [SPECIES_OLD_UNOWN_E - 1] = 0x00, - [SPECIES_OLD_UNOWN_F - 1] = 0x00, - [SPECIES_OLD_UNOWN_G - 1] = 0x00, - [SPECIES_OLD_UNOWN_H - 1] = 0x00, - [SPECIES_OLD_UNOWN_I - 1] = 0x00, - [SPECIES_OLD_UNOWN_J - 1] = 0x00, - [SPECIES_OLD_UNOWN_K - 1] = 0x00, - [SPECIES_OLD_UNOWN_L - 1] = 0x00, - [SPECIES_OLD_UNOWN_M - 1] = 0x00, - [SPECIES_OLD_UNOWN_N - 1] = 0x00, - [SPECIES_OLD_UNOWN_O - 1] = 0x00, - [SPECIES_OLD_UNOWN_P - 1] = 0x00, - [SPECIES_OLD_UNOWN_Q - 1] = 0x00, - [SPECIES_OLD_UNOWN_R - 1] = 0x00, - [SPECIES_OLD_UNOWN_S - 1] = 0x00, - [SPECIES_OLD_UNOWN_T - 1] = 0x00, - [SPECIES_OLD_UNOWN_U - 1] = 0x00, - [SPECIES_OLD_UNOWN_V - 1] = 0x00, - [SPECIES_OLD_UNOWN_W - 1] = 0x00, - [SPECIES_OLD_UNOWN_X - 1] = 0x00, - [SPECIES_OLD_UNOWN_Y - 1] = 0x00, - [SPECIES_OLD_UNOWN_Z - 1] = 0x00, - [SPECIES_TREECKO - 1] = 0x00, - [SPECIES_GROVYLE - 1] = 0x00, - [SPECIES_SCEPTILE - 1] = 0x00, - [SPECIES_TORCHIC - 1] = 0x00, - [SPECIES_COMBUSKEN - 1] = 0x00, - [SPECIES_BLAZIKEN - 1] = 0x00, - [SPECIES_MUDKIP - 1] = 0x00, - [SPECIES_MARSHTOMP - 1] = 0x00, - [SPECIES_SWAMPERT - 1] = 0x00, - [SPECIES_POOCHYENA - 1] = 0x00, - [SPECIES_MIGHTYENA - 1] = 0x00, - [SPECIES_ZIGZAGOON - 1] = 0x00, - [SPECIES_LINOONE - 1] = 0x00, - [SPECIES_WURMPLE - 1] = 0x00, - [SPECIES_SILCOON - 1] = 0x00, - [SPECIES_BEAUTIFLY - 1] = 0x00, - [SPECIES_CASCOON - 1] = 0x00, - [SPECIES_DUSTOX - 1] = 0x00, - [SPECIES_LOTAD - 1] = 0x00, - [SPECIES_LOMBRE - 1] = 0x00, - [SPECIES_LUDICOLO - 1] = 0x00, - [SPECIES_SEEDOT - 1] = 0x00, - [SPECIES_NUZLEAF - 1] = 0x00, - [SPECIES_SHIFTRY - 1] = 0x00, - [SPECIES_NINCADA - 1] = 0x00, - [SPECIES_NINJASK - 1] = 0x00, - [SPECIES_SHEDINJA - 1] = 0x00, - [SPECIES_TAILLOW - 1] = 0x00, - [SPECIES_SWELLOW - 1] = 0x00, - [SPECIES_SHROOMISH - 1] = 0x00, - [SPECIES_BRELOOM - 1] = 0x00, - [SPECIES_SPINDA - 1] = 0x00, - [SPECIES_WINGULL - 1] = 0x00, - [SPECIES_PELIPPER - 1] = 0x00, - [SPECIES_SURSKIT - 1] = 0x00, - [SPECIES_MASQUERAIN - 1] = 0x00, - [SPECIES_WAILMER - 1] = 0x00, [SPECIES_WAILORD - 1] = 0x0a, - [SPECIES_SKITTY - 1] = 0x00, - [SPECIES_DELCATTY - 1] = 0x00, [SPECIES_KECLEON - 1] = 0x1e, - [SPECIES_BALTOY - 1] = 0x00, - [SPECIES_CLAYDOL - 1] = 0x00, - [SPECIES_NOSEPASS - 1] = 0x00, - [SPECIES_TORKOAL - 1] = 0x00, - [SPECIES_SABLEYE - 1] = 0x00, - [SPECIES_BARBOACH - 1] = 0x00, - [SPECIES_WHISCASH - 1] = 0x00, - [SPECIES_LUVDISC - 1] = 0x00, - [SPECIES_CORPHISH - 1] = 0x00, - [SPECIES_CRAWDAUNT - 1] = 0x00, - [SPECIES_FEEBAS - 1] = 0x00, [SPECIES_MILOTIC - 1] = 0x2d, - [SPECIES_CARVANHA - 1] = 0x00, - [SPECIES_SHARPEDO - 1] = 0x00, - [SPECIES_TRAPINCH - 1] = 0x00, - [SPECIES_VIBRAVA - 1] = 0x00, - [SPECIES_FLYGON - 1] = 0x00, - [SPECIES_MAKUHITA - 1] = 0x00, - [SPECIES_HARIYAMA - 1] = 0x00, - [SPECIES_ELECTRIKE - 1] = 0x00, - [SPECIES_MANECTRIC - 1] = 0x00, - [SPECIES_NUMEL - 1] = 0x00, - [SPECIES_CAMERUPT - 1] = 0x00, [SPECIES_SPHEAL - 1] = 0x0f, - [SPECIES_SEALEO - 1] = 0x00, - [SPECIES_WALREIN - 1] = 0x00, - [SPECIES_CACNEA - 1] = 0x00, - [SPECIES_CACTURNE - 1] = 0x00, [SPECIES_SNORUNT - 1] = 0x14, - [SPECIES_GLALIE - 1] = 0x00, - [SPECIES_LUNATONE - 1] = 0x00, - [SPECIES_SOLROCK - 1] = 0x00, - [SPECIES_AZURILL - 1] = 0x00, - [SPECIES_SPOINK - 1] = 0x00, [SPECIES_GRUMPIG - 1] = 0x0f, - [SPECIES_PLUSLE - 1] = 0x00, - [SPECIES_MINUN - 1] = 0x00, - [SPECIES_MAWILE - 1] = 0x00, - [SPECIES_MEDITITE - 1] = 0x00, - [SPECIES_MEDICHAM - 1] = 0x00, - [SPECIES_SWABLU - 1] = 0x00, - [SPECIES_ALTARIA - 1] = 0x00, [SPECIES_WYNAUT - 1] = 0x0f, - [SPECIES_DUSKULL - 1] = 0x00, [SPECIES_DUSCLOPS - 1] = 0x1e, - [SPECIES_ROSELIA - 1] = 0x00, - [SPECIES_SLAKOTH - 1] = 0x00, - [SPECIES_VIGOROTH - 1] = 0x00, - [SPECIES_SLAKING - 1] = 0x00, - [SPECIES_GULPIN - 1] = 0x00, - [SPECIES_SWALOT - 1] = 0x00, - [SPECIES_TROPIUS - 1] = 0x00, - [SPECIES_WHISMUR - 1] = 0x00, - [SPECIES_LOUDRED - 1] = 0x00, - [SPECIES_EXPLOUD - 1] = 0x00, - [SPECIES_CLAMPERL - 1] = 0x00, - [SPECIES_HUNTAIL - 1] = 0x00, - [SPECIES_GOREBYSS - 1] = 0x00, [SPECIES_ABSOL - 1] = 0x2d, - [SPECIES_SHUPPET - 1] = 0x00, - [SPECIES_BANETTE - 1] = 0x00, - [SPECIES_SEVIPER - 1] = 0x00, - [SPECIES_ZANGOOSE - 1] = 0x00, - [SPECIES_RELICANTH - 1] = 0x00, - [SPECIES_ARON - 1] = 0x00, - [SPECIES_LAIRON - 1] = 0x00, - [SPECIES_AGGRON - 1] = 0x00, - [SPECIES_CASTFORM - 1] = 0x00, - [SPECIES_VOLBEAT - 1] = 0x00, - [SPECIES_ILLUMISE - 1] = 0x00, - [SPECIES_LILEEP - 1] = 0x00, - [SPECIES_CRADILY - 1] = 0x00, - [SPECIES_ANORITH - 1] = 0x00, - [SPECIES_ARMALDO - 1] = 0x00, - [SPECIES_RALTS - 1] = 0x00, - [SPECIES_KIRLIA - 1] = 0x00, - [SPECIES_GARDEVOIR - 1] = 0x00, - [SPECIES_BAGON - 1] = 0x00, - [SPECIES_SHELGON - 1] = 0x00, [SPECIES_SALAMENCE - 1] = 0x46, - [SPECIES_BELDUM - 1] = 0x00, - [SPECIES_METANG - 1] = 0x00, - [SPECIES_METAGROSS - 1] = 0x00, - [SPECIES_REGIROCK - 1] = 0x00, - [SPECIES_REGICE - 1] = 0x00, - [SPECIES_REGISTEEL - 1] = 0x00, [SPECIES_KYOGRE - 1] = 0x3c, - [SPECIES_GROUDON - 1] = 0x00, [SPECIES_RAYQUAZA - 1] = 0x3c, - [SPECIES_LATIAS - 1] = 0x00, - [SPECIES_LATIOS - 1] = 0x00, - [SPECIES_JIRACHI - 1] = 0x00, - [SPECIES_DEOXYS - 1] = 0x00, - [SPECIES_CHIMECHO - 1] = 0x00, }; const u8 gPPUpGetMask[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up count, also PP Max values -- cgit v1.2.3 From baa187665b102b0210ecd7296aaaf0de512d3e87 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 2 Apr 2019 13:35:52 +0200 Subject: Document a bit of script menu and battle anims --- src/ghost.c | 106 ++++++++++++++++++++----------------- src/mauville_old_man.c | 2 +- src/menu.c | 14 +++-- src/script_menu.c | 107 ++++++++++++++++++-------------------- src/script_pokemon_util_80F87D8.c | 2 +- 5 files changed, 116 insertions(+), 115 deletions(-) (limited to 'src') diff --git a/src/ghost.c b/src/ghost.c index 998be0caa..97b86aa76 100644 --- a/src/ghost.c +++ b/src/ghost.c @@ -87,7 +87,7 @@ const union AffineAnimCmd *const gUnknown_08596D54[] = gUnknown_08596D44, }; -const struct SpriteTemplate gUnknown_08596D58 = +const struct SpriteTemplate gShadowBallSpriteTemplate = { .tileTag = ANIM_TAG_SHADOW_BALL, .paletteTag = ANIM_TAG_SHADOW_BALL, @@ -261,20 +261,20 @@ static void sub_81116E8(struct Sprite *sprite) AnimTranslateLinear(sprite); sprite->pos2.x += Sin(sprite->data[5], 10); sprite->pos2.y += Cos(sprite->data[5], 15); - + r2 = sprite->data[5]; sprite->data[5] = (sprite->data[5] + 5) & 0xFF; r0 = sprite->data[5]; - + if (r2 == 0 || r2 > 196) { if (r0 > 0) PlaySE(SE_W109); } - + if (sprite->data[6] == 0) { - sprite->invisible = TRUE; + sprite->invisible = TRUE; sprite->callback = DestroyAnimSpriteAndDisableBlend; } else @@ -283,18 +283,18 @@ static void sub_81116E8(struct Sprite *sprite) static void sub_8111764(struct Sprite *sprite) { - - s16 r0; + + s16 r0; if (sprite->data[6] > 0xFF) { if (++sprite->data[6] == 0x10d) sprite->data[6] = 0; return; } - + r0 = sprite->data[7]; sprite->data[7]++; - + if ((r0 & 0xFF) == 0) { sprite->data[7] &= 0xff00; @@ -392,16 +392,16 @@ static void sub_811196C(u8 taskId) } } -// Spins a sprite towards the target, pausing in the middle. -// Used in Shadow Ball. +// Spins a sprite towards the target, pausing in the middle. +// Used in Shadow Ball. // arg 0: duration step 1 (attacker -> center) // arg 1: duration step 2 (spin center) // arg 2: duration step 3 (center -> target) static void InitAnimShadowBall(struct Sprite *sprite) { - u16 r5, r6; - r5 = sprite->pos1.x; - r6 = sprite->pos1.y; + s16 oldPosX = sprite->pos1.x; + s16 oldPosY = sprite->pos1.y; + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); sprite->data[0] = 0; @@ -410,8 +410,8 @@ static void InitAnimShadowBall(struct Sprite *sprite) sprite->data[3] = gBattleAnimArgs[2]; sprite->data[4] = sprite->pos1.x << 4; sprite->data[5] = sprite->pos1.y << 4; - sprite->data[6] = (((s16)r5 - sprite->pos1.x) << 4) / (gBattleAnimArgs[0] << 1); - sprite->data[7] = (((s16)r6 - sprite->pos1.y) << 4) / (gBattleAnimArgs[0] << 1); + sprite->data[6] = ((oldPosX - sprite->pos1.x) << 4) / (gBattleAnimArgs[0] << 1); + sprite->data[7] = ((oldPosY - sprite->pos1.y) << 4) / (gBattleAnimArgs[0] << 1); sprite->callback = AnimShadowBallStep; } @@ -465,50 +465,57 @@ static void sub_8111B9C(struct Sprite *sprite) sprite->callback = sub_8111BB4; } -static void sub_8111BB4(struct Sprite *sprite) { - - s8 r5 = FALSE; +static void sub_8111BB4(struct Sprite *sprite) +{ + bool8 r5 = FALSE; bool8 r6 = FALSE; - if(sprite->animEnded) + + if (sprite->animEnded) { - if(!(sprite->invisible)) - sprite->invisible=TRUE; - switch(sprite->data[0]) + if (!sprite->invisible) + sprite->invisible = TRUE; + + switch (sprite->data[0]) { - case 0: - if((sprite->data[1]) != 2) - break; - goto loc_08111C06; - case 1: - if((sprite->data[1]) == 4) - r5 = TRUE; - break; - default: - r6 = TRUE; + default: + r6 = TRUE; + break; + case 0: + if (sprite->data[1] == 2) + r5 = TRUE; + break; + case 1: + if (sprite->data[1] == 4) + r5 = TRUE; + break; } - if(r5) + + if (r5) { - loc_08111C06: sprite->invisible ^= 1; sprite->data[2]++; sprite->data[1] = 0; - if(sprite->data[2] == 5) + if (sprite->data[2] == 5) { sprite->data[2] = 0; sprite->data[0]++; } } - else if(r6) + else if (r6) + { DestroyAnimSprite(sprite); + } else + { sprite->data[1]++; + } } } void sub_8111C50(u8 taskId) { struct Task *task; - + task = &gTasks[taskId]; task->data[0] = CloneBattlerSpriteWithBlend(1); if (task->data[0] < 0) @@ -523,7 +530,7 @@ void sub_8111C50(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(task->data[2], task->data[3])); gSprites[task->data[0]].data[0] = 80; - if (GetBattlerSide(gBattleAnimTarget) == 0) + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { gSprites[task->data[0]].data[1] = -144; gSprites[task->data[0]].data[2] = 112; @@ -573,6 +580,7 @@ static void sub_8111D78(u8 taskId) break; case 2: DestroyAnimVisualTask(taskId); + break; } } @@ -595,7 +603,7 @@ static void sub_8111E78(u8 taskId) switch (task->data[15]) { case 0: - task->data[14] = AllocSpritePalette(0x2771); + task->data[14] = AllocSpritePalette(ANIM_TAG_BENT_SPOON); if (task->data[14] == 0xFF || task->data[14] == 0xF) { DestroyAnimVisualTask(taskId); @@ -605,7 +613,7 @@ static void sub_8111E78(u8 taskId) task->data[0] = CloneBattlerSpriteWithBlend(1); if (task->data[0] < 0) { - FreeSpritePaletteByTag(0x2771); + FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON); DestroyAnimVisualTask(taskId); } else @@ -698,14 +706,14 @@ static void sub_81120DC(u8 taskId) static void sub_8112170(u8 taskId) { struct Task *task = &gTasks[taskId]; - u8 position = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget); + u8 rank = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget); switch (task->data[15]) { case 0: gScanlineEffect.state = 3; task->data[14] = GetAnimBattlerSpriteId(1); - if (position == 1) + if (rank == 1) ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); @@ -714,12 +722,12 @@ static void sub_8112170(u8 taskId) BlendPalette(task->data[4], 16, 0, RGB(13, 0, 15)); break; case 2: - gSprites[task->data[14]].invisible = 1; + gSprites[task->data[14]].invisible = TRUE; obj_delete_but_dont_free_vram(&gSprites[task->data[0]]); - FreeSpritePaletteByTag(0x2771); + FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON); SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); - if (position == 1) + if (rank == 1) SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); @@ -886,7 +894,7 @@ static void sub_81125E0(u8 taskId) } } } - + if (task->data[10]) task->data[10]--; else if (task->data[6]) @@ -1081,7 +1089,7 @@ static void sub_8112ACC(struct Sprite *sprite) if (sprite->data[0] == 0) { SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0x10, 0)); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); sprite->data[0]++; sprite->data[1] = 0; sprite->data[2] = 0; @@ -1120,7 +1128,7 @@ static void sub_8112B78(struct Sprite *sprite) sprite->pos2.x = Sin(sprite->data[0], 12); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->pos2.x = -sprite->pos2.x; - + sprite->data[0] = (sprite->data[0] + 6) & 0xFF; sprite->data[1] += 0x100; sprite->pos2.y = -(sprite->data[1] >> 8); diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index ddd3f931e..8bb9cb6e4 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -1193,7 +1193,7 @@ static void Task_StoryListMenu(u8 taskId) // Task_StoryListMenu gSpecialVar_Result = 1; sSelectedStory = selection; } - sub_80E2A78(sStorytellerWindowId); + ClearToTransparentAndRemoveWindow(sStorytellerWindowId); DestroyTask(taskId); EnableBothScriptContexts(); break; diff --git a/src/menu.c b/src/menu.c index 958788b25..80d440771 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1661,16 +1661,14 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sYesNoWindowId, 2, initialCursorPos); } -void sub_81997AC(u8 windowId, u8 a4, u8 a6, u8 a7, const struct MenuAction *strs) +void PrintMenuGridTable(u8 windowId, u8 optionWidth, u8 horizontalCount, u8 verticalCount, const struct MenuAction *strs) { - u32 i; - u32 j; - for (i = 0; i < a7; i++) + u32 i, j; + + for (i = 0; i < verticalCount; i++) { - for (j = 0; j < a6; j++) - { - AddTextPrinterParameterized(windowId, 1, strs[(i * a6) + j].text, (a4 * j) + 8, (i * 16) + 1, 0xFF, NULL); - } + for (j = 0; j < horizontalCount; j++) + AddTextPrinterParameterized(windowId, 1, strs[(i * horizontalCount) + j].text, (optionWidth * j) + 8, (i * 16) + 1, 0xFF, NULL); } CopyWindowToVram(windowId, 2); } diff --git a/src/script_menu.c b/src/script_menu.c index c7523a370..082253e35 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1183,7 +1183,7 @@ static void Task_HandleMultichoiceInput(u8 taskId) { gSpecialVar_Result = selection; } - sub_80E2A78(tWindowId); + ClearToTransparentAndRemoveWindow(tWindowId); DestroyTask(taskId); EnableBothScriptContexts(); } @@ -1219,8 +1219,6 @@ bool8 IsScriptActive(void) static void Task_HandleYesNoInput(u8 taskId) { - u8 left, top; - if (gTasks[taskId].tRight < 5) { gTasks[taskId].tRight++; @@ -1229,9 +1227,9 @@ static void Task_HandleYesNoInput(u8 taskId) switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case -2: + case MENU_NOTHING_CHOSEN: return; - case -1: + case MENU_B_PRESSED: case 1: PlaySE(SE_SELECT); gSpecialVar_Result = 0; @@ -1247,8 +1245,6 @@ static void Task_HandleYesNoInput(u8 taskId) bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPress, u8 columnCount) { - u8 bottom = 0; - if (FuncIsActiveTask(Task_HandleMultichoiceGridInput) == TRUE) { return FALSE; @@ -1256,10 +1252,8 @@ bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPr else { u8 taskId; - u8 unk2; - int width; - int i; - u8 newWidth; + u8 rowCount, newWidth; + int i, width; gSpecialVar_Result = 0xFF; width = 0; @@ -1272,15 +1266,15 @@ bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPr newWidth = convert_pixel_width_to_tile_width(width); left = sub_80E2D5C(left, columnCount * newWidth); - unk2 = gMultichoiceLists[multichoiceId].count / columnCount; + rowCount = gMultichoiceLists[multichoiceId].count / columnCount; taskId = CreateTask(Task_HandleMultichoiceGridInput, 80); gTasks[taskId].tIgnoreBPress = ignoreBPress; - gTasks[taskId].tWindowId = CreateWindowFromRect(left, top, columnCount * newWidth, unk2 * 2); + gTasks[taskId].tWindowId = CreateWindowFromRect(left, top, columnCount * newWidth, rowCount * 2); SetStandardWindowBorderStyle(gTasks[taskId].tWindowId, 0); - sub_81997AC(gTasks[taskId].tWindowId, newWidth * 8, columnCount, unk2, gMultichoiceLists[multichoiceId].list); - sub_8199944(gTasks[taskId].tWindowId, newWidth * 8, columnCount, unk2, 0); + PrintMenuGridTable(gTasks[taskId].tWindowId, newWidth * 8, columnCount, rowCount, gMultichoiceLists[multichoiceId].list); + sub_8199944(gTasks[taskId].tWindowId, newWidth * 8, columnCount, rowCount, 0); CopyWindowToVram(gTasks[taskId].tWindowId, 3); return TRUE; } @@ -1291,23 +1285,24 @@ static void Task_HandleMultichoiceGridInput(u8 taskId) s16 *data = gTasks[taskId].data; s8 selection = Menu_ProcessInputGridLayout(); - if (selection != -2) + switch (selection) { - if (selection == -1) - { - if (tIgnoreBPress) - return; - PlaySE(SE_SELECT); - gSpecialVar_Result = 0x7F; - } - else - { - gSpecialVar_Result = selection; - } - sub_80E2A78(tWindowId); - DestroyTask(taskId); - EnableBothScriptContexts(); + case MENU_NOTHING_CHOSEN: + return; + case MENU_B_PRESSED: + if (tIgnoreBPress) + return; + PlaySE(SE_SELECT); + gSpecialVar_Result = 0x7F; + break; + default: + gSpecialVar_Result = selection; + break; } + + ClearToTransparentAndRemoveWindow(tWindowId); + DestroyTask(taskId); + EnableBothScriptContexts(); } #undef tWindowId @@ -1564,7 +1559,7 @@ static void Task_PokemonPicWindow(u8 taskId) task->tState++; break; case 3: - sub_80E2A78(task->tWindowId); + ClearToTransparentAndRemoveWindow(task->tWindowId); DestroyTask(taskId); break; } @@ -1628,7 +1623,7 @@ u8 CreateWindowFromRect(u8 x, u8 y, u8 width, u8 height) return windowId; } -void sub_80E2A78(u8 windowId) +void ClearToTransparentAndRemoveWindow(u8 windowId) { ClearStdWindowAndFrameToTransparent(windowId, TRUE); RemoveWindow(windowId); @@ -1638,30 +1633,30 @@ static void sub_80E2A94(u8 multichoiceId) { switch (multichoiceId) { - case 77: - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, gUnknown_0858BBAC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); - break; - case 76: - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, gUnknown_0858BB9C[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); - break; - case 78: - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, gUnknown_0858BBBC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); - break; - case 79: - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, gUnknown_0858BBCC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); - break; - case 75: - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, gUnknown_0858BBEC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); - break; - case 74: - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, gUnknown_0858BBE0[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); - break; + case 77: + FillWindowPixelBuffer(0, PIXEL_FILL(1)); + AddTextPrinterParameterized2(0, 1, gUnknown_0858BBAC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); + break; + case 76: + FillWindowPixelBuffer(0, PIXEL_FILL(1)); + AddTextPrinterParameterized2(0, 1, gUnknown_0858BB9C[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); + break; + case 78: + FillWindowPixelBuffer(0, PIXEL_FILL(1)); + AddTextPrinterParameterized2(0, 1, gUnknown_0858BBBC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); + break; + case 79: + FillWindowPixelBuffer(0, PIXEL_FILL(1)); + AddTextPrinterParameterized2(0, 1, gUnknown_0858BBCC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); + break; + case 75: + FillWindowPixelBuffer(0, PIXEL_FILL(1)); + AddTextPrinterParameterized2(0, 1, gUnknown_0858BBEC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); + break; + case 74: + FillWindowPixelBuffer(0, PIXEL_FILL(1)); + AddTextPrinterParameterized2(0, 1, gUnknown_0858BBE0[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); + break; } } diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index 7e4c14531..ece030395 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -395,7 +395,7 @@ static void sub_80F8EE8(u8 taskId) task->data[0]++; break; case 4: - sub_80E2A78(gTasks[taskId].data[5]); + ClearToTransparentAndRemoveWindow(gTasks[taskId].data[5]); DestroyTask(taskId); break; } -- cgit v1.2.3 From d8c9f1b30fb92289e7aa4d44dfcf1b2120bea8d6 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 2 Apr 2019 15:06:44 +0200 Subject: Rows and columns --- src/menu.c | 60 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 30 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/menu.c b/src/menu.c index 80d440771..b766b1b86 100644 --- a/src/menu.c +++ b/src/menu.c @@ -43,8 +43,8 @@ struct Menu u8 fontId; u8 optionWidth; u8 optionHeight; - u8 horizontalCount; - u8 verticalCount; + u8 columns; + u8 rows; bool8 APressMuted; }; @@ -1283,8 +1283,8 @@ u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight, sMenu.fontId = fontId; sMenu.optionWidth = a4; sMenu.optionHeight = cursorHeight; - sMenu.horizontalCount = a6; - sMenu.verticalCount = a7; + sMenu.columns = a6; + sMenu.rows = a7; pos = a9; @@ -1308,16 +1308,16 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos) { u8 cursorWidth = GetMenuCursorDimensionByFont(sMenu.fontId, 0); u8 cursorHeight = GetMenuCursorDimensionByFont(sMenu.fontId, 1); - u8 xPos = (oldCursorPos % sMenu.horizontalCount) * sMenu.optionWidth + sMenu.left; - u8 yPos = (oldCursorPos / sMenu.horizontalCount) * sMenu.optionHeight + sMenu.top; + u8 xPos = (oldCursorPos % sMenu.columns) * sMenu.optionWidth + sMenu.left; + u8 yPos = (oldCursorPos / sMenu.columns) * sMenu.optionHeight + sMenu.top; FillWindowPixelRect(sMenu.windowId, PIXEL_FILL(1), xPos, yPos, cursorWidth, cursorHeight); - xPos = (newCursorPos % sMenu.horizontalCount) * sMenu.optionWidth + sMenu.left; - yPos = (newCursorPos / sMenu.horizontalCount) * sMenu.optionHeight + sMenu.top; + xPos = (newCursorPos % sMenu.columns) * sMenu.optionWidth + sMenu.left; + yPos = (newCursorPos / sMenu.columns) * sMenu.optionHeight + sMenu.top; AddTextPrinterParameterized(sMenu.windowId, sMenu.fontId, gText_SelectorArrow3, @@ -1333,13 +1333,13 @@ u8 sub_8199134(s8 deltaX, s8 deltaY) if (deltaX != 0) { - if ((sMenu.cursorPos % sMenu.horizontalCount) + deltaX < 0) + if ((sMenu.cursorPos % sMenu.columns) + deltaX < 0) { - sMenu.cursorPos += sMenu.horizontalCount - 1; + sMenu.cursorPos += sMenu.columns - 1; } - else if ((sMenu.cursorPos % sMenu.horizontalCount) + deltaX >= sMenu.horizontalCount) + else if ((sMenu.cursorPos % sMenu.columns) + deltaX >= sMenu.columns) { - sMenu.cursorPos = (sMenu.cursorPos / sMenu.horizontalCount) * sMenu.horizontalCount; + sMenu.cursorPos = (sMenu.cursorPos / sMenu.columns) * sMenu.columns; } else { @@ -1349,17 +1349,17 @@ u8 sub_8199134(s8 deltaX, s8 deltaY) if (deltaY != 0) { - if ((sMenu.cursorPos / sMenu.horizontalCount) + deltaY < 0) + if ((sMenu.cursorPos / sMenu.columns) + deltaY < 0) { - sMenu.cursorPos += sMenu.horizontalCount * (sMenu.verticalCount - 1); + sMenu.cursorPos += sMenu.columns * (sMenu.rows - 1); } - else if ((sMenu.cursorPos / sMenu.horizontalCount) + deltaY >= sMenu.verticalCount) + else if ((sMenu.cursorPos / sMenu.columns) + deltaY >= sMenu.rows) { - sMenu.cursorPos -= sMenu.horizontalCount * (sMenu.verticalCount - 1); + sMenu.cursorPos -= sMenu.columns * (sMenu.rows - 1); } else { - sMenu.cursorPos += (sMenu.horizontalCount * deltaY); + sMenu.cursorPos += (sMenu.columns * deltaY); } } @@ -1381,8 +1381,8 @@ u8 sub_81991F8(s8 deltaX, s8 deltaY) if (deltaX != 0) { - if (((sMenu.cursorPos % sMenu.horizontalCount) + deltaX >= 0) && - ((sMenu.cursorPos % sMenu.horizontalCount) + deltaX < sMenu.horizontalCount)) + if (((sMenu.cursorPos % sMenu.columns) + deltaX >= 0) && + ((sMenu.cursorPos % sMenu.columns) + deltaX < sMenu.columns)) { sMenu.cursorPos += deltaX; } @@ -1390,10 +1390,10 @@ u8 sub_81991F8(s8 deltaX, s8 deltaY) if (deltaY != 0) { - if (((sMenu.cursorPos / sMenu.horizontalCount) + deltaY >= 0) && - ((sMenu.cursorPos / sMenu.horizontalCount) + deltaY < sMenu.verticalCount)) + if (((sMenu.cursorPos / sMenu.columns) + deltaY >= 0) && + ((sMenu.cursorPos / sMenu.columns) + deltaY < sMenu.rows)) { - sMenu.cursorPos += (sMenu.horizontalCount * deltaY); + sMenu.cursorPos += (sMenu.columns * deltaY); } } @@ -1661,14 +1661,14 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sYesNoWindowId, 2, initialCursorPos); } -void PrintMenuGridTable(u8 windowId, u8 optionWidth, u8 horizontalCount, u8 verticalCount, const struct MenuAction *strs) +void PrintMenuGridTable(u8 windowId, u8 optionWidth, u8 columns, u8 rows, const struct MenuAction *strs) { u32 i, j; - for (i = 0; i < verticalCount; i++) + for (i = 0; i < rows; i++) { - for (j = 0; j < horizontalCount; j++) - AddTextPrinterParameterized(windowId, 1, strs[(i * horizontalCount) + j].text, (optionWidth * j) + 8, (i * 16) + 1, 0xFF, NULL); + for (j = 0; j < columns; j++) + AddTextPrinterParameterized(windowId, 1, strs[(i * columns) + j].text, (optionWidth * j) + 8, (i * 16) + 1, 0xFF, NULL); } CopyWindowToVram(windowId, 2); } @@ -1704,20 +1704,20 @@ void sub_819983C(u8 windowId, u8 a4, u8 itemCount, u8 itemCount2, const struct M CopyWindowToVram(windowId, 2); } -u8 sub_8199944(u8 windowId, u8 optionWidth, u8 horizontalCount, u8 verticalCount, u8 initialCursorPos) +u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos) { s32 pos; sMenu.left = 0; sMenu.top = 1; sMenu.minCursorPos = 0; - sMenu.maxCursorPos = (horizontalCount * verticalCount) - 1; + sMenu.maxCursorPos = (columns * rows) - 1; sMenu.windowId = windowId; sMenu.fontId = 1; sMenu.optionWidth = optionWidth; sMenu.optionHeight = 16; - sMenu.horizontalCount = horizontalCount; - sMenu.verticalCount = verticalCount; + sMenu.columns = columns; + sMenu.rows = rows; pos = initialCursorPos; -- cgit v1.2.3 From 1241700b204b9f450221299c6e837c0f522f60b2 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 2 Apr 2019 18:28:56 -0500 Subject: Finish documenting the other weather effects --- src/cable_car.c | 19 +- src/field_weather.c | 6 +- src/field_weather_effect.c | 583 ++++++++++++++++++++++++--------------------- 3 files changed, 324 insertions(+), 284 deletions(-) (limited to 'src') diff --git a/src/cable_car.c b/src/cable_car.c index ab7b5726a..42137e804 100755 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -407,13 +407,12 @@ static void sub_81503E4(u8 taskId) case WEATHER_ASH: if (gWeatherPtr->sprites.s2.ashSprites[0] != NULL && gWeatherPtr->sprites.s2.ashSprites[0]->oam.priority != 0) { - for (; i < 20; i++) + for (; i < NUM_ASH_SPRITES; i++) { - if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL) - { + if (gWeatherPtr->sprites.s2.ashSprites[i]) gWeatherPtr->sprites.s2.ashSprites[i]->oam.priority = 0; - } } + sCableCar->state = 2; } break; @@ -424,12 +423,10 @@ static void sub_81503E4(u8 taskId) } else if (sCableCar->timer >= sCableCar->unk4 + 8) { - for (; i < 20; i++) + for (; i < NUM_ASH_SPRITES; i++) { - if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL) - { - gWeatherPtr->sprites.s2.ashSprites[i]->invisible ^= TRUE; - } + if (gWeatherPtr->sprites.s2.ashSprites[i]) + gWeatherPtr->sprites.s2.ashSprites[i]->invisible ^= 1; } } break; @@ -445,9 +442,7 @@ static void sub_81503E4(u8 taskId) break; case 3: if (!gPaletteFade.active) - { sCableCar->state = 0xFF; - } break; case 0xFF: SetVBlankCallback(NULL); @@ -536,7 +531,7 @@ static void sub_8150664(u8 taskId) if (sCableCar->timer < sCableCar->unk4) gSpriteCoordOffsetX = (gSpriteCoordOffsetX + 247) % 248; else - gWeatherPtr->unknown_6FC = (gWeatherPtr->unknown_6FC + 247) % 248; + gWeatherPtr->ashBaseSpritesX = (gWeatherPtr->ashBaseSpritesX + 247) % 248; } static void CableCarVblankCallback(void) diff --git a/src/field_weather.c b/src/field_weather.c index 346d30a38..814e85ef4 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -173,9 +173,9 @@ void StartWeather(void) gWeatherPtr->ashSpritesCreated = 0; gWeatherPtr->fog1SpritesCreated = 0; gWeatherPtr->fog2SpritesCreated = 0; - gWeatherPtr->sandstormSprites1Created = 0; - gWeatherPtr->sandstormSprites2Created = 0; - gWeatherPtr->unknown_72E = 0; + gWeatherPtr->sandstormSpritesCreated = 0; + gWeatherPtr->sandstormSwirlSpritesCreated = 0; + gWeatherPtr->bubblesSpritesCreated = 0; gWeatherPtr->lightenedFogSpritePalsCount = 0; Weather_SetBlendCoeffs(16, 0); gWeatherPtr->currWeather = 0; diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 0544710ad..eac434983 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle_anim.h" #include "event_object_movement.h" #include "field_weather.h" #include "overworld.h" @@ -17,8 +18,8 @@ EWRAM_DATA static u8 gCurrentAlternatingWeather = 0; EWRAM_DATA static u16 gUnusedWeatherRelated = 0; // CONST -const u16 gUnknown_0854C290[] = INCBIN_U16("graphics/weather/1.gbapal"); -const u16 gUnknown_0854C2B0[] = INCBIN_U16("graphics/weather/2.gbapal"); +const u16 gCloudsWeatherPalette[] = INCBIN_U16("graphics/weather/cloud.gbapal"); +const u16 gSandstormWeatherPalette[] = INCBIN_U16("graphics/weather/sandstorm.gbapal"); const u8 gWeatherFog2Tiles[] = INCBIN_U8("graphics/weather/fog2.4bpp"); const u8 gWeatherFog1Tiles[] = INCBIN_U8("graphics/weather/fog1.4bpp"); const u8 gWeatherCloudTiles[] = INCBIN_U8("graphics/weather/cloud.4bpp"); @@ -180,7 +181,7 @@ static void CreateCloudSprites(void) return; LoadSpriteSheet(&sCloudSpriteSheet); - LoadCustomWeatherSpritePalette(gUnknown_0854C290); + LoadCustomWeatherSpritePalette(gCloudsWeatherPalette); for (i = 0; i < NUM_CLOUD_SPRITES; i++) { spriteId = CreateSprite(&sCloudSpriteTemplate, 0, 0, 0xFF); @@ -229,6 +230,8 @@ static void UpdateCloudSprite(struct Sprite *sprite) // Drought //------------------------------------------------------------------------------ +static void UpdateDroughtBlend(u8); + void Drought_InitVars(void) { gWeatherPtr->initStep = 0; @@ -280,14 +283,12 @@ void Drought_Main(void) bool8 Drought_Finish(void) { - return 0; + return FALSE; } -void task50_0807B6D4(u8); - -void sub_80AC81C(void) +void StartDroughtWeatherBlend(void) { - CreateTask(task50_0807B6D4, 0x50); + CreateTask(UpdateDroughtBlend, 0x50); } #define tState data[0] @@ -295,7 +296,7 @@ void sub_80AC81C(void) #define tBlendDelay data[2] #define tWinRange data[3] -void task50_0807B6D4(u8 taskId) +static void UpdateDroughtBlend(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1436,7 +1437,7 @@ static void CreateFog1Sprites(void) .tag = 0x1201, }; LoadSpriteSheet(&fog1SpriteSheet); - for (i = 0; i < NUM_FOG_SPRITES; i++) + for (i = 0; i < NUM_FOG1_SPRITES; i++) { spriteId = CreateSpriteAtEnd(&sFog1SpriteTemplate, 0, 0, 0xFF); if (spriteId != MAX_SPRITES) @@ -1463,7 +1464,7 @@ static void DestroyFog1Sprites(void) if (gWeatherPtr->fog1SpritesCreated) { - for (i = 0; i < NUM_FOG_SPRITES; i++) + for (i = 0; i < NUM_FOG1_SPRITES; i++) { if (gWeatherPtr->sprites.s2.fog1Sprites[i] != NULL) DestroySprite(gWeatherPtr->sprites.s2.fog1Sprites[i]); @@ -1508,9 +1509,9 @@ void Ash_InitAll(void) void Ash_Main(void) { - gWeatherPtr->baseAshSpritesX = gSpriteCoordOffsetX & 0x1FF; - while (gWeatherPtr->baseAshSpritesX >= 240) - gWeatherPtr->baseAshSpritesX -= 240; + gWeatherPtr->ashBaseSpritesX = gSpriteCoordOffsetX & 0x1FF; + while (gWeatherPtr->ashBaseSpritesX >= 240) + gWeatherPtr->ashBaseSpritesX -= 240; switch (gWeatherPtr->initStep) { @@ -1676,10 +1677,10 @@ static void UpdateAshSprite(struct Sprite *sprite) } sprite->pos1.y = gSpriteCoordOffsetY + sprite->tOffsetY; - sprite->pos1.x = gWeatherPtr->baseAshSpritesX + 32 + sprite->tSpriteColumn * 64; + sprite->pos1.x = gWeatherPtr->ashBaseSpritesX + 32 + sprite->tSpriteColumn * 64; if (sprite->pos1.x > 271) { - sprite->pos1.x = gWeatherPtr->baseAshSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; + sprite->pos1.x = gWeatherPtr->ashBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; sprite->pos1.x &= 0x1FF; } } @@ -1693,6 +1694,11 @@ static void UpdateAshSprite(struct Sprite *sprite) // Fog 2 //------------------------------------------------------------------------------ +static void UpdateFog2Movement(void); +static void CreateFog2Sprites(void); +static void DestroyFog2Sprites(void); +static void UpdateFog2Sprite(struct Sprite *); + void Fog2_InitVars(void) { gWeatherPtr->initStep = 0; @@ -1701,20 +1707,18 @@ void Fog2_InitVars(void) gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->fog1ScrollCounter = 0; gWeatherPtr->fog1ScrollOffset = 1; - if (gWeatherPtr->fog2SpritesCreated == 0) - { - gWeatherPtr->unknown_71C = 0; - gWeatherPtr->unknown_71E = 0; - gWeatherPtr->unknown_720 = 0; - gWeatherPtr->unknown_722 = 0; - gWeatherPtr->unknown_718 = 0; - gWeatherPtr->unknown_71A = 0; + if (!gWeatherPtr->fog2SpritesCreated) + { + gWeatherPtr->fog2ScrollXCounter = 0; + gWeatherPtr->fog2ScrollYCounter = 0; + gWeatherPtr->fog2XOffset = 0; + gWeatherPtr->fog2YOffset = 0; + gWeatherPtr->fog2BaseSpritesX = 0; + gWeatherPtr->fog2PosY = 0; Weather_SetBlendCoeffs(0, 16); } } -void Fog2_Main(void); - void Fog2_InitAll(void) { Fog2_InitVars(); @@ -1722,12 +1726,9 @@ void Fog2_InitAll(void) Fog2_Main(); } -void sub_807FC9C(void); -void CreateFog2Sprites(void); - void Fog2_Main(void) { - sub_807FC9C(); + UpdateFog2Movement(); switch (gWeatherPtr->initStep) { case 0: @@ -1747,11 +1748,9 @@ void Fog2_Main(void) } } -void DestroyFog2Sprites(void); - bool8 Fog2_Finish(void) { - sub_807FC9C(); + UpdateFog2Movement(); switch (gWeatherPtr->finishStep) { case 0: @@ -1773,57 +1772,32 @@ bool8 Fog2_Finish(void) return TRUE; } -void sub_807FC9C(void) +static void UpdateFog2Movement(void) { - if (++gWeatherPtr->unknown_71C > 2) + if (++gWeatherPtr->fog2ScrollXCounter > 2) { - gWeatherPtr->unknown_720++; - gWeatherPtr->unknown_71C = 0; + gWeatherPtr->fog2XOffset++; + gWeatherPtr->fog2ScrollXCounter = 0; } - if (++gWeatherPtr->unknown_71E > 4) + if (++gWeatherPtr->fog2ScrollYCounter > 4) { - gWeatherPtr->unknown_722++; - gWeatherPtr->unknown_71E = 0; + gWeatherPtr->fog2YOffset++; + gWeatherPtr->fog2ScrollYCounter = 0; } - gWeatherPtr->unknown_718 = (gSpriteCoordOffsetX - gWeatherPtr->unknown_720) & 0xFF; - gWeatherPtr->unknown_71A = gSpriteCoordOffsetY + gWeatherPtr->unknown_722; + gWeatherPtr->fog2BaseSpritesX = (gSpriteCoordOffsetX - gWeatherPtr->fog2XOffset) & 0xFF; + gWeatherPtr->fog2PosY = gSpriteCoordOffsetY + gWeatherPtr->fog2YOffset; } -extern const struct SpriteTemplate sFog2SpriteTemplate; // defined below - -void CreateFog2Sprites(void) +static const struct SpriteSheet gFog2SpriteSheet = { - u16 i; - - if (!gWeatherPtr->fog2SpritesCreated) - { - struct SpriteSheet fog2SpriteSheet = {gWeatherFog2Tiles, sizeof(gWeatherFog2Tiles), 0x1203}; - - LoadSpriteSheet(&fog2SpriteSheet); - for (i = 0; i < 20; i++) - { - u8 spriteId = CreateSpriteAtEnd(&sFog2SpriteTemplate, 0, (i / 5) * 64, 0xFF); - - if (spriteId != MAX_SPRITES) - { - struct Sprite *sprite = &gSprites[spriteId]; - - sprite->data[0] = i % 5; - sprite->data[1] = i / 5; - gWeatherPtr->sprites.s2.fog2Sprites[i] = sprite; - } - else - { - gWeatherPtr->sprites.s2.fog2Sprites[i] = NULL; - } - } - gWeatherPtr->fog2SpritesCreated = TRUE; - } -} + .data = gWeatherFog2Tiles, + .size = sizeof(gWeatherFog2Tiles), + .tag = 0x1203, +}; -const struct OamData gOamData_839ABF0 = +static const struct OamData sFog2SpriteOamData = { .y = 0, .affineMode = 0, @@ -1840,103 +1814,146 @@ const struct OamData gOamData_839ABF0 = .affineParam = 0, }; -const union AnimCmd gSpriteAnim_839ABF8[] = +static const union AnimCmd sFog2SpriteAnimCmd0[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; -const union AnimCmd *const gSpriteAnimTable_839AC00[] = +static const union AnimCmd *const sFog2SpriteAnimCmds[] = { - gSpriteAnim_839ABF8, + sFog2SpriteAnimCmd0, }; -void Fog2SpriteCallback(struct Sprite *); -const struct SpriteTemplate sFog2SpriteTemplate = +static const struct SpriteTemplate sFog2SpriteTemplate = { - .tileTag = 4611, + .tileTag = 0x1203, .paletteTag = 0x1200, - .oam = &gOamData_839ABF0, - .anims = gSpriteAnimTable_839AC00, + .oam = &sFog2SpriteOamData, + .anims = sFog2SpriteAnimCmds, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = Fog2SpriteCallback, + .callback = UpdateFog2Sprite, }; -void DestroyFog2Sprites(void) +#define tSpriteColumn data[0] +#define tSpriteRow data[1] + +static void CreateFog2Sprites(void) +{ + u16 i; + struct SpriteSheet fog2SpriteSheet; + u8 spriteId; + struct Sprite *sprite; + + if (!gWeatherPtr->fog2SpritesCreated) + { + fog2SpriteSheet = gFog2SpriteSheet; + LoadSpriteSheet(&fog2SpriteSheet); + for (i = 0; i < NUM_FOG2_SPRITES; i++) + { + spriteId = CreateSpriteAtEnd(&sFog2SpriteTemplate, 0, (i / 5) * 64, 0xFF); + if (spriteId != MAX_SPRITES) + { + sprite = &gSprites[spriteId]; + sprite->tSpriteColumn = i % 5; + sprite->tSpriteRow = i / 5; + gWeatherPtr->sprites.s2.fog2Sprites[i] = sprite; + } + else + { + gWeatherPtr->sprites.s2.fog2Sprites[i] = NULL; + } + } + + gWeatherPtr->fog2SpritesCreated = TRUE; + } +} + +static void DestroyFog2Sprites(void) { u16 i; if (gWeatherPtr->fog2SpritesCreated) { - for (i = 0; i < 20; i++) + for (i = 0; i < NUM_FOG2_SPRITES; i++) { - if (gWeatherPtr->sprites.s2.fog2Sprites[i] != NULL) + if (gWeatherPtr->sprites.s2.fog2Sprites[i]) DestroySprite(gWeatherPtr->sprites.s2.fog2Sprites[i]); } + FreeSpriteTilesByTag(0x1203); gWeatherPtr->fog2SpritesCreated = FALSE; } } -void Fog2SpriteCallback(struct Sprite *sprite) +static void UpdateFog2Sprite(struct Sprite *sprite) { - sprite->pos2.y = gWeatherPtr->unknown_71A; - sprite->pos1.x = gWeatherPtr->unknown_718 + 32 + sprite->data[0] * 64; + sprite->pos2.y = gWeatherPtr->fog2PosY; + sprite->pos1.x = gWeatherPtr->fog2BaseSpritesX + 32 + sprite->tSpriteColumn * 64; if (sprite->pos1.x > 271) { - sprite->pos1.x = gWeatherPtr->unknown_718 + 0x1E0 - (4 - sprite->data[0]) * 64; + sprite->pos1.x = gWeatherPtr->fog2BaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; sprite->pos1.x &= 0x1FF; } } +#undef tSpriteColumn +#undef tSpriteRow + //------------------------------------------------------------------------------ // Sandstorm //------------------------------------------------------------------------------ +static void UpdateSandstormWaveIndex(void); +static void UpdateSandstormMovement(void); +static void CreateSandstormSprites(void); +static void CreateSwirlSandstormSprites(void); +static void DestroySandstormSprites(void); +static void UpdateSandstormSprite(struct Sprite *); +static void WaitSandSwirlSpriteEntrance(struct Sprite *); +static void UpdateSandstormSwirlSprite(struct Sprite *); + +#define MIN_SANDSTORM_WAVE_INDEX 0x20 + void Sandstorm_InitVars(void) { gWeatherPtr->initStep = 0; gWeatherPtr->weatherGfxLoaded = 0; gWeatherPtr->gammaTargetIndex = 0; gWeatherPtr->gammaStepDelay = 20; - if (gWeatherPtr->sandstormSprites1Created == 0) + if (!gWeatherPtr->sandstormSpritesCreated) { - gWeatherPtr->unknown_704 = gWeatherPtr->unknown_708 = 0; - gWeatherPtr->unknown_712 = 8; - gWeatherPtr->unknown_714 = 0; + gWeatherPtr->sandstormXOffset = gWeatherPtr->sandstormYOffset = 0; + gWeatherPtr->sandstormWaveIndex = 8; + gWeatherPtr->sandstormWaveCounter = 0; // Dead code. How does the compiler not optimize this out? - if (gWeatherPtr->unknown_712 > 0x5F) - gWeatherPtr->unknown_712 = 0x80 - gWeatherPtr->unknown_712; + if (gWeatherPtr->sandstormWaveIndex >= 0x80 - MIN_SANDSTORM_WAVE_INDEX) + gWeatherPtr->sandstormWaveIndex = 0x80 - gWeatherPtr->sandstormWaveIndex; + Weather_SetBlendCoeffs(0, 16); } } -void Sandstorm_Main(void); - void Sandstorm_InitAll(void) { Sandstorm_InitVars(); - while (gWeatherPtr->weatherGfxLoaded == FALSE) + while (!gWeatherPtr->weatherGfxLoaded) Sandstorm_Main(); } -void sub_808002C(void); -void sub_8080064(void); -void CreateSandstormSprites_1(void); -void CreateSandstormSprites_2(void); - void Sandstorm_Main(void) { - sub_8080064(); - sub_808002C(); - if (gWeatherPtr->unknown_712 > 0x5F) - gWeatherPtr->unknown_712 = 32; + UpdateSandstormMovement(); + UpdateSandstormWaveIndex(); + if (gWeatherPtr->sandstormWaveIndex >= 0x80 - MIN_SANDSTORM_WAVE_INDEX) + gWeatherPtr->sandstormWaveIndex = MIN_SANDSTORM_WAVE_INDEX; + switch (gWeatherPtr->initStep) { case 0: - CreateSandstormSprites_1(); - CreateSandstormSprites_2(); + CreateSandstormSprites(); + CreateSwirlSandstormSprites(); gWeatherPtr->initStep++; break; case 1: @@ -1944,20 +1961,19 @@ void Sandstorm_Main(void) gWeatherPtr->initStep++; break; case 2: - if (!Weather_UpdateBlend()) - break; - gWeatherPtr->weatherGfxLoaded = TRUE; - gWeatherPtr->initStep++; + if (Weather_UpdateBlend()) + { + gWeatherPtr->weatherGfxLoaded = TRUE; + gWeatherPtr->initStep++; + } break; } } -void sub_80800E4(void); - bool8 Sandstorm_Finish(void) { - sub_8080064(); - sub_808002C(); + UpdateSandstormMovement(); + UpdateSandstormWaveIndex(); switch (gWeatherPtr->finishStep) { case 0: @@ -1965,64 +1981,66 @@ bool8 Sandstorm_Finish(void) gWeatherPtr->finishStep++; break; case 1: - if (!Weather_UpdateBlend()) - break; - gWeatherPtr->finishStep++; + if (Weather_UpdateBlend()) + gWeatherPtr->finishStep++; break; case 2: - sub_80800E4(); + DestroySandstormSprites(); gWeatherPtr->finishStep++; break; default: return FALSE; } + return TRUE; } -void sub_808002C(void) +static void UpdateSandstormWaveIndex(void) { - if (gWeatherPtr->unknown_714++ > 4) + if (gWeatherPtr->sandstormWaveCounter++ > 4) { - gWeatherPtr->unknown_712++; - gWeatherPtr->unknown_714 = 0; + gWeatherPtr->sandstormWaveIndex++; + gWeatherPtr->sandstormWaveCounter = 0; } } -void sub_8080064(void) +static void UpdateSandstormMovement(void) { - gWeatherPtr->unknown_704 -= gSineTable[gWeatherPtr->unknown_712] * 4; - gWeatherPtr->unknown_708 -= gSineTable[gWeatherPtr->unknown_712]; - gWeatherPtr->unknown_70E = (gSpriteCoordOffsetX + (gWeatherPtr->unknown_704 >> 8)) & 0xFF; - gWeatherPtr->unknown_710 = gSpriteCoordOffsetY + (gWeatherPtr->unknown_708 >> 8); + gWeatherPtr->sandstormXOffset -= gSineTable[gWeatherPtr->sandstormWaveIndex] * 4; + gWeatherPtr->sandstormYOffset -= gSineTable[gWeatherPtr->sandstormWaveIndex]; + gWeatherPtr->sandstormBaseSpritesX = (gSpriteCoordOffsetX + (gWeatherPtr->sandstormXOffset >> 8)) & 0xFF; + gWeatherPtr->sandstormPosY = gSpriteCoordOffsetY + (gWeatherPtr->sandstormYOffset >> 8); } -void sub_80800E4(void) +static void DestroySandstormSprites(void) { u16 i; - if (gWeatherPtr->sandstormSprites1Created) + if (gWeatherPtr->sandstormSpritesCreated) { - for (i = 0; i < 20; i++) + for (i = 0; i < NUM_SANDSTORM_SPRITES; i++) { - if (gWeatherPtr->sprites.s2.sandstormSprites1[i] != NULL) + if (gWeatherPtr->sprites.s2.sandstormSprites1[i]) DestroySprite(gWeatherPtr->sprites.s2.sandstormSprites1[i]); } - gWeatherPtr->sandstormSprites1Created = FALSE; + + gWeatherPtr->sandstormSpritesCreated = FALSE; FreeSpriteTilesByTag(0x1204); } - if (gWeatherPtr->sandstormSprites2Created) + if (gWeatherPtr->sandstormSwirlSpritesCreated) { - for (i = 0; i < 5; i++) + for (i = 0; i < NUM_SWIRL_SANDSTORM_SPRITES; i++) { if (gWeatherPtr->sprites.s2.sandstormSprites2[i] != NULL) DestroySprite(gWeatherPtr->sprites.s2.sandstormSprites2[i]); } - gWeatherPtr->sandstormSprites2Created = FALSE; + + gWeatherPtr->sandstormSwirlSpritesCreated = FALSE; } } -const struct OamData gOamData_839AC1C = +static const struct OamData sSandstormSpriteOamData = { .y = 0, .affineMode = 0, @@ -2039,142 +2057,162 @@ const struct OamData gOamData_839AC1C = .affineParam = 0, }; -const union AnimCmd gSpriteAnim_839AC24[] = +static const union AnimCmd sSandstormSpriteAnimCmd0[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_END, }; -const union AnimCmd gSpriteAnim_839AC2C[] = +static const union AnimCmd sSandstormSpriteAnimCmd1[] = { ANIMCMD_FRAME(64, 3), ANIMCMD_END, }; -const union AnimCmd *const gSpriteAnimTable_839AC34[] = +static const union AnimCmd *const sSandstormSpriteAnimCmds[] = { - gSpriteAnim_839AC24, - gSpriteAnim_839AC2C, + sSandstormSpriteAnimCmd0, + sSandstormSpriteAnimCmd1, }; -void SandstormSpriteCallback1(struct Sprite *); -const struct SpriteTemplate sSandstormSpriteTemplate = +static const struct SpriteTemplate sSandstormSpriteTemplate = { .tileTag = 0x1204, .paletteTag = 0x1201, - .oam = &gOamData_839AC1C, - .anims = gSpriteAnimTable_839AC34, + .oam = &sSandstormSpriteOamData, + .anims = sSandstormSpriteAnimCmds, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SandstormSpriteCallback1, + .callback = UpdateSandstormSprite, }; -static const struct SpriteSheet sSandstormSpriteSheet = {gWeatherSandstormTiles, sizeof(gWeatherSandstormTiles), 0x1204}; +static const struct SpriteSheet sSandstormSpriteSheet = +{ + .data = gWeatherSandstormTiles, + .size = sizeof(gWeatherSandstormTiles), + .tag = 0x1204, +}; + +// Regular sandstorm sprites +#define tSpriteColumn data[0] +#define tSpriteRow data[1] + +// Swirly sandstorm sprites +#define tRadius data[0] +#define tWaveIndex data[1] +#define tRadiusCounter data[2] +#define tEntranceDelay data[3] -void CreateSandstormSprites_1(void) +static void CreateSandstormSprites(void) { u16 i; + u8 spriteId; - if (!gWeatherPtr->sandstormSprites1Created) + if (!gWeatherPtr->sandstormSpritesCreated) { LoadSpriteSheet(&sSandstormSpriteSheet); - LoadCustomWeatherSpritePalette(gUnknown_0854C2B0); - for (i = 0; i < 20; i++) + LoadCustomWeatherSpritePalette(gSandstormWeatherPalette); + for (i = 0; i < NUM_SANDSTORM_SPRITES; i++) { - u8 spriteId = CreateSpriteAtEnd(&sSandstormSpriteTemplate, 0, (i / 5) * 64, 1); - + spriteId = CreateSpriteAtEnd(&sSandstormSpriteTemplate, 0, (i / 5) * 64, 1); if (spriteId != MAX_SPRITES) { gWeatherPtr->sprites.s2.sandstormSprites1[i] = &gSprites[spriteId]; - gWeatherPtr->sprites.s2.sandstormSprites1[i]->data[0] = i % 5; - gWeatherPtr->sprites.s2.sandstormSprites1[i]->data[1] = i / 5; + gWeatherPtr->sprites.s2.sandstormSprites1[i]->tSpriteColumn = i % 5; + gWeatherPtr->sprites.s2.sandstormSprites1[i]->tSpriteRow = i / 5; } else { gWeatherPtr->sprites.s2.sandstormSprites1[i] = NULL; } } - gWeatherPtr->sandstormSprites1Created = TRUE; + + gWeatherPtr->sandstormSpritesCreated = TRUE; } } -const u16 gUnknown_0839AC5C[] = {0, 120, 80, 160, 40, 0}; +static const u16 sSwirlEntranceDelays[] = {0, 120, 80, 160, 40, 0}; -void SandstormSpriteCallback2(struct Sprite *); - -void CreateSandstormSprites_2(void) +static void CreateSwirlSandstormSprites(void) { u16 i; + u8 spriteId; - if (!gWeatherPtr->sandstormSprites2Created) + if (!gWeatherPtr->sandstormSwirlSpritesCreated) { - for (i = 0; i < 5; i++) + for (i = 0; i < NUM_SWIRL_SANDSTORM_SPRITES; i++) { - u8 spriteId = CreateSpriteAtEnd(&sSandstormSpriteTemplate, i * 48 + 24, 208, 1); - + spriteId = CreateSpriteAtEnd(&sSandstormSpriteTemplate, i * 48 + 24, 208, 1); if (spriteId != MAX_SPRITES) { gWeatherPtr->sprites.s2.sandstormSprites2[i] = &gSprites[spriteId]; gWeatherPtr->sprites.s2.sandstormSprites2[i]->oam.size = 2; - gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[1] = i * 51; - gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[0] = 8; - gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[2] = 0; - gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[4] = 0x6730; - gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[3] = gUnknown_0839AC5C[i]; + gWeatherPtr->sprites.s2.sandstormSprites2[i]->tSpriteRow = i * 51; + gWeatherPtr->sprites.s2.sandstormSprites2[i]->tRadius = 8; + gWeatherPtr->sprites.s2.sandstormSprites2[i]->tRadiusCounter = 0; + gWeatherPtr->sprites.s2.sandstormSprites2[i]->data[4] = 0x6730; // unused value + gWeatherPtr->sprites.s2.sandstormSprites2[i]->tEntranceDelay = sSwirlEntranceDelays[i]; StartSpriteAnim(gWeatherPtr->sprites.s2.sandstormSprites2[i], 1); CalcCenterToCornerVec(gWeatherPtr->sprites.s2.sandstormSprites2[i], 0, 2, 0); - gWeatherPtr->sprites.s2.sandstormSprites2[i]->callback = SandstormSpriteCallback2; + gWeatherPtr->sprites.s2.sandstormSprites2[i]->callback = WaitSandSwirlSpriteEntrance; } else { gWeatherPtr->sprites.s2.sandstormSprites2[i] = NULL; } - gWeatherPtr->sandstormSprites2Created = TRUE; + + gWeatherPtr->sandstormSwirlSpritesCreated = TRUE; } } } -void SandstormSpriteCallback1(struct Sprite *sprite) +static void UpdateSandstormSprite(struct Sprite *sprite) { - sprite->pos2.y = gWeatherPtr->unknown_710; - sprite->pos1.x = gWeatherPtr->unknown_70E + 32 + sprite->data[0] * 64; + sprite->pos2.y = gWeatherPtr->sandstormPosY; + sprite->pos1.x = gWeatherPtr->sandstormBaseSpritesX + 32 + sprite->tSpriteColumn * 64; if (sprite->pos1.x > 271) { - sprite->pos1.x = gWeatherPtr->unknown_70E + 0x1E0 - (4 - sprite->data[0]) * 64; + sprite->pos1.x = gWeatherPtr->sandstormBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; sprite->pos1.x &= 0x1FF; } } -void SandstormSpriteCallback3(struct Sprite *); - -void SandstormSpriteCallback2(struct Sprite *sprite) +static void WaitSandSwirlSpriteEntrance(struct Sprite *sprite) { - if (--sprite->data[3] == -1) - sprite->callback = SandstormSpriteCallback3; + if (--sprite->tEntranceDelay == -1) + sprite->callback = UpdateSandstormSwirlSprite; } -void SandstormSpriteCallback3(struct Sprite *sprite) +static void UpdateSandstormSwirlSprite(struct Sprite *sprite) { - u32 x; - u32 y; + u32 x, y; if (--sprite->pos1.y < -48) { sprite->pos1.y = 208; - sprite->data[0] = 4; + sprite->tRadius = 4; } - x = sprite->data[0] * gSineTable[sprite->data[1]]; - y = sprite->data[0] * gSineTable[sprite->data[1] + 64]; + + x = sprite->tRadius * gSineTable[sprite->tWaveIndex]; + y = sprite->tRadius * gSineTable[sprite->tWaveIndex + 0x40]; sprite->pos2.x = x >> 8; sprite->pos2.y = y >> 8; - sprite->data[1] = (sprite->data[1] + 10) & 0xFF; - if (++sprite->data[2] > 8) + sprite->tWaveIndex = (sprite->tWaveIndex + 10) & 0xFF; + if (++sprite->tRadiusCounter > 8) { - sprite->data[2] = 0; - sprite->data[0]++; + sprite->tRadiusCounter = 0; + sprite->tRadius++; } } +#undef tSpriteColumn +#undef tSpriteRow + +#undef tRadius +#undef tWaveIndex +#undef tRadiusCounter +#undef tEntranceDelay + //------------------------------------------------------------------------------ // Shade //------------------------------------------------------------------------------ @@ -2204,162 +2242,169 @@ bool8 Shade_Finish(void) // Bubbles //------------------------------------------------------------------------------ -const u8 gUnknown_0839AC68[] = {40, 90, 60, 90, 2, 60, 40, 30}; +static void CreateBubbleSprite(u16); +static void DestroyBubbleSprites(void); +static void UpdateBubbleSprite(struct Sprite *); + +static const u8 sBubbleStartDelays[] = {40, 90, 60, 90, 2, 60, 40, 30}; -const struct SpriteSheet gWeatherBubbleSpriteSheet = {gWeatherBubbleTiles, sizeof(gWeatherBubbleTiles), 0x1205}; +static const struct SpriteSheet sWeatherBubbleSpriteSheet = +{ + .data = gWeatherBubbleTiles, + .size = sizeof(gWeatherBubbleTiles), + .tag = 0x1205, +}; + +static const s16 sBubbleStartCoords[][2] = +{ + {120, 160}, + {376, 160}, + { 40, 140}, + {296, 140}, + {180, 130}, + {436, 130}, + { 60, 160}, + {436, 160}, + {220, 180}, + {476, 180}, + { 10, 90}, + {266, 90}, + {256, 160}, +}; void Bubbles_InitVars(void) { Fog1_InitVars(); - if (gWeatherPtr->unknown_72E == 0) + if (!gWeatherPtr->bubblesSpritesCreated) { - LoadSpriteSheet(&gWeatherBubbleSpriteSheet); - gWeatherPtr->unknown_728 = 0; - gWeatherPtr->unknown_726 = gUnknown_0839AC68[0]; - gWeatherPtr->unknown_72A = 0; - gWeatherPtr->unknown_72C = 0; + LoadSpriteSheet(&sWeatherBubbleSpriteSheet); + gWeatherPtr->bubblesDelayIndex = 0; + gWeatherPtr->bubblesDelayCounter = sBubbleStartDelays[0]; + gWeatherPtr->bubblesCoordsIndex = 0; + gWeatherPtr->bubblesSpriteCount = 0; } } -void Bubbles_Main(void); - void Bubbles_InitAll(void) { Bubbles_InitVars(); - while (gWeatherPtr->weatherGfxLoaded == FALSE) + while (!gWeatherPtr->weatherGfxLoaded) Bubbles_Main(); } -void sub_8080588(u16); - void Bubbles_Main(void) { Fog1_Main(); - if (++gWeatherPtr->unknown_726 > gUnknown_0839AC68[gWeatherPtr->unknown_728]) + if (++gWeatherPtr->bubblesDelayCounter > sBubbleStartDelays[gWeatherPtr->bubblesDelayIndex]) { - gWeatherPtr->unknown_726 = 0; - if (++gWeatherPtr->unknown_728 > 7) - gWeatherPtr->unknown_728 = 0; - sub_8080588(gWeatherPtr->unknown_72A); - if (++gWeatherPtr->unknown_72A > 12) - gWeatherPtr->unknown_72A = 0; + gWeatherPtr->bubblesDelayCounter = 0; + if (++gWeatherPtr->bubblesDelayIndex > ARRAY_COUNT(sBubbleStartDelays) - 1) + gWeatherPtr->bubblesDelayIndex = 0; + + CreateBubbleSprite(gWeatherPtr->bubblesCoordsIndex); + if (++gWeatherPtr->bubblesCoordsIndex > ARRAY_COUNT(sBubbleStartCoords) - 1) + gWeatherPtr->bubblesCoordsIndex = 0; } } -void sub_8080610(void); - bool8 Bubbles_Finish(void) { if (!Fog1_Finish()) { - sub_8080610(); + DestroyBubbleSprites(); return FALSE; } + return TRUE; } -const s16 gUnknown_0839AC78[][2] = -{ - {120, 160}, - {376, 160}, - { 40, 140}, - {296, 140}, - {180, 130}, - {436, 130}, - { 60, 160}, - {436, 160}, - {220, 180}, - {476, 180}, - { 10, 90}, - {266, 90}, - {256, 160}, -}; - -const union AnimCmd gSpriteAnim_839ACAC[] = +static const union AnimCmd sBubbleSpriteAnimCmd0[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_FRAME(1, 16), ANIMCMD_END, }; -const union AnimCmd *const gSpriteAnimTable_839ACB8[] = +static const union AnimCmd *const sBubbleSpriteAnimCmds[] = { - gSpriteAnim_839ACAC, + sBubbleSpriteAnimCmd0, }; -extern const struct OamData gUnknown_08524904; - -void unc_0807DAB4(struct Sprite *); -const struct SpriteTemplate gSpriteTemplate_839ACBC = +static const struct SpriteTemplate sBubbleSpriteTemplate = { - .tileTag = 4613, + .tileTag = 0x1205, .paletteTag = 0x1200, .oam = &gUnknown_08524904, - .anims = gSpriteAnimTable_839ACB8, + .anims = sBubbleSpriteAnimCmds, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = unc_0807DAB4, + .callback = UpdateBubbleSprite, }; -void sub_8080588(u16 a) -{ - s16 x = gUnknown_0839AC78[a][0]; - s16 y = gUnknown_0839AC78[a][1] - gSpriteCoordOffsetY; - u8 spriteId = CreateSpriteAtEnd( - &gSpriteTemplate_839ACBC, - x, - y, - 0); +#define tScrollXCounter data[0] +#define tScrollXDir data[1] +#define tCounter data[2] +static void CreateBubbleSprite(u16 coordsIndex) +{ + s16 x = sBubbleStartCoords[coordsIndex][0]; + s16 y = sBubbleStartCoords[coordsIndex][1] - gSpriteCoordOffsetY; + u8 spriteId = CreateSpriteAtEnd(&sBubbleSpriteTemplate, x, y, 0); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = 1; gSprites[spriteId].coordOffsetEnabled = TRUE; - gSprites[spriteId].data[0] = 0; - gSprites[spriteId].data[1] = 0; - gSprites[spriteId].data[2] = 0; - gWeatherPtr->unknown_72C++; + gSprites[spriteId].tScrollXCounter = 0; + gSprites[spriteId].tScrollXDir = 0; + gSprites[spriteId].tCounter = 0; + gWeatherPtr->bubblesSpriteCount++; } } -void sub_8080610(void) +static void DestroyBubbleSprites(void) { u16 i; - if (gWeatherPtr->unknown_72C != 0) + if (gWeatherPtr->bubblesSpriteCount) { - for (i = 0; i < 64; i++) + for (i = 0; i < MAX_SPRITES; i++) { - if (gSprites[i].template == &gSpriteTemplate_839ACBC) + if (gSprites[i].template == &sBubbleSpriteTemplate) DestroySprite(&gSprites[i]); } + FreeSpriteTilesByTag(0x1205); - gWeatherPtr->unknown_72C = 0; + gWeatherPtr->bubblesSpriteCount = 0; } } -void unc_0807DAB4(struct Sprite *sprite) +static void UpdateBubbleSprite(struct Sprite *sprite) { - ++sprite->data[0]; - if (++sprite->data[0] > 8) // double increment + ++sprite->tScrollXCounter; + if (++sprite->tScrollXCounter > 8) // double increment { - sprite->data[0] = 0; - if (sprite->data[1] == 0) + sprite->tScrollXCounter = 0; + if (sprite->tScrollXDir == 0) { if (++sprite->pos2.x > 4) - sprite->data[1] = 1; + sprite->tScrollXDir = 1; } else { if (--sprite->pos2.x <= 0) - sprite->data[1] = 0; + sprite->tScrollXDir = 0; } } + sprite->pos1.y -= 3; - if (++sprite->data[2] > 0x77) + if (++sprite->tCounter >= 120) DestroySprite(sprite); } +#undef tScrollXCounter +#undef tScrollXDir +#undef tCounter + //------------------------------------------------------------------------------ // Unused function. -- cgit v1.2.3 From 02651f6177032baad32efdddeee54a9af624812b Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Tue, 2 Apr 2019 19:18:36 -0700 Subject: Attempt to decompile menu_specialized. 2 NONMATCHING --- src/menu_specialized.c | 437 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 436 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c index f21f4e51a..c8c46fbc1 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -28,6 +28,7 @@ #include "gba/io_reg.h" extern const struct CompressedSpriteSheet gMonFrontPicTable[]; +extern const u8 *gUnknown_08625B54[]; EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; @@ -259,7 +260,7 @@ static void sub_81D1D44(u8 windowId, s32 itemId, u8 y) u8 buffer[30]; u16 length; - if (itemId == LIST_CANCEL) + if (itemId == LIST_CANCEL) return; StringCopy(buffer, gSaveBlock1Ptr->mail[6 + itemId].playerName); @@ -1639,3 +1640,437 @@ static void sub_81D35E8(struct Sprite *sprite) id = gSprites[id].data[5]; } } + + +#ifdef NONMATCHING +void DrawLevelUpWindowPg1(u8 arg0, u16 *statStoreLocation1, u16 *statStoreLocation2, u8 arg3, u8 arg4, u8 arg5) +{ + s32 i; + s16 array[6]; + u8 *text; + u8 *text2; + s16 *ptr; + u8 something[14]; + s32 var; + u8 var2; + s32 var3; + + + + + + FillWindowPixelBuffer(arg0, arg3 * 16 | arg3); + + + array[0] = statStoreLocation2[0] - statStoreLocation1[0]; + array[1] = statStoreLocation2[1] - statStoreLocation1[1]; + array[2] = statStoreLocation2[2] - statStoreLocation1[2]; + array[3] = statStoreLocation2[4] - statStoreLocation1[4]; + array[4] = statStoreLocation2[5] - statStoreLocation1[5]; + array[5] = statStoreLocation2[3] - statStoreLocation1[3]; + + + for(i = 0; i < 6; i++) + { + AddTextPrinterParameterized3(arg0, 1, 0, 15 * i, &arg3, TEXT_SPEED_FF, gUnknown_08625B54[i]); + ptr = &array[i]; + text = (u8 *) gText_Dash; + + if(*ptr >= 0) + { + text = (u8 *) gText_UnkCtrlF904; + } + + StringCopy(text2, text); + AddTextPrinterParameterized3(arg0, 1, 56, 15 * i, &arg3, TEXT_SPEED_FF, text2); + var3 = *ptr; + var = var3; + + if(var3 < 0) + { + var = -var3; + } + + var2 = 12; + + if(var <= 9) + { + var2 = 18; + } + + if(var3 < 0) + { + var3 = -var3; + } + + ConvertIntToDecimalStringN(text2, var3, 0, 2); + AddTextPrinterParameterized3(arg0, 1, var2 + 56, 15 * i, &arg3, TEXT_SPEED_FF, text2); + } +} +#else +NAKED +void DrawLevelUpWindowPg1(u16 arg0, u16 *statStoreLocation1, u16 *statStoreLocation2, u8 arg3, u8 arg4, u8 arg5) +{ + asm(".syntax unified\n\ +push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x2C\n\ + mov r8, r0\n\ + adds r6, r1, 0\n\ + adds r5, r2, 0\n\ + adds r4, r3, 0\n\ + ldr r3, [sp, 0x4C]\n\ + ldr r0, [sp, 0x50]\n\ + mov r9, r0\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + lsls r3, 24\n\ + lsrs r3, 24\n\ + mov r1, r9\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r9, r1\n\ + mov r0, r8\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + lsls r1, r4, 4\n\ + orrs r1, r4\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + str r3, [sp, 0x28]\n\ + bl FillWindowPixelBuffer\n\ + add r2, sp, 0xC\n\ + ldrh r0, [r5]\n\ + ldrh r1, [r6]\n\ + subs r0, r1\n\ + strh r0, [r2]\n\ + ldrh r0, [r5, 0x2]\n\ + ldrh r1, [r6, 0x2]\n\ + subs r0, r1\n\ + strh r0, [r2, 0x2]\n\ + ldrh r0, [r5, 0x4]\n\ + ldrh r1, [r6, 0x4]\n\ + subs r0, r1\n\ + strh r0, [r2, 0x4]\n\ + ldrh r0, [r5, 0x8]\n\ + ldrh r1, [r6, 0x8]\n\ + subs r0, r1\n\ + strh r0, [r2, 0x6]\n\ + ldrh r0, [r5, 0xA]\n\ + ldrh r1, [r6, 0xA]\n\ + subs r0, r1\n\ + strh r0, [r2, 0x8]\n\ + ldrh r0, [r5, 0x6]\n\ + ldrh r1, [r6, 0x6]\n\ + subs r0, r1\n\ + strh r0, [r2, 0xA]\n\ + add r0, sp, 0x24\n\ + strb r4, [r0]\n\ + ldr r3, [sp, 0x28]\n\ + strb r3, [r0, 0x1]\n\ + mov r1, r9\n\ + strb r1, [r0, 0x2]\n\ + movs r7, 0\n\ + mov r10, r0\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + mov r9, r0\n\ + add r6, sp, 0x18\n\ +_081D36CA:\n\ + lsls r0, r7, 4\n\ + subs r0, r7\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + mov r1, r10\n\ + str r1, [sp]\n\ + mov r0, r9\n\ + str r0, [sp, 0x4]\n\ + ldr r1, =gUnknown_08625B54\n\ + lsls r0, r7, 2\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + str r0, [sp, 0x8]\n\ + mov r0, r8\n\ + movs r1, 0x1\n\ + movs r2, 0\n\ + adds r3, r5, 0\n\ + bl AddTextPrinterParameterized3\n\ + lsls r0, r7, 1\n\ + mov r4, sp\n\ + adds r4, r0\n\ + adds r4, 0xC\n\ + movs r1, 0\n\ + ldrsh r0, [r4, r1]\n\ + ldr r1, =gText_Dash\n\ + cmp r0, 0\n\ + blt _081D3704\n\ + ldr r1, =gText_UnkCtrlF904\n\ +_081D3704:\n\ + adds r0, r6, 0\n\ + bl StringCopy\n\ + mov r0, r10\n\ + str r0, [sp]\n\ + mov r1, r9\n\ + str r1, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + mov r0, r8\n\ + movs r1, 0x1\n\ + movs r2, 0x38\n\ + adds r3, r5, 0\n\ + bl AddTextPrinterParameterized3\n\ + movs r0, 0\n\ + ldrsh r1, [r4, r0]\n\ + adds r0, r1, 0\n\ + cmp r1, 0\n\ + bge _081D372C\n\ + negs r0, r1\n\ +_081D372C:\n\ + movs r4, 0xC\n\ + cmp r0, 0x9\n\ + bgt _081D3734\n\ + movs r4, 0x12\n\ +_081D3734:\n\ + cmp r1, 0\n\ + bge _081D373A\n\ + negs r1, r1\n\ +_081D373A:\n\ + adds r0, r6, 0\n\ + movs r2, 0\n\ + movs r3, 0x2\n\ + bl ConvertIntToDecimalStringN\n\ + adds r2, r4, 0\n\ + adds r2, 0x38\n\ + mov r1, r10\n\ + str r1, [sp]\n\ + mov r0, r9\n\ + str r0, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + mov r0, r8\n\ + movs r1, 0x1\n\ + adds r3, r5, 0\n\ + bl AddTextPrinterParameterized3\n\ + adds r0, r7, 0x1\n\ + lsls r0, 16\n\ + lsrs r7, r0, 16\n\ + cmp r7, 0x5\n\ + bls _081D36CA\n\ + add sp, 0x2C\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +} +#endif // NONMATCHING + +#ifdef NONMATCHING +void DrawLevelUpWindowPg2(u16 arg0, u16* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4) +{ + s32 i; + s32 var; + s32 var2; + u8 text; + s16 array[6]; + u8 *something; + u8 some; + FillWindowPixelBuffer(arg0, arg2 * 16 | arg2); + array[0] = statStoreLocation1[0]; + array[1] = statStoreLocation1[1]; + array[2] = statStoreLocation1[2]; + array[3] = statStoreLocation1[4]; + array[4] = statStoreLocation1[5]; + array[5] = statStoreLocation1[3]; + for(i = 0; i <= 5; i++) + { + var = array[i]; + var2 = 3; + if(var <= 99) + { + var2 = 1; + if(var > 9) + { + var2 = 2; + } + } + something = ConvertIntToDecimalStringN(&text, array[i], 0, var2); + some = (((4 - *something) * 2) + *something) * 2; + AddTextPrinterParameterized3(arg0, 1, 0, 15 * i, &arg2, TEXT_SPEED_FF, gUnknown_08625B54[i]); + AddTextPrinterParameterized3(arg0, 1, some + 56, 15 * i, &arg2, TEXT_SPEED_FF, &text); + } +} +#else +NAKED +void DrawLevelUpWindowPg2(u16 arg0, u16* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x2C\n\ + mov r8, r0\n\ + adds r5, r1, 0\n\ + adds r4, r2, 0\n\ + adds r6, r3, 0\n\ + ldr r2, [sp, 0x4C]\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + lsls r6, 24\n\ + lsrs r6, 24\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + lsls r1, r4, 4\n\ + orrs r1, r4\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + str r2, [sp, 0x28]\n\ + bl FillWindowPixelBuffer\n\ + add r1, sp, 0xC\n\ + ldrh r0, [r5]\n\ + strh r0, [r1]\n\ + ldrh r0, [r5, 0x2]\n\ + strh r0, [r1, 0x2]\n\ + ldrh r0, [r5, 0x4]\n\ + strh r0, [r1, 0x4]\n\ + ldrh r0, [r5, 0x8]\n\ + strh r0, [r1, 0x6]\n\ + ldrh r0, [r5, 0xA]\n\ + strh r0, [r1, 0x8]\n\ + ldrh r0, [r5, 0x6]\n\ + strh r0, [r1, 0xA]\n\ + add r0, sp, 0x24\n\ + strb r4, [r0]\n\ + strb r6, [r0, 0x1]\n\ + ldr r2, [sp, 0x28]\n\ + strb r2, [r0, 0x2]\n\ + movs r6, 0\n\ + add r1, sp, 0x18\n\ + mov r9, r1\n\ + mov r7, r8\n\ + mov r10, r0\n\ + movs r2, 0x1\n\ + negs r2, r2\n\ + mov r8, r2\n\ +_081D37EE:\n\ + lsls r1, r6, 1\n\ + mov r0, sp\n\ + adds r0, r1\n\ + adds r0, 0xC\n\ + movs r2, 0\n\ + ldrsh r0, [r0, r2]\n\ + movs r4, 0x3\n\ + cmp r0, 0x63\n\ + bgt _081D3808\n\ + movs r4, 0x1\n\ + cmp r0, 0x9\n\ + ble _081D3808\n\ + movs r4, 0x2\n\ +_081D3808:\n\ + mov r0, sp\n\ + adds r0, r1\n\ + adds r0, 0xC\n\ + movs r2, 0\n\ + ldrsh r1, [r0, r2]\n\ + mov r0, r9\n\ + movs r2, 0\n\ + adds r3, r4, 0\n\ + bl ConvertIntToDecimalStringN\n\ + movs r0, 0x4\n\ + subs r0, r4\n\ + lsls r4, r0, 1\n\ + adds r4, r0\n\ + lsls r4, 17\n\ + lsrs r4, 16\n\ + lsls r5, r6, 4\n\ + subs r5, r6\n\ + lsls r5, 24\n\ + lsrs r5, 24\n\ + mov r0, r10\n\ + str r0, [sp]\n\ + mov r1, r8\n\ + str r1, [sp, 0x4]\n\ + ldr r1, =gUnknown_08625B54\n\ + lsls r0, r6, 2\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + str r0, [sp, 0x8]\n\ + adds r0, r7, 0\n\ + movs r1, 0x1\n\ + movs r2, 0\n\ + adds r3, r5, 0\n\ + bl AddTextPrinterParameterized3\n\ + adds r4, 0x38\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + mov r2, r10\n\ + str r2, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + mov r1, r9\n\ + str r1, [sp, 0x8]\n\ + adds r0, r7, 0\n\ + movs r1, 0x1\n\ + adds r2, r4, 0\n\ + adds r3, r5, 0\n\ + bl AddTextPrinterParameterized3\n\ + adds r0, r6, 0x1\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + cmp r6, 0x5\n\ + bls _081D37EE\n\ + add sp, 0x2C\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +} +#endif // NONMATCHING + +void GetMonLevelUpWindowStats(struct Pokemon* mon, u16* statStoreLocation) +{ + statStoreLocation[0] = GetMonData(mon, MON_DATA_MAX_HP); + statStoreLocation[1] = GetMonData(mon, MON_DATA_ATK); + statStoreLocation[2] = GetMonData(mon, MON_DATA_DEF); + statStoreLocation[3] = GetMonData(mon, MON_DATA_SPEED); + statStoreLocation[4] = GetMonData(mon, MON_DATA_SPATK); + statStoreLocation[5] = GetMonData(mon, MON_DATA_SPDEF); +} + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 438521bf21e24afc15adf871f154d5d7c361408a Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 3 Apr 2019 22:00:15 +0200 Subject: Get rid of redundant cast --- src/pokemon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/pokemon.c b/src/pokemon.c index 984c484a2..a75701cb0 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5463,7 +5463,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem) if (gEvolutionTable[species][i].param == heldItem) { heldItem = 0; - SetMonData(mon, MON_DATA_HELD_ITEM, (u8 *)&heldItem); + SetMonData(mon, MON_DATA_HELD_ITEM, &heldItem); targetSpecies = gEvolutionTable[species][i].targetSpecies; } break; -- cgit v1.2.3 From a455d98385cdeadc65ee3df992fc8d6be36495b3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Apr 2019 08:43:16 -0400 Subject: start porting mevent_server from firered --- src/mevent_server.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/mevent_server.c (limited to 'src') diff --git a/src/mevent_server.c b/src/mevent_server.c new file mode 100644 index 000000000..ea5a18626 --- /dev/null +++ b/src/mevent_server.c @@ -0,0 +1,56 @@ +#include "global.h" +#include "alloc.h" +#include "mevent.h" +#include "mevent_server.h" +#include "mevent_server_helpers.h" + +EWRAM_DATA struct mevent_srv_common * s_mevent_srv_common_ptr = NULL; +EWRAM_DATA struct mevent_srv_ish * s_mevent_srv_ish_ptr = NULL; + +static void mevent_srv_init_common(struct mevent_srv_common *, const void *, u32, u32); +u32 mevent_srv_exec_common(struct mevent_srv_common *); +u32 mevent_srv_free_resources(struct mevent_srv_common *); + +extern const struct mevent_cmd s_mevent_wonder_news[]; +extern const struct mevent_cmd s_mevent_wonder_card[]; + +void mevent_srv_init_wnews(void) +{ + s_mevent_srv_common_ptr = AllocZeroed(sizeof(struct mevent_srv_common)); + mevent_srv_init_common(s_mevent_srv_common_ptr, s_mevent_wonder_news, 0, 1); +} + +void mevent_srv_new_wcard(void) +{ + s_mevent_srv_common_ptr = AllocZeroed(sizeof(struct mevent_srv_common)); + mevent_srv_init_common(s_mevent_srv_common_ptr, s_mevent_wonder_card, 0, 1); +} + +u32 mevent_srv_common_do_exec(u16 * a0) +{ + u32 result; + if (s_mevent_srv_common_ptr == NULL) + return 3; + result = mevent_srv_exec_common(s_mevent_srv_common_ptr); + if (result == 3) + { + *a0 = s_mevent_srv_common_ptr->param; + mevent_srv_free_resources(s_mevent_srv_common_ptr); + Free(s_mevent_srv_common_ptr); + s_mevent_srv_common_ptr = NULL; + } + return result; +} + +static void mevent_srv_init_common(struct mevent_srv_common * svr, const void * cmdBuffer, u32 sendPlayerNo, u32 recvPlayerNo) +{ + svr->unk_00 = 0; + svr->mainseqno = 0; + svr->mevent_32e0 = AllocZeroed(sizeof(struct MEventBuffer_32E0_Sub)); + svr->mevent_3120 = AllocZeroed(sizeof(struct MEventBuffer_3120_Sub)); + svr->recvBuffer = AllocZeroed(ME_SEND_BUF_SIZE); + svr->mevent_unk1442cc = AllocZeroed(sizeof(struct MEventStruct_Unk1442CC)); + svr->cmdBuffer = cmdBuffer; + svr->cmdidx = 0; + mevent_srv_sub_init(&svr->manager, sendPlayerNo, recvPlayerNo); +} -- cgit v1.2.3 From dabd1f6177ee6e2f65553d3fe43efcf023e0c3fe Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Apr 2019 10:54:51 -0400 Subject: finish mevent_server.s --- src/mevent_server.c | 235 +++++++++++++++++++++++++++++++++++++++++++- src/mevent_server_helpers.c | 1 + src/mevent_server_ish.c | 7 ++ 3 files changed, 240 insertions(+), 3 deletions(-) create mode 100644 src/mevent_server_helpers.c create mode 100644 src/mevent_server_ish.c (limited to 'src') diff --git a/src/mevent_server.c b/src/mevent_server.c index ea5a18626..6a129ee28 100644 --- a/src/mevent_server.c +++ b/src/mevent_server.c @@ -1,15 +1,15 @@ #include "global.h" #include "alloc.h" +#include "script.h" #include "mevent.h" #include "mevent_server.h" #include "mevent_server_helpers.h" EWRAM_DATA struct mevent_srv_common * s_mevent_srv_common_ptr = NULL; -EWRAM_DATA struct mevent_srv_ish * s_mevent_srv_ish_ptr = NULL; static void mevent_srv_init_common(struct mevent_srv_common *, const void *, u32, u32); -u32 mevent_srv_exec_common(struct mevent_srv_common *); -u32 mevent_srv_free_resources(struct mevent_srv_common *); +static void mevent_srv_free_resources(struct mevent_srv_common *); +static u32 mevent_srv_exec_common(struct mevent_srv_common *); extern const struct mevent_cmd s_mevent_wonder_news[]; extern const struct mevent_cmd s_mevent_wonder_card[]; @@ -54,3 +54,232 @@ static void mevent_srv_init_common(struct mevent_srv_common * svr, const void * svr->cmdidx = 0; mevent_srv_sub_init(&svr->manager, sendPlayerNo, recvPlayerNo); } + +static void mevent_srv_free_resources(struct mevent_srv_common * svr) +{ + Free(svr->mevent_32e0); + Free(svr->mevent_3120); + Free(svr->recvBuffer); + Free(svr->mevent_unk1442cc); +} + +void mevent_srv_common_init_send(struct mevent_srv_common * svr, u32 ident, const void * src, u32 size) +{ + AGB_ASSERT(size <= ME_SEND_BUF_SIZE); + mevent_srv_sub_init_send(&svr->manager, ident, src, size); +} + +static void * mevent_first_if_not_null_else_second(void * a0, void * a1) +{ + if (a0 != NULL) + return a0; + else + return a1; +} + +static u32 mevent_compare_pointers(void * a0, void * a1) +{ + if (a1 < a0) + return 0; + else if (a1 == a0) + return 1; + else + return 2; +} + +static u32 common_mainseq_0(struct mevent_srv_common * svr) +{ + // start + svr->mainseqno = 4; + return 0; +} + +static u32 common_mainseq_1(struct mevent_srv_common * svr) +{ + // done + return 3; +} + +static u32 common_mainseq_2(struct mevent_srv_common * svr) +{ + // do recv + if (mevent_srv_sub_recv(&svr->manager)) + svr->mainseqno = 4; + return 1; +} + +static u32 common_mainseq_3(struct mevent_srv_common * svr) +{ + // do send + if (mevent_srv_sub_send(&svr->manager)) + svr->mainseqno = 4; + return 1; +} + +static u32 common_mainseq_4(struct mevent_srv_common * svr) +{ + // process command + const struct mevent_cmd * cmd = &svr->cmdBuffer[svr->cmdidx]; + void * ptr; + svr->cmdidx++; + + switch (cmd->instr) + { + case 0: + AGB_ASSERT(cmd->parameter == NULL); + svr->mainseqno = 1; + svr->param = cmd->flag; + break; + case 1: + svr->mainseqno = 3; + break; + case 2: + AGB_ASSERT(cmd->parameter == NULL); + mevent_srv_sub_init_recv(&svr->manager, cmd->flag, svr->recvBuffer); + svr->mainseqno = 2; + break; + case 3: + AGB_ASSERT(cmd->flag == FALSE); + svr->cmdidx = 0; + svr->cmdBuffer = cmd->parameter; + break; + case 5: + AGB_ASSERT(cmd->flag == FALSE); + AGB_ASSERT(cmd->parameter == NULL); + memcpy(svr->mevent_unk1442cc, svr->recvBuffer, sizeof(struct MEventStruct_Unk1442CC)); + break; + case 6: + AGB_ASSERT(cmd->flag == FALSE); + AGB_ASSERT(cmd->parameter == NULL); + svr->param = sub_801B6A0(svr->mevent_unk1442cc, FALSE); + break; + case 30: + AGB_ASSERT(cmd->flag == FALSE); + AGB_ASSERT(cmd->parameter == NULL); + svr->param = sub_801B6A0(svr->mevent_unk1442cc, TRUE); + break; + case 4: + if (svr->param == cmd->flag) + { + svr->cmdidx = 0; + svr->cmdBuffer = cmd->parameter; + } + break; + case 7: + AGB_ASSERT(cmd->flag == FALSE); + ptr = mevent_first_if_not_null_else_second(cmd->parameter, svr->mevent_32e0); + svr->param = sub_801B6EC(ptr, svr->mevent_unk1442cc, ptr); + break; + case 8: + AGB_ASSERT(cmd->flag == FALSE); + AGB_ASSERT(cmd->parameter == NULL); + svr->param = *(u32 *)svr->recvBuffer; + break; + case 9: + AGB_ASSERT(cmd->flag == FALSE); + ptr = mevent_first_if_not_null_else_second(cmd->parameter, &svr->sendWord); + svr->param = sub_801B708(ptr, svr->mevent_unk1442cc, ptr); + break; + case 10: + AGB_ASSERT(cmd->parameter == NULL); + svr->param = sub_801B784(svr->mevent_unk1442cc, cmd->flag); + break; + case 11: + AGB_ASSERT(cmd->flag == FALSE); + svr->param = sub_801B748(svr->mevent_unk1442cc, cmd->parameter); + break; + case 12: + AGB_ASSERT(cmd->flag == FALSE); + svr->param = mevent_compare_pointers(cmd->parameter, *(void **)svr->recvBuffer); + break; + case 14: + AGB_ASSERT(cmd->flag == FALSE); + mevent_srv_common_init_send(svr, 0x17, mevent_first_if_not_null_else_second(cmd->parameter, svr->mevent_3120), sizeof(struct MEventBuffer_3120_Sub)); + break; + case 13: + AGB_ASSERT(cmd->flag == FALSE); + mevent_srv_common_init_send(svr, 0x16, mevent_first_if_not_null_else_second(cmd->parameter, svr->mevent_32e0), sizeof(struct MEventBuffer_32E0_Sub)); + break; + case 16: + AGB_ASSERT(cmd->flag == FALSE); + mevent_srv_common_init_send(svr, 0x18, mevent_first_if_not_null_else_second(cmd->parameter, &svr->sendWord), 4); + break; + case 15: + if (cmd->parameter == NULL) + mevent_srv_common_init_send(svr, 0x19, svr->sendBuffer1, svr->sendBuffer1Size); + else + mevent_srv_common_init_send(svr, 0x19, cmd->parameter, cmd->flag); + break; + case 18: + if (cmd->parameter == NULL) + mevent_srv_common_init_send(svr, 0x10, svr->sendBuffer2, svr->sendBuffer2Size); + else + mevent_srv_common_init_send(svr, 0x10, cmd->parameter, cmd->flag); + break; + case 19: + AGB_ASSERT(cmd->flag == FALSE); + mevent_srv_common_init_send(svr, 0x1a, cmd->parameter, 188); + break; + case 20: + mevent_srv_common_init_send(svr, 0x15, cmd->parameter, cmd->flag); + break; + case 17: + mevent_srv_common_init_send(svr, 0x1c, cmd->parameter, cmd->flag); + break; + case 22: + AGB_ASSERT(cmd->flag == FALSE); + memcpy(svr->mevent_32e0, cmd->parameter, 332); + break; + case 23: + AGB_ASSERT(cmd->flag == FALSE); + memcpy(svr->mevent_3120, cmd->parameter, 444); + break; + case 21: + AGB_ASSERT(cmd->flag == FALSE); + svr->sendWord = *(u32 *)cmd->parameter; + break; + case 24: + svr->sendBuffer1 = cmd->parameter; + svr->sendBuffer1Size = cmd->flag; + break; + case 25: + svr->sendBuffer2 = cmd->parameter; + svr->sendBuffer2Size = cmd->flag; + break; + case 26: + AGB_ASSERT(cmd->flag == FALSE && cmd->parameter == NULL); + memcpy(svr->mevent_32e0, sav1_get_mevent_buffer_1(), 332); + sub_801B3C0(svr->mevent_32e0); + break; + case 27: + AGB_ASSERT(cmd->flag == FALSE && cmd->parameter == NULL); + memcpy(svr->mevent_3120, sav1_get_mevent_buffer_0(), 444); + break; + case 28: + AGB_ASSERT(cmd->flag == FALSE && cmd->parameter == NULL); + svr->sendBuffer1 = sub_8099244(); + break; + case 29: + mevent_srv_common_init_send(svr, 0x1b, cmd->parameter, cmd->flag); + break; + } + + return 1; +} + +static u32 (*const func_tbl[])(struct mevent_srv_common *) = { + common_mainseq_0, + common_mainseq_1, + common_mainseq_2, + common_mainseq_3, + common_mainseq_4 +}; + +static u32 mevent_srv_exec_common(struct mevent_srv_common * svr) +{ + u32 response; + AGB_ASSERT(svr->mainseqno < NELEMS(func_tbl)); + response = func_tbl[svr->mainseqno](svr); + AGB_ASSERT(svr->mainseqno < NELEMS(func_tbl)); + return response; +} diff --git a/src/mevent_server_helpers.c b/src/mevent_server_helpers.c new file mode 100644 index 000000000..dc4f98a6e --- /dev/null +++ b/src/mevent_server_helpers.c @@ -0,0 +1 @@ +#include "global.h" diff --git a/src/mevent_server_ish.c b/src/mevent_server_ish.c new file mode 100644 index 000000000..30793cf5c --- /dev/null +++ b/src/mevent_server_ish.c @@ -0,0 +1,7 @@ +#include "global.h" +#include "alloc.h" +#include "mevent.h" +#include "mevent_server.h" +#include "mevent_server_helpers.h" + +EWRAM_DATA struct mevent_srv_ish * s_mevent_srv_ish_ptr = NULL; -- cgit v1.2.3 From 03badd9c40de5d50562376d39348fb5c85f8340b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Apr 2019 11:43:29 -0400 Subject: mevent_server_ish --- src/mevent_server_ish.c | 290 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 288 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mevent_server_ish.c b/src/mevent_server_ish.c index 30793cf5c..2b310c981 100644 --- a/src/mevent_server_ish.c +++ b/src/mevent_server_ish.c @@ -1,7 +1,293 @@ #include "global.h" #include "alloc.h" +#include "decompress.h" +#include "overworld.h" +#include "script.h" +#include "battle_tower.h" #include "mevent.h" -#include "mevent_server.h" -#include "mevent_server_helpers.h" +#include "mystery_event_script.h" +#include "mevent_server_ish.h" EWRAM_DATA struct mevent_srv_ish * s_mevent_srv_ish_ptr = NULL; + +static void mevent_srv_ish_init(struct mevent_srv_ish *, u32, u32); +static u32 mevent_srv_ish_exec(struct mevent_srv_ish *); +static void mevent_srv_ish_free_resources(struct mevent_srv_ish *); + +extern const u8 gUnknown_082F2598[]; +extern const struct mevent_cmd gUnknown_8468B6C[]; +extern const struct mevent_cmd gUnknown_8468BCC[]; + +void mevent_srv_ish_do_init(u32 arg) +{ + s_mevent_srv_ish_ptr = AllocZeroed(sizeof(struct mevent_srv_ish)); + mevent_srv_ish_init(s_mevent_srv_ish_ptr, 1, 0); + s_mevent_srv_ish_ptr->unk_4C = arg; +} + +u32 mevent_srv_ish_do_exec(u16 * a0) +{ + u32 result; + if (s_mevent_srv_ish_ptr == NULL) + return 6; + result = mevent_srv_ish_exec(s_mevent_srv_ish_ptr); + if (result == 6) + { + *a0 = s_mevent_srv_ish_ptr->param; + mevent_srv_ish_free_resources(s_mevent_srv_ish_ptr); + Free(s_mevent_srv_ish_ptr); + s_mevent_srv_ish_ptr = NULL; + } + return result; +} + +void mevent_srv_ish_inc_flag(void) +{ + s_mevent_srv_ish_ptr->flag++; +} + +void * mevent_srv_ish_get_buffer(void) +{ + return s_mevent_srv_ish_ptr->buffer; +} + +void mevent_srv_ish_set_param(u32 a0) +{ + s_mevent_srv_ish_ptr->param = a0; +} + +static void mevent_srv_ish_init(struct mevent_srv_ish * svr, u32 sendPlayerNo, u32 recvPlayerNo) +{ + svr->unk_00 = 0; + svr->mainseqno = 0; + svr->flag = 0; + svr->sendBuffer = AllocZeroed(ME_SEND_BUF_SIZE); + svr->recvBuffer = AllocZeroed(ME_SEND_BUF_SIZE); + svr->cmdBuffer = AllocZeroed(ME_SEND_BUF_SIZE); + svr->buffer = AllocZeroed(0x40); + mevent_srv_sub_init(&svr->manager, sendPlayerNo, recvPlayerNo); +} + +static void mevent_srv_ish_free_resources(struct mevent_srv_ish * svr) +{ + Free(svr->sendBuffer); + Free(svr->recvBuffer); + Free(svr->cmdBuffer); + Free(svr->buffer); +} + +static void mevent_srv_ish_jmp_buffer(struct mevent_srv_ish * svr) +{ + memcpy(svr->cmdBuffer, svr->recvBuffer, ME_SEND_BUF_SIZE); + svr->cmdidx = 0; +} + +static void mevent_srv_ish_send_word(struct mevent_srv_ish * svr, u32 ident, u32 word) +{ + CpuFill32(0, svr->sendBuffer, ME_SEND_BUF_SIZE); + *(u32 *)svr->sendBuffer = word; + mevent_srv_sub_init_send(&svr->manager, ident, svr->sendBuffer, sizeof(u32)); +} + +static u32 ish_mainseq_0(struct mevent_srv_ish * svr) +{ + // init + memcpy(svr->cmdBuffer, gUnknown_082F2598, ME_SEND_BUF_SIZE); + svr->cmdidx = 0; + svr->mainseqno = 4; + svr->flag = 0; + return 0; +} + +static u32 ish_mainseq_1(struct mevent_srv_ish * svr) +{ + // done + return 6; +} + + +static u32 ish_mainseq_2(struct mevent_srv_ish * svr) +{ + // do recv + if (mevent_srv_sub_recv(&svr->manager)) + { + svr->mainseqno = 4; + svr->flag = 0; + } + return 1; +} + +static u32 ish_mainseq_3(struct mevent_srv_ish * svr) +{ + // do send + if (mevent_srv_sub_send(&svr->manager)) + { + svr->mainseqno = 4; + svr->flag = 0; + } + return 1; +} + +static u32 ish_mainseq_4(struct mevent_srv_ish * svr) +{ + // process command + struct mevent_cmd_ish * cmd = &svr->cmdBuffer[svr->cmdidx]; + ++svr->cmdidx; + switch (cmd->instr) + { + case 0: + break; + case 1: + svr->param = cmd->parameter; + svr->mainseqno = 1; + svr->flag = 0; + break; + case 2: + mevent_srv_sub_init_recv(&svr->manager, cmd->parameter, svr->recvBuffer); + svr->mainseqno = 2; + svr->flag = 0; + break; + case 3: + svr->mainseqno = 3; + svr->flag = 0; + break; + case 20: + mevent_srv_sub_init_send(&svr->manager, 0x14, svr->sendBuffer, 0); + svr->mainseqno = 3; + svr->flag = 0; + break; + case 19: + mevent_srv_ish_send_word(svr, 0x12, GetGameStat(cmd->parameter)); + svr->mainseqno = 3; + svr->flag = 0; + break; + case 6: + if (svr->param == 0) + mevent_srv_ish_jmp_buffer(svr); + break; + case 7: + if (svr->param == 1) + mevent_srv_ish_jmp_buffer(svr); + break; + case 4: + mevent_srv_ish_jmp_buffer(svr); + break; + case 5: + memcpy(svr->buffer, svr->recvBuffer, 0x40); + svr->mainseqno = 5; + svr->flag = 0; + return 2; + case 11: + memcpy(svr->buffer, svr->recvBuffer, 0x40); + svr->mainseqno = 5; + svr->flag = 0; + return 3; + case 12: + memcpy(svr->buffer, svr->recvBuffer, 0x40); + svr->mainseqno = 5; + svr->flag = 0; + return 5; + case 13: + svr->mainseqno = 5; + svr->flag = 0; + return 4; + case 8: + sub_801B580(svr->sendBuffer, svr->unk_4C); + mevent_srv_sub_init_send(&svr->manager, 0x11, svr->sendBuffer, sizeof(struct MEventStruct_Unk1442CC)); + break; + case 14: + mevent_srv_ish_send_word(svr, 0x13, svr->param); + break; + case 10: + sub_801B21C(svr->recvBuffer); + break; + case 9: + if (!sub_801B1A4(svr->recvBuffer)) + { + sub_801B078(svr->recvBuffer); + mevent_srv_ish_send_word(svr, 0x13, 0); + } + else + mevent_srv_ish_send_word(svr, 0x13, 1); + break; + case 15: + svr->mainseqno = 6; + svr->flag = 0; + break; + case 16: + sub_801B508(svr->recvBuffer); + break; + case 17: + sub_80992A0(svr->recvBuffer, 1000); + break; + case 18: + memcpy(&gSaveBlock2Ptr->frontier.ereaderTrainer, svr->recvBuffer, 0xbc); + ValidateEReaderTrainer(); + break; + case 21: + memcpy(gDecompressionBuffer, svr->recvBuffer, ME_SEND_BUF_SIZE); + svr->mainseqno = 7; + svr->flag = 0; + break; + } + + return 1; +} + +static u32 ish_mainseq_5(struct mevent_srv_ish * svr) +{ + // wait flag + if (svr->flag) + { + svr->mainseqno = 4; + svr->flag = 0; + } + return 1; +} + +static u32 ish_mainseq_6(struct mevent_srv_ish * svr) +{ + // ??? + switch (svr->flag) + { + case 0: + sub_8153870(svr->recvBuffer); + ++svr->flag; + break; + case 1: + if (!sub_8153884(&svr->param)) + { + svr->mainseqno = 4; + svr->flag = 0; + } + break; + } + return 1; +} + +static u32 ish_mainseq_7(struct mevent_srv_ish * svr) +{ + // exec arbitrary code + u32 (*func)(u32 *, struct SaveBlock2 *, struct SaveBlock1 *) = (void *)gDecompressionBuffer; + if (func(&svr->param, gSaveBlock2Ptr, gSaveBlock1Ptr) == 1) + { + svr->mainseqno = 4; + svr->flag = 0; + } + return 1; +} + +static u32 mevent_srv_ish_exec(struct mevent_srv_ish * svr) +{ + u32 (*funcs[])(struct mevent_srv_ish *) = { + ish_mainseq_0, + ish_mainseq_1, + ish_mainseq_2, + ish_mainseq_3, + ish_mainseq_4, + ish_mainseq_5, + ish_mainseq_6, + ish_mainseq_7 + }; + return funcs[svr->mainseqno](svr); +} -- cgit v1.2.3 From 6c12d154e7a6a0bc60c988497b3daa4f8126a5b2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Apr 2019 12:22:39 -0400 Subject: Reformat mevent server and client scripts --- src/mevent_server_helpers.c | 210 ++++++++++++++++++++++++++++++++++++++++++++ src/mevent_server_ish.c | 4 +- src/util.c | 4 +- 3 files changed, 213 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/mevent_server_helpers.c b/src/mevent_server_helpers.c index dc4f98a6e..af14b514c 100644 --- a/src/mevent_server_helpers.c +++ b/src/mevent_server_helpers.c @@ -1 +1,211 @@ #include "global.h" +#include "alloc.h" +#include "decompress.h" +#include "util.h" +#include "link.h" +#include "link_rfu.h" +#include "overworld.h" +#include "script.h" +#include "battle_tower.h" +#include "mystery_event_script.h" +#include "mevent.h" +#include "mevent_server_helpers.h" + +static u32 mevent_receive_func(struct mevent_srv_sub *); +static u32 mevent_send_func(struct mevent_srv_sub *); + +u32 mevent_srv_sub_recv(struct mevent_srv_sub * svr) +{ + return svr->recvFunc(svr); +} + +u32 mevent_srv_sub_send(struct mevent_srv_sub * svr) +{ + return svr->sendFunc(svr); +} + +void mevent_srv_sub_init(struct mevent_srv_sub * svr, u32 sendPlayerNo, u32 recvPlayerNo) +{ + svr->sendPlayerNo = sendPlayerNo; + svr->recvPlayerNo = recvPlayerNo; + svr->seqno = 0; + svr->sendCRC = 0; + svr->sendSize = 0; + svr->sendCounter = 0; + svr->recvCRC = 0; + svr->recvSize = 0; + svr->recvCounter = 0; + svr->sendBfr = NULL; + svr->recvBfr = NULL; + svr->sendFunc = mevent_send_func; + svr->recvFunc = mevent_receive_func; +} + +void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void * src, u32 size) +{ + svr->seqno = 0; + svr->sendIdent = ident; + svr->sendCounter = 0; + svr->sendCRC = 0; + if (size != 0) + svr->sendSize = size; + else + svr->sendSize = ME_SEND_BUF_SIZE; + svr->sendBfr = src; +} + +void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void * dest) +{ + svr->seqno = 0; + svr->recvIdent = ident; + svr->recvCounter = 0; + svr->recvCRC = 0; + svr->recvSize = 0; + svr->recvBfr = dest; +} + +static void mevent_recv_block(u32 recv_idx, void * dest, size_t size) +{ + memcpy(dest, gBlockRecvBuffer[recv_idx], size); +} + +static bool32 mevent_has_received(u32 recv_idx) +{ + if ((GetBlockReceivedStatus() >> recv_idx) & 1) + return TRUE; + else + return FALSE; +} + +static void mevent_reset_recv(u32 recv_idx) +{ + ResetBlockReceivedFlag(recv_idx); +} + +static bool32 mevent_receive_func(struct mevent_srv_sub * svr) +{ + struct send_recv_header header; + + switch (svr->seqno) + { + case 0: + if (mevent_has_received(svr->recvPlayerNo)) + { + mevent_recv_block(svr->recvPlayerNo, &header, sizeof(header)); + svr->recvSize = header.size; + svr->recvCRC = header.crc; + if (svr->recvSize > ME_SEND_BUF_SIZE) + { + sub_8010198(); + return FALSE; + } + else if (svr->recvIdent != header.ident) + { + sub_8010198(); + return FALSE; + } + else + { + svr->recvCounter = 0; + mevent_reset_recv(svr->recvPlayerNo); + ++svr->seqno; + } + } + break; + case 1: + if (mevent_has_received(svr->recvPlayerNo)) + { + size_t blocksiz = svr->recvCounter * 252; + if (svr->recvSize - blocksiz <= 252) + { + mevent_recv_block(svr->recvPlayerNo, svr->recvBfr + blocksiz, svr->recvSize - blocksiz); + ++svr->recvCounter; + ++svr->seqno; + } + else + { + mevent_recv_block(svr->recvPlayerNo, svr->recvBfr + blocksiz, 252); + ++svr->recvCounter; + } + mevent_reset_recv(svr->recvPlayerNo); + } + break; + case 2: + if (CalcCRC16WithTable(svr->recvBfr, svr->recvSize) != svr->recvCRC) + { + sub_8010198(); + return FALSE; + } + else + { + svr->seqno = 0; + return TRUE; + } + break; + + } + + return FALSE; +} + +static bool32 mevent_send_func(struct mevent_srv_sub * svr) +{ + struct send_recv_header header; + + switch (svr->seqno) + { + case 0: + if (IsLinkTaskFinished()) + { + header.ident = svr->sendIdent; + header.size = svr->sendSize; + header.crc = CalcCRC16WithTable(svr->sendBfr, svr->sendSize); + svr->sendCRC = header.crc; + svr->sendCounter = 0; + SendBlock(0, &header, sizeof(header)); + ++svr->seqno; + } + break; + case 1: + if (IsLinkTaskFinished()) + { + if (mevent_has_received(svr->sendPlayerNo)) + { + size_t blocksiz; + mevent_reset_recv(svr->sendPlayerNo); + blocksiz = 252 * svr->sendCounter; + if (svr->sendSize - blocksiz <= 252) + { + SendBlock(0, svr->sendBfr + blocksiz, svr->sendSize - blocksiz); + ++svr->sendCounter; + ++svr->seqno; + } + else + { + SendBlock(0, svr->sendBfr + blocksiz, 252); + ++svr->sendCounter; + } + } + } + break; + case 2: + if (IsLinkTaskFinished()) + { + if (CalcCRC16WithTable(svr->sendBfr, svr->sendSize) != svr->sendCRC) + sub_8010198(); + else + ++svr->seqno; + } + break; + case 3: + if (mevent_has_received(svr->sendPlayerNo)) + { + mevent_reset_recv(svr->sendPlayerNo); + svr->seqno = 0; + return TRUE; + } + break; + } + + return FALSE; +} diff --git a/src/mevent_server_ish.c b/src/mevent_server_ish.c index 2b310c981..0303bfd9b 100644 --- a/src/mevent_server_ish.c +++ b/src/mevent_server_ish.c @@ -14,9 +14,7 @@ static void mevent_srv_ish_init(struct mevent_srv_ish *, u32, u32); static u32 mevent_srv_ish_exec(struct mevent_srv_ish *); static void mevent_srv_ish_free_resources(struct mevent_srv_ish *); -extern const u8 gUnknown_082F2598[]; -extern const struct mevent_cmd gUnknown_8468B6C[]; -extern const struct mevent_cmd gUnknown_8468BCC[]; +extern const struct mevent_cmd_ish gUnknown_082F2598[]; void mevent_srv_ish_do_init(u32 arg) { diff --git a/src/util.c b/src/util.c index 47112774a..8aa54857a 100644 --- a/src/util.c +++ b/src/util.c @@ -218,7 +218,7 @@ int CountTrailingZeroBits(u32 value) return 0; } -u16 CalcCRC16(u8 *data, s32 length) +u16 CalcCRC16(const u8 *data, s32 length) { u16 i, j; u16 crc = 0x1121; @@ -237,7 +237,7 @@ u16 CalcCRC16(u8 *data, s32 length) return ~crc; } -u16 CalcCRC16WithTable(u8 *data, u32 length) +u16 CalcCRC16WithTable(const u8 *data, u32 length) { u16 i; u16 crc = 0x1121; -- cgit v1.2.3 From 28646ea64ea628596dc1cd9496febf6f46cc9e41 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Apr 2019 13:26:06 -0400 Subject: Decompile mevent server scripts --- src/mevent2.c | 4 +- src/mevent_scripts.c | 191 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/mevent_server.c | 16 ++++- 3 files changed, 206 insertions(+), 5 deletions(-) create mode 100644 src/mevent_scripts.c (limited to 'src') diff --git a/src/mevent2.c b/src/mevent2.c index 4174c4055..8585224ef 100755 --- a/src/mevent2.c +++ b/src/mevent2.c @@ -399,7 +399,7 @@ bool32 sub_801B6A0(const struct MEventStruct_Unk1442CC *data, bool32 a1) return TRUE; } -u32 sub_801B6EC(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, void *unused) +u32 sub_801B6EC(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, const void *unused) { if (a1->unk_14 == 0) return 0; @@ -410,7 +410,7 @@ u32 sub_801B6EC(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, void *un return 2; } -u32 sub_801B708(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, void *unused) +u32 sub_801B708(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, const void *unused) { int r4 = a1->unk_44 - sub_801B438(&a1->unk_20, a1->unk_44); if (r4 == 0) diff --git a/src/mevent_scripts.c b/src/mevent_scripts.c new file mode 100644 index 000000000..4a1a26535 --- /dev/null +++ b/src/mevent_scripts.c @@ -0,0 +1,191 @@ +#include "global.h" +#include "mevent_server_ish.h" +#include "mevent_server.h" + +const u8 gText_CanceledReadingCard[] = _("Canceled reading\nthe Card."); + + +const struct mevent_cmd_ish gUnknown_082F2598[] = { + { 2, 16}, + { 4, 0} +}; + +const struct mevent_cmd_ish gUnknown_082F25A8[] = { + { 8, 0}, + { 3, 0}, + { 2, 16}, + { 4, 0} +}; + +const struct mevent_cmd_ish gUnknown_082F25C8[] = { + {20, 0}, + { 1, 10} +}; + +const struct mevent_cmd_ish gUnknown_082F25D8[] = { + {20, 0}, + { 1, 11} +}; + +const struct mevent_cmd_ish gUnknown_082F25E8[] = { + {20, 0}, + { 1, 0} +}; + +const struct mevent_cmd_ish gUnknown_082F25F8[] = { + { 2, 22}, + {10, 0}, + { 2, 25}, + {17, 0}, + {20, 0}, + { 1, 2} +}; + +const struct mevent_cmd_ish gUnknown_082F2628[] = { + { 2, 23}, + { 9, 0}, + { 3, 0}, + { 2, 16}, + { 4, 0} +}; + +const struct mevent_cmd_ish gUnknown_082F2650[] = { + {20, 0}, + { 1, 7} +}; + +const struct mevent_cmd_ish gUnknown_082F2660[] = { + {20, 0}, + { 1, 3} +}; + +const struct mevent_cmd_ish gUnknown_082F2670[] = { + {13, 0}, + {14, 0}, + { 3, 0}, + { 2, 16}, + { 4, 0} +}; + +const struct mevent_cmd_ish gUnknown_082F2698[] = { + {20, 0}, + { 1, 9} +}; + +const struct mevent_cmd_ish gUnknown_082F26A8[] = { + {20, 0}, + { 1, 5} +}; + +const struct mevent_cmd_ish gUnknown_082F26B8[] = { + { 2, 21}, + {12, 0}, + {20, 0}, + { 1, 14}, + { 2, 21}, + {12, 0}, + {20, 0}, + { 1, 13} +}; + +const struct mevent_cmd gUnknown_082F26F8[] = { + {18, 0x10, gUnknown_082F25C8}, + { 1, 0x00, NULL}, + { 2, 0x14, NULL}, + { 0, 0x0a, NULL}, + {18, 0x10, gUnknown_082F25D8}, + { 1, 0x00, NULL}, + { 2, 0x14, NULL}, + { 0, 0x0b, NULL}, + {18, 0x10, gUnknown_082F2698}, + { 1, 0x00, NULL}, + { 2, 0x14, NULL}, + { 0, 0x09, NULL} +}; + +const struct mevent_cmd gUnknown_082F2788[] = { + {18, 0x20, gUnknown_082F26B8}, + { 1, 0x00, NULL}, + {20, 0x1b, gText_CanceledReadingCard}, + { 1, 0x00, NULL}, + { 2, 0x14, NULL}, + { 0, 0x09, NULL} +}; + +const struct mevent_cmd gUnknown_082F27D0[] = { + {18, 0x10, gUnknown_082F2650}, + { 1, 0x00, NULL}, + { 2, 0x14, NULL}, + { 0, 0x07, NULL} +}; + +const struct mevent_cmd gUnknown_082F2800[] = { + {18, 0x28, gUnknown_082F2628}, + { 1, 0x00, NULL}, + {14, 0x00, NULL}, + { 1, 0x00, NULL}, + { 2, 0x13, NULL}, + { 8, 0x00, NULL}, + { 4, 0x01, gUnknown_082F27D0}, + {18, 0x10, gUnknown_082F2660}, + { 1, 0x00, NULL}, + { 2, 0x14, NULL}, + { 0, 0x03, NULL} +}; + +const struct mevent_cmd gUnknown_082F2884[] = { + {18, 0x30, gUnknown_082F25F8}, + { 1, 0x00, NULL}, + {13, 0x00, NULL}, + { 1, 0x00, NULL}, + {15, 0x00, NULL}, + { 1, 0x00, NULL}, + { 2, 0x14, NULL}, + { 0, 0x02, NULL} +}; + +const struct mevent_cmd gUnknown_082F28E4[] = { + {18, 0x28, gUnknown_082F2670}, + { 1, 0x00, NULL}, + { 2, 0x13, NULL}, + { 8, 0x00, NULL}, + { 4, 0x00, gUnknown_082F2884}, + { 3, 0x00, gUnknown_082F2788} +}; + +const struct mevent_cmd gUnknown_082F292C[] = { + {18, 0x10, gUnknown_082F26A8}, + { 1, 0x00, NULL}, + { 2, 0x14, NULL}, + { 0, 0x05, NULL}, + {18, 0x10, gUnknown_082F25E8}, + { 1, 0x00, NULL}, + { 2, 0x14, NULL}, + { 0, 0x00, NULL} +}; + +const struct mevent_cmd s_mevent_wonder_news[] = { + {27, 0x00, NULL}, + {18, 0x20, gUnknown_082F25A8}, + { 1, 0x00, NULL}, + { 2, 0x11, NULL}, + { 5, 0x00, NULL}, + {30, 0x00, NULL}, + { 4, 0x00, gUnknown_082F26F8}, + { 3, 0x00, gUnknown_082F2800} +}; + +const struct mevent_cmd s_mevent_wonder_card[] = { + {26, 0x00, NULL}, + {28, 0x00, NULL}, + {18, 0x20, gUnknown_082F25A8}, + {1, 0x00, NULL}, + {2, 0x11, NULL}, + {5, 0x00, NULL}, + {6, 0x00, NULL}, + {4, 0x00, gUnknown_082F26F8}, + {7, 0x00, NULL}, + {4, 0x02, gUnknown_082F28E4}, + {4, 0x00, gUnknown_082F2884}, + {3, 0x00, gUnknown_082F292C}, +}; diff --git a/src/mevent_server.c b/src/mevent_server.c index 6a129ee28..fe13943ff 100644 --- a/src/mevent_server.c +++ b/src/mevent_server.c @@ -69,7 +69,7 @@ void mevent_srv_common_init_send(struct mevent_srv_common * svr, u32 ident, cons mevent_srv_sub_init_send(&svr->manager, ident, src, size); } -static void * mevent_first_if_not_null_else_second(void * a0, void * a1) +static const void * mevent_first_if_not_null_else_second(const void * a0, const void * a1) { if (a0 != NULL) return a0; @@ -77,7 +77,7 @@ static void * mevent_first_if_not_null_else_second(void * a0, void * a1) return a1; } -static u32 mevent_compare_pointers(void * a0, void * a1) +static u32 mevent_compare_pointers(const void * a0, const void * a1) { if (a1 < a0) return 0; @@ -120,45 +120,53 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) { // process command const struct mevent_cmd * cmd = &svr->cmdBuffer[svr->cmdidx]; - void * ptr; + const void * ptr; svr->cmdidx++; switch (cmd->instr) { case 0: + // end AGB_ASSERT(cmd->parameter == NULL); svr->mainseqno = 1; svr->param = cmd->flag; break; case 1: + // wait_send svr->mainseqno = 3; break; case 2: + // receive AGB_ASSERT(cmd->parameter == NULL); mevent_srv_sub_init_recv(&svr->manager, cmd->flag, svr->recvBuffer); svr->mainseqno = 2; break; case 3: + // jump AGB_ASSERT(cmd->flag == FALSE); svr->cmdidx = 0; svr->cmdBuffer = cmd->parameter; break; case 5: + // get_1442CC AGB_ASSERT(cmd->flag == FALSE); AGB_ASSERT(cmd->parameter == NULL); memcpy(svr->mevent_unk1442cc, svr->recvBuffer, sizeof(struct MEventStruct_Unk1442CC)); break; case 6: + // check_header__pass_false AGB_ASSERT(cmd->flag == FALSE); AGB_ASSERT(cmd->parameter == NULL); svr->param = sub_801B6A0(svr->mevent_unk1442cc, FALSE); break; case 30: + // check_header__pass_true AGB_ASSERT(cmd->flag == FALSE); AGB_ASSERT(cmd->parameter == NULL); svr->param = sub_801B6A0(svr->mevent_unk1442cc, TRUE); break; case 4: + // jump_if_eq if (svr->param == cmd->flag) { svr->cmdidx = 0; @@ -166,11 +174,13 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) } break; case 7: + // check_crc AGB_ASSERT(cmd->flag == FALSE); ptr = mevent_first_if_not_null_else_second(cmd->parameter, svr->mevent_32e0); svr->param = sub_801B6EC(ptr, svr->mevent_unk1442cc, ptr); break; case 8: + // read_word AGB_ASSERT(cmd->flag == FALSE); AGB_ASSERT(cmd->parameter == NULL); svr->param = *(u32 *)svr->recvBuffer; -- cgit v1.2.3 From b17c85ff7c975359b6d075453fb1ad668262f87f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Apr 2019 13:35:38 -0400 Subject: Use named fields for command structs --- src/mevent_scripts.c | 238 +++++++++++++++++++++++++-------------------------- 1 file changed, 119 insertions(+), 119 deletions(-) (limited to 'src') diff --git a/src/mevent_scripts.c b/src/mevent_scripts.c index 4a1a26535..29b37119e 100644 --- a/src/mevent_scripts.c +++ b/src/mevent_scripts.c @@ -6,186 +6,186 @@ const u8 gText_CanceledReadingCard[] = _("Canceled reading\nthe Card."); const struct mevent_cmd_ish gUnknown_082F2598[] = { - { 2, 16}, - { 4, 0} + {.instr = 2, .parameter = 16}, + {.instr = 4, .parameter = 0} }; const struct mevent_cmd_ish gUnknown_082F25A8[] = { - { 8, 0}, - { 3, 0}, - { 2, 16}, - { 4, 0} + {.instr = 8, .parameter = 0}, + {.instr = 3, .parameter = 0}, + {.instr = 2, .parameter = 16}, + {.instr = 4, .parameter = 0} }; const struct mevent_cmd_ish gUnknown_082F25C8[] = { - {20, 0}, - { 1, 10} + {.instr = 20, .parameter = 0}, + {.instr = 1, .parameter = 10} }; const struct mevent_cmd_ish gUnknown_082F25D8[] = { - {20, 0}, - { 1, 11} + {.instr = 20, .parameter = 0}, + {.instr = 1, .parameter = 11} }; const struct mevent_cmd_ish gUnknown_082F25E8[] = { - {20, 0}, - { 1, 0} + {.instr = 20, .parameter = 0}, + {.instr = 1, .parameter = 0} }; const struct mevent_cmd_ish gUnknown_082F25F8[] = { - { 2, 22}, - {10, 0}, - { 2, 25}, - {17, 0}, - {20, 0}, - { 1, 2} + {.instr = 2, .parameter = 22}, + {.instr = 10, .parameter = 0}, + {.instr = 2, .parameter = 25}, + {.instr = 17, .parameter = 0}, + {.instr = 20, .parameter = 0}, + {.instr = 1, .parameter = 2} }; const struct mevent_cmd_ish gUnknown_082F2628[] = { - { 2, 23}, - { 9, 0}, - { 3, 0}, - { 2, 16}, - { 4, 0} + {.instr = 2, .parameter = 23}, + {.instr = 9, .parameter = 0}, + {.instr = 3, .parameter = 0}, + {.instr = 2, .parameter = 16}, + {.instr = 4, .parameter = 0} }; const struct mevent_cmd_ish gUnknown_082F2650[] = { - {20, 0}, - { 1, 7} + {.instr = 20, .parameter = 0}, + {.instr = 1, .parameter = 7} }; const struct mevent_cmd_ish gUnknown_082F2660[] = { - {20, 0}, - { 1, 3} + {.instr = 20, .parameter = 0}, + {.instr = 1, .parameter = 3} }; const struct mevent_cmd_ish gUnknown_082F2670[] = { - {13, 0}, - {14, 0}, - { 3, 0}, - { 2, 16}, - { 4, 0} + {.instr = 13, .parameter = 0}, + {.instr = 14, .parameter = 0}, + {.instr = 3, .parameter = 0}, + {.instr = 2, .parameter = 16}, + {.instr = 4, .parameter = 0} }; const struct mevent_cmd_ish gUnknown_082F2698[] = { - {20, 0}, - { 1, 9} + {.instr = 20, .parameter = 0}, + {.instr = 1, .parameter = 9} }; const struct mevent_cmd_ish gUnknown_082F26A8[] = { - {20, 0}, - { 1, 5} + {.instr = 20, .parameter = 0}, + {.instr = 1, .parameter = 5} }; const struct mevent_cmd_ish gUnknown_082F26B8[] = { - { 2, 21}, - {12, 0}, - {20, 0}, - { 1, 14}, - { 2, 21}, - {12, 0}, - {20, 0}, - { 1, 13} + {.instr = 2, .parameter = 21}, + {.instr = 12, .parameter = 0}, + {.instr = 20, .parameter = 0}, + {.instr = 1, .parameter = 14}, + {.instr = 2, .parameter = 21}, + {.instr = 12, .parameter = 0}, + {.instr = 20, .parameter = 0}, + {.instr = 1, .parameter = 13} }; const struct mevent_cmd gUnknown_082F26F8[] = { - {18, 0x10, gUnknown_082F25C8}, - { 1, 0x00, NULL}, - { 2, 0x14, NULL}, - { 0, 0x0a, NULL}, - {18, 0x10, gUnknown_082F25D8}, - { 1, 0x00, NULL}, - { 2, 0x14, NULL}, - { 0, 0x0b, NULL}, - {18, 0x10, gUnknown_082F2698}, - { 1, 0x00, NULL}, - { 2, 0x14, NULL}, - { 0, 0x09, NULL} + {.instr = 18, .flag = 0x10, .parameter = gUnknown_082F25C8}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x14, .parameter = NULL}, + {.instr = 0, .flag = 0x0a, .parameter = NULL}, + {.instr = 18, .flag = 0x10, .parameter = gUnknown_082F25D8}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x14, .parameter = NULL}, + {.instr = 0, .flag = 0x0b, .parameter = NULL}, + {.instr = 18, .flag = 0x10, .parameter = gUnknown_082F2698}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x14, .parameter = NULL}, + {.instr = 0, .flag = 0x09, .parameter = NULL} }; const struct mevent_cmd gUnknown_082F2788[] = { - {18, 0x20, gUnknown_082F26B8}, - { 1, 0x00, NULL}, - {20, 0x1b, gText_CanceledReadingCard}, - { 1, 0x00, NULL}, - { 2, 0x14, NULL}, - { 0, 0x09, NULL} + {.instr = 18, .flag = 0x20, .parameter = gUnknown_082F26B8}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 20, .flag = 0x1b, .parameter = gText_CanceledReadingCard}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x14, .parameter = NULL}, + {.instr = 0, .flag = 0x09, .parameter = NULL} }; const struct mevent_cmd gUnknown_082F27D0[] = { - {18, 0x10, gUnknown_082F2650}, - { 1, 0x00, NULL}, - { 2, 0x14, NULL}, - { 0, 0x07, NULL} + {.instr = 18, .flag = 0x10, .parameter = gUnknown_082F2650}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x14, .parameter = NULL}, + {.instr = 0, .flag = 0x07, .parameter = NULL} }; const struct mevent_cmd gUnknown_082F2800[] = { - {18, 0x28, gUnknown_082F2628}, - { 1, 0x00, NULL}, - {14, 0x00, NULL}, - { 1, 0x00, NULL}, - { 2, 0x13, NULL}, - { 8, 0x00, NULL}, - { 4, 0x01, gUnknown_082F27D0}, - {18, 0x10, gUnknown_082F2660}, - { 1, 0x00, NULL}, - { 2, 0x14, NULL}, - { 0, 0x03, NULL} + {.instr = 18, .flag = 0x28, .parameter = gUnknown_082F2628}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 14, .flag = 0x00, .parameter = NULL}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x13, .parameter = NULL}, + {.instr = 8, .flag = 0x00, .parameter = NULL}, + {.instr = 4, .flag = 0x01, .parameter = gUnknown_082F27D0}, + {.instr = 18, .flag = 0x10, .parameter = gUnknown_082F2660}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x14, .parameter = NULL}, + {.instr = 0, .flag = 0x03, .parameter = NULL} }; const struct mevent_cmd gUnknown_082F2884[] = { - {18, 0x30, gUnknown_082F25F8}, - { 1, 0x00, NULL}, - {13, 0x00, NULL}, - { 1, 0x00, NULL}, - {15, 0x00, NULL}, - { 1, 0x00, NULL}, - { 2, 0x14, NULL}, - { 0, 0x02, NULL} + {.instr = 18, .flag = 0x30, .parameter = gUnknown_082F25F8}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 13, .flag = 0x00, .parameter = NULL}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 15, .flag = 0x00, .parameter = NULL}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x14, .parameter = NULL}, + {.instr = 0, .flag = 0x02, .parameter = NULL} }; const struct mevent_cmd gUnknown_082F28E4[] = { - {18, 0x28, gUnknown_082F2670}, - { 1, 0x00, NULL}, - { 2, 0x13, NULL}, - { 8, 0x00, NULL}, - { 4, 0x00, gUnknown_082F2884}, - { 3, 0x00, gUnknown_082F2788} + {.instr = 18, .flag = 0x28, .parameter = gUnknown_082F2670}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x13, .parameter = NULL}, + {.instr = 8, .flag = 0x00, .parameter = NULL}, + {.instr = 4, .flag = 0x00, .parameter = gUnknown_082F2884}, + {.instr = 3, .flag = 0x00, .parameter = gUnknown_082F2788} }; const struct mevent_cmd gUnknown_082F292C[] = { - {18, 0x10, gUnknown_082F26A8}, - { 1, 0x00, NULL}, - { 2, 0x14, NULL}, - { 0, 0x05, NULL}, - {18, 0x10, gUnknown_082F25E8}, - { 1, 0x00, NULL}, - { 2, 0x14, NULL}, - { 0, 0x00, NULL} + {.instr = 18, .flag = 0x10, .parameter = gUnknown_082F26A8}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x14, .parameter = NULL}, + {.instr = 0, .flag = 0x05, .parameter = NULL}, + {.instr = 18, .flag = 0x10, .parameter = gUnknown_082F25E8}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x14, .parameter = NULL}, + {.instr = 0, .flag = 0x00, .parameter = NULL} }; const struct mevent_cmd s_mevent_wonder_news[] = { - {27, 0x00, NULL}, - {18, 0x20, gUnknown_082F25A8}, - { 1, 0x00, NULL}, - { 2, 0x11, NULL}, - { 5, 0x00, NULL}, - {30, 0x00, NULL}, - { 4, 0x00, gUnknown_082F26F8}, - { 3, 0x00, gUnknown_082F2800} + {.instr = 27, .flag = 0x00, .parameter = NULL}, + {.instr = 18, .flag = 0x20, .parameter = gUnknown_082F25A8}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x11, .parameter = NULL}, + {.instr = 5, .flag = 0x00, .parameter = NULL}, + {.instr = 30, .flag = 0x00, .parameter = NULL}, + {.instr = 4, .flag = 0x00, .parameter = gUnknown_082F26F8}, + {.instr = 3, .flag = 0x00, .parameter = gUnknown_082F2800} }; const struct mevent_cmd s_mevent_wonder_card[] = { - {26, 0x00, NULL}, - {28, 0x00, NULL}, - {18, 0x20, gUnknown_082F25A8}, - {1, 0x00, NULL}, - {2, 0x11, NULL}, - {5, 0x00, NULL}, - {6, 0x00, NULL}, - {4, 0x00, gUnknown_082F26F8}, - {7, 0x00, NULL}, - {4, 0x02, gUnknown_082F28E4}, - {4, 0x00, gUnknown_082F2884}, - {3, 0x00, gUnknown_082F292C}, + {.instr = 26, .flag = 0x00, .parameter = NULL}, + {.instr = 28, .flag = 0x00, .parameter = NULL}, + {.instr = 18, .flag = 0x20, .parameter = gUnknown_082F25A8}, + {.instr = 1, .flag = 0x00, .parameter = NULL}, + {.instr = 2, .flag = 0x11, .parameter = NULL}, + {.instr = 5, .flag = 0x00, .parameter = NULL}, + {.instr = 6, .flag = 0x00, .parameter = NULL}, + {.instr = 4, .flag = 0x00, .parameter = gUnknown_082F26F8}, + {.instr = 7, .flag = 0x00, .parameter = NULL}, + {.instr = 4, .flag = 0x02, .parameter = gUnknown_082F28E4}, + {.instr = 4, .flag = 0x00, .parameter = gUnknown_082F2884}, + {.instr = 3, .flag = 0x00, .parameter = gUnknown_082F292C} }; -- cgit v1.2.3 From d220f876fc9e7281075419ce6bbb5bf9e8dbef8f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Apr 2019 13:57:03 -0400 Subject: Some symbol documentation --- src/mevent2.c | 90 ++++++++++++++++++++++++------------------------- src/mevent_801BAAC.c | 8 ++--- src/mevent_server.c | 30 ++++++++--------- src/mevent_server_ish.c | 2 +- src/mystery_gift.c | 4 +-- src/scrcmd.c | 2 +- src/script.c | 6 ++-- 7 files changed, 71 insertions(+), 71 deletions(-) (limited to 'src') diff --git a/src/mevent2.c b/src/mevent2.c index 8585224ef..f36e5d06b 100755 --- a/src/mevent2.c +++ b/src/mevent2.c @@ -15,8 +15,8 @@ static EWRAM_DATA bool32 gUnknown_02022C70 = FALSE; static void sub_801B180(void); static void s_DestroyWonderNews(void); -static bool32 sub_801B114(const struct MEventBuffer_3120_Sub *data); -static bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub *data); +static bool32 sub_801B114(const struct WonderNews *data); +static bool32 sub_801B2CC(const struct WonderCard *data); static void sub_801B330(void); static void sub_801B368(void); static void sub_801B9F8(void); @@ -29,14 +29,14 @@ void sub_801AFD8(void) sub_811F8BC(); } -struct MEventBuffer_3120_Sub *sav1_get_mevent_buffer_0(void) +struct WonderNews *GetSavedWonderNews(void) { - return &gSaveBlock1Ptr->unk_322C.buffer_000.data; + return &gSaveBlock1Ptr->unk_322C.wonderNews.data; } -struct MEventBuffer_32E0_Sub *sav1_get_mevent_buffer_1(void) +struct WonderCard *GetSavedWonderCard(void) { - return &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + return &gSaveBlock1Ptr->unk_322C.wonderCard.data; } struct MEventBuffer_3430_Sub *sav1_get_mevent_buffer_2(void) @@ -59,28 +59,28 @@ void DestroyWonderNews(void) s_DestroyWonderNews(); } -bool32 sub_801B078(const struct MEventBuffer_3120_Sub *src) +bool32 sub_801B078(const struct WonderNews *src) { if (!sub_801B114(src)) return FALSE; s_DestroyWonderNews(); - gSaveBlock1Ptr->unk_322C.buffer_000.data = *src; - gSaveBlock1Ptr->unk_322C.buffer_000.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)); + gSaveBlock1Ptr->unk_322C.wonderNews.data = *src; + gSaveBlock1Ptr->unk_322C.wonderNews.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.wonderNews.data, sizeof(struct WonderNews)); return TRUE; } bool32 ValidateReceivedWonderNews(void) { - if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)) != gSaveBlock1Ptr->unk_322C.buffer_000.crc) + if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.wonderNews.data, sizeof(struct WonderNews)) != gSaveBlock1Ptr->unk_322C.wonderNews.crc) return FALSE; - if (!sub_801B114(&gSaveBlock1Ptr->unk_322C.buffer_000.data)) + if (!sub_801B114(&gSaveBlock1Ptr->unk_322C.wonderNews.data)) return FALSE; return TRUE; } -static bool32 sub_801B114(const struct MEventBuffer_3120_Sub *data) +static bool32 sub_801B114(const struct WonderNews *data) { if (data->unk_00 == 0) return FALSE; @@ -90,7 +90,7 @@ static bool32 sub_801B114(const struct MEventBuffer_3120_Sub *data) bool32 WonderNews_Test_Unk_02(void) { - const struct MEventBuffer_3120_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_000.data; + const struct WonderNews *data = &gSaveBlock1Ptr->unk_322C.wonderNews.data; if (data->unk_02 == 0) return FALSE; @@ -99,8 +99,8 @@ bool32 WonderNews_Test_Unk_02(void) static void s_DestroyWonderNews(void) { - CpuFill32(0, sav1_get_mevent_buffer_0(), sizeof(gSaveBlock1Ptr->unk_322C.buffer_000.data)); - gSaveBlock1Ptr->unk_322C.buffer_000.crc = 0; + CpuFill32(0, GetSavedWonderNews(), sizeof(gSaveBlock1Ptr->unk_322C.wonderNews.data)); + gSaveBlock1Ptr->unk_322C.wonderNews.crc = 0; } static void sub_801B180(void) @@ -111,12 +111,12 @@ static void sub_801B180(void) bool32 sub_801B1A4(const u8 *src) { - const u8 *r5 = (const u8 *)&gSaveBlock1Ptr->unk_322C.buffer_000.data; + const u8 *r5 = (const u8 *)&gSaveBlock1Ptr->unk_322C.wonderNews.data; u32 i; if (!ValidateReceivedWonderNews()) return FALSE; - for (i = 0; i < sizeof(struct MEventBuffer_3120_Sub); i++) + for (i = 0; i < sizeof(struct WonderNews); i++) { if (r5[i] != src[i]) return FALSE; @@ -136,35 +136,35 @@ void DestroyWonderCard(void) ClearEReaderTrainer(&gSaveBlock2Ptr->frontier.ereaderTrainer); } -bool32 sub_801B21C(const struct MEventBuffer_32E0_Sub *data) +bool32 sub_801B21C(const struct WonderCard *data) { struct MEventBuffer_3430_Sub *r2; - struct MEventBuffer_32E0_Sub *r1; + struct WonderCard *r1; if (!sub_801B2CC(data)) return FALSE; DestroyWonderCard(); - memcpy(&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, data, sizeof(struct MEventBuffer_32E0_Sub)); - gSaveBlock1Ptr->unk_322C.buffer_1c0.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub)); + memcpy(&gSaveBlock1Ptr->unk_322C.wonderCard.data, data, sizeof(struct WonderCard)); + gSaveBlock1Ptr->unk_322C.wonderCard.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.wonderCard.data, sizeof(struct WonderCard)); r2 = &gSaveBlock1Ptr->unk_322C.buffer_310.data; - r1 = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + r1 = &gSaveBlock1Ptr->unk_322C.wonderCard.data; r2->unk_06 = r1->unk_02; return TRUE; } bool32 ValidateReceivedWonderCard(void) { - if (gSaveBlock1Ptr->unk_322C.buffer_1c0.crc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub))) + if (gSaveBlock1Ptr->unk_322C.wonderCard.crc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_322C.wonderCard.data, sizeof(struct WonderCard))) return FALSE; - if (!sub_801B2CC(&gSaveBlock1Ptr->unk_322C.buffer_1c0.data)) + if (!sub_801B2CC(&gSaveBlock1Ptr->unk_322C.wonderCard.data)) return FALSE; - if (!sub_80991F8()) + if (!ValidateSavedRamScript()) return FALSE; return TRUE; } -static bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub *data) +static bool32 sub_801B2CC(const struct WonderCard *data) { if (data->unk_00 == 0) return FALSE; @@ -182,7 +182,7 @@ static bool32 sub_801B2CC(const struct MEventBuffer_32E0_Sub *data) bool32 WonderCard_Test_Unk_08_6(void) { - const struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + const struct WonderCard *data = &gSaveBlock1Ptr->unk_322C.wonderCard.data; if (data->unk_08_6 == 0) return FALSE; @@ -191,8 +191,8 @@ bool32 WonderCard_Test_Unk_08_6(void) static void sub_801B330(void) { - CpuFill32(0, &gSaveBlock1Ptr->unk_322C.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub)); - gSaveBlock1Ptr->unk_322C.buffer_1c0.crc = 0; + CpuFill32(0, &gSaveBlock1Ptr->unk_322C.wonderCard.data, sizeof(struct WonderCard)); + gSaveBlock1Ptr->unk_322C.wonderCard.crc = 0; } static void sub_801B368(void) @@ -204,12 +204,12 @@ static void sub_801B368(void) u16 GetWonderCardFlagID(void) { if (ValidateReceivedWonderCard()) - return gSaveBlock1Ptr->unk_322C.buffer_1c0.data.unk_00; + return gSaveBlock1Ptr->unk_322C.wonderCard.data.unk_00; return 0; } -void sub_801B3C0(struct MEventBuffer_32E0_Sub *buffer) +void WonderCard_ResetInternalReceivedFlag(struct WonderCard *buffer) { if (buffer->unk_08_6 == 1) buffer->unk_08_6 = 0; @@ -299,11 +299,11 @@ static bool32 sub_801B4A4(const u16 *data) static int sub_801B4CC(void) { - struct MEventBuffer_32E0_Sub *data; + struct WonderCard *data; if (!ValidateReceivedWonderCard()) return 0; - data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + data = &gSaveBlock1Ptr->unk_322C.wonderCard.data; if (data->unk_08_0 != 1) return 0; @@ -312,7 +312,7 @@ static int sub_801B4CC(void) bool32 sub_801B508(const u16 *data) { - struct MEventBuffer_32E0_Sub *buffer = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + struct WonderCard *buffer = &gSaveBlock1Ptr->unk_322C.wonderCard.data; int size = buffer->unk_09; int i; if (!sub_801B4A4(data)) @@ -355,9 +355,9 @@ void sub_801B580(struct MEventStruct_Unk1442CC *data, bool32 a1) if (ValidateReceivedWonderCard()) { - data->unk_14 = sav1_get_mevent_buffer_1()->unk_00; + data->unk_14 = GetSavedWonderCard()->unk_00; data->unk_20 = *sav1_get_mevent_buffer_2(); - data->unk_44 = sav1_get_mevent_buffer_1()->unk_09; + data->unk_44 = GetSavedWonderCard()->unk_09; } else { @@ -422,7 +422,7 @@ u32 sub_801B708(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, const vo return 2; } -bool32 sub_801B748(const struct MEventStruct_Unk1442CC *a0, const u16 *a1) +bool32 MEventStruct_Unk1442CC_CompareField_unk_16(const struct MEventStruct_Unk1442CC *a0, const u16 *a1) { int i; for (i = 0; i < 4; i++) @@ -439,7 +439,7 @@ static int sub_801B770(const struct MEventStruct_Unk1442CC *a0) return sub_801B438(&a0->unk_20, a0->unk_44); } -u16 sub_801B784(const struct MEventStruct_Unk1442CC *a0, u32 command) +u16 MEventStruct_Unk1442CC_GetValueNFrom_unk_20(const struct MEventStruct_Unk1442CC *a0, u32 command) { switch (command) { @@ -461,7 +461,7 @@ u16 sub_801B784(const struct MEventStruct_Unk1442CC *a0, u32 command) static void sub_801B7D8(u32 command) { - struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + struct WonderCard *data = &gSaveBlock1Ptr->unk_322C.wonderCard.data; if (data->unk_08_0 == 2) { u16 *dest = NULL; @@ -495,7 +495,7 @@ u16 mevent_081445C0(u32 command) { case 0: { - struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + struct WonderCard *data = &gSaveBlock1Ptr->unk_322C.wonderCard.data; if (data->unk_08_0 == 2) { struct MEventBuffer_3430_Sub *buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; @@ -505,7 +505,7 @@ u16 mevent_081445C0(u32 command) } case 1: { - struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + struct WonderCard *data = &gSaveBlock1Ptr->unk_322C.wonderCard.data; if (data->unk_08_0 == 2) { struct MEventBuffer_3430_Sub *buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; @@ -515,7 +515,7 @@ u16 mevent_081445C0(u32 command) } case 2: { - struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + struct WonderCard *data = &gSaveBlock1Ptr->unk_322C.wonderCard.data; if (data->unk_08_0 == 2) { struct MEventBuffer_3430_Sub *buffer = &gSaveBlock1Ptr->unk_322C.buffer_310.data; @@ -525,14 +525,14 @@ u16 mevent_081445C0(u32 command) } case 3: { - struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + struct WonderCard *data = &gSaveBlock1Ptr->unk_322C.wonderCard.data; if (data->unk_08_0 == 1) return sub_801B4CC(); break; } case 4: { - struct MEventBuffer_32E0_Sub *data = &gSaveBlock1Ptr->unk_322C.buffer_1c0.data; + struct WonderCard *data = &gSaveBlock1Ptr->unk_322C.wonderCard.data; if (data->unk_08_0 == 1) return data->unk_09; break; @@ -557,7 +557,7 @@ bool32 sub_801B94C(u16 a0) if (!ValidateReceivedWonderCard()) return FALSE; - if (gSaveBlock1Ptr->unk_322C.buffer_1c0.data.unk_00 != a0) + if (gSaveBlock1Ptr->unk_322C.wonderCard.data.unk_00 != a0) return FALSE; gUnknown_02022C70 = TRUE; diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c index 24a999f69..62240af98 100644 --- a/src/mevent_801BAAC.c +++ b/src/mevent_801BAAC.c @@ -35,7 +35,7 @@ struct UnkStruct_203F3C8_02DC struct UnkStruct_203F3C8 { - /*0000*/ struct MEventBuffer_32E0_Sub unk_0000; + /*0000*/ struct WonderCard unk_0000; /*014c*/ struct MEventBuffer_3430_Sub unk_014C; /*0170*/ const struct UnkStruct_8467FB8 * unk_0170; /*0174*/ u8 unk_0174; @@ -150,7 +150,7 @@ const struct UnkStruct_8467FB8 gUnknown_082F1D60[8] = { {1, 0, 0, 7, gWonderCardBgGfx8, gWonderCardBgTilemap8, gWonderCardBgPal8} }; -bool32 InitWonderCardResources(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6) +bool32 InitWonderCardResources(struct WonderCard * r5, struct MEventBuffer_3430_Sub * r6) { if (r5 == NULL || r6 == NULL) return FALSE; @@ -465,7 +465,7 @@ void sub_801C61C(void) struct UnkStruct_203F3CC { - /*0000*/ struct MEventBuffer_3120_Sub unk_0000; + /*0000*/ struct WonderNews unk_0000; /*01bc*/ const struct UnkStruct_8467FB8 * unk_01BC; /*01c0*/ u8 unk_01C0_0:1; u8 unk_01C0_1:7; @@ -542,7 +542,7 @@ const struct UnkStruct_8467FB8 gUnknown_082F24C8[] = { {1, 0, 0, 0, gWonderNewsGfx8, gWonderNewsTilemap8, gWonderNewsPal8} }; -bool32 InitWonderNewsResources(const struct MEventBuffer_3120_Sub * a0) +bool32 InitWonderNewsResources(const struct WonderNews * a0) { if (a0 == NULL) return FALSE; diff --git a/src/mevent_server.c b/src/mevent_server.c index fe13943ff..06b10dd95 100644 --- a/src/mevent_server.c +++ b/src/mevent_server.c @@ -46,8 +46,8 @@ static void mevent_srv_init_common(struct mevent_srv_common * svr, const void * { svr->unk_00 = 0; svr->mainseqno = 0; - svr->mevent_32e0 = AllocZeroed(sizeof(struct MEventBuffer_32E0_Sub)); - svr->mevent_3120 = AllocZeroed(sizeof(struct MEventBuffer_3120_Sub)); + svr->wonder_card = AllocZeroed(sizeof(struct WonderCard)); + svr->wonder_news = AllocZeroed(sizeof(struct WonderNews)); svr->recvBuffer = AllocZeroed(ME_SEND_BUF_SIZE); svr->mevent_unk1442cc = AllocZeroed(sizeof(struct MEventStruct_Unk1442CC)); svr->cmdBuffer = cmdBuffer; @@ -57,8 +57,8 @@ static void mevent_srv_init_common(struct mevent_srv_common * svr, const void * static void mevent_srv_free_resources(struct mevent_srv_common * svr) { - Free(svr->mevent_32e0); - Free(svr->mevent_3120); + Free(svr->wonder_card); + Free(svr->wonder_news); Free(svr->recvBuffer); Free(svr->mevent_unk1442cc); } @@ -176,7 +176,7 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) case 7: // check_crc AGB_ASSERT(cmd->flag == FALSE); - ptr = mevent_first_if_not_null_else_second(cmd->parameter, svr->mevent_32e0); + ptr = mevent_first_if_not_null_else_second(cmd->parameter, svr->wonder_card); svr->param = sub_801B6EC(ptr, svr->mevent_unk1442cc, ptr); break; case 8: @@ -192,11 +192,11 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) break; case 10: AGB_ASSERT(cmd->parameter == NULL); - svr->param = sub_801B784(svr->mevent_unk1442cc, cmd->flag); + svr->param = MEventStruct_Unk1442CC_GetValueNFrom_unk_20(svr->mevent_unk1442cc, cmd->flag); break; case 11: AGB_ASSERT(cmd->flag == FALSE); - svr->param = sub_801B748(svr->mevent_unk1442cc, cmd->parameter); + svr->param = MEventStruct_Unk1442CC_CompareField_unk_16(svr->mevent_unk1442cc, cmd->parameter); break; case 12: AGB_ASSERT(cmd->flag == FALSE); @@ -204,11 +204,11 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) break; case 14: AGB_ASSERT(cmd->flag == FALSE); - mevent_srv_common_init_send(svr, 0x17, mevent_first_if_not_null_else_second(cmd->parameter, svr->mevent_3120), sizeof(struct MEventBuffer_3120_Sub)); + mevent_srv_common_init_send(svr, 0x17, mevent_first_if_not_null_else_second(cmd->parameter, svr->wonder_news), sizeof(struct WonderNews)); break; case 13: AGB_ASSERT(cmd->flag == FALSE); - mevent_srv_common_init_send(svr, 0x16, mevent_first_if_not_null_else_second(cmd->parameter, svr->mevent_32e0), sizeof(struct MEventBuffer_32E0_Sub)); + mevent_srv_common_init_send(svr, 0x16, mevent_first_if_not_null_else_second(cmd->parameter, svr->wonder_card), sizeof(struct WonderCard)); break; case 16: AGB_ASSERT(cmd->flag == FALSE); @@ -238,11 +238,11 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) break; case 22: AGB_ASSERT(cmd->flag == FALSE); - memcpy(svr->mevent_32e0, cmd->parameter, 332); + memcpy(svr->wonder_card, cmd->parameter, 332); break; case 23: AGB_ASSERT(cmd->flag == FALSE); - memcpy(svr->mevent_3120, cmd->parameter, 444); + memcpy(svr->wonder_news, cmd->parameter, 444); break; case 21: AGB_ASSERT(cmd->flag == FALSE); @@ -258,16 +258,16 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) break; case 26: AGB_ASSERT(cmd->flag == FALSE && cmd->parameter == NULL); - memcpy(svr->mevent_32e0, sav1_get_mevent_buffer_1(), 332); - sub_801B3C0(svr->mevent_32e0); + memcpy(svr->wonder_card, GetSavedWonderCard(), 332); + WonderCard_ResetInternalReceivedFlag(svr->wonder_card); break; case 27: AGB_ASSERT(cmd->flag == FALSE && cmd->parameter == NULL); - memcpy(svr->mevent_3120, sav1_get_mevent_buffer_0(), 444); + memcpy(svr->wonder_news, GetSavedWonderNews(), 444); break; case 28: AGB_ASSERT(cmd->flag == FALSE && cmd->parameter == NULL); - svr->sendBuffer1 = sub_8099244(); + svr->sendBuffer1 = GetSavedRamScriptIfValid(); break; case 29: mevent_srv_common_init_send(svr, 0x1b, cmd->parameter, cmd->flag); diff --git a/src/mevent_server_ish.c b/src/mevent_server_ish.c index 0303bfd9b..48f72eaad 100644 --- a/src/mevent_server_ish.c +++ b/src/mevent_server_ish.c @@ -216,7 +216,7 @@ static u32 ish_mainseq_4(struct mevent_srv_ish * svr) sub_801B508(svr->recvBuffer); break; case 17: - sub_80992A0(svr->recvBuffer, 1000); + InitRamScript_NoEventObject(svr->recvBuffer, 1000); break; case 18: memcpy(&gSaveBlock2Ptr->frontier.ereaderTrainer, svr->recvBuffer, 0xbc); diff --git a/src/mystery_gift.c b/src/mystery_gift.c index c8b3a9060..c935e9b25 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -815,11 +815,11 @@ static bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews) case 0: if (cardOrNews == 0) { - InitWonderCardResources(sav1_get_mevent_buffer_1(), sav1_get_mevent_buffer_2()); + InitWonderCardResources(GetSavedWonderCard(), sav1_get_mevent_buffer_2()); } else { - InitWonderNewsResources(sav1_get_mevent_buffer_0()); + InitWonderNewsResources(GetSavedWonderNews()); } (*state)++; break; diff --git a/src/scrcmd.c b/src/scrcmd.c index 314504600..0b1006cef 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -2217,7 +2217,7 @@ bool8 ScrCmd_checkmonobedience(struct ScriptContext *ctx) bool8 ScrCmd_cmdCF(struct ScriptContext *ctx) { - const u8* v1 = sub_8099244(); + const u8* v1 = GetSavedRamScriptIfValid(); if (v1) { diff --git a/src/script.c b/src/script.c index cb06300bf..27476dba3 100644 --- a/src/script.c +++ b/src/script.c @@ -386,7 +386,7 @@ const u8 *GetRamScript(u8 objectId, const u8 *script) } } -bool32 sub_80991F8(void) +bool32 ValidateSavedRamScript(void) { struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data; if (scriptData->magic != RAM_SCRIPT_MAGIC) @@ -402,7 +402,7 @@ bool32 sub_80991F8(void) return TRUE; } -u8 *sub_8099244(void) +u8 *GetSavedRamScriptIfValid(void) { struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data; if (!ValidateReceivedWonderCard()) @@ -426,7 +426,7 @@ u8 *sub_8099244(void) } } -void sub_80992A0(u8 *script, u16 scriptSize) +void InitRamScript_NoEventObject(u8 *script, u16 scriptSize) { if (scriptSize > sizeof(gSaveBlock1Ptr->ramScript.data.script)) scriptSize = sizeof(gSaveBlock1Ptr->ramScript.data.script); -- cgit v1.2.3 From d0384ee95e124f16e33cdfbf1d18d02ef97145b4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Apr 2019 14:02:13 -0400 Subject: mevent_server_ish --> mevent_client --- src/mevent_client.c | 291 ++++++++++++++++++++++++++++++++++++++++++++++++ src/mevent_scripts.c | 28 ++--- src/mevent_server_ish.c | 291 ------------------------------------------------ src/mystery_gift.c | 52 ++++----- 4 files changed, 331 insertions(+), 331 deletions(-) create mode 100644 src/mevent_client.c delete mode 100644 src/mevent_server_ish.c (limited to 'src') diff --git a/src/mevent_client.c b/src/mevent_client.c new file mode 100644 index 000000000..cdf976a41 --- /dev/null +++ b/src/mevent_client.c @@ -0,0 +1,291 @@ +#include "global.h" +#include "alloc.h" +#include "decompress.h" +#include "overworld.h" +#include "script.h" +#include "battle_tower.h" +#include "mevent.h" +#include "mystery_event_script.h" +#include "mevent_client.h" + +EWRAM_DATA struct mevent_client * s_mevent_client_ptr = NULL; + +static void mevent_client_init(struct mevent_client *, u32, u32); +static u32 mevent_client_exec(struct mevent_client *); +static void mevent_client_free_resources(struct mevent_client *); + +extern const struct mevent_client_cmd gUnknown_082F2598[]; + +void mevent_client_do_init(u32 arg) +{ + s_mevent_client_ptr = AllocZeroed(sizeof(struct mevent_client)); + mevent_client_init(s_mevent_client_ptr, 1, 0); + s_mevent_client_ptr->unk_4C = arg; +} + +u32 mevent_client_do_exec(u16 * a0) +{ + u32 result; + if (s_mevent_client_ptr == NULL) + return 6; + result = mevent_client_exec(s_mevent_client_ptr); + if (result == 6) + { + *a0 = s_mevent_client_ptr->param; + mevent_client_free_resources(s_mevent_client_ptr); + Free(s_mevent_client_ptr); + s_mevent_client_ptr = NULL; + } + return result; +} + +void mevent_client_inc_flag(void) +{ + s_mevent_client_ptr->flag++; +} + +void * mevent_client_get_buffer(void) +{ + return s_mevent_client_ptr->buffer; +} + +void mevent_client_set_param(u32 a0) +{ + s_mevent_client_ptr->param = a0; +} + +static void mevent_client_init(struct mevent_client * svr, u32 sendPlayerNo, u32 recvPlayerNo) +{ + svr->unk_00 = 0; + svr->mainseqno = 0; + svr->flag = 0; + svr->sendBuffer = AllocZeroed(ME_SEND_BUF_SIZE); + svr->recvBuffer = AllocZeroed(ME_SEND_BUF_SIZE); + svr->cmdBuffer = AllocZeroed(ME_SEND_BUF_SIZE); + svr->buffer = AllocZeroed(0x40); + mevent_srv_sub_init(&svr->manager, sendPlayerNo, recvPlayerNo); +} + +static void mevent_client_free_resources(struct mevent_client * svr) +{ + Free(svr->sendBuffer); + Free(svr->recvBuffer); + Free(svr->cmdBuffer); + Free(svr->buffer); +} + +static void mevent_client_jmp_buffer(struct mevent_client * svr) +{ + memcpy(svr->cmdBuffer, svr->recvBuffer, ME_SEND_BUF_SIZE); + svr->cmdidx = 0; +} + +static void mevent_client_send_word(struct mevent_client * svr, u32 ident, u32 word) +{ + CpuFill32(0, svr->sendBuffer, ME_SEND_BUF_SIZE); + *(u32 *)svr->sendBuffer = word; + mevent_srv_sub_init_send(&svr->manager, ident, svr->sendBuffer, sizeof(u32)); +} + +static u32 ish_mainseq_0(struct mevent_client * svr) +{ + // init + memcpy(svr->cmdBuffer, gUnknown_082F2598, ME_SEND_BUF_SIZE); + svr->cmdidx = 0; + svr->mainseqno = 4; + svr->flag = 0; + return 0; +} + +static u32 ish_mainseq_1(struct mevent_client * svr) +{ + // done + return 6; +} + + +static u32 ish_mainseq_2(struct mevent_client * svr) +{ + // do recv + if (mevent_srv_sub_recv(&svr->manager)) + { + svr->mainseqno = 4; + svr->flag = 0; + } + return 1; +} + +static u32 ish_mainseq_3(struct mevent_client * svr) +{ + // do send + if (mevent_srv_sub_send(&svr->manager)) + { + svr->mainseqno = 4; + svr->flag = 0; + } + return 1; +} + +static u32 ish_mainseq_4(struct mevent_client * svr) +{ + // process command + struct mevent_client_cmd * cmd = &svr->cmdBuffer[svr->cmdidx]; + ++svr->cmdidx; + switch (cmd->instr) + { + case 0: + break; + case 1: + svr->param = cmd->parameter; + svr->mainseqno = 1; + svr->flag = 0; + break; + case 2: + mevent_srv_sub_init_recv(&svr->manager, cmd->parameter, svr->recvBuffer); + svr->mainseqno = 2; + svr->flag = 0; + break; + case 3: + svr->mainseqno = 3; + svr->flag = 0; + break; + case 20: + mevent_srv_sub_init_send(&svr->manager, 0x14, svr->sendBuffer, 0); + svr->mainseqno = 3; + svr->flag = 0; + break; + case 19: + mevent_client_send_word(svr, 0x12, GetGameStat(cmd->parameter)); + svr->mainseqno = 3; + svr->flag = 0; + break; + case 6: + if (svr->param == 0) + mevent_client_jmp_buffer(svr); + break; + case 7: + if (svr->param == 1) + mevent_client_jmp_buffer(svr); + break; + case 4: + mevent_client_jmp_buffer(svr); + break; + case 5: + memcpy(svr->buffer, svr->recvBuffer, 0x40); + svr->mainseqno = 5; + svr->flag = 0; + return 2; + case 11: + memcpy(svr->buffer, svr->recvBuffer, 0x40); + svr->mainseqno = 5; + svr->flag = 0; + return 3; + case 12: + memcpy(svr->buffer, svr->recvBuffer, 0x40); + svr->mainseqno = 5; + svr->flag = 0; + return 5; + case 13: + svr->mainseqno = 5; + svr->flag = 0; + return 4; + case 8: + sub_801B580(svr->sendBuffer, svr->unk_4C); + mevent_srv_sub_init_send(&svr->manager, 0x11, svr->sendBuffer, sizeof(struct MEventStruct_Unk1442CC)); + break; + case 14: + mevent_client_send_word(svr, 0x13, svr->param); + break; + case 10: + sub_801B21C(svr->recvBuffer); + break; + case 9: + if (!sub_801B1A4(svr->recvBuffer)) + { + sub_801B078(svr->recvBuffer); + mevent_client_send_word(svr, 0x13, 0); + } + else + mevent_client_send_word(svr, 0x13, 1); + break; + case 15: + svr->mainseqno = 6; + svr->flag = 0; + break; + case 16: + sub_801B508(svr->recvBuffer); + break; + case 17: + InitRamScript_NoEventObject(svr->recvBuffer, 1000); + break; + case 18: + memcpy(&gSaveBlock2Ptr->frontier.ereaderTrainer, svr->recvBuffer, 0xbc); + ValidateEReaderTrainer(); + break; + case 21: + memcpy(gDecompressionBuffer, svr->recvBuffer, ME_SEND_BUF_SIZE); + svr->mainseqno = 7; + svr->flag = 0; + break; + } + + return 1; +} + +static u32 ish_mainseq_5(struct mevent_client * svr) +{ + // wait flag + if (svr->flag) + { + svr->mainseqno = 4; + svr->flag = 0; + } + return 1; +} + +static u32 ish_mainseq_6(struct mevent_client * svr) +{ + // ??? + switch (svr->flag) + { + case 0: + sub_8153870(svr->recvBuffer); + ++svr->flag; + break; + case 1: + if (!sub_8153884(&svr->param)) + { + svr->mainseqno = 4; + svr->flag = 0; + } + break; + } + return 1; +} + +static u32 ish_mainseq_7(struct mevent_client * svr) +{ + // exec arbitrary code + u32 (*func)(u32 *, struct SaveBlock2 *, struct SaveBlock1 *) = (void *)gDecompressionBuffer; + if (func(&svr->param, gSaveBlock2Ptr, gSaveBlock1Ptr) == 1) + { + svr->mainseqno = 4; + svr->flag = 0; + } + return 1; +} + +static u32 mevent_client_exec(struct mevent_client * svr) +{ + u32 (*funcs[])(struct mevent_client *) = { + ish_mainseq_0, + ish_mainseq_1, + ish_mainseq_2, + ish_mainseq_3, + ish_mainseq_4, + ish_mainseq_5, + ish_mainseq_6, + ish_mainseq_7 + }; + return funcs[svr->mainseqno](svr); +} diff --git a/src/mevent_scripts.c b/src/mevent_scripts.c index 29b37119e..41a5ddd51 100644 --- a/src/mevent_scripts.c +++ b/src/mevent_scripts.c @@ -1,38 +1,38 @@ #include "global.h" -#include "mevent_server_ish.h" +#include "mevent_client.h" #include "mevent_server.h" const u8 gText_CanceledReadingCard[] = _("Canceled reading\nthe Card."); -const struct mevent_cmd_ish gUnknown_082F2598[] = { +const struct mevent_client_cmd gUnknown_082F2598[] = { {.instr = 2, .parameter = 16}, {.instr = 4, .parameter = 0} }; -const struct mevent_cmd_ish gUnknown_082F25A8[] = { +const struct mevent_client_cmd gUnknown_082F25A8[] = { {.instr = 8, .parameter = 0}, {.instr = 3, .parameter = 0}, {.instr = 2, .parameter = 16}, {.instr = 4, .parameter = 0} }; -const struct mevent_cmd_ish gUnknown_082F25C8[] = { +const struct mevent_client_cmd gUnknown_082F25C8[] = { {.instr = 20, .parameter = 0}, {.instr = 1, .parameter = 10} }; -const struct mevent_cmd_ish gUnknown_082F25D8[] = { +const struct mevent_client_cmd gUnknown_082F25D8[] = { {.instr = 20, .parameter = 0}, {.instr = 1, .parameter = 11} }; -const struct mevent_cmd_ish gUnknown_082F25E8[] = { +const struct mevent_client_cmd gUnknown_082F25E8[] = { {.instr = 20, .parameter = 0}, {.instr = 1, .parameter = 0} }; -const struct mevent_cmd_ish gUnknown_082F25F8[] = { +const struct mevent_client_cmd gUnknown_082F25F8[] = { {.instr = 2, .parameter = 22}, {.instr = 10, .parameter = 0}, {.instr = 2, .parameter = 25}, @@ -41,7 +41,7 @@ const struct mevent_cmd_ish gUnknown_082F25F8[] = { {.instr = 1, .parameter = 2} }; -const struct mevent_cmd_ish gUnknown_082F2628[] = { +const struct mevent_client_cmd gUnknown_082F2628[] = { {.instr = 2, .parameter = 23}, {.instr = 9, .parameter = 0}, {.instr = 3, .parameter = 0}, @@ -49,17 +49,17 @@ const struct mevent_cmd_ish gUnknown_082F2628[] = { {.instr = 4, .parameter = 0} }; -const struct mevent_cmd_ish gUnknown_082F2650[] = { +const struct mevent_client_cmd gUnknown_082F2650[] = { {.instr = 20, .parameter = 0}, {.instr = 1, .parameter = 7} }; -const struct mevent_cmd_ish gUnknown_082F2660[] = { +const struct mevent_client_cmd gUnknown_082F2660[] = { {.instr = 20, .parameter = 0}, {.instr = 1, .parameter = 3} }; -const struct mevent_cmd_ish gUnknown_082F2670[] = { +const struct mevent_client_cmd gUnknown_082F2670[] = { {.instr = 13, .parameter = 0}, {.instr = 14, .parameter = 0}, {.instr = 3, .parameter = 0}, @@ -67,17 +67,17 @@ const struct mevent_cmd_ish gUnknown_082F2670[] = { {.instr = 4, .parameter = 0} }; -const struct mevent_cmd_ish gUnknown_082F2698[] = { +const struct mevent_client_cmd gUnknown_082F2698[] = { {.instr = 20, .parameter = 0}, {.instr = 1, .parameter = 9} }; -const struct mevent_cmd_ish gUnknown_082F26A8[] = { +const struct mevent_client_cmd gUnknown_082F26A8[] = { {.instr = 20, .parameter = 0}, {.instr = 1, .parameter = 5} }; -const struct mevent_cmd_ish gUnknown_082F26B8[] = { +const struct mevent_client_cmd gUnknown_082F26B8[] = { {.instr = 2, .parameter = 21}, {.instr = 12, .parameter = 0}, {.instr = 20, .parameter = 0}, diff --git a/src/mevent_server_ish.c b/src/mevent_server_ish.c deleted file mode 100644 index 48f72eaad..000000000 --- a/src/mevent_server_ish.c +++ /dev/null @@ -1,291 +0,0 @@ -#include "global.h" -#include "alloc.h" -#include "decompress.h" -#include "overworld.h" -#include "script.h" -#include "battle_tower.h" -#include "mevent.h" -#include "mystery_event_script.h" -#include "mevent_server_ish.h" - -EWRAM_DATA struct mevent_srv_ish * s_mevent_srv_ish_ptr = NULL; - -static void mevent_srv_ish_init(struct mevent_srv_ish *, u32, u32); -static u32 mevent_srv_ish_exec(struct mevent_srv_ish *); -static void mevent_srv_ish_free_resources(struct mevent_srv_ish *); - -extern const struct mevent_cmd_ish gUnknown_082F2598[]; - -void mevent_srv_ish_do_init(u32 arg) -{ - s_mevent_srv_ish_ptr = AllocZeroed(sizeof(struct mevent_srv_ish)); - mevent_srv_ish_init(s_mevent_srv_ish_ptr, 1, 0); - s_mevent_srv_ish_ptr->unk_4C = arg; -} - -u32 mevent_srv_ish_do_exec(u16 * a0) -{ - u32 result; - if (s_mevent_srv_ish_ptr == NULL) - return 6; - result = mevent_srv_ish_exec(s_mevent_srv_ish_ptr); - if (result == 6) - { - *a0 = s_mevent_srv_ish_ptr->param; - mevent_srv_ish_free_resources(s_mevent_srv_ish_ptr); - Free(s_mevent_srv_ish_ptr); - s_mevent_srv_ish_ptr = NULL; - } - return result; -} - -void mevent_srv_ish_inc_flag(void) -{ - s_mevent_srv_ish_ptr->flag++; -} - -void * mevent_srv_ish_get_buffer(void) -{ - return s_mevent_srv_ish_ptr->buffer; -} - -void mevent_srv_ish_set_param(u32 a0) -{ - s_mevent_srv_ish_ptr->param = a0; -} - -static void mevent_srv_ish_init(struct mevent_srv_ish * svr, u32 sendPlayerNo, u32 recvPlayerNo) -{ - svr->unk_00 = 0; - svr->mainseqno = 0; - svr->flag = 0; - svr->sendBuffer = AllocZeroed(ME_SEND_BUF_SIZE); - svr->recvBuffer = AllocZeroed(ME_SEND_BUF_SIZE); - svr->cmdBuffer = AllocZeroed(ME_SEND_BUF_SIZE); - svr->buffer = AllocZeroed(0x40); - mevent_srv_sub_init(&svr->manager, sendPlayerNo, recvPlayerNo); -} - -static void mevent_srv_ish_free_resources(struct mevent_srv_ish * svr) -{ - Free(svr->sendBuffer); - Free(svr->recvBuffer); - Free(svr->cmdBuffer); - Free(svr->buffer); -} - -static void mevent_srv_ish_jmp_buffer(struct mevent_srv_ish * svr) -{ - memcpy(svr->cmdBuffer, svr->recvBuffer, ME_SEND_BUF_SIZE); - svr->cmdidx = 0; -} - -static void mevent_srv_ish_send_word(struct mevent_srv_ish * svr, u32 ident, u32 word) -{ - CpuFill32(0, svr->sendBuffer, ME_SEND_BUF_SIZE); - *(u32 *)svr->sendBuffer = word; - mevent_srv_sub_init_send(&svr->manager, ident, svr->sendBuffer, sizeof(u32)); -} - -static u32 ish_mainseq_0(struct mevent_srv_ish * svr) -{ - // init - memcpy(svr->cmdBuffer, gUnknown_082F2598, ME_SEND_BUF_SIZE); - svr->cmdidx = 0; - svr->mainseqno = 4; - svr->flag = 0; - return 0; -} - -static u32 ish_mainseq_1(struct mevent_srv_ish * svr) -{ - // done - return 6; -} - - -static u32 ish_mainseq_2(struct mevent_srv_ish * svr) -{ - // do recv - if (mevent_srv_sub_recv(&svr->manager)) - { - svr->mainseqno = 4; - svr->flag = 0; - } - return 1; -} - -static u32 ish_mainseq_3(struct mevent_srv_ish * svr) -{ - // do send - if (mevent_srv_sub_send(&svr->manager)) - { - svr->mainseqno = 4; - svr->flag = 0; - } - return 1; -} - -static u32 ish_mainseq_4(struct mevent_srv_ish * svr) -{ - // process command - struct mevent_cmd_ish * cmd = &svr->cmdBuffer[svr->cmdidx]; - ++svr->cmdidx; - switch (cmd->instr) - { - case 0: - break; - case 1: - svr->param = cmd->parameter; - svr->mainseqno = 1; - svr->flag = 0; - break; - case 2: - mevent_srv_sub_init_recv(&svr->manager, cmd->parameter, svr->recvBuffer); - svr->mainseqno = 2; - svr->flag = 0; - break; - case 3: - svr->mainseqno = 3; - svr->flag = 0; - break; - case 20: - mevent_srv_sub_init_send(&svr->manager, 0x14, svr->sendBuffer, 0); - svr->mainseqno = 3; - svr->flag = 0; - break; - case 19: - mevent_srv_ish_send_word(svr, 0x12, GetGameStat(cmd->parameter)); - svr->mainseqno = 3; - svr->flag = 0; - break; - case 6: - if (svr->param == 0) - mevent_srv_ish_jmp_buffer(svr); - break; - case 7: - if (svr->param == 1) - mevent_srv_ish_jmp_buffer(svr); - break; - case 4: - mevent_srv_ish_jmp_buffer(svr); - break; - case 5: - memcpy(svr->buffer, svr->recvBuffer, 0x40); - svr->mainseqno = 5; - svr->flag = 0; - return 2; - case 11: - memcpy(svr->buffer, svr->recvBuffer, 0x40); - svr->mainseqno = 5; - svr->flag = 0; - return 3; - case 12: - memcpy(svr->buffer, svr->recvBuffer, 0x40); - svr->mainseqno = 5; - svr->flag = 0; - return 5; - case 13: - svr->mainseqno = 5; - svr->flag = 0; - return 4; - case 8: - sub_801B580(svr->sendBuffer, svr->unk_4C); - mevent_srv_sub_init_send(&svr->manager, 0x11, svr->sendBuffer, sizeof(struct MEventStruct_Unk1442CC)); - break; - case 14: - mevent_srv_ish_send_word(svr, 0x13, svr->param); - break; - case 10: - sub_801B21C(svr->recvBuffer); - break; - case 9: - if (!sub_801B1A4(svr->recvBuffer)) - { - sub_801B078(svr->recvBuffer); - mevent_srv_ish_send_word(svr, 0x13, 0); - } - else - mevent_srv_ish_send_word(svr, 0x13, 1); - break; - case 15: - svr->mainseqno = 6; - svr->flag = 0; - break; - case 16: - sub_801B508(svr->recvBuffer); - break; - case 17: - InitRamScript_NoEventObject(svr->recvBuffer, 1000); - break; - case 18: - memcpy(&gSaveBlock2Ptr->frontier.ereaderTrainer, svr->recvBuffer, 0xbc); - ValidateEReaderTrainer(); - break; - case 21: - memcpy(gDecompressionBuffer, svr->recvBuffer, ME_SEND_BUF_SIZE); - svr->mainseqno = 7; - svr->flag = 0; - break; - } - - return 1; -} - -static u32 ish_mainseq_5(struct mevent_srv_ish * svr) -{ - // wait flag - if (svr->flag) - { - svr->mainseqno = 4; - svr->flag = 0; - } - return 1; -} - -static u32 ish_mainseq_6(struct mevent_srv_ish * svr) -{ - // ??? - switch (svr->flag) - { - case 0: - sub_8153870(svr->recvBuffer); - ++svr->flag; - break; - case 1: - if (!sub_8153884(&svr->param)) - { - svr->mainseqno = 4; - svr->flag = 0; - } - break; - } - return 1; -} - -static u32 ish_mainseq_7(struct mevent_srv_ish * svr) -{ - // exec arbitrary code - u32 (*func)(u32 *, struct SaveBlock2 *, struct SaveBlock1 *) = (void *)gDecompressionBuffer; - if (func(&svr->param, gSaveBlock2Ptr, gSaveBlock1Ptr) == 1) - { - svr->mainseqno = 4; - svr->flag = 0; - } - return 1; -} - -static u32 mevent_srv_ish_exec(struct mevent_srv_ish * svr) -{ - u32 (*funcs[])(struct mevent_srv_ish *) = { - ish_mainseq_0, - ish_mainseq_1, - ish_mainseq_2, - ish_mainseq_3, - ish_mainseq_4, - ish_mainseq_5, - ish_mainseq_6, - ish_mainseq_7 - }; - return funcs[svr->mainseqno](svr); -} diff --git a/src/mystery_gift.c b/src/mystery_gift.c index c935e9b25..ab3df9020 100644 --- a/src/mystery_gift.c +++ b/src/mystery_gift.c @@ -25,7 +25,7 @@ #include "mevent_801BAAC.h" #include "save.h" #include "link.h" -#include "mevent_server_ish.h" +#include "mevent_client.h" #include "event_data.h" #include "link_rfu.h" #include "mevent_news.h" @@ -1269,7 +1269,7 @@ void task00_mystery_gift(u8 taskId) { ClearScreenInBg0(TRUE); data->state = 7; - mevent_srv_ish_do_init(data->IsCardOrNews); + mevent_client_do_init(data->IsCardOrNews); } else if (gSpecialVar_Result == 5) { @@ -1282,7 +1282,7 @@ void task00_mystery_gift(u8 taskId) data->state = 8; break; case 8: - switch (mevent_srv_ish_do_exec(&data->curPromptWindowId)) + switch (mevent_client_do_exec(&data->curPromptWindowId)) { case 6: task_add_05_task_del_08FA224_when_no_RfuFunc(); @@ -1290,8 +1290,8 @@ void task00_mystery_gift(u8 taskId) data->state = 13; break; case 5: - memcpy(data->buffer, mevent_srv_ish_get_buffer(), 0x40); - mevent_srv_ish_inc_flag(); + memcpy(data->buffer, mevent_client_get_buffer(), 0x40); + mevent_client_inc_flag(); break; case 3: data->state = 10; @@ -1306,29 +1306,29 @@ void task00_mystery_gift(u8 taskId) } break; case 9: - switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, mevent_srv_ish_get_buffer())) + switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, mevent_client_get_buffer())) { case 0: - mevent_srv_ish_set_param(0); - mevent_srv_ish_inc_flag(); + mevent_client_set_param(0); + mevent_client_inc_flag(); data->state = 7; break; case 1: - mevent_srv_ish_set_param(1); - mevent_srv_ish_inc_flag(); + mevent_client_set_param(1); + mevent_client_inc_flag(); data->state = 7; break; case -1u: - mevent_srv_ish_set_param(1); - mevent_srv_ish_inc_flag(); + mevent_client_set_param(1); + mevent_client_inc_flag(); data->state = 7; break; } break; case 10: - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, mevent_srv_ish_get_buffer())) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, mevent_client_get_buffer())) { - mevent_srv_ish_inc_flag(); + mevent_client_inc_flag(); data->state = 7; } break; @@ -1342,19 +1342,19 @@ void task00_mystery_gift(u8 taskId) } else { - mevent_srv_ish_set_param(0); - mevent_srv_ish_inc_flag(); + mevent_client_set_param(0); + mevent_client_inc_flag(); data->state = 7; } break; case 1: - mevent_srv_ish_set_param(1); - mevent_srv_ish_inc_flag(); + mevent_client_set_param(1); + mevent_client_inc_flag(); data->state = 7; break; case -1u: - mevent_srv_ish_set_param(1); - mevent_srv_ish_inc_flag(); + mevent_client_set_param(1); + mevent_client_inc_flag(); data->state = 7; break; } @@ -1363,18 +1363,18 @@ void task00_mystery_gift(u8 taskId) switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, gText_HaventReceivedCardsGift)) { case 0: - mevent_srv_ish_set_param(0); - mevent_srv_ish_inc_flag(); + mevent_client_set_param(0); + mevent_client_inc_flag(); data->state = 7; break; case 1: - mevent_srv_ish_set_param(1); - mevent_srv_ish_inc_flag(); + mevent_client_set_param(1); + mevent_client_inc_flag(); data->state = 7; break; case -1u: - mevent_srv_ish_set_param(1); - mevent_srv_ish_inc_flag(); + mevent_client_set_param(1); + mevent_client_inc_flag(); data->state = 7; break; } -- cgit v1.2.3 From 33ee31b2e099a3e2cefa2542f710d51087e09a83 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 2 Apr 2019 14:48:27 -0400 Subject: remove last remaining trace of "ish" --- src/mevent_client.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/mevent_client.c b/src/mevent_client.c index cdf976a41..ec8908af2 100644 --- a/src/mevent_client.c +++ b/src/mevent_client.c @@ -87,7 +87,7 @@ static void mevent_client_send_word(struct mevent_client * svr, u32 ident, u32 w mevent_srv_sub_init_send(&svr->manager, ident, svr->sendBuffer, sizeof(u32)); } -static u32 ish_mainseq_0(struct mevent_client * svr) +static u32 mainseq_0(struct mevent_client * svr) { // init memcpy(svr->cmdBuffer, gUnknown_082F2598, ME_SEND_BUF_SIZE); @@ -97,14 +97,14 @@ static u32 ish_mainseq_0(struct mevent_client * svr) return 0; } -static u32 ish_mainseq_1(struct mevent_client * svr) +static u32 mainseq_1(struct mevent_client * svr) { // done return 6; } -static u32 ish_mainseq_2(struct mevent_client * svr) +static u32 mainseq_2(struct mevent_client * svr) { // do recv if (mevent_srv_sub_recv(&svr->manager)) @@ -115,7 +115,7 @@ static u32 ish_mainseq_2(struct mevent_client * svr) return 1; } -static u32 ish_mainseq_3(struct mevent_client * svr) +static u32 mainseq_3(struct mevent_client * svr) { // do send if (mevent_srv_sub_send(&svr->manager)) @@ -126,7 +126,7 @@ static u32 ish_mainseq_3(struct mevent_client * svr) return 1; } -static u32 ish_mainseq_4(struct mevent_client * svr) +static u32 mainseq_4(struct mevent_client * svr) { // process command struct mevent_client_cmd * cmd = &svr->cmdBuffer[svr->cmdidx]; @@ -232,7 +232,7 @@ static u32 ish_mainseq_4(struct mevent_client * svr) return 1; } -static u32 ish_mainseq_5(struct mevent_client * svr) +static u32 mainseq_5(struct mevent_client * svr) { // wait flag if (svr->flag) @@ -243,7 +243,7 @@ static u32 ish_mainseq_5(struct mevent_client * svr) return 1; } -static u32 ish_mainseq_6(struct mevent_client * svr) +static u32 mainseq_6(struct mevent_client * svr) { // ??? switch (svr->flag) @@ -263,7 +263,7 @@ static u32 ish_mainseq_6(struct mevent_client * svr) return 1; } -static u32 ish_mainseq_7(struct mevent_client * svr) +static u32 mainseq_7(struct mevent_client * svr) { // exec arbitrary code u32 (*func)(u32 *, struct SaveBlock2 *, struct SaveBlock1 *) = (void *)gDecompressionBuffer; @@ -278,14 +278,14 @@ static u32 ish_mainseq_7(struct mevent_client * svr) static u32 mevent_client_exec(struct mevent_client * svr) { u32 (*funcs[])(struct mevent_client *) = { - ish_mainseq_0, - ish_mainseq_1, - ish_mainseq_2, - ish_mainseq_3, - ish_mainseq_4, - ish_mainseq_5, - ish_mainseq_6, - ish_mainseq_7 + mainseq_0, + mainseq_1, + mainseq_2, + mainseq_3, + mainseq_4, + mainseq_5, + mainseq_6, + mainseq_7 }; return funcs[svr->mainseqno](svr); } -- cgit v1.2.3 From 4fadbaf16153c0160f6ad38dc0053e7ff6db7472 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 3 Apr 2019 09:55:17 -0400 Subject: Minor fixes gotoram --> returnram cmdCF/execram --> gotoram fix indentation in sym_ewram.txt fix mevent_client.h guard name --- src/link_rfu.c | 2 +- src/mevent_server_helpers.c | 8 ++++---- src/overworld.c | 2 +- src/scrcmd.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/link_rfu.c b/src/link_rfu.c index 1e4c9c7e6..7c55df783 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -3674,7 +3674,7 @@ void sub_8010168(void) gUnknown_03005000.unk_00 = sub_8010148; } -void sub_8010198(void) +void LinkRfu_FatalError(void) { sub_800D630(); gUnknown_03005000.unk_ce4 = 1; diff --git a/src/mevent_server_helpers.c b/src/mevent_server_helpers.c index af14b514c..9d47ba745 100644 --- a/src/mevent_server_helpers.c +++ b/src/mevent_server_helpers.c @@ -96,12 +96,12 @@ static bool32 mevent_receive_func(struct mevent_srv_sub * svr) svr->recvCRC = header.crc; if (svr->recvSize > ME_SEND_BUF_SIZE) { - sub_8010198(); + LinkRfu_FatalError(); return FALSE; } else if (svr->recvIdent != header.ident) { - sub_8010198(); + LinkRfu_FatalError(); return FALSE; } else @@ -133,7 +133,7 @@ static bool32 mevent_receive_func(struct mevent_srv_sub * svr) case 2: if (CalcCRC16WithTable(svr->recvBfr, svr->recvSize) != svr->recvCRC) { - sub_8010198(); + LinkRfu_FatalError(); return FALSE; } else @@ -192,7 +192,7 @@ static bool32 mevent_send_func(struct mevent_srv_sub * svr) if (IsLinkTaskFinished()) { if (CalcCRC16WithTable(svr->sendBfr, svr->sendSize) != svr->sendCRC) - sub_8010198(); + LinkRfu_FatalError(); else ++svr->seqno; } diff --git a/src/overworld.c b/src/overworld.c index ae6efefd7..9ed147c0a 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -2287,7 +2287,7 @@ static void SetKeyInterceptCallback(u16 (*func)(u32)) static void CheckRfuKeepAliveTimer(void) { if (gWirelessCommType != 0 && ++sRfuKeepAliveTimer > 60) - sub_8010198(); + LinkRfu_FatalError(); } static void ResetAllTradingStates(void) diff --git a/src/scrcmd.c b/src/scrcmd.c index 0b1006cef..125a57c01 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -281,7 +281,7 @@ bool8 ScrCmd_callstd_if(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_gotoram(struct ScriptContext *ctx) +bool8 ScrCmd_returnram(struct ScriptContext *ctx) { ScriptJump(ctx, gUnknown_020375C0); return FALSE; @@ -2215,7 +2215,7 @@ bool8 ScrCmd_checkmonobedience(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdCF(struct ScriptContext *ctx) +bool8 ScrCmd_gotoram(struct ScriptContext *ctx) { const u8* v1 = GetSavedRamScriptIfValid(); -- cgit v1.2.3 From 48d27c035ae194419317884f64ddf4beec001e7c Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Wed, 3 Apr 2019 15:15:08 -0700 Subject: Remove pokemon_3.h --- src/main_menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main_menu.c b/src/main_menu.c index 8c9612c24..504c1bd33 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -23,7 +23,7 @@ #include "palette.h" #include "pokeball.h" #include "pokedex.h" -#include "pokemon_3.h" +#include "pokemon.h" #include "random.h" #include "rtc.h" #include "save.h" -- cgit v1.2.3 From 91a94a0ca1f2df00a776c85b40d76c193977d13a Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Wed, 3 Apr 2019 21:13:26 -0700 Subject: Try to get closer to matching. --- src/battle_script_commands.c | 8 +-- src/menu_specialized.c | 160 +++++++++++++++++++++++++------------------ 2 files changed, 97 insertions(+), 71 deletions(-) (limited to 'src') diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 0a0c34ad2..d1d8d87ac 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6295,16 +6295,16 @@ static void sub_804F100(void) { struct StatsArray currentStats; - GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], ¤tStats); - DrawLevelUpWindowPg1(0xD, gBattleResources->statsBeforeLvlUp, ¤tStats, 0xE, 0xD, 0xF); + GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], (u16*) ¤tStats); + DrawLevelUpWindowPg1(0xD, (u16*) gBattleResources->statsBeforeLvlUp,(u16*) ¤tStats, 0xE, 0xD, 0xF); } static void sub_804F144(void) { struct StatsArray currentStats; - GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], ¤tStats); - DrawLevelUpWindowPg2(0xD, ¤tStats, 0xE, 0xD, 0xF); + GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], (u16*) ¤tStats); + DrawLevelUpWindowPg2(0xD, (u16*) ¤tStats, 0xE, 0xD, 0xF); } static void sub_804F17C(void) diff --git a/src/menu_specialized.c b/src/menu_specialized.c index c8c46fbc1..58ed6e982 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -1643,47 +1643,51 @@ static void sub_81D35E8(struct Sprite *sprite) #ifdef NONMATCHING -void DrawLevelUpWindowPg1(u8 arg0, u16 *statStoreLocation1, u16 *statStoreLocation2, u8 arg3, u8 arg4, u8 arg5) +void DrawLevelUpWindowPg1(u16 arg0, u16 *statStoreLocation1, u16 *statStoreLocation2, u8 arg3, u8 arg4, u8 arg5) { - s32 i; + u16 i; s16 array[6]; u8 *text; - u8 *text2; - s16 *ptr; - u8 something[14]; + u8 text2; + s16 *statVal; s32 var; - u8 var2; + u8 padding; s32 var3; + u8 color[11]; + FillWindowPixelBuffer(arg0, PIXEL_FILL(arg3)); + + array[0] = statStoreLocation2[STAT_HP] - statStoreLocation1[STAT_HP]; + array[1] = statStoreLocation2[STAT_ATK] - statStoreLocation1[STAT_ATK]; + array[2] = statStoreLocation2[STAT_DEF] - statStoreLocation1[STAT_DEF]; + array[3] = statStoreLocation2[STAT_SPATK] - statStoreLocation1[STAT_SPATK]; + array[4] = statStoreLocation2[STAT_SPDEF] - statStoreLocation1[STAT_SPDEF]; + array[5] = statStoreLocation2[STAT_SPEED] - statStoreLocation1[STAT_SPEED]; + + color[0] = arg3; + color[1] = arg4; + color[2] = arg5; - - - - FillWindowPixelBuffer(arg0, arg3 * 16 | arg3); - - - array[0] = statStoreLocation2[0] - statStoreLocation1[0]; - array[1] = statStoreLocation2[1] - statStoreLocation1[1]; - array[2] = statStoreLocation2[2] - statStoreLocation1[2]; - array[3] = statStoreLocation2[4] - statStoreLocation1[4]; - array[4] = statStoreLocation2[5] - statStoreLocation1[5]; - array[5] = statStoreLocation2[3] - statStoreLocation1[3]; - - - for(i = 0; i < 6; i++) + for(i = 0; i <= 5; i++) { - AddTextPrinterParameterized3(arg0, 1, 0, 15 * i, &arg3, TEXT_SPEED_FF, gUnknown_08625B54[i]); - ptr = &array[i]; - text = (u8 *) gText_Dash; - - if(*ptr >= 0) - { - text = (u8 *) gText_UnkCtrlF904; - } - - StringCopy(text2, text); - AddTextPrinterParameterized3(arg0, 1, 56, 15 * i, &arg3, TEXT_SPEED_FF, text2); - var3 = *ptr; + AddTextPrinterParameterized3(arg0, + 1, + 0, + 15 * i, + color, + TEXT_SPEED_FF, + gUnknown_08625B54[i]); + statVal = &array[i]; + text = array[i] >= 0 ? (u8 *) gText_UnkCtrlF904 : (u8 *) gText_Dash;//Plus sign for stat gain, dash for none maybe + StringCopy(&text2, text); + AddTextPrinterParameterized3(arg0, + 1, + 56, + 15 * i, + color, + TEXT_SPEED_FF, + &text2); + var3 = *statVal; var = var3; if(var3 < 0) @@ -1691,11 +1695,11 @@ void DrawLevelUpWindowPg1(u8 arg0, u16 *statStoreLocation1, u16 *statStoreLocati var = -var3; } - var2 = 12; + padding = 12; //amount of padding if(var <= 9) { - var2 = 18; + padding = 18; //more padding for single digit numbers } if(var3 < 0) @@ -1703,8 +1707,14 @@ void DrawLevelUpWindowPg1(u8 arg0, u16 *statStoreLocation1, u16 *statStoreLocati var3 = -var3; } - ConvertIntToDecimalStringN(text2, var3, 0, 2); - AddTextPrinterParameterized3(arg0, 1, var2 + 56, 15 * i, &arg3, TEXT_SPEED_FF, text2); + ConvertIntToDecimalStringN(&text2, var3, STR_CONV_MODE_LEFT_ALIGN, 2); + AddTextPrinterParameterized3(arg0, + 1, + padding + 56, + 15 * i, + color, + TEXT_SPEED_FF, + &text2); } } #else @@ -1872,43 +1882,59 @@ _081D373A:\n\ #endif // NONMATCHING #ifdef NONMATCHING -void DrawLevelUpWindowPg2(u16 arg0, u16* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4) +void DrawLevelUpWindowPg2(u16 arg0, u16 *statStoreLocation1, u8 arg2, u8 arg3, u8 arg4) { s32 i; - s32 var; - s32 var2; + s16 *var; + s32 numDigits; u8 text; s16 array[6]; - u8 *something; - u8 some; - FillWindowPixelBuffer(arg0, arg2 * 16 | arg2); - array[0] = statStoreLocation1[0]; - array[1] = statStoreLocation1[1]; - array[2] = statStoreLocation1[2]; - array[3] = statStoreLocation1[4]; - array[4] = statStoreLocation1[5]; - array[5] = statStoreLocation1[3]; + u8 color[11]; + + FillWindowPixelBuffer(arg0, PIXEL_FILL(arg2)); + + array[0] = statStoreLocation1[STAT_HP]; + array[1] = statStoreLocation1[STAT_ATK]; + array[2] = statStoreLocation1[STAT_DEF]; + array[3] = statStoreLocation1[STAT_SPATK]; + array[4] = statStoreLocation1[STAT_SPDEF]; + array[5] = statStoreLocation1[STAT_SPEED]; + + color[0] = arg2; + color[1] = arg3; + color[2] = arg4; + for(i = 0; i <= 5; i++) { - var = array[i]; - var2 = 3; - if(var <= 99) + numDigits = 3; //3 digit stat + if(array[i] <= 99) { - var2 = 1; - if(var > 9) + numDigits = 1; //1 digit stat + if(array[i] > 9) { - var2 = 2; + numDigits = 2; //2 digit stat } } - something = ConvertIntToDecimalStringN(&text, array[i], 0, var2); - some = (((4 - *something) * 2) + *something) * 2; - AddTextPrinterParameterized3(arg0, 1, 0, 15 * i, &arg2, TEXT_SPEED_FF, gUnknown_08625B54[i]); - AddTextPrinterParameterized3(arg0, 1, some + 56, 15 * i, &arg2, TEXT_SPEED_FF, &text); + ConvertIntToDecimalStringN(&text, array[i], STR_CONV_MODE_LEFT_ALIGN, numDigits); + AddTextPrinterParameterized3(arg0, + 1, + 0, + 15 * i, + color, + TEXT_SPEED_FF, + gUnknown_08625B54[i]); + AddTextPrinterParameterized3(arg0, + 1, + 6 * (4 - numDigits) + 56, + 15 * i, + color, + TEXT_SPEED_FF, + &text); } } #else NAKED -void DrawLevelUpWindowPg2(u16 arg0, u16* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4) +void DrawLevelUpWindowPg2(u16 arg0, u16 *statStoreLocation1, u8 arg2, u8 arg3, u8 arg4) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -2043,14 +2069,14 @@ _081D3808:\n\ } #endif // NONMATCHING -void GetMonLevelUpWindowStats(struct Pokemon* mon, u16* statStoreLocation) +void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *statStoreLocation) { - statStoreLocation[0] = GetMonData(mon, MON_DATA_MAX_HP); - statStoreLocation[1] = GetMonData(mon, MON_DATA_ATK); - statStoreLocation[2] = GetMonData(mon, MON_DATA_DEF); - statStoreLocation[3] = GetMonData(mon, MON_DATA_SPEED); - statStoreLocation[4] = GetMonData(mon, MON_DATA_SPATK); - statStoreLocation[5] = GetMonData(mon, MON_DATA_SPDEF); + statStoreLocation[STAT_HP] = GetMonData(mon, MON_DATA_MAX_HP); + statStoreLocation[STAT_ATK] = GetMonData(mon, MON_DATA_ATK); + statStoreLocation[STAT_DEF] = GetMonData(mon, MON_DATA_DEF); + statStoreLocation[STAT_SPEED] = GetMonData(mon, MON_DATA_SPEED); + statStoreLocation[STAT_SPATK] = GetMonData(mon, MON_DATA_SPATK); + statStoreLocation[STAT_SPDEF] = GetMonData(mon, MON_DATA_SPDEF); } -- cgit v1.2.3 From 64da3d051ecf8617c081f64a49f62c7e79354585 Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Wed, 3 Apr 2019 21:15:45 -0700 Subject: Fix formatting. --- src/menu_specialized.c | 108 ++++++++++++++++++++----------------------------- 1 file changed, 43 insertions(+), 65 deletions(-) (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 58ed6e982..cbdef3d39 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -1653,10 +1653,10 @@ void DrawLevelUpWindowPg1(u16 arg0, u16 *statStoreLocation1, u16 *statStoreLocat s32 var; u8 padding; s32 var3; - u8 color[11]; + u8 color[11]; FillWindowPixelBuffer(arg0, PIXEL_FILL(arg3)); - + array[0] = statStoreLocation2[STAT_HP] - statStoreLocation1[STAT_HP]; array[1] = statStoreLocation2[STAT_ATK] - statStoreLocation1[STAT_ATK]; array[2] = statStoreLocation2[STAT_DEF] - statStoreLocation1[STAT_DEF]; @@ -1665,28 +1665,28 @@ void DrawLevelUpWindowPg1(u16 arg0, u16 *statStoreLocation1, u16 *statStoreLocat array[5] = statStoreLocation2[STAT_SPEED] - statStoreLocation1[STAT_SPEED]; color[0] = arg3; - color[1] = arg4; - color[2] = arg5; + color[1] = arg4; + color[2] = arg5; for(i = 0; i <= 5; i++) { AddTextPrinterParameterized3(arg0, - 1, - 0, - 15 * i, - color, - TEXT_SPEED_FF, - gUnknown_08625B54[i]); + 1, + 0, + 15 * i, + color, + TEXT_SPEED_FF, + gUnknown_08625B54[i]); statVal = &array[i]; text = array[i] >= 0 ? (u8 *) gText_UnkCtrlF904 : (u8 *) gText_Dash;//Plus sign for stat gain, dash for none maybe StringCopy(&text2, text); AddTextPrinterParameterized3(arg0, - 1, - 56, - 15 * i, - color, - TEXT_SPEED_FF, - &text2); + 1, + 56, + 15 * i, + color, + TEXT_SPEED_FF, + &text2); var3 = *statVal; var = var3; @@ -1709,12 +1709,12 @@ void DrawLevelUpWindowPg1(u16 arg0, u16 *statStoreLocation1, u16 *statStoreLocat ConvertIntToDecimalStringN(&text2, var3, STR_CONV_MODE_LEFT_ALIGN, 2); AddTextPrinterParameterized3(arg0, - 1, - padding + 56, - 15 * i, - color, - TEXT_SPEED_FF, - &text2); + 1, + padding + 56, + 15 * i, + color, + TEXT_SPEED_FF, + &text2); } } #else @@ -1889,21 +1889,21 @@ void DrawLevelUpWindowPg2(u16 arg0, u16 *statStoreLocation1, u8 arg2, u8 arg3, u s32 numDigits; u8 text; s16 array[6]; - u8 color[11]; - + u8 color[11]; + FillWindowPixelBuffer(arg0, PIXEL_FILL(arg2)); - + array[0] = statStoreLocation1[STAT_HP]; array[1] = statStoreLocation1[STAT_ATK]; array[2] = statStoreLocation1[STAT_DEF]; array[3] = statStoreLocation1[STAT_SPATK]; array[4] = statStoreLocation1[STAT_SPDEF]; array[5] = statStoreLocation1[STAT_SPEED]; - - color[0] = arg2; - color[1] = arg3; - color[2] = arg4; - + + color[0] = arg2; + color[1] = arg3; + color[2] = arg4; + for(i = 0; i <= 5; i++) { numDigits = 3; //3 digit stat @@ -1917,19 +1917,19 @@ void DrawLevelUpWindowPg2(u16 arg0, u16 *statStoreLocation1, u8 arg2, u8 arg3, u } ConvertIntToDecimalStringN(&text, array[i], STR_CONV_MODE_LEFT_ALIGN, numDigits); AddTextPrinterParameterized3(arg0, - 1, - 0, - 15 * i, - color, - TEXT_SPEED_FF, - gUnknown_08625B54[i]); + 1, + 0, + 15 * i, + color, + TEXT_SPEED_FF, + gUnknown_08625B54[i]); AddTextPrinterParameterized3(arg0, - 1, - 6 * (4 - numDigits) + 56, - 15 * i, - color, - TEXT_SPEED_FF, - &text); + 1, + 6 * (4 - numDigits) + 56, + 15 * i, + color, + TEXT_SPEED_FF, + &text); } } #else @@ -2071,32 +2071,10 @@ _081D3808:\n\ void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *statStoreLocation) { - statStoreLocation[STAT_HP] = GetMonData(mon, MON_DATA_MAX_HP); + statStoreLocation[STAT_HP] = GetMonData(mon, MON_DATA_MAX_HP); statStoreLocation[STAT_ATK] = GetMonData(mon, MON_DATA_ATK); statStoreLocation[STAT_DEF] = GetMonData(mon, MON_DATA_DEF); statStoreLocation[STAT_SPEED] = GetMonData(mon, MON_DATA_SPEED); statStoreLocation[STAT_SPATK] = GetMonData(mon, MON_DATA_SPATK); statStoreLocation[STAT_SPDEF] = GetMonData(mon, MON_DATA_SPDEF); } - - - - - - - - - - - - - - - - - - - - - - -- cgit v1.2.3 From a47abb3949f8d1050379f51005368a5093c15113 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 3 Apr 2019 21:46:59 -0400 Subject: union_room_chat data, 1 --- src/union_room_chat.c | 240 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 214 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/union_room_chat.c b/src/union_room_chat.c index 120252d36..1528cdd5f 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -190,22 +190,33 @@ static void sub_80209E0(void); static bool32 sub_8020A1C(void); static void sub_80207C0(s16); static void sub_8020818(s16); +static bool32 sub_801F658(u8 *state); +static bool32 sub_801F6F8(u8 *state); +static bool32 sub_801F730(u8 *state); +static bool32 sub_801F768(u8 *state); +static bool32 sub_801F7D4(u8 *state); +static bool32 sub_801F7E0(u8 *state); +static bool32 sub_801F82C(u8 *state); +static bool32 sub_801F870(u8 *state); +static bool32 sub_801F8DC(u8 *state); +static bool32 sub_801F984(u8 *state); +static bool32 sub_801FA2C(u8 *state); +static bool32 sub_801FA68(u8 *state); +static bool32 sub_801FB44(u8 *state); +static bool32 sub_801FB70(u8 *state); +static bool32 sub_801FBB4(u8 *state); +static bool32 sub_801FBF8(u8 *state); +static bool32 sub_801FC4C(u8 *state); +static bool32 sub_801FC9C(u8 *state); +static bool32 sub_801FCEC(u8 *state); +static bool32 sub_801FD30(u8 *state); +static bool32 sub_801FD88(u8 *state); extern struct UnionRoomChat *gUnknown_02022C84; extern struct UnionRoomChat2 *gUnknown_02022C88; extern struct UnionRoomChat3 *gUnknown_02022C8C; - -extern const u8 *const gUnknown_082F2BA8[][10]; -extern const u8 gUnknown_082F2AA8[]; -extern const struct BgTemplate gUnknown_082F2C60[4]; -extern const struct WindowTemplate gUnknown_082F2C70[]; -extern const struct Unk82F2C98 gUnknown_082F2C98[]; -extern const struct Unk82F2D40 gUnknown_082F2D40[]; -extern const u8 gText_Ellipsis[]; -extern const struct MenuAction gUnknown_082F2DC8[]; extern const u16 gUnknown_082F2C20[]; extern const u16 gUnknown_082F2C40[]; -extern const struct CompressedSpriteSheet gUnknown_082F3134[]; extern const struct SpritePalette gUnknown_082F315C; extern const struct SpriteTemplate gUnknown_082F319C; extern const u16 gUnknown_082F2DF0[]; @@ -214,6 +225,199 @@ extern const struct SpriteTemplate gUnknown_082F31D4; extern const struct SpriteTemplate gUnknown_082F322C; extern const struct SpriteTemplate gUnknown_082F3244; +void (*const gUnknown_082F2A7C[])(void) = + { + sub_801DFAC, + sub_801E030, + sub_801E120, + sub_801E240, + sub_801E764, + sub_801E838, + sub_801E460, + sub_801E5C4, + sub_801E668, + sub_801E978, + }; + +static const u8 sUnknown_082F2AA4[] = {9, 9, 9, 9}; + +static const u8 gUnknown_082F2AA8[] = { + CHAR_SPACE, 0x16, 0x17, 0x68, 0x19, 0x1A, 0x1B, 0x1C, + 0x1D, 0x1E, CHAR_SPACE, 0x20, 0x21, 0x22, 0x23, 0x24, + 0x25, 0x26, 0x27, 0x28, 0x29, 0x15, 0x01, 0x02, + CHAR_SPACE, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, CHAR_SPACE, + 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, + 0x13, 0x14, 0x2A, 0x2B, 0x2C, 0x2D, CHAR_SPACE, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, 0x35, 0x36, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, 0x53, 0x54, 0x55, 0x56, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, 0x6F, 0x5B, 0x5C, 0x5D, CHAR_SPACE, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, + 0x03, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, 0x5A, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, 0x84, 0x85, 0x86, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, + 0xA0, CHAR_0, CHAR_1, CHAR_2, CHAR_3, CHAR_4, CHAR_5, CHAR_6, + CHAR_7, CHAR_8, CHAR_9, CHAR_EXCL_MARK, CHAR_QUESTION_MARK, CHAR_PERIOD, CHAR_HYPHEN, 0xAF, + CHAR_ELLIPSIS, CHAR_DBL_QUOT_LEFT, CHAR_DBL_QUOT_RIGHT, CHAR_SGL_QUOT_LEFT, CHAR_SGL_QUOT_RIGHT, CHAR_MALE, CHAR_FEMALE, CHAR_CURRENCY, + CHAR_COMMA, CHAR_MULT_SIGN, CHAR_SLASH, CHAR_a, CHAR_b, CHAR_c, CHAR_d, CHAR_e, + CHAR_f, CHAR_g, CHAR_h, CHAR_i, CHAR_j, CHAR_k, CHAR_l, CHAR_m, + CHAR_n, CHAR_o, CHAR_p, CHAR_q, CHAR_r, CHAR_s, CHAR_t, CHAR_u, + CHAR_v, CHAR_w, CHAR_x, CHAR_y, CHAR_z, CHAR_A, CHAR_B, CHAR_C, + CHAR_D, CHAR_E, CHAR_F, CHAR_G, CHAR_H, CHAR_I, CHAR_J, CHAR_K, + CHAR_L, CHAR_M, CHAR_N, CHAR_O, CHAR_P, CHAR_Q, CHAR_R, CHAR_S, + CHAR_T, CHAR_U, CHAR_V, CHAR_W, CHAR_X, CHAR_Y, CHAR_Z, 0xEF, + CHAR_COLON, 0xF4, 0xF5, 0xF6, 0xF1, 0xF2, 0xF3, CHAR_SPACE, + CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE +}; + +const u8 *const gUnknown_082F2BA8[][10] = { + {gUnknown_0862B9F9, gUnknown_0862B9FF, gUnknown_0862BA05, gUnknown_0862BA0B, gUnknown_0862BA11, gUnknown_0862BA17, gUnknown_0862BA1D, gUnknown_0862BA23, gUnknown_0862BA29, gUnknown_0862BA2F}, + {gUnknown_0862BA35, gUnknown_0862BA3B, gUnknown_0862BA41, gUnknown_0862BA47, gUnknown_0862BA4D, gUnknown_0862BA53, gUnknown_0862BA59, gUnknown_0862BA5F, gUnknown_0862BA65, gUnknown_0862BA6B}, + {gUnknown_0862BA79, gUnknown_0862BA84, gUnknown_0862BA8F, gUnknown_0862BA9A, gUnknown_0862BAA3, gUnknown_0862BAAE, gUnknown_0862BAB9, gUnknown_0862BAC4, gUnknown_0862BACF, gUnknown_0862BADA} +}; + +const u16 gUnknown_082F2C20[] = INCBIN_U16("graphics/interface/unk_palette1.gbapal"); +const u16 gUnknown_082F2C40[] = INCBIN_U16("graphics/interface/unk_palette2.gbapal"); + +const struct BgTemplate gUnknown_082F2C60[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 7, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, { + .bg = 1, + .charBaseIndex = 3, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 23, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, { + .bg = 3, + .charBaseIndex = 1, + .mapBaseIndex = 15, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 1 + } +}; + +const struct WindowTemplate gUnknown_082F2C70[] = { + { + .bg = 0x03, + .tilemapLeft = 0x08, + .tilemapTop = 0x01, + .width = 0x15, + .height = 0x13, + .paletteNum = 0x0f, + .baseBlock = 0x0001, + }, { + .bg = 0x01, + .tilemapLeft = 0x09, + .tilemapTop = 0x12, + .width = 0x0f, + .height = 0x02, + .paletteNum = 0x0c, + .baseBlock = 0x007a, + }, { + .bg = 0x01, + .tilemapLeft = 0x00, + .tilemapTop = 0x02, + .width = 0x06, + .height = 0x0f, + .paletteNum = 0x07, + .baseBlock = 0x0020, + }, { + .bg = 0x00, + .tilemapLeft = 0x01, + .tilemapTop = 0x02, + .width = 0x07, + .height = 0x09, + .paletteNum = 0x0e, + .baseBlock = 0x0013, + }, { 0xFF } +}; + +const struct Unk82F2C98 gUnknown_082F2C98[] = { + {0x00000000, sub_801F658}, + {0x00000003, sub_801F6F8}, + {0x00000004, sub_801F730}, + {0x00000005, sub_801F768}, + {0x00000001, sub_801F7D4}, + {0x00000006, sub_801F7E0}, + {0x00000007, sub_801F82C}, + {0x00000008, sub_801F870}, + {0x00000009, sub_801F8DC}, + {0x0000000a, sub_801F984}, + {0x0000000b, sub_801FA2C}, + {0x0000000c, sub_801FA68}, + {0x00000002, sub_801FB44}, + {0x0000000d, sub_801FB70}, + {0x00000012, sub_801FBB4}, + {0x00000013, sub_801FBF8}, + {0x0000000e, sub_801FC4C}, + {0x0000000f, sub_801FC9C}, + {0x00000010, sub_801FCEC}, + {0x00000011, sub_801FD30}, + {0x00000014, sub_801FD88} +}; + +const struct Unk82F2D40 gUnknown_082F2D40[] = { + {gText_QuitChatting, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}, + {gText_RegisterTextWhere, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}, + {gText_RegisterTextHere, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}, + {gText_InputText, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}, + {gText_ExitingChat, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}, + {gText_LeaderLeftEndingChat, 0x02, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00}, + {gText_RegisteredTextChanged, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01}, + {gText_AlreadySavedFile_Unused, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01}, + {gText_SavingDontTurnOff_Unused, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01}, + {gText_PlayerSavedGame_Unused, 0x02, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01}, + {gText_IfLeaderLeavesChatEnds, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01} +}; + +const u8 gText_Ellipsis[] = _("…"); + +const struct MenuAction gUnknown_082F2DC8[] = { + {gText_Upper, NULL}, + {gText_Lower, NULL}, + {gText_Symbols, NULL}, + {gText_Register2, NULL}, + {gText_Exit2, NULL}, +}; + +const u16 gUnknown_082F2DF0[] = INCBIN_U16("graphics/interface/unk_palette3.gbapal"); +const u32 gUnknown_082F2E10[] = INCBIN_U32("graphics/interface/unk_cursor.4bpp.lz"); +const u32 gUnknown_082F3094[] = INCBIN_U32("graphics/interface/unk_dash.4bpp.lz"); +const u32 gUnknown_082F30B4[] = INCBIN_U32("graphics/interface/unk_cursor_arrow.4bpp.lz"); +const u32 gUnknown_082F30E0[] = INCBIN_U32("graphics/interface/unk_rbutton.4bpp.lz"); + +const struct CompressedSpriteSheet gUnknown_082F3134[] = { + {gUnknown_082F2E10, 0x1000, 0x0000}, + {gUnknown_082F30B4, 0x0040, 0x0001}, + {gUnknown_082F3094, 0x0040, 0x0002}, + {gUnknown_082F30E0, 0x0080, 0x0003}, + {gUnknown_08DD4CF8, 0x0400, 0x0004} +}; void sub_801DD98(void) { @@ -305,20 +509,6 @@ static void sub_801DF38(void) UpdatePaletteFade(); } -void (*const gUnknown_082F2A7C[])(void) = -{ - sub_801DFAC, - sub_801E030, - sub_801E120, - sub_801E240, - sub_801E764, - sub_801E838, - sub_801E460, - sub_801E5C4, - sub_801E668, - sub_801E978, -}; - static void sub_801DF54(u8 taskId) { switch (gUnknown_02022C84->unk17) @@ -939,8 +1129,6 @@ static void sub_801EBD4(u16 arg0) gUnknown_02022C84->unk6 = 0; } -static const u8 sUnknown_082F2AA4[] = {9, 9, 9, 9}; - static bool32 sub_801EBE4(void) { if (!(gMain.newAndRepeatedKeys & DPAD_UP)) -- cgit v1.2.3 From 53efbe2832f5e7a6973c3c5a6a6d7240ea5ecbdd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Apr 2019 08:49:01 -0400 Subject: Finish decomp of union_room_chat --- src/union_room_chat.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 136 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/union_room_chat.c b/src/union_room_chat.c index 1528cdd5f..ffe30d863 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -211,6 +211,8 @@ static bool32 sub_801FC9C(u8 *state); static bool32 sub_801FCEC(u8 *state); static bool32 sub_801FD30(u8 *state); static bool32 sub_801FD88(u8 *state); +static void sub_8020ABC(struct Sprite *sprite); +static void sub_8020AF4(struct Sprite *sprite); extern struct UnionRoomChat *gUnknown_02022C84; extern struct UnionRoomChat2 *gUnknown_02022C88; @@ -419,6 +421,138 @@ const struct CompressedSpriteSheet gUnknown_082F3134[] = { {gUnknown_08DD4CF8, 0x0400, 0x0004} }; +const struct SpritePalette gUnknown_082F315C = { + gUnknown_082F2DF0, 0x0000 +}; + +const struct OamData gUnknown_082F3164 = { + .shape = ST_OAM_H_RECTANGLE, + .size = 3, + .priority = 1 +}; + +const union AnimCmd gUnknown_082F316C[] = { + ANIMCMD_FRAME(0x00, 30), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_082F3174[] = { + ANIMCMD_FRAME(0x20, 30), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_082F317C[] = { + ANIMCMD_FRAME(0x40, 30), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_082F3184[] = { + ANIMCMD_FRAME(0x60, 30), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_082F318C[] = { + gUnknown_082F316C, + gUnknown_082F3174, + gUnknown_082F317C, + gUnknown_082F3184 +}; + +const struct SpriteTemplate gUnknown_082F319C = { + .tileTag = 0x0000, + .paletteTag = 0x0000, + .oam = &gUnknown_082F3164, + .anims = gUnknown_082F318C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct OamData gUnknown_082F31B4 = { + .shape = ST_OAM_V_RECTANGLE, + .size = 0, + .priority = 2 +}; + +const struct SpriteTemplate gUnknown_082F31BC = { + .tileTag = 0x0002, + .paletteTag = 0x0000, + .oam = &gUnknown_082F31B4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8020ABC +}; + +const struct SpriteTemplate gUnknown_082F31D4 = { + .tileTag = 0x0001, + .paletteTag = 0x0000, + .oam = &gUnknown_082F31B4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8020AF4 +}; + +const struct OamData gUnknown_082F31EC = { + .shape = ST_OAM_SQUARE, + .size = 1, + .priority = 2 +}; + +const struct OamData gUnknown_082F31F4 = { + .shape = ST_OAM_H_RECTANGLE, + .size = 2, + .priority = 2 +}; + +const union AnimCmd gUnknown_082F31FC[] = { + ANIMCMD_FRAME(0x00, 2), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_082F3204[] = { + ANIMCMD_FRAME(0x08, 2), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_082F320C[] = { + ANIMCMD_FRAME(0x10, 2), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_082F3214[] = { + ANIMCMD_FRAME(0x18, 2), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_082F321C[] = { + gUnknown_082F31FC, + gUnknown_082F3204, + gUnknown_082F320C, + gUnknown_082F3214 +}; + +const struct SpriteTemplate gUnknown_082F322C = { + .tileTag = 0x0003, + .paletteTag = 0x0000, + .oam = &gUnknown_082F31EC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct SpriteTemplate gUnknown_082F3244 = { + .tileTag = 0x0004, + .paletteTag = 0x0000, + .oam = &gUnknown_082F31F4, + .anims = gUnknown_082F321C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + void sub_801DD98(void) { gUnknown_02022C84 = Alloc(sizeof(*gUnknown_02022C84)); @@ -2754,7 +2888,7 @@ static void sub_8020A68(void) gUnknown_02022C8C->unk4 = &gSprites[spriteId]; } -void sub_8020ABC(struct Sprite *sprite) +static void sub_8020ABC(struct Sprite *sprite) { int var0 = sub_801F198(); if (var0 == 15) @@ -2768,7 +2902,7 @@ void sub_8020ABC(struct Sprite *sprite) } } -void sub_8020AF4(struct Sprite *sprite) +static void sub_8020AF4(struct Sprite *sprite) { if (++sprite->data[0] > 4) { -- cgit v1.2.3 From cb04af05dc473f15eb97ae181dcba624efa2b8d1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Apr 2019 09:23:13 -0400 Subject: Resolve unnecessarily externed symbols --- src/union_room_chat.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/union_room_chat.c b/src/union_room_chat.c index ffe30d863..84a0406be 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -214,18 +214,9 @@ static bool32 sub_801FD88(u8 *state); static void sub_8020ABC(struct Sprite *sprite); static void sub_8020AF4(struct Sprite *sprite); -extern struct UnionRoomChat *gUnknown_02022C84; -extern struct UnionRoomChat2 *gUnknown_02022C88; -extern struct UnionRoomChat3 *gUnknown_02022C8C; -extern const u16 gUnknown_082F2C20[]; -extern const u16 gUnknown_082F2C40[]; -extern const struct SpritePalette gUnknown_082F315C; -extern const struct SpriteTemplate gUnknown_082F319C; -extern const u16 gUnknown_082F2DF0[]; -extern const struct SpriteTemplate gUnknown_082F31BC; -extern const struct SpriteTemplate gUnknown_082F31D4; -extern const struct SpriteTemplate gUnknown_082F322C; -extern const struct SpriteTemplate gUnknown_082F3244; +EWRAM_DATA struct UnionRoomChat *gUnknown_02022C84 = NULL; +EWRAM_DATA struct UnionRoomChat2 *gUnknown_02022C88 = NULL; +EWRAM_DATA struct UnionRoomChat3 *gUnknown_02022C8C = NULL; void (*const gUnknown_082F2A7C[])(void) = { -- cgit v1.2.3 From c46f271f676812b7292560f36f890010c71ef5d1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Apr 2019 11:55:18 -0400 Subject: Documentation of ereader_helpers, 1 --- src/ereader_helpers.c | 69 +++++++++++++++++++++++++-------------------------- src/ereader_screen.c | 4 +-- src/recorded_battle.c | 4 +-- src/save.c | 10 ++++---- src/trainer_hill.c | 2 +- 5 files changed, 44 insertions(+), 45 deletions(-) (limited to 'src') diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c index cdb829ac8..48c41301e 100755 --- a/src/ereader_helpers.c +++ b/src/ereader_helpers.c @@ -26,17 +26,17 @@ static void sub_81D414C(void); static void sub_81D3F1C(u32, u32*, u32*); static void sub_81D3F68(void); -extern struct Unknown030012C8 gUnknown_030012C8; -extern u16 gUnknown_030012E0; -extern u16 gUnknown_030012E2; -extern u16 gUnknown_030012E4; -extern u16 gUnknown_030012E6; -extern u32 gUnknown_030012E8; -extern u16 gUnknown_030012EC; -extern u16 gUnknown_030012EE; -extern u16 gUnknown_030012F0; -extern u16 gUnknown_030012F2; -extern u16 gUnknown_030012F4; +IWRAM_DATA struct Unknown030012C8 gUnknown_030012C8; +IWRAM_DATA u16 gUnknown_030012E0; +IWRAM_DATA u16 gUnknown_030012E2; +IWRAM_DATA u16 gUnknown_030012E4; +IWRAM_DATA u16 gUnknown_030012E6; +IWRAM_DATA u32 gUnknown_030012E8; +IWRAM_DATA u16 gUnknown_030012EC; +IWRAM_DATA u16 gUnknown_030012EE; +IWRAM_DATA u16 gUnknown_030012F0; +IWRAM_DATA u16 gUnknown_030012F2; +IWRAM_DATA u16 gUnknown_030012F4; extern const u8 gUnknown_08625B6C[]; @@ -45,7 +45,7 @@ static u8 sub_81D38D4(void) return (gSaveBlock1Ptr->trainerHill.unused + 1) % 256; } -static bool32 sub_81D38FC(struct Unk81D38FC *arg0) +static bool32 Struct_Unk81D38FC_ValidateChecksum(struct Unk81D38FC *arg0) { int checksum = CalcByteArraySum(arg0->unk0, 0x270); if (checksum != arg0->checksum) @@ -54,43 +54,42 @@ static bool32 sub_81D38FC(struct Unk81D38FC *arg0) return TRUE; } -bool8 sub_81D3920(u8 *buffer) +bool8 EReader_IsReceivedDataValid(struct EReaderTrainerHillSet *buffer) { u32 i; u32 checksum; - int var0 = buffer[0]; + int var0 = buffer->unk_0; if (var0 < 1 || var0 > 8) return FALSE; for (i = 0; i < var0; i++) { - struct Unk81D38FC *var1 = (struct Unk81D38FC *)(&buffer[i * (sizeof(struct Unk81D38FC)) + 8]); - if (!sub_81D38FC(var1)) + if (!Struct_Unk81D38FC_ValidateChecksum(&buffer->unk_8[i])) return FALSE; } - checksum = CalcByteArraySum(buffer + 8, var0 * 0x274); - if (checksum != ((int *)buffer)[1]) + checksum = CalcByteArraySum((u8 *)buffer->unk_8, var0 * sizeof(struct Unk81D38FC)); + if (checksum != buffer->checksum) return FALSE; return TRUE; } -static bool32 sub_81D396C(u8 *buffer) +static bool32 TrainerHill_VerifyChecksum(struct EReaderTrainerHillSet *buffer) { u32 checksum; - int var0 = buffer[0]; + int var0 = buffer->unk_0; if (var0 < 1 || var0 > 8) return FALSE; - checksum = CalcByteArraySum(buffer + 8, 0xEE0); - if (checksum != ((int *)buffer)[1]) + checksum = CalcByteArraySum((u8 *)buffer->unk_8, sizeof(struct EReaderTrainerHillSet) - offsetof(struct EReaderTrainerHillSet, unk_8)); + if (checksum != buffer->checksum) return FALSE; return TRUE; } -static bool32 sub_81D3998(struct Unk81D38FC *arg0, u8 *buffer2) +static bool32 TryWriteTrainerHill_r(struct Unk81D38FC *arg0, u8 *buffer2) { int i; const u8 *ereaderVals; @@ -131,44 +130,44 @@ static bool32 sub_81D3998(struct Unk81D38FC *arg0, u8 *buffer2) } ((int *)buffer2)[1] = CalcByteArraySum(buffer2 + 8, 0xEE0); - if (sub_8153634(SECTOR_ID_TRAINER_HILL, buffer2) != 1) + if (TryWriteSpecialSaveSection(SECTOR_ID_TRAINER_HILL, (u8 *)buffer2) != 1) return FALSE; return TRUE; } -bool32 sub_81D3AB0(struct Unk81D38FC *arg0) +bool32 TryWriteTrainerHill(struct Unk81D38FC *arg0) { u8 *var0 = AllocZeroed(0x1000); - bool32 result = sub_81D3998(arg0, var0); + bool32 result = TryWriteTrainerHill_r(arg0, var0); Free(var0); return result; } -static bool32 sub_81D3AD8(u8 *arg0, u8 *arg1) +static bool32 TryReadTrainerHill_r(struct EReaderTrainerHillSet *arg0, u8 *arg1) { - if (TryCopySpecialSaveSection(SECTOR_ID_TRAINER_HILL, arg1) != 1) + if (TryReadSpecialSaveSection(SECTOR_ID_TRAINER_HILL, arg1) != 1) return FALSE; - memcpy(arg0, arg1, 0xEE8); - if (!sub_81D396C(arg0)) + memcpy(arg0, arg1, sizeof(struct EReaderTrainerHillSet)); + if (!TrainerHill_VerifyChecksum(arg0)) return FALSE; return TRUE; } -static bool32 sub_81D3B0C(u8 *arg0) +static bool32 TryReadTrainerHill(struct EReaderTrainerHillSet *arg0) { u8 *var0 = AllocZeroed(0x1000); - bool32 result = sub_81D3AD8(arg0, var0); + bool32 result = TryReadTrainerHill_r(arg0, var0); Free(var0); return result; } -bool32 sub_81D3B34(void) +bool32 ReadTrainerHillAndValidate(void) { - u8 *var0 = AllocZeroed(0x1000); - bool32 result = sub_81D3B0C(var0); + struct EReaderTrainerHillSet *var0 = AllocZeroed(0x1000); + bool32 result = TryReadTrainerHill(var0); Free(var0); return result; } diff --git a/src/ereader_screen.c b/src/ereader_screen.c index bac29cd42..8dc2a539b 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -402,7 +402,7 @@ static void sub_81D5084(u8 taskId) } break; case 15: - data->unkE = sub_81D3920(gDecompressionBuffer); + data->unkE = EReader_IsReceivedDataValid((struct EReaderTrainerHillSet *)gDecompressionBuffer); sub_800ABF4(data->unkE); data->unk8 = 16; break; @@ -416,7 +416,7 @@ static void sub_81D5084(u8 taskId) } break; case 17: - if (sub_81D3AB0((struct Unk81D38FC *)&gDecompressionBuffer)) + if (TryWriteTrainerHill((struct Unk81D38FC *)&gDecompressionBuffer)) { AddTextPrinterToWindow1(gUnknown_085EE0FA); sub_81D505C(&data->unk0); diff --git a/src/recorded_battle.c b/src/recorded_battle.c index acd4c2ce6..9f2be36af 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -322,7 +322,7 @@ static bool32 RecordedBattleToSave(struct RecordedBattleSave *battleSave, struct saveSection->checksum = CalcByteArraySum((void*)(saveSection), sizeof(*saveSection) - 4); - if (sub_8153634(31, (void*)(saveSection)) != 1) + if (TryWriteSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveSection)) != 1) return FALSE; else return TRUE; @@ -491,7 +491,7 @@ bool32 MoveRecordedBattleToSaveData(void) static bool32 TryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst, struct SaveSection *saveBuffer) { - if (TryCopySpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveBuffer)) != 1) + if (TryReadSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveBuffer)) != 1) return FALSE; memcpy(dst, saveBuffer, sizeof(struct RecordedBattleSave)); diff --git a/src/save.c b/src/save.c index 361a88e1e..45a75b5dc 100644 --- a/src/save.c +++ b/src/save.c @@ -849,7 +849,7 @@ u16 sub_815355C(void) return 0; } -u32 TryCopySpecialSaveSection(u8 sector, u8* dst) +u32 TryReadSpecialSaveSection(u8 sector, u8* dst) { s32 i; s32 size; @@ -858,7 +858,7 @@ u32 TryCopySpecialSaveSection(u8 sector, u8* dst) if (sector != SECTOR_ID_TRAINER_HILL && sector != SECTOR_ID_RECORDED_BATTLE) return 0xFF; ReadFlash(sector, 0, (u8 *)&gSaveDataBuffer, sizeof(struct SaveSection)); - if (*(u32*)(&gSaveDataBuffer.data[0]) != 0xB39D) + if (*(u32*)(&gSaveDataBuffer.data[0]) != SPECIAL_SECTION_SENTINEL) return 0xFF; // copies whole save section except u32 counter i = 0; @@ -869,18 +869,18 @@ u32 TryCopySpecialSaveSection(u8 sector, u8* dst) return 1; } -u32 sub_8153634(u8 sector, u8* src) +u32 TryWriteSpecialSaveSection(u8 sector, u8* src) { s32 i; s32 size; u8* savData; void* savDataBuffer; - if (sector != 30 && sector != 31) + if (sector != SECTOR_ID_TRAINER_HILL && sector != SECTOR_ID_RECORDED_BATTLE) return 0xFF; savDataBuffer = &gSaveDataBuffer; - *(u32*)(savDataBuffer) = 0xB39D; + *(u32*)(savDataBuffer) = SPECIAL_SECTION_SENTINEL; // copies whole save section except u32 counter i = 0; diff --git a/src/trainer_hill.c b/src/trainer_hill.c index eafd1eb3d..650a748cb 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -428,7 +428,7 @@ void CopyTrainerHillTrainerText(u8 which, u16 trainerId) static void TrainerHillStartChallenge(void) { nullsub_2(); - if (!sub_81D3B34()) + if (!ReadTrainerHillAndValidate()) gSaveBlock1Ptr->trainerHill.field_3D6E_0f = 1; else gSaveBlock1Ptr->trainerHill.field_3D6E_0f = 0; -- cgit v1.2.3 From 8db03ba6fab0d335d6141f1a9289122c1477a7b6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Apr 2019 13:44:43 -0400 Subject: Documentation of ereader helpers, 2 --- src/ereader_helpers.c | 45 ++++++++++++++++++--------------------------- src/ereader_screen.c | 2 +- 2 files changed, 19 insertions(+), 28 deletions(-) (limited to 'src') diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c index 48c41301e..cd64afe0e 100755 --- a/src/ereader_helpers.c +++ b/src/ereader_helpers.c @@ -38,7 +38,7 @@ IWRAM_DATA u16 gUnknown_030012F0; IWRAM_DATA u16 gUnknown_030012F2; IWRAM_DATA u16 gUnknown_030012F4; -extern const u8 gUnknown_08625B6C[]; +extern const u8 gUnknown_08625B6C[][0x148]; static u8 sub_81D38D4(void) { @@ -47,7 +47,7 @@ static u8 sub_81D38D4(void) static bool32 Struct_Unk81D38FC_ValidateChecksum(struct Unk81D38FC *arg0) { - int checksum = CalcByteArraySum(arg0->unk0, 0x270); + int checksum = CalcByteArraySum((u8 *)arg0, 0x270); if (checksum != arg0->checksum) return FALSE; @@ -89,56 +89,47 @@ static bool32 TrainerHill_VerifyChecksum(struct EReaderTrainerHillSet *buffer) return TRUE; } -static bool32 TryWriteTrainerHill_r(struct Unk81D38FC *arg0, u8 *buffer2) +static bool32 TryWriteTrainerHill_r(struct EReaderTrainerHillSet *arg0, struct Unk81D3998 *buffer2) { int i; - const u8 *ereaderVals; memset(buffer2, 0, 0x1000); - buffer2[0] = arg0->unk0[0]; - buffer2[1] = sub_81D38D4(); - buffer2[2] = (arg0->unk0[0] + 1) / 2; + buffer2->unk_000 = arg0->unk_0; + buffer2->unk_001 = sub_81D38D4(); + buffer2->unk_002 = (arg0->unk_0 + 1) / 2; - for (i = 0; i < arg0->unk0[0]; i++) + for (i = 0; i < arg0->unk_0; i++) { if (!(i & 1)) { - u8 *var0 = &buffer2[(i / 2) * 0x3B8]; - u8 *var1 = arg0[i].unk0; - var0[8] = var1[8]; - memcpy(&var0[0x29C], &var1[0x154], 0x124); - var0 += 0xC; - var1 += 0xC; - memcpy(var0, var1, 0x148); + buffer2->unk_008[i / 2].unk_000[0] = arg0->unk_8[i].unk0; + memcpy(buffer2->unk_008[i / 2].unk_294, arg0->unk_8[i].unk14C, 0x124); + memcpy(buffer2->unk_008[i / 2].unk_004, arg0->unk_8[i].unk4, 0x148); } else { - u8 *var0 = &buffer2[(i / 2) * 0x3B8]; - u8 *var1 = arg0[i].unk0; - var0[9] = var1[8]; - memcpy(&var0[0x154], &var1[0xC], 0x148); + buffer2->unk_008[i / 2].unk_000[1] = arg0->unk_8[i].unk0; + memcpy(buffer2->unk_008[i / 2].unk_14C, arg0->unk_8[i].unk4, 0x148); } } if (i & 1) { - u8 *var0 = &buffer2[(i / 2) * 0x3B8]; - var0 += 0x154; - - ereaderVals = gUnknown_08625B6C; - memcpy(var0, &ereaderVals[(i / 2) * 0x148], 0x148); + u8 * dest = buffer2->unk_008[i / 2].unk_14C; + const u8 (* src)[0x148] = gUnknown_08625B6C; + memcpy(dest, src[i / 2], 0x148); } - ((int *)buffer2)[1] = CalcByteArraySum(buffer2 + 8, 0xEE0); + buffer2->checksum = CalcByteArraySum((u8 *)buffer2->unk_008, sizeof(struct Unk81D3998) - offsetof(struct Unk81D3998, unk_008)); if (TryWriteSpecialSaveSection(SECTOR_ID_TRAINER_HILL, (u8 *)buffer2) != 1) return FALSE; return TRUE; } -bool32 TryWriteTrainerHill(struct Unk81D38FC *arg0) +bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *arg0) { - u8 *var0 = AllocZeroed(0x1000); + struct Unk81D3998 *var0 = AllocZeroed(0x1000); bool32 result = TryWriteTrainerHill_r(arg0, var0); Free(var0); return result; diff --git a/src/ereader_screen.c b/src/ereader_screen.c index 8dc2a539b..f74efa32b 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -416,7 +416,7 @@ static void sub_81D5084(u8 taskId) } break; case 17: - if (TryWriteTrainerHill((struct Unk81D38FC *)&gDecompressionBuffer)) + if (TryWriteTrainerHill((struct EReaderTrainerHillSet *)&gDecompressionBuffer)) { AddTextPrinterToWindow1(gUnknown_085EE0FA); sub_81D505C(&data->unk0); -- cgit v1.2.3 From 016021ac049961a3ad2b2419f358801138edd757 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Apr 2019 14:55:24 -0400 Subject: Move gUnknown_02022C90 from sym_ewram.txt --- src/berry_crush.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/berry_crush.c b/src/berry_crush.c index 51dbe8203..307bd49a7 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -139,7 +139,7 @@ void sub_8022960(struct BerryCrushGame *); void sub_8022524(struct BerryCrushGame_138 *, u16); void sub_8022B28(struct Sprite *); -extern struct BerryCrushGame *gUnknown_02022C90; +static EWRAM_DATA struct BerryCrushGame *gUnknown_02022C90 = NULL; extern const struct BgTemplate gUnknown_082F32C8[4]; extern const u8 gBerryCrushGrinderTopTilemap[]; -- cgit v1.2.3 From 704f025a00e32a910b6fd70a54511844e755663f Mon Sep 17 00:00:00 2001 From: AJ Fontaine <36677462+Fontbane@users.noreply.github.com> Date: Wed, 3 Apr 2019 10:36:50 -0400 Subject: Fix a typo in as(s)istattackselect --- src/battle_script_commands.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index d1d8d87ac..2e78e1ca0 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -296,7 +296,7 @@ static void atkDA_tryswapabilities(void); static void atkDB_tryimprison(void); static void atkDC_trysetgrudge(void); static void atkDD_weightdamagecalculation(void); -static void atkDE_asistattackselect(void); +static void atkDE_assistattackselect(void); static void atkDF_trysetmagiccoat(void); static void atkE0_trysetsnatch(void); static void atkE1_trygetintimidatetarget(void); @@ -548,7 +548,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = atkDB_tryimprison, atkDC_trysetgrudge, atkDD_weightdamagecalculation, - atkDE_asistattackselect, + atkDE_assistattackselect, atkDF_trysetmagiccoat, atkE0_trysetsnatch, atkE1_trygetintimidatetarget, @@ -9660,7 +9660,7 @@ static void atkDD_weightdamagecalculation(void) gBattlescriptCurrInstr++; } -static void atkDE_asistattackselect(void) +static void atkDE_assistattackselect(void) { s32 chooseableMovesNo = 0; struct Pokemon* party; -- cgit v1.2.3 From 9e74409bb2032e25d431dda116462759e5b51fe0 Mon Sep 17 00:00:00 2001 From: Fontbane Date: Thu, 4 Apr 2019 19:28:37 -0400 Subject: Fix labels, label more scripts --- src/data/bard_music/pokemon.h | 2 +- src/easy_chat.c | 2 +- src/item_use.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/data/bard_music/pokemon.h b/src/data/bard_music/pokemon.h index 693005360..112a5870b 100644 --- a/src/data/bard_music/pokemon.h +++ b/src/data/bard_music/pokemon.h @@ -2,7 +2,7 @@ #define GUARD_DATA_BARD_MUSIC_POKEMON_H #include "constants/species.h" -const u16 gUnknown_085F5490 = NUM_SPECIES; +const u16 gNumSpeciesNames = NUM_SPECIES; const struct BardSound gBardSounds_Pokemon[][6] = { { diff --git a/src/easy_chat.c b/src/easy_chat.c index 1cb7b0fe8..4388592f7 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -4882,7 +4882,7 @@ bool8 ECWord_CheckIfOutsideOfValidRange(u16 easyChatWord) { case EC_GROUP_POKEMON: case EC_GROUP_POKEMON_2: - numWordsInGroup = gUnknown_085F5490; + numWordsInGroup = gNumSpeciesNames; break; case EC_GROUP_MOVE_1: case EC_GROUP_MOVE_2: diff --git a/src/item_use.c b/src/item_use.c index 7947964ca..159ece398 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -42,8 +42,8 @@ #include "constants/vars.h" #include "event_obj_lock.h" -extern u8 Route102_EventScript_274482[]; -extern u8 Route102_EventScript_2744C0[]; +extern u8 BerryTree_EventScript_274482[]; +extern u8 BerryTree_EventScript_2744C0[]; extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[]; void SetUpItemUseCallback(u8 taskId); @@ -669,7 +669,7 @@ void sub_80FDD74(u8 taskId) { RemoveBagItem(gSpecialVar_ItemId, 1); ScriptContext2_Enable(); - ScriptContext1_SetupScript(Route102_EventScript_274482); + ScriptContext1_SetupScript(BerryTree_EventScript_274482); DestroyTask(taskId); } @@ -694,7 +694,7 @@ void ItemUseOutOfBattle_WailmerPail(u8 taskId) void sub_80FDE08(u8 taskId) { ScriptContext2_Enable(); - ScriptContext1_SetupScript(Route102_EventScript_2744C0); + ScriptContext1_SetupScript(BerryTree_EventScript_2744C0); DestroyTask(taskId); } -- cgit v1.2.3 From dd24597d529cd5d9c06aa4699526dbe13d7c9b8e Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 4 Apr 2019 21:24:21 +0200 Subject: Finish up menu specialised --- src/battle_script_commands.c | 59 ++-- src/menu_specialized.c | 629 +++++++++++++------------------------------ 2 files changed, 223 insertions(+), 465 deletions(-) (limited to 'src') diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 2e78e1ca0..fc396b5e3 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -66,8 +66,8 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8, const u8* BS_ptr); static bool32 IsMonGettingExpSentOut(void); static void sub_804F17C(void); static bool8 sub_804F1CC(void); -static void sub_804F100(void); -static void sub_804F144(void); +static void DrawLevelUpWindow1(void); +static void DrawLevelUpWindow2(void); static bool8 sub_804F344(void); static void PutMonIconOnLvlUpBox(void); static void PutLevelAndGenderOnLvlUpBox(void); @@ -3238,9 +3238,8 @@ static void atk23_getexp(void) s32 i; // also used as stringId u8 holdEffect; s32 sentIn; - s32 viaExpShare = 0; - u16* exp = &gBattleStruct->expValue; + u16 *exp = &gBattleStruct->expValue; gBattlerFainted = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); sentIn = gSentPokesToOpponent[(gBattlerFainted & 2) >> 1]; @@ -3391,14 +3390,14 @@ static void atk23_getexp(void) } } else + { gBattleStruct->expGetterBattlerId = 0; + } - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBattlerId, gBattleStruct->expGetterMonId) - + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBattlerId, gBattleStruct->expGetterMonId); // buffer 'gained' or 'gained a boosted' - PREPARE_STRING_BUFFER(gBattleTextBuff2, i) - - PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage) + PREPARE_STRING_BUFFER(gBattleTextBuff2, i); + PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage); PrepareStringBattle(STRINGID_PKMNGAINEDEXP, gBattleStruct->expGetterBattlerId); MonGainEVs(&gPlayerParty[gBattleStruct->expGetterMonId], gBattleMons[gBattlerFainted].species); @@ -3414,12 +3413,12 @@ static void atk23_getexp(void) gBattleBufferB[gBattleStruct->expGetterBattlerId][0] = 0; if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) != MAX_LEVEL) { - gBattleResources->statsBeforeLvlUp->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_MAX_HP); - gBattleResources->statsBeforeLvlUp->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_ATK); - gBattleResources->statsBeforeLvlUp->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_DEF); - gBattleResources->statsBeforeLvlUp->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED); - gBattleResources->statsBeforeLvlUp->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPATK); - gBattleResources->statsBeforeLvlUp->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPDEF); + gBattleResources->beforeLvlUp->stats[STAT_HP] = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_MAX_HP); + gBattleResources->beforeLvlUp->stats[STAT_ATK] = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_ATK); + gBattleResources->beforeLvlUp->stats[STAT_DEF] = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_DEF); + gBattleResources->beforeLvlUp->stats[STAT_SPEED] = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPEED); + gBattleResources->beforeLvlUp->stats[STAT_SPATK] = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPATK); + gBattleResources->beforeLvlUp->stats[STAT_SPDEF] = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_SPDEF); gActiveBattler = gBattleStruct->expGetterBattlerId; BtlController_EmitExpUpdate(0, gBattleStruct->expGetterMonId, gBattleMoveDamage); @@ -3437,9 +3436,8 @@ static void atk23_getexp(void) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterMonId) HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattleStruct->expGetterMonId) - - PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL)) + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattleStruct->expGetterMonId); + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL)); BattleScriptPushCursor(); gLeveledUpInBattle |= gBitTable[gBattleStruct->expGetterMonId]; @@ -3487,7 +3485,9 @@ static void atk23_getexp(void) break; case 5: // looper increment if (gBattleMoveDamage) // there is exp to give, goto case 3 that gives exp + { gBattleScripting.atk23_state = 3; + } else { gBattleStruct->expGetterMonId++; @@ -5911,8 +5911,7 @@ static void atk5D_getmoneyreward(void) moneyReward += GetTrainerMoneyToGive(gTrainerBattleOpponent_B); AddMoney(&gSaveBlock1Ptr->money, moneyReward); - - PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff1, 5, moneyReward) + PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff1, 5, moneyReward); gBattlescriptCurrInstr++; } @@ -6233,7 +6232,7 @@ static void atk6C_drawlvlupbox(void) gBattleScripting.atk6C_state = 4; break; case 4: - sub_804F100(); + DrawLevelUpWindow1(); PutWindowTilemap(13); CopyWindowToVram(13, 3); gBattleScripting.atk6C_state++; @@ -6250,7 +6249,7 @@ static void atk6C_drawlvlupbox(void) if (gMain.newKeys != 0) { PlaySE(SE_SELECT); - sub_804F144(); + DrawLevelUpWindow2(); CopyWindowToVram(13, 2); gBattleScripting.atk6C_state++; } @@ -6291,20 +6290,20 @@ static void atk6C_drawlvlupbox(void) } } -static void sub_804F100(void) +static void DrawLevelUpWindow1(void) { - struct StatsArray currentStats; + u16 currStats[NUM_STATS]; - GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], (u16*) ¤tStats); - DrawLevelUpWindowPg1(0xD, (u16*) gBattleResources->statsBeforeLvlUp,(u16*) ¤tStats, 0xE, 0xD, 0xF); + GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], currStats); + DrawLevelUpWindowPg1(0xD, gBattleResources->beforeLvlUp->stats, currStats, 0xE, 0xD, 0xF); } -static void sub_804F144(void) +static void DrawLevelUpWindow2(void) { - struct StatsArray currentStats; + u16 currStats[NUM_STATS]; - GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], (u16*) ¤tStats); - DrawLevelUpWindowPg2(0xD, (u16*) ¤tStats, 0xE, 0xD, 0xF); + GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], currStats); + DrawLevelUpWindowPg2(0xD, currStats, 0xE, 0xD, 0xF); } static void sub_804F17C(void) diff --git a/src/menu_specialized.c b/src/menu_specialized.c index cbdef3d39..b3f07fb46 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -28,7 +28,6 @@ #include "gba/io_reg.h" extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -extern const u8 *gUnknown_08625B54[]; EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; @@ -39,7 +38,7 @@ static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); static void nullsub_79(void); static void sub_81D3408(struct Sprite *sprite); -/*static*/ void sub_81D3564(struct Sprite *sprite); +static void sub_81D3564(struct Sprite *sprite); static void sub_81D35E8(struct Sprite *sprite); static const struct WindowTemplate sUnknown_086253E8[] = @@ -1474,9 +1473,82 @@ static void sub_81D32F4(struct Sprite *sprite) } } -// Todo: Move these variables to C. -extern const s16 gUnknown_08625B2C[][2]; -extern const struct SpriteTemplate gUnknown_08625B14; +static const struct OamData sOamData_8625AD0 = +{ + .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 +}; + +static const union AnimCmd sSpriteAnim_8625AD8[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_FRAME(12, 5), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(20, 5), + ANIMCMD_FRAME(24, 5), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_8625AF8[] = +{ + sSpriteAnim_8625AD8, + sSpriteAnim_8625AD8 + 2, +}; + +// unused +static const union AnimCmd *const sSpriteAnimTable_8625B00[] = +{ + sSpriteAnim_8625AD8 + 4, + sSpriteAnim_8625AD8 + 6, +}; + +// unused +static const union AnimCmd *const sSpriteAnimTable_8625B08[] = +{ + sSpriteAnim_8625AD8 + 8, + sSpriteAnim_8625AD8 + 10, +}; + +// unused +static const union AnimCmd *const *const sUnknown_08625B10 = sSpriteAnimTable_8625B08; + +const struct SpriteTemplate gUnknown_08625B14 = +{ + .tileTag = 104, + .paletteTag = 104, + .oam = &sOamData_8625AD0, + .anims = sSpriteAnimTable_8625AF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81D3564, +}; + +static const s16 gUnknown_08625B2C[][2] = +{ + {0, -35}, + {20, -28}, + {33, -10}, + {33, 10}, + {20, 28}, + {0, 35}, + {-20, 28}, + {-33, 10}, + {-33, -10}, + {-20, -28}, +}; void sub_81D3314(struct Sprite *sprite) { @@ -1595,7 +1667,7 @@ void sub_81D354C(struct Sprite **sprites) FreeSpritePaletteByTag(104); } -/*static*/ void sub_81D3564(struct Sprite *sprite) +static void sub_81D3564(struct Sprite *sprite) { if (sprite->data[1] != 0) { @@ -1641,440 +1713,127 @@ static void sub_81D35E8(struct Sprite *sprite) } } - -#ifdef NONMATCHING -void DrawLevelUpWindowPg1(u16 arg0, u16 *statStoreLocation1, u16 *statStoreLocation2, u8 arg3, u8 arg4, u8 arg5) +static const u8 *const sLvlUpStatStrings[] = { - u16 i; - s16 array[6]; - u8 *text; - u8 text2; - s16 *statVal; - s32 var; - u8 padding; - s32 var3; - u8 color[11]; - - FillWindowPixelBuffer(arg0, PIXEL_FILL(arg3)); - - array[0] = statStoreLocation2[STAT_HP] - statStoreLocation1[STAT_HP]; - array[1] = statStoreLocation2[STAT_ATK] - statStoreLocation1[STAT_ATK]; - array[2] = statStoreLocation2[STAT_DEF] - statStoreLocation1[STAT_DEF]; - array[3] = statStoreLocation2[STAT_SPATK] - statStoreLocation1[STAT_SPATK]; - array[4] = statStoreLocation2[STAT_SPDEF] - statStoreLocation1[STAT_SPDEF]; - array[5] = statStoreLocation2[STAT_SPEED] - statStoreLocation1[STAT_SPEED]; - - color[0] = arg3; - color[1] = arg4; - color[2] = arg5; - - for(i = 0; i <= 5; i++) - { - AddTextPrinterParameterized3(arg0, - 1, - 0, - 15 * i, - color, - TEXT_SPEED_FF, - gUnknown_08625B54[i]); - statVal = &array[i]; - text = array[i] >= 0 ? (u8 *) gText_UnkCtrlF904 : (u8 *) gText_Dash;//Plus sign for stat gain, dash for none maybe - StringCopy(&text2, text); - AddTextPrinterParameterized3(arg0, - 1, - 56, - 15 * i, - color, - TEXT_SPEED_FF, - &text2); - var3 = *statVal; - var = var3; - - if(var3 < 0) - { - var = -var3; - } - - padding = 12; //amount of padding - - if(var <= 9) - { - padding = 18; //more padding for single digit numbers - } - - if(var3 < 0) - { - var3 = -var3; - } - - ConvertIntToDecimalStringN(&text2, var3, STR_CONV_MODE_LEFT_ALIGN, 2); - AddTextPrinterParameterized3(arg0, - 1, - padding + 56, - 15 * i, - color, - TEXT_SPEED_FF, - &text2); + gUnknown_085EEA46, + gUnknown_085EEA4E, + gUnknown_085EEA55, + gUnknown_085EEA63, + gUnknown_085EEA6B, + gUnknown_085EEA5D +}; + +void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr) +{ + u16 i, x; + s16 statsDiff[NUM_STATS]; + u8 text[12]; + u8 color[3]; + + FillWindowPixelBuffer(windowId, PIXEL_FILL(bgClr)); + + statsDiff[0] = statsAfter[STAT_HP] - statsBefore[STAT_HP]; + statsDiff[1] = statsAfter[STAT_ATK] - statsBefore[STAT_ATK]; + statsDiff[2] = statsAfter[STAT_DEF] - statsBefore[STAT_DEF]; + statsDiff[3] = statsAfter[STAT_SPATK] - statsBefore[STAT_SPATK]; + statsDiff[4] = statsAfter[STAT_SPDEF] - statsBefore[STAT_SPDEF]; + statsDiff[5] = statsAfter[STAT_SPEED] - statsBefore[STAT_SPEED]; + + color[0] = bgClr; + color[1] = fgClr; + color[2] = shadowClr; + + for (i = 0; i < NUM_STATS; i++) + { + + AddTextPrinterParameterized3(windowId, + 1, + 0, + 15 * i, + color, + -1, + sLvlUpStatStrings[i]); + + StringCopy(text, (statsDiff[i] >= 0) ? gText_UnkCtrlF904 : gText_Dash); + AddTextPrinterParameterized3(windowId, + 1, + 56, + 15 * i, + color, + -1, + text); + if (abs(statsDiff[i]) <= 9) + x = 18; + else + x = 12; + + ConvertIntToDecimalStringN(text, abs(statsDiff[i]), STR_CONV_MODE_LEFT_ALIGN, 2); + AddTextPrinterParameterized3(windowId, + 1, + 56 + x, + 15 * i, + color, + -1, + text); } } -#else -NAKED -void DrawLevelUpWindowPg1(u16 arg0, u16 *statStoreLocation1, u16 *statStoreLocation2, u8 arg3, u8 arg4, u8 arg5) -{ - asm(".syntax unified\n\ -push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x2C\n\ - mov r8, r0\n\ - adds r6, r1, 0\n\ - adds r5, r2, 0\n\ - adds r4, r3, 0\n\ - ldr r3, [sp, 0x4C]\n\ - ldr r0, [sp, 0x50]\n\ - mov r9, r0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - lsls r3, 24\n\ - lsrs r3, 24\n\ - mov r1, r9\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r9, r1\n\ - mov r0, r8\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - lsls r1, r4, 4\n\ - orrs r1, r4\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - str r3, [sp, 0x28]\n\ - bl FillWindowPixelBuffer\n\ - add r2, sp, 0xC\n\ - ldrh r0, [r5]\n\ - ldrh r1, [r6]\n\ - subs r0, r1\n\ - strh r0, [r2]\n\ - ldrh r0, [r5, 0x2]\n\ - ldrh r1, [r6, 0x2]\n\ - subs r0, r1\n\ - strh r0, [r2, 0x2]\n\ - ldrh r0, [r5, 0x4]\n\ - ldrh r1, [r6, 0x4]\n\ - subs r0, r1\n\ - strh r0, [r2, 0x4]\n\ - ldrh r0, [r5, 0x8]\n\ - ldrh r1, [r6, 0x8]\n\ - subs r0, r1\n\ - strh r0, [r2, 0x6]\n\ - ldrh r0, [r5, 0xA]\n\ - ldrh r1, [r6, 0xA]\n\ - subs r0, r1\n\ - strh r0, [r2, 0x8]\n\ - ldrh r0, [r5, 0x6]\n\ - ldrh r1, [r6, 0x6]\n\ - subs r0, r1\n\ - strh r0, [r2, 0xA]\n\ - add r0, sp, 0x24\n\ - strb r4, [r0]\n\ - ldr r3, [sp, 0x28]\n\ - strb r3, [r0, 0x1]\n\ - mov r1, r9\n\ - strb r1, [r0, 0x2]\n\ - movs r7, 0\n\ - mov r10, r0\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - mov r9, r0\n\ - add r6, sp, 0x18\n\ -_081D36CA:\n\ - lsls r0, r7, 4\n\ - subs r0, r7\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - mov r1, r10\n\ - str r1, [sp]\n\ - mov r0, r9\n\ - str r0, [sp, 0x4]\n\ - ldr r1, =gUnknown_08625B54\n\ - lsls r0, r7, 2\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - str r0, [sp, 0x8]\n\ - mov r0, r8\n\ - movs r1, 0x1\n\ - movs r2, 0\n\ - adds r3, r5, 0\n\ - bl AddTextPrinterParameterized3\n\ - lsls r0, r7, 1\n\ - mov r4, sp\n\ - adds r4, r0\n\ - adds r4, 0xC\n\ - movs r1, 0\n\ - ldrsh r0, [r4, r1]\n\ - ldr r1, =gText_Dash\n\ - cmp r0, 0\n\ - blt _081D3704\n\ - ldr r1, =gText_UnkCtrlF904\n\ -_081D3704:\n\ - adds r0, r6, 0\n\ - bl StringCopy\n\ - mov r0, r10\n\ - str r0, [sp]\n\ - mov r1, r9\n\ - str r1, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - mov r0, r8\n\ - movs r1, 0x1\n\ - movs r2, 0x38\n\ - adds r3, r5, 0\n\ - bl AddTextPrinterParameterized3\n\ - movs r0, 0\n\ - ldrsh r1, [r4, r0]\n\ - adds r0, r1, 0\n\ - cmp r1, 0\n\ - bge _081D372C\n\ - negs r0, r1\n\ -_081D372C:\n\ - movs r4, 0xC\n\ - cmp r0, 0x9\n\ - bgt _081D3734\n\ - movs r4, 0x12\n\ -_081D3734:\n\ - cmp r1, 0\n\ - bge _081D373A\n\ - negs r1, r1\n\ -_081D373A:\n\ - adds r0, r6, 0\n\ - movs r2, 0\n\ - movs r3, 0x2\n\ - bl ConvertIntToDecimalStringN\n\ - adds r2, r4, 0\n\ - adds r2, 0x38\n\ - mov r1, r10\n\ - str r1, [sp]\n\ - mov r0, r9\n\ - str r0, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - mov r0, r8\n\ - movs r1, 0x1\n\ - adds r3, r5, 0\n\ - bl AddTextPrinterParameterized3\n\ - adds r0, r7, 0x1\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ - cmp r7, 0x5\n\ - bls _081D36CA\n\ - add sp, 0x2C\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} -#endif // NONMATCHING - -#ifdef NONMATCHING -void DrawLevelUpWindowPg2(u16 arg0, u16 *statStoreLocation1, u8 arg2, u8 arg3, u8 arg4) -{ - s32 i; - s16 *var; - s32 numDigits; - u8 text; - s16 array[6]; - u8 color[11]; - - FillWindowPixelBuffer(arg0, PIXEL_FILL(arg2)); - - array[0] = statStoreLocation1[STAT_HP]; - array[1] = statStoreLocation1[STAT_ATK]; - array[2] = statStoreLocation1[STAT_DEF]; - array[3] = statStoreLocation1[STAT_SPATK]; - array[4] = statStoreLocation1[STAT_SPDEF]; - array[5] = statStoreLocation1[STAT_SPEED]; - - color[0] = arg2; - color[1] = arg3; - color[2] = arg4; - - for(i = 0; i <= 5; i++) - { - numDigits = 3; //3 digit stat - if(array[i] <= 99) - { - numDigits = 1; //1 digit stat - if(array[i] > 9) - { - numDigits = 2; //2 digit stat - } - } - ConvertIntToDecimalStringN(&text, array[i], STR_CONV_MODE_LEFT_ALIGN, numDigits); - AddTextPrinterParameterized3(arg0, - 1, - 0, - 15 * i, - color, - TEXT_SPEED_FF, - gUnknown_08625B54[i]); - AddTextPrinterParameterized3(arg0, - 1, - 6 * (4 - numDigits) + 56, - 15 * i, - color, - TEXT_SPEED_FF, - &text); + +void DrawLevelUpWindowPg2(u16 windowId, u16 *currStats, u8 bgClr, u8 fgClr, u8 shadowClr) +{ + u16 i, numDigits, x; + s16 stats[NUM_STATS]; + u8 text[12]; + u8 color[3]; + + FillWindowPixelBuffer(windowId, PIXEL_FILL(bgClr)); + + stats[0] = currStats[STAT_HP]; + stats[1] = currStats[STAT_ATK]; + stats[2] = currStats[STAT_DEF]; + stats[3] = currStats[STAT_SPATK]; + stats[4] = currStats[STAT_SPDEF]; + stats[5] = currStats[STAT_SPEED]; + + color[0] = bgClr; + color[1] = fgClr; + color[2] = shadowClr; + + for (i = 0; i < NUM_STATS; i++) + { + if (stats[i] > 99) + numDigits = 3; + else if (stats[i] > 9) + numDigits = 2; + else + numDigits = 1; + + ConvertIntToDecimalStringN(text, stats[i], STR_CONV_MODE_LEFT_ALIGN, numDigits); + x = 6 * (4 - numDigits); + + AddTextPrinterParameterized3(windowId, + 1, + 0, + 15 * i, + color, + -1, + sLvlUpStatStrings[i]); + + AddTextPrinterParameterized3(windowId, + 1, + 56 + x, + 15 * i, + color, + -1, + text); } } -#else -NAKED -void DrawLevelUpWindowPg2(u16 arg0, u16 *statStoreLocation1, u8 arg2, u8 arg3, u8 arg4) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x2C\n\ - mov r8, r0\n\ - adds r5, r1, 0\n\ - adds r4, r2, 0\n\ - adds r6, r3, 0\n\ - ldr r2, [sp, 0x4C]\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - lsls r6, 24\n\ - lsrs r6, 24\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - lsls r1, r4, 4\n\ - orrs r1, r4\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - str r2, [sp, 0x28]\n\ - bl FillWindowPixelBuffer\n\ - add r1, sp, 0xC\n\ - ldrh r0, [r5]\n\ - strh r0, [r1]\n\ - ldrh r0, [r5, 0x2]\n\ - strh r0, [r1, 0x2]\n\ - ldrh r0, [r5, 0x4]\n\ - strh r0, [r1, 0x4]\n\ - ldrh r0, [r5, 0x8]\n\ - strh r0, [r1, 0x6]\n\ - ldrh r0, [r5, 0xA]\n\ - strh r0, [r1, 0x8]\n\ - ldrh r0, [r5, 0x6]\n\ - strh r0, [r1, 0xA]\n\ - add r0, sp, 0x24\n\ - strb r4, [r0]\n\ - strb r6, [r0, 0x1]\n\ - ldr r2, [sp, 0x28]\n\ - strb r2, [r0, 0x2]\n\ - movs r6, 0\n\ - add r1, sp, 0x18\n\ - mov r9, r1\n\ - mov r7, r8\n\ - mov r10, r0\n\ - movs r2, 0x1\n\ - negs r2, r2\n\ - mov r8, r2\n\ -_081D37EE:\n\ - lsls r1, r6, 1\n\ - mov r0, sp\n\ - adds r0, r1\n\ - adds r0, 0xC\n\ - movs r2, 0\n\ - ldrsh r0, [r0, r2]\n\ - movs r4, 0x3\n\ - cmp r0, 0x63\n\ - bgt _081D3808\n\ - movs r4, 0x1\n\ - cmp r0, 0x9\n\ - ble _081D3808\n\ - movs r4, 0x2\n\ -_081D3808:\n\ - mov r0, sp\n\ - adds r0, r1\n\ - adds r0, 0xC\n\ - movs r2, 0\n\ - ldrsh r1, [r0, r2]\n\ - mov r0, r9\n\ - movs r2, 0\n\ - adds r3, r4, 0\n\ - bl ConvertIntToDecimalStringN\n\ - movs r0, 0x4\n\ - subs r0, r4\n\ - lsls r4, r0, 1\n\ - adds r4, r0\n\ - lsls r4, 17\n\ - lsrs r4, 16\n\ - lsls r5, r6, 4\n\ - subs r5, r6\n\ - lsls r5, 24\n\ - lsrs r5, 24\n\ - mov r0, r10\n\ - str r0, [sp]\n\ - mov r1, r8\n\ - str r1, [sp, 0x4]\n\ - ldr r1, =gUnknown_08625B54\n\ - lsls r0, r6, 2\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - str r0, [sp, 0x8]\n\ - adds r0, r7, 0\n\ - movs r1, 0x1\n\ - movs r2, 0\n\ - adds r3, r5, 0\n\ - bl AddTextPrinterParameterized3\n\ - adds r4, 0x38\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - mov r2, r10\n\ - str r2, [sp]\n\ - mov r0, r8\n\ - str r0, [sp, 0x4]\n\ - mov r1, r9\n\ - str r1, [sp, 0x8]\n\ - adds r0, r7, 0\n\ - movs r1, 0x1\n\ - adds r2, r4, 0\n\ - adds r3, r5, 0\n\ - bl AddTextPrinterParameterized3\n\ - adds r0, r6, 0x1\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - cmp r6, 0x5\n\ - bls _081D37EE\n\ - add sp, 0x2C\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} -#endif // NONMATCHING -void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *statStoreLocation) +void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *currStats) { - statStoreLocation[STAT_HP] = GetMonData(mon, MON_DATA_MAX_HP); - statStoreLocation[STAT_ATK] = GetMonData(mon, MON_DATA_ATK); - statStoreLocation[STAT_DEF] = GetMonData(mon, MON_DATA_DEF); - statStoreLocation[STAT_SPEED] = GetMonData(mon, MON_DATA_SPEED); - statStoreLocation[STAT_SPATK] = GetMonData(mon, MON_DATA_SPATK); - statStoreLocation[STAT_SPDEF] = GetMonData(mon, MON_DATA_SPDEF); + currStats[STAT_HP] = GetMonData(mon, MON_DATA_MAX_HP); + currStats[STAT_ATK] = GetMonData(mon, MON_DATA_ATK); + currStats[STAT_DEF] = GetMonData(mon, MON_DATA_DEF); + currStats[STAT_SPEED] = GetMonData(mon, MON_DATA_SPEED); + currStats[STAT_SPATK] = GetMonData(mon, MON_DATA_SPATK); + currStats[STAT_SPDEF] = GetMonData(mon, MON_DATA_SPDEF); } -- cgit v1.2.3 From c36476af852b303fbb051b126023059ed5340a1c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 4 Apr 2019 23:08:53 +0200 Subject: Clean up data2b.c --- src/battle_data.c | 14 - src/data.c | 441 ++ src/data/pokemon_graphics/back_pic_coordinates.h | 2 - src/data/pokemon_graphics/back_pic_table.h | 881 ++- src/data/pokemon_graphics/enemy_mon_elevation.h | 355 +- src/data/pokemon_graphics/footprint_table.h | 828 +-- src/data/pokemon_graphics/front_anims.h | 7394 --------------------- src/data/pokemon_graphics/front_pic_anims.h | 7393 ++++++++++++++++++++ src/data/pokemon_graphics/front_pic_coordinates.h | 2 - src/data/pokemon_graphics/front_pic_table.h | 880 +-- src/data/pokemon_graphics/palette_table.h | 880 +-- src/data/pokemon_graphics/shiny_palette_table.h | 880 +-- src/data/pokemon_graphics/still_front_pic_table.h | 884 ++- src/data/pokemon_graphics/unknown_anims.h | 1309 ++-- src/data/trainer_graphics/back_pic_anims.h | 64 +- src/data/trainer_graphics/back_pic_tables.h | 34 +- src/data/trainer_graphics/front_pic_anims.h | 560 +- src/data/trainer_graphics/front_pic_tables.h | 558 +- src/data/trainer_parties.h | 1708 ++--- src/data/trainers.h | 1708 ++--- src/data2b.c | 387 -- 21 files changed, 13404 insertions(+), 13758 deletions(-) delete mode 100644 src/battle_data.c create mode 100644 src/data.c delete mode 100644 src/data/pokemon_graphics/front_anims.h create mode 100644 src/data/pokemon_graphics/front_pic_anims.h delete mode 100644 src/data2b.c (limited to 'src') diff --git a/src/battle_data.c b/src/battle_data.c deleted file mode 100644 index 7f86385aa..000000000 --- a/src/battle_data.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "global.h" -#include "battle.h" -#include "data2.h" -#include "constants/items.h" -#include "constants/moves.h" -#include "constants/species.h" -#include "constants/trainers.h" -#include "constants/battle_ai.h" - -#include "data/trainer_parties.h" -#include "data/text/trainer_class_names.h" -#include "data/trainers.h" -#include "data/text/species_names.h" -#include "data/text/move_names.h" diff --git a/src/data.c b/src/data.c new file mode 100644 index 000000000..b0d14d2af --- /dev/null +++ b/src/data.c @@ -0,0 +1,441 @@ +#include "global.h" +#include "alloc.h" +#include "battle.h" +#include "data.h" +#include "graphics.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/species.h" +#include "constants/trainers.h" +#include "constants/battle_ai.h" + +const u16 gUnknown_082FF1D8[] = INCBIN_U16("graphics/link/minigame_digits.gbapal"); +const u32 gUnknown_082FF1F8[] = INCBIN_U32("graphics/link/minigame_digits.4bpp.lz"); +// unused +const u32 gUnknown_082FF2B8[] = INCBIN_U32("graphics/link/minigame_digits2.4bpp.lz"); + +const struct SpriteFrameImage gUnknown_082FF3A8[] = +{ + gHeap + 0x8000, 0x800, + gHeap + 0x8800, 0x800, + gHeap + 0x9000, 0x800, + gHeap + 0x9800, 0x800, +}; + +const struct SpriteFrameImage gUnknown_082FF3C8[] = +{ + gHeap + 0xA000, 0x800, + gHeap + 0xA800, 0x800, + gHeap + 0xB000, 0x800, + gHeap + 0xB800, 0x800, +}; + +const struct SpriteFrameImage gUnknown_082FF3E8[] = +{ + gHeap + 0xC000, 0x800, + gHeap + 0xC800, 0x800, + gHeap + 0xD000, 0x800, + gHeap + 0xD800, 0x800, +}; + +const struct SpriteFrameImage gUnknown_082FF408[] = +{ + gHeap + 0xE000, 0x800, + gHeap + 0xE800, 0x800, + gHeap + 0xF000, 0x800, + gHeap + 0xF800, 0x800, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_Brendan[] = +{ + gTrainerBackPic_Brendan, 0x0800, + gTrainerBackPic_Brendan + 0x0800, 0x0800, + gTrainerBackPic_Brendan + 0x1000, 0x0800, + gTrainerBackPic_Brendan + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_May[] = +{ + gTrainerBackPic_May, 0x0800, + gTrainerBackPic_May + 0x0800, 0x0800, + gTrainerBackPic_May + 0x1000, 0x0800, + gTrainerBackPic_May + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_Red[] = +{ + gTrainerBackPic_Red, 0x0800, + gTrainerBackPic_Red + 0x0800, 0x0800, + gTrainerBackPic_Red + 0x1000, 0x0800, + gTrainerBackPic_Red + 0x1800, 0x0800, + gTrainerBackPic_Red + 0x2000, 0x0800, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_Leaf[] = +{ + gTrainerBackPic_Leaf, 0x0800, + gTrainerBackPic_Leaf + 0x0800, 0x0800, + gTrainerBackPic_Leaf + 0x1000, 0x0800, + gTrainerBackPic_Leaf + 0x1800, 0x0800, + gTrainerBackPic_Leaf + 0x2000, 0x0800, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireBrendan[] = +{ + gTrainerBackPic_RubySapphireBrendan, 0x0800, + gTrainerBackPic_RubySapphireBrendan + 0x0800, 0x0800, + gTrainerBackPic_RubySapphireBrendan + 0x1000, 0x0800, + gTrainerBackPic_RubySapphireBrendan + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireMay[] = +{ + gTrainerBackPic_RubySapphireMay, 0x0800, + gTrainerBackPic_RubySapphireMay + 0x0800, 0x0800, + gTrainerBackPic_RubySapphireMay + 0x1000, 0x0800, + gTrainerBackPic_RubySapphireMay + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_Wally[] = +{ + gTrainerBackPic_Wally, 0x0800, + gTrainerBackPic_Wally + 0x0800, 0x0800, + gTrainerBackPic_Wally + 0x1000, 0x0800, + gTrainerBackPic_Wally + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_Steven[] = +{ + gTrainerBackPic_Steven, 0x0800, + gTrainerBackPic_Steven + 0x0800, 0x0800, + gTrainerBackPic_Steven + 0x1000, 0x0800, + gTrainerBackPic_Steven + 0x1800, 0x0800, +}; + +static const union AnimCmd sAnim_GeneralFrame0[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GeneralFrame3[] = +{ + ANIMCMD_FRAME(3, 0), + ANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF548[] = +{ + AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF558[] = +{ + AFFINEANIMCMD_FRAME(0xff00, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF568[] = +{ + AFFINEANIMCMD_FRAME(0x0028, 0x0028, 0x00, 0x00), + AFFINEANIMCMD_FRAME(0x0012, 0x0012, 0x00, 0x0c), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF580[] = +{ + AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x12), + AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x0f), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF598[] = +{ + AFFINEANIMCMD_FRAME(0x00a0, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_FRAME(0x0004, 0x0000, 0x00, 0x08), + AFFINEANIMCMD_FRAME(0xfffc, 0x0000, 0x00, 0x08), + AFFINEANIMCMD_JUMP(1), +}; + +static const union AffineAnimCmd gUnknown_082FF5B8[] = +{ + AFFINEANIMCMD_FRAME(0x0002, 0x0002, 0x00, 0x14), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF5C8[] = +{ + AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x14), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF5D8[] = +{ + AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0000), + AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x09), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF5F0[] = +{ + AFFINEANIMCMD_FRAME(0x0004, 0x0004, 0x00, 0x3f), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF600[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_082FF618[] = +{ + gUnknown_082FF548, + gUnknown_082FF568, + gUnknown_082FF580, + gUnknown_082FF598, + gUnknown_082FF5B8, + gUnknown_082FF5C8, + gUnknown_082FF5F0, + gUnknown_082FF600, + gUnknown_082FF5D8, +}; + +static const union AffineAnimCmd gUnknown_082FF63C[] = +{ + AFFINEANIMCMD_FRAME(0xfffc, 0xfffc, 0x04, 0x3f), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF64C[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF664[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfb, 0x14), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x00, 0x14), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x05, 0x14), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_082FF684[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x09, 0x6e), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_082FF694[] = +{ + gUnknown_082FF548, + gUnknown_082FF568, + gUnknown_082FF580, + gUnknown_082FF598, + gUnknown_082FF5B8, + gUnknown_082FF5C8, + gUnknown_082FF63C, + gUnknown_082FF64C, + gUnknown_082FF664, + gUnknown_082FF5D8, + gUnknown_082FF684, +}; + +const union AffineAnimCmd *const gUnknown_082FF6C0[] = +{ + gUnknown_082FF558, + gUnknown_082FF568, + gUnknown_082FF580, + gUnknown_082FF598, + gUnknown_082FF5B8, + gUnknown_082FF5C8, + gUnknown_082FF63C, + gUnknown_082FF64C, + gUnknown_082FF664, + gUnknown_082FF5D8, + gUnknown_082FF684, +}; + +static const union AnimCmd gUnknown_082FF6EC[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_082FF6F4[] = +{ + ANIMCMD_FRAME(1, 0), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_082FF6FC[] = +{ + ANIMCMD_FRAME(2, 0), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_082FF704[] = +{ + ANIMCMD_FRAME(3, 0), + ANIMCMD_END, +}; + +const union AnimCmd *const gPlayerMonSpriteAnimsTable[] = +{ + gUnknown_082FF6EC, + gUnknown_082FF6F4, + gUnknown_082FF6FC, + gUnknown_082FF704, +}; + +#define SPECIES_SPRITE(species, sprite) [SPECIES_##species] = {sprite, 0x800, SPECIES_##species} +#define SPECIES_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species} +#define SPECIES_SHINY_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species + SPECIES_SHINY_TAG} + +#define TRAINER_SPRITE(trainerPic, sprite, size) [TRAINER_PIC_##trainerPic] = {sprite, size, TRAINER_PIC_##trainerPic} +#define TRAINER_PAL(trainerPic, pal) [TRAINER_PIC_##trainerPic] = {pal, TRAINER_PIC_##trainerPic} + +#define TRAINER_BACK_PAL(trainerPic, pal) [TRAINER_BACK_PIC_##trainerPic] = {pal, TRAINER_BACK_PIC_##trainerPic} + +#include "data/pokemon_graphics/unknown_anims.h" +#include "data/pokemon_graphics/front_pic_coordinates.h" +#include "data/pokemon_graphics/still_front_pic_table.h" +#include "data/pokemon_graphics/back_pic_coordinates.h" + +#include "data/pokemon_graphics/back_pic_table.h" +#include "data/pokemon_graphics/palette_table.h" +#include "data/pokemon_graphics/shiny_palette_table.h" + +#include "data/trainer_graphics/front_pic_anims.h" +#include "data/trainer_graphics/front_pic_tables.h" +#include "data/trainer_graphics/back_pic_anims.h" +#include "data/trainer_graphics/back_pic_tables.h" + +#include "data/pokemon_graphics/enemy_mon_elevation.h" +#include "data/pokemon_graphics/front_pic_anims.h" +#include "data/pokemon_graphics/front_pic_table.h" + +// unused +const u32 gUnknown830AF4C[] = +{ + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000088, 0x00000888, 0x00000888, 0x00000886, + 0x00000888, 0x00000886, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000886, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000886, 0x00000886, + 0x00000888, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000888, 0x00000886, 0x00000888, + 0x00000888, 0x00000888, 0x00000886, 0x00000886, + 0x00000888, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000886, 0x00000886, 0x00000088, + 0x00000886, 0x00000886, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000886, 0x00000888, 0x00000088, 0x00000088, + 0x00000888, 0x00000888, 0x00000888, 0x00000886, + 0x00000888, 0x00000888, 0x00000888, 0x00000886, + 0x00000886, 0x00000886, 0x00000886, 0x00000886, + 0x00000886, 0x00000886, 0x00000888, 0x00000888, + 0x00000886, 0x00000886, 0x00000886, 0x00000886, + 0x00000886, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000886, 0x00000886, 0x00000888, + 0x00000886, 0x00000886, 0x00000888, 0x00000888, + 0x00000088, 0x00000088, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000886, 0x00000886, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000088, 0x00000886, + 0x00000888, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000888, 0x00000886, 0x00000888, + 0x00000088, 0x00000088, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000888, 0x00000886, + 0x00000886, 0x00000888, 0x00000888, 0x00000088, + 0x00000888, 0x00000886, 0x00000886, 0x00000888, + 0x00000886, 0x00000888, 0x00000888, 0x00000886, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000088, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000088, 0x00000888, 0x00000888, 0x00000886, + 0x00000886, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000886, + 0x00000888, 0x00000886, 0x00000088, 0x00000088, + 0x00000088, 0x00000888, 0x00000088, 0x00000888, + 0x00000888, 0x00000088, 0x00000088, 0x00000888, + 0x00000886, 0x00000888, 0x00000886, 0x00000886, + 0x00000886, 0x00000888, 0x00000888, 0x00000888, + 0x00000088, 0x00000888, 0x00000888, 0x00000888, + 0x00000088, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000088, 0x00000088, + 0x00000886, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000088, 0x00000888, + 0x00000886, 0x00000888, 0x00000088, 0x00000088, + 0x00000888, 0x00000888, 0x00000088, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000088, + 0x00000888, 0x00000888, 0x00000088, 0x00000088, + 0x00000088, 0x00000888, 0x00000088, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000886, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000886, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000088, 0x00000886, + 0x00000088, 0x00000886, 0x00000886, 0x00000886, + 0x00000088, 0x00000886, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000886, + 0x00000886, 0x00000886, 0x00000888, 0x00000888, + 0x00000886, 0x00000886, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000886, 0x00000886, + 0x00001882, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000886, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000886, 0x00000088, 0x00000886, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000088, 0x00000886, + 0x00000886, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000886, 0x00000088, + 0x00000088, 0x00000886, 0x00000886, 0x00000886, + 0x00000886, 0x00000886, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000886, + 0x00000886, 0x00000886, 0x00000886, 0x00000088, + 0x00000886, 0x00000088, 0x00000886, 0x00000886, + 0x00000886, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000886, 0x00000886, + 0x00000886, 0x00000888, 0x00000886, 0x00000886, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000886, 0x00000886, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000088, 0x00000088, 0x00000088, + 0x00000088, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, + 0x00000888, 0x00000888, 0x00000888, 0x00000888, +}; + +#include "data/trainer_parties.h" +#include "data/text/trainer_class_names.h" +#include "data/trainers.h" +#include "data/text/species_names.h" +#include "data/text/move_names.h" diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h index 0de0bfb52..0a89f20c8 100644 --- a/src/data/pokemon_graphics/back_pic_coordinates.h +++ b/src/data/pokemon_graphics/back_pic_coordinates.h @@ -1,5 +1,3 @@ -#include "constants/species.h" - const struct MonCoords gMonBackPicCoords[] = { [SPECIES_NONE] = diff --git a/src/data/pokemon_graphics/back_pic_table.h b/src/data/pokemon_graphics/back_pic_table.h index c6fd1300b..9a98927aa 100644 --- a/src/data/pokemon_graphics/back_pic_table.h +++ b/src/data/pokemon_graphics/back_pic_table.h @@ -1,444 +1,443 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = { - [SPECIES_NONE] = {gMonBackPic_CircledQuestionMark, 0x800, SPECIES_NONE}, - [SPECIES_BULBASAUR] = {gMonBackPic_Bulbasaur, 0x800, SPECIES_BULBASAUR}, - [SPECIES_IVYSAUR] = {gMonBackPic_Ivysaur, 0x800, SPECIES_IVYSAUR}, - [SPECIES_VENUSAUR] = {gMonBackPic_Venusaur, 0x800, SPECIES_VENUSAUR}, - [SPECIES_CHARMANDER] = {gMonBackPic_Charmander, 0x800, SPECIES_CHARMANDER}, - [SPECIES_CHARMELEON] = {gMonBackPic_Charmeleon, 0x800, SPECIES_CHARMELEON}, - [SPECIES_CHARIZARD] = {gMonBackPic_Charizard, 0x800, SPECIES_CHARIZARD}, - [SPECIES_SQUIRTLE] = {gMonBackPic_Squirtle, 0x800, SPECIES_SQUIRTLE}, - [SPECIES_WARTORTLE] = {gMonBackPic_Wartortle, 0x800, SPECIES_WARTORTLE}, - [SPECIES_BLASTOISE] = {gMonBackPic_Blastoise, 0x800, SPECIES_BLASTOISE}, - [SPECIES_CATERPIE] = {gMonBackPic_Caterpie, 0x800, SPECIES_CATERPIE}, - [SPECIES_METAPOD] = {gMonBackPic_Metapod, 0x800, SPECIES_METAPOD}, - [SPECIES_BUTTERFREE] = {gMonBackPic_Butterfree, 0x800, SPECIES_BUTTERFREE}, - [SPECIES_WEEDLE] = {gMonBackPic_Weedle, 0x800, SPECIES_WEEDLE}, - [SPECIES_KAKUNA] = {gMonBackPic_Kakuna, 0x800, SPECIES_KAKUNA}, - [SPECIES_BEEDRILL] = {gMonBackPic_Beedrill, 0x800, SPECIES_BEEDRILL}, - [SPECIES_PIDGEY] = {gMonBackPic_Pidgey, 0x800, SPECIES_PIDGEY}, - [SPECIES_PIDGEOTTO] = {gMonBackPic_Pidgeotto, 0x800, SPECIES_PIDGEOTTO}, - [SPECIES_PIDGEOT] = {gMonBackPic_Pidgeot, 0x800, SPECIES_PIDGEOT}, - [SPECIES_RATTATA] = {gMonBackPic_Rattata, 0x800, SPECIES_RATTATA}, - [SPECIES_RATICATE] = {gMonBackPic_Raticate, 0x800, SPECIES_RATICATE}, - [SPECIES_SPEAROW] = {gMonBackPic_Spearow, 0x800, SPECIES_SPEAROW}, - [SPECIES_FEAROW] = {gMonBackPic_Fearow, 0x800, SPECIES_FEAROW}, - [SPECIES_EKANS] = {gMonBackPic_Ekans, 0x800, SPECIES_EKANS}, - [SPECIES_ARBOK] = {gMonBackPic_Arbok, 0x800, SPECIES_ARBOK}, - [SPECIES_PIKACHU] = {gMonBackPic_Pikachu, 0x800, SPECIES_PIKACHU}, - [SPECIES_RAICHU] = {gMonBackPic_Raichu, 0x800, SPECIES_RAICHU}, - [SPECIES_SANDSHREW] = {gMonBackPic_Sandshrew, 0x800, SPECIES_SANDSHREW}, - [SPECIES_SANDSLASH] = {gMonBackPic_Sandslash, 0x800, SPECIES_SANDSLASH}, - [SPECIES_NIDORAN_F] = {gMonBackPic_NidoranF, 0x800, SPECIES_NIDORAN_F}, - [SPECIES_NIDORINA] = {gMonBackPic_Nidorina, 0x800, SPECIES_NIDORINA}, - [SPECIES_NIDOQUEEN] = {gMonBackPic_Nidoqueen, 0x800, SPECIES_NIDOQUEEN}, - [SPECIES_NIDORAN_M] = {gMonBackPic_NidoranM, 0x800, SPECIES_NIDORAN_M}, - [SPECIES_NIDORINO] = {gMonBackPic_Nidorino, 0x800, SPECIES_NIDORINO}, - [SPECIES_NIDOKING] = {gMonBackPic_Nidoking, 0x800, SPECIES_NIDOKING}, - [SPECIES_CLEFAIRY] = {gMonBackPic_Clefairy, 0x800, SPECIES_CLEFAIRY}, - [SPECIES_CLEFABLE] = {gMonBackPic_Clefable, 0x800, SPECIES_CLEFABLE}, - [SPECIES_VULPIX] = {gMonBackPic_Vulpix, 0x800, SPECIES_VULPIX}, - [SPECIES_NINETALES] = {gMonBackPic_Ninetales, 0x800, SPECIES_NINETALES}, - [SPECIES_JIGGLYPUFF] = {gMonBackPic_Jigglypuff, 0x800, SPECIES_JIGGLYPUFF}, - [SPECIES_WIGGLYTUFF] = {gMonBackPic_Wigglytuff, 0x800, SPECIES_WIGGLYTUFF}, - [SPECIES_ZUBAT] = {gMonBackPic_Zubat, 0x800, SPECIES_ZUBAT}, - [SPECIES_GOLBAT] = {gMonBackPic_Golbat, 0x800, SPECIES_GOLBAT}, - [SPECIES_ODDISH] = {gMonBackPic_Oddish, 0x800, SPECIES_ODDISH}, - [SPECIES_GLOOM] = {gMonBackPic_Gloom, 0x800, SPECIES_GLOOM}, - [SPECIES_VILEPLUME] = {gMonBackPic_Vileplume, 0x800, SPECIES_VILEPLUME}, - [SPECIES_PARAS] = {gMonBackPic_Paras, 0x800, SPECIES_PARAS}, - [SPECIES_PARASECT] = {gMonBackPic_Parasect, 0x800, SPECIES_PARASECT}, - [SPECIES_VENONAT] = {gMonBackPic_Venonat, 0x800, SPECIES_VENONAT}, - [SPECIES_VENOMOTH] = {gMonBackPic_Venomoth, 0x800, SPECIES_VENOMOTH}, - [SPECIES_DIGLETT] = {gMonBackPic_Diglett, 0x800, SPECIES_DIGLETT}, - [SPECIES_DUGTRIO] = {gMonBackPic_Dugtrio, 0x800, SPECIES_DUGTRIO}, - [SPECIES_MEOWTH] = {gMonBackPic_Meowth, 0x800, SPECIES_MEOWTH}, - [SPECIES_PERSIAN] = {gMonBackPic_Persian, 0x800, SPECIES_PERSIAN}, - [SPECIES_PSYDUCK] = {gMonBackPic_Psyduck, 0x800, SPECIES_PSYDUCK}, - [SPECIES_GOLDUCK] = {gMonBackPic_Golduck, 0x800, SPECIES_GOLDUCK}, - [SPECIES_MANKEY] = {gMonBackPic_Mankey, 0x800, SPECIES_MANKEY}, - [SPECIES_PRIMEAPE] = {gMonBackPic_Primeape, 0x800, SPECIES_PRIMEAPE}, - [SPECIES_GROWLITHE] = {gMonBackPic_Growlithe, 0x800, SPECIES_GROWLITHE}, - [SPECIES_ARCANINE] = {gMonBackPic_Arcanine, 0x800, SPECIES_ARCANINE}, - [SPECIES_POLIWAG] = {gMonBackPic_Poliwag, 0x800, SPECIES_POLIWAG}, - [SPECIES_POLIWHIRL] = {gMonBackPic_Poliwhirl, 0x800, SPECIES_POLIWHIRL}, - [SPECIES_POLIWRATH] = {gMonBackPic_Poliwrath, 0x800, SPECIES_POLIWRATH}, - [SPECIES_ABRA] = {gMonBackPic_Abra, 0x800, SPECIES_ABRA}, - [SPECIES_KADABRA] = {gMonBackPic_Kadabra, 0x800, SPECIES_KADABRA}, - [SPECIES_ALAKAZAM] = {gMonBackPic_Alakazam, 0x800, SPECIES_ALAKAZAM}, - [SPECIES_MACHOP] = {gMonBackPic_Machop, 0x800, SPECIES_MACHOP}, - [SPECIES_MACHOKE] = {gMonBackPic_Machoke, 0x800, SPECIES_MACHOKE}, - [SPECIES_MACHAMP] = {gMonBackPic_Machamp, 0x800, SPECIES_MACHAMP}, - [SPECIES_BELLSPROUT] = {gMonBackPic_Bellsprout, 0x800, SPECIES_BELLSPROUT}, - [SPECIES_WEEPINBELL] = {gMonBackPic_Weepinbell, 0x800, SPECIES_WEEPINBELL}, - [SPECIES_VICTREEBEL] = {gMonBackPic_Victreebel, 0x800, SPECIES_VICTREEBEL}, - [SPECIES_TENTACOOL] = {gMonBackPic_Tentacool, 0x800, SPECIES_TENTACOOL}, - [SPECIES_TENTACRUEL] = {gMonBackPic_Tentacruel, 0x800, SPECIES_TENTACRUEL}, - [SPECIES_GEODUDE] = {gMonBackPic_Geodude, 0x800, SPECIES_GEODUDE}, - [SPECIES_GRAVELER] = {gMonBackPic_Graveler, 0x800, SPECIES_GRAVELER}, - [SPECIES_GOLEM] = {gMonBackPic_Golem, 0x800, SPECIES_GOLEM}, - [SPECIES_PONYTA] = {gMonBackPic_Ponyta, 0x800, SPECIES_PONYTA}, - [SPECIES_RAPIDASH] = {gMonBackPic_Rapidash, 0x800, SPECIES_RAPIDASH}, - [SPECIES_SLOWPOKE] = {gMonBackPic_Slowpoke, 0x800, SPECIES_SLOWPOKE}, - [SPECIES_SLOWBRO] = {gMonBackPic_Slowbro, 0x800, SPECIES_SLOWBRO}, - [SPECIES_MAGNEMITE] = {gMonBackPic_Magnemite, 0x800, SPECIES_MAGNEMITE}, - [SPECIES_MAGNETON] = {gMonBackPic_Magneton, 0x800, SPECIES_MAGNETON}, - [SPECIES_FARFETCHD] = {gMonBackPic_Farfetchd, 0x800, SPECIES_FARFETCHD}, - [SPECIES_DODUO] = {gMonBackPic_Doduo, 0x800, SPECIES_DODUO}, - [SPECIES_DODRIO] = {gMonBackPic_Dodrio, 0x800, SPECIES_DODRIO}, - [SPECIES_SEEL] = {gMonBackPic_Seel, 0x800, SPECIES_SEEL}, - [SPECIES_DEWGONG] = {gMonBackPic_Dewgong, 0x800, SPECIES_DEWGONG}, - [SPECIES_GRIMER] = {gMonBackPic_Grimer, 0x800, SPECIES_GRIMER}, - [SPECIES_MUK] = {gMonBackPic_Muk, 0x800, SPECIES_MUK}, - [SPECIES_SHELLDER] = {gMonBackPic_Shellder, 0x800, SPECIES_SHELLDER}, - [SPECIES_CLOYSTER] = {gMonBackPic_Cloyster, 0x800, SPECIES_CLOYSTER}, - [SPECIES_GASTLY] = {gMonBackPic_Gastly, 0x800, SPECIES_GASTLY}, - [SPECIES_HAUNTER] = {gMonBackPic_Haunter, 0x800, SPECIES_HAUNTER}, - [SPECIES_GENGAR] = {gMonBackPic_Gengar, 0x800, SPECIES_GENGAR}, - [SPECIES_ONIX] = {gMonBackPic_Onix, 0x800, SPECIES_ONIX}, - [SPECIES_DROWZEE] = {gMonBackPic_Drowzee, 0x800, SPECIES_DROWZEE}, - [SPECIES_HYPNO] = {gMonBackPic_Hypno, 0x800, SPECIES_HYPNO}, - [SPECIES_KRABBY] = {gMonBackPic_Krabby, 0x800, SPECIES_KRABBY}, - [SPECIES_KINGLER] = {gMonBackPic_Kingler, 0x800, SPECIES_KINGLER}, - [SPECIES_VOLTORB] = {gMonBackPic_Voltorb, 0x800, SPECIES_VOLTORB}, - [SPECIES_ELECTRODE] = {gMonBackPic_Electrode, 0x800, SPECIES_ELECTRODE}, - [SPECIES_EXEGGCUTE] = {gMonBackPic_Exeggcute, 0x800, SPECIES_EXEGGCUTE}, - [SPECIES_EXEGGUTOR] = {gMonBackPic_Exeggutor, 0x800, SPECIES_EXEGGUTOR}, - [SPECIES_CUBONE] = {gMonBackPic_Cubone, 0x800, SPECIES_CUBONE}, - [SPECIES_MAROWAK] = {gMonBackPic_Marowak, 0x800, SPECIES_MAROWAK}, - [SPECIES_HITMONLEE] = {gMonBackPic_Hitmonlee, 0x800, SPECIES_HITMONLEE}, - [SPECIES_HITMONCHAN] = {gMonBackPic_Hitmonchan, 0x800, SPECIES_HITMONCHAN}, - [SPECIES_LICKITUNG] = {gMonBackPic_Lickitung, 0x800, SPECIES_LICKITUNG}, - [SPECIES_KOFFING] = {gMonBackPic_Koffing, 0x800, SPECIES_KOFFING}, - [SPECIES_WEEZING] = {gMonBackPic_Weezing, 0x800, SPECIES_WEEZING}, - [SPECIES_RHYHORN] = {gMonBackPic_Rhyhorn, 0x800, SPECIES_RHYHORN}, - [SPECIES_RHYDON] = {gMonBackPic_Rhydon, 0x800, SPECIES_RHYDON}, - [SPECIES_CHANSEY] = {gMonBackPic_Chansey, 0x800, SPECIES_CHANSEY}, - [SPECIES_TANGELA] = {gMonBackPic_Tangela, 0x800, SPECIES_TANGELA}, - [SPECIES_KANGASKHAN] = {gMonBackPic_Kangaskhan, 0x800, SPECIES_KANGASKHAN}, - [SPECIES_HORSEA] = {gMonBackPic_Horsea, 0x800, SPECIES_HORSEA}, - [SPECIES_SEADRA] = {gMonBackPic_Seadra, 0x800, SPECIES_SEADRA}, - [SPECIES_GOLDEEN] = {gMonBackPic_Goldeen, 0x800, SPECIES_GOLDEEN}, - [SPECIES_SEAKING] = {gMonBackPic_Seaking, 0x800, SPECIES_SEAKING}, - [SPECIES_STARYU] = {gMonBackPic_Staryu, 0x800, SPECIES_STARYU}, - [SPECIES_STARMIE] = {gMonBackPic_Starmie, 0x800, SPECIES_STARMIE}, - [SPECIES_MR_MIME] = {gMonBackPic_Mrmime, 0x800, SPECIES_MR_MIME}, - [SPECIES_SCYTHER] = {gMonBackPic_Scyther, 0x800, SPECIES_SCYTHER}, - [SPECIES_JYNX] = {gMonBackPic_Jynx, 0x800, SPECIES_JYNX}, - [SPECIES_ELECTABUZZ] = {gMonBackPic_Electabuzz, 0x800, SPECIES_ELECTABUZZ}, - [SPECIES_MAGMAR] = {gMonBackPic_Magmar, 0x800, SPECIES_MAGMAR}, - [SPECIES_PINSIR] = {gMonBackPic_Pinsir, 0x800, SPECIES_PINSIR}, - [SPECIES_TAUROS] = {gMonBackPic_Tauros, 0x800, SPECIES_TAUROS}, - [SPECIES_MAGIKARP] = {gMonBackPic_Magikarp, 0x800, SPECIES_MAGIKARP}, - [SPECIES_GYARADOS] = {gMonBackPic_Gyarados, 0x800, SPECIES_GYARADOS}, - [SPECIES_LAPRAS] = {gMonBackPic_Lapras, 0x800, SPECIES_LAPRAS}, - [SPECIES_DITTO] = {gMonBackPic_Ditto, 0x800, SPECIES_DITTO}, - [SPECIES_EEVEE] = {gMonBackPic_Eevee, 0x800, SPECIES_EEVEE}, - [SPECIES_VAPOREON] = {gMonBackPic_Vaporeon, 0x800, SPECIES_VAPOREON}, - [SPECIES_JOLTEON] = {gMonBackPic_Jolteon, 0x800, SPECIES_JOLTEON}, - [SPECIES_FLAREON] = {gMonBackPic_Flareon, 0x800, SPECIES_FLAREON}, - [SPECIES_PORYGON] = {gMonBackPic_Porygon, 0x800, SPECIES_PORYGON}, - [SPECIES_OMANYTE] = {gMonBackPic_Omanyte, 0x800, SPECIES_OMANYTE}, - [SPECIES_OMASTAR] = {gMonBackPic_Omastar, 0x800, SPECIES_OMASTAR}, - [SPECIES_KABUTO] = {gMonBackPic_Kabuto, 0x800, SPECIES_KABUTO}, - [SPECIES_KABUTOPS] = {gMonBackPic_Kabutops, 0x800, SPECIES_KABUTOPS}, - [SPECIES_AERODACTYL] = {gMonBackPic_Aerodactyl, 0x800, SPECIES_AERODACTYL}, - [SPECIES_SNORLAX] = {gMonBackPic_Snorlax, 0x800, SPECIES_SNORLAX}, - [SPECIES_ARTICUNO] = {gMonBackPic_Articuno, 0x800, SPECIES_ARTICUNO}, - [SPECIES_ZAPDOS] = {gMonBackPic_Zapdos, 0x800, SPECIES_ZAPDOS}, - [SPECIES_MOLTRES] = {gMonBackPic_Moltres, 0x800, SPECIES_MOLTRES}, - [SPECIES_DRATINI] = {gMonBackPic_Dratini, 0x800, SPECIES_DRATINI}, - [SPECIES_DRAGONAIR] = {gMonBackPic_Dragonair, 0x800, SPECIES_DRAGONAIR}, - [SPECIES_DRAGONITE] = {gMonBackPic_Dragonite, 0x800, SPECIES_DRAGONITE}, - [SPECIES_MEWTWO] = {gMonBackPic_Mewtwo, 0x800, SPECIES_MEWTWO}, - [SPECIES_MEW] = {gMonBackPic_Mew, 0x800, SPECIES_MEW}, - [SPECIES_CHIKORITA] = {gMonBackPic_Chikorita, 0x800, SPECIES_CHIKORITA}, - [SPECIES_BAYLEEF] = {gMonBackPic_Bayleef, 0x800, SPECIES_BAYLEEF}, - [SPECIES_MEGANIUM] = {gMonBackPic_Meganium, 0x800, SPECIES_MEGANIUM}, - [SPECIES_CYNDAQUIL] = {gMonBackPic_Cyndaquil, 0x800, SPECIES_CYNDAQUIL}, - [SPECIES_QUILAVA] = {gMonBackPic_Quilava, 0x800, SPECIES_QUILAVA}, - [SPECIES_TYPHLOSION] = {gMonBackPic_Typhlosion, 0x800, SPECIES_TYPHLOSION}, - [SPECIES_TOTODILE] = {gMonBackPic_Totodile, 0x800, SPECIES_TOTODILE}, - [SPECIES_CROCONAW] = {gMonBackPic_Croconaw, 0x800, SPECIES_CROCONAW}, - [SPECIES_FERALIGATR] = {gMonBackPic_Feraligatr, 0x800, SPECIES_FERALIGATR}, - [SPECIES_SENTRET] = {gMonBackPic_Sentret, 0x800, SPECIES_SENTRET}, - [SPECIES_FURRET] = {gMonBackPic_Furret, 0x800, SPECIES_FURRET}, - [SPECIES_HOOTHOOT] = {gMonBackPic_Hoothoot, 0x800, SPECIES_HOOTHOOT}, - [SPECIES_NOCTOWL] = {gMonBackPic_Noctowl, 0x800, SPECIES_NOCTOWL}, - [SPECIES_LEDYBA] = {gMonBackPic_Ledyba, 0x800, SPECIES_LEDYBA}, - [SPECIES_LEDIAN] = {gMonBackPic_Ledian, 0x800, SPECIES_LEDIAN}, - [SPECIES_SPINARAK] = {gMonBackPic_Spinarak, 0x800, SPECIES_SPINARAK}, - [SPECIES_ARIADOS] = {gMonBackPic_Ariados, 0x800, SPECIES_ARIADOS}, - [SPECIES_CROBAT] = {gMonBackPic_Crobat, 0x800, SPECIES_CROBAT}, - [SPECIES_CHINCHOU] = {gMonBackPic_Chinchou, 0x800, SPECIES_CHINCHOU}, - [SPECIES_LANTURN] = {gMonBackPic_Lanturn, 0x800, SPECIES_LANTURN}, - [SPECIES_PICHU] = {gMonBackPic_Pichu, 0x800, SPECIES_PICHU}, - [SPECIES_CLEFFA] = {gMonBackPic_Cleffa, 0x800, SPECIES_CLEFFA}, - [SPECIES_IGGLYBUFF] = {gMonBackPic_Igglybuff, 0x800, SPECIES_IGGLYBUFF}, - [SPECIES_TOGEPI] = {gMonBackPic_Togepi, 0x800, SPECIES_TOGEPI}, - [SPECIES_TOGETIC] = {gMonBackPic_Togetic, 0x800, SPECIES_TOGETIC}, - [SPECIES_NATU] = {gMonBackPic_Natu, 0x800, SPECIES_NATU}, - [SPECIES_XATU] = {gMonBackPic_Xatu, 0x800, SPECIES_XATU}, - [SPECIES_MAREEP] = {gMonBackPic_Mareep, 0x800, SPECIES_MAREEP}, - [SPECIES_FLAAFFY] = {gMonBackPic_Flaaffy, 0x800, SPECIES_FLAAFFY}, - [SPECIES_AMPHAROS] = {gMonBackPic_Ampharos, 0x800, SPECIES_AMPHAROS}, - [SPECIES_BELLOSSOM] = {gMonBackPic_Bellossom, 0x800, SPECIES_BELLOSSOM}, - [SPECIES_MARILL] = {gMonBackPic_Marill, 0x800, SPECIES_MARILL}, - [SPECIES_AZUMARILL] = {gMonBackPic_Azumarill, 0x800, SPECIES_AZUMARILL}, - [SPECIES_SUDOWOODO] = {gMonBackPic_Sudowoodo, 0x800, SPECIES_SUDOWOODO}, - [SPECIES_POLITOED] = {gMonBackPic_Politoed, 0x800, SPECIES_POLITOED}, - [SPECIES_HOPPIP] = {gMonBackPic_Hoppip, 0x800, SPECIES_HOPPIP}, - [SPECIES_SKIPLOOM] = {gMonBackPic_Skiploom, 0x800, SPECIES_SKIPLOOM}, - [SPECIES_JUMPLUFF] = {gMonBackPic_Jumpluff, 0x800, SPECIES_JUMPLUFF}, - [SPECIES_AIPOM] = {gMonBackPic_Aipom, 0x800, SPECIES_AIPOM}, - [SPECIES_SUNKERN] = {gMonBackPic_Sunkern, 0x800, SPECIES_SUNKERN}, - [SPECIES_SUNFLORA] = {gMonBackPic_Sunflora, 0x800, SPECIES_SUNFLORA}, - [SPECIES_YANMA] = {gMonBackPic_Yanma, 0x800, SPECIES_YANMA}, - [SPECIES_WOOPER] = {gMonBackPic_Wooper, 0x800, SPECIES_WOOPER}, - [SPECIES_QUAGSIRE] = {gMonBackPic_Quagsire, 0x800, SPECIES_QUAGSIRE}, - [SPECIES_ESPEON] = {gMonBackPic_Espeon, 0x800, SPECIES_ESPEON}, - [SPECIES_UMBREON] = {gMonBackPic_Umbreon, 0x800, SPECIES_UMBREON}, - [SPECIES_MURKROW] = {gMonBackPic_Murkrow, 0x800, SPECIES_MURKROW}, - [SPECIES_SLOWKING] = {gMonBackPic_Slowking, 0x800, SPECIES_SLOWKING}, - [SPECIES_MISDREAVUS] = {gMonBackPic_Misdreavus, 0x800, SPECIES_MISDREAVUS}, - [SPECIES_UNOWN] = {gMonBackPic_UnownA, 0x800, SPECIES_UNOWN}, - [SPECIES_WOBBUFFET] = {gMonBackPic_Wobbuffet, 0x800, SPECIES_WOBBUFFET}, - [SPECIES_GIRAFARIG] = {gMonBackPic_Girafarig, 0x800, SPECIES_GIRAFARIG}, - [SPECIES_PINECO] = {gMonBackPic_Pineco, 0x800, SPECIES_PINECO}, - [SPECIES_FORRETRESS] = {gMonBackPic_Forretress, 0x800, SPECIES_FORRETRESS}, - [SPECIES_DUNSPARCE] = {gMonBackPic_Dunsparce, 0x800, SPECIES_DUNSPARCE}, - [SPECIES_GLIGAR] = {gMonBackPic_Gligar, 0x800, SPECIES_GLIGAR}, - [SPECIES_STEELIX] = {gMonBackPic_Steelix, 0x800, SPECIES_STEELIX}, - [SPECIES_SNUBBULL] = {gMonBackPic_Snubbull, 0x800, SPECIES_SNUBBULL}, - [SPECIES_GRANBULL] = {gMonBackPic_Granbull, 0x800, SPECIES_GRANBULL}, - [SPECIES_QWILFISH] = {gMonBackPic_Qwilfish, 0x800, SPECIES_QWILFISH}, - [SPECIES_SCIZOR] = {gMonBackPic_Scizor, 0x800, SPECIES_SCIZOR}, - [SPECIES_SHUCKLE] = {gMonBackPic_Shuckle, 0x800, SPECIES_SHUCKLE}, - [SPECIES_HERACROSS] = {gMonBackPic_Heracross, 0x800, SPECIES_HERACROSS}, - [SPECIES_SNEASEL] = {gMonBackPic_Sneasel, 0x800, SPECIES_SNEASEL}, - [SPECIES_TEDDIURSA] = {gMonBackPic_Teddiursa, 0x800, SPECIES_TEDDIURSA}, - [SPECIES_URSARING] = {gMonBackPic_Ursaring, 0x800, SPECIES_URSARING}, - [SPECIES_SLUGMA] = {gMonBackPic_Slugma, 0x800, SPECIES_SLUGMA}, - [SPECIES_MAGCARGO] = {gMonBackPic_Magcargo, 0x800, SPECIES_MAGCARGO}, - [SPECIES_SWINUB] = {gMonBackPic_Swinub, 0x800, SPECIES_SWINUB}, - [SPECIES_PILOSWINE] = {gMonBackPic_Piloswine, 0x800, SPECIES_PILOSWINE}, - [SPECIES_CORSOLA] = {gMonBackPic_Corsola, 0x800, SPECIES_CORSOLA}, - [SPECIES_REMORAID] = {gMonBackPic_Remoraid, 0x800, SPECIES_REMORAID}, - [SPECIES_OCTILLERY] = {gMonBackPic_Octillery, 0x800, SPECIES_OCTILLERY}, - [SPECIES_DELIBIRD] = {gMonBackPic_Delibird, 0x800, SPECIES_DELIBIRD}, - [SPECIES_MANTINE] = {gMonBackPic_Mantine, 0x800, SPECIES_MANTINE}, - [SPECIES_SKARMORY] = {gMonBackPic_Skarmory, 0x800, SPECIES_SKARMORY}, - [SPECIES_HOUNDOUR] = {gMonBackPic_Houndour, 0x800, SPECIES_HOUNDOUR}, - [SPECIES_HOUNDOOM] = {gMonBackPic_Houndoom, 0x800, SPECIES_HOUNDOOM}, - [SPECIES_KINGDRA] = {gMonBackPic_Kingdra, 0x800, SPECIES_KINGDRA}, - [SPECIES_PHANPY] = {gMonBackPic_Phanpy, 0x800, SPECIES_PHANPY}, - [SPECIES_DONPHAN] = {gMonBackPic_Donphan, 0x800, SPECIES_DONPHAN}, - [SPECIES_PORYGON2] = {gMonBackPic_Porygon2, 0x800, SPECIES_PORYGON2}, - [SPECIES_STANTLER] = {gMonBackPic_Stantler, 0x800, SPECIES_STANTLER}, - [SPECIES_SMEARGLE] = {gMonBackPic_Smeargle, 0x800, SPECIES_SMEARGLE}, - [SPECIES_TYROGUE] = {gMonBackPic_Tyrogue, 0x800, SPECIES_TYROGUE}, - [SPECIES_HITMONTOP] = {gMonBackPic_Hitmontop, 0x800, SPECIES_HITMONTOP}, - [SPECIES_SMOOCHUM] = {gMonBackPic_Smoochum, 0x800, SPECIES_SMOOCHUM}, - [SPECIES_ELEKID] = {gMonBackPic_Elekid, 0x800, SPECIES_ELEKID}, - [SPECIES_MAGBY] = {gMonBackPic_Magby, 0x800, SPECIES_MAGBY}, - [SPECIES_MILTANK] = {gMonBackPic_Miltank, 0x800, SPECIES_MILTANK}, - [SPECIES_BLISSEY] = {gMonBackPic_Blissey, 0x800, SPECIES_BLISSEY}, - [SPECIES_RAIKOU] = {gMonBackPic_Raikou, 0x800, SPECIES_RAIKOU}, - [SPECIES_ENTEI] = {gMonBackPic_Entei, 0x800, SPECIES_ENTEI}, - [SPECIES_SUICUNE] = {gMonBackPic_Suicune, 0x800, SPECIES_SUICUNE}, - [SPECIES_LARVITAR] = {gMonBackPic_Larvitar, 0x800, SPECIES_LARVITAR}, - [SPECIES_PUPITAR] = {gMonBackPic_Pupitar, 0x800, SPECIES_PUPITAR}, - [SPECIES_TYRANITAR] = {gMonBackPic_Tyranitar, 0x800, SPECIES_TYRANITAR}, - [SPECIES_LUGIA] = {gMonBackPic_Lugia, 0x800, SPECIES_LUGIA}, - [SPECIES_HO_OH] = {gMonBackPic_HoOh, 0x800, SPECIES_HO_OH}, - [SPECIES_CELEBI] = {gMonBackPic_Celebi, 0x800, SPECIES_CELEBI}, - [SPECIES_OLD_UNOWN_B] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_B}, - [SPECIES_OLD_UNOWN_C] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_C}, - [SPECIES_OLD_UNOWN_D] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_D}, - [SPECIES_OLD_UNOWN_E] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_E}, - [SPECIES_OLD_UNOWN_F] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_F}, - [SPECIES_OLD_UNOWN_G] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_G}, - [SPECIES_OLD_UNOWN_H] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_H}, - [SPECIES_OLD_UNOWN_I] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_I}, - [SPECIES_OLD_UNOWN_J] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_J}, - [SPECIES_OLD_UNOWN_K] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_K}, - [SPECIES_OLD_UNOWN_L] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_L}, - [SPECIES_OLD_UNOWN_M] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_M}, - [SPECIES_OLD_UNOWN_N] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_N}, - [SPECIES_OLD_UNOWN_O] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_O}, - [SPECIES_OLD_UNOWN_P] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_P}, - [SPECIES_OLD_UNOWN_Q] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_Q}, - [SPECIES_OLD_UNOWN_R] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_R}, - [SPECIES_OLD_UNOWN_S] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_S}, - [SPECIES_OLD_UNOWN_T] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_T}, - [SPECIES_OLD_UNOWN_U] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_U}, - [SPECIES_OLD_UNOWN_V] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_V}, - [SPECIES_OLD_UNOWN_W] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_W}, - [SPECIES_OLD_UNOWN_X] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_X}, - [SPECIES_OLD_UNOWN_Y] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_Y}, - [SPECIES_OLD_UNOWN_Z] = {gMonBackPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_Z}, - [SPECIES_TREECKO] = {gMonBackPic_Treecko, 0x800, SPECIES_TREECKO}, - [SPECIES_GROVYLE] = {gMonBackPic_Grovyle, 0x800, SPECIES_GROVYLE}, - [SPECIES_SCEPTILE] = {gMonBackPic_Sceptile, 0x800, SPECIES_SCEPTILE}, - [SPECIES_TORCHIC] = {gMonBackPic_Torchic, 0x800, SPECIES_TORCHIC}, - [SPECIES_COMBUSKEN] = {gMonBackPic_Combusken, 0x800, SPECIES_COMBUSKEN}, - [SPECIES_BLAZIKEN] = {gMonBackPic_Blaziken, 0x800, SPECIES_BLAZIKEN}, - [SPECIES_MUDKIP] = {gMonBackPic_Mudkip, 0x800, SPECIES_MUDKIP}, - [SPECIES_MARSHTOMP] = {gMonBackPic_Marshtomp, 0x800, SPECIES_MARSHTOMP}, - [SPECIES_SWAMPERT] = {gMonBackPic_Swampert, 0x800, SPECIES_SWAMPERT}, - [SPECIES_POOCHYENA] = {gMonBackPic_Poochyena, 0x800, SPECIES_POOCHYENA}, - [SPECIES_MIGHTYENA] = {gMonBackPic_Mightyena, 0x800, SPECIES_MIGHTYENA}, - [SPECIES_ZIGZAGOON] = {gMonBackPic_Zigzagoon, 0x800, SPECIES_ZIGZAGOON}, - [SPECIES_LINOONE] = {gMonBackPic_Linoone, 0x800, SPECIES_LINOONE}, - [SPECIES_WURMPLE] = {gMonBackPic_Wurmple, 0x800, SPECIES_WURMPLE}, - [SPECIES_SILCOON] = {gMonBackPic_Silcoon, 0x800, SPECIES_SILCOON}, - [SPECIES_BEAUTIFLY] = {gMonBackPic_Beautifly, 0x800, SPECIES_BEAUTIFLY}, - [SPECIES_CASCOON] = {gMonBackPic_Cascoon, 0x800, SPECIES_CASCOON}, - [SPECIES_DUSTOX] = {gMonBackPic_Dustox, 0x800, SPECIES_DUSTOX}, - [SPECIES_LOTAD] = {gMonBackPic_Lotad, 0x800, SPECIES_LOTAD}, - [SPECIES_LOMBRE] = {gMonBackPic_Lombre, 0x800, SPECIES_LOMBRE}, - [SPECIES_LUDICOLO] = {gMonBackPic_Ludicolo, 0x800, SPECIES_LUDICOLO}, - [SPECIES_SEEDOT] = {gMonBackPic_Seedot, 0x800, SPECIES_SEEDOT}, - [SPECIES_NUZLEAF] = {gMonBackPic_Nuzleaf, 0x800, SPECIES_NUZLEAF}, - [SPECIES_SHIFTRY] = {gMonBackPic_Shiftry, 0x800, SPECIES_SHIFTRY}, - [SPECIES_NINCADA] = {gMonBackPic_Nincada, 0x800, SPECIES_NINCADA}, - [SPECIES_NINJASK] = {gMonBackPic_Ninjask, 0x800, SPECIES_NINJASK}, - [SPECIES_SHEDINJA] = {gMonBackPic_Shedinja, 0x800, SPECIES_SHEDINJA}, - [SPECIES_TAILLOW] = {gMonBackPic_Taillow, 0x800, SPECIES_TAILLOW}, - [SPECIES_SWELLOW] = {gMonBackPic_Swellow, 0x800, SPECIES_SWELLOW}, - [SPECIES_SHROOMISH] = {gMonBackPic_Shroomish, 0x800, SPECIES_SHROOMISH}, - [SPECIES_BRELOOM] = {gMonBackPic_Breloom, 0x800, SPECIES_BRELOOM}, - [SPECIES_SPINDA] = {gMonBackPic_Spinda, 0x800, SPECIES_SPINDA}, - [SPECIES_WINGULL] = {gMonBackPic_Wingull, 0x800, SPECIES_WINGULL}, - [SPECIES_PELIPPER] = {gMonBackPic_Pelipper, 0x800, SPECIES_PELIPPER}, - [SPECIES_SURSKIT] = {gMonBackPic_Surskit, 0x800, SPECIES_SURSKIT}, - [SPECIES_MASQUERAIN] = {gMonBackPic_Masquerain, 0x800, SPECIES_MASQUERAIN}, - [SPECIES_WAILMER] = {gMonBackPic_Wailmer, 0x800, SPECIES_WAILMER}, - [SPECIES_WAILORD] = {gMonBackPic_Wailord, 0x800, SPECIES_WAILORD}, - [SPECIES_SKITTY] = {gMonBackPic_Skitty, 0x800, SPECIES_SKITTY}, - [SPECIES_DELCATTY] = {gMonBackPic_Delcatty, 0x800, SPECIES_DELCATTY}, - [SPECIES_KECLEON] = {gMonBackPic_Kecleon, 0x800, SPECIES_KECLEON}, - [SPECIES_BALTOY] = {gMonBackPic_Baltoy, 0x800, SPECIES_BALTOY}, - [SPECIES_CLAYDOL] = {gMonBackPic_Claydol, 0x800, SPECIES_CLAYDOL}, - [SPECIES_NOSEPASS] = {gMonBackPic_Nosepass, 0x800, SPECIES_NOSEPASS}, - [SPECIES_TORKOAL] = {gMonBackPic_Torkoal, 0x800, SPECIES_TORKOAL}, - [SPECIES_SABLEYE] = {gMonBackPic_Sableye, 0x800, SPECIES_SABLEYE}, - [SPECIES_BARBOACH] = {gMonBackPic_Barboach, 0x800, SPECIES_BARBOACH}, - [SPECIES_WHISCASH] = {gMonBackPic_Whiscash, 0x800, SPECIES_WHISCASH}, - [SPECIES_LUVDISC] = {gMonBackPic_Luvdisc, 0x800, SPECIES_LUVDISC}, - [SPECIES_CORPHISH] = {gMonBackPic_Corphish, 0x800, SPECIES_CORPHISH}, - [SPECIES_CRAWDAUNT] = {gMonBackPic_Crawdaunt, 0x800, SPECIES_CRAWDAUNT}, - [SPECIES_FEEBAS] = {gMonBackPic_Feebas, 0x800, SPECIES_FEEBAS}, - [SPECIES_MILOTIC] = {gMonBackPic_Milotic, 0x800, SPECIES_MILOTIC}, - [SPECIES_CARVANHA] = {gMonBackPic_Carvanha, 0x800, SPECIES_CARVANHA}, - [SPECIES_SHARPEDO] = {gMonBackPic_Sharpedo, 0x800, SPECIES_SHARPEDO}, - [SPECIES_TRAPINCH] = {gMonBackPic_Trapinch, 0x800, SPECIES_TRAPINCH}, - [SPECIES_VIBRAVA] = {gMonBackPic_Vibrava, 0x800, SPECIES_VIBRAVA}, - [SPECIES_FLYGON] = {gMonBackPic_Flygon, 0x800, SPECIES_FLYGON}, - [SPECIES_MAKUHITA] = {gMonBackPic_Makuhita, 0x800, SPECIES_MAKUHITA}, - [SPECIES_HARIYAMA] = {gMonBackPic_Hariyama, 0x800, SPECIES_HARIYAMA}, - [SPECIES_ELECTRIKE] = {gMonBackPic_Electrike, 0x800, SPECIES_ELECTRIKE}, - [SPECIES_MANECTRIC] = {gMonBackPic_Manectric, 0x800, SPECIES_MANECTRIC}, - [SPECIES_NUMEL] = {gMonBackPic_Numel, 0x800, SPECIES_NUMEL}, - [SPECIES_CAMERUPT] = {gMonBackPic_Camerupt, 0x800, SPECIES_CAMERUPT}, - [SPECIES_SPHEAL] = {gMonBackPic_Spheal, 0x800, SPECIES_SPHEAL}, - [SPECIES_SEALEO] = {gMonBackPic_Sealeo, 0x800, SPECIES_SEALEO}, - [SPECIES_WALREIN] = {gMonBackPic_Walrein, 0x800, SPECIES_WALREIN}, - [SPECIES_CACNEA] = {gMonBackPic_Cacnea, 0x800, SPECIES_CACNEA}, - [SPECIES_CACTURNE] = {gMonBackPic_Cacturne, 0x800, SPECIES_CACTURNE}, - [SPECIES_SNORUNT] = {gMonBackPic_Snorunt, 0x800, SPECIES_SNORUNT}, - [SPECIES_GLALIE] = {gMonBackPic_Glalie, 0x800, SPECIES_GLALIE}, - [SPECIES_LUNATONE] = {gMonBackPic_Lunatone, 0x800, SPECIES_LUNATONE}, - [SPECIES_SOLROCK] = {gMonBackPic_Solrock, 0x800, SPECIES_SOLROCK}, - [SPECIES_AZURILL] = {gMonBackPic_Azurill, 0x800, SPECIES_AZURILL}, - [SPECIES_SPOINK] = {gMonBackPic_Spoink, 0x800, SPECIES_SPOINK}, - [SPECIES_GRUMPIG] = {gMonBackPic_Grumpig, 0x800, SPECIES_GRUMPIG}, - [SPECIES_PLUSLE] = {gMonBackPic_Plusle, 0x800, SPECIES_PLUSLE}, - [SPECIES_MINUN] = {gMonBackPic_Minun, 0x800, SPECIES_MINUN}, - [SPECIES_MAWILE] = {gMonBackPic_Mawile, 0x800, SPECIES_MAWILE}, - [SPECIES_MEDITITE] = {gMonBackPic_Meditite, 0x800, SPECIES_MEDITITE}, - [SPECIES_MEDICHAM] = {gMonBackPic_Medicham, 0x800, SPECIES_MEDICHAM}, - [SPECIES_SWABLU] = {gMonBackPic_Swablu, 0x800, SPECIES_SWABLU}, - [SPECIES_ALTARIA] = {gMonBackPic_Altaria, 0x800, SPECIES_ALTARIA}, - [SPECIES_WYNAUT] = {gMonBackPic_Wynaut, 0x800, SPECIES_WYNAUT}, - [SPECIES_DUSKULL] = {gMonBackPic_Duskull, 0x800, SPECIES_DUSKULL}, - [SPECIES_DUSCLOPS] = {gMonBackPic_Dusclops, 0x800, SPECIES_DUSCLOPS}, - [SPECIES_ROSELIA] = {gMonBackPic_Roselia, 0x800, SPECIES_ROSELIA}, - [SPECIES_SLAKOTH] = {gMonBackPic_Slakoth, 0x800, SPECIES_SLAKOTH}, - [SPECIES_VIGOROTH] = {gMonBackPic_Vigoroth, 0x800, SPECIES_VIGOROTH}, - [SPECIES_SLAKING] = {gMonBackPic_Slaking, 0x800, SPECIES_SLAKING}, - [SPECIES_GULPIN] = {gMonBackPic_Gulpin, 0x800, SPECIES_GULPIN}, - [SPECIES_SWALOT] = {gMonBackPic_Swalot, 0x800, SPECIES_SWALOT}, - [SPECIES_TROPIUS] = {gMonBackPic_Tropius, 0x800, SPECIES_TROPIUS}, - [SPECIES_WHISMUR] = {gMonBackPic_Whismur, 0x800, SPECIES_WHISMUR}, - [SPECIES_LOUDRED] = {gMonBackPic_Loudred, 0x800, SPECIES_LOUDRED}, - [SPECIES_EXPLOUD] = {gMonBackPic_Exploud, 0x800, SPECIES_EXPLOUD}, - [SPECIES_CLAMPERL] = {gMonBackPic_Clamperl, 0x800, SPECIES_CLAMPERL}, - [SPECIES_HUNTAIL] = {gMonBackPic_Huntail, 0x800, SPECIES_HUNTAIL}, - [SPECIES_GOREBYSS] = {gMonBackPic_Gorebyss, 0x800, SPECIES_GOREBYSS}, - [SPECIES_ABSOL] = {gMonBackPic_Absol, 0x800, SPECIES_ABSOL}, - [SPECIES_SHUPPET] = {gMonBackPic_Shuppet, 0x800, SPECIES_SHUPPET}, - [SPECIES_BANETTE] = {gMonBackPic_Banette, 0x800, SPECIES_BANETTE}, - [SPECIES_SEVIPER] = {gMonBackPic_Seviper, 0x800, SPECIES_SEVIPER}, - [SPECIES_ZANGOOSE] = {gMonBackPic_Zangoose, 0x800, SPECIES_ZANGOOSE}, - [SPECIES_RELICANTH] = {gMonBackPic_Relicanth, 0x800, SPECIES_RELICANTH}, - [SPECIES_ARON] = {gMonBackPic_Aron, 0x800, SPECIES_ARON}, - [SPECIES_LAIRON] = {gMonBackPic_Lairon, 0x800, SPECIES_LAIRON}, - [SPECIES_AGGRON] = {gMonBackPic_Aggron, 0x800, SPECIES_AGGRON}, - [SPECIES_CASTFORM] = {gMonBackPic_Castform, 0x800, SPECIES_CASTFORM}, - [SPECIES_VOLBEAT] = {gMonBackPic_Volbeat, 0x800, SPECIES_VOLBEAT}, - [SPECIES_ILLUMISE] = {gMonBackPic_Illumise, 0x800, SPECIES_ILLUMISE}, - [SPECIES_LILEEP] = {gMonBackPic_Lileep, 0x800, SPECIES_LILEEP}, - [SPECIES_CRADILY] = {gMonBackPic_Cradily, 0x800, SPECIES_CRADILY}, - [SPECIES_ANORITH] = {gMonBackPic_Anorith, 0x800, SPECIES_ANORITH}, - [SPECIES_ARMALDO] = {gMonBackPic_Armaldo, 0x800, SPECIES_ARMALDO}, - [SPECIES_RALTS] = {gMonBackPic_Ralts, 0x800, SPECIES_RALTS}, - [SPECIES_KIRLIA] = {gMonBackPic_Kirlia, 0x800, SPECIES_KIRLIA}, - [SPECIES_GARDEVOIR] = {gMonBackPic_Gardevoir, 0x800, SPECIES_GARDEVOIR}, - [SPECIES_BAGON] = {gMonBackPic_Bagon, 0x800, SPECIES_BAGON}, - [SPECIES_SHELGON] = {gMonBackPic_Shelgon, 0x800, SPECIES_SHELGON}, - [SPECIES_SALAMENCE] = {gMonBackPic_Salamence, 0x800, SPECIES_SALAMENCE}, - [SPECIES_BELDUM] = {gMonBackPic_Beldum, 0x800, SPECIES_BELDUM}, - [SPECIES_METANG] = {gMonBackPic_Metang, 0x800, SPECIES_METANG}, - [SPECIES_METAGROSS] = {gMonBackPic_Metagross, 0x800, SPECIES_METAGROSS}, - [SPECIES_REGIROCK] = {gMonBackPic_Regirock, 0x800, SPECIES_REGIROCK}, - [SPECIES_REGICE] = {gMonBackPic_Regice, 0x800, SPECIES_REGICE}, - [SPECIES_REGISTEEL] = {gMonBackPic_Registeel, 0x800, SPECIES_REGISTEEL}, - [SPECIES_KYOGRE] = {gMonBackPic_Kyogre, 0x800, SPECIES_KYOGRE}, - [SPECIES_GROUDON] = {gMonBackPic_Groudon, 0x800, SPECIES_GROUDON}, - [SPECIES_RAYQUAZA] = {gMonBackPic_Rayquaza, 0x800, SPECIES_RAYQUAZA}, - [SPECIES_LATIAS] = {gMonBackPic_Latias, 0x800, SPECIES_LATIAS}, - [SPECIES_LATIOS] = {gMonBackPic_Latios, 0x800, SPECIES_LATIOS}, - [SPECIES_JIRACHI] = {gMonBackPic_Jirachi, 0x800, SPECIES_JIRACHI}, - [SPECIES_DEOXYS] = {gMonBackPic_Deoxys, 0x800, SPECIES_DEOXYS}, - [SPECIES_CHIMECHO] = {gMonBackPic_Chimecho, 0x800, SPECIES_CHIMECHO}, - [SPECIES_EGG] = {gMonStillFrontPic_Egg, 0x800, SPECIES_EGG}, - [SPECIES_UNOWN_B] = {gMonBackPic_UnownB, 0x800, SPECIES_UNOWN_B}, - [SPECIES_UNOWN_C] = {gMonBackPic_UnownC, 0x800, SPECIES_UNOWN_C}, - [SPECIES_UNOWN_D] = {gMonBackPic_UnownD, 0x800, SPECIES_UNOWN_D}, - [SPECIES_UNOWN_E] = {gMonBackPic_UnownE, 0x800, SPECIES_UNOWN_E}, - [SPECIES_UNOWN_F] = {gMonBackPic_UnownF, 0x800, SPECIES_UNOWN_F}, - [SPECIES_UNOWN_G] = {gMonBackPic_UnownG, 0x800, SPECIES_UNOWN_G}, - [SPECIES_UNOWN_H] = {gMonBackPic_UnownH, 0x800, SPECIES_UNOWN_H}, - [SPECIES_UNOWN_I] = {gMonBackPic_UnownI, 0x800, SPECIES_UNOWN_I}, - [SPECIES_UNOWN_J] = {gMonBackPic_UnownJ, 0x800, SPECIES_UNOWN_J}, - [SPECIES_UNOWN_K] = {gMonBackPic_UnownK, 0x800, SPECIES_UNOWN_K}, - [SPECIES_UNOWN_L] = {gMonBackPic_UnownL, 0x800, SPECIES_UNOWN_L}, - [SPECIES_UNOWN_M] = {gMonBackPic_UnownM, 0x800, SPECIES_UNOWN_M}, - [SPECIES_UNOWN_N] = {gMonBackPic_UnownN, 0x800, SPECIES_UNOWN_N}, - [SPECIES_UNOWN_O] = {gMonBackPic_UnownO, 0x800, SPECIES_UNOWN_O}, - [SPECIES_UNOWN_P] = {gMonBackPic_UnownP, 0x800, SPECIES_UNOWN_P}, - [SPECIES_UNOWN_Q] = {gMonBackPic_UnownQ, 0x800, SPECIES_UNOWN_Q}, - [SPECIES_UNOWN_R] = {gMonBackPic_UnownR, 0x800, SPECIES_UNOWN_R}, - [SPECIES_UNOWN_S] = {gMonBackPic_UnownS, 0x800, SPECIES_UNOWN_S}, - [SPECIES_UNOWN_T] = {gMonBackPic_UnownT, 0x800, SPECIES_UNOWN_T}, - [SPECIES_UNOWN_U] = {gMonBackPic_UnownU, 0x800, SPECIES_UNOWN_U}, - [SPECIES_UNOWN_V] = {gMonBackPic_UnownV, 0x800, SPECIES_UNOWN_V}, - [SPECIES_UNOWN_W] = {gMonBackPic_UnownW, 0x800, SPECIES_UNOWN_W}, - [SPECIES_UNOWN_X] = {gMonBackPic_UnownX, 0x800, SPECIES_UNOWN_X}, - [SPECIES_UNOWN_Y] = {gMonBackPic_UnownY, 0x800, SPECIES_UNOWN_Y}, - [SPECIES_UNOWN_Z] = {gMonBackPic_UnownZ, 0x800, SPECIES_UNOWN_Z}, - [SPECIES_UNOWN_EMARK] = {gMonBackPic_UnownExclamationMark, 0x800, SPECIES_UNOWN_EMARK}, - [SPECIES_UNOWN_QMARK] = {gMonBackPic_UnownQuestionMark, 0x800, SPECIES_UNOWN_QMARK}, + SPECIES_SPRITE(NONE, gMonBackPic_CircledQuestionMark), + SPECIES_SPRITE(BULBASAUR, gMonBackPic_Bulbasaur), + SPECIES_SPRITE(IVYSAUR, gMonBackPic_Ivysaur), + SPECIES_SPRITE(VENUSAUR, gMonBackPic_Venusaur), + SPECIES_SPRITE(CHARMANDER, gMonBackPic_Charmander), + SPECIES_SPRITE(CHARMELEON, gMonBackPic_Charmeleon), + SPECIES_SPRITE(CHARIZARD, gMonBackPic_Charizard), + SPECIES_SPRITE(SQUIRTLE, gMonBackPic_Squirtle), + SPECIES_SPRITE(WARTORTLE, gMonBackPic_Wartortle), + SPECIES_SPRITE(BLASTOISE, gMonBackPic_Blastoise), + SPECIES_SPRITE(CATERPIE, gMonBackPic_Caterpie), + SPECIES_SPRITE(METAPOD, gMonBackPic_Metapod), + SPECIES_SPRITE(BUTTERFREE, gMonBackPic_Butterfree), + SPECIES_SPRITE(WEEDLE, gMonBackPic_Weedle), + SPECIES_SPRITE(KAKUNA, gMonBackPic_Kakuna), + SPECIES_SPRITE(BEEDRILL, gMonBackPic_Beedrill), + SPECIES_SPRITE(PIDGEY, gMonBackPic_Pidgey), + SPECIES_SPRITE(PIDGEOTTO, gMonBackPic_Pidgeotto), + SPECIES_SPRITE(PIDGEOT, gMonBackPic_Pidgeot), + SPECIES_SPRITE(RATTATA, gMonBackPic_Rattata), + SPECIES_SPRITE(RATICATE, gMonBackPic_Raticate), + SPECIES_SPRITE(SPEAROW, gMonBackPic_Spearow), + SPECIES_SPRITE(FEAROW, gMonBackPic_Fearow), + SPECIES_SPRITE(EKANS, gMonBackPic_Ekans), + SPECIES_SPRITE(ARBOK, gMonBackPic_Arbok), + SPECIES_SPRITE(PIKACHU, gMonBackPic_Pikachu), + SPECIES_SPRITE(RAICHU, gMonBackPic_Raichu), + SPECIES_SPRITE(SANDSHREW, gMonBackPic_Sandshrew), + SPECIES_SPRITE(SANDSLASH, gMonBackPic_Sandslash), + SPECIES_SPRITE(NIDORAN_F, gMonBackPic_NidoranF), + SPECIES_SPRITE(NIDORINA, gMonBackPic_Nidorina), + SPECIES_SPRITE(NIDOQUEEN, gMonBackPic_Nidoqueen), + SPECIES_SPRITE(NIDORAN_M, gMonBackPic_NidoranM), + SPECIES_SPRITE(NIDORINO, gMonBackPic_Nidorino), + SPECIES_SPRITE(NIDOKING, gMonBackPic_Nidoking), + SPECIES_SPRITE(CLEFAIRY, gMonBackPic_Clefairy), + SPECIES_SPRITE(CLEFABLE, gMonBackPic_Clefable), + SPECIES_SPRITE(VULPIX, gMonBackPic_Vulpix), + SPECIES_SPRITE(NINETALES, gMonBackPic_Ninetales), + SPECIES_SPRITE(JIGGLYPUFF, gMonBackPic_Jigglypuff), + SPECIES_SPRITE(WIGGLYTUFF, gMonBackPic_Wigglytuff), + SPECIES_SPRITE(ZUBAT, gMonBackPic_Zubat), + SPECIES_SPRITE(GOLBAT, gMonBackPic_Golbat), + SPECIES_SPRITE(ODDISH, gMonBackPic_Oddish), + SPECIES_SPRITE(GLOOM, gMonBackPic_Gloom), + SPECIES_SPRITE(VILEPLUME, gMonBackPic_Vileplume), + SPECIES_SPRITE(PARAS, gMonBackPic_Paras), + SPECIES_SPRITE(PARASECT, gMonBackPic_Parasect), + SPECIES_SPRITE(VENONAT, gMonBackPic_Venonat), + SPECIES_SPRITE(VENOMOTH, gMonBackPic_Venomoth), + SPECIES_SPRITE(DIGLETT, gMonBackPic_Diglett), + SPECIES_SPRITE(DUGTRIO, gMonBackPic_Dugtrio), + SPECIES_SPRITE(MEOWTH, gMonBackPic_Meowth), + SPECIES_SPRITE(PERSIAN, gMonBackPic_Persian), + SPECIES_SPRITE(PSYDUCK, gMonBackPic_Psyduck), + SPECIES_SPRITE(GOLDUCK, gMonBackPic_Golduck), + SPECIES_SPRITE(MANKEY, gMonBackPic_Mankey), + SPECIES_SPRITE(PRIMEAPE, gMonBackPic_Primeape), + SPECIES_SPRITE(GROWLITHE, gMonBackPic_Growlithe), + SPECIES_SPRITE(ARCANINE, gMonBackPic_Arcanine), + SPECIES_SPRITE(POLIWAG, gMonBackPic_Poliwag), + SPECIES_SPRITE(POLIWHIRL, gMonBackPic_Poliwhirl), + SPECIES_SPRITE(POLIWRATH, gMonBackPic_Poliwrath), + SPECIES_SPRITE(ABRA, gMonBackPic_Abra), + SPECIES_SPRITE(KADABRA, gMonBackPic_Kadabra), + SPECIES_SPRITE(ALAKAZAM, gMonBackPic_Alakazam), + SPECIES_SPRITE(MACHOP, gMonBackPic_Machop), + SPECIES_SPRITE(MACHOKE, gMonBackPic_Machoke), + SPECIES_SPRITE(MACHAMP, gMonBackPic_Machamp), + SPECIES_SPRITE(BELLSPROUT, gMonBackPic_Bellsprout), + SPECIES_SPRITE(WEEPINBELL, gMonBackPic_Weepinbell), + SPECIES_SPRITE(VICTREEBEL, gMonBackPic_Victreebel), + SPECIES_SPRITE(TENTACOOL, gMonBackPic_Tentacool), + SPECIES_SPRITE(TENTACRUEL, gMonBackPic_Tentacruel), + SPECIES_SPRITE(GEODUDE, gMonBackPic_Geodude), + SPECIES_SPRITE(GRAVELER, gMonBackPic_Graveler), + SPECIES_SPRITE(GOLEM, gMonBackPic_Golem), + SPECIES_SPRITE(PONYTA, gMonBackPic_Ponyta), + SPECIES_SPRITE(RAPIDASH, gMonBackPic_Rapidash), + SPECIES_SPRITE(SLOWPOKE, gMonBackPic_Slowpoke), + SPECIES_SPRITE(SLOWBRO, gMonBackPic_Slowbro), + SPECIES_SPRITE(MAGNEMITE, gMonBackPic_Magnemite), + SPECIES_SPRITE(MAGNETON, gMonBackPic_Magneton), + SPECIES_SPRITE(FARFETCHD, gMonBackPic_Farfetchd), + SPECIES_SPRITE(DODUO, gMonBackPic_Doduo), + SPECIES_SPRITE(DODRIO, gMonBackPic_Dodrio), + SPECIES_SPRITE(SEEL, gMonBackPic_Seel), + SPECIES_SPRITE(DEWGONG, gMonBackPic_Dewgong), + SPECIES_SPRITE(GRIMER, gMonBackPic_Grimer), + SPECIES_SPRITE(MUK, gMonBackPic_Muk), + SPECIES_SPRITE(SHELLDER, gMonBackPic_Shellder), + SPECIES_SPRITE(CLOYSTER, gMonBackPic_Cloyster), + SPECIES_SPRITE(GASTLY, gMonBackPic_Gastly), + SPECIES_SPRITE(HAUNTER, gMonBackPic_Haunter), + SPECIES_SPRITE(GENGAR, gMonBackPic_Gengar), + SPECIES_SPRITE(ONIX, gMonBackPic_Onix), + SPECIES_SPRITE(DROWZEE, gMonBackPic_Drowzee), + SPECIES_SPRITE(HYPNO, gMonBackPic_Hypno), + SPECIES_SPRITE(KRABBY, gMonBackPic_Krabby), + SPECIES_SPRITE(KINGLER, gMonBackPic_Kingler), + SPECIES_SPRITE(VOLTORB, gMonBackPic_Voltorb), + SPECIES_SPRITE(ELECTRODE, gMonBackPic_Electrode), + SPECIES_SPRITE(EXEGGCUTE, gMonBackPic_Exeggcute), + SPECIES_SPRITE(EXEGGUTOR, gMonBackPic_Exeggutor), + SPECIES_SPRITE(CUBONE, gMonBackPic_Cubone), + SPECIES_SPRITE(MAROWAK, gMonBackPic_Marowak), + SPECIES_SPRITE(HITMONLEE, gMonBackPic_Hitmonlee), + SPECIES_SPRITE(HITMONCHAN, gMonBackPic_Hitmonchan), + SPECIES_SPRITE(LICKITUNG, gMonBackPic_Lickitung), + SPECIES_SPRITE(KOFFING, gMonBackPic_Koffing), + SPECIES_SPRITE(WEEZING, gMonBackPic_Weezing), + SPECIES_SPRITE(RHYHORN, gMonBackPic_Rhyhorn), + SPECIES_SPRITE(RHYDON, gMonBackPic_Rhydon), + SPECIES_SPRITE(CHANSEY, gMonBackPic_Chansey), + SPECIES_SPRITE(TANGELA, gMonBackPic_Tangela), + SPECIES_SPRITE(KANGASKHAN, gMonBackPic_Kangaskhan), + SPECIES_SPRITE(HORSEA, gMonBackPic_Horsea), + SPECIES_SPRITE(SEADRA, gMonBackPic_Seadra), + SPECIES_SPRITE(GOLDEEN, gMonBackPic_Goldeen), + SPECIES_SPRITE(SEAKING, gMonBackPic_Seaking), + SPECIES_SPRITE(STARYU, gMonBackPic_Staryu), + SPECIES_SPRITE(STARMIE, gMonBackPic_Starmie), + SPECIES_SPRITE(MR_MIME, gMonBackPic_Mrmime), + SPECIES_SPRITE(SCYTHER, gMonBackPic_Scyther), + SPECIES_SPRITE(JYNX, gMonBackPic_Jynx), + SPECIES_SPRITE(ELECTABUZZ, gMonBackPic_Electabuzz), + SPECIES_SPRITE(MAGMAR, gMonBackPic_Magmar), + SPECIES_SPRITE(PINSIR, gMonBackPic_Pinsir), + SPECIES_SPRITE(TAUROS, gMonBackPic_Tauros), + SPECIES_SPRITE(MAGIKARP, gMonBackPic_Magikarp), + SPECIES_SPRITE(GYARADOS, gMonBackPic_Gyarados), + SPECIES_SPRITE(LAPRAS, gMonBackPic_Lapras), + SPECIES_SPRITE(DITTO, gMonBackPic_Ditto), + SPECIES_SPRITE(EEVEE, gMonBackPic_Eevee), + SPECIES_SPRITE(VAPOREON, gMonBackPic_Vaporeon), + SPECIES_SPRITE(JOLTEON, gMonBackPic_Jolteon), + SPECIES_SPRITE(FLAREON, gMonBackPic_Flareon), + SPECIES_SPRITE(PORYGON, gMonBackPic_Porygon), + SPECIES_SPRITE(OMANYTE, gMonBackPic_Omanyte), + SPECIES_SPRITE(OMASTAR, gMonBackPic_Omastar), + SPECIES_SPRITE(KABUTO, gMonBackPic_Kabuto), + SPECIES_SPRITE(KABUTOPS, gMonBackPic_Kabutops), + SPECIES_SPRITE(AERODACTYL, gMonBackPic_Aerodactyl), + SPECIES_SPRITE(SNORLAX, gMonBackPic_Snorlax), + SPECIES_SPRITE(ARTICUNO, gMonBackPic_Articuno), + SPECIES_SPRITE(ZAPDOS, gMonBackPic_Zapdos), + SPECIES_SPRITE(MOLTRES, gMonBackPic_Moltres), + SPECIES_SPRITE(DRATINI, gMonBackPic_Dratini), + SPECIES_SPRITE(DRAGONAIR, gMonBackPic_Dragonair), + SPECIES_SPRITE(DRAGONITE, gMonBackPic_Dragonite), + SPECIES_SPRITE(MEWTWO, gMonBackPic_Mewtwo), + SPECIES_SPRITE(MEW, gMonBackPic_Mew), + SPECIES_SPRITE(CHIKORITA, gMonBackPic_Chikorita), + SPECIES_SPRITE(BAYLEEF, gMonBackPic_Bayleef), + SPECIES_SPRITE(MEGANIUM, gMonBackPic_Meganium), + SPECIES_SPRITE(CYNDAQUIL, gMonBackPic_Cyndaquil), + SPECIES_SPRITE(QUILAVA, gMonBackPic_Quilava), + SPECIES_SPRITE(TYPHLOSION, gMonBackPic_Typhlosion), + SPECIES_SPRITE(TOTODILE, gMonBackPic_Totodile), + SPECIES_SPRITE(CROCONAW, gMonBackPic_Croconaw), + SPECIES_SPRITE(FERALIGATR, gMonBackPic_Feraligatr), + SPECIES_SPRITE(SENTRET, gMonBackPic_Sentret), + SPECIES_SPRITE(FURRET, gMonBackPic_Furret), + SPECIES_SPRITE(HOOTHOOT, gMonBackPic_Hoothoot), + SPECIES_SPRITE(NOCTOWL, gMonBackPic_Noctowl), + SPECIES_SPRITE(LEDYBA, gMonBackPic_Ledyba), + SPECIES_SPRITE(LEDIAN, gMonBackPic_Ledian), + SPECIES_SPRITE(SPINARAK, gMonBackPic_Spinarak), + SPECIES_SPRITE(ARIADOS, gMonBackPic_Ariados), + SPECIES_SPRITE(CROBAT, gMonBackPic_Crobat), + SPECIES_SPRITE(CHINCHOU, gMonBackPic_Chinchou), + SPECIES_SPRITE(LANTURN, gMonBackPic_Lanturn), + SPECIES_SPRITE(PICHU, gMonBackPic_Pichu), + SPECIES_SPRITE(CLEFFA, gMonBackPic_Cleffa), + SPECIES_SPRITE(IGGLYBUFF, gMonBackPic_Igglybuff), + SPECIES_SPRITE(TOGEPI, gMonBackPic_Togepi), + SPECIES_SPRITE(TOGETIC, gMonBackPic_Togetic), + SPECIES_SPRITE(NATU, gMonBackPic_Natu), + SPECIES_SPRITE(XATU, gMonBackPic_Xatu), + SPECIES_SPRITE(MAREEP, gMonBackPic_Mareep), + SPECIES_SPRITE(FLAAFFY, gMonBackPic_Flaaffy), + SPECIES_SPRITE(AMPHAROS, gMonBackPic_Ampharos), + SPECIES_SPRITE(BELLOSSOM, gMonBackPic_Bellossom), + SPECIES_SPRITE(MARILL, gMonBackPic_Marill), + SPECIES_SPRITE(AZUMARILL, gMonBackPic_Azumarill), + SPECIES_SPRITE(SUDOWOODO, gMonBackPic_Sudowoodo), + SPECIES_SPRITE(POLITOED, gMonBackPic_Politoed), + SPECIES_SPRITE(HOPPIP, gMonBackPic_Hoppip), + SPECIES_SPRITE(SKIPLOOM, gMonBackPic_Skiploom), + SPECIES_SPRITE(JUMPLUFF, gMonBackPic_Jumpluff), + SPECIES_SPRITE(AIPOM, gMonBackPic_Aipom), + SPECIES_SPRITE(SUNKERN, gMonBackPic_Sunkern), + SPECIES_SPRITE(SUNFLORA, gMonBackPic_Sunflora), + SPECIES_SPRITE(YANMA, gMonBackPic_Yanma), + SPECIES_SPRITE(WOOPER, gMonBackPic_Wooper), + SPECIES_SPRITE(QUAGSIRE, gMonBackPic_Quagsire), + SPECIES_SPRITE(ESPEON, gMonBackPic_Espeon), + SPECIES_SPRITE(UMBREON, gMonBackPic_Umbreon), + SPECIES_SPRITE(MURKROW, gMonBackPic_Murkrow), + SPECIES_SPRITE(SLOWKING, gMonBackPic_Slowking), + SPECIES_SPRITE(MISDREAVUS, gMonBackPic_Misdreavus), + SPECIES_SPRITE(UNOWN, gMonBackPic_UnownA), + SPECIES_SPRITE(WOBBUFFET, gMonBackPic_Wobbuffet), + SPECIES_SPRITE(GIRAFARIG, gMonBackPic_Girafarig), + SPECIES_SPRITE(PINECO, gMonBackPic_Pineco), + SPECIES_SPRITE(FORRETRESS, gMonBackPic_Forretress), + SPECIES_SPRITE(DUNSPARCE, gMonBackPic_Dunsparce), + SPECIES_SPRITE(GLIGAR, gMonBackPic_Gligar), + SPECIES_SPRITE(STEELIX, gMonBackPic_Steelix), + SPECIES_SPRITE(SNUBBULL, gMonBackPic_Snubbull), + SPECIES_SPRITE(GRANBULL, gMonBackPic_Granbull), + SPECIES_SPRITE(QWILFISH, gMonBackPic_Qwilfish), + SPECIES_SPRITE(SCIZOR, gMonBackPic_Scizor), + SPECIES_SPRITE(SHUCKLE, gMonBackPic_Shuckle), + SPECIES_SPRITE(HERACROSS, gMonBackPic_Heracross), + SPECIES_SPRITE(SNEASEL, gMonBackPic_Sneasel), + SPECIES_SPRITE(TEDDIURSA, gMonBackPic_Teddiursa), + SPECIES_SPRITE(URSARING, gMonBackPic_Ursaring), + SPECIES_SPRITE(SLUGMA, gMonBackPic_Slugma), + SPECIES_SPRITE(MAGCARGO, gMonBackPic_Magcargo), + SPECIES_SPRITE(SWINUB, gMonBackPic_Swinub), + SPECIES_SPRITE(PILOSWINE, gMonBackPic_Piloswine), + SPECIES_SPRITE(CORSOLA, gMonBackPic_Corsola), + SPECIES_SPRITE(REMORAID, gMonBackPic_Remoraid), + SPECIES_SPRITE(OCTILLERY, gMonBackPic_Octillery), + SPECIES_SPRITE(DELIBIRD, gMonBackPic_Delibird), + SPECIES_SPRITE(MANTINE, gMonBackPic_Mantine), + SPECIES_SPRITE(SKARMORY, gMonBackPic_Skarmory), + SPECIES_SPRITE(HOUNDOUR, gMonBackPic_Houndour), + SPECIES_SPRITE(HOUNDOOM, gMonBackPic_Houndoom), + SPECIES_SPRITE(KINGDRA, gMonBackPic_Kingdra), + SPECIES_SPRITE(PHANPY, gMonBackPic_Phanpy), + SPECIES_SPRITE(DONPHAN, gMonBackPic_Donphan), + SPECIES_SPRITE(PORYGON2, gMonBackPic_Porygon2), + SPECIES_SPRITE(STANTLER, gMonBackPic_Stantler), + SPECIES_SPRITE(SMEARGLE, gMonBackPic_Smeargle), + SPECIES_SPRITE(TYROGUE, gMonBackPic_Tyrogue), + SPECIES_SPRITE(HITMONTOP, gMonBackPic_Hitmontop), + SPECIES_SPRITE(SMOOCHUM, gMonBackPic_Smoochum), + SPECIES_SPRITE(ELEKID, gMonBackPic_Elekid), + SPECIES_SPRITE(MAGBY, gMonBackPic_Magby), + SPECIES_SPRITE(MILTANK, gMonBackPic_Miltank), + SPECIES_SPRITE(BLISSEY, gMonBackPic_Blissey), + SPECIES_SPRITE(RAIKOU, gMonBackPic_Raikou), + SPECIES_SPRITE(ENTEI, gMonBackPic_Entei), + SPECIES_SPRITE(SUICUNE, gMonBackPic_Suicune), + SPECIES_SPRITE(LARVITAR, gMonBackPic_Larvitar), + SPECIES_SPRITE(PUPITAR, gMonBackPic_Pupitar), + SPECIES_SPRITE(TYRANITAR, gMonBackPic_Tyranitar), + SPECIES_SPRITE(LUGIA, gMonBackPic_Lugia), + SPECIES_SPRITE(HO_OH, gMonBackPic_HoOh), + SPECIES_SPRITE(CELEBI, gMonBackPic_Celebi), + SPECIES_SPRITE(OLD_UNOWN_B, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_C, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_D, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_E, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_F, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_G, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_H, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_I, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_J, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_K, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_L, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_M, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_N, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_O, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_P, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_Q, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_R, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_S, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_T, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_U, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_V, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_W, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_X, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_Y, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_Z, gMonBackPic_DoubleQuestionMark), + SPECIES_SPRITE(TREECKO, gMonBackPic_Treecko), + SPECIES_SPRITE(GROVYLE, gMonBackPic_Grovyle), + SPECIES_SPRITE(SCEPTILE, gMonBackPic_Sceptile), + SPECIES_SPRITE(TORCHIC, gMonBackPic_Torchic), + SPECIES_SPRITE(COMBUSKEN, gMonBackPic_Combusken), + SPECIES_SPRITE(BLAZIKEN, gMonBackPic_Blaziken), + SPECIES_SPRITE(MUDKIP, gMonBackPic_Mudkip), + SPECIES_SPRITE(MARSHTOMP, gMonBackPic_Marshtomp), + SPECIES_SPRITE(SWAMPERT, gMonBackPic_Swampert), + SPECIES_SPRITE(POOCHYENA, gMonBackPic_Poochyena), + SPECIES_SPRITE(MIGHTYENA, gMonBackPic_Mightyena), + SPECIES_SPRITE(ZIGZAGOON, gMonBackPic_Zigzagoon), + SPECIES_SPRITE(LINOONE, gMonBackPic_Linoone), + SPECIES_SPRITE(WURMPLE, gMonBackPic_Wurmple), + SPECIES_SPRITE(SILCOON, gMonBackPic_Silcoon), + SPECIES_SPRITE(BEAUTIFLY, gMonBackPic_Beautifly), + SPECIES_SPRITE(CASCOON, gMonBackPic_Cascoon), + SPECIES_SPRITE(DUSTOX, gMonBackPic_Dustox), + SPECIES_SPRITE(LOTAD, gMonBackPic_Lotad), + SPECIES_SPRITE(LOMBRE, gMonBackPic_Lombre), + SPECIES_SPRITE(LUDICOLO, gMonBackPic_Ludicolo), + SPECIES_SPRITE(SEEDOT, gMonBackPic_Seedot), + SPECIES_SPRITE(NUZLEAF, gMonBackPic_Nuzleaf), + SPECIES_SPRITE(SHIFTRY, gMonBackPic_Shiftry), + SPECIES_SPRITE(NINCADA, gMonBackPic_Nincada), + SPECIES_SPRITE(NINJASK, gMonBackPic_Ninjask), + SPECIES_SPRITE(SHEDINJA, gMonBackPic_Shedinja), + SPECIES_SPRITE(TAILLOW, gMonBackPic_Taillow), + SPECIES_SPRITE(SWELLOW, gMonBackPic_Swellow), + SPECIES_SPRITE(SHROOMISH, gMonBackPic_Shroomish), + SPECIES_SPRITE(BRELOOM, gMonBackPic_Breloom), + SPECIES_SPRITE(SPINDA, gMonBackPic_Spinda), + SPECIES_SPRITE(WINGULL, gMonBackPic_Wingull), + SPECIES_SPRITE(PELIPPER, gMonBackPic_Pelipper), + SPECIES_SPRITE(SURSKIT, gMonBackPic_Surskit), + SPECIES_SPRITE(MASQUERAIN, gMonBackPic_Masquerain), + SPECIES_SPRITE(WAILMER, gMonBackPic_Wailmer), + SPECIES_SPRITE(WAILORD, gMonBackPic_Wailord), + SPECIES_SPRITE(SKITTY, gMonBackPic_Skitty), + SPECIES_SPRITE(DELCATTY, gMonBackPic_Delcatty), + SPECIES_SPRITE(KECLEON, gMonBackPic_Kecleon), + SPECIES_SPRITE(BALTOY, gMonBackPic_Baltoy), + SPECIES_SPRITE(CLAYDOL, gMonBackPic_Claydol), + SPECIES_SPRITE(NOSEPASS, gMonBackPic_Nosepass), + SPECIES_SPRITE(TORKOAL, gMonBackPic_Torkoal), + SPECIES_SPRITE(SABLEYE, gMonBackPic_Sableye), + SPECIES_SPRITE(BARBOACH, gMonBackPic_Barboach), + SPECIES_SPRITE(WHISCASH, gMonBackPic_Whiscash), + SPECIES_SPRITE(LUVDISC, gMonBackPic_Luvdisc), + SPECIES_SPRITE(CORPHISH, gMonBackPic_Corphish), + SPECIES_SPRITE(CRAWDAUNT, gMonBackPic_Crawdaunt), + SPECIES_SPRITE(FEEBAS, gMonBackPic_Feebas), + SPECIES_SPRITE(MILOTIC, gMonBackPic_Milotic), + SPECIES_SPRITE(CARVANHA, gMonBackPic_Carvanha), + SPECIES_SPRITE(SHARPEDO, gMonBackPic_Sharpedo), + SPECIES_SPRITE(TRAPINCH, gMonBackPic_Trapinch), + SPECIES_SPRITE(VIBRAVA, gMonBackPic_Vibrava), + SPECIES_SPRITE(FLYGON, gMonBackPic_Flygon), + SPECIES_SPRITE(MAKUHITA, gMonBackPic_Makuhita), + SPECIES_SPRITE(HARIYAMA, gMonBackPic_Hariyama), + SPECIES_SPRITE(ELECTRIKE, gMonBackPic_Electrike), + SPECIES_SPRITE(MANECTRIC, gMonBackPic_Manectric), + SPECIES_SPRITE(NUMEL, gMonBackPic_Numel), + SPECIES_SPRITE(CAMERUPT, gMonBackPic_Camerupt), + SPECIES_SPRITE(SPHEAL, gMonBackPic_Spheal), + SPECIES_SPRITE(SEALEO, gMonBackPic_Sealeo), + SPECIES_SPRITE(WALREIN, gMonBackPic_Walrein), + SPECIES_SPRITE(CACNEA, gMonBackPic_Cacnea), + SPECIES_SPRITE(CACTURNE, gMonBackPic_Cacturne), + SPECIES_SPRITE(SNORUNT, gMonBackPic_Snorunt), + SPECIES_SPRITE(GLALIE, gMonBackPic_Glalie), + SPECIES_SPRITE(LUNATONE, gMonBackPic_Lunatone), + SPECIES_SPRITE(SOLROCK, gMonBackPic_Solrock), + SPECIES_SPRITE(AZURILL, gMonBackPic_Azurill), + SPECIES_SPRITE(SPOINK, gMonBackPic_Spoink), + SPECIES_SPRITE(GRUMPIG, gMonBackPic_Grumpig), + SPECIES_SPRITE(PLUSLE, gMonBackPic_Plusle), + SPECIES_SPRITE(MINUN, gMonBackPic_Minun), + SPECIES_SPRITE(MAWILE, gMonBackPic_Mawile), + SPECIES_SPRITE(MEDITITE, gMonBackPic_Meditite), + SPECIES_SPRITE(MEDICHAM, gMonBackPic_Medicham), + SPECIES_SPRITE(SWABLU, gMonBackPic_Swablu), + SPECIES_SPRITE(ALTARIA, gMonBackPic_Altaria), + SPECIES_SPRITE(WYNAUT, gMonBackPic_Wynaut), + SPECIES_SPRITE(DUSKULL, gMonBackPic_Duskull), + SPECIES_SPRITE(DUSCLOPS, gMonBackPic_Dusclops), + SPECIES_SPRITE(ROSELIA, gMonBackPic_Roselia), + SPECIES_SPRITE(SLAKOTH, gMonBackPic_Slakoth), + SPECIES_SPRITE(VIGOROTH, gMonBackPic_Vigoroth), + SPECIES_SPRITE(SLAKING, gMonBackPic_Slaking), + SPECIES_SPRITE(GULPIN, gMonBackPic_Gulpin), + SPECIES_SPRITE(SWALOT, gMonBackPic_Swalot), + SPECIES_SPRITE(TROPIUS, gMonBackPic_Tropius), + SPECIES_SPRITE(WHISMUR, gMonBackPic_Whismur), + SPECIES_SPRITE(LOUDRED, gMonBackPic_Loudred), + SPECIES_SPRITE(EXPLOUD, gMonBackPic_Exploud), + SPECIES_SPRITE(CLAMPERL, gMonBackPic_Clamperl), + SPECIES_SPRITE(HUNTAIL, gMonBackPic_Huntail), + SPECIES_SPRITE(GOREBYSS, gMonBackPic_Gorebyss), + SPECIES_SPRITE(ABSOL, gMonBackPic_Absol), + SPECIES_SPRITE(SHUPPET, gMonBackPic_Shuppet), + SPECIES_SPRITE(BANETTE, gMonBackPic_Banette), + SPECIES_SPRITE(SEVIPER, gMonBackPic_Seviper), + SPECIES_SPRITE(ZANGOOSE, gMonBackPic_Zangoose), + SPECIES_SPRITE(RELICANTH, gMonBackPic_Relicanth), + SPECIES_SPRITE(ARON, gMonBackPic_Aron), + SPECIES_SPRITE(LAIRON, gMonBackPic_Lairon), + SPECIES_SPRITE(AGGRON, gMonBackPic_Aggron), + SPECIES_SPRITE(CASTFORM, gMonBackPic_Castform), + SPECIES_SPRITE(VOLBEAT, gMonBackPic_Volbeat), + SPECIES_SPRITE(ILLUMISE, gMonBackPic_Illumise), + SPECIES_SPRITE(LILEEP, gMonBackPic_Lileep), + SPECIES_SPRITE(CRADILY, gMonBackPic_Cradily), + SPECIES_SPRITE(ANORITH, gMonBackPic_Anorith), + SPECIES_SPRITE(ARMALDO, gMonBackPic_Armaldo), + SPECIES_SPRITE(RALTS, gMonBackPic_Ralts), + SPECIES_SPRITE(KIRLIA, gMonBackPic_Kirlia), + SPECIES_SPRITE(GARDEVOIR, gMonBackPic_Gardevoir), + SPECIES_SPRITE(BAGON, gMonBackPic_Bagon), + SPECIES_SPRITE(SHELGON, gMonBackPic_Shelgon), + SPECIES_SPRITE(SALAMENCE, gMonBackPic_Salamence), + SPECIES_SPRITE(BELDUM, gMonBackPic_Beldum), + SPECIES_SPRITE(METANG, gMonBackPic_Metang), + SPECIES_SPRITE(METAGROSS, gMonBackPic_Metagross), + SPECIES_SPRITE(REGIROCK, gMonBackPic_Regirock), + SPECIES_SPRITE(REGICE, gMonBackPic_Regice), + SPECIES_SPRITE(REGISTEEL, gMonBackPic_Registeel), + SPECIES_SPRITE(KYOGRE, gMonBackPic_Kyogre), + SPECIES_SPRITE(GROUDON, gMonBackPic_Groudon), + SPECIES_SPRITE(RAYQUAZA, gMonBackPic_Rayquaza), + SPECIES_SPRITE(LATIAS, gMonBackPic_Latias), + SPECIES_SPRITE(LATIOS, gMonBackPic_Latios), + SPECIES_SPRITE(JIRACHI, gMonBackPic_Jirachi), + SPECIES_SPRITE(DEOXYS, gMonBackPic_Deoxys), + SPECIES_SPRITE(CHIMECHO, gMonBackPic_Chimecho), + SPECIES_SPRITE(EGG, gMonStillFrontPic_Egg), + SPECIES_SPRITE(UNOWN_B, gMonBackPic_UnownB), + SPECIES_SPRITE(UNOWN_C, gMonBackPic_UnownC), + SPECIES_SPRITE(UNOWN_D, gMonBackPic_UnownD), + SPECIES_SPRITE(UNOWN_E, gMonBackPic_UnownE), + SPECIES_SPRITE(UNOWN_F, gMonBackPic_UnownF), + SPECIES_SPRITE(UNOWN_G, gMonBackPic_UnownG), + SPECIES_SPRITE(UNOWN_H, gMonBackPic_UnownH), + SPECIES_SPRITE(UNOWN_I, gMonBackPic_UnownI), + SPECIES_SPRITE(UNOWN_J, gMonBackPic_UnownJ), + SPECIES_SPRITE(UNOWN_K, gMonBackPic_UnownK), + SPECIES_SPRITE(UNOWN_L, gMonBackPic_UnownL), + SPECIES_SPRITE(UNOWN_M, gMonBackPic_UnownM), + SPECIES_SPRITE(UNOWN_N, gMonBackPic_UnownN), + SPECIES_SPRITE(UNOWN_O, gMonBackPic_UnownO), + SPECIES_SPRITE(UNOWN_P, gMonBackPic_UnownP), + SPECIES_SPRITE(UNOWN_Q, gMonBackPic_UnownQ), + SPECIES_SPRITE(UNOWN_R, gMonBackPic_UnownR), + SPECIES_SPRITE(UNOWN_S, gMonBackPic_UnownS), + SPECIES_SPRITE(UNOWN_T, gMonBackPic_UnownT), + SPECIES_SPRITE(UNOWN_U, gMonBackPic_UnownU), + SPECIES_SPRITE(UNOWN_V, gMonBackPic_UnownV), + SPECIES_SPRITE(UNOWN_W, gMonBackPic_UnownW), + SPECIES_SPRITE(UNOWN_X, gMonBackPic_UnownX), + SPECIES_SPRITE(UNOWN_Y, gMonBackPic_UnownY), + SPECIES_SPRITE(UNOWN_Z, gMonBackPic_UnownZ), + SPECIES_SPRITE(UNOWN_EMARK, gMonBackPic_UnownExclamationMark), + SPECIES_SPRITE(UNOWN_QMARK, gMonBackPic_UnownQuestionMark), }; - diff --git a/src/data/pokemon_graphics/enemy_mon_elevation.h b/src/data/pokemon_graphics/enemy_mon_elevation.h index c8f079a5c..f3d81d27e 100644 --- a/src/data/pokemon_graphics/enemy_mon_elevation.h +++ b/src/data/pokemon_graphics/enemy_mon_elevation.h @@ -1,415 +1,62 @@ -#include "constants/species.h" - // This determines how much higher above the usual position the enemy Pokémon // is during battle. Species that float or fly have nonzero values. -const u8 gEnemyMonElevation[] = +const u8 gEnemyMonElevation[NUM_SPECIES] = { - [SPECIES_NONE] = 0, - [SPECIES_BULBASAUR] = 0, - [SPECIES_IVYSAUR] = 0, - [SPECIES_VENUSAUR] = 0, - [SPECIES_CHARMANDER] = 0, - [SPECIES_CHARMELEON] = 0, - [SPECIES_CHARIZARD] = 0, - [SPECIES_SQUIRTLE] = 0, - [SPECIES_WARTORTLE] = 0, - [SPECIES_BLASTOISE] = 0, - [SPECIES_CATERPIE] = 0, - [SPECIES_METAPOD] = 0, [SPECIES_BUTTERFREE] = 8, - [SPECIES_WEEDLE] = 0, - [SPECIES_KAKUNA] = 0, [SPECIES_BEEDRILL] = 8, [SPECIES_PIDGEY] = 16, - [SPECIES_PIDGEOTTO] = 0, [SPECIES_PIDGEOT] = 4, - [SPECIES_RATTATA] = 0, - [SPECIES_RATICATE] = 0, - [SPECIES_SPEAROW] = 0, [SPECIES_FEAROW] = 6, - [SPECIES_EKANS] = 0, - [SPECIES_ARBOK] = 0, - [SPECIES_PIKACHU] = 0, - [SPECIES_RAICHU] = 0, - [SPECIES_SANDSHREW] = 0, - [SPECIES_SANDSLASH] = 0, - [SPECIES_NIDORAN_F] = 0, - [SPECIES_NIDORINA] = 0, - [SPECIES_NIDOQUEEN] = 0, - [SPECIES_NIDORAN_M] = 0, - [SPECIES_NIDORINO] = 0, - [SPECIES_NIDOKING] = 0, - [SPECIES_CLEFAIRY] = 0, - [SPECIES_CLEFABLE] = 0, - [SPECIES_VULPIX] = 0, - [SPECIES_NINETALES] = 0, - [SPECIES_JIGGLYPUFF] = 0, - [SPECIES_WIGGLYTUFF] = 0, [SPECIES_ZUBAT] = 8, [SPECIES_GOLBAT] = 8, - [SPECIES_ODDISH] = 0, - [SPECIES_GLOOM] = 0, - [SPECIES_VILEPLUME] = 0, - [SPECIES_PARAS] = 0, - [SPECIES_PARASECT] = 0, - [SPECIES_VENONAT] = 0, [SPECIES_VENOMOTH] = 8, - [SPECIES_DIGLETT] = 0, - [SPECIES_DUGTRIO] = 0, - [SPECIES_MEOWTH] = 0, - [SPECIES_PERSIAN] = 0, - [SPECIES_PSYDUCK] = 0, - [SPECIES_GOLDUCK] = 0, - [SPECIES_MANKEY] = 0, - [SPECIES_PRIMEAPE] = 0, - [SPECIES_GROWLITHE] = 0, - [SPECIES_ARCANINE] = 0, - [SPECIES_POLIWAG] = 0, - [SPECIES_POLIWHIRL] = 0, - [SPECIES_POLIWRATH] = 0, - [SPECIES_ABRA] = 0, - [SPECIES_KADABRA] = 0, - [SPECIES_ALAKAZAM] = 0, - [SPECIES_MACHOP] = 0, - [SPECIES_MACHOKE] = 0, - [SPECIES_MACHAMP] = 0, - [SPECIES_BELLSPROUT] = 0, - [SPECIES_WEEPINBELL] = 0, - [SPECIES_VICTREEBEL] = 0, - [SPECIES_TENTACOOL] = 0, - [SPECIES_TENTACRUEL] = 0, [SPECIES_GEODUDE] = 16, - [SPECIES_GRAVELER] = 0, - [SPECIES_GOLEM] = 0, - [SPECIES_PONYTA] = 0, - [SPECIES_RAPIDASH] = 0, - [SPECIES_SLOWPOKE] = 0, - [SPECIES_SLOWBRO] = 0, [SPECIES_MAGNEMITE] = 16, [SPECIES_MAGNETON] = 8, - [SPECIES_FARFETCHD] = 0, - [SPECIES_DODUO] = 0, - [SPECIES_DODRIO] = 0, - [SPECIES_SEEL] = 0, - [SPECIES_DEWGONG] = 0, - [SPECIES_GRIMER] = 0, - [SPECIES_MUK] = 0, - [SPECIES_SHELLDER] = 0, - [SPECIES_CLOYSTER] = 0, [SPECIES_GASTLY] = 4, [SPECIES_HAUNTER] = 4, - [SPECIES_GENGAR] = 0, - [SPECIES_ONIX] = 0, - [SPECIES_DROWZEE] = 0, - [SPECIES_HYPNO] = 0, - [SPECIES_KRABBY] = 0, - [SPECIES_KINGLER] = 0, [SPECIES_VOLTORB] = 10, [SPECIES_ELECTRODE] = 12, - [SPECIES_EXEGGCUTE] = 0, - [SPECIES_EXEGGUTOR] = 0, - [SPECIES_CUBONE] = 0, - [SPECIES_MAROWAK] = 0, - [SPECIES_HITMONLEE] = 0, - [SPECIES_HITMONCHAN] = 0, - [SPECIES_LICKITUNG] = 0, [SPECIES_KOFFING] = 8, [SPECIES_WEEZING] = 6, - [SPECIES_RHYHORN] = 0, - [SPECIES_RHYDON] = 0, - [SPECIES_CHANSEY] = 0, - [SPECIES_TANGELA] = 0, - [SPECIES_KANGASKHAN] = 0, - [SPECIES_HORSEA] = 0, - [SPECIES_SEADRA] = 0, - [SPECIES_GOLDEEN] = 0, - [SPECIES_SEAKING] = 0, - [SPECIES_STARYU] = 0, - [SPECIES_STARMIE] = 0, - [SPECIES_MR_MIME] = 0, - [SPECIES_SCYTHER] = 0, - [SPECIES_JYNX] = 0, - [SPECIES_ELECTABUZZ] = 0, - [SPECIES_MAGMAR] = 0, - [SPECIES_PINSIR] = 0, - [SPECIES_TAUROS] = 0, - [SPECIES_MAGIKARP] = 0, - [SPECIES_GYARADOS] = 0, - [SPECIES_LAPRAS] = 0, - [SPECIES_DITTO] = 0, - [SPECIES_EEVEE] = 0, - [SPECIES_VAPOREON] = 0, - [SPECIES_JOLTEON] = 0, - [SPECIES_FLAREON] = 0, - [SPECIES_PORYGON] = 0, - [SPECIES_OMANYTE] = 0, - [SPECIES_OMASTAR] = 0, - [SPECIES_KABUTO] = 0, - [SPECIES_KABUTOPS] = 0, [SPECIES_AERODACTYL] = 7, - [SPECIES_SNORLAX] = 0, [SPECIES_ARTICUNO] = 6, [SPECIES_ZAPDOS] = 8, [SPECIES_MOLTRES] = 5, - [SPECIES_DRATINI] = 0, - [SPECIES_DRAGONAIR] = 0, [SPECIES_DRAGONITE] = 6, - [SPECIES_MEWTWO] = 0, [SPECIES_MEW] = 8, - [SPECIES_CHIKORITA] = 0, - [SPECIES_BAYLEEF] = 0, - [SPECIES_MEGANIUM] = 0, - [SPECIES_CYNDAQUIL] = 0, - [SPECIES_QUILAVA] = 0, - [SPECIES_TYPHLOSION] = 0, - [SPECIES_TOTODILE] = 0, - [SPECIES_CROCONAW] = 0, - [SPECIES_FERALIGATR] = 0, - [SPECIES_SENTRET] = 0, - [SPECIES_FURRET] = 0, - [SPECIES_HOOTHOOT] = 0, - [SPECIES_NOCTOWL] = 0, - [SPECIES_LEDYBA] = 0, [SPECIES_LEDIAN] = 8, - [SPECIES_SPINARAK] = 0, - [SPECIES_ARIADOS] = 0, [SPECIES_CROBAT] = 6, - [SPECIES_CHINCHOU] = 0, - [SPECIES_LANTURN] = 0, - [SPECIES_PICHU] = 0, - [SPECIES_CLEFFA] = 0, - [SPECIES_IGGLYBUFF] = 0, - [SPECIES_TOGEPI] = 0, - [SPECIES_TOGETIC] = 0, - [SPECIES_NATU] = 0, - [SPECIES_XATU] = 0, - [SPECIES_MAREEP] = 0, - [SPECIES_FLAAFFY] = 0, - [SPECIES_AMPHAROS] = 0, - [SPECIES_BELLOSSOM] = 0, - [SPECIES_MARILL] = 0, - [SPECIES_AZUMARILL] = 0, - [SPECIES_SUDOWOODO] = 0, - [SPECIES_POLITOED] = 0, [SPECIES_HOPPIP] = 11, [SPECIES_SKIPLOOM] = 12, [SPECIES_JUMPLUFF] = 9, - [SPECIES_AIPOM] = 0, - [SPECIES_SUNKERN] = 0, - [SPECIES_SUNFLORA] = 0, [SPECIES_YANMA] = 8, - [SPECIES_WOOPER] = 0, - [SPECIES_QUAGSIRE] = 0, - [SPECIES_ESPEON] = 0, - [SPECIES_UMBREON] = 0, - [SPECIES_MURKROW] = 0, - [SPECIES_SLOWKING] = 0, [SPECIES_MISDREAVUS] = 8, [SPECIES_UNOWN] = 8, - [SPECIES_WOBBUFFET] = 0, - [SPECIES_GIRAFARIG] = 0, - [SPECIES_PINECO] = 0, - [SPECIES_FORRETRESS] = 0, - [SPECIES_DUNSPARCE] = 0, [SPECIES_GLIGAR] = 6, - [SPECIES_STEELIX] = 0, - [SPECIES_SNUBBULL] = 0, - [SPECIES_GRANBULL] = 0, - [SPECIES_QWILFISH] = 0, - [SPECIES_SCIZOR] = 0, - [SPECIES_SHUCKLE] = 0, - [SPECIES_HERACROSS] = 0, - [SPECIES_SNEASEL] = 0, - [SPECIES_TEDDIURSA] = 0, - [SPECIES_URSARING] = 0, - [SPECIES_SLUGMA] = 0, - [SPECIES_MAGCARGO] = 0, - [SPECIES_SWINUB] = 0, - [SPECIES_PILOSWINE] = 0, - [SPECIES_CORSOLA] = 0, - [SPECIES_REMORAID] = 0, - [SPECIES_OCTILLERY] = 0, - [SPECIES_DELIBIRD] = 0, - [SPECIES_MANTINE] = 0, - [SPECIES_SKARMORY] = 0, - [SPECIES_HOUNDOUR] = 0, - [SPECIES_HOUNDOOM] = 0, - [SPECIES_KINGDRA] = 0, - [SPECIES_PHANPY] = 0, - [SPECIES_DONPHAN] = 0, - [SPECIES_PORYGON2] = 0, - [SPECIES_STANTLER] = 0, - [SPECIES_SMEARGLE] = 0, - [SPECIES_TYROGUE] = 0, - [SPECIES_HITMONTOP] = 0, - [SPECIES_SMOOCHUM] = 0, - [SPECIES_ELEKID] = 0, - [SPECIES_MAGBY] = 0, - [SPECIES_MILTANK] = 0, - [SPECIES_BLISSEY] = 0, - [SPECIES_RAIKOU] = 0, - [SPECIES_ENTEI] = 0, - [SPECIES_SUICUNE] = 0, - [SPECIES_LARVITAR] = 0, - [SPECIES_PUPITAR] = 0, - [SPECIES_TYRANITAR] = 0, [SPECIES_LUGIA] = 6, [SPECIES_HO_OH] = 6, [SPECIES_CELEBI] = 15, - [SPECIES_OLD_UNOWN_B] = 0, - [SPECIES_OLD_UNOWN_C] = 0, - [SPECIES_OLD_UNOWN_D] = 0, - [SPECIES_OLD_UNOWN_E] = 0, - [SPECIES_OLD_UNOWN_F] = 0, - [SPECIES_OLD_UNOWN_G] = 0, - [SPECIES_OLD_UNOWN_H] = 0, - [SPECIES_OLD_UNOWN_I] = 0, - [SPECIES_OLD_UNOWN_J] = 0, - [SPECIES_OLD_UNOWN_K] = 0, - [SPECIES_OLD_UNOWN_L] = 0, - [SPECIES_OLD_UNOWN_M] = 0, - [SPECIES_OLD_UNOWN_N] = 0, - [SPECIES_OLD_UNOWN_O] = 0, - [SPECIES_OLD_UNOWN_P] = 0, - [SPECIES_OLD_UNOWN_Q] = 0, - [SPECIES_OLD_UNOWN_R] = 0, - [SPECIES_OLD_UNOWN_S] = 0, - [SPECIES_OLD_UNOWN_T] = 0, - [SPECIES_OLD_UNOWN_U] = 0, - [SPECIES_OLD_UNOWN_V] = 0, - [SPECIES_OLD_UNOWN_W] = 0, - [SPECIES_OLD_UNOWN_X] = 0, - [SPECIES_OLD_UNOWN_Y] = 0, - [SPECIES_OLD_UNOWN_Z] = 0, - [SPECIES_TREECKO] = 0, - [SPECIES_GROVYLE] = 0, - [SPECIES_SCEPTILE] = 0, - [SPECIES_TORCHIC] = 0, - [SPECIES_COMBUSKEN] = 0, - [SPECIES_BLAZIKEN] = 0, - [SPECIES_MUDKIP] = 0, - [SPECIES_MARSHTOMP] = 0, - [SPECIES_SWAMPERT] = 0, - [SPECIES_POOCHYENA] = 0, - [SPECIES_MIGHTYENA] = 0, - [SPECIES_ZIGZAGOON] = 0, - [SPECIES_LINOONE] = 0, - [SPECIES_WURMPLE] = 0, - [SPECIES_SILCOON] = 0, [SPECIES_BEAUTIFLY] = 8, - [SPECIES_CASCOON] = 0, [SPECIES_DUSTOX] = 10, - [SPECIES_LOTAD] = 0, - [SPECIES_LOMBRE] = 0, - [SPECIES_LUDICOLO] = 0, - [SPECIES_SEEDOT] = 0, - [SPECIES_NUZLEAF] = 0, - [SPECIES_SHIFTRY] = 0, - [SPECIES_NINCADA] = 0, [SPECIES_NINJASK] = 10, [SPECIES_SHEDINJA] = 8, - [SPECIES_TAILLOW] = 0, - [SPECIES_SWELLOW] = 0, - [SPECIES_SHROOMISH] = 0, - [SPECIES_BRELOOM] = 0, - [SPECIES_SPINDA] = 0, [SPECIES_WINGULL] = 16, [SPECIES_PELIPPER] = 8, - [SPECIES_SURSKIT] = 0, [SPECIES_MASQUERAIN] = 10, - [SPECIES_WAILMER] = 0, - [SPECIES_WAILORD] = 0, - [SPECIES_SKITTY] = 0, - [SPECIES_DELCATTY] = 0, - [SPECIES_KECLEON] = 0, [SPECIES_BALTOY] = 4, [SPECIES_CLAYDOL] = 10, - [SPECIES_NOSEPASS] = 0, - [SPECIES_TORKOAL] = 0, - [SPECIES_SABLEYE] = 0, - [SPECIES_BARBOACH] = 0, - [SPECIES_WHISCASH] = 0, - [SPECIES_LUVDISC] = 0, - [SPECIES_CORPHISH] = 0, - [SPECIES_CRAWDAUNT] = 0, - [SPECIES_FEEBAS] = 0, - [SPECIES_MILOTIC] = 0, - [SPECIES_CARVANHA] = 0, - [SPECIES_SHARPEDO] = 0, - [SPECIES_TRAPINCH] = 0, - [SPECIES_VIBRAVA] = 0, [SPECIES_FLYGON] = 7, - [SPECIES_MAKUHITA] = 0, - [SPECIES_HARIYAMA] = 0, - [SPECIES_ELECTRIKE] = 0, - [SPECIES_MANECTRIC] = 0, - [SPECIES_NUMEL] = 0, - [SPECIES_CAMERUPT] = 0, - [SPECIES_SPHEAL] = 0, - [SPECIES_SEALEO] = 0, - [SPECIES_WALREIN] = 0, - [SPECIES_CACNEA] = 0, - [SPECIES_CACTURNE] = 0, - [SPECIES_SNORUNT] = 0, [SPECIES_GLALIE] = 12, [SPECIES_LUNATONE] = 13, [SPECIES_SOLROCK] = 4, - [SPECIES_AZURILL] = 0, - [SPECIES_SPOINK] = 0, - [SPECIES_GRUMPIG] = 0, - [SPECIES_PLUSLE] = 0, - [SPECIES_MINUN] = 0, - [SPECIES_MAWILE] = 0, - [SPECIES_MEDITITE] = 0, - [SPECIES_MEDICHAM] = 0, [SPECIES_SWABLU] = 12, [SPECIES_ALTARIA] = 8, - [SPECIES_WYNAUT] = 0, [SPECIES_DUSKULL] = 9, - [SPECIES_DUSCLOPS] = 0, - [SPECIES_ROSELIA] = 0, - [SPECIES_SLAKOTH] = 0, - [SPECIES_VIGOROTH] = 0, - [SPECIES_SLAKING] = 0, - [SPECIES_GULPIN] = 0, - [SPECIES_SWALOT] = 0, - [SPECIES_TROPIUS] = 0, - [SPECIES_WHISMUR] = 0, - [SPECIES_LOUDRED] = 0, - [SPECIES_EXPLOUD] = 0, - [SPECIES_CLAMPERL] = 0, - [SPECIES_HUNTAIL] = 0, - [SPECIES_GOREBYSS] = 0, - [SPECIES_ABSOL] = 0, [SPECIES_SHUPPET] = 12, [SPECIES_BANETTE] = 8, - [SPECIES_SEVIPER] = 0, - [SPECIES_ZANGOOSE] = 0, - [SPECIES_RELICANTH] = 0, - [SPECIES_ARON] = 0, - [SPECIES_LAIRON] = 0, - [SPECIES_AGGRON] = 0, [SPECIES_CASTFORM] = 16, - [SPECIES_VOLBEAT] = 0, - [SPECIES_ILLUMISE] = 0, - [SPECIES_LILEEP] = 0, - [SPECIES_CRADILY] = 0, - [SPECIES_ANORITH] = 0, - [SPECIES_ARMALDO] = 0, - [SPECIES_RALTS] = 0, - [SPECIES_KIRLIA] = 0, - [SPECIES_GARDEVOIR] = 0, - [SPECIES_BAGON] = 0, - [SPECIES_SHELGON] = 0, - [SPECIES_SALAMENCE] = 0, [SPECIES_BELDUM] = 8, - [SPECIES_METANG] = 0, - [SPECIES_METAGROSS] = 0, - [SPECIES_REGIROCK] = 0, - [SPECIES_REGICE] = 0, - [SPECIES_REGISTEEL] = 0, - [SPECIES_KYOGRE] = 0, - [SPECIES_GROUDON] = 0, [SPECIES_RAYQUAZA] = 6, [SPECIES_LATIAS] = 6, [SPECIES_LATIOS] = 6, diff --git a/src/data/pokemon_graphics/footprint_table.h b/src/data/pokemon_graphics/footprint_table.h index 779ce3dcd..0128c08c0 100644 --- a/src/data/pokemon_graphics/footprint_table.h +++ b/src/data/pokemon_graphics/footprint_table.h @@ -1,416 +1,416 @@ -const u8 *const gMonFootprintTable[] = +const u8 *const gMonFootprintTable[NUM_SPECIES] = { - gMonFootprint_Bulbasaur, - gMonFootprint_Bulbasaur, - gMonFootprint_Ivysaur, - gMonFootprint_Venusaur, - gMonFootprint_Charmander, - gMonFootprint_Charmeleon, - gMonFootprint_Charizard, - gMonFootprint_Squirtle, - gMonFootprint_Wartortle, - gMonFootprint_Blastoise, - gMonFootprint_Caterpie, - gMonFootprint_Metapod, - gMonFootprint_Butterfree, - gMonFootprint_Weedle, - gMonFootprint_Kakuna, - gMonFootprint_Beedrill, - gMonFootprint_Pidgey, - gMonFootprint_Pidgeotto, - gMonFootprint_Pidgeot, - gMonFootprint_Rattata, - gMonFootprint_Raticate, - gMonFootprint_Spearow, - gMonFootprint_Fearow, - gMonFootprint_Ekans, - gMonFootprint_Arbok, - gMonFootprint_Pikachu, - gMonFootprint_Raichu, - gMonFootprint_Sandshrew, - gMonFootprint_Sandslash, - gMonFootprint_NidoranF, - gMonFootprint_Nidorina, - gMonFootprint_Nidoqueen, - gMonFootprint_NidoranM, - gMonFootprint_Nidorino, - gMonFootprint_Nidoking, - gMonFootprint_Clefairy, - gMonFootprint_Clefable, - gMonFootprint_Vulpix, - gMonFootprint_Ninetales, - gMonFootprint_Jigglypuff, - gMonFootprint_Wigglytuff, - gMonFootprint_Zubat, - gMonFootprint_Golbat, - gMonFootprint_Oddish, - gMonFootprint_Gloom, - gMonFootprint_Vileplume, - gMonFootprint_Paras, - gMonFootprint_Parasect, - gMonFootprint_Venonat, - gMonFootprint_Venomoth, - gMonFootprint_Diglett, - gMonFootprint_Dugtrio, - gMonFootprint_Meowth, - gMonFootprint_Persian, - gMonFootprint_Psyduck, - gMonFootprint_Golduck, - gMonFootprint_Mankey, - gMonFootprint_Primeape, - gMonFootprint_Growlithe, - gMonFootprint_Arcanine, - gMonFootprint_Poliwag, - gMonFootprint_Poliwhirl, - gMonFootprint_Poliwrath, - gMonFootprint_Abra, - gMonFootprint_Kadabra, - gMonFootprint_Alakazam, - gMonFootprint_Machop, - gMonFootprint_Machoke, - gMonFootprint_Machamp, - gMonFootprint_Bellsprout, - gMonFootprint_Weepinbell, - gMonFootprint_Victreebel, - gMonFootprint_Tentacool, - gMonFootprint_Tentacruel, - gMonFootprint_Geodude, - gMonFootprint_Graveler, - gMonFootprint_Golem, - gMonFootprint_Ponyta, - gMonFootprint_Rapidash, - gMonFootprint_Slowpoke, - gMonFootprint_Slowbro, - gMonFootprint_Magnemite, - gMonFootprint_Magneton, - gMonFootprint_Farfetchd, - gMonFootprint_Doduo, - gMonFootprint_Dodrio, - gMonFootprint_Seel, - gMonFootprint_Dewgong, - gMonFootprint_Grimer, - gMonFootprint_Muk, - gMonFootprint_Shellder, - gMonFootprint_Cloyster, - gMonFootprint_Gastly, - gMonFootprint_Haunter, - gMonFootprint_Gengar, - gMonFootprint_Onix, - gMonFootprint_Drowzee, - gMonFootprint_Hypno, - gMonFootprint_Krabby, - gMonFootprint_Kingler, - gMonFootprint_Voltorb, - gMonFootprint_Electrode, - gMonFootprint_Exeggcute, - gMonFootprint_Exeggutor, - gMonFootprint_Cubone, - gMonFootprint_Marowak, - gMonFootprint_Hitmonlee, - gMonFootprint_Hitmonchan, - gMonFootprint_Lickitung, - gMonFootprint_Koffing, - gMonFootprint_Weezing, - gMonFootprint_Rhyhorn, - gMonFootprint_Rhydon, - gMonFootprint_Chansey, - gMonFootprint_Tangela, - gMonFootprint_Kangaskhan, - gMonFootprint_Horsea, - gMonFootprint_Seadra, - gMonFootprint_Goldeen, - gMonFootprint_Seaking, - gMonFootprint_Staryu, - gMonFootprint_Starmie, - gMonFootprint_Mrmime, - gMonFootprint_Scyther, - gMonFootprint_Jynx, - gMonFootprint_Electabuzz, - gMonFootprint_Magmar, - gMonFootprint_Pinsir, - gMonFootprint_Tauros, - gMonFootprint_Magikarp, - gMonFootprint_Gyarados, - gMonFootprint_Lapras, - gMonFootprint_Ditto, - gMonFootprint_Eevee, - gMonFootprint_Vaporeon, - gMonFootprint_Jolteon, - gMonFootprint_Flareon, - gMonFootprint_Porygon, - gMonFootprint_Omanyte, - gMonFootprint_Omastar, - gMonFootprint_Kabuto, - gMonFootprint_Kabutops, - gMonFootprint_Aerodactyl, - gMonFootprint_Snorlax, - gMonFootprint_Articuno, - gMonFootprint_Zapdos, - gMonFootprint_Moltres, - gMonFootprint_Dratini, - gMonFootprint_Dragonair, - gMonFootprint_Dragonite, - gMonFootprint_Mewtwo, - gMonFootprint_Mew, - gMonFootprint_Chikorita, - gMonFootprint_Bayleef, - gMonFootprint_Meganium, - gMonFootprint_Cyndaquil, - gMonFootprint_Quilava, - gMonFootprint_Typhlosion, - gMonFootprint_Totodile, - gMonFootprint_Croconaw, - gMonFootprint_Feraligatr, - gMonFootprint_Sentret, - gMonFootprint_Furret, - gMonFootprint_Hoothoot, - gMonFootprint_Noctowl, - gMonFootprint_Ledyba, - gMonFootprint_Ledian, - gMonFootprint_Spinarak, - gMonFootprint_Ariados, - gMonFootprint_Crobat, - gMonFootprint_Chinchou, - gMonFootprint_Lanturn, - gMonFootprint_Pichu, - gMonFootprint_Cleffa, - gMonFootprint_Igglybuff, - gMonFootprint_Togepi, - gMonFootprint_Togetic, - gMonFootprint_Natu, - gMonFootprint_Xatu, - gMonFootprint_Mareep, - gMonFootprint_Flaaffy, - gMonFootprint_Ampharos, - gMonFootprint_Bellossom, - gMonFootprint_Marill, - gMonFootprint_Azumarill, - gMonFootprint_Sudowoodo, - gMonFootprint_Politoed, - gMonFootprint_Hoppip, - gMonFootprint_Skiploom, - gMonFootprint_Jumpluff, - gMonFootprint_Aipom, - gMonFootprint_Sunkern, - gMonFootprint_Sunflora, - gMonFootprint_Yanma, - gMonFootprint_Wooper, - gMonFootprint_Quagsire, - gMonFootprint_Espeon, - gMonFootprint_Umbreon, - gMonFootprint_Murkrow, - gMonFootprint_Slowking, - gMonFootprint_Misdreavus, - gMonFootprint_Unown, - gMonFootprint_Wobbuffet, - gMonFootprint_Girafarig, - gMonFootprint_Pineco, - gMonFootprint_Forretress, - gMonFootprint_Dunsparce, - gMonFootprint_Gligar, - gMonFootprint_Steelix, - gMonFootprint_Snubbull, - gMonFootprint_Granbull, - gMonFootprint_Qwilfish, - gMonFootprint_Scizor, - gMonFootprint_Shuckle, - gMonFootprint_Heracross, - gMonFootprint_Sneasel, - gMonFootprint_Teddiursa, - gMonFootprint_Ursaring, - gMonFootprint_Slugma, - gMonFootprint_Magcargo, - gMonFootprint_Swinub, - gMonFootprint_Piloswine, - gMonFootprint_Corsola, - gMonFootprint_Remoraid, - gMonFootprint_Octillery, - gMonFootprint_Delibird, - gMonFootprint_Mantine, - gMonFootprint_Skarmory, - gMonFootprint_Houndour, - gMonFootprint_Houndoom, - gMonFootprint_Kingdra, - gMonFootprint_Phanpy, - gMonFootprint_Donphan, - gMonFootprint_Porygon2, - gMonFootprint_Stantler, - gMonFootprint_Smeargle, - gMonFootprint_Tyrogue, - gMonFootprint_Hitmontop, - gMonFootprint_Smoochum, - gMonFootprint_Elekid, - gMonFootprint_Magby, - gMonFootprint_Miltank, - gMonFootprint_Blissey, - gMonFootprint_Raikou, - gMonFootprint_Entei, - gMonFootprint_Suicune, - gMonFootprint_Larvitar, - gMonFootprint_Pupitar, - gMonFootprint_Tyranitar, - gMonFootprint_Lugia, - gMonFootprint_HoOh, - gMonFootprint_Celebi, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_QuestionMark, - gMonFootprint_Treecko, - gMonFootprint_Grovyle, - gMonFootprint_Sceptile, - gMonFootprint_Torchic, - gMonFootprint_Combusken, - gMonFootprint_Blaziken, - gMonFootprint_Mudkip, - gMonFootprint_Marshtomp, - gMonFootprint_Swampert, - gMonFootprint_Poochyena, - gMonFootprint_Mightyena, - gMonFootprint_Zigzagoon, - gMonFootprint_Linoone, - gMonFootprint_Wurmple, - gMonFootprint_Silcoon, - gMonFootprint_Beautifly, - gMonFootprint_Cascoon, - gMonFootprint_Dustox, - gMonFootprint_Lotad, - gMonFootprint_Lombre, - gMonFootprint_Ludicolo, - gMonFootprint_Seedot, - gMonFootprint_Nuzleaf, - gMonFootprint_Shiftry, - gMonFootprint_Nincada, - gMonFootprint_Ninjask, - gMonFootprint_Shedinja, - gMonFootprint_Taillow, - gMonFootprint_Swellow, - gMonFootprint_Shroomish, - gMonFootprint_Breloom, - gMonFootprint_Spinda, - gMonFootprint_Wingull, - gMonFootprint_Pelipper, - gMonFootprint_Surskit, - gMonFootprint_Masquerain, - gMonFootprint_Wailmer, - gMonFootprint_Wailord, - gMonFootprint_Skitty, - gMonFootprint_Delcatty, - gMonFootprint_Kecleon, - gMonFootprint_Baltoy, - gMonFootprint_Claydol, - gMonFootprint_Nosepass, - gMonFootprint_Torkoal, - gMonFootprint_Sableye, - gMonFootprint_Barboach, - gMonFootprint_Whiscash, - gMonFootprint_Luvdisc, - gMonFootprint_Corphish, - gMonFootprint_Crawdaunt, - gMonFootprint_Feebas, - gMonFootprint_Milotic, - gMonFootprint_Carvanha, - gMonFootprint_Sharpedo, - gMonFootprint_Trapinch, - gMonFootprint_Vibrava, - gMonFootprint_Flygon, - gMonFootprint_Makuhita, - gMonFootprint_Hariyama, - gMonFootprint_Electrike, - gMonFootprint_Manectric, - gMonFootprint_Numel, - gMonFootprint_Camerupt, - gMonFootprint_Spheal, - gMonFootprint_Sealeo, - gMonFootprint_Walrein, - gMonFootprint_Cacnea, - gMonFootprint_Cacturne, - gMonFootprint_Snorunt, - gMonFootprint_Glalie, - gMonFootprint_Lunatone, - gMonFootprint_Solrock, - gMonFootprint_Azurill, - gMonFootprint_Spoink, - gMonFootprint_Grumpig, - gMonFootprint_Plusle, - gMonFootprint_Minun, - gMonFootprint_Mawile, - gMonFootprint_Meditite, - gMonFootprint_Medicham, - gMonFootprint_Swablu, - gMonFootprint_Altaria, - gMonFootprint_Wynaut, - gMonFootprint_Duskull, - gMonFootprint_Dusclops, - gMonFootprint_Roselia, - gMonFootprint_Slakoth, - gMonFootprint_Vigoroth, - gMonFootprint_Slaking, - gMonFootprint_Gulpin, - gMonFootprint_Swalot, - gMonFootprint_Tropius, - gMonFootprint_Whismur, - gMonFootprint_Loudred, - gMonFootprint_Exploud, - gMonFootprint_Clamperl, - gMonFootprint_Huntail, - gMonFootprint_Gorebyss, - gMonFootprint_Absol, - gMonFootprint_Shuppet, - gMonFootprint_Banette, - gMonFootprint_Seviper, - gMonFootprint_Zangoose, - gMonFootprint_Relicanth, - gMonFootprint_Aron, - gMonFootprint_Lairon, - gMonFootprint_Aggron, - gMonFootprint_Castform, - gMonFootprint_Volbeat, - gMonFootprint_Illumise, - gMonFootprint_Lileep, - gMonFootprint_Cradily, - gMonFootprint_Anorith, - gMonFootprint_Armaldo, - gMonFootprint_Ralts, - gMonFootprint_Kirlia, - gMonFootprint_Gardevoir, - gMonFootprint_Bagon, - gMonFootprint_Shelgon, - gMonFootprint_Salamence, - gMonFootprint_Beldum, - gMonFootprint_Metang, - gMonFootprint_Metagross, - gMonFootprint_Regirock, - gMonFootprint_Regice, - gMonFootprint_Registeel, - gMonFootprint_Kyogre, - gMonFootprint_Groudon, - gMonFootprint_Rayquaza, - gMonFootprint_Latias, - gMonFootprint_Latios, - gMonFootprint_Jirachi, - gMonFootprint_Deoxys, - gMonFootprint_Chimecho, - gMonFootprint_Bulbasaur, + [SPECIES_NONE] = gMonFootprint_Bulbasaur, + [SPECIES_BULBASAUR] = gMonFootprint_Bulbasaur, + [SPECIES_IVYSAUR] = gMonFootprint_Ivysaur, + [SPECIES_VENUSAUR] = gMonFootprint_Venusaur, + [SPECIES_CHARMANDER] = gMonFootprint_Charmander, + [SPECIES_CHARMELEON] = gMonFootprint_Charmeleon, + [SPECIES_CHARIZARD] = gMonFootprint_Charizard, + [SPECIES_SQUIRTLE] = gMonFootprint_Squirtle, + [SPECIES_WARTORTLE] = gMonFootprint_Wartortle, + [SPECIES_BLASTOISE] = gMonFootprint_Blastoise, + [SPECIES_CATERPIE] = gMonFootprint_Caterpie, + [SPECIES_METAPOD] = gMonFootprint_Metapod, + [SPECIES_BUTTERFREE] = gMonFootprint_Butterfree, + [SPECIES_WEEDLE] = gMonFootprint_Weedle, + [SPECIES_KAKUNA] = gMonFootprint_Kakuna, + [SPECIES_BEEDRILL] = gMonFootprint_Beedrill, + [SPECIES_PIDGEY] = gMonFootprint_Pidgey, + [SPECIES_PIDGEOTTO] = gMonFootprint_Pidgeotto, + [SPECIES_PIDGEOT] = gMonFootprint_Pidgeot, + [SPECIES_RATTATA] = gMonFootprint_Rattata, + [SPECIES_RATICATE] = gMonFootprint_Raticate, + [SPECIES_SPEAROW] = gMonFootprint_Spearow, + [SPECIES_FEAROW] = gMonFootprint_Fearow, + [SPECIES_EKANS] = gMonFootprint_Ekans, + [SPECIES_ARBOK] = gMonFootprint_Arbok, + [SPECIES_PIKACHU] = gMonFootprint_Pikachu, + [SPECIES_RAICHU] = gMonFootprint_Raichu, + [SPECIES_SANDSHREW] = gMonFootprint_Sandshrew, + [SPECIES_SANDSLASH] = gMonFootprint_Sandslash, + [SPECIES_NIDORAN_F] = gMonFootprint_NidoranF, + [SPECIES_NIDORINA] = gMonFootprint_Nidorina, + [SPECIES_NIDOQUEEN] = gMonFootprint_Nidoqueen, + [SPECIES_NIDORAN_M] = gMonFootprint_NidoranM, + [SPECIES_NIDORINO] = gMonFootprint_Nidorino, + [SPECIES_NIDOKING] = gMonFootprint_Nidoking, + [SPECIES_CLEFAIRY] = gMonFootprint_Clefairy, + [SPECIES_CLEFABLE] = gMonFootprint_Clefable, + [SPECIES_VULPIX] = gMonFootprint_Vulpix, + [SPECIES_NINETALES] = gMonFootprint_Ninetales, + [SPECIES_JIGGLYPUFF] = gMonFootprint_Jigglypuff, + [SPECIES_WIGGLYTUFF] = gMonFootprint_Wigglytuff, + [SPECIES_ZUBAT] = gMonFootprint_Zubat, + [SPECIES_GOLBAT] = gMonFootprint_Golbat, + [SPECIES_ODDISH] = gMonFootprint_Oddish, + [SPECIES_GLOOM] = gMonFootprint_Gloom, + [SPECIES_VILEPLUME] = gMonFootprint_Vileplume, + [SPECIES_PARAS] = gMonFootprint_Paras, + [SPECIES_PARASECT] = gMonFootprint_Parasect, + [SPECIES_VENONAT] = gMonFootprint_Venonat, + [SPECIES_VENOMOTH] = gMonFootprint_Venomoth, + [SPECIES_DIGLETT] = gMonFootprint_Diglett, + [SPECIES_DUGTRIO] = gMonFootprint_Dugtrio, + [SPECIES_MEOWTH] = gMonFootprint_Meowth, + [SPECIES_PERSIAN] = gMonFootprint_Persian, + [SPECIES_PSYDUCK] = gMonFootprint_Psyduck, + [SPECIES_GOLDUCK] = gMonFootprint_Golduck, + [SPECIES_MANKEY] = gMonFootprint_Mankey, + [SPECIES_PRIMEAPE] = gMonFootprint_Primeape, + [SPECIES_GROWLITHE] = gMonFootprint_Growlithe, + [SPECIES_ARCANINE] = gMonFootprint_Arcanine, + [SPECIES_POLIWAG] = gMonFootprint_Poliwag, + [SPECIES_POLIWHIRL] = gMonFootprint_Poliwhirl, + [SPECIES_POLIWRATH] = gMonFootprint_Poliwrath, + [SPECIES_ABRA] = gMonFootprint_Abra, + [SPECIES_KADABRA] = gMonFootprint_Kadabra, + [SPECIES_ALAKAZAM] = gMonFootprint_Alakazam, + [SPECIES_MACHOP] = gMonFootprint_Machop, + [SPECIES_MACHOKE] = gMonFootprint_Machoke, + [SPECIES_MACHAMP] = gMonFootprint_Machamp, + [SPECIES_BELLSPROUT] = gMonFootprint_Bellsprout, + [SPECIES_WEEPINBELL] = gMonFootprint_Weepinbell, + [SPECIES_VICTREEBEL] = gMonFootprint_Victreebel, + [SPECIES_TENTACOOL] = gMonFootprint_Tentacool, + [SPECIES_TENTACRUEL] = gMonFootprint_Tentacruel, + [SPECIES_GEODUDE] = gMonFootprint_Geodude, + [SPECIES_GRAVELER] = gMonFootprint_Graveler, + [SPECIES_GOLEM] = gMonFootprint_Golem, + [SPECIES_PONYTA] = gMonFootprint_Ponyta, + [SPECIES_RAPIDASH] = gMonFootprint_Rapidash, + [SPECIES_SLOWPOKE] = gMonFootprint_Slowpoke, + [SPECIES_SLOWBRO] = gMonFootprint_Slowbro, + [SPECIES_MAGNEMITE] = gMonFootprint_Magnemite, + [SPECIES_MAGNETON] = gMonFootprint_Magneton, + [SPECIES_FARFETCHD] = gMonFootprint_Farfetchd, + [SPECIES_DODUO] = gMonFootprint_Doduo, + [SPECIES_DODRIO] = gMonFootprint_Dodrio, + [SPECIES_SEEL] = gMonFootprint_Seel, + [SPECIES_DEWGONG] = gMonFootprint_Dewgong, + [SPECIES_GRIMER] = gMonFootprint_Grimer, + [SPECIES_MUK] = gMonFootprint_Muk, + [SPECIES_SHELLDER] = gMonFootprint_Shellder, + [SPECIES_CLOYSTER] = gMonFootprint_Cloyster, + [SPECIES_GASTLY] = gMonFootprint_Gastly, + [SPECIES_HAUNTER] = gMonFootprint_Haunter, + [SPECIES_GENGAR] = gMonFootprint_Gengar, + [SPECIES_ONIX] = gMonFootprint_Onix, + [SPECIES_DROWZEE] = gMonFootprint_Drowzee, + [SPECIES_HYPNO] = gMonFootprint_Hypno, + [SPECIES_KRABBY] = gMonFootprint_Krabby, + [SPECIES_KINGLER] = gMonFootprint_Kingler, + [SPECIES_VOLTORB] = gMonFootprint_Voltorb, + [SPECIES_ELECTRODE] = gMonFootprint_Electrode, + [SPECIES_EXEGGCUTE] = gMonFootprint_Exeggcute, + [SPECIES_EXEGGUTOR] = gMonFootprint_Exeggutor, + [SPECIES_CUBONE] = gMonFootprint_Cubone, + [SPECIES_MAROWAK] = gMonFootprint_Marowak, + [SPECIES_HITMONLEE] = gMonFootprint_Hitmonlee, + [SPECIES_HITMONCHAN] = gMonFootprint_Hitmonchan, + [SPECIES_LICKITUNG] = gMonFootprint_Lickitung, + [SPECIES_KOFFING] = gMonFootprint_Koffing, + [SPECIES_WEEZING] = gMonFootprint_Weezing, + [SPECIES_RHYHORN] = gMonFootprint_Rhyhorn, + [SPECIES_RHYDON] = gMonFootprint_Rhydon, + [SPECIES_CHANSEY] = gMonFootprint_Chansey, + [SPECIES_TANGELA] = gMonFootprint_Tangela, + [SPECIES_KANGASKHAN] = gMonFootprint_Kangaskhan, + [SPECIES_HORSEA] = gMonFootprint_Horsea, + [SPECIES_SEADRA] = gMonFootprint_Seadra, + [SPECIES_GOLDEEN] = gMonFootprint_Goldeen, + [SPECIES_SEAKING] = gMonFootprint_Seaking, + [SPECIES_STARYU] = gMonFootprint_Staryu, + [SPECIES_STARMIE] = gMonFootprint_Starmie, + [SPECIES_MR_MIME] = gMonFootprint_Mrmime, + [SPECIES_SCYTHER] = gMonFootprint_Scyther, + [SPECIES_JYNX] = gMonFootprint_Jynx, + [SPECIES_ELECTABUZZ] = gMonFootprint_Electabuzz, + [SPECIES_MAGMAR] = gMonFootprint_Magmar, + [SPECIES_PINSIR] = gMonFootprint_Pinsir, + [SPECIES_TAUROS] = gMonFootprint_Tauros, + [SPECIES_MAGIKARP] = gMonFootprint_Magikarp, + [SPECIES_GYARADOS] = gMonFootprint_Gyarados, + [SPECIES_LAPRAS] = gMonFootprint_Lapras, + [SPECIES_DITTO] = gMonFootprint_Ditto, + [SPECIES_EEVEE] = gMonFootprint_Eevee, + [SPECIES_VAPOREON] = gMonFootprint_Vaporeon, + [SPECIES_JOLTEON] = gMonFootprint_Jolteon, + [SPECIES_FLAREON] = gMonFootprint_Flareon, + [SPECIES_PORYGON] = gMonFootprint_Porygon, + [SPECIES_OMANYTE] = gMonFootprint_Omanyte, + [SPECIES_OMASTAR] = gMonFootprint_Omastar, + [SPECIES_KABUTO] = gMonFootprint_Kabuto, + [SPECIES_KABUTOPS] = gMonFootprint_Kabutops, + [SPECIES_AERODACTYL] = gMonFootprint_Aerodactyl, + [SPECIES_SNORLAX] = gMonFootprint_Snorlax, + [SPECIES_ARTICUNO] = gMonFootprint_Articuno, + [SPECIES_ZAPDOS] = gMonFootprint_Zapdos, + [SPECIES_MOLTRES] = gMonFootprint_Moltres, + [SPECIES_DRATINI] = gMonFootprint_Dratini, + [SPECIES_DRAGONAIR] = gMonFootprint_Dragonair, + [SPECIES_DRAGONITE] = gMonFootprint_Dragonite, + [SPECIES_MEWTWO] = gMonFootprint_Mewtwo, + [SPECIES_MEW] = gMonFootprint_Mew, + [SPECIES_CHIKORITA] = gMonFootprint_Chikorita, + [SPECIES_BAYLEEF] = gMonFootprint_Bayleef, + [SPECIES_MEGANIUM] = gMonFootprint_Meganium, + [SPECIES_CYNDAQUIL] = gMonFootprint_Cyndaquil, + [SPECIES_QUILAVA] = gMonFootprint_Quilava, + [SPECIES_TYPHLOSION] = gMonFootprint_Typhlosion, + [SPECIES_TOTODILE] = gMonFootprint_Totodile, + [SPECIES_CROCONAW] = gMonFootprint_Croconaw, + [SPECIES_FERALIGATR] = gMonFootprint_Feraligatr, + [SPECIES_SENTRET] = gMonFootprint_Sentret, + [SPECIES_FURRET] = gMonFootprint_Furret, + [SPECIES_HOOTHOOT] = gMonFootprint_Hoothoot, + [SPECIES_NOCTOWL] = gMonFootprint_Noctowl, + [SPECIES_LEDYBA] = gMonFootprint_Ledyba, + [SPECIES_LEDIAN] = gMonFootprint_Ledian, + [SPECIES_SPINARAK] = gMonFootprint_Spinarak, + [SPECIES_ARIADOS] = gMonFootprint_Ariados, + [SPECIES_CROBAT] = gMonFootprint_Crobat, + [SPECIES_CHINCHOU] = gMonFootprint_Chinchou, + [SPECIES_LANTURN] = gMonFootprint_Lanturn, + [SPECIES_PICHU] = gMonFootprint_Pichu, + [SPECIES_CLEFFA] = gMonFootprint_Cleffa, + [SPECIES_IGGLYBUFF] = gMonFootprint_Igglybuff, + [SPECIES_TOGEPI] = gMonFootprint_Togepi, + [SPECIES_TOGETIC] = gMonFootprint_Togetic, + [SPECIES_NATU] = gMonFootprint_Natu, + [SPECIES_XATU] = gMonFootprint_Xatu, + [SPECIES_MAREEP] = gMonFootprint_Mareep, + [SPECIES_FLAAFFY] = gMonFootprint_Flaaffy, + [SPECIES_AMPHAROS] = gMonFootprint_Ampharos, + [SPECIES_BELLOSSOM] = gMonFootprint_Bellossom, + [SPECIES_MARILL] = gMonFootprint_Marill, + [SPECIES_AZUMARILL] = gMonFootprint_Azumarill, + [SPECIES_SUDOWOODO] = gMonFootprint_Sudowoodo, + [SPECIES_POLITOED] = gMonFootprint_Politoed, + [SPECIES_HOPPIP] = gMonFootprint_Hoppip, + [SPECIES_SKIPLOOM] = gMonFootprint_Skiploom, + [SPECIES_JUMPLUFF] = gMonFootprint_Jumpluff, + [SPECIES_AIPOM] = gMonFootprint_Aipom, + [SPECIES_SUNKERN] = gMonFootprint_Sunkern, + [SPECIES_SUNFLORA] = gMonFootprint_Sunflora, + [SPECIES_YANMA] = gMonFootprint_Yanma, + [SPECIES_WOOPER] = gMonFootprint_Wooper, + [SPECIES_QUAGSIRE] = gMonFootprint_Quagsire, + [SPECIES_ESPEON] = gMonFootprint_Espeon, + [SPECIES_UMBREON] = gMonFootprint_Umbreon, + [SPECIES_MURKROW] = gMonFootprint_Murkrow, + [SPECIES_SLOWKING] = gMonFootprint_Slowking, + [SPECIES_MISDREAVUS] = gMonFootprint_Misdreavus, + [SPECIES_UNOWN] = gMonFootprint_Unown, + [SPECIES_WOBBUFFET] = gMonFootprint_Wobbuffet, + [SPECIES_GIRAFARIG] = gMonFootprint_Girafarig, + [SPECIES_PINECO] = gMonFootprint_Pineco, + [SPECIES_FORRETRESS] = gMonFootprint_Forretress, + [SPECIES_DUNSPARCE] = gMonFootprint_Dunsparce, + [SPECIES_GLIGAR] = gMonFootprint_Gligar, + [SPECIES_STEELIX] = gMonFootprint_Steelix, + [SPECIES_SNUBBULL] = gMonFootprint_Snubbull, + [SPECIES_GRANBULL] = gMonFootprint_Granbull, + [SPECIES_QWILFISH] = gMonFootprint_Qwilfish, + [SPECIES_SCIZOR] = gMonFootprint_Scizor, + [SPECIES_SHUCKLE] = gMonFootprint_Shuckle, + [SPECIES_HERACROSS] = gMonFootprint_Heracross, + [SPECIES_SNEASEL] = gMonFootprint_Sneasel, + [SPECIES_TEDDIURSA] = gMonFootprint_Teddiursa, + [SPECIES_URSARING] = gMonFootprint_Ursaring, + [SPECIES_SLUGMA] = gMonFootprint_Slugma, + [SPECIES_MAGCARGO] = gMonFootprint_Magcargo, + [SPECIES_SWINUB] = gMonFootprint_Swinub, + [SPECIES_PILOSWINE] = gMonFootprint_Piloswine, + [SPECIES_CORSOLA] = gMonFootprint_Corsola, + [SPECIES_REMORAID] = gMonFootprint_Remoraid, + [SPECIES_OCTILLERY] = gMonFootprint_Octillery, + [SPECIES_DELIBIRD] = gMonFootprint_Delibird, + [SPECIES_MANTINE] = gMonFootprint_Mantine, + [SPECIES_SKARMORY] = gMonFootprint_Skarmory, + [SPECIES_HOUNDOUR] = gMonFootprint_Houndour, + [SPECIES_HOUNDOOM] = gMonFootprint_Houndoom, + [SPECIES_KINGDRA] = gMonFootprint_Kingdra, + [SPECIES_PHANPY] = gMonFootprint_Phanpy, + [SPECIES_DONPHAN] = gMonFootprint_Donphan, + [SPECIES_PORYGON2] = gMonFootprint_Porygon2, + [SPECIES_STANTLER] = gMonFootprint_Stantler, + [SPECIES_SMEARGLE] = gMonFootprint_Smeargle, + [SPECIES_TYROGUE] = gMonFootprint_Tyrogue, + [SPECIES_HITMONTOP] = gMonFootprint_Hitmontop, + [SPECIES_SMOOCHUM] = gMonFootprint_Smoochum, + [SPECIES_ELEKID] = gMonFootprint_Elekid, + [SPECIES_MAGBY] = gMonFootprint_Magby, + [SPECIES_MILTANK] = gMonFootprint_Miltank, + [SPECIES_BLISSEY] = gMonFootprint_Blissey, + [SPECIES_RAIKOU] = gMonFootprint_Raikou, + [SPECIES_ENTEI] = gMonFootprint_Entei, + [SPECIES_SUICUNE] = gMonFootprint_Suicune, + [SPECIES_LARVITAR] = gMonFootprint_Larvitar, + [SPECIES_PUPITAR] = gMonFootprint_Pupitar, + [SPECIES_TYRANITAR] = gMonFootprint_Tyranitar, + [SPECIES_LUGIA] = gMonFootprint_Lugia, + [SPECIES_HO_OH] = gMonFootprint_HoOh, + [SPECIES_CELEBI] = gMonFootprint_Celebi, + [SPECIES_OLD_UNOWN_B] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_C] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_D] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_E] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_F] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_G] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_H] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_I] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_J] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_K] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_L] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_M] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_N] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_O] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_P] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_Q] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_R] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_S] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_T] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_U] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_V] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_W] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_X] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_Y] = gMonFootprint_QuestionMark, + [SPECIES_OLD_UNOWN_Z] = gMonFootprint_QuestionMark, + [SPECIES_TREECKO] = gMonFootprint_Treecko, + [SPECIES_GROVYLE] = gMonFootprint_Grovyle, + [SPECIES_SCEPTILE] = gMonFootprint_Sceptile, + [SPECIES_TORCHIC] = gMonFootprint_Torchic, + [SPECIES_COMBUSKEN] = gMonFootprint_Combusken, + [SPECIES_BLAZIKEN] = gMonFootprint_Blaziken, + [SPECIES_MUDKIP] = gMonFootprint_Mudkip, + [SPECIES_MARSHTOMP] = gMonFootprint_Marshtomp, + [SPECIES_SWAMPERT] = gMonFootprint_Swampert, + [SPECIES_POOCHYENA] = gMonFootprint_Poochyena, + [SPECIES_MIGHTYENA] = gMonFootprint_Mightyena, + [SPECIES_ZIGZAGOON] = gMonFootprint_Zigzagoon, + [SPECIES_LINOONE] = gMonFootprint_Linoone, + [SPECIES_WURMPLE] = gMonFootprint_Wurmple, + [SPECIES_SILCOON] = gMonFootprint_Silcoon, + [SPECIES_BEAUTIFLY] = gMonFootprint_Beautifly, + [SPECIES_CASCOON] = gMonFootprint_Cascoon, + [SPECIES_DUSTOX] = gMonFootprint_Dustox, + [SPECIES_LOTAD] = gMonFootprint_Lotad, + [SPECIES_LOMBRE] = gMonFootprint_Lombre, + [SPECIES_LUDICOLO] = gMonFootprint_Ludicolo, + [SPECIES_SEEDOT] = gMonFootprint_Seedot, + [SPECIES_NUZLEAF] = gMonFootprint_Nuzleaf, + [SPECIES_SHIFTRY] = gMonFootprint_Shiftry, + [SPECIES_NINCADA] = gMonFootprint_Nincada, + [SPECIES_NINJASK] = gMonFootprint_Ninjask, + [SPECIES_SHEDINJA] = gMonFootprint_Shedinja, + [SPECIES_TAILLOW] = gMonFootprint_Taillow, + [SPECIES_SWELLOW] = gMonFootprint_Swellow, + [SPECIES_SHROOMISH] = gMonFootprint_Shroomish, + [SPECIES_BRELOOM] = gMonFootprint_Breloom, + [SPECIES_SPINDA] = gMonFootprint_Spinda, + [SPECIES_WINGULL] = gMonFootprint_Wingull, + [SPECIES_PELIPPER] = gMonFootprint_Pelipper, + [SPECIES_SURSKIT] = gMonFootprint_Surskit, + [SPECIES_MASQUERAIN] = gMonFootprint_Masquerain, + [SPECIES_WAILMER] = gMonFootprint_Wailmer, + [SPECIES_WAILORD] = gMonFootprint_Wailord, + [SPECIES_SKITTY] = gMonFootprint_Skitty, + [SPECIES_DELCATTY] = gMonFootprint_Delcatty, + [SPECIES_KECLEON] = gMonFootprint_Kecleon, + [SPECIES_BALTOY] = gMonFootprint_Baltoy, + [SPECIES_CLAYDOL] = gMonFootprint_Claydol, + [SPECIES_NOSEPASS] = gMonFootprint_Nosepass, + [SPECIES_TORKOAL] = gMonFootprint_Torkoal, + [SPECIES_SABLEYE] = gMonFootprint_Sableye, + [SPECIES_BARBOACH] = gMonFootprint_Barboach, + [SPECIES_WHISCASH] = gMonFootprint_Whiscash, + [SPECIES_LUVDISC] = gMonFootprint_Luvdisc, + [SPECIES_CORPHISH] = gMonFootprint_Corphish, + [SPECIES_CRAWDAUNT] = gMonFootprint_Crawdaunt, + [SPECIES_FEEBAS] = gMonFootprint_Feebas, + [SPECIES_MILOTIC] = gMonFootprint_Milotic, + [SPECIES_CARVANHA] = gMonFootprint_Carvanha, + [SPECIES_SHARPEDO] = gMonFootprint_Sharpedo, + [SPECIES_TRAPINCH] = gMonFootprint_Trapinch, + [SPECIES_VIBRAVA] = gMonFootprint_Vibrava, + [SPECIES_FLYGON] = gMonFootprint_Flygon, + [SPECIES_MAKUHITA] = gMonFootprint_Makuhita, + [SPECIES_HARIYAMA] = gMonFootprint_Hariyama, + [SPECIES_ELECTRIKE] = gMonFootprint_Electrike, + [SPECIES_MANECTRIC] = gMonFootprint_Manectric, + [SPECIES_NUMEL] = gMonFootprint_Numel, + [SPECIES_CAMERUPT] = gMonFootprint_Camerupt, + [SPECIES_SPHEAL] = gMonFootprint_Spheal, + [SPECIES_SEALEO] = gMonFootprint_Sealeo, + [SPECIES_WALREIN] = gMonFootprint_Walrein, + [SPECIES_CACNEA] = gMonFootprint_Cacnea, + [SPECIES_CACTURNE] = gMonFootprint_Cacturne, + [SPECIES_SNORUNT] = gMonFootprint_Snorunt, + [SPECIES_GLALIE] = gMonFootprint_Glalie, + [SPECIES_LUNATONE] = gMonFootprint_Lunatone, + [SPECIES_SOLROCK] = gMonFootprint_Solrock, + [SPECIES_AZURILL] = gMonFootprint_Azurill, + [SPECIES_SPOINK] = gMonFootprint_Spoink, + [SPECIES_GRUMPIG] = gMonFootprint_Grumpig, + [SPECIES_PLUSLE] = gMonFootprint_Plusle, + [SPECIES_MINUN] = gMonFootprint_Minun, + [SPECIES_MAWILE] = gMonFootprint_Mawile, + [SPECIES_MEDITITE] = gMonFootprint_Meditite, + [SPECIES_MEDICHAM] = gMonFootprint_Medicham, + [SPECIES_SWABLU] = gMonFootprint_Swablu, + [SPECIES_ALTARIA] = gMonFootprint_Altaria, + [SPECIES_WYNAUT] = gMonFootprint_Wynaut, + [SPECIES_DUSKULL] = gMonFootprint_Duskull, + [SPECIES_DUSCLOPS] = gMonFootprint_Dusclops, + [SPECIES_ROSELIA] = gMonFootprint_Roselia, + [SPECIES_SLAKOTH] = gMonFootprint_Slakoth, + [SPECIES_VIGOROTH] = gMonFootprint_Vigoroth, + [SPECIES_SLAKING] = gMonFootprint_Slaking, + [SPECIES_GULPIN] = gMonFootprint_Gulpin, + [SPECIES_SWALOT] = gMonFootprint_Swalot, + [SPECIES_TROPIUS] = gMonFootprint_Tropius, + [SPECIES_WHISMUR] = gMonFootprint_Whismur, + [SPECIES_LOUDRED] = gMonFootprint_Loudred, + [SPECIES_EXPLOUD] = gMonFootprint_Exploud, + [SPECIES_CLAMPERL] = gMonFootprint_Clamperl, + [SPECIES_HUNTAIL] = gMonFootprint_Huntail, + [SPECIES_GOREBYSS] = gMonFootprint_Gorebyss, + [SPECIES_ABSOL] = gMonFootprint_Absol, + [SPECIES_SHUPPET] = gMonFootprint_Shuppet, + [SPECIES_BANETTE] = gMonFootprint_Banette, + [SPECIES_SEVIPER] = gMonFootprint_Seviper, + [SPECIES_ZANGOOSE] = gMonFootprint_Zangoose, + [SPECIES_RELICANTH] = gMonFootprint_Relicanth, + [SPECIES_ARON] = gMonFootprint_Aron, + [SPECIES_LAIRON] = gMonFootprint_Lairon, + [SPECIES_AGGRON] = gMonFootprint_Aggron, + [SPECIES_CASTFORM] = gMonFootprint_Castform, + [SPECIES_VOLBEAT] = gMonFootprint_Volbeat, + [SPECIES_ILLUMISE] = gMonFootprint_Illumise, + [SPECIES_LILEEP] = gMonFootprint_Lileep, + [SPECIES_CRADILY] = gMonFootprint_Cradily, + [SPECIES_ANORITH] = gMonFootprint_Anorith, + [SPECIES_ARMALDO] = gMonFootprint_Armaldo, + [SPECIES_RALTS] = gMonFootprint_Ralts, + [SPECIES_KIRLIA] = gMonFootprint_Kirlia, + [SPECIES_GARDEVOIR] = gMonFootprint_Gardevoir, + [SPECIES_BAGON] = gMonFootprint_Bagon, + [SPECIES_SHELGON] = gMonFootprint_Shelgon, + [SPECIES_SALAMENCE] = gMonFootprint_Salamence, + [SPECIES_BELDUM] = gMonFootprint_Beldum, + [SPECIES_METANG] = gMonFootprint_Metang, + [SPECIES_METAGROSS] = gMonFootprint_Metagross, + [SPECIES_REGIROCK] = gMonFootprint_Regirock, + [SPECIES_REGICE] = gMonFootprint_Regice, + [SPECIES_REGISTEEL] = gMonFootprint_Registeel, + [SPECIES_KYOGRE] = gMonFootprint_Kyogre, + [SPECIES_GROUDON] = gMonFootprint_Groudon, + [SPECIES_RAYQUAZA] = gMonFootprint_Rayquaza, + [SPECIES_LATIAS] = gMonFootprint_Latias, + [SPECIES_LATIOS] = gMonFootprint_Latios, + [SPECIES_JIRACHI] = gMonFootprint_Jirachi, + [SPECIES_DEOXYS] = gMonFootprint_Deoxys, + [SPECIES_CHIMECHO] = gMonFootprint_Chimecho, + [SPECIES_EGG] = gMonFootprint_Bulbasaur, }; diff --git a/src/data/pokemon_graphics/front_anims.h b/src/data/pokemon_graphics/front_anims.h deleted file mode 100644 index 8a42eb5c9..000000000 --- a/src/data/pokemon_graphics/front_anims.h +++ /dev/null @@ -1,7394 +0,0 @@ - -const union AnimCmd gAnimCmd_NONE_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BULBASAUR_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_IVYSAUR_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 36), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VENUSAUR_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CHARMANDER_1[] = -{ - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 46), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CHARMELEON_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CHARIZARD_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SQUIRTLE_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WARTORTLE_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BLASTOISE_1[] = -{ - ANIMCMD_FRAME(0, 50), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CATERPIE_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_METAPOD_1[] = -{ - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BUTTERFREE_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WEEDLE_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KAKUNA_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BEEDRILL_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 28), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PIDGEY_1[] = -{ - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PIDGEOTTO_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PIDGEOT_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - - -const union AnimCmd gAnimCmd_RATTATA_1[] = -{ - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 28), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RATICATE_1[] = -{ - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SPEAROW_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_FEAROW_1[] = -{ - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 7), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_EKANS_1[] = -{ - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ARBOK_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PIKACHU_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PIKACHU_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RAICHU_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RAICHU_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SANDSHREW_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SANDSHREW_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SANDSLASH_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SANDSLASH_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NIDORAN_F_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 50), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NIDORINA_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NIDOQUEEN_1[] = -{ - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NIDORAN_M_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NIDORINO_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NIDOKING_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CLEFAIRY_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CLEFABLE_1[] = -{ - ANIMCMD_FRAME(1, 27), - ANIMCMD_FRAME(0, 27), - ANIMCMD_FRAME(1, 24), - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 27), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VULPIX_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VULPIX_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NINETALES_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NINETALES_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_JIGGLYPUFF_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_JIGGLYPUFF_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WIGGLYTUFF_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WIGGLYTUFF_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ZUBAT_1[] = -{ - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GOLBAT_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ODDISH_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 6), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GLOOM_1[] = -{ - ANIMCMD_FRAME(0, 21), - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VILEPLUME_1[] = -{ - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 21), - ANIMCMD_FRAME(0, 13), - ANIMCMD_FRAME(1, 21), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PARAS_1[] = -{ - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PARASECT_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VENONAT_1[] = -{ - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 35), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VENOMOTH_1[] = -{ - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DIGLETT_1[] = -{ - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DUGTRIO_1[] = -{ - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MEOWTH_1[] = -{ - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 17), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PERSIAN_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PSYDUCK_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PSYDUCK_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GOLDUCK_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GOLDUCK_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MANKEY_1[] = -{ - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 28), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PRIMEAPE_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GROWLITHE_1[] = -{ - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ARCANINE_1[] = -{ - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END,}; - -const union AnimCmd gAnimCmd_POLIWAG_1[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_POLIWHIRL_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_POLIWRATH_1[] = -{ - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ABRA_1[] = -{ - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 21), - ANIMCMD_FRAME(0, 13), - ANIMCMD_FRAME(1, 21), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KADABRA_1[] = -{ - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ALAKAZAM_1[] = -{ - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 54), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MACHOP_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MACHOKE_1[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MACHAMP_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BELLSPROUT_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WEEPINBELL_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VICTREEBEL_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TENTACOOL_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TENTACRUEL_1[] = -{ - ANIMCMD_FRAME(0, 19), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 19), - ANIMCMD_FRAME(1, 19), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GEODUDE_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 36), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GRAVELER_1[] = -{ - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GOLEM_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 31), - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PONYTA_1[] = -{ - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RAPIDASH_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SLOWPOKE_1[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SLOWBRO_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MAGNEMITE_1[] = -{ - ANIMCMD_FRAME(0, 28), - ANIMCMD_FRAME(1, 28), - ANIMCMD_FRAME(0, 28), - ANIMCMD_FRAME(1, 28), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MAGNETON_1[] = -{ - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_FARFETCHD_1[] = -{ - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DODUO_1[] = -{ - ANIMCMD_FRAME(0, 18), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 18), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DODRIO_1[] = -{ - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SEEL_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DEWGONG_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GRIMER_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GRIMER_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MUK_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MUK_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SHELLDER_1[] = -{ - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CLOYSTER_1[] = -{ - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GASTLY_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HAUNTER_1[] = -{ - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GENGAR_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ONIX_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DROWZEE_1[] = -{ - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HYPNO_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KRABBY_1[] = -{ - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KINGLER_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VOLTORB_1[] = -{ - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 4), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ELECTRODE_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_EXEGGCUTE_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_EXEGGUTOR_1[] = -{ - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END,}; - - -const union AnimCmd gAnimCmd_CUBONE_1[] = -{ - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MAROWAK_1[] = -{ - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HITMONLEE_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HITMONCHAN_1[] = -{ - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LICKITUNG_1[] = -{ - ANIMCMD_FRAME(0, 28), - ANIMCMD_FRAME(1, 32), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KOFFING_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KOFFING_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WEEZING_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WEEZING_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RHYHORN_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RHYHORN_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RHYDON_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 48), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RHYDON_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CHANSEY_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TANGELA_1[] = -{ - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KANGASKHAN_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HORSEA_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HORSEA_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SEADRA_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SEADRA_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GOLDEEN_1[] = -{ - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SEAKING_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_STARYU_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_STARYU_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_STARMIE_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_STARMIE_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MR_MIME_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SCYTHER_1[] = -{ - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_JYNX_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ELECTABUZZ_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MAGMAR_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PINSIR_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PINSIR_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TAUROS_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MAGIKARP_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GYARADOS_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 32), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LAPRAS_1[] = -{ - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DITTO_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_EEVEE_1[] = -{ - ANIMCMD_FRAME(1, 33), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VAPOREON_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_JOLTEON_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_FLAREON_1[] = -{ - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PORYGON_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_OMANYTE_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_OMASTAR_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KABUTO_1[] = -{ - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KABUTOPS_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_AERODACTYL_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 25), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SNORLAX_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ARTICUNO_1[] = -{ - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ZAPDOS_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MOLTRES_1[] = -{ - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DRATINI_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DRAGONAIR_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DRAGONITE_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MEWTWO_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MEW_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CHIKORITA_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END,}; - - -const union AnimCmd gAnimCmd_BAYLEEF_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MEGANIUM_1[] = -{ - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CYNDAQUIL_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_QUILAVA_1[] = -{ - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TYPHLOSION_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TOTODILE_1[] = -{ - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CROCONAW_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_FERALIGATR_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 40), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SENTRET_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_FURRET_1[] = -{ - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HOOTHOOT_1[] = -{ - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 7), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NOCTOWL_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LEDYBA_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LEDIAN_1[] = -{ - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SPINARAK_1[] = -{ - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ARIADOS_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CROBAT_1[] = -{ - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CHINCHOU_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CHINCHOU_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LANTURN_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LANTURN_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PICHU_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PICHU_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CLEFFA_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_IGGLYBUFF_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_IGGLYBUFF_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TOGEPI_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TOGETIC_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NATU_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NATU_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_XATU_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_XATU_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MAREEP_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_FLAAFFY_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_AMPHAROS_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BELLOSSOM_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MARILL_1[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_AZUMARILL_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SUDOWOODO_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_POLITOED_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HOPPIP_1[] = -{ - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 25), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SKIPLOOM_1[] = -{ - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_JUMPLUFF_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_AIPOM_1[] = -{ - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SUNKERN_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SUNFLORA_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_YANMA_1[] = -{ - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WOOPER_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_QUAGSIRE_1[] = -{ - ANIMCMD_FRAME(1, 32), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ESPEON_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UMBREON_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MURKROW_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SLOWKING_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MISDREAVUS_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WOBBUFFET_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WOBBUFFET_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GIRAFARIG_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GIRAFARIG_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PINECO_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_FORRETRESS_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DUNSPARCE_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GLIGAR_1[] = -{ - ANIMCMD_FRAME(1, 17), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_STEELIX_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SNUBBULL_1[] = -{ - ANIMCMD_FRAME(1, 32), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GRANBULL_1[] = -{ - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_QWILFISH_1[] = -{ - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SCIZOR_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SHUCKLE_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HERACROSS_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HERACROSS_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SNEASEL_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TEDDIURSA_1[] = -{ - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_URSARING_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SLUGMA_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SLUGMA_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MAGCARGO_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MAGCARGO_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SWINUB_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PILOSWINE_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CORSOLA_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CORSOLA_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_REMORAID_1[] = -{ - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_OCTILLERY_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DELIBIRD_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MANTINE_1[] = -{ - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 40), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SKARMORY_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SKARMORY_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HOUNDOUR_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HOUNDOOM_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KINGDRA_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KINGDRA_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PHANPY_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PHANPY_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DONPHAN_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DONPHAN_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PORYGON2_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_STANTLER_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SMEARGLE_1[] = -{ - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TYROGUE_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HITMONTOP_1[] = -{ - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SMOOCHUM_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ELEKID_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MAGBY_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MILTANK_1[] = -{ - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BLISSEY_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RAIKOU_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ENTEI_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SUICUNE_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LARVITAR_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PUPITAR_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TYRANITAR_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LUGIA_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HO_OH_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CELEBI_1[] = -{ - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_OLD_UNOWN_B_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TREECKO_1[] = -{ - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 3), - ANIMCMD_END,}; - -const union AnimCmd gAnimCmd_GROVYLE_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 6), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SCEPTILE_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 26), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TORCHIC_1[] = -{ - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_COMBUSKEN_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 12), - ANIMCMD_END,}; - -const union AnimCmd gAnimCmd_BLAZIKEN_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 7), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BLAZIKEN_2[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BLAZIKEN_3[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(2, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BLAZIKEN_4[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MUDKIP_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 13), - ANIMCMD_FRAME(0, 7), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MARSHTOMP_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SWAMPERT_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 18), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 7), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_POOCHYENA_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MIGHTYENA_1[] = -{ - ANIMCMD_FRAME(0, 27), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ZIGZAGOON_1[] = -{ - ANIMCMD_FRAME(0, 27), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LINOONE_1[] = -{ - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WURMPLE_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SILCOON_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SILCOON_2[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BEAUTIFLY_1[] = -{ - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BEAUTIFLY_2[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CASCOON_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CASCOON_2[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DUSTOX_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DUSTOX_2[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LOTAD_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 55), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LOMBRE_1[] = -{ - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 7), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LUDICOLO_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SEEDOT_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NUZLEAF_1[] = -{ - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 7), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SHIFTRY_1[] = -{ - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NINCADA_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 33), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NINJASK_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(0, 33), - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SHEDINJA_1[] = -{ - ANIMCMD_FRAME(0, 33), - ANIMCMD_FRAME(1, 33), - ANIMCMD_FRAME(0, 33), - ANIMCMD_FRAME(1, 33), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TAILLOW_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SWELLOW_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SHROOMISH_1[] = -{ - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BRELOOM_1[] = -{ - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 7), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WINGULL_1[] = -{ - ANIMCMD_FRAME(0, 17), - ANIMCMD_FRAME(1, 23), - ANIMCMD_FRAME(0, 13), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PELIPPER_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SURSKIT_1[] = -{ - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SURSKIT_2[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MASQUERAIN_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MASQUERAIN_2[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WAILMER_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WAILORD_1[] = -{ - ANIMCMD_FRAME(0, 26), - ANIMCMD_FRAME(1, 48), - ANIMCMD_FRAME(0, 33), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SKITTY_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 9), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DELCATTY_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 46), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KECLEON_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BALTOY_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CLAYDOL_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NOSEPASS_1[] = -{ - ANIMCMD_FRAME(0, 27), - ANIMCMD_FRAME(1, 27), - ANIMCMD_FRAME(0, 27), - ANIMCMD_FRAME(1, 27), - ANIMCMD_FRAME(0, 27), - ANIMCMD_FRAME(1, 27), - ANIMCMD_FRAME(0, 3), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TORKOAL_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SABLEYE_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BARBOACH_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WHISCASH_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LUVDISC_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CORPHISH_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CRAWDAUNT_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_FEEBAS_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MILOTIC_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CARVANHA_1[] = -{ - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SHARPEDO_1[] = -{ - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TRAPINCH_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VIBRAVA_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_FLYGON_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MAKUHITA_1[] = -{ - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HARIYAMA_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ELECTRIKE_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 17), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 3), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MANECTRIC_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 33), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 3), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_NUMEL_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 40), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CAMERUPT_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SPHEAL_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 43), - ANIMCMD_FRAME(1, 60), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SEALEO_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WALREIN_1[] = -{ - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CACNEA_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CACTURNE_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SNORUNT_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GLALIE_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LUNATONE_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LUNATONE_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SOLROCK_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SOLROCK_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_AZURILL_1[] = -{ - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SPOINK_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GRUMPIG_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_PLUSLE_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MINUN_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MAWILE_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MEDITITE_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_MEDICHAM_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SWABLU_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SWABLU_2[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(2, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ALTARIA_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ALTARIA_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WYNAUT_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DUSKULL_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DUSCLOPS_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ROSELIA_1[] = -{ - ANIMCMD_FRAME(0, 18), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SLAKOTH_1[] = -{ - ANIMCMD_FRAME(0, 13), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VIGOROTH_1[] = -{ - ANIMCMD_FRAME(0, 13), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 13), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 13), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SLAKING_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GULPIN_1[] = -{ - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 4), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SWALOT_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_TROPIUS_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_WHISMUR_1[] = -{ - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 33), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LOUDRED_1[] = -{ - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 33), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_EXPLOUD_1[] = -{ - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 9), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CLAMPERL_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_HUNTAIL_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GOREBYSS_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ABSOL_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SHUPPET_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BANETTE_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SEVIPER_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ZANGOOSE_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RELICANTH_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ARON_1[] = -{ - ANIMCMD_FRAME(0, 33), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 33), - ANIMCMD_FRAME(1, 33), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LAIRON_1[] = -{ - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 29), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 29), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_AGGRON_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CASTFORM_0[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CASTFORM_1[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CASTFORM_2[] = -{ - ANIMCMD_FRAME(2, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CASTFORM_3[] = -{ - ANIMCMD_FRAME(3, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_VOLBEAT_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ILLUMISE_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LILEEP_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CRADILY_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ANORITH_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_ARMALDO_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RALTS_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KIRLIA_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 39), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GARDEVOIR_1[] = -{ - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BAGON_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SHELGON_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_SALAMENCE_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_BELDUM_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_METANG_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_METAGROSS_1[] = -{ - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_REGIROCK_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_REGIROCK_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_REGICE_1[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_REGISTEEL_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_REGISTEEL_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KYOGRE_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_KYOGRE_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GROUDON_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_GROUDON_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RAYQUAZA_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_RAYQUAZA_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LATIAS_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LATIAS_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LATIOS_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_LATIOS_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_JIRACHI_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_JIRACHI_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DEOXYS_1[] = -{ - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 26), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_DEOXYS_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_CHIMECHO_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_EGG_1[] = -{ - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(2, 6), - ANIMCMD_FRAME(3, 6), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_B_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_C_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_D_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_E_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_F_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_G_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_H_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_I_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_J_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_K_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_L_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_M_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_N_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_O_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_P_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_Q_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_R_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_S_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_T_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_U_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_V_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_W_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_X_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_Y_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_Z_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_EMARK_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_UNOWN_QMARK_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -const union AnimCmd *const gAnims_NONE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NONE_1, -}; - -const union AnimCmd *const gAnims_BULBASAUR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BULBASAUR_1, -}; - -const union AnimCmd *const gAnims_IVYSAUR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_IVYSAUR_1, -}; - -const union AnimCmd *const gAnims_VENUSAUR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_VENUSAUR_1, -}; - -const union AnimCmd *const gAnims_CHARMANDER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CHARMANDER_1, -}; - -const union AnimCmd *const gAnims_CHARMELEON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CHARMELEON_1, -}; - -const union AnimCmd *const gAnims_CHARIZARD[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CHARIZARD_1, -}; - -const union AnimCmd *const gAnims_SQUIRTLE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SQUIRTLE_1, -}; - -const union AnimCmd *const gAnims_WARTORTLE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WARTORTLE_1, -}; - -const union AnimCmd *const gAnims_BLASTOISE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BLASTOISE_1, -}; - -const union AnimCmd *const gAnims_CATERPIE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CATERPIE_1, -}; - -const union AnimCmd *const gAnims_METAPOD[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_METAPOD_1, -}; - -const union AnimCmd *const gAnims_BUTTERFREE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BUTTERFREE_1, -}; - -const union AnimCmd *const gAnims_WEEDLE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WEEDLE_1, -}; - -const union AnimCmd *const gAnims_KAKUNA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KAKUNA_1, -}; - -const union AnimCmd *const gAnims_BEEDRILL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BEEDRILL_1, -}; - -const union AnimCmd *const gAnims_PIDGEY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PIDGEY_1, -}; - -const union AnimCmd *const gAnims_PIDGEOTTO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PIDGEOTTO_1, -}; - -const union AnimCmd *const gAnims_PIDGEOT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PIDGEOT_1, -}; - -const union AnimCmd *const gAnims_RATTATA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_RATTATA_1, -}; - -const union AnimCmd *const gAnims_RATICATE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_RATICATE_1, -}; - -const union AnimCmd *const gAnims_SPEAROW[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SPEAROW_1, -}; - -const union AnimCmd *const gAnims_FEAROW[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_FEAROW_1, -}; - -const union AnimCmd *const gAnims_EKANS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_EKANS_1, -}; - -const union AnimCmd *const gAnims_ARBOK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ARBOK_1, -}; - -const union AnimCmd *const gAnims_PIKACHU[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PIKACHU_1, - gAnimCmd_PIKACHU_2, -}; - -const union AnimCmd *const gAnims_RAICHU[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_RAICHU_1, - gAnimCmd_RAICHU_2, -}; - -const union AnimCmd *const gAnims_SANDSHREW[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SANDSHREW_1, - gAnimCmd_SANDSHREW_2, -}; - -const union AnimCmd *const gAnims_SANDSLASH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SANDSLASH_1, - gAnimCmd_SANDSLASH_2, -}; - -const union AnimCmd *const gAnims_NIDORAN_F[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NIDORAN_F_1, -}; - -const union AnimCmd *const gAnims_NIDORINA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NIDORINA_1, -}; - -const union AnimCmd *const gAnims_NIDOQUEEN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NIDOQUEEN_1, -}; - -const union AnimCmd *const gAnims_NIDORAN_M[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NIDORAN_M_1, -}; - -const union AnimCmd *const gAnims_NIDORINO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NIDORINO_1, -}; - -const union AnimCmd *const gAnims_NIDOKING[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NIDOKING_1, -}; - -const union AnimCmd *const gAnims_CLEFAIRY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CLEFAIRY_1, -}; - -const union AnimCmd *const gAnims_CLEFABLE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CLEFABLE_1, -}; - -const union AnimCmd *const gAnims_VULPIX[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_VULPIX_1, - gAnimCmd_VULPIX_2, -}; - -const union AnimCmd *const gAnims_NINETALES[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NINETALES_1, - gAnimCmd_NINETALES_2, -}; - -const union AnimCmd *const gAnims_JIGGLYPUFF[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_JIGGLYPUFF_1, - gAnimCmd_JIGGLYPUFF_2, -}; - -const union AnimCmd *const gAnims_WIGGLYTUFF[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WIGGLYTUFF_1, - gAnimCmd_WIGGLYTUFF_2, -}; - -const union AnimCmd *const gAnims_ZUBAT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ZUBAT_1, -}; - -const union AnimCmd *const gAnims_GOLBAT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GOLBAT_1, -}; - -const union AnimCmd *const gAnims_ODDISH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ODDISH_1, -}; - -const union AnimCmd *const gAnims_GLOOM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GLOOM_1, -}; - -const union AnimCmd *const gAnims_VILEPLUME[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_VILEPLUME_1, -}; - -const union AnimCmd *const gAnims_PARAS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PARAS_1, -}; - -const union AnimCmd *const gAnims_PARASECT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PARASECT_1, -}; - -const union AnimCmd *const gAnims_VENONAT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_VENONAT_1, -}; - -const union AnimCmd *const gAnims_VENOMOTH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_VENOMOTH_1, -}; - -const union AnimCmd *const gAnims_DIGLETT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DIGLETT_1, -}; - -const union AnimCmd *const gAnims_DUGTRIO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DUGTRIO_1, -}; - -const union AnimCmd *const gAnims_MEOWTH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MEOWTH_1, -}; - -const union AnimCmd *const gAnims_PERSIAN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PERSIAN_1, -}; - -const union AnimCmd *const gAnims_PSYDUCK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PSYDUCK_1, - gAnimCmd_PSYDUCK_2, -}; - -const union AnimCmd *const gAnims_GOLDUCK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GOLDUCK_1, - gAnimCmd_GOLDUCK_2, -}; - -const union AnimCmd *const gAnims_MANKEY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MANKEY_1, -}; - -const union AnimCmd *const gAnims_PRIMEAPE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PRIMEAPE_1, -}; - -const union AnimCmd *const gAnims_GROWLITHE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GROWLITHE_1, -}; - -const union AnimCmd *const gAnims_ARCANINE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ARCANINE_1, -}; - -const union AnimCmd *const gAnims_POLIWAG[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_POLIWAG_1, -}; - -const union AnimCmd *const gAnims_POLIWHIRL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_POLIWHIRL_1, -}; - -const union AnimCmd *const gAnims_POLIWRATH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_POLIWRATH_1, -}; - -const union AnimCmd *const gAnims_ABRA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ABRA_1, -}; - -const union AnimCmd *const gAnims_KADABRA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KADABRA_1, -}; - -const union AnimCmd *const gAnims_ALAKAZAM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ALAKAZAM_1, -}; - -const union AnimCmd *const gAnims_MACHOP[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MACHOP_1, -}; - -const union AnimCmd *const gAnims_MACHOKE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MACHOKE_1, -}; - -const union AnimCmd *const gAnims_MACHAMP[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MACHAMP_1, -}; - -const union AnimCmd *const gAnims_BELLSPROUT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BELLSPROUT_1, -}; - -const union AnimCmd *const gAnims_WEEPINBELL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WEEPINBELL_1, -}; - -const union AnimCmd *const gAnims_VICTREEBEL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_VICTREEBEL_1, -}; - -const union AnimCmd *const gAnims_TENTACOOL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TENTACOOL_1, -}; - -const union AnimCmd *const gAnims_TENTACRUEL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TENTACRUEL_1, -}; - -const union AnimCmd *const gAnims_GEODUDE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GEODUDE_1, -}; - -const union AnimCmd *const gAnims_GRAVELER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GRAVELER_1, -}; - -const union AnimCmd *const gAnims_GOLEM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GOLEM_1, -}; - -const union AnimCmd *const gAnims_PONYTA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PONYTA_1, -}; - -const union AnimCmd *const gAnims_RAPIDASH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_RAPIDASH_1, -}; - -const union AnimCmd *const gAnims_SLOWPOKE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SLOWPOKE_1, -}; - -const union AnimCmd *const gAnims_SLOWBRO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SLOWBRO_1, -}; - -const union AnimCmd *const gAnims_MAGNEMITE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MAGNEMITE_1, -}; - -const union AnimCmd *const gAnims_MAGNETON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MAGNETON_1, -}; - -const union AnimCmd *const gAnims_FARFETCHD[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_FARFETCHD_1, -}; - -const union AnimCmd *const gAnims_DODUO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DODUO_1, -}; - -const union AnimCmd *const gAnims_DODRIO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DODRIO_1, -}; - -const union AnimCmd *const gAnims_SEEL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SEEL_1, -}; - -const union AnimCmd *const gAnims_DEWGONG[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DEWGONG_1, -}; - -const union AnimCmd *const gAnims_GRIMER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GRIMER_1, - gAnimCmd_GRIMER_2, -}; - -const union AnimCmd *const gAnims_MUK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MUK_1, - gAnimCmd_MUK_2, -}; - -const union AnimCmd *const gAnims_SHELLDER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SHELLDER_1, -}; - -const union AnimCmd *const gAnims_CLOYSTER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CLOYSTER_1, -}; - -const union AnimCmd *const gAnims_GASTLY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GASTLY_1, -}; - -const union AnimCmd *const gAnims_HAUNTER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HAUNTER_1, -}; - -const union AnimCmd *const gAnims_GENGAR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GENGAR_1, -}; - -const union AnimCmd *const gAnims_ONIX[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ONIX_1, -}; - -const union AnimCmd *const gAnims_DROWZEE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DROWZEE_1, -}; - -const union AnimCmd *const gAnims_HYPNO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HYPNO_1, -}; - -const union AnimCmd *const gAnims_KRABBY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KRABBY_1, -}; - -const union AnimCmd *const gAnims_KINGLER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KINGLER_1, -}; - -const union AnimCmd *const gAnims_VOLTORB[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_VOLTORB_1, -}; - -const union AnimCmd *const gAnims_ELECTRODE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ELECTRODE_1, -}; - -const union AnimCmd *const gAnims_EXEGGCUTE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_EXEGGCUTE_1, -}; - -const union AnimCmd *const gAnims_EXEGGUTOR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_EXEGGUTOR_1, -}; - -const union AnimCmd *const gAnims_CUBONE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CUBONE_1, -}; - -const union AnimCmd *const gAnims_MAROWAK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MAROWAK_1, -}; - -const union AnimCmd *const gAnims_HITMONLEE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HITMONLEE_1, -}; - -const union AnimCmd *const gAnims_HITMONCHAN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HITMONCHAN_1, -}; - -const union AnimCmd *const gAnims_LICKITUNG[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LICKITUNG_1, -}; - -const union AnimCmd *const gAnims_KOFFING[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KOFFING_1, - gAnimCmd_KOFFING_2, -}; - -const union AnimCmd *const gAnims_WEEZING[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WEEZING_1, - gAnimCmd_WEEZING_2, -}; - -const union AnimCmd *const gAnims_RHYHORN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_RHYHORN_1, - gAnimCmd_RHYHORN_2, -}; - -const union AnimCmd *const gAnims_RHYDON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_RHYDON_1, - gAnimCmd_RHYDON_2, -}; - -const union AnimCmd *const gAnims_CHANSEY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CHANSEY_1, -}; - -const union AnimCmd *const gAnims_TANGELA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TANGELA_1, -}; - -const union AnimCmd *const gAnims_KANGASKHAN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KANGASKHAN_1, -}; - -const union AnimCmd *const gAnims_HORSEA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HORSEA_1, - gAnimCmd_HORSEA_2, -}; - -const union AnimCmd *const gAnims_SEADRA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SEADRA_1, - gAnimCmd_SEADRA_2, -}; - -const union AnimCmd *const gAnims_GOLDEEN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GOLDEEN_1, -}; - -const union AnimCmd *const gAnims_SEAKING[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SEAKING_1, -}; - -const union AnimCmd *const gAnims_STARYU[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_STARYU_1, - gAnimCmd_STARYU_2, -}; - -const union AnimCmd *const gAnims_STARMIE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_STARMIE_1, - gAnimCmd_STARMIE_2, -}; - -const union AnimCmd *const gAnims_MR_MIME[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MR_MIME_1, -}; - -const union AnimCmd *const gAnims_SCYTHER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SCYTHER_1, -}; - -const union AnimCmd *const gAnims_JYNX[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_JYNX_1, -}; - -const union AnimCmd *const gAnims_ELECTABUZZ[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ELECTABUZZ_1, -}; - -const union AnimCmd *const gAnims_MAGMAR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MAGMAR_1, -}; - -const union AnimCmd *const gAnims_PINSIR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PINSIR_1, - gAnimCmd_PINSIR_2, -}; - -const union AnimCmd *const gAnims_TAUROS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TAUROS_1, -}; - -const union AnimCmd *const gAnims_MAGIKARP[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MAGIKARP_1, -}; - -const union AnimCmd *const gAnims_GYARADOS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GYARADOS_1, -}; - -const union AnimCmd *const gAnims_LAPRAS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LAPRAS_1, -}; - -const union AnimCmd *const gAnims_DITTO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DITTO_1, -}; - -const union AnimCmd *const gAnims_EEVEE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_EEVEE_1, -}; - -const union AnimCmd *const gAnims_VAPOREON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_VAPOREON_1, -}; - -const union AnimCmd *const gAnims_JOLTEON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_JOLTEON_1, -}; - -const union AnimCmd *const gAnims_FLAREON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_FLAREON_1, -}; - -const union AnimCmd *const gAnims_PORYGON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PORYGON_1, -}; - -const union AnimCmd *const gAnims_OMANYTE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_OMANYTE_1, -}; - -const union AnimCmd *const gAnims_OMASTAR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_OMASTAR_1, -}; - -const union AnimCmd *const gAnims_KABUTO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KABUTO_1, -}; - -const union AnimCmd *const gAnims_KABUTOPS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KABUTOPS_1, -}; - -const union AnimCmd *const gAnims_AERODACTYL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_AERODACTYL_1, -}; - -const union AnimCmd *const gAnims_SNORLAX[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SNORLAX_1, -}; - -const union AnimCmd *const gAnims_ARTICUNO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ARTICUNO_1, -}; - -const union AnimCmd *const gAnims_ZAPDOS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ZAPDOS_1, -}; - -const union AnimCmd *const gAnims_MOLTRES[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MOLTRES_1, -}; - -const union AnimCmd *const gAnims_DRATINI[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DRATINI_1, -}; - -const union AnimCmd *const gAnims_DRAGONAIR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DRAGONAIR_1, -}; - -const union AnimCmd *const gAnims_DRAGONITE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DRAGONITE_1, -}; - -const union AnimCmd *const gAnims_MEWTWO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MEWTWO_1, -}; - -const union AnimCmd *const gAnims_MEW[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MEW_1, -}; - -const union AnimCmd *const gAnims_CHIKORITA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CHIKORITA_1, -}; - -const union AnimCmd *const gAnims_BAYLEEF[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BAYLEEF_1, -}; - -const union AnimCmd *const gAnims_MEGANIUM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MEGANIUM_1, -}; - -const union AnimCmd *const gAnims_CYNDAQUIL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CYNDAQUIL_1, -}; - -const union AnimCmd *const gAnims_QUILAVA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_QUILAVA_1, -}; - -const union AnimCmd *const gAnims_TYPHLOSION[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TYPHLOSION_1, -}; - -const union AnimCmd *const gAnims_TOTODILE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TOTODILE_1, -}; - -const union AnimCmd *const gAnims_CROCONAW[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CROCONAW_1, -}; - -const union AnimCmd *const gAnims_FERALIGATR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_FERALIGATR_1, -}; - -const union AnimCmd *const gAnims_SENTRET[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SENTRET_1, -}; - -const union AnimCmd *const gAnims_FURRET[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_FURRET_1, -}; - -const union AnimCmd *const gAnims_HOOTHOOT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HOOTHOOT_1, -}; - -const union AnimCmd *const gAnims_NOCTOWL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NOCTOWL_1, -}; - -const union AnimCmd *const gAnims_LEDYBA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LEDYBA_1, -}; - -const union AnimCmd *const gAnims_LEDIAN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LEDIAN_1, -}; - -const union AnimCmd *const gAnims_SPINARAK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SPINARAK_1, -}; - -const union AnimCmd *const gAnims_ARIADOS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ARIADOS_1, -}; - -const union AnimCmd *const gAnims_CROBAT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CROBAT_1, -}; - -const union AnimCmd *const gAnims_CHINCHOU[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CHINCHOU_1, - gAnimCmd_CHINCHOU_2, -}; - -const union AnimCmd *const gAnims_LANTURN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LANTURN_1, - gAnimCmd_LANTURN_2, -}; - -const union AnimCmd *const gAnims_PICHU[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PICHU_1, - gAnimCmd_PICHU_2, -}; - -const union AnimCmd *const gAnims_CLEFFA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CLEFFA_1, -}; - -const union AnimCmd *const gAnims_IGGLYBUFF[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_IGGLYBUFF_1, - gAnimCmd_IGGLYBUFF_2, -}; - -const union AnimCmd *const gAnims_TOGEPI[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TOGEPI_1, -}; - -const union AnimCmd *const gAnims_TOGETIC[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TOGETIC_1, -}; - -const union AnimCmd *const gAnims_NATU[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NATU_1, - gAnimCmd_NATU_2, -}; - -const union AnimCmd *const gAnims_XATU[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_XATU_1, - gAnimCmd_XATU_2, -}; - -const union AnimCmd *const gAnims_MAREEP[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MAREEP_1, -}; - -const union AnimCmd *const gAnims_FLAAFFY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_FLAAFFY_1, -}; - -const union AnimCmd *const gAnims_AMPHAROS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_AMPHAROS_1, -}; - -const union AnimCmd *const gAnims_BELLOSSOM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BELLOSSOM_1, -}; - -const union AnimCmd *const gAnims_MARILL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MARILL_1, -}; - -const union AnimCmd *const gAnims_AZUMARILL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_AZUMARILL_1, -}; - -const union AnimCmd *const gAnims_SUDOWOODO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SUDOWOODO_1, -}; - -const union AnimCmd *const gAnims_POLITOED[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_POLITOED_1, -}; - -const union AnimCmd *const gAnims_HOPPIP[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HOPPIP_1, -}; - -const union AnimCmd *const gAnims_SKIPLOOM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SKIPLOOM_1, -}; - -const union AnimCmd *const gAnims_JUMPLUFF[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_JUMPLUFF_1, -}; - -const union AnimCmd *const gAnims_AIPOM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_AIPOM_1, -}; - -const union AnimCmd *const gAnims_SUNKERN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SUNKERN_1, -}; - -const union AnimCmd *const gAnims_SUNFLORA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SUNFLORA_1, -}; - -const union AnimCmd *const gAnims_YANMA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_YANMA_1, -}; - -const union AnimCmd *const gAnims_WOOPER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WOOPER_1, -}; - -const union AnimCmd *const gAnims_QUAGSIRE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_QUAGSIRE_1, -}; - -const union AnimCmd *const gAnims_ESPEON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ESPEON_1, -}; - -const union AnimCmd *const gAnims_UMBREON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UMBREON_1, -}; - -const union AnimCmd *const gAnims_MURKROW[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MURKROW_1, -}; - -const union AnimCmd *const gAnims_SLOWKING[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SLOWKING_1, -}; - -const union AnimCmd *const gAnims_MISDREAVUS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MISDREAVUS_1, -}; - -const union AnimCmd *const gAnims_UNOWN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_1, -}; - -const union AnimCmd *const gAnims_WOBBUFFET[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WOBBUFFET_1, - gAnimCmd_WOBBUFFET_2, -}; - -const union AnimCmd *const gAnims_GIRAFARIG[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GIRAFARIG_1, - gAnimCmd_GIRAFARIG_2, -}; - -const union AnimCmd *const gAnims_PINECO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PINECO_1, -}; - -const union AnimCmd *const gAnims_FORRETRESS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_FORRETRESS_1, -}; - -const union AnimCmd *const gAnims_DUNSPARCE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DUNSPARCE_1, -}; - -const union AnimCmd *const gAnims_GLIGAR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GLIGAR_1, -}; - -const union AnimCmd *const gAnims_STEELIX[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_STEELIX_1, -}; - -const union AnimCmd *const gAnims_SNUBBULL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SNUBBULL_1, -}; - -const union AnimCmd *const gAnims_GRANBULL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GRANBULL_1, -}; - -const union AnimCmd *const gAnims_QWILFISH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_QWILFISH_1, -}; - -const union AnimCmd *const gAnims_SCIZOR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SCIZOR_1, -}; - -const union AnimCmd *const gAnims_SHUCKLE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SHUCKLE_1, -}; - -const union AnimCmd *const gAnims_HERACROSS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HERACROSS_1, - gAnimCmd_HERACROSS_2, -}; - -const union AnimCmd *const gAnims_SNEASEL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SNEASEL_1, -}; - -const union AnimCmd *const gAnims_TEDDIURSA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TEDDIURSA_1, -}; - -const union AnimCmd *const gAnims_URSARING[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_URSARING_1, -}; - -const union AnimCmd *const gAnims_SLUGMA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SLUGMA_1, - gAnimCmd_SLUGMA_2, -}; - -const union AnimCmd *const gAnims_MAGCARGO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MAGCARGO_1, - gAnimCmd_MAGCARGO_2, -}; - -const union AnimCmd *const gAnims_SWINUB[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SWINUB_1, -}; - -const union AnimCmd *const gAnims_PILOSWINE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PILOSWINE_1, -}; - -const union AnimCmd *const gAnims_CORSOLA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CORSOLA_1, - gAnimCmd_CORSOLA_2, -}; - -const union AnimCmd *const gAnims_REMORAID[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_REMORAID_1, -}; - -const union AnimCmd *const gAnims_OCTILLERY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_OCTILLERY_1, -}; - -const union AnimCmd *const gAnims_DELIBIRD[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DELIBIRD_1, -}; - -const union AnimCmd *const gAnims_MANTINE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MANTINE_1, -}; - -const union AnimCmd *const gAnims_SKARMORY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SKARMORY_1, - gAnimCmd_SKARMORY_2, -}; - -const union AnimCmd *const gAnims_HOUNDOUR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HOUNDOUR_1, -}; - -const union AnimCmd *const gAnims_HOUNDOOM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HOUNDOOM_1, -}; - -const union AnimCmd *const gAnims_KINGDRA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KINGDRA_1, - gAnimCmd_KINGDRA_2, -}; - -const union AnimCmd *const gAnims_PHANPY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PHANPY_1, - gAnimCmd_PHANPY_2, -}; - -const union AnimCmd *const gAnims_DONPHAN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DONPHAN_1, - gAnimCmd_DONPHAN_2, -}; - -const union AnimCmd *const gAnims_PORYGON2[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PORYGON2_1, -}; - -const union AnimCmd *const gAnims_STANTLER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_STANTLER_1, -}; - -const union AnimCmd *const gAnims_SMEARGLE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SMEARGLE_1, -}; - -const union AnimCmd *const gAnims_TYROGUE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TYROGUE_1, -}; - -const union AnimCmd *const gAnims_HITMONTOP[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HITMONTOP_1, -}; - -const union AnimCmd *const gAnims_SMOOCHUM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SMOOCHUM_1, -}; - -const union AnimCmd *const gAnims_ELEKID[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ELEKID_1, -}; - -const union AnimCmd *const gAnims_MAGBY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MAGBY_1, -}; - -const union AnimCmd *const gAnims_MILTANK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MILTANK_1, -}; - -const union AnimCmd *const gAnims_BLISSEY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BLISSEY_1, -}; - -const union AnimCmd *const gAnims_RAIKOU[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_RAIKOU_1, -}; - -const union AnimCmd *const gAnims_ENTEI[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ENTEI_1, -}; - -const union AnimCmd *const gAnims_SUICUNE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SUICUNE_1, -}; - -const union AnimCmd *const gAnims_LARVITAR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LARVITAR_1, -}; - -const union AnimCmd *const gAnims_PUPITAR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PUPITAR_1, -}; - -const union AnimCmd *const gAnims_TYRANITAR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TYRANITAR_1, -}; - -const union AnimCmd *const gAnims_LUGIA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LUGIA_1, -}; - -const union AnimCmd *const gAnims_HO_OH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HO_OH_1, -}; - -const union AnimCmd *const gAnims_CELEBI[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CELEBI_1, -}; - -const union AnimCmd *const gAnims_OLD_UNOWN_B[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_OLD_UNOWN_B_1, -}; - -const union AnimCmd *const gAnims_TREECKO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TREECKO_1, -}; - -const union AnimCmd *const gAnims_GROVYLE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GROVYLE_1, -}; - -const union AnimCmd *const gAnims_SCEPTILE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SCEPTILE_1, -}; - -const union AnimCmd *const gAnims_TORCHIC[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TORCHIC_1, -}; - -const union AnimCmd *const gAnims_COMBUSKEN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_COMBUSKEN_1, -}; - -const union AnimCmd *const gAnims_BLAZIKEN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BLAZIKEN_1, - gAnimCmd_BLAZIKEN_2, - gAnimCmd_BLAZIKEN_3, - gAnimCmd_BLAZIKEN_4, -}; - -const union AnimCmd *const gAnims_MUDKIP[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MUDKIP_1, -}; - -const union AnimCmd *const gAnims_MARSHTOMP[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MARSHTOMP_1, -}; - -const union AnimCmd *const gAnims_SWAMPERT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SWAMPERT_1, -}; - -const union AnimCmd *const gAnims_POOCHYENA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_POOCHYENA_1, -}; - -const union AnimCmd *const gAnims_MIGHTYENA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MIGHTYENA_1, -}; - -const union AnimCmd *const gAnims_ZIGZAGOON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ZIGZAGOON_1, -}; - -const union AnimCmd *const gAnims_LINOONE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LINOONE_1, -}; - -const union AnimCmd *const gAnims_WURMPLE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WURMPLE_1, -}; - -const union AnimCmd *const gAnims_SILCOON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SILCOON_1, - gAnimCmd_SILCOON_2, -}; - -const union AnimCmd *const gAnims_BEAUTIFLY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BEAUTIFLY_1, - gAnimCmd_BEAUTIFLY_2, -}; - -const union AnimCmd *const gAnims_CASCOON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CASCOON_1, - gAnimCmd_CASCOON_2, -}; - -const union AnimCmd *const gAnims_DUSTOX[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DUSTOX_1, - gAnimCmd_DUSTOX_2, -}; - -const union AnimCmd *const gAnims_LOTAD[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LOTAD_1, -}; - -const union AnimCmd *const gAnims_LOMBRE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LOMBRE_1, -}; - -const union AnimCmd *const gAnims_LUDICOLO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LUDICOLO_1, -}; - -const union AnimCmd *const gAnims_SEEDOT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SEEDOT_1, -}; - -const union AnimCmd *const gAnims_NUZLEAF[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NUZLEAF_1, -}; - -const union AnimCmd *const gAnims_SHIFTRY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SHIFTRY_1, -}; - -const union AnimCmd *const gAnims_NINCADA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NINCADA_1, -}; - -const union AnimCmd *const gAnims_NINJASK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NINJASK_1, -}; - -const union AnimCmd *const gAnims_SHEDINJA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SHEDINJA_1, -}; - -const union AnimCmd *const gAnims_TAILLOW[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TAILLOW_1, -}; - -const union AnimCmd *const gAnims_SWELLOW[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SWELLOW_1, -}; - -const union AnimCmd *const gAnims_SHROOMISH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SHROOMISH_1, -}; - -const union AnimCmd *const gAnims_BRELOOM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BRELOOM_1, -}; - -const union AnimCmd *const gAnims_SPINDA[] ={ - gAnimCmd_General_Frame0, -}; - -const union AnimCmd *const gAnims_WINGULL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WINGULL_1, -}; - -const union AnimCmd *const gAnims_PELIPPER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PELIPPER_1, -}; - -const union AnimCmd *const gAnims_SURSKIT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SURSKIT_1, - gAnimCmd_SURSKIT_2, -}; - -const union AnimCmd *const gAnims_MASQUERAIN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MASQUERAIN_1, - gAnimCmd_MASQUERAIN_2, -}; - -const union AnimCmd *const gAnims_WAILMER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WAILMER_1, -}; - -const union AnimCmd *const gAnims_WAILORD[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WAILORD_1, -}; - -const union AnimCmd *const gAnims_SKITTY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SKITTY_1, -}; - -const union AnimCmd *const gAnims_DELCATTY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DELCATTY_1, -}; - -const union AnimCmd *const gAnims_KECLEON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KECLEON_1, -}; - -const union AnimCmd *const gAnims_BALTOY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BALTOY_1, -}; - -const union AnimCmd *const gAnims_CLAYDOL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CLAYDOL_1, -}; - -const union AnimCmd *const gAnims_NOSEPASS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NOSEPASS_1, -}; - -const union AnimCmd *const gAnims_TORKOAL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TORKOAL_1, -}; - -const union AnimCmd *const gAnims_SABLEYE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SABLEYE_1, -}; - -const union AnimCmd *const gAnims_BARBOACH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BARBOACH_1, -}; - -const union AnimCmd *const gAnims_WHISCASH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WHISCASH_1, -}; - -const union AnimCmd *const gAnims_LUVDISC[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LUVDISC_1, -}; - -const union AnimCmd *const gAnims_CORPHISH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CORPHISH_1, -}; - -const union AnimCmd *const gAnims_CRAWDAUNT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CRAWDAUNT_1, -}; - -const union AnimCmd *const gAnims_FEEBAS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_FEEBAS_1, -}; - -const union AnimCmd *const gAnims_MILOTIC[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MILOTIC_1, -}; - -const union AnimCmd *const gAnims_CARVANHA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CARVANHA_1, -}; - -const union AnimCmd *const gAnims_SHARPEDO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SHARPEDO_1, -}; - -const union AnimCmd *const gAnims_TRAPINCH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TRAPINCH_1, -}; - -const union AnimCmd *const gAnims_VIBRAVA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_VIBRAVA_1, -}; - -const union AnimCmd *const gAnims_FLYGON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_FLYGON_1, -}; - -const union AnimCmd *const gAnims_MAKUHITA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MAKUHITA_1, -}; - -const union AnimCmd *const gAnims_HARIYAMA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HARIYAMA_1, -}; - -const union AnimCmd *const gAnims_ELECTRIKE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ELECTRIKE_1, -}; - -const union AnimCmd *const gAnims_MANECTRIC[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MANECTRIC_1, -}; - -const union AnimCmd *const gAnims_NUMEL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_NUMEL_1, -}; - -const union AnimCmd *const gAnims_CAMERUPT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CAMERUPT_1, -}; - -const union AnimCmd *const gAnims_SPHEAL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SPHEAL_1, -}; - -const union AnimCmd *const gAnims_SEALEO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SEALEO_1, -}; - -const union AnimCmd *const gAnims_WALREIN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WALREIN_1, -}; - -const union AnimCmd *const gAnims_CACNEA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CACNEA_1, -}; - -const union AnimCmd *const gAnims_CACTURNE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CACTURNE_1, -}; - -const union AnimCmd *const gAnims_SNORUNT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SNORUNT_1, -}; - -const union AnimCmd *const gAnims_GLALIE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GLALIE_1, -}; - -const union AnimCmd *const gAnims_LUNATONE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LUNATONE_1, - gAnimCmd_LUNATONE_2, -}; - -const union AnimCmd *const gAnims_SOLROCK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SOLROCK_1, - gAnimCmd_SOLROCK_2, -}; - -const union AnimCmd *const gAnims_AZURILL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_AZURILL_1, -}; - -const union AnimCmd *const gAnims_SPOINK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SPOINK_1, -}; - -const union AnimCmd *const gAnims_GRUMPIG[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GRUMPIG_1, -}; - -const union AnimCmd *const gAnims_PLUSLE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_PLUSLE_1, -}; - -const union AnimCmd *const gAnims_MINUN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MINUN_1, -}; - -const union AnimCmd *const gAnims_MAWILE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MAWILE_1, -}; - -const union AnimCmd *const gAnims_MEDITITE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MEDITITE_1, -}; - -const union AnimCmd *const gAnims_MEDICHAM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_MEDICHAM_1, -}; - -const union AnimCmd *const gAnims_SWABLU[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SWABLU_1, - gAnimCmd_SWABLU_2, -}; - -const union AnimCmd *const gAnims_ALTARIA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ALTARIA_1, - gAnimCmd_ALTARIA_2, -}; - -const union AnimCmd *const gAnims_WYNAUT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WYNAUT_1, -}; - -const union AnimCmd *const gAnims_DUSKULL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DUSKULL_1, -}; - -const union AnimCmd *const gAnims_DUSCLOPS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DUSCLOPS_1, -}; - -const union AnimCmd *const gAnims_ROSELIA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ROSELIA_1, -}; - -const union AnimCmd *const gAnims_SLAKOTH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SLAKOTH_1, -}; - -const union AnimCmd *const gAnims_VIGOROTH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_VIGOROTH_1, -}; - -const union AnimCmd *const gAnims_SLAKING[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SLAKING_1, -}; - -const union AnimCmd *const gAnims_GULPIN[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GULPIN_1, -}; - -const union AnimCmd *const gAnims_SWALOT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SWALOT_1, -}; - -const union AnimCmd *const gAnims_TROPIUS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_TROPIUS_1, -}; - -const union AnimCmd *const gAnims_WHISMUR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_WHISMUR_1, -}; - -const union AnimCmd *const gAnims_LOUDRED[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LOUDRED_1, -}; - -const union AnimCmd *const gAnims_EXPLOUD[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_EXPLOUD_1, -}; - -const union AnimCmd *const gAnims_CLAMPERL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CLAMPERL_1, -}; - -const union AnimCmd *const gAnims_HUNTAIL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_HUNTAIL_1, -}; - -const union AnimCmd *const gAnims_GOREBYSS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GOREBYSS_1, -}; - -const union AnimCmd *const gAnims_ABSOL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ABSOL_1, -}; - -const union AnimCmd *const gAnims_SHUPPET[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SHUPPET_1, -}; - -const union AnimCmd *const gAnims_BANETTE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BANETTE_1, -}; - -const union AnimCmd *const gAnims_SEVIPER[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SEVIPER_1, -}; - -const union AnimCmd *const gAnims_ZANGOOSE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ZANGOOSE_1, -}; - -const union AnimCmd *const gAnims_RELICANTH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_RELICANTH_1, -}; - -const union AnimCmd *const gAnims_ARON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ARON_1, -}; - -const union AnimCmd *const gAnims_LAIRON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LAIRON_1, -}; - -const union AnimCmd *const gAnims_AGGRON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_AGGRON_1, -}; - -const union AnimCmd *const gAnims_CASTFORM[] ={ - gAnimCmd_CASTFORM_0, - gAnimCmd_CASTFORM_1, - gAnimCmd_CASTFORM_2, - gAnimCmd_CASTFORM_3, -}; - -const union AnimCmd *const gAnims_VOLBEAT[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_VOLBEAT_1, -}; - -const union AnimCmd *const gAnims_ILLUMISE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ILLUMISE_1, -}; - -const union AnimCmd *const gAnims_LILEEP[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LILEEP_1, -}; - -const union AnimCmd *const gAnims_CRADILY[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CRADILY_1, -}; - -const union AnimCmd *const gAnims_ANORITH[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ANORITH_1, -}; - -const union AnimCmd *const gAnims_ARMALDO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_ARMALDO_1, -}; - -const union AnimCmd *const gAnims_RALTS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_RALTS_1, -}; - -const union AnimCmd *const gAnims_KIRLIA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KIRLIA_1, -}; - -const union AnimCmd *const gAnims_GARDEVOIR[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GARDEVOIR_1, -}; - -const union AnimCmd *const gAnims_BAGON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BAGON_1, -}; - -const union AnimCmd *const gAnims_SHELGON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SHELGON_1, -}; - -const union AnimCmd *const gAnims_SALAMENCE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_SALAMENCE_1, -}; - -const union AnimCmd *const gAnims_BELDUM[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_BELDUM_1, -}; - -const union AnimCmd *const gAnims_METANG[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_METANG_1, -}; - -const union AnimCmd *const gAnims_METAGROSS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_METAGROSS_1, -}; - -const union AnimCmd *const gAnims_REGIROCK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_REGIROCK_1, - gAnimCmd_REGIROCK_2, -}; - -const union AnimCmd *const gAnims_REGICE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_REGICE_1, -}; - -const union AnimCmd *const gAnims_REGISTEEL[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_REGISTEEL_1, - gAnimCmd_REGISTEEL_2, -}; - -const union AnimCmd *const gAnims_KYOGRE[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_KYOGRE_1, - gAnimCmd_KYOGRE_2, -}; - -const union AnimCmd *const gAnims_GROUDON[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_GROUDON_1, - gAnimCmd_GROUDON_2, -}; - -const union AnimCmd *const gAnims_RAYQUAZA[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_RAYQUAZA_1, - gAnimCmd_RAYQUAZA_2, -}; - -const union AnimCmd *const gAnims_LATIAS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LATIAS_1, - gAnimCmd_LATIAS_2, -}; - -const union AnimCmd *const gAnims_LATIOS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_LATIOS_1, - gAnimCmd_LATIOS_2, -}; - -const union AnimCmd *const gAnims_JIRACHI[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_JIRACHI_1, - gAnimCmd_JIRACHI_2, -}; - -const union AnimCmd *const gAnims_DEOXYS[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_DEOXYS_1, - gAnimCmd_DEOXYS_2, -}; - -const union AnimCmd *const gAnims_CHIMECHO[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_CHIMECHO_1, -}; - -const union AnimCmd *const gAnims_EGG[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_EGG_1, -}; - -const union AnimCmd *const gAnims_UNOWN_B[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_B_1, -}; - -const union AnimCmd *const gAnims_UNOWN_C[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_C_1, -}; - -const union AnimCmd *const gAnims_UNOWN_D[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_D_1, -}; - -const union AnimCmd *const gAnims_UNOWN_E[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_E_1, -}; - -const union AnimCmd *const gAnims_UNOWN_F[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_F_1, -}; - -const union AnimCmd *const gAnims_UNOWN_G[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_G_1, -}; - -const union AnimCmd *const gAnims_UNOWN_H[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_H_1, -}; - -const union AnimCmd *const gAnims_UNOWN_I[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_I_1, -}; - -const union AnimCmd *const gAnims_UNOWN_J[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_J_1, -}; - -const union AnimCmd *const gAnims_UNOWN_K[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_K_1, -}; - -const union AnimCmd *const gAnims_UNOWN_L[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_L_1, -}; - -const union AnimCmd *const gAnims_UNOWN_M[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_M_1, -}; - -const union AnimCmd *const gAnims_UNOWN_N[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_N_1, -}; - -const union AnimCmd *const gAnims_UNOWN_O[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_O_1, -}; - -const union AnimCmd *const gAnims_UNOWN_P[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_P_1, -}; - -const union AnimCmd *const gAnims_UNOWN_Q[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_Q_1, -}; - -const union AnimCmd *const gAnims_UNOWN_R[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_R_1, -}; - -const union AnimCmd *const gAnims_UNOWN_S[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_S_1, -}; - -const union AnimCmd *const gAnims_UNOWN_T[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_T_1, -}; - -const union AnimCmd *const gAnims_UNOWN_U[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_U_1, -}; - -const union AnimCmd *const gAnims_UNOWN_V[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_V_1, -}; - -const union AnimCmd *const gAnims_UNOWN_W[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_W_1, -}; - -const union AnimCmd *const gAnims_UNOWN_X[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_X_1, -}; - -const union AnimCmd *const gAnims_UNOWN_Y[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_Y_1, -}; - -const union AnimCmd *const gAnims_UNOWN_Z[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_Z_1, -}; - -const union AnimCmd *const gAnims_UNOWN_EMARK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_EMARK_1, -}; - -const union AnimCmd *const gAnims_UNOWN_QMARK[] ={ - gAnimCmd_General_Frame0, - gAnimCmd_UNOWN_QMARK_1, -}; - -#define ANIM_CMD(name) [SPECIES_##name] = gAnims_##name -#define ANIM_CMD_FULL(name, anims) [SPECIES_##name] = anims - -const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[] = -{ - ANIM_CMD(NONE), - ANIM_CMD(BULBASAUR), - ANIM_CMD(IVYSAUR), - ANIM_CMD(VENUSAUR), - ANIM_CMD(CHARMANDER), - ANIM_CMD(CHARMELEON), - ANIM_CMD(CHARIZARD), - ANIM_CMD(SQUIRTLE), - ANIM_CMD(WARTORTLE), - ANIM_CMD(BLASTOISE), - ANIM_CMD(CATERPIE), - ANIM_CMD(METAPOD), - ANIM_CMD(BUTTERFREE), - ANIM_CMD(WEEDLE), - ANIM_CMD(KAKUNA), - ANIM_CMD(BEEDRILL), - ANIM_CMD(PIDGEY), - ANIM_CMD(PIDGEOTTO), - ANIM_CMD(PIDGEOT), - ANIM_CMD(RATTATA), - ANIM_CMD(RATICATE), - ANIM_CMD(SPEAROW), - ANIM_CMD(FEAROW), - ANIM_CMD(EKANS), - ANIM_CMD(ARBOK), - ANIM_CMD(PIKACHU), - ANIM_CMD(RAICHU), - ANIM_CMD(SANDSHREW), - ANIM_CMD(SANDSLASH), - ANIM_CMD(NIDORAN_F), - ANIM_CMD(NIDORINA), - ANIM_CMD(NIDOQUEEN), - ANIM_CMD(NIDORAN_M), - ANIM_CMD(NIDORINO), - ANIM_CMD(NIDOKING), - ANIM_CMD(CLEFAIRY), - ANIM_CMD(CLEFABLE), - ANIM_CMD(VULPIX), - ANIM_CMD(NINETALES), - ANIM_CMD(JIGGLYPUFF), - ANIM_CMD(WIGGLYTUFF), - ANIM_CMD(ZUBAT), - ANIM_CMD(GOLBAT), - ANIM_CMD(ODDISH), - ANIM_CMD(GLOOM), - ANIM_CMD(VILEPLUME), - ANIM_CMD(PARAS), - ANIM_CMD(PARASECT), - ANIM_CMD(VENONAT), - ANIM_CMD(VENOMOTH), - ANIM_CMD(DIGLETT), - ANIM_CMD(DUGTRIO), - ANIM_CMD(MEOWTH), - ANIM_CMD(PERSIAN), - ANIM_CMD(PSYDUCK), - ANIM_CMD(GOLDUCK), - ANIM_CMD(MANKEY), - ANIM_CMD(PRIMEAPE), - ANIM_CMD(GROWLITHE), - ANIM_CMD(ARCANINE), - ANIM_CMD(POLIWAG), - ANIM_CMD(POLIWHIRL), - ANIM_CMD(POLIWRATH), - ANIM_CMD(ABRA), - ANIM_CMD(KADABRA), - ANIM_CMD(ALAKAZAM), - ANIM_CMD(MACHOP), - ANIM_CMD(MACHOKE), - ANIM_CMD(MACHAMP), - ANIM_CMD(BELLSPROUT), - ANIM_CMD(WEEPINBELL), - ANIM_CMD(VICTREEBEL), - ANIM_CMD(TENTACOOL), - ANIM_CMD(TENTACRUEL), - ANIM_CMD(GEODUDE), - ANIM_CMD(GRAVELER), - ANIM_CMD(GOLEM), - ANIM_CMD(PONYTA), - ANIM_CMD(RAPIDASH), - ANIM_CMD(SLOWPOKE), - ANIM_CMD(SLOWBRO), - ANIM_CMD(MAGNEMITE), - ANIM_CMD(MAGNETON), - ANIM_CMD(FARFETCHD), - ANIM_CMD(DODUO), - ANIM_CMD(DODRIO), - ANIM_CMD(SEEL), - ANIM_CMD(DEWGONG), - ANIM_CMD(GRIMER), - ANIM_CMD(MUK), - ANIM_CMD(SHELLDER), - ANIM_CMD(CLOYSTER), - ANIM_CMD(GASTLY), - ANIM_CMD(HAUNTER), - ANIM_CMD(GENGAR), - ANIM_CMD(ONIX), - ANIM_CMD(DROWZEE), - ANIM_CMD(HYPNO), - ANIM_CMD(KRABBY), - ANIM_CMD(KINGLER), - ANIM_CMD(VOLTORB), - ANIM_CMD(ELECTRODE), - ANIM_CMD(EXEGGCUTE), - ANIM_CMD(EXEGGUTOR), - ANIM_CMD(CUBONE), - ANIM_CMD(MAROWAK), - ANIM_CMD(HITMONLEE), - ANIM_CMD(HITMONCHAN), - ANIM_CMD(LICKITUNG), - ANIM_CMD(KOFFING), - ANIM_CMD(WEEZING), - ANIM_CMD(RHYHORN), - ANIM_CMD(RHYDON), - ANIM_CMD(CHANSEY), - ANIM_CMD(TANGELA), - ANIM_CMD(KANGASKHAN), - ANIM_CMD(HORSEA), - ANIM_CMD(SEADRA), - ANIM_CMD(GOLDEEN), - ANIM_CMD(SEAKING), - ANIM_CMD(STARYU), - ANIM_CMD(STARMIE), - ANIM_CMD(MR_MIME), - ANIM_CMD(SCYTHER), - ANIM_CMD(JYNX), - ANIM_CMD(ELECTABUZZ), - ANIM_CMD(MAGMAR), - ANIM_CMD(PINSIR), - ANIM_CMD(TAUROS), - ANIM_CMD(MAGIKARP), - ANIM_CMD(GYARADOS), - ANIM_CMD(LAPRAS), - ANIM_CMD(DITTO), - ANIM_CMD(EEVEE), - ANIM_CMD(VAPOREON), - ANIM_CMD(JOLTEON), - ANIM_CMD(FLAREON), - ANIM_CMD(PORYGON), - ANIM_CMD(OMANYTE), - ANIM_CMD(OMASTAR), - ANIM_CMD(KABUTO), - ANIM_CMD(KABUTOPS), - ANIM_CMD(AERODACTYL), - ANIM_CMD(SNORLAX), - ANIM_CMD(ARTICUNO), - ANIM_CMD(ZAPDOS), - ANIM_CMD(MOLTRES), - ANIM_CMD(DRATINI), - ANIM_CMD(DRAGONAIR), - ANIM_CMD(DRAGONITE), - ANIM_CMD(MEWTWO), - ANIM_CMD(MEW), - ANIM_CMD(CHIKORITA), - ANIM_CMD(BAYLEEF), - ANIM_CMD(MEGANIUM), - ANIM_CMD(CYNDAQUIL), - ANIM_CMD(QUILAVA), - ANIM_CMD(TYPHLOSION), - ANIM_CMD(TOTODILE), - ANIM_CMD(CROCONAW), - ANIM_CMD(FERALIGATR), - ANIM_CMD(SENTRET), - ANIM_CMD(FURRET), - ANIM_CMD(HOOTHOOT), - ANIM_CMD(NOCTOWL), - ANIM_CMD(LEDYBA), - ANIM_CMD(LEDIAN), - ANIM_CMD(SPINARAK), - ANIM_CMD(ARIADOS), - ANIM_CMD(CROBAT), - ANIM_CMD(CHINCHOU), - ANIM_CMD(LANTURN), - ANIM_CMD(PICHU), - ANIM_CMD(CLEFFA), - ANIM_CMD(IGGLYBUFF), - ANIM_CMD(TOGEPI), - ANIM_CMD(TOGETIC), - ANIM_CMD(NATU), - ANIM_CMD(XATU), - ANIM_CMD(MAREEP), - ANIM_CMD(FLAAFFY), - ANIM_CMD(AMPHAROS), - ANIM_CMD(BELLOSSOM), - ANIM_CMD(MARILL), - ANIM_CMD(AZUMARILL), - ANIM_CMD(SUDOWOODO), - ANIM_CMD(POLITOED), - ANIM_CMD(HOPPIP), - ANIM_CMD(SKIPLOOM), - ANIM_CMD(JUMPLUFF), - ANIM_CMD(AIPOM), - ANIM_CMD(SUNKERN), - ANIM_CMD(SUNFLORA), - ANIM_CMD(YANMA), - ANIM_CMD(WOOPER), - ANIM_CMD(QUAGSIRE), - ANIM_CMD(ESPEON), - ANIM_CMD(UMBREON), - ANIM_CMD(MURKROW), - ANIM_CMD(SLOWKING), - ANIM_CMD(MISDREAVUS), - ANIM_CMD(UNOWN), - ANIM_CMD(WOBBUFFET), - ANIM_CMD(GIRAFARIG), - ANIM_CMD(PINECO), - ANIM_CMD(FORRETRESS), - ANIM_CMD(DUNSPARCE), - ANIM_CMD(GLIGAR), - ANIM_CMD(STEELIX), - ANIM_CMD(SNUBBULL), - ANIM_CMD(GRANBULL), - ANIM_CMD(QWILFISH), - ANIM_CMD(SCIZOR), - ANIM_CMD(SHUCKLE), - ANIM_CMD(HERACROSS), - ANIM_CMD(SNEASEL), - ANIM_CMD(TEDDIURSA), - ANIM_CMD(URSARING), - ANIM_CMD(SLUGMA), - ANIM_CMD(MAGCARGO), - ANIM_CMD(SWINUB), - ANIM_CMD(PILOSWINE), - ANIM_CMD(CORSOLA), - ANIM_CMD(REMORAID), - ANIM_CMD(OCTILLERY), - ANIM_CMD(DELIBIRD), - ANIM_CMD(MANTINE), - ANIM_CMD(SKARMORY), - ANIM_CMD(HOUNDOUR), - ANIM_CMD(HOUNDOOM), - ANIM_CMD(KINGDRA), - ANIM_CMD(PHANPY), - ANIM_CMD(DONPHAN), - ANIM_CMD(PORYGON2), - ANIM_CMD(STANTLER), - ANIM_CMD(SMEARGLE), - ANIM_CMD(TYROGUE), - ANIM_CMD(HITMONTOP), - ANIM_CMD(SMOOCHUM), - ANIM_CMD(ELEKID), - ANIM_CMD(MAGBY), - ANIM_CMD(MILTANK), - ANIM_CMD(BLISSEY), - ANIM_CMD(RAIKOU), - ANIM_CMD(ENTEI), - ANIM_CMD(SUICUNE), - ANIM_CMD(LARVITAR), - ANIM_CMD(PUPITAR), - ANIM_CMD(TYRANITAR), - ANIM_CMD(LUGIA), - ANIM_CMD(HO_OH), - ANIM_CMD(CELEBI), - ANIM_CMD(OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_C, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_D, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_E, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_F, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_G, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_H, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_I, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_J, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_K, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_L, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_M, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_N, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_O, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_P, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_Q, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_R, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_S, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_T, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_U, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_V, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_W, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_X, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_Y, gAnims_OLD_UNOWN_B), - ANIM_CMD_FULL(OLD_UNOWN_Z, gAnims_OLD_UNOWN_B), - ANIM_CMD(TREECKO), - ANIM_CMD(GROVYLE), - ANIM_CMD(SCEPTILE), - ANIM_CMD(TORCHIC), - ANIM_CMD(COMBUSKEN), - ANIM_CMD(BLAZIKEN), - ANIM_CMD(MUDKIP), - ANIM_CMD(MARSHTOMP), - ANIM_CMD(SWAMPERT), - ANIM_CMD(POOCHYENA), - ANIM_CMD(MIGHTYENA), - ANIM_CMD(ZIGZAGOON), - ANIM_CMD(LINOONE), - ANIM_CMD(WURMPLE), - ANIM_CMD(SILCOON), - ANIM_CMD(BEAUTIFLY), - ANIM_CMD(CASCOON), - ANIM_CMD(DUSTOX), - ANIM_CMD(LOTAD), - ANIM_CMD(LOMBRE), - ANIM_CMD(LUDICOLO), - ANIM_CMD(SEEDOT), - ANIM_CMD(NUZLEAF), - ANIM_CMD(SHIFTRY), - ANIM_CMD(NINCADA), - ANIM_CMD(NINJASK), - ANIM_CMD(SHEDINJA), - ANIM_CMD(TAILLOW), - ANIM_CMD(SWELLOW), - ANIM_CMD(SHROOMISH), - ANIM_CMD(BRELOOM), - ANIM_CMD(SPINDA), - ANIM_CMD(WINGULL), - ANIM_CMD(PELIPPER), - ANIM_CMD(SURSKIT), - ANIM_CMD(MASQUERAIN), - ANIM_CMD(WAILMER), - ANIM_CMD(WAILORD), - ANIM_CMD(SKITTY), - ANIM_CMD(DELCATTY), - ANIM_CMD(KECLEON), - ANIM_CMD(BALTOY), - ANIM_CMD(CLAYDOL), - ANIM_CMD(NOSEPASS), - ANIM_CMD(TORKOAL), - ANIM_CMD(SABLEYE), - ANIM_CMD(BARBOACH), - ANIM_CMD(WHISCASH), - ANIM_CMD(LUVDISC), - ANIM_CMD(CORPHISH), - ANIM_CMD(CRAWDAUNT), - ANIM_CMD(FEEBAS), - ANIM_CMD(MILOTIC), - ANIM_CMD(CARVANHA), - ANIM_CMD(SHARPEDO), - ANIM_CMD(TRAPINCH), - ANIM_CMD(VIBRAVA), - ANIM_CMD(FLYGON), - ANIM_CMD(MAKUHITA), - ANIM_CMD(HARIYAMA), - ANIM_CMD(ELECTRIKE), - ANIM_CMD(MANECTRIC), - ANIM_CMD(NUMEL), - ANIM_CMD(CAMERUPT), - ANIM_CMD(SPHEAL), - ANIM_CMD(SEALEO), - ANIM_CMD(WALREIN), - ANIM_CMD(CACNEA), - ANIM_CMD(CACTURNE), - ANIM_CMD(SNORUNT), - ANIM_CMD(GLALIE), - ANIM_CMD(LUNATONE), - ANIM_CMD(SOLROCK), - ANIM_CMD(AZURILL), - ANIM_CMD(SPOINK), - ANIM_CMD(GRUMPIG), - ANIM_CMD(PLUSLE), - ANIM_CMD(MINUN), - ANIM_CMD(MAWILE), - ANIM_CMD(MEDITITE), - ANIM_CMD(MEDICHAM), - ANIM_CMD(SWABLU), - ANIM_CMD(ALTARIA), - ANIM_CMD(WYNAUT), - ANIM_CMD(DUSKULL), - ANIM_CMD(DUSCLOPS), - ANIM_CMD(ROSELIA), - ANIM_CMD(SLAKOTH), - ANIM_CMD(VIGOROTH), - ANIM_CMD(SLAKING), - ANIM_CMD(GULPIN), - ANIM_CMD(SWALOT), - ANIM_CMD(TROPIUS), - ANIM_CMD(WHISMUR), - ANIM_CMD(LOUDRED), - ANIM_CMD(EXPLOUD), - ANIM_CMD(CLAMPERL), - ANIM_CMD(HUNTAIL), - ANIM_CMD(GOREBYSS), - ANIM_CMD(ABSOL), - ANIM_CMD(SHUPPET), - ANIM_CMD(BANETTE), - ANIM_CMD(SEVIPER), - ANIM_CMD(ZANGOOSE), - ANIM_CMD(RELICANTH), - ANIM_CMD(ARON), - ANIM_CMD(LAIRON), - ANIM_CMD(AGGRON), - ANIM_CMD(CASTFORM), - ANIM_CMD(VOLBEAT), - ANIM_CMD(ILLUMISE), - ANIM_CMD(LILEEP), - ANIM_CMD(CRADILY), - ANIM_CMD(ANORITH), - ANIM_CMD(ARMALDO), - ANIM_CMD(RALTS), - ANIM_CMD(KIRLIA), - ANIM_CMD(GARDEVOIR), - ANIM_CMD(BAGON), - ANIM_CMD(SHELGON), - ANIM_CMD(SALAMENCE), - ANIM_CMD(BELDUM), - ANIM_CMD(METANG), - ANIM_CMD(METAGROSS), - ANIM_CMD(REGIROCK), - ANIM_CMD(REGICE), - ANIM_CMD(REGISTEEL), - ANIM_CMD(KYOGRE), - ANIM_CMD(GROUDON), - ANIM_CMD(RAYQUAZA), - ANIM_CMD(LATIAS), - ANIM_CMD(LATIOS), - ANIM_CMD(JIRACHI), - ANIM_CMD(DEOXYS), - ANIM_CMD(CHIMECHO), - ANIM_CMD(EGG), - ANIM_CMD(UNOWN_B), - ANIM_CMD(UNOWN_C), - ANIM_CMD(UNOWN_D), - ANIM_CMD(UNOWN_E), - ANIM_CMD(UNOWN_F), - ANIM_CMD(UNOWN_G), - ANIM_CMD(UNOWN_H), - ANIM_CMD(UNOWN_I), - ANIM_CMD(UNOWN_J), - ANIM_CMD(UNOWN_K), - ANIM_CMD(UNOWN_L), - ANIM_CMD(UNOWN_M), - ANIM_CMD(UNOWN_N), - ANIM_CMD(UNOWN_O), - ANIM_CMD(UNOWN_P), - ANIM_CMD(UNOWN_Q), - ANIM_CMD(UNOWN_R), - ANIM_CMD(UNOWN_S), - ANIM_CMD(UNOWN_T), - ANIM_CMD(UNOWN_U), - ANIM_CMD(UNOWN_V), - ANIM_CMD(UNOWN_W), - ANIM_CMD(UNOWN_X), - ANIM_CMD(UNOWN_Y), - ANIM_CMD(UNOWN_Z), - ANIM_CMD(UNOWN_EMARK), - ANIM_CMD(UNOWN_QMARK), -}; diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h new file mode 100644 index 000000000..8be6ed495 --- /dev/null +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -0,0 +1,7393 @@ +static const union AnimCmd sAnim_NONE_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BULBASAUR_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_IVYSAUR_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 36), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VENUSAUR_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CHARMANDER_1[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 46), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CHARMELEON_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CHARIZARD_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SQUIRTLE_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WARTORTLE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BLASTOISE_1[] = +{ + ANIMCMD_FRAME(0, 50), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CATERPIE_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_METAPOD_1[] = +{ + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BUTTERFREE_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WEEDLE_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KAKUNA_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BEEDRILL_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 28), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PIDGEY_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PIDGEOTTO_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PIDGEOT_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + + +static const union AnimCmd sAnim_RATTATA_1[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 28), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RATICATE_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SPEAROW_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_FEAROW_1[] = +{ + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_EKANS_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ARBOK_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PIKACHU_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PIKACHU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RAICHU_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RAICHU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SANDSHREW_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SANDSHREW_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SANDSLASH_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SANDSLASH_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NIDORAN_F_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 50), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NIDORINA_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NIDOQUEEN_1[] = +{ + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NIDORAN_M_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NIDORINO_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NIDOKING_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CLEFAIRY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CLEFABLE_1[] = +{ + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 24), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VULPIX_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VULPIX_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NINETALES_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NINETALES_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_JIGGLYPUFF_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_JIGGLYPUFF_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WIGGLYTUFF_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WIGGLYTUFF_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ZUBAT_1[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GOLBAT_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ODDISH_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GLOOM_1[] = +{ + ANIMCMD_FRAME(0, 21), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VILEPLUME_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 21), + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 21), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PARAS_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PARASECT_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VENONAT_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 35), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VENOMOTH_1[] = +{ + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DIGLETT_1[] = +{ + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DUGTRIO_1[] = +{ + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MEOWTH_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 17), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PERSIAN_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PSYDUCK_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PSYDUCK_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GOLDUCK_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GOLDUCK_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MANKEY_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 28), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PRIMEAPE_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GROWLITHE_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ARCANINE_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END,}; + +static const union AnimCmd sAnim_POLIWAG_1[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_POLIWHIRL_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_POLIWRATH_1[] = +{ + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ABRA_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 21), + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 21), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KADABRA_1[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ALAKAZAM_1[] = +{ + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 54), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MACHOP_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MACHOKE_1[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MACHAMP_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BELLSPROUT_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WEEPINBELL_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VICTREEBEL_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TENTACOOL_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TENTACRUEL_1[] = +{ + ANIMCMD_FRAME(0, 19), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 19), + ANIMCMD_FRAME(1, 19), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GEODUDE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 36), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GRAVELER_1[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GOLEM_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 31), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PONYTA_1[] = +{ + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RAPIDASH_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SLOWPOKE_1[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SLOWBRO_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MAGNEMITE_1[] = +{ + ANIMCMD_FRAME(0, 28), + ANIMCMD_FRAME(1, 28), + ANIMCMD_FRAME(0, 28), + ANIMCMD_FRAME(1, 28), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MAGNETON_1[] = +{ + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_FARFETCHD_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DODUO_1[] = +{ + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DODRIO_1[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SEEL_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DEWGONG_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GRIMER_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GRIMER_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MUK_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MUK_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SHELLDER_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CLOYSTER_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GASTLY_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HAUNTER_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GENGAR_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ONIX_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DROWZEE_1[] = +{ + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HYPNO_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KRABBY_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KINGLER_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VOLTORB_1[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ELECTRODE_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_EXEGGCUTE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_EXEGGUTOR_1[] = +{ + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END,}; + + +static const union AnimCmd sAnim_CUBONE_1[] = +{ + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MAROWAK_1[] = +{ + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HITMONLEE_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HITMONCHAN_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LICKITUNG_1[] = +{ + ANIMCMD_FRAME(0, 28), + ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KOFFING_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KOFFING_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WEEZING_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WEEZING_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RHYHORN_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RHYHORN_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RHYDON_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 48), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RHYDON_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CHANSEY_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TANGELA_1[] = +{ + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KANGASKHAN_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HORSEA_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HORSEA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SEADRA_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SEADRA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GOLDEEN_1[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SEAKING_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_STARYU_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_STARYU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_STARMIE_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_STARMIE_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MR_MIME_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SCYTHER_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_JYNX_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ELECTABUZZ_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MAGMAR_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PINSIR_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PINSIR_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TAUROS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MAGIKARP_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GYARADOS_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LAPRAS_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DITTO_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_EEVEE_1[] = +{ + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VAPOREON_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_JOLTEON_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_FLAREON_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PORYGON_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_OMANYTE_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_OMASTAR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KABUTO_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KABUTOPS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_AERODACTYL_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 25), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SNORLAX_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ARTICUNO_1[] = +{ + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ZAPDOS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MOLTRES_1[] = +{ + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DRATINI_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DRAGONAIR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DRAGONITE_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MEWTWO_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MEW_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CHIKORITA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END,}; + + +static const union AnimCmd sAnim_BAYLEEF_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MEGANIUM_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CYNDAQUIL_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_QUILAVA_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TYPHLOSION_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TOTODILE_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CROCONAW_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_FERALIGATR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 40), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SENTRET_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_FURRET_1[] = +{ + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HOOTHOOT_1[] = +{ + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NOCTOWL_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LEDYBA_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LEDIAN_1[] = +{ + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SPINARAK_1[] = +{ + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ARIADOS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CROBAT_1[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CHINCHOU_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CHINCHOU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LANTURN_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LANTURN_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PICHU_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PICHU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CLEFFA_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_IGGLYBUFF_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_IGGLYBUFF_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TOGEPI_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TOGETIC_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NATU_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NATU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_XATU_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_XATU_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MAREEP_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_FLAAFFY_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_AMPHAROS_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BELLOSSOM_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MARILL_1[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_AZUMARILL_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SUDOWOODO_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_POLITOED_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HOPPIP_1[] = +{ + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 25), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SKIPLOOM_1[] = +{ + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_JUMPLUFF_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_AIPOM_1[] = +{ + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SUNKERN_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SUNFLORA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_YANMA_1[] = +{ + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WOOPER_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_QUAGSIRE_1[] = +{ + ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ESPEON_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UMBREON_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MURKROW_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SLOWKING_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MISDREAVUS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WOBBUFFET_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WOBBUFFET_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GIRAFARIG_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GIRAFARIG_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PINECO_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_FORRETRESS_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DUNSPARCE_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GLIGAR_1[] = +{ + ANIMCMD_FRAME(1, 17), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_STEELIX_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SNUBBULL_1[] = +{ + ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GRANBULL_1[] = +{ + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_QWILFISH_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SCIZOR_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SHUCKLE_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HERACROSS_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HERACROSS_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SNEASEL_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TEDDIURSA_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_URSARING_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SLUGMA_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SLUGMA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MAGCARGO_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MAGCARGO_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SWINUB_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PILOSWINE_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CORSOLA_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CORSOLA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_REMORAID_1[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_OCTILLERY_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DELIBIRD_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MANTINE_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 40), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SKARMORY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SKARMORY_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HOUNDOUR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HOUNDOOM_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KINGDRA_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KINGDRA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PHANPY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PHANPY_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DONPHAN_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DONPHAN_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PORYGON2_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_STANTLER_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SMEARGLE_1[] = +{ + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TYROGUE_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HITMONTOP_1[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SMOOCHUM_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ELEKID_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MAGBY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MILTANK_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BLISSEY_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RAIKOU_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ENTEI_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SUICUNE_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LARVITAR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PUPITAR_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TYRANITAR_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LUGIA_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HO_OH_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CELEBI_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_OLD_UNOWN_B_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TREECKO_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END,}; + +static const union AnimCmd sAnim_GROVYLE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SCEPTILE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 26), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TORCHIC_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_COMBUSKEN_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 12), + ANIMCMD_END,}; + +static const union AnimCmd sAnim_BLAZIKEN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BLAZIKEN_2[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BLAZIKEN_3[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(2, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BLAZIKEN_4[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MUDKIP_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 13), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MARSHTOMP_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SWAMPERT_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_POOCHYENA_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MIGHTYENA_1[] = +{ + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ZIGZAGOON_1[] = +{ + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LINOONE_1[] = +{ + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WURMPLE_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SILCOON_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SILCOON_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BEAUTIFLY_1[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BEAUTIFLY_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CASCOON_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CASCOON_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DUSTOX_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DUSTOX_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LOTAD_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 55), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LOMBRE_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LUDICOLO_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SEEDOT_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NUZLEAF_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SHIFTRY_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NINCADA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NINJASK_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SHEDINJA_1[] = +{ + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TAILLOW_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SWELLOW_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SHROOMISH_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BRELOOM_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WINGULL_1[] = +{ + ANIMCMD_FRAME(0, 17), + ANIMCMD_FRAME(1, 23), + ANIMCMD_FRAME(0, 13), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PELIPPER_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SURSKIT_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SURSKIT_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MASQUERAIN_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MASQUERAIN_2[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WAILMER_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WAILORD_1[] = +{ + ANIMCMD_FRAME(0, 26), + ANIMCMD_FRAME(1, 48), + ANIMCMD_FRAME(0, 33), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SKITTY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 9), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DELCATTY_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 46), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KECLEON_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BALTOY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CLAYDOL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NOSEPASS_1[] = +{ + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TORKOAL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SABLEYE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BARBOACH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WHISCASH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LUVDISC_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CORPHISH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CRAWDAUNT_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_FEEBAS_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MILOTIC_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CARVANHA_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SHARPEDO_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TRAPINCH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VIBRAVA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_FLYGON_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MAKUHITA_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HARIYAMA_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ELECTRIKE_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 17), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MANECTRIC_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_NUMEL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 40), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CAMERUPT_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SPHEAL_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 43), + ANIMCMD_FRAME(1, 60), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SEALEO_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WALREIN_1[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CACNEA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CACTURNE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SNORUNT_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GLALIE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LUNATONE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LUNATONE_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SOLROCK_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SOLROCK_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_AZURILL_1[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SPOINK_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GRUMPIG_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PLUSLE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MINUN_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MAWILE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MEDITITE_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MEDICHAM_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SWABLU_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SWABLU_2[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(2, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ALTARIA_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ALTARIA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WYNAUT_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DUSKULL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DUSCLOPS_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ROSELIA_1[] = +{ + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SLAKOTH_1[] = +{ + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VIGOROTH_1[] = +{ + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SLAKING_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GULPIN_1[] = +{ + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SWALOT_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TROPIUS_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WHISMUR_1[] = +{ + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LOUDRED_1[] = +{ + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 33), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_EXPLOUD_1[] = +{ + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 9), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CLAMPERL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_HUNTAIL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GOREBYSS_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ABSOL_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SHUPPET_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BANETTE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SEVIPER_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ZANGOOSE_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RELICANTH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ARON_1[] = +{ + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LAIRON_1[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 29), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 29), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_AGGRON_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CASTFORM_0[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CASTFORM_1[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CASTFORM_2[] = +{ + ANIMCMD_FRAME(2, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CASTFORM_3[] = +{ + ANIMCMD_FRAME(3, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VOLBEAT_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ILLUMISE_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LILEEP_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CRADILY_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ANORITH_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ARMALDO_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RALTS_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KIRLIA_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 39), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GARDEVOIR_1[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BAGON_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SHELGON_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SALAMENCE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BELDUM_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_METANG_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_METAGROSS_1[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_REGIROCK_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_REGIROCK_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_REGICE_1[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_REGISTEEL_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_REGISTEEL_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KYOGRE_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_KYOGRE_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GROUDON_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GROUDON_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RAYQUAZA_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_RAYQUAZA_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LATIAS_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LATIAS_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LATIOS_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LATIOS_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_JIRACHI_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_JIRACHI_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DEOXYS_1[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 26), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DEOXYS_2[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(2, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_CHIMECHO_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_EGG_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(2, 6), + ANIMCMD_FRAME(3, 6), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_B_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_C_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_D_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_E_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_F_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_G_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_H_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_I_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_J_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_K_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_L_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_M_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_N_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_O_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_P_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_Q_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_R_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_S_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_T_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_U_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_V_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_W_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_X_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_Y_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_Z_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_EMARK_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_UNOWN_QMARK_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_NONE[] ={ + sAnim_GeneralFrame0, + sAnim_NONE_1, +}; + +static const union AnimCmd *const sAnims_BULBASAUR[] ={ + sAnim_GeneralFrame0, + sAnim_BULBASAUR_1, +}; + +static const union AnimCmd *const sAnims_IVYSAUR[] ={ + sAnim_GeneralFrame0, + sAnim_IVYSAUR_1, +}; + +static const union AnimCmd *const sAnims_VENUSAUR[] ={ + sAnim_GeneralFrame0, + sAnim_VENUSAUR_1, +}; + +static const union AnimCmd *const sAnims_CHARMANDER[] ={ + sAnim_GeneralFrame0, + sAnim_CHARMANDER_1, +}; + +static const union AnimCmd *const sAnims_CHARMELEON[] ={ + sAnim_GeneralFrame0, + sAnim_CHARMELEON_1, +}; + +static const union AnimCmd *const sAnims_CHARIZARD[] ={ + sAnim_GeneralFrame0, + sAnim_CHARIZARD_1, +}; + +static const union AnimCmd *const sAnims_SQUIRTLE[] ={ + sAnim_GeneralFrame0, + sAnim_SQUIRTLE_1, +}; + +static const union AnimCmd *const sAnims_WARTORTLE[] ={ + sAnim_GeneralFrame0, + sAnim_WARTORTLE_1, +}; + +static const union AnimCmd *const sAnims_BLASTOISE[] ={ + sAnim_GeneralFrame0, + sAnim_BLASTOISE_1, +}; + +static const union AnimCmd *const sAnims_CATERPIE[] ={ + sAnim_GeneralFrame0, + sAnim_CATERPIE_1, +}; + +static const union AnimCmd *const sAnims_METAPOD[] ={ + sAnim_GeneralFrame0, + sAnim_METAPOD_1, +}; + +static const union AnimCmd *const sAnims_BUTTERFREE[] ={ + sAnim_GeneralFrame0, + sAnim_BUTTERFREE_1, +}; + +static const union AnimCmd *const sAnims_WEEDLE[] ={ + sAnim_GeneralFrame0, + sAnim_WEEDLE_1, +}; + +static const union AnimCmd *const sAnims_KAKUNA[] ={ + sAnim_GeneralFrame0, + sAnim_KAKUNA_1, +}; + +static const union AnimCmd *const sAnims_BEEDRILL[] ={ + sAnim_GeneralFrame0, + sAnim_BEEDRILL_1, +}; + +static const union AnimCmd *const sAnims_PIDGEY[] ={ + sAnim_GeneralFrame0, + sAnim_PIDGEY_1, +}; + +static const union AnimCmd *const sAnims_PIDGEOTTO[] ={ + sAnim_GeneralFrame0, + sAnim_PIDGEOTTO_1, +}; + +static const union AnimCmd *const sAnims_PIDGEOT[] ={ + sAnim_GeneralFrame0, + sAnim_PIDGEOT_1, +}; + +static const union AnimCmd *const sAnims_RATTATA[] ={ + sAnim_GeneralFrame0, + sAnim_RATTATA_1, +}; + +static const union AnimCmd *const sAnims_RATICATE[] ={ + sAnim_GeneralFrame0, + sAnim_RATICATE_1, +}; + +static const union AnimCmd *const sAnims_SPEAROW[] ={ + sAnim_GeneralFrame0, + sAnim_SPEAROW_1, +}; + +static const union AnimCmd *const sAnims_FEAROW[] ={ + sAnim_GeneralFrame0, + sAnim_FEAROW_1, +}; + +static const union AnimCmd *const sAnims_EKANS[] ={ + sAnim_GeneralFrame0, + sAnim_EKANS_1, +}; + +static const union AnimCmd *const sAnims_ARBOK[] ={ + sAnim_GeneralFrame0, + sAnim_ARBOK_1, +}; + +static const union AnimCmd *const sAnims_PIKACHU[] ={ + sAnim_GeneralFrame0, + sAnim_PIKACHU_1, + sAnim_PIKACHU_2, +}; + +static const union AnimCmd *const sAnims_RAICHU[] ={ + sAnim_GeneralFrame0, + sAnim_RAICHU_1, + sAnim_RAICHU_2, +}; + +static const union AnimCmd *const sAnims_SANDSHREW[] ={ + sAnim_GeneralFrame0, + sAnim_SANDSHREW_1, + sAnim_SANDSHREW_2, +}; + +static const union AnimCmd *const sAnims_SANDSLASH[] ={ + sAnim_GeneralFrame0, + sAnim_SANDSLASH_1, + sAnim_SANDSLASH_2, +}; + +static const union AnimCmd *const sAnims_NIDORAN_F[] ={ + sAnim_GeneralFrame0, + sAnim_NIDORAN_F_1, +}; + +static const union AnimCmd *const sAnims_NIDORINA[] ={ + sAnim_GeneralFrame0, + sAnim_NIDORINA_1, +}; + +static const union AnimCmd *const sAnims_NIDOQUEEN[] ={ + sAnim_GeneralFrame0, + sAnim_NIDOQUEEN_1, +}; + +static const union AnimCmd *const sAnims_NIDORAN_M[] ={ + sAnim_GeneralFrame0, + sAnim_NIDORAN_M_1, +}; + +static const union AnimCmd *const sAnims_NIDORINO[] ={ + sAnim_GeneralFrame0, + sAnim_NIDORINO_1, +}; + +static const union AnimCmd *const sAnims_NIDOKING[] ={ + sAnim_GeneralFrame0, + sAnim_NIDOKING_1, +}; + +static const union AnimCmd *const sAnims_CLEFAIRY[] ={ + sAnim_GeneralFrame0, + sAnim_CLEFAIRY_1, +}; + +static const union AnimCmd *const sAnims_CLEFABLE[] ={ + sAnim_GeneralFrame0, + sAnim_CLEFABLE_1, +}; + +static const union AnimCmd *const sAnims_VULPIX[] ={ + sAnim_GeneralFrame0, + sAnim_VULPIX_1, + sAnim_VULPIX_2, +}; + +static const union AnimCmd *const sAnims_NINETALES[] ={ + sAnim_GeneralFrame0, + sAnim_NINETALES_1, + sAnim_NINETALES_2, +}; + +static const union AnimCmd *const sAnims_JIGGLYPUFF[] ={ + sAnim_GeneralFrame0, + sAnim_JIGGLYPUFF_1, + sAnim_JIGGLYPUFF_2, +}; + +static const union AnimCmd *const sAnims_WIGGLYTUFF[] ={ + sAnim_GeneralFrame0, + sAnim_WIGGLYTUFF_1, + sAnim_WIGGLYTUFF_2, +}; + +static const union AnimCmd *const sAnims_ZUBAT[] ={ + sAnim_GeneralFrame0, + sAnim_ZUBAT_1, +}; + +static const union AnimCmd *const sAnims_GOLBAT[] ={ + sAnim_GeneralFrame0, + sAnim_GOLBAT_1, +}; + +static const union AnimCmd *const sAnims_ODDISH[] ={ + sAnim_GeneralFrame0, + sAnim_ODDISH_1, +}; + +static const union AnimCmd *const sAnims_GLOOM[] ={ + sAnim_GeneralFrame0, + sAnim_GLOOM_1, +}; + +static const union AnimCmd *const sAnims_VILEPLUME[] ={ + sAnim_GeneralFrame0, + sAnim_VILEPLUME_1, +}; + +static const union AnimCmd *const sAnims_PARAS[] ={ + sAnim_GeneralFrame0, + sAnim_PARAS_1, +}; + +static const union AnimCmd *const sAnims_PARASECT[] ={ + sAnim_GeneralFrame0, + sAnim_PARASECT_1, +}; + +static const union AnimCmd *const sAnims_VENONAT[] ={ + sAnim_GeneralFrame0, + sAnim_VENONAT_1, +}; + +static const union AnimCmd *const sAnims_VENOMOTH[] ={ + sAnim_GeneralFrame0, + sAnim_VENOMOTH_1, +}; + +static const union AnimCmd *const sAnims_DIGLETT[] ={ + sAnim_GeneralFrame0, + sAnim_DIGLETT_1, +}; + +static const union AnimCmd *const sAnims_DUGTRIO[] ={ + sAnim_GeneralFrame0, + sAnim_DUGTRIO_1, +}; + +static const union AnimCmd *const sAnims_MEOWTH[] ={ + sAnim_GeneralFrame0, + sAnim_MEOWTH_1, +}; + +static const union AnimCmd *const sAnims_PERSIAN[] ={ + sAnim_GeneralFrame0, + sAnim_PERSIAN_1, +}; + +static const union AnimCmd *const sAnims_PSYDUCK[] ={ + sAnim_GeneralFrame0, + sAnim_PSYDUCK_1, + sAnim_PSYDUCK_2, +}; + +static const union AnimCmd *const sAnims_GOLDUCK[] ={ + sAnim_GeneralFrame0, + sAnim_GOLDUCK_1, + sAnim_GOLDUCK_2, +}; + +static const union AnimCmd *const sAnims_MANKEY[] ={ + sAnim_GeneralFrame0, + sAnim_MANKEY_1, +}; + +static const union AnimCmd *const sAnims_PRIMEAPE[] ={ + sAnim_GeneralFrame0, + sAnim_PRIMEAPE_1, +}; + +static const union AnimCmd *const sAnims_GROWLITHE[] ={ + sAnim_GeneralFrame0, + sAnim_GROWLITHE_1, +}; + +static const union AnimCmd *const sAnims_ARCANINE[] ={ + sAnim_GeneralFrame0, + sAnim_ARCANINE_1, +}; + +static const union AnimCmd *const sAnims_POLIWAG[] ={ + sAnim_GeneralFrame0, + sAnim_POLIWAG_1, +}; + +static const union AnimCmd *const sAnims_POLIWHIRL[] ={ + sAnim_GeneralFrame0, + sAnim_POLIWHIRL_1, +}; + +static const union AnimCmd *const sAnims_POLIWRATH[] ={ + sAnim_GeneralFrame0, + sAnim_POLIWRATH_1, +}; + +static const union AnimCmd *const sAnims_ABRA[] ={ + sAnim_GeneralFrame0, + sAnim_ABRA_1, +}; + +static const union AnimCmd *const sAnims_KADABRA[] ={ + sAnim_GeneralFrame0, + sAnim_KADABRA_1, +}; + +static const union AnimCmd *const sAnims_ALAKAZAM[] ={ + sAnim_GeneralFrame0, + sAnim_ALAKAZAM_1, +}; + +static const union AnimCmd *const sAnims_MACHOP[] ={ + sAnim_GeneralFrame0, + sAnim_MACHOP_1, +}; + +static const union AnimCmd *const sAnims_MACHOKE[] ={ + sAnim_GeneralFrame0, + sAnim_MACHOKE_1, +}; + +static const union AnimCmd *const sAnims_MACHAMP[] ={ + sAnim_GeneralFrame0, + sAnim_MACHAMP_1, +}; + +static const union AnimCmd *const sAnims_BELLSPROUT[] ={ + sAnim_GeneralFrame0, + sAnim_BELLSPROUT_1, +}; + +static const union AnimCmd *const sAnims_WEEPINBELL[] ={ + sAnim_GeneralFrame0, + sAnim_WEEPINBELL_1, +}; + +static const union AnimCmd *const sAnims_VICTREEBEL[] ={ + sAnim_GeneralFrame0, + sAnim_VICTREEBEL_1, +}; + +static const union AnimCmd *const sAnims_TENTACOOL[] ={ + sAnim_GeneralFrame0, + sAnim_TENTACOOL_1, +}; + +static const union AnimCmd *const sAnims_TENTACRUEL[] ={ + sAnim_GeneralFrame0, + sAnim_TENTACRUEL_1, +}; + +static const union AnimCmd *const sAnims_GEODUDE[] ={ + sAnim_GeneralFrame0, + sAnim_GEODUDE_1, +}; + +static const union AnimCmd *const sAnims_GRAVELER[] ={ + sAnim_GeneralFrame0, + sAnim_GRAVELER_1, +}; + +static const union AnimCmd *const sAnims_GOLEM[] ={ + sAnim_GeneralFrame0, + sAnim_GOLEM_1, +}; + +static const union AnimCmd *const sAnims_PONYTA[] ={ + sAnim_GeneralFrame0, + sAnim_PONYTA_1, +}; + +static const union AnimCmd *const sAnims_RAPIDASH[] ={ + sAnim_GeneralFrame0, + sAnim_RAPIDASH_1, +}; + +static const union AnimCmd *const sAnims_SLOWPOKE[] ={ + sAnim_GeneralFrame0, + sAnim_SLOWPOKE_1, +}; + +static const union AnimCmd *const sAnims_SLOWBRO[] ={ + sAnim_GeneralFrame0, + sAnim_SLOWBRO_1, +}; + +static const union AnimCmd *const sAnims_MAGNEMITE[] ={ + sAnim_GeneralFrame0, + sAnim_MAGNEMITE_1, +}; + +static const union AnimCmd *const sAnims_MAGNETON[] ={ + sAnim_GeneralFrame0, + sAnim_MAGNETON_1, +}; + +static const union AnimCmd *const sAnims_FARFETCHD[] ={ + sAnim_GeneralFrame0, + sAnim_FARFETCHD_1, +}; + +static const union AnimCmd *const sAnims_DODUO[] ={ + sAnim_GeneralFrame0, + sAnim_DODUO_1, +}; + +static const union AnimCmd *const sAnims_DODRIO[] ={ + sAnim_GeneralFrame0, + sAnim_DODRIO_1, +}; + +static const union AnimCmd *const sAnims_SEEL[] ={ + sAnim_GeneralFrame0, + sAnim_SEEL_1, +}; + +static const union AnimCmd *const sAnims_DEWGONG[] ={ + sAnim_GeneralFrame0, + sAnim_DEWGONG_1, +}; + +static const union AnimCmd *const sAnims_GRIMER[] ={ + sAnim_GeneralFrame0, + sAnim_GRIMER_1, + sAnim_GRIMER_2, +}; + +static const union AnimCmd *const sAnims_MUK[] ={ + sAnim_GeneralFrame0, + sAnim_MUK_1, + sAnim_MUK_2, +}; + +static const union AnimCmd *const sAnims_SHELLDER[] ={ + sAnim_GeneralFrame0, + sAnim_SHELLDER_1, +}; + +static const union AnimCmd *const sAnims_CLOYSTER[] ={ + sAnim_GeneralFrame0, + sAnim_CLOYSTER_1, +}; + +static const union AnimCmd *const sAnims_GASTLY[] ={ + sAnim_GeneralFrame0, + sAnim_GASTLY_1, +}; + +static const union AnimCmd *const sAnims_HAUNTER[] ={ + sAnim_GeneralFrame0, + sAnim_HAUNTER_1, +}; + +static const union AnimCmd *const sAnims_GENGAR[] ={ + sAnim_GeneralFrame0, + sAnim_GENGAR_1, +}; + +static const union AnimCmd *const sAnims_ONIX[] ={ + sAnim_GeneralFrame0, + sAnim_ONIX_1, +}; + +static const union AnimCmd *const sAnims_DROWZEE[] ={ + sAnim_GeneralFrame0, + sAnim_DROWZEE_1, +}; + +static const union AnimCmd *const sAnims_HYPNO[] ={ + sAnim_GeneralFrame0, + sAnim_HYPNO_1, +}; + +static const union AnimCmd *const sAnims_KRABBY[] ={ + sAnim_GeneralFrame0, + sAnim_KRABBY_1, +}; + +static const union AnimCmd *const sAnims_KINGLER[] ={ + sAnim_GeneralFrame0, + sAnim_KINGLER_1, +}; + +static const union AnimCmd *const sAnims_VOLTORB[] ={ + sAnim_GeneralFrame0, + sAnim_VOLTORB_1, +}; + +static const union AnimCmd *const sAnims_ELECTRODE[] ={ + sAnim_GeneralFrame0, + sAnim_ELECTRODE_1, +}; + +static const union AnimCmd *const sAnims_EXEGGCUTE[] ={ + sAnim_GeneralFrame0, + sAnim_EXEGGCUTE_1, +}; + +static const union AnimCmd *const sAnims_EXEGGUTOR[] ={ + sAnim_GeneralFrame0, + sAnim_EXEGGUTOR_1, +}; + +static const union AnimCmd *const sAnims_CUBONE[] ={ + sAnim_GeneralFrame0, + sAnim_CUBONE_1, +}; + +static const union AnimCmd *const sAnims_MAROWAK[] ={ + sAnim_GeneralFrame0, + sAnim_MAROWAK_1, +}; + +static const union AnimCmd *const sAnims_HITMONLEE[] ={ + sAnim_GeneralFrame0, + sAnim_HITMONLEE_1, +}; + +static const union AnimCmd *const sAnims_HITMONCHAN[] ={ + sAnim_GeneralFrame0, + sAnim_HITMONCHAN_1, +}; + +static const union AnimCmd *const sAnims_LICKITUNG[] ={ + sAnim_GeneralFrame0, + sAnim_LICKITUNG_1, +}; + +static const union AnimCmd *const sAnims_KOFFING[] ={ + sAnim_GeneralFrame0, + sAnim_KOFFING_1, + sAnim_KOFFING_2, +}; + +static const union AnimCmd *const sAnims_WEEZING[] ={ + sAnim_GeneralFrame0, + sAnim_WEEZING_1, + sAnim_WEEZING_2, +}; + +static const union AnimCmd *const sAnims_RHYHORN[] ={ + sAnim_GeneralFrame0, + sAnim_RHYHORN_1, + sAnim_RHYHORN_2, +}; + +static const union AnimCmd *const sAnims_RHYDON[] ={ + sAnim_GeneralFrame0, + sAnim_RHYDON_1, + sAnim_RHYDON_2, +}; + +static const union AnimCmd *const sAnims_CHANSEY[] ={ + sAnim_GeneralFrame0, + sAnim_CHANSEY_1, +}; + +static const union AnimCmd *const sAnims_TANGELA[] ={ + sAnim_GeneralFrame0, + sAnim_TANGELA_1, +}; + +static const union AnimCmd *const sAnims_KANGASKHAN[] ={ + sAnim_GeneralFrame0, + sAnim_KANGASKHAN_1, +}; + +static const union AnimCmd *const sAnims_HORSEA[] ={ + sAnim_GeneralFrame0, + sAnim_HORSEA_1, + sAnim_HORSEA_2, +}; + +static const union AnimCmd *const sAnims_SEADRA[] ={ + sAnim_GeneralFrame0, + sAnim_SEADRA_1, + sAnim_SEADRA_2, +}; + +static const union AnimCmd *const sAnims_GOLDEEN[] ={ + sAnim_GeneralFrame0, + sAnim_GOLDEEN_1, +}; + +static const union AnimCmd *const sAnims_SEAKING[] ={ + sAnim_GeneralFrame0, + sAnim_SEAKING_1, +}; + +static const union AnimCmd *const sAnims_STARYU[] ={ + sAnim_GeneralFrame0, + sAnim_STARYU_1, + sAnim_STARYU_2, +}; + +static const union AnimCmd *const sAnims_STARMIE[] ={ + sAnim_GeneralFrame0, + sAnim_STARMIE_1, + sAnim_STARMIE_2, +}; + +static const union AnimCmd *const sAnims_MR_MIME[] ={ + sAnim_GeneralFrame0, + sAnim_MR_MIME_1, +}; + +static const union AnimCmd *const sAnims_SCYTHER[] ={ + sAnim_GeneralFrame0, + sAnim_SCYTHER_1, +}; + +static const union AnimCmd *const sAnims_JYNX[] ={ + sAnim_GeneralFrame0, + sAnim_JYNX_1, +}; + +static const union AnimCmd *const sAnims_ELECTABUZZ[] ={ + sAnim_GeneralFrame0, + sAnim_ELECTABUZZ_1, +}; + +static const union AnimCmd *const sAnims_MAGMAR[] ={ + sAnim_GeneralFrame0, + sAnim_MAGMAR_1, +}; + +static const union AnimCmd *const sAnims_PINSIR[] ={ + sAnim_GeneralFrame0, + sAnim_PINSIR_1, + sAnim_PINSIR_2, +}; + +static const union AnimCmd *const sAnims_TAUROS[] ={ + sAnim_GeneralFrame0, + sAnim_TAUROS_1, +}; + +static const union AnimCmd *const sAnims_MAGIKARP[] ={ + sAnim_GeneralFrame0, + sAnim_MAGIKARP_1, +}; + +static const union AnimCmd *const sAnims_GYARADOS[] ={ + sAnim_GeneralFrame0, + sAnim_GYARADOS_1, +}; + +static const union AnimCmd *const sAnims_LAPRAS[] ={ + sAnim_GeneralFrame0, + sAnim_LAPRAS_1, +}; + +static const union AnimCmd *const sAnims_DITTO[] ={ + sAnim_GeneralFrame0, + sAnim_DITTO_1, +}; + +static const union AnimCmd *const sAnims_EEVEE[] ={ + sAnim_GeneralFrame0, + sAnim_EEVEE_1, +}; + +static const union AnimCmd *const sAnims_VAPOREON[] ={ + sAnim_GeneralFrame0, + sAnim_VAPOREON_1, +}; + +static const union AnimCmd *const sAnims_JOLTEON[] ={ + sAnim_GeneralFrame0, + sAnim_JOLTEON_1, +}; + +static const union AnimCmd *const sAnims_FLAREON[] ={ + sAnim_GeneralFrame0, + sAnim_FLAREON_1, +}; + +static const union AnimCmd *const sAnims_PORYGON[] ={ + sAnim_GeneralFrame0, + sAnim_PORYGON_1, +}; + +static const union AnimCmd *const sAnims_OMANYTE[] ={ + sAnim_GeneralFrame0, + sAnim_OMANYTE_1, +}; + +static const union AnimCmd *const sAnims_OMASTAR[] ={ + sAnim_GeneralFrame0, + sAnim_OMASTAR_1, +}; + +static const union AnimCmd *const sAnims_KABUTO[] ={ + sAnim_GeneralFrame0, + sAnim_KABUTO_1, +}; + +static const union AnimCmd *const sAnims_KABUTOPS[] ={ + sAnim_GeneralFrame0, + sAnim_KABUTOPS_1, +}; + +static const union AnimCmd *const sAnims_AERODACTYL[] ={ + sAnim_GeneralFrame0, + sAnim_AERODACTYL_1, +}; + +static const union AnimCmd *const sAnims_SNORLAX[] ={ + sAnim_GeneralFrame0, + sAnim_SNORLAX_1, +}; + +static const union AnimCmd *const sAnims_ARTICUNO[] ={ + sAnim_GeneralFrame0, + sAnim_ARTICUNO_1, +}; + +static const union AnimCmd *const sAnims_ZAPDOS[] ={ + sAnim_GeneralFrame0, + sAnim_ZAPDOS_1, +}; + +static const union AnimCmd *const sAnims_MOLTRES[] ={ + sAnim_GeneralFrame0, + sAnim_MOLTRES_1, +}; + +static const union AnimCmd *const sAnims_DRATINI[] ={ + sAnim_GeneralFrame0, + sAnim_DRATINI_1, +}; + +static const union AnimCmd *const sAnims_DRAGONAIR[] ={ + sAnim_GeneralFrame0, + sAnim_DRAGONAIR_1, +}; + +static const union AnimCmd *const sAnims_DRAGONITE[] ={ + sAnim_GeneralFrame0, + sAnim_DRAGONITE_1, +}; + +static const union AnimCmd *const sAnims_MEWTWO[] ={ + sAnim_GeneralFrame0, + sAnim_MEWTWO_1, +}; + +static const union AnimCmd *const sAnims_MEW[] ={ + sAnim_GeneralFrame0, + sAnim_MEW_1, +}; + +static const union AnimCmd *const sAnims_CHIKORITA[] ={ + sAnim_GeneralFrame0, + sAnim_CHIKORITA_1, +}; + +static const union AnimCmd *const sAnims_BAYLEEF[] ={ + sAnim_GeneralFrame0, + sAnim_BAYLEEF_1, +}; + +static const union AnimCmd *const sAnims_MEGANIUM[] ={ + sAnim_GeneralFrame0, + sAnim_MEGANIUM_1, +}; + +static const union AnimCmd *const sAnims_CYNDAQUIL[] ={ + sAnim_GeneralFrame0, + sAnim_CYNDAQUIL_1, +}; + +static const union AnimCmd *const sAnims_QUILAVA[] ={ + sAnim_GeneralFrame0, + sAnim_QUILAVA_1, +}; + +static const union AnimCmd *const sAnims_TYPHLOSION[] ={ + sAnim_GeneralFrame0, + sAnim_TYPHLOSION_1, +}; + +static const union AnimCmd *const sAnims_TOTODILE[] ={ + sAnim_GeneralFrame0, + sAnim_TOTODILE_1, +}; + +static const union AnimCmd *const sAnims_CROCONAW[] ={ + sAnim_GeneralFrame0, + sAnim_CROCONAW_1, +}; + +static const union AnimCmd *const sAnims_FERALIGATR[] ={ + sAnim_GeneralFrame0, + sAnim_FERALIGATR_1, +}; + +static const union AnimCmd *const sAnims_SENTRET[] ={ + sAnim_GeneralFrame0, + sAnim_SENTRET_1, +}; + +static const union AnimCmd *const sAnims_FURRET[] ={ + sAnim_GeneralFrame0, + sAnim_FURRET_1, +}; + +static const union AnimCmd *const sAnims_HOOTHOOT[] ={ + sAnim_GeneralFrame0, + sAnim_HOOTHOOT_1, +}; + +static const union AnimCmd *const sAnims_NOCTOWL[] ={ + sAnim_GeneralFrame0, + sAnim_NOCTOWL_1, +}; + +static const union AnimCmd *const sAnims_LEDYBA[] ={ + sAnim_GeneralFrame0, + sAnim_LEDYBA_1, +}; + +static const union AnimCmd *const sAnims_LEDIAN[] ={ + sAnim_GeneralFrame0, + sAnim_LEDIAN_1, +}; + +static const union AnimCmd *const sAnims_SPINARAK[] ={ + sAnim_GeneralFrame0, + sAnim_SPINARAK_1, +}; + +static const union AnimCmd *const sAnims_ARIADOS[] ={ + sAnim_GeneralFrame0, + sAnim_ARIADOS_1, +}; + +static const union AnimCmd *const sAnims_CROBAT[] ={ + sAnim_GeneralFrame0, + sAnim_CROBAT_1, +}; + +static const union AnimCmd *const sAnims_CHINCHOU[] ={ + sAnim_GeneralFrame0, + sAnim_CHINCHOU_1, + sAnim_CHINCHOU_2, +}; + +static const union AnimCmd *const sAnims_LANTURN[] ={ + sAnim_GeneralFrame0, + sAnim_LANTURN_1, + sAnim_LANTURN_2, +}; + +static const union AnimCmd *const sAnims_PICHU[] ={ + sAnim_GeneralFrame0, + sAnim_PICHU_1, + sAnim_PICHU_2, +}; + +static const union AnimCmd *const sAnims_CLEFFA[] ={ + sAnim_GeneralFrame0, + sAnim_CLEFFA_1, +}; + +static const union AnimCmd *const sAnims_IGGLYBUFF[] ={ + sAnim_GeneralFrame0, + sAnim_IGGLYBUFF_1, + sAnim_IGGLYBUFF_2, +}; + +static const union AnimCmd *const sAnims_TOGEPI[] ={ + sAnim_GeneralFrame0, + sAnim_TOGEPI_1, +}; + +static const union AnimCmd *const sAnims_TOGETIC[] ={ + sAnim_GeneralFrame0, + sAnim_TOGETIC_1, +}; + +static const union AnimCmd *const sAnims_NATU[] ={ + sAnim_GeneralFrame0, + sAnim_NATU_1, + sAnim_NATU_2, +}; + +static const union AnimCmd *const sAnims_XATU[] ={ + sAnim_GeneralFrame0, + sAnim_XATU_1, + sAnim_XATU_2, +}; + +static const union AnimCmd *const sAnims_MAREEP[] ={ + sAnim_GeneralFrame0, + sAnim_MAREEP_1, +}; + +static const union AnimCmd *const sAnims_FLAAFFY[] ={ + sAnim_GeneralFrame0, + sAnim_FLAAFFY_1, +}; + +static const union AnimCmd *const sAnims_AMPHAROS[] ={ + sAnim_GeneralFrame0, + sAnim_AMPHAROS_1, +}; + +static const union AnimCmd *const sAnims_BELLOSSOM[] ={ + sAnim_GeneralFrame0, + sAnim_BELLOSSOM_1, +}; + +static const union AnimCmd *const sAnims_MARILL[] ={ + sAnim_GeneralFrame0, + sAnim_MARILL_1, +}; + +static const union AnimCmd *const sAnims_AZUMARILL[] ={ + sAnim_GeneralFrame0, + sAnim_AZUMARILL_1, +}; + +static const union AnimCmd *const sAnims_SUDOWOODO[] ={ + sAnim_GeneralFrame0, + sAnim_SUDOWOODO_1, +}; + +static const union AnimCmd *const sAnims_POLITOED[] ={ + sAnim_GeneralFrame0, + sAnim_POLITOED_1, +}; + +static const union AnimCmd *const sAnims_HOPPIP[] ={ + sAnim_GeneralFrame0, + sAnim_HOPPIP_1, +}; + +static const union AnimCmd *const sAnims_SKIPLOOM[] ={ + sAnim_GeneralFrame0, + sAnim_SKIPLOOM_1, +}; + +static const union AnimCmd *const sAnims_JUMPLUFF[] ={ + sAnim_GeneralFrame0, + sAnim_JUMPLUFF_1, +}; + +static const union AnimCmd *const sAnims_AIPOM[] ={ + sAnim_GeneralFrame0, + sAnim_AIPOM_1, +}; + +static const union AnimCmd *const sAnims_SUNKERN[] ={ + sAnim_GeneralFrame0, + sAnim_SUNKERN_1, +}; + +static const union AnimCmd *const sAnims_SUNFLORA[] ={ + sAnim_GeneralFrame0, + sAnim_SUNFLORA_1, +}; + +static const union AnimCmd *const sAnims_YANMA[] ={ + sAnim_GeneralFrame0, + sAnim_YANMA_1, +}; + +static const union AnimCmd *const sAnims_WOOPER[] ={ + sAnim_GeneralFrame0, + sAnim_WOOPER_1, +}; + +static const union AnimCmd *const sAnims_QUAGSIRE[] ={ + sAnim_GeneralFrame0, + sAnim_QUAGSIRE_1, +}; + +static const union AnimCmd *const sAnims_ESPEON[] ={ + sAnim_GeneralFrame0, + sAnim_ESPEON_1, +}; + +static const union AnimCmd *const sAnims_UMBREON[] ={ + sAnim_GeneralFrame0, + sAnim_UMBREON_1, +}; + +static const union AnimCmd *const sAnims_MURKROW[] ={ + sAnim_GeneralFrame0, + sAnim_MURKROW_1, +}; + +static const union AnimCmd *const sAnims_SLOWKING[] ={ + sAnim_GeneralFrame0, + sAnim_SLOWKING_1, +}; + +static const union AnimCmd *const sAnims_MISDREAVUS[] ={ + sAnim_GeneralFrame0, + sAnim_MISDREAVUS_1, +}; + +static const union AnimCmd *const sAnims_UNOWN[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_1, +}; + +static const union AnimCmd *const sAnims_WOBBUFFET[] ={ + sAnim_GeneralFrame0, + sAnim_WOBBUFFET_1, + sAnim_WOBBUFFET_2, +}; + +static const union AnimCmd *const sAnims_GIRAFARIG[] ={ + sAnim_GeneralFrame0, + sAnim_GIRAFARIG_1, + sAnim_GIRAFARIG_2, +}; + +static const union AnimCmd *const sAnims_PINECO[] ={ + sAnim_GeneralFrame0, + sAnim_PINECO_1, +}; + +static const union AnimCmd *const sAnims_FORRETRESS[] ={ + sAnim_GeneralFrame0, + sAnim_FORRETRESS_1, +}; + +static const union AnimCmd *const sAnims_DUNSPARCE[] ={ + sAnim_GeneralFrame0, + sAnim_DUNSPARCE_1, +}; + +static const union AnimCmd *const sAnims_GLIGAR[] ={ + sAnim_GeneralFrame0, + sAnim_GLIGAR_1, +}; + +static const union AnimCmd *const sAnims_STEELIX[] ={ + sAnim_GeneralFrame0, + sAnim_STEELIX_1, +}; + +static const union AnimCmd *const sAnims_SNUBBULL[] ={ + sAnim_GeneralFrame0, + sAnim_SNUBBULL_1, +}; + +static const union AnimCmd *const sAnims_GRANBULL[] ={ + sAnim_GeneralFrame0, + sAnim_GRANBULL_1, +}; + +static const union AnimCmd *const sAnims_QWILFISH[] ={ + sAnim_GeneralFrame0, + sAnim_QWILFISH_1, +}; + +static const union AnimCmd *const sAnims_SCIZOR[] ={ + sAnim_GeneralFrame0, + sAnim_SCIZOR_1, +}; + +static const union AnimCmd *const sAnims_SHUCKLE[] ={ + sAnim_GeneralFrame0, + sAnim_SHUCKLE_1, +}; + +static const union AnimCmd *const sAnims_HERACROSS[] ={ + sAnim_GeneralFrame0, + sAnim_HERACROSS_1, + sAnim_HERACROSS_2, +}; + +static const union AnimCmd *const sAnims_SNEASEL[] ={ + sAnim_GeneralFrame0, + sAnim_SNEASEL_1, +}; + +static const union AnimCmd *const sAnims_TEDDIURSA[] ={ + sAnim_GeneralFrame0, + sAnim_TEDDIURSA_1, +}; + +static const union AnimCmd *const sAnims_URSARING[] ={ + sAnim_GeneralFrame0, + sAnim_URSARING_1, +}; + +static const union AnimCmd *const sAnims_SLUGMA[] ={ + sAnim_GeneralFrame0, + sAnim_SLUGMA_1, + sAnim_SLUGMA_2, +}; + +static const union AnimCmd *const sAnims_MAGCARGO[] ={ + sAnim_GeneralFrame0, + sAnim_MAGCARGO_1, + sAnim_MAGCARGO_2, +}; + +static const union AnimCmd *const sAnims_SWINUB[] ={ + sAnim_GeneralFrame0, + sAnim_SWINUB_1, +}; + +static const union AnimCmd *const sAnims_PILOSWINE[] ={ + sAnim_GeneralFrame0, + sAnim_PILOSWINE_1, +}; + +static const union AnimCmd *const sAnims_CORSOLA[] ={ + sAnim_GeneralFrame0, + sAnim_CORSOLA_1, + sAnim_CORSOLA_2, +}; + +static const union AnimCmd *const sAnims_REMORAID[] ={ + sAnim_GeneralFrame0, + sAnim_REMORAID_1, +}; + +static const union AnimCmd *const sAnims_OCTILLERY[] ={ + sAnim_GeneralFrame0, + sAnim_OCTILLERY_1, +}; + +static const union AnimCmd *const sAnims_DELIBIRD[] ={ + sAnim_GeneralFrame0, + sAnim_DELIBIRD_1, +}; + +static const union AnimCmd *const sAnims_MANTINE[] ={ + sAnim_GeneralFrame0, + sAnim_MANTINE_1, +}; + +static const union AnimCmd *const sAnims_SKARMORY[] ={ + sAnim_GeneralFrame0, + sAnim_SKARMORY_1, + sAnim_SKARMORY_2, +}; + +static const union AnimCmd *const sAnims_HOUNDOUR[] ={ + sAnim_GeneralFrame0, + sAnim_HOUNDOUR_1, +}; + +static const union AnimCmd *const sAnims_HOUNDOOM[] ={ + sAnim_GeneralFrame0, + sAnim_HOUNDOOM_1, +}; + +static const union AnimCmd *const sAnims_KINGDRA[] ={ + sAnim_GeneralFrame0, + sAnim_KINGDRA_1, + sAnim_KINGDRA_2, +}; + +static const union AnimCmd *const sAnims_PHANPY[] ={ + sAnim_GeneralFrame0, + sAnim_PHANPY_1, + sAnim_PHANPY_2, +}; + +static const union AnimCmd *const sAnims_DONPHAN[] ={ + sAnim_GeneralFrame0, + sAnim_DONPHAN_1, + sAnim_DONPHAN_2, +}; + +static const union AnimCmd *const sAnims_PORYGON2[] ={ + sAnim_GeneralFrame0, + sAnim_PORYGON2_1, +}; + +static const union AnimCmd *const sAnims_STANTLER[] ={ + sAnim_GeneralFrame0, + sAnim_STANTLER_1, +}; + +static const union AnimCmd *const sAnims_SMEARGLE[] ={ + sAnim_GeneralFrame0, + sAnim_SMEARGLE_1, +}; + +static const union AnimCmd *const sAnims_TYROGUE[] ={ + sAnim_GeneralFrame0, + sAnim_TYROGUE_1, +}; + +static const union AnimCmd *const sAnims_HITMONTOP[] ={ + sAnim_GeneralFrame0, + sAnim_HITMONTOP_1, +}; + +static const union AnimCmd *const sAnims_SMOOCHUM[] ={ + sAnim_GeneralFrame0, + sAnim_SMOOCHUM_1, +}; + +static const union AnimCmd *const sAnims_ELEKID[] ={ + sAnim_GeneralFrame0, + sAnim_ELEKID_1, +}; + +static const union AnimCmd *const sAnims_MAGBY[] ={ + sAnim_GeneralFrame0, + sAnim_MAGBY_1, +}; + +static const union AnimCmd *const sAnims_MILTANK[] ={ + sAnim_GeneralFrame0, + sAnim_MILTANK_1, +}; + +static const union AnimCmd *const sAnims_BLISSEY[] ={ + sAnim_GeneralFrame0, + sAnim_BLISSEY_1, +}; + +static const union AnimCmd *const sAnims_RAIKOU[] ={ + sAnim_GeneralFrame0, + sAnim_RAIKOU_1, +}; + +static const union AnimCmd *const sAnims_ENTEI[] ={ + sAnim_GeneralFrame0, + sAnim_ENTEI_1, +}; + +static const union AnimCmd *const sAnims_SUICUNE[] ={ + sAnim_GeneralFrame0, + sAnim_SUICUNE_1, +}; + +static const union AnimCmd *const sAnims_LARVITAR[] ={ + sAnim_GeneralFrame0, + sAnim_LARVITAR_1, +}; + +static const union AnimCmd *const sAnims_PUPITAR[] ={ + sAnim_GeneralFrame0, + sAnim_PUPITAR_1, +}; + +static const union AnimCmd *const sAnims_TYRANITAR[] ={ + sAnim_GeneralFrame0, + sAnim_TYRANITAR_1, +}; + +static const union AnimCmd *const sAnims_LUGIA[] ={ + sAnim_GeneralFrame0, + sAnim_LUGIA_1, +}; + +static const union AnimCmd *const sAnims_HO_OH[] ={ + sAnim_GeneralFrame0, + sAnim_HO_OH_1, +}; + +static const union AnimCmd *const sAnims_CELEBI[] ={ + sAnim_GeneralFrame0, + sAnim_CELEBI_1, +}; + +static const union AnimCmd *const sAnims_OLD_UNOWN_B[] ={ + sAnim_GeneralFrame0, + sAnim_OLD_UNOWN_B_1, +}; + +static const union AnimCmd *const sAnims_TREECKO[] ={ + sAnim_GeneralFrame0, + sAnim_TREECKO_1, +}; + +static const union AnimCmd *const sAnims_GROVYLE[] ={ + sAnim_GeneralFrame0, + sAnim_GROVYLE_1, +}; + +static const union AnimCmd *const sAnims_SCEPTILE[] ={ + sAnim_GeneralFrame0, + sAnim_SCEPTILE_1, +}; + +static const union AnimCmd *const sAnims_TORCHIC[] ={ + sAnim_GeneralFrame0, + sAnim_TORCHIC_1, +}; + +static const union AnimCmd *const sAnims_COMBUSKEN[] ={ + sAnim_GeneralFrame0, + sAnim_COMBUSKEN_1, +}; + +static const union AnimCmd *const sAnims_BLAZIKEN[] ={ + sAnim_GeneralFrame0, + sAnim_BLAZIKEN_1, + sAnim_BLAZIKEN_2, + sAnim_BLAZIKEN_3, + sAnim_BLAZIKEN_4, +}; + +static const union AnimCmd *const sAnims_MUDKIP[] ={ + sAnim_GeneralFrame0, + sAnim_MUDKIP_1, +}; + +static const union AnimCmd *const sAnims_MARSHTOMP[] ={ + sAnim_GeneralFrame0, + sAnim_MARSHTOMP_1, +}; + +static const union AnimCmd *const sAnims_SWAMPERT[] ={ + sAnim_GeneralFrame0, + sAnim_SWAMPERT_1, +}; + +static const union AnimCmd *const sAnims_POOCHYENA[] ={ + sAnim_GeneralFrame0, + sAnim_POOCHYENA_1, +}; + +static const union AnimCmd *const sAnims_MIGHTYENA[] ={ + sAnim_GeneralFrame0, + sAnim_MIGHTYENA_1, +}; + +static const union AnimCmd *const sAnims_ZIGZAGOON[] ={ + sAnim_GeneralFrame0, + sAnim_ZIGZAGOON_1, +}; + +static const union AnimCmd *const sAnims_LINOONE[] ={ + sAnim_GeneralFrame0, + sAnim_LINOONE_1, +}; + +static const union AnimCmd *const sAnims_WURMPLE[] ={ + sAnim_GeneralFrame0, + sAnim_WURMPLE_1, +}; + +static const union AnimCmd *const sAnims_SILCOON[] ={ + sAnim_GeneralFrame0, + sAnim_SILCOON_1, + sAnim_SILCOON_2, +}; + +static const union AnimCmd *const sAnims_BEAUTIFLY[] ={ + sAnim_GeneralFrame0, + sAnim_BEAUTIFLY_1, + sAnim_BEAUTIFLY_2, +}; + +static const union AnimCmd *const sAnims_CASCOON[] ={ + sAnim_GeneralFrame0, + sAnim_CASCOON_1, + sAnim_CASCOON_2, +}; + +static const union AnimCmd *const sAnims_DUSTOX[] ={ + sAnim_GeneralFrame0, + sAnim_DUSTOX_1, + sAnim_DUSTOX_2, +}; + +static const union AnimCmd *const sAnims_LOTAD[] ={ + sAnim_GeneralFrame0, + sAnim_LOTAD_1, +}; + +static const union AnimCmd *const sAnims_LOMBRE[] ={ + sAnim_GeneralFrame0, + sAnim_LOMBRE_1, +}; + +static const union AnimCmd *const sAnims_LUDICOLO[] ={ + sAnim_GeneralFrame0, + sAnim_LUDICOLO_1, +}; + +static const union AnimCmd *const sAnims_SEEDOT[] ={ + sAnim_GeneralFrame0, + sAnim_SEEDOT_1, +}; + +static const union AnimCmd *const sAnims_NUZLEAF[] ={ + sAnim_GeneralFrame0, + sAnim_NUZLEAF_1, +}; + +static const union AnimCmd *const sAnims_SHIFTRY[] ={ + sAnim_GeneralFrame0, + sAnim_SHIFTRY_1, +}; + +static const union AnimCmd *const sAnims_NINCADA[] ={ + sAnim_GeneralFrame0, + sAnim_NINCADA_1, +}; + +static const union AnimCmd *const sAnims_NINJASK[] ={ + sAnim_GeneralFrame0, + sAnim_NINJASK_1, +}; + +static const union AnimCmd *const sAnims_SHEDINJA[] ={ + sAnim_GeneralFrame0, + sAnim_SHEDINJA_1, +}; + +static const union AnimCmd *const sAnims_TAILLOW[] ={ + sAnim_GeneralFrame0, + sAnim_TAILLOW_1, +}; + +static const union AnimCmd *const sAnims_SWELLOW[] ={ + sAnim_GeneralFrame0, + sAnim_SWELLOW_1, +}; + +static const union AnimCmd *const sAnims_SHROOMISH[] ={ + sAnim_GeneralFrame0, + sAnim_SHROOMISH_1, +}; + +static const union AnimCmd *const sAnims_BRELOOM[] ={ + sAnim_GeneralFrame0, + sAnim_BRELOOM_1, +}; + +static const union AnimCmd *const sAnims_SPINDA[] ={ + sAnim_GeneralFrame0, +}; + +static const union AnimCmd *const sAnims_WINGULL[] ={ + sAnim_GeneralFrame0, + sAnim_WINGULL_1, +}; + +static const union AnimCmd *const sAnims_PELIPPER[] ={ + sAnim_GeneralFrame0, + sAnim_PELIPPER_1, +}; + +static const union AnimCmd *const sAnims_SURSKIT[] ={ + sAnim_GeneralFrame0, + sAnim_SURSKIT_1, + sAnim_SURSKIT_2, +}; + +static const union AnimCmd *const sAnims_MASQUERAIN[] ={ + sAnim_GeneralFrame0, + sAnim_MASQUERAIN_1, + sAnim_MASQUERAIN_2, +}; + +static const union AnimCmd *const sAnims_WAILMER[] ={ + sAnim_GeneralFrame0, + sAnim_WAILMER_1, +}; + +static const union AnimCmd *const sAnims_WAILORD[] ={ + sAnim_GeneralFrame0, + sAnim_WAILORD_1, +}; + +static const union AnimCmd *const sAnims_SKITTY[] ={ + sAnim_GeneralFrame0, + sAnim_SKITTY_1, +}; + +static const union AnimCmd *const sAnims_DELCATTY[] ={ + sAnim_GeneralFrame0, + sAnim_DELCATTY_1, +}; + +static const union AnimCmd *const sAnims_KECLEON[] ={ + sAnim_GeneralFrame0, + sAnim_KECLEON_1, +}; + +static const union AnimCmd *const sAnims_BALTOY[] ={ + sAnim_GeneralFrame0, + sAnim_BALTOY_1, +}; + +static const union AnimCmd *const sAnims_CLAYDOL[] ={ + sAnim_GeneralFrame0, + sAnim_CLAYDOL_1, +}; + +static const union AnimCmd *const sAnims_NOSEPASS[] ={ + sAnim_GeneralFrame0, + sAnim_NOSEPASS_1, +}; + +static const union AnimCmd *const sAnims_TORKOAL[] ={ + sAnim_GeneralFrame0, + sAnim_TORKOAL_1, +}; + +static const union AnimCmd *const sAnims_SABLEYE[] ={ + sAnim_GeneralFrame0, + sAnim_SABLEYE_1, +}; + +static const union AnimCmd *const sAnims_BARBOACH[] ={ + sAnim_GeneralFrame0, + sAnim_BARBOACH_1, +}; + +static const union AnimCmd *const sAnims_WHISCASH[] ={ + sAnim_GeneralFrame0, + sAnim_WHISCASH_1, +}; + +static const union AnimCmd *const sAnims_LUVDISC[] ={ + sAnim_GeneralFrame0, + sAnim_LUVDISC_1, +}; + +static const union AnimCmd *const sAnims_CORPHISH[] ={ + sAnim_GeneralFrame0, + sAnim_CORPHISH_1, +}; + +static const union AnimCmd *const sAnims_CRAWDAUNT[] ={ + sAnim_GeneralFrame0, + sAnim_CRAWDAUNT_1, +}; + +static const union AnimCmd *const sAnims_FEEBAS[] ={ + sAnim_GeneralFrame0, + sAnim_FEEBAS_1, +}; + +static const union AnimCmd *const sAnims_MILOTIC[] ={ + sAnim_GeneralFrame0, + sAnim_MILOTIC_1, +}; + +static const union AnimCmd *const sAnims_CARVANHA[] ={ + sAnim_GeneralFrame0, + sAnim_CARVANHA_1, +}; + +static const union AnimCmd *const sAnims_SHARPEDO[] ={ + sAnim_GeneralFrame0, + sAnim_SHARPEDO_1, +}; + +static const union AnimCmd *const sAnims_TRAPINCH[] ={ + sAnim_GeneralFrame0, + sAnim_TRAPINCH_1, +}; + +static const union AnimCmd *const sAnims_VIBRAVA[] ={ + sAnim_GeneralFrame0, + sAnim_VIBRAVA_1, +}; + +static const union AnimCmd *const sAnims_FLYGON[] ={ + sAnim_GeneralFrame0, + sAnim_FLYGON_1, +}; + +static const union AnimCmd *const sAnims_MAKUHITA[] ={ + sAnim_GeneralFrame0, + sAnim_MAKUHITA_1, +}; + +static const union AnimCmd *const sAnims_HARIYAMA[] ={ + sAnim_GeneralFrame0, + sAnim_HARIYAMA_1, +}; + +static const union AnimCmd *const sAnims_ELECTRIKE[] ={ + sAnim_GeneralFrame0, + sAnim_ELECTRIKE_1, +}; + +static const union AnimCmd *const sAnims_MANECTRIC[] ={ + sAnim_GeneralFrame0, + sAnim_MANECTRIC_1, +}; + +static const union AnimCmd *const sAnims_NUMEL[] ={ + sAnim_GeneralFrame0, + sAnim_NUMEL_1, +}; + +static const union AnimCmd *const sAnims_CAMERUPT[] ={ + sAnim_GeneralFrame0, + sAnim_CAMERUPT_1, +}; + +static const union AnimCmd *const sAnims_SPHEAL[] ={ + sAnim_GeneralFrame0, + sAnim_SPHEAL_1, +}; + +static const union AnimCmd *const sAnims_SEALEO[] ={ + sAnim_GeneralFrame0, + sAnim_SEALEO_1, +}; + +static const union AnimCmd *const sAnims_WALREIN[] ={ + sAnim_GeneralFrame0, + sAnim_WALREIN_1, +}; + +static const union AnimCmd *const sAnims_CACNEA[] ={ + sAnim_GeneralFrame0, + sAnim_CACNEA_1, +}; + +static const union AnimCmd *const sAnims_CACTURNE[] ={ + sAnim_GeneralFrame0, + sAnim_CACTURNE_1, +}; + +static const union AnimCmd *const sAnims_SNORUNT[] ={ + sAnim_GeneralFrame0, + sAnim_SNORUNT_1, +}; + +static const union AnimCmd *const sAnims_GLALIE[] ={ + sAnim_GeneralFrame0, + sAnim_GLALIE_1, +}; + +static const union AnimCmd *const sAnims_LUNATONE[] ={ + sAnim_GeneralFrame0, + sAnim_LUNATONE_1, + sAnim_LUNATONE_2, +}; + +static const union AnimCmd *const sAnims_SOLROCK[] ={ + sAnim_GeneralFrame0, + sAnim_SOLROCK_1, + sAnim_SOLROCK_2, +}; + +static const union AnimCmd *const sAnims_AZURILL[] ={ + sAnim_GeneralFrame0, + sAnim_AZURILL_1, +}; + +static const union AnimCmd *const sAnims_SPOINK[] ={ + sAnim_GeneralFrame0, + sAnim_SPOINK_1, +}; + +static const union AnimCmd *const sAnims_GRUMPIG[] ={ + sAnim_GeneralFrame0, + sAnim_GRUMPIG_1, +}; + +static const union AnimCmd *const sAnims_PLUSLE[] ={ + sAnim_GeneralFrame0, + sAnim_PLUSLE_1, +}; + +static const union AnimCmd *const sAnims_MINUN[] ={ + sAnim_GeneralFrame0, + sAnim_MINUN_1, +}; + +static const union AnimCmd *const sAnims_MAWILE[] ={ + sAnim_GeneralFrame0, + sAnim_MAWILE_1, +}; + +static const union AnimCmd *const sAnims_MEDITITE[] ={ + sAnim_GeneralFrame0, + sAnim_MEDITITE_1, +}; + +static const union AnimCmd *const sAnims_MEDICHAM[] ={ + sAnim_GeneralFrame0, + sAnim_MEDICHAM_1, +}; + +static const union AnimCmd *const sAnims_SWABLU[] ={ + sAnim_GeneralFrame0, + sAnim_SWABLU_1, + sAnim_SWABLU_2, +}; + +static const union AnimCmd *const sAnims_ALTARIA[] ={ + sAnim_GeneralFrame0, + sAnim_ALTARIA_1, + sAnim_ALTARIA_2, +}; + +static const union AnimCmd *const sAnims_WYNAUT[] ={ + sAnim_GeneralFrame0, + sAnim_WYNAUT_1, +}; + +static const union AnimCmd *const sAnims_DUSKULL[] ={ + sAnim_GeneralFrame0, + sAnim_DUSKULL_1, +}; + +static const union AnimCmd *const sAnims_DUSCLOPS[] ={ + sAnim_GeneralFrame0, + sAnim_DUSCLOPS_1, +}; + +static const union AnimCmd *const sAnims_ROSELIA[] ={ + sAnim_GeneralFrame0, + sAnim_ROSELIA_1, +}; + +static const union AnimCmd *const sAnims_SLAKOTH[] ={ + sAnim_GeneralFrame0, + sAnim_SLAKOTH_1, +}; + +static const union AnimCmd *const sAnims_VIGOROTH[] ={ + sAnim_GeneralFrame0, + sAnim_VIGOROTH_1, +}; + +static const union AnimCmd *const sAnims_SLAKING[] ={ + sAnim_GeneralFrame0, + sAnim_SLAKING_1, +}; + +static const union AnimCmd *const sAnims_GULPIN[] ={ + sAnim_GeneralFrame0, + sAnim_GULPIN_1, +}; + +static const union AnimCmd *const sAnims_SWALOT[] ={ + sAnim_GeneralFrame0, + sAnim_SWALOT_1, +}; + +static const union AnimCmd *const sAnims_TROPIUS[] ={ + sAnim_GeneralFrame0, + sAnim_TROPIUS_1, +}; + +static const union AnimCmd *const sAnims_WHISMUR[] ={ + sAnim_GeneralFrame0, + sAnim_WHISMUR_1, +}; + +static const union AnimCmd *const sAnims_LOUDRED[] ={ + sAnim_GeneralFrame0, + sAnim_LOUDRED_1, +}; + +static const union AnimCmd *const sAnims_EXPLOUD[] ={ + sAnim_GeneralFrame0, + sAnim_EXPLOUD_1, +}; + +static const union AnimCmd *const sAnims_CLAMPERL[] ={ + sAnim_GeneralFrame0, + sAnim_CLAMPERL_1, +}; + +static const union AnimCmd *const sAnims_HUNTAIL[] ={ + sAnim_GeneralFrame0, + sAnim_HUNTAIL_1, +}; + +static const union AnimCmd *const sAnims_GOREBYSS[] ={ + sAnim_GeneralFrame0, + sAnim_GOREBYSS_1, +}; + +static const union AnimCmd *const sAnims_ABSOL[] ={ + sAnim_GeneralFrame0, + sAnim_ABSOL_1, +}; + +static const union AnimCmd *const sAnims_SHUPPET[] ={ + sAnim_GeneralFrame0, + sAnim_SHUPPET_1, +}; + +static const union AnimCmd *const sAnims_BANETTE[] ={ + sAnim_GeneralFrame0, + sAnim_BANETTE_1, +}; + +static const union AnimCmd *const sAnims_SEVIPER[] ={ + sAnim_GeneralFrame0, + sAnim_SEVIPER_1, +}; + +static const union AnimCmd *const sAnims_ZANGOOSE[] ={ + sAnim_GeneralFrame0, + sAnim_ZANGOOSE_1, +}; + +static const union AnimCmd *const sAnims_RELICANTH[] ={ + sAnim_GeneralFrame0, + sAnim_RELICANTH_1, +}; + +static const union AnimCmd *const sAnims_ARON[] ={ + sAnim_GeneralFrame0, + sAnim_ARON_1, +}; + +static const union AnimCmd *const sAnims_LAIRON[] ={ + sAnim_GeneralFrame0, + sAnim_LAIRON_1, +}; + +static const union AnimCmd *const sAnims_AGGRON[] ={ + sAnim_GeneralFrame0, + sAnim_AGGRON_1, +}; + +static const union AnimCmd *const sAnims_CASTFORM[] ={ + sAnim_CASTFORM_0, + sAnim_CASTFORM_1, + sAnim_CASTFORM_2, + sAnim_CASTFORM_3, +}; + +static const union AnimCmd *const sAnims_VOLBEAT[] ={ + sAnim_GeneralFrame0, + sAnim_VOLBEAT_1, +}; + +static const union AnimCmd *const sAnims_ILLUMISE[] ={ + sAnim_GeneralFrame0, + sAnim_ILLUMISE_1, +}; + +static const union AnimCmd *const sAnims_LILEEP[] ={ + sAnim_GeneralFrame0, + sAnim_LILEEP_1, +}; + +static const union AnimCmd *const sAnims_CRADILY[] ={ + sAnim_GeneralFrame0, + sAnim_CRADILY_1, +}; + +static const union AnimCmd *const sAnims_ANORITH[] ={ + sAnim_GeneralFrame0, + sAnim_ANORITH_1, +}; + +static const union AnimCmd *const sAnims_ARMALDO[] ={ + sAnim_GeneralFrame0, + sAnim_ARMALDO_1, +}; + +static const union AnimCmd *const sAnims_RALTS[] ={ + sAnim_GeneralFrame0, + sAnim_RALTS_1, +}; + +static const union AnimCmd *const sAnims_KIRLIA[] ={ + sAnim_GeneralFrame0, + sAnim_KIRLIA_1, +}; + +static const union AnimCmd *const sAnims_GARDEVOIR[] ={ + sAnim_GeneralFrame0, + sAnim_GARDEVOIR_1, +}; + +static const union AnimCmd *const sAnims_BAGON[] ={ + sAnim_GeneralFrame0, + sAnim_BAGON_1, +}; + +static const union AnimCmd *const sAnims_SHELGON[] ={ + sAnim_GeneralFrame0, + sAnim_SHELGON_1, +}; + +static const union AnimCmd *const sAnims_SALAMENCE[] ={ + sAnim_GeneralFrame0, + sAnim_SALAMENCE_1, +}; + +static const union AnimCmd *const sAnims_BELDUM[] ={ + sAnim_GeneralFrame0, + sAnim_BELDUM_1, +}; + +static const union AnimCmd *const sAnims_METANG[] ={ + sAnim_GeneralFrame0, + sAnim_METANG_1, +}; + +static const union AnimCmd *const sAnims_METAGROSS[] ={ + sAnim_GeneralFrame0, + sAnim_METAGROSS_1, +}; + +static const union AnimCmd *const sAnims_REGIROCK[] ={ + sAnim_GeneralFrame0, + sAnim_REGIROCK_1, + sAnim_REGIROCK_2, +}; + +static const union AnimCmd *const sAnims_REGICE[] ={ + sAnim_GeneralFrame0, + sAnim_REGICE_1, +}; + +static const union AnimCmd *const sAnims_REGISTEEL[] ={ + sAnim_GeneralFrame0, + sAnim_REGISTEEL_1, + sAnim_REGISTEEL_2, +}; + +static const union AnimCmd *const sAnims_KYOGRE[] ={ + sAnim_GeneralFrame0, + sAnim_KYOGRE_1, + sAnim_KYOGRE_2, +}; + +static const union AnimCmd *const sAnims_GROUDON[] ={ + sAnim_GeneralFrame0, + sAnim_GROUDON_1, + sAnim_GROUDON_2, +}; + +static const union AnimCmd *const sAnims_RAYQUAZA[] ={ + sAnim_GeneralFrame0, + sAnim_RAYQUAZA_1, + sAnim_RAYQUAZA_2, +}; + +static const union AnimCmd *const sAnims_LATIAS[] ={ + sAnim_GeneralFrame0, + sAnim_LATIAS_1, + sAnim_LATIAS_2, +}; + +static const union AnimCmd *const sAnims_LATIOS[] ={ + sAnim_GeneralFrame0, + sAnim_LATIOS_1, + sAnim_LATIOS_2, +}; + +static const union AnimCmd *const sAnims_JIRACHI[] ={ + sAnim_GeneralFrame0, + sAnim_JIRACHI_1, + sAnim_JIRACHI_2, +}; + +static const union AnimCmd *const sAnims_DEOXYS[] ={ + sAnim_GeneralFrame0, + sAnim_DEOXYS_1, + sAnim_DEOXYS_2, +}; + +static const union AnimCmd *const sAnims_CHIMECHO[] ={ + sAnim_GeneralFrame0, + sAnim_CHIMECHO_1, +}; + +static const union AnimCmd *const sAnims_EGG[] ={ + sAnim_GeneralFrame0, + sAnim_EGG_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_B[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_B_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_C[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_C_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_D[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_D_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_E[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_E_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_F[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_F_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_G[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_G_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_H[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_H_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_I[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_I_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_J[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_J_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_K[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_K_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_L[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_L_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_M[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_M_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_N[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_N_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_O[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_O_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_P[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_P_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_Q[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_Q_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_R[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_R_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_S[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_S_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_T[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_T_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_U[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_U_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_V[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_V_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_W[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_W_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_X[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_X_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_Y[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_Y_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_Z[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_Z_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_EMARK[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_EMARK_1, +}; + +static const union AnimCmd *const sAnims_UNOWN_QMARK[] ={ + sAnim_GeneralFrame0, + sAnim_UNOWN_QMARK_1, +}; + +#define ANIM_CMD(name) [SPECIES_##name] = sAnims_##name +#define ANIM_CMD_FULL(name, anims) [SPECIES_##name] = anims + +const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[] = +{ + ANIM_CMD(NONE), + ANIM_CMD(BULBASAUR), + ANIM_CMD(IVYSAUR), + ANIM_CMD(VENUSAUR), + ANIM_CMD(CHARMANDER), + ANIM_CMD(CHARMELEON), + ANIM_CMD(CHARIZARD), + ANIM_CMD(SQUIRTLE), + ANIM_CMD(WARTORTLE), + ANIM_CMD(BLASTOISE), + ANIM_CMD(CATERPIE), + ANIM_CMD(METAPOD), + ANIM_CMD(BUTTERFREE), + ANIM_CMD(WEEDLE), + ANIM_CMD(KAKUNA), + ANIM_CMD(BEEDRILL), + ANIM_CMD(PIDGEY), + ANIM_CMD(PIDGEOTTO), + ANIM_CMD(PIDGEOT), + ANIM_CMD(RATTATA), + ANIM_CMD(RATICATE), + ANIM_CMD(SPEAROW), + ANIM_CMD(FEAROW), + ANIM_CMD(EKANS), + ANIM_CMD(ARBOK), + ANIM_CMD(PIKACHU), + ANIM_CMD(RAICHU), + ANIM_CMD(SANDSHREW), + ANIM_CMD(SANDSLASH), + ANIM_CMD(NIDORAN_F), + ANIM_CMD(NIDORINA), + ANIM_CMD(NIDOQUEEN), + ANIM_CMD(NIDORAN_M), + ANIM_CMD(NIDORINO), + ANIM_CMD(NIDOKING), + ANIM_CMD(CLEFAIRY), + ANIM_CMD(CLEFABLE), + ANIM_CMD(VULPIX), + ANIM_CMD(NINETALES), + ANIM_CMD(JIGGLYPUFF), + ANIM_CMD(WIGGLYTUFF), + ANIM_CMD(ZUBAT), + ANIM_CMD(GOLBAT), + ANIM_CMD(ODDISH), + ANIM_CMD(GLOOM), + ANIM_CMD(VILEPLUME), + ANIM_CMD(PARAS), + ANIM_CMD(PARASECT), + ANIM_CMD(VENONAT), + ANIM_CMD(VENOMOTH), + ANIM_CMD(DIGLETT), + ANIM_CMD(DUGTRIO), + ANIM_CMD(MEOWTH), + ANIM_CMD(PERSIAN), + ANIM_CMD(PSYDUCK), + ANIM_CMD(GOLDUCK), + ANIM_CMD(MANKEY), + ANIM_CMD(PRIMEAPE), + ANIM_CMD(GROWLITHE), + ANIM_CMD(ARCANINE), + ANIM_CMD(POLIWAG), + ANIM_CMD(POLIWHIRL), + ANIM_CMD(POLIWRATH), + ANIM_CMD(ABRA), + ANIM_CMD(KADABRA), + ANIM_CMD(ALAKAZAM), + ANIM_CMD(MACHOP), + ANIM_CMD(MACHOKE), + ANIM_CMD(MACHAMP), + ANIM_CMD(BELLSPROUT), + ANIM_CMD(WEEPINBELL), + ANIM_CMD(VICTREEBEL), + ANIM_CMD(TENTACOOL), + ANIM_CMD(TENTACRUEL), + ANIM_CMD(GEODUDE), + ANIM_CMD(GRAVELER), + ANIM_CMD(GOLEM), + ANIM_CMD(PONYTA), + ANIM_CMD(RAPIDASH), + ANIM_CMD(SLOWPOKE), + ANIM_CMD(SLOWBRO), + ANIM_CMD(MAGNEMITE), + ANIM_CMD(MAGNETON), + ANIM_CMD(FARFETCHD), + ANIM_CMD(DODUO), + ANIM_CMD(DODRIO), + ANIM_CMD(SEEL), + ANIM_CMD(DEWGONG), + ANIM_CMD(GRIMER), + ANIM_CMD(MUK), + ANIM_CMD(SHELLDER), + ANIM_CMD(CLOYSTER), + ANIM_CMD(GASTLY), + ANIM_CMD(HAUNTER), + ANIM_CMD(GENGAR), + ANIM_CMD(ONIX), + ANIM_CMD(DROWZEE), + ANIM_CMD(HYPNO), + ANIM_CMD(KRABBY), + ANIM_CMD(KINGLER), + ANIM_CMD(VOLTORB), + ANIM_CMD(ELECTRODE), + ANIM_CMD(EXEGGCUTE), + ANIM_CMD(EXEGGUTOR), + ANIM_CMD(CUBONE), + ANIM_CMD(MAROWAK), + ANIM_CMD(HITMONLEE), + ANIM_CMD(HITMONCHAN), + ANIM_CMD(LICKITUNG), + ANIM_CMD(KOFFING), + ANIM_CMD(WEEZING), + ANIM_CMD(RHYHORN), + ANIM_CMD(RHYDON), + ANIM_CMD(CHANSEY), + ANIM_CMD(TANGELA), + ANIM_CMD(KANGASKHAN), + ANIM_CMD(HORSEA), + ANIM_CMD(SEADRA), + ANIM_CMD(GOLDEEN), + ANIM_CMD(SEAKING), + ANIM_CMD(STARYU), + ANIM_CMD(STARMIE), + ANIM_CMD(MR_MIME), + ANIM_CMD(SCYTHER), + ANIM_CMD(JYNX), + ANIM_CMD(ELECTABUZZ), + ANIM_CMD(MAGMAR), + ANIM_CMD(PINSIR), + ANIM_CMD(TAUROS), + ANIM_CMD(MAGIKARP), + ANIM_CMD(GYARADOS), + ANIM_CMD(LAPRAS), + ANIM_CMD(DITTO), + ANIM_CMD(EEVEE), + ANIM_CMD(VAPOREON), + ANIM_CMD(JOLTEON), + ANIM_CMD(FLAREON), + ANIM_CMD(PORYGON), + ANIM_CMD(OMANYTE), + ANIM_CMD(OMASTAR), + ANIM_CMD(KABUTO), + ANIM_CMD(KABUTOPS), + ANIM_CMD(AERODACTYL), + ANIM_CMD(SNORLAX), + ANIM_CMD(ARTICUNO), + ANIM_CMD(ZAPDOS), + ANIM_CMD(MOLTRES), + ANIM_CMD(DRATINI), + ANIM_CMD(DRAGONAIR), + ANIM_CMD(DRAGONITE), + ANIM_CMD(MEWTWO), + ANIM_CMD(MEW), + ANIM_CMD(CHIKORITA), + ANIM_CMD(BAYLEEF), + ANIM_CMD(MEGANIUM), + ANIM_CMD(CYNDAQUIL), + ANIM_CMD(QUILAVA), + ANIM_CMD(TYPHLOSION), + ANIM_CMD(TOTODILE), + ANIM_CMD(CROCONAW), + ANIM_CMD(FERALIGATR), + ANIM_CMD(SENTRET), + ANIM_CMD(FURRET), + ANIM_CMD(HOOTHOOT), + ANIM_CMD(NOCTOWL), + ANIM_CMD(LEDYBA), + ANIM_CMD(LEDIAN), + ANIM_CMD(SPINARAK), + ANIM_CMD(ARIADOS), + ANIM_CMD(CROBAT), + ANIM_CMD(CHINCHOU), + ANIM_CMD(LANTURN), + ANIM_CMD(PICHU), + ANIM_CMD(CLEFFA), + ANIM_CMD(IGGLYBUFF), + ANIM_CMD(TOGEPI), + ANIM_CMD(TOGETIC), + ANIM_CMD(NATU), + ANIM_CMD(XATU), + ANIM_CMD(MAREEP), + ANIM_CMD(FLAAFFY), + ANIM_CMD(AMPHAROS), + ANIM_CMD(BELLOSSOM), + ANIM_CMD(MARILL), + ANIM_CMD(AZUMARILL), + ANIM_CMD(SUDOWOODO), + ANIM_CMD(POLITOED), + ANIM_CMD(HOPPIP), + ANIM_CMD(SKIPLOOM), + ANIM_CMD(JUMPLUFF), + ANIM_CMD(AIPOM), + ANIM_CMD(SUNKERN), + ANIM_CMD(SUNFLORA), + ANIM_CMD(YANMA), + ANIM_CMD(WOOPER), + ANIM_CMD(QUAGSIRE), + ANIM_CMD(ESPEON), + ANIM_CMD(UMBREON), + ANIM_CMD(MURKROW), + ANIM_CMD(SLOWKING), + ANIM_CMD(MISDREAVUS), + ANIM_CMD(UNOWN), + ANIM_CMD(WOBBUFFET), + ANIM_CMD(GIRAFARIG), + ANIM_CMD(PINECO), + ANIM_CMD(FORRETRESS), + ANIM_CMD(DUNSPARCE), + ANIM_CMD(GLIGAR), + ANIM_CMD(STEELIX), + ANIM_CMD(SNUBBULL), + ANIM_CMD(GRANBULL), + ANIM_CMD(QWILFISH), + ANIM_CMD(SCIZOR), + ANIM_CMD(SHUCKLE), + ANIM_CMD(HERACROSS), + ANIM_CMD(SNEASEL), + ANIM_CMD(TEDDIURSA), + ANIM_CMD(URSARING), + ANIM_CMD(SLUGMA), + ANIM_CMD(MAGCARGO), + ANIM_CMD(SWINUB), + ANIM_CMD(PILOSWINE), + ANIM_CMD(CORSOLA), + ANIM_CMD(REMORAID), + ANIM_CMD(OCTILLERY), + ANIM_CMD(DELIBIRD), + ANIM_CMD(MANTINE), + ANIM_CMD(SKARMORY), + ANIM_CMD(HOUNDOUR), + ANIM_CMD(HOUNDOOM), + ANIM_CMD(KINGDRA), + ANIM_CMD(PHANPY), + ANIM_CMD(DONPHAN), + ANIM_CMD(PORYGON2), + ANIM_CMD(STANTLER), + ANIM_CMD(SMEARGLE), + ANIM_CMD(TYROGUE), + ANIM_CMD(HITMONTOP), + ANIM_CMD(SMOOCHUM), + ANIM_CMD(ELEKID), + ANIM_CMD(MAGBY), + ANIM_CMD(MILTANK), + ANIM_CMD(BLISSEY), + ANIM_CMD(RAIKOU), + ANIM_CMD(ENTEI), + ANIM_CMD(SUICUNE), + ANIM_CMD(LARVITAR), + ANIM_CMD(PUPITAR), + ANIM_CMD(TYRANITAR), + ANIM_CMD(LUGIA), + ANIM_CMD(HO_OH), + ANIM_CMD(CELEBI), + ANIM_CMD(OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_C, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_D, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_E, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_F, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_G, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_H, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_I, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_J, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_K, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_L, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_M, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_N, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_O, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_P, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_Q, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_R, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_S, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_T, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_U, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_V, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_W, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_X, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_Y, sAnims_OLD_UNOWN_B), + ANIM_CMD_FULL(OLD_UNOWN_Z, sAnims_OLD_UNOWN_B), + ANIM_CMD(TREECKO), + ANIM_CMD(GROVYLE), + ANIM_CMD(SCEPTILE), + ANIM_CMD(TORCHIC), + ANIM_CMD(COMBUSKEN), + ANIM_CMD(BLAZIKEN), + ANIM_CMD(MUDKIP), + ANIM_CMD(MARSHTOMP), + ANIM_CMD(SWAMPERT), + ANIM_CMD(POOCHYENA), + ANIM_CMD(MIGHTYENA), + ANIM_CMD(ZIGZAGOON), + ANIM_CMD(LINOONE), + ANIM_CMD(WURMPLE), + ANIM_CMD(SILCOON), + ANIM_CMD(BEAUTIFLY), + ANIM_CMD(CASCOON), + ANIM_CMD(DUSTOX), + ANIM_CMD(LOTAD), + ANIM_CMD(LOMBRE), + ANIM_CMD(LUDICOLO), + ANIM_CMD(SEEDOT), + ANIM_CMD(NUZLEAF), + ANIM_CMD(SHIFTRY), + ANIM_CMD(NINCADA), + ANIM_CMD(NINJASK), + ANIM_CMD(SHEDINJA), + ANIM_CMD(TAILLOW), + ANIM_CMD(SWELLOW), + ANIM_CMD(SHROOMISH), + ANIM_CMD(BRELOOM), + ANIM_CMD(SPINDA), + ANIM_CMD(WINGULL), + ANIM_CMD(PELIPPER), + ANIM_CMD(SURSKIT), + ANIM_CMD(MASQUERAIN), + ANIM_CMD(WAILMER), + ANIM_CMD(WAILORD), + ANIM_CMD(SKITTY), + ANIM_CMD(DELCATTY), + ANIM_CMD(KECLEON), + ANIM_CMD(BALTOY), + ANIM_CMD(CLAYDOL), + ANIM_CMD(NOSEPASS), + ANIM_CMD(TORKOAL), + ANIM_CMD(SABLEYE), + ANIM_CMD(BARBOACH), + ANIM_CMD(WHISCASH), + ANIM_CMD(LUVDISC), + ANIM_CMD(CORPHISH), + ANIM_CMD(CRAWDAUNT), + ANIM_CMD(FEEBAS), + ANIM_CMD(MILOTIC), + ANIM_CMD(CARVANHA), + ANIM_CMD(SHARPEDO), + ANIM_CMD(TRAPINCH), + ANIM_CMD(VIBRAVA), + ANIM_CMD(FLYGON), + ANIM_CMD(MAKUHITA), + ANIM_CMD(HARIYAMA), + ANIM_CMD(ELECTRIKE), + ANIM_CMD(MANECTRIC), + ANIM_CMD(NUMEL), + ANIM_CMD(CAMERUPT), + ANIM_CMD(SPHEAL), + ANIM_CMD(SEALEO), + ANIM_CMD(WALREIN), + ANIM_CMD(CACNEA), + ANIM_CMD(CACTURNE), + ANIM_CMD(SNORUNT), + ANIM_CMD(GLALIE), + ANIM_CMD(LUNATONE), + ANIM_CMD(SOLROCK), + ANIM_CMD(AZURILL), + ANIM_CMD(SPOINK), + ANIM_CMD(GRUMPIG), + ANIM_CMD(PLUSLE), + ANIM_CMD(MINUN), + ANIM_CMD(MAWILE), + ANIM_CMD(MEDITITE), + ANIM_CMD(MEDICHAM), + ANIM_CMD(SWABLU), + ANIM_CMD(ALTARIA), + ANIM_CMD(WYNAUT), + ANIM_CMD(DUSKULL), + ANIM_CMD(DUSCLOPS), + ANIM_CMD(ROSELIA), + ANIM_CMD(SLAKOTH), + ANIM_CMD(VIGOROTH), + ANIM_CMD(SLAKING), + ANIM_CMD(GULPIN), + ANIM_CMD(SWALOT), + ANIM_CMD(TROPIUS), + ANIM_CMD(WHISMUR), + ANIM_CMD(LOUDRED), + ANIM_CMD(EXPLOUD), + ANIM_CMD(CLAMPERL), + ANIM_CMD(HUNTAIL), + ANIM_CMD(GOREBYSS), + ANIM_CMD(ABSOL), + ANIM_CMD(SHUPPET), + ANIM_CMD(BANETTE), + ANIM_CMD(SEVIPER), + ANIM_CMD(ZANGOOSE), + ANIM_CMD(RELICANTH), + ANIM_CMD(ARON), + ANIM_CMD(LAIRON), + ANIM_CMD(AGGRON), + ANIM_CMD(CASTFORM), + ANIM_CMD(VOLBEAT), + ANIM_CMD(ILLUMISE), + ANIM_CMD(LILEEP), + ANIM_CMD(CRADILY), + ANIM_CMD(ANORITH), + ANIM_CMD(ARMALDO), + ANIM_CMD(RALTS), + ANIM_CMD(KIRLIA), + ANIM_CMD(GARDEVOIR), + ANIM_CMD(BAGON), + ANIM_CMD(SHELGON), + ANIM_CMD(SALAMENCE), + ANIM_CMD(BELDUM), + ANIM_CMD(METANG), + ANIM_CMD(METAGROSS), + ANIM_CMD(REGIROCK), + ANIM_CMD(REGICE), + ANIM_CMD(REGISTEEL), + ANIM_CMD(KYOGRE), + ANIM_CMD(GROUDON), + ANIM_CMD(RAYQUAZA), + ANIM_CMD(LATIAS), + ANIM_CMD(LATIOS), + ANIM_CMD(JIRACHI), + ANIM_CMD(DEOXYS), + ANIM_CMD(CHIMECHO), + ANIM_CMD(EGG), + ANIM_CMD(UNOWN_B), + ANIM_CMD(UNOWN_C), + ANIM_CMD(UNOWN_D), + ANIM_CMD(UNOWN_E), + ANIM_CMD(UNOWN_F), + ANIM_CMD(UNOWN_G), + ANIM_CMD(UNOWN_H), + ANIM_CMD(UNOWN_I), + ANIM_CMD(UNOWN_J), + ANIM_CMD(UNOWN_K), + ANIM_CMD(UNOWN_L), + ANIM_CMD(UNOWN_M), + ANIM_CMD(UNOWN_N), + ANIM_CMD(UNOWN_O), + ANIM_CMD(UNOWN_P), + ANIM_CMD(UNOWN_Q), + ANIM_CMD(UNOWN_R), + ANIM_CMD(UNOWN_S), + ANIM_CMD(UNOWN_T), + ANIM_CMD(UNOWN_U), + ANIM_CMD(UNOWN_V), + ANIM_CMD(UNOWN_W), + ANIM_CMD(UNOWN_X), + ANIM_CMD(UNOWN_Y), + ANIM_CMD(UNOWN_Z), + ANIM_CMD(UNOWN_EMARK), + ANIM_CMD(UNOWN_QMARK), +}; diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index 95ec7a132..19de9a7dd 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -1,5 +1,3 @@ -#include "constants/species.h" - const struct MonCoords gMonFrontPicCoords[] = { [SPECIES_NONE] = diff --git a/src/data/pokemon_graphics/front_pic_table.h b/src/data/pokemon_graphics/front_pic_table.h index 92e6bab2e..82af860d3 100644 --- a/src/data/pokemon_graphics/front_pic_table.h +++ b/src/data/pokemon_graphics/front_pic_table.h @@ -1,443 +1,443 @@ const struct CompressedSpriteSheet gMonFrontPicTable[] = { - [SPECIES_NONE] = {gMonFrontPic_CircledQuestionMark, 0x800, SPECIES_NONE}, - [SPECIES_BULBASAUR] = {gMonFrontPic_Bulbasaur, 0x800, SPECIES_BULBASAUR}, - [SPECIES_IVYSAUR] = {gMonFrontPic_Ivysaur, 0x800, SPECIES_IVYSAUR}, - [SPECIES_VENUSAUR] = {gMonFrontPic_Venusaur, 0x800, SPECIES_VENUSAUR}, - [SPECIES_CHARMANDER] = {gMonFrontPic_Charmander, 0x800, SPECIES_CHARMANDER}, - [SPECIES_CHARMELEON] = {gMonFrontPic_Charmeleon, 0x800, SPECIES_CHARMELEON}, - [SPECIES_CHARIZARD] = {gMonFrontPic_Charizard, 0x800, SPECIES_CHARIZARD}, - [SPECIES_SQUIRTLE] = {gMonFrontPic_Squirtle, 0x800, SPECIES_SQUIRTLE}, - [SPECIES_WARTORTLE] = {gMonFrontPic_Wartortle, 0x800, SPECIES_WARTORTLE}, - [SPECIES_BLASTOISE] = {gMonFrontPic_Blastoise, 0x800, SPECIES_BLASTOISE}, - [SPECIES_CATERPIE] = {gMonFrontPic_Caterpie, 0x800, SPECIES_CATERPIE}, - [SPECIES_METAPOD] = {gMonFrontPic_Metapod, 0x800, SPECIES_METAPOD}, - [SPECIES_BUTTERFREE] = {gMonFrontPic_Butterfree, 0x800, SPECIES_BUTTERFREE}, - [SPECIES_WEEDLE] = {gMonFrontPic_Weedle, 0x800, SPECIES_WEEDLE}, - [SPECIES_KAKUNA] = {gMonFrontPic_Kakuna, 0x800, SPECIES_KAKUNA}, - [SPECIES_BEEDRILL] = {gMonFrontPic_Beedrill, 0x800, SPECIES_BEEDRILL}, - [SPECIES_PIDGEY] = {gMonFrontPic_Pidgey, 0x800, SPECIES_PIDGEY}, - [SPECIES_PIDGEOTTO] = {gMonFrontPic_Pidgeotto, 0x800, SPECIES_PIDGEOTTO}, - [SPECIES_PIDGEOT] = {gMonFrontPic_Pidgeot, 0x800, SPECIES_PIDGEOT}, - [SPECIES_RATTATA] = {gMonFrontPic_Rattata, 0x800, SPECIES_RATTATA}, - [SPECIES_RATICATE] = {gMonFrontPic_Raticate, 0x800, SPECIES_RATICATE}, - [SPECIES_SPEAROW] = {gMonFrontPic_Spearow, 0x800, SPECIES_SPEAROW}, - [SPECIES_FEAROW] = {gMonFrontPic_Fearow, 0x800, SPECIES_FEAROW}, - [SPECIES_EKANS] = {gMonFrontPic_Ekans, 0x800, SPECIES_EKANS}, - [SPECIES_ARBOK] = {gMonFrontPic_Arbok, 0x800, SPECIES_ARBOK}, - [SPECIES_PIKACHU] = {gMonFrontPic_Pikachu, 0x800, SPECIES_PIKACHU}, - [SPECIES_RAICHU] = {gMonFrontPic_Raichu, 0x800, SPECIES_RAICHU}, - [SPECIES_SANDSHREW] = {gMonFrontPic_Sandshrew, 0x800, SPECIES_SANDSHREW}, - [SPECIES_SANDSLASH] = {gMonFrontPic_Sandslash, 0x800, SPECIES_SANDSLASH}, - [SPECIES_NIDORAN_F] = {gMonFrontPic_NidoranF, 0x800, SPECIES_NIDORAN_F}, - [SPECIES_NIDORINA] = {gMonFrontPic_Nidorina, 0x800, SPECIES_NIDORINA}, - [SPECIES_NIDOQUEEN] = {gMonFrontPic_Nidoqueen, 0x800, SPECIES_NIDOQUEEN}, - [SPECIES_NIDORAN_M] = {gMonFrontPic_NidoranM, 0x800, SPECIES_NIDORAN_M}, - [SPECIES_NIDORINO] = {gMonFrontPic_Nidorino, 0x800, SPECIES_NIDORINO}, - [SPECIES_NIDOKING] = {gMonFrontPic_Nidoking, 0x800, SPECIES_NIDOKING}, - [SPECIES_CLEFAIRY] = {gMonFrontPic_Clefairy, 0x800, SPECIES_CLEFAIRY}, - [SPECIES_CLEFABLE] = {gMonFrontPic_Clefable, 0x800, SPECIES_CLEFABLE}, - [SPECIES_VULPIX] = {gMonFrontPic_Vulpix, 0x800, SPECIES_VULPIX}, - [SPECIES_NINETALES] = {gMonFrontPic_Ninetales, 0x800, SPECIES_NINETALES}, - [SPECIES_JIGGLYPUFF] = {gMonFrontPic_Jigglypuff, 0x800, SPECIES_JIGGLYPUFF}, - [SPECIES_WIGGLYTUFF] = {gMonFrontPic_Wigglytuff, 0x800, SPECIES_WIGGLYTUFF}, - [SPECIES_ZUBAT] = {gMonFrontPic_Zubat, 0x800, SPECIES_ZUBAT}, - [SPECIES_GOLBAT] = {gMonFrontPic_Golbat, 0x800, SPECIES_GOLBAT}, - [SPECIES_ODDISH] = {gMonFrontPic_Oddish, 0x800, SPECIES_ODDISH}, - [SPECIES_GLOOM] = {gMonFrontPic_Gloom, 0x800, SPECIES_GLOOM}, - [SPECIES_VILEPLUME] = {gMonFrontPic_Vileplume, 0x800, SPECIES_VILEPLUME}, - [SPECIES_PARAS] = {gMonFrontPic_Paras, 0x800, SPECIES_PARAS}, - [SPECIES_PARASECT] = {gMonFrontPic_Parasect, 0x800, SPECIES_PARASECT}, - [SPECIES_VENONAT] = {gMonFrontPic_Venonat, 0x800, SPECIES_VENONAT}, - [SPECIES_VENOMOTH] = {gMonFrontPic_Venomoth, 0x800, SPECIES_VENOMOTH}, - [SPECIES_DIGLETT] = {gMonFrontPic_Diglett, 0x800, SPECIES_DIGLETT}, - [SPECIES_DUGTRIO] = {gMonFrontPic_Dugtrio, 0x800, SPECIES_DUGTRIO}, - [SPECIES_MEOWTH] = {gMonFrontPic_Meowth, 0x800, SPECIES_MEOWTH}, - [SPECIES_PERSIAN] = {gMonFrontPic_Persian, 0x800, SPECIES_PERSIAN}, - [SPECIES_PSYDUCK] = {gMonFrontPic_Psyduck, 0x800, SPECIES_PSYDUCK}, - [SPECIES_GOLDUCK] = {gMonFrontPic_Golduck, 0x800, SPECIES_GOLDUCK}, - [SPECIES_MANKEY] = {gMonFrontPic_Mankey, 0x800, SPECIES_MANKEY}, - [SPECIES_PRIMEAPE] = {gMonFrontPic_Primeape, 0x800, SPECIES_PRIMEAPE}, - [SPECIES_GROWLITHE] = {gMonFrontPic_Growlithe, 0x800, SPECIES_GROWLITHE}, - [SPECIES_ARCANINE] = {gMonFrontPic_Arcanine, 0x800, SPECIES_ARCANINE}, - [SPECIES_POLIWAG] = {gMonFrontPic_Poliwag, 0x800, SPECIES_POLIWAG}, - [SPECIES_POLIWHIRL] = {gMonFrontPic_Poliwhirl, 0x800, SPECIES_POLIWHIRL}, - [SPECIES_POLIWRATH] = {gMonFrontPic_Poliwrath, 0x800, SPECIES_POLIWRATH}, - [SPECIES_ABRA] = {gMonFrontPic_Abra, 0x800, SPECIES_ABRA}, - [SPECIES_KADABRA] = {gMonFrontPic_Kadabra, 0x800, SPECIES_KADABRA}, - [SPECIES_ALAKAZAM] = {gMonFrontPic_Alakazam, 0x800, SPECIES_ALAKAZAM}, - [SPECIES_MACHOP] = {gMonFrontPic_Machop, 0x800, SPECIES_MACHOP}, - [SPECIES_MACHOKE] = {gMonFrontPic_Machoke, 0x800, SPECIES_MACHOKE}, - [SPECIES_MACHAMP] = {gMonFrontPic_Machamp, 0x800, SPECIES_MACHAMP}, - [SPECIES_BELLSPROUT] = {gMonFrontPic_Bellsprout, 0x800, SPECIES_BELLSPROUT}, - [SPECIES_WEEPINBELL] = {gMonFrontPic_Weepinbell, 0x800, SPECIES_WEEPINBELL}, - [SPECIES_VICTREEBEL] = {gMonFrontPic_Victreebel, 0x800, SPECIES_VICTREEBEL}, - [SPECIES_TENTACOOL] = {gMonFrontPic_Tentacool, 0x800, SPECIES_TENTACOOL}, - [SPECIES_TENTACRUEL] = {gMonFrontPic_Tentacruel, 0x800, SPECIES_TENTACRUEL}, - [SPECIES_GEODUDE] = {gMonFrontPic_Geodude, 0x800, SPECIES_GEODUDE}, - [SPECIES_GRAVELER] = {gMonFrontPic_Graveler, 0x800, SPECIES_GRAVELER}, - [SPECIES_GOLEM] = {gMonFrontPic_Golem, 0x800, SPECIES_GOLEM}, - [SPECIES_PONYTA] = {gMonFrontPic_Ponyta, 0x800, SPECIES_PONYTA}, - [SPECIES_RAPIDASH] = {gMonFrontPic_Rapidash, 0x800, SPECIES_RAPIDASH}, - [SPECIES_SLOWPOKE] = {gMonFrontPic_Slowpoke, 0x800, SPECIES_SLOWPOKE}, - [SPECIES_SLOWBRO] = {gMonFrontPic_Slowbro, 0x800, SPECIES_SLOWBRO}, - [SPECIES_MAGNEMITE] = {gMonFrontPic_Magnemite, 0x800, SPECIES_MAGNEMITE}, - [SPECIES_MAGNETON] = {gMonFrontPic_Magneton, 0x800, SPECIES_MAGNETON}, - [SPECIES_FARFETCHD] = {gMonFrontPic_Farfetchd, 0x800, SPECIES_FARFETCHD}, - [SPECIES_DODUO] = {gMonFrontPic_Doduo, 0x800, SPECIES_DODUO}, - [SPECIES_DODRIO] = {gMonFrontPic_Dodrio, 0x800, SPECIES_DODRIO}, - [SPECIES_SEEL] = {gMonFrontPic_Seel, 0x800, SPECIES_SEEL}, - [SPECIES_DEWGONG] = {gMonFrontPic_Dewgong, 0x800, SPECIES_DEWGONG}, - [SPECIES_GRIMER] = {gMonFrontPic_Grimer, 0x800, SPECIES_GRIMER}, - [SPECIES_MUK] = {gMonFrontPic_Muk, 0x800, SPECIES_MUK}, - [SPECIES_SHELLDER] = {gMonFrontPic_Shellder, 0x800, SPECIES_SHELLDER}, - [SPECIES_CLOYSTER] = {gMonFrontPic_Cloyster, 0x800, SPECIES_CLOYSTER}, - [SPECIES_GASTLY] = {gMonFrontPic_Gastly, 0x800, SPECIES_GASTLY}, - [SPECIES_HAUNTER] = {gMonFrontPic_Haunter, 0x800, SPECIES_HAUNTER}, - [SPECIES_GENGAR] = {gMonFrontPic_Gengar, 0x800, SPECIES_GENGAR}, - [SPECIES_ONIX] = {gMonFrontPic_Onix, 0x800, SPECIES_ONIX}, - [SPECIES_DROWZEE] = {gMonFrontPic_Drowzee, 0x800, SPECIES_DROWZEE}, - [SPECIES_HYPNO] = {gMonFrontPic_Hypno, 0x800, SPECIES_HYPNO}, - [SPECIES_KRABBY] = {gMonFrontPic_Krabby, 0x800, SPECIES_KRABBY}, - [SPECIES_KINGLER] = {gMonFrontPic_Kingler, 0x800, SPECIES_KINGLER}, - [SPECIES_VOLTORB] = {gMonFrontPic_Voltorb, 0x800, SPECIES_VOLTORB}, - [SPECIES_ELECTRODE] = {gMonFrontPic_Electrode, 0x800, SPECIES_ELECTRODE}, - [SPECIES_EXEGGCUTE] = {gMonFrontPic_Exeggcute, 0x800, SPECIES_EXEGGCUTE}, - [SPECIES_EXEGGUTOR] = {gMonFrontPic_Exeggutor, 0x800, SPECIES_EXEGGUTOR}, - [SPECIES_CUBONE] = {gMonFrontPic_Cubone, 0x800, SPECIES_CUBONE}, - [SPECIES_MAROWAK] = {gMonFrontPic_Marowak, 0x800, SPECIES_MAROWAK}, - [SPECIES_HITMONLEE] = {gMonFrontPic_Hitmonlee, 0x800, SPECIES_HITMONLEE}, - [SPECIES_HITMONCHAN] = {gMonFrontPic_Hitmonchan, 0x800, SPECIES_HITMONCHAN}, - [SPECIES_LICKITUNG] = {gMonFrontPic_Lickitung, 0x800, SPECIES_LICKITUNG}, - [SPECIES_KOFFING] = {gMonFrontPic_Koffing, 0x800, SPECIES_KOFFING}, - [SPECIES_WEEZING] = {gMonFrontPic_Weezing, 0x800, SPECIES_WEEZING}, - [SPECIES_RHYHORN] = {gMonFrontPic_Rhyhorn, 0x800, SPECIES_RHYHORN}, - [SPECIES_RHYDON] = {gMonFrontPic_Rhydon, 0x800, SPECIES_RHYDON}, - [SPECIES_CHANSEY] = {gMonFrontPic_Chansey, 0x800, SPECIES_CHANSEY}, - [SPECIES_TANGELA] = {gMonFrontPic_Tangela, 0x800, SPECIES_TANGELA}, - [SPECIES_KANGASKHAN] = {gMonFrontPic_Kangaskhan, 0x800, SPECIES_KANGASKHAN}, - [SPECIES_HORSEA] = {gMonFrontPic_Horsea, 0x800, SPECIES_HORSEA}, - [SPECIES_SEADRA] = {gMonFrontPic_Seadra, 0x800, SPECIES_SEADRA}, - [SPECIES_GOLDEEN] = {gMonFrontPic_Goldeen, 0x800, SPECIES_GOLDEEN}, - [SPECIES_SEAKING] = {gMonFrontPic_Seaking, 0x800, SPECIES_SEAKING}, - [SPECIES_STARYU] = {gMonFrontPic_Staryu, 0x800, SPECIES_STARYU}, - [SPECIES_STARMIE] = {gMonFrontPic_Starmie, 0x800, SPECIES_STARMIE}, - [SPECIES_MR_MIME] = {gMonFrontPic_Mrmime, 0x800, SPECIES_MR_MIME}, - [SPECIES_SCYTHER] = {gMonFrontPic_Scyther, 0x800, SPECIES_SCYTHER}, - [SPECIES_JYNX] = {gMonFrontPic_Jynx, 0x800, SPECIES_JYNX}, - [SPECIES_ELECTABUZZ] = {gMonFrontPic_Electabuzz, 0x800, SPECIES_ELECTABUZZ}, - [SPECIES_MAGMAR] = {gMonFrontPic_Magmar, 0x800, SPECIES_MAGMAR}, - [SPECIES_PINSIR] = {gMonFrontPic_Pinsir, 0x800, SPECIES_PINSIR}, - [SPECIES_TAUROS] = {gMonFrontPic_Tauros, 0x800, SPECIES_TAUROS}, - [SPECIES_MAGIKARP] = {gMonFrontPic_Magikarp, 0x800, SPECIES_MAGIKARP}, - [SPECIES_GYARADOS] = {gMonFrontPic_Gyarados, 0x800, SPECIES_GYARADOS}, - [SPECIES_LAPRAS] = {gMonFrontPic_Lapras, 0x800, SPECIES_LAPRAS}, - [SPECIES_DITTO] = {gMonFrontPic_Ditto, 0x800, SPECIES_DITTO}, - [SPECIES_EEVEE] = {gMonFrontPic_Eevee, 0x800, SPECIES_EEVEE}, - [SPECIES_VAPOREON] = {gMonFrontPic_Vaporeon, 0x800, SPECIES_VAPOREON}, - [SPECIES_JOLTEON] = {gMonFrontPic_Jolteon, 0x800, SPECIES_JOLTEON}, - [SPECIES_FLAREON] = {gMonFrontPic_Flareon, 0x800, SPECIES_FLAREON}, - [SPECIES_PORYGON] = {gMonFrontPic_Porygon, 0x800, SPECIES_PORYGON}, - [SPECIES_OMANYTE] = {gMonFrontPic_Omanyte, 0x800, SPECIES_OMANYTE}, - [SPECIES_OMASTAR] = {gMonFrontPic_Omastar, 0x800, SPECIES_OMASTAR}, - [SPECIES_KABUTO] = {gMonFrontPic_Kabuto, 0x800, SPECIES_KABUTO}, - [SPECIES_KABUTOPS] = {gMonFrontPic_Kabutops, 0x800, SPECIES_KABUTOPS}, - [SPECIES_AERODACTYL] = {gMonFrontPic_Aerodactyl, 0x800, SPECIES_AERODACTYL}, - [SPECIES_SNORLAX] = {gMonFrontPic_Snorlax, 0x800, SPECIES_SNORLAX}, - [SPECIES_ARTICUNO] = {gMonFrontPic_Articuno, 0x800, SPECIES_ARTICUNO}, - [SPECIES_ZAPDOS] = {gMonFrontPic_Zapdos, 0x800, SPECIES_ZAPDOS}, - [SPECIES_MOLTRES] = {gMonFrontPic_Moltres, 0x800, SPECIES_MOLTRES}, - [SPECIES_DRATINI] = {gMonFrontPic_Dratini, 0x800, SPECIES_DRATINI}, - [SPECIES_DRAGONAIR] = {gMonFrontPic_Dragonair, 0x800, SPECIES_DRAGONAIR}, - [SPECIES_DRAGONITE] = {gMonFrontPic_Dragonite, 0x800, SPECIES_DRAGONITE}, - [SPECIES_MEWTWO] = {gMonFrontPic_Mewtwo, 0x800, SPECIES_MEWTWO}, - [SPECIES_MEW] = {gMonFrontPic_Mew, 0x800, SPECIES_MEW}, - [SPECIES_CHIKORITA] = {gMonFrontPic_Chikorita, 0x800, SPECIES_CHIKORITA}, - [SPECIES_BAYLEEF] = {gMonFrontPic_Bayleef, 0x800, SPECIES_BAYLEEF}, - [SPECIES_MEGANIUM] = {gMonFrontPic_Meganium, 0x800, SPECIES_MEGANIUM}, - [SPECIES_CYNDAQUIL] = {gMonFrontPic_Cyndaquil, 0x800, SPECIES_CYNDAQUIL}, - [SPECIES_QUILAVA] = {gMonFrontPic_Quilava, 0x800, SPECIES_QUILAVA}, - [SPECIES_TYPHLOSION] = {gMonFrontPic_Typhlosion, 0x800, SPECIES_TYPHLOSION}, - [SPECIES_TOTODILE] = {gMonFrontPic_Totodile, 0x800, SPECIES_TOTODILE}, - [SPECIES_CROCONAW] = {gMonFrontPic_Croconaw, 0x800, SPECIES_CROCONAW}, - [SPECIES_FERALIGATR] = {gMonFrontPic_Feraligatr, 0x800, SPECIES_FERALIGATR}, - [SPECIES_SENTRET] = {gMonFrontPic_Sentret, 0x800, SPECIES_SENTRET}, - [SPECIES_FURRET] = {gMonFrontPic_Furret, 0x800, SPECIES_FURRET}, - [SPECIES_HOOTHOOT] = {gMonFrontPic_Hoothoot, 0x800, SPECIES_HOOTHOOT}, - [SPECIES_NOCTOWL] = {gMonFrontPic_Noctowl, 0x800, SPECIES_NOCTOWL}, - [SPECIES_LEDYBA] = {gMonFrontPic_Ledyba, 0x800, SPECIES_LEDYBA}, - [SPECIES_LEDIAN] = {gMonFrontPic_Ledian, 0x800, SPECIES_LEDIAN}, - [SPECIES_SPINARAK] = {gMonFrontPic_Spinarak, 0x800, SPECIES_SPINARAK}, - [SPECIES_ARIADOS] = {gMonFrontPic_Ariados, 0x800, SPECIES_ARIADOS}, - [SPECIES_CROBAT] = {gMonFrontPic_Crobat, 0x800, SPECIES_CROBAT}, - [SPECIES_CHINCHOU] = {gMonFrontPic_Chinchou, 0x800, SPECIES_CHINCHOU}, - [SPECIES_LANTURN] = {gMonFrontPic_Lanturn, 0x800, SPECIES_LANTURN}, - [SPECIES_PICHU] = {gMonFrontPic_Pichu, 0x800, SPECIES_PICHU}, - [SPECIES_CLEFFA] = {gMonFrontPic_Cleffa, 0x800, SPECIES_CLEFFA}, - [SPECIES_IGGLYBUFF] = {gMonFrontPic_Igglybuff, 0x800, SPECIES_IGGLYBUFF}, - [SPECIES_TOGEPI] = {gMonFrontPic_Togepi, 0x800, SPECIES_TOGEPI}, - [SPECIES_TOGETIC] = {gMonFrontPic_Togetic, 0x800, SPECIES_TOGETIC}, - [SPECIES_NATU] = {gMonFrontPic_Natu, 0x800, SPECIES_NATU}, - [SPECIES_XATU] = {gMonFrontPic_Xatu, 0x800, SPECIES_XATU}, - [SPECIES_MAREEP] = {gMonFrontPic_Mareep, 0x800, SPECIES_MAREEP}, - [SPECIES_FLAAFFY] = {gMonFrontPic_Flaaffy, 0x800, SPECIES_FLAAFFY}, - [SPECIES_AMPHAROS] = {gMonFrontPic_Ampharos, 0x800, SPECIES_AMPHAROS}, - [SPECIES_BELLOSSOM] = {gMonFrontPic_Bellossom, 0x800, SPECIES_BELLOSSOM}, - [SPECIES_MARILL] = {gMonFrontPic_Marill, 0x800, SPECIES_MARILL}, - [SPECIES_AZUMARILL] = {gMonFrontPic_Azumarill, 0x800, SPECIES_AZUMARILL}, - [SPECIES_SUDOWOODO] = {gMonFrontPic_Sudowoodo, 0x800, SPECIES_SUDOWOODO}, - [SPECIES_POLITOED] = {gMonFrontPic_Politoed, 0x800, SPECIES_POLITOED}, - [SPECIES_HOPPIP] = {gMonFrontPic_Hoppip, 0x800, SPECIES_HOPPIP}, - [SPECIES_SKIPLOOM] = {gMonFrontPic_Skiploom, 0x800, SPECIES_SKIPLOOM}, - [SPECIES_JUMPLUFF] = {gMonFrontPic_Jumpluff, 0x800, SPECIES_JUMPLUFF}, - [SPECIES_AIPOM] = {gMonFrontPic_Aipom, 0x800, SPECIES_AIPOM}, - [SPECIES_SUNKERN] = {gMonFrontPic_Sunkern, 0x800, SPECIES_SUNKERN}, - [SPECIES_SUNFLORA] = {gMonFrontPic_Sunflora, 0x800, SPECIES_SUNFLORA}, - [SPECIES_YANMA] = {gMonFrontPic_Yanma, 0x800, SPECIES_YANMA}, - [SPECIES_WOOPER] = {gMonFrontPic_Wooper, 0x800, SPECIES_WOOPER}, - [SPECIES_QUAGSIRE] = {gMonFrontPic_Quagsire, 0x800, SPECIES_QUAGSIRE}, - [SPECIES_ESPEON] = {gMonFrontPic_Espeon, 0x800, SPECIES_ESPEON}, - [SPECIES_UMBREON] = {gMonFrontPic_Umbreon, 0x800, SPECIES_UMBREON}, - [SPECIES_MURKROW] = {gMonFrontPic_Murkrow, 0x800, SPECIES_MURKROW}, - [SPECIES_SLOWKING] = {gMonFrontPic_Slowking, 0x800, SPECIES_SLOWKING}, - [SPECIES_MISDREAVUS] = {gMonFrontPic_Misdreavus, 0x800, SPECIES_MISDREAVUS}, - [SPECIES_UNOWN] = {gMonFrontPic_UnownA, 0x800, SPECIES_UNOWN}, - [SPECIES_WOBBUFFET] = {gMonFrontPic_Wobbuffet, 0x800, SPECIES_WOBBUFFET}, - [SPECIES_GIRAFARIG] = {gMonFrontPic_Girafarig, 0x800, SPECIES_GIRAFARIG}, - [SPECIES_PINECO] = {gMonFrontPic_Pineco, 0x800, SPECIES_PINECO}, - [SPECIES_FORRETRESS] = {gMonFrontPic_Forretress, 0x800, SPECIES_FORRETRESS}, - [SPECIES_DUNSPARCE] = {gMonFrontPic_Dunsparce, 0x800, SPECIES_DUNSPARCE}, - [SPECIES_GLIGAR] = {gMonFrontPic_Gligar, 0x800, SPECIES_GLIGAR}, - [SPECIES_STEELIX] = {gMonFrontPic_Steelix, 0x800, SPECIES_STEELIX}, - [SPECIES_SNUBBULL] = {gMonFrontPic_Snubbull, 0x800, SPECIES_SNUBBULL}, - [SPECIES_GRANBULL] = {gMonFrontPic_Granbull, 0x800, SPECIES_GRANBULL}, - [SPECIES_QWILFISH] = {gMonFrontPic_Qwilfish, 0x800, SPECIES_QWILFISH}, - [SPECIES_SCIZOR] = {gMonFrontPic_Scizor, 0x800, SPECIES_SCIZOR}, - [SPECIES_SHUCKLE] = {gMonFrontPic_Shuckle, 0x800, SPECIES_SHUCKLE}, - [SPECIES_HERACROSS] = {gMonFrontPic_Heracross, 0x800, SPECIES_HERACROSS}, - [SPECIES_SNEASEL] = {gMonFrontPic_Sneasel, 0x800, SPECIES_SNEASEL}, - [SPECIES_TEDDIURSA] = {gMonFrontPic_Teddiursa, 0x800, SPECIES_TEDDIURSA}, - [SPECIES_URSARING] = {gMonFrontPic_Ursaring, 0x800, SPECIES_URSARING}, - [SPECIES_SLUGMA] = {gMonFrontPic_Slugma, 0x800, SPECIES_SLUGMA}, - [SPECIES_MAGCARGO] = {gMonFrontPic_Magcargo, 0x800, SPECIES_MAGCARGO}, - [SPECIES_SWINUB] = {gMonFrontPic_Swinub, 0x800, SPECIES_SWINUB}, - [SPECIES_PILOSWINE] = {gMonFrontPic_Piloswine, 0x800, SPECIES_PILOSWINE}, - [SPECIES_CORSOLA] = {gMonFrontPic_Corsola, 0x800, SPECIES_CORSOLA}, - [SPECIES_REMORAID] = {gMonFrontPic_Remoraid, 0x800, SPECIES_REMORAID}, - [SPECIES_OCTILLERY] = {gMonFrontPic_Octillery, 0x800, SPECIES_OCTILLERY}, - [SPECIES_DELIBIRD] = {gMonFrontPic_Delibird, 0x800, SPECIES_DELIBIRD}, - [SPECIES_MANTINE] = {gMonFrontPic_Mantine, 0x800, SPECIES_MANTINE}, - [SPECIES_SKARMORY] = {gMonFrontPic_Skarmory, 0x800, SPECIES_SKARMORY}, - [SPECIES_HOUNDOUR] = {gMonFrontPic_Houndour, 0x800, SPECIES_HOUNDOUR}, - [SPECIES_HOUNDOOM] = {gMonFrontPic_Houndoom, 0x800, SPECIES_HOUNDOOM}, - [SPECIES_KINGDRA] = {gMonFrontPic_Kingdra, 0x800, SPECIES_KINGDRA}, - [SPECIES_PHANPY] = {gMonFrontPic_Phanpy, 0x800, SPECIES_PHANPY}, - [SPECIES_DONPHAN] = {gMonFrontPic_Donphan, 0x800, SPECIES_DONPHAN}, - [SPECIES_PORYGON2] = {gMonFrontPic_Porygon2, 0x800, SPECIES_PORYGON2}, - [SPECIES_STANTLER] = {gMonFrontPic_Stantler, 0x800, SPECIES_STANTLER}, - [SPECIES_SMEARGLE] = {gMonFrontPic_Smeargle, 0x800, SPECIES_SMEARGLE}, - [SPECIES_TYROGUE] = {gMonFrontPic_Tyrogue, 0x800, SPECIES_TYROGUE}, - [SPECIES_HITMONTOP] = {gMonFrontPic_Hitmontop, 0x800, SPECIES_HITMONTOP}, - [SPECIES_SMOOCHUM] = {gMonFrontPic_Smoochum, 0x800, SPECIES_SMOOCHUM}, - [SPECIES_ELEKID] = {gMonFrontPic_Elekid, 0x800, SPECIES_ELEKID}, - [SPECIES_MAGBY] = {gMonFrontPic_Magby, 0x800, SPECIES_MAGBY}, - [SPECIES_MILTANK] = {gMonFrontPic_Miltank, 0x800, SPECIES_MILTANK}, - [SPECIES_BLISSEY] = {gMonFrontPic_Blissey, 0x800, SPECIES_BLISSEY}, - [SPECIES_RAIKOU] = {gMonFrontPic_Raikou, 0x800, SPECIES_RAIKOU}, - [SPECIES_ENTEI] = {gMonFrontPic_Entei, 0x800, SPECIES_ENTEI}, - [SPECIES_SUICUNE] = {gMonFrontPic_Suicune, 0x800, SPECIES_SUICUNE}, - [SPECIES_LARVITAR] = {gMonFrontPic_Larvitar, 0x800, SPECIES_LARVITAR}, - [SPECIES_PUPITAR] = {gMonFrontPic_Pupitar, 0x800, SPECIES_PUPITAR}, - [SPECIES_TYRANITAR] = {gMonFrontPic_Tyranitar, 0x800, SPECIES_TYRANITAR}, - [SPECIES_LUGIA] = {gMonFrontPic_Lugia, 0x800, SPECIES_LUGIA}, - [SPECIES_HO_OH] = {gMonFrontPic_HoOh, 0x800, SPECIES_HO_OH}, - [SPECIES_CELEBI] = {gMonFrontPic_Celebi, 0x800, SPECIES_CELEBI}, - [SPECIES_OLD_UNOWN_B] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_B}, - [SPECIES_OLD_UNOWN_C] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_C}, - [SPECIES_OLD_UNOWN_D] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_D}, - [SPECIES_OLD_UNOWN_E] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_E}, - [SPECIES_OLD_UNOWN_F] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_F}, - [SPECIES_OLD_UNOWN_G] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_G}, - [SPECIES_OLD_UNOWN_H] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_H}, - [SPECIES_OLD_UNOWN_I] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_I}, - [SPECIES_OLD_UNOWN_J] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_J}, - [SPECIES_OLD_UNOWN_K] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_K}, - [SPECIES_OLD_UNOWN_L] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_L}, - [SPECIES_OLD_UNOWN_M] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_M}, - [SPECIES_OLD_UNOWN_N] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_N}, - [SPECIES_OLD_UNOWN_O] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_O}, - [SPECIES_OLD_UNOWN_P] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_P}, - [SPECIES_OLD_UNOWN_Q] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_Q}, - [SPECIES_OLD_UNOWN_R] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_R}, - [SPECIES_OLD_UNOWN_S] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_S}, - [SPECIES_OLD_UNOWN_T] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_T}, - [SPECIES_OLD_UNOWN_U] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_U}, - [SPECIES_OLD_UNOWN_V] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_V}, - [SPECIES_OLD_UNOWN_W] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_W}, - [SPECIES_OLD_UNOWN_X] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_X}, - [SPECIES_OLD_UNOWN_Y] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_Y}, - [SPECIES_OLD_UNOWN_Z] = {gMonFrontPic_DoubleQuestionMark, 0x800, SPECIES_OLD_UNOWN_Z}, - [SPECIES_TREECKO] = {gMonFrontPic_Treecko, 0x800, SPECIES_TREECKO}, - [SPECIES_GROVYLE] = {gMonFrontPic_Grovyle, 0x800, SPECIES_GROVYLE}, - [SPECIES_SCEPTILE] = {gMonFrontPic_Sceptile, 0x800, SPECIES_SCEPTILE}, - [SPECIES_TORCHIC] = {gMonFrontPic_Torchic, 0x800, SPECIES_TORCHIC}, - [SPECIES_COMBUSKEN] = {gMonFrontPic_Combusken, 0x800, SPECIES_COMBUSKEN}, - [SPECIES_BLAZIKEN] = {gMonFrontPic_Blaziken, 0x800, SPECIES_BLAZIKEN}, - [SPECIES_MUDKIP] = {gMonFrontPic_Mudkip, 0x800, SPECIES_MUDKIP}, - [SPECIES_MARSHTOMP] = {gMonFrontPic_Marshtomp, 0x800, SPECIES_MARSHTOMP}, - [SPECIES_SWAMPERT] = {gMonFrontPic_Swampert, 0x800, SPECIES_SWAMPERT}, - [SPECIES_POOCHYENA] = {gMonFrontPic_Poochyena, 0x800, SPECIES_POOCHYENA}, - [SPECIES_MIGHTYENA] = {gMonFrontPic_Mightyena, 0x800, SPECIES_MIGHTYENA}, - [SPECIES_ZIGZAGOON] = {gMonFrontPic_Zigzagoon, 0x800, SPECIES_ZIGZAGOON}, - [SPECIES_LINOONE] = {gMonFrontPic_Linoone, 0x800, SPECIES_LINOONE}, - [SPECIES_WURMPLE] = {gMonFrontPic_Wurmple, 0x800, SPECIES_WURMPLE}, - [SPECIES_SILCOON] = {gMonFrontPic_Silcoon, 0x800, SPECIES_SILCOON}, - [SPECIES_BEAUTIFLY] = {gMonFrontPic_Beautifly, 0x800, SPECIES_BEAUTIFLY}, - [SPECIES_CASCOON] = {gMonFrontPic_Cascoon, 0x800, SPECIES_CASCOON}, - [SPECIES_DUSTOX] = {gMonFrontPic_Dustox, 0x800, SPECIES_DUSTOX}, - [SPECIES_LOTAD] = {gMonFrontPic_Lotad, 0x800, SPECIES_LOTAD}, - [SPECIES_LOMBRE] = {gMonFrontPic_Lombre, 0x800, SPECIES_LOMBRE}, - [SPECIES_LUDICOLO] = {gMonFrontPic_Ludicolo, 0x800, SPECIES_LUDICOLO}, - [SPECIES_SEEDOT] = {gMonFrontPic_Seedot, 0x800, SPECIES_SEEDOT}, - [SPECIES_NUZLEAF] = {gMonFrontPic_Nuzleaf, 0x800, SPECIES_NUZLEAF}, - [SPECIES_SHIFTRY] = {gMonFrontPic_Shiftry, 0x800, SPECIES_SHIFTRY}, - [SPECIES_NINCADA] = {gMonFrontPic_Nincada, 0x800, SPECIES_NINCADA}, - [SPECIES_NINJASK] = {gMonFrontPic_Ninjask, 0x800, SPECIES_NINJASK}, - [SPECIES_SHEDINJA] = {gMonFrontPic_Shedinja, 0x800, SPECIES_SHEDINJA}, - [SPECIES_TAILLOW] = {gMonFrontPic_Taillow, 0x800, SPECIES_TAILLOW}, - [SPECIES_SWELLOW] = {gMonFrontPic_Swellow, 0x800, SPECIES_SWELLOW}, - [SPECIES_SHROOMISH] = {gMonFrontPic_Shroomish, 0x800, SPECIES_SHROOMISH}, - [SPECIES_BRELOOM] = {gMonFrontPic_Breloom, 0x800, SPECIES_BRELOOM}, - [SPECIES_SPINDA] = {gMonFrontPic_Spinda, 0x800, SPECIES_SPINDA}, - [SPECIES_WINGULL] = {gMonFrontPic_Wingull, 0x800, SPECIES_WINGULL}, - [SPECIES_PELIPPER] = {gMonFrontPic_Pelipper, 0x800, SPECIES_PELIPPER}, - [SPECIES_SURSKIT] = {gMonFrontPic_Surskit, 0x800, SPECIES_SURSKIT}, - [SPECIES_MASQUERAIN] = {gMonFrontPic_Masquerain, 0x800, SPECIES_MASQUERAIN}, - [SPECIES_WAILMER] = {gMonFrontPic_Wailmer, 0x800, SPECIES_WAILMER}, - [SPECIES_WAILORD] = {gMonFrontPic_Wailord, 0x800, SPECIES_WAILORD}, - [SPECIES_SKITTY] = {gMonFrontPic_Skitty, 0x800, SPECIES_SKITTY}, - [SPECIES_DELCATTY] = {gMonFrontPic_Delcatty, 0x800, SPECIES_DELCATTY}, - [SPECIES_KECLEON] = {gMonFrontPic_Kecleon, 0x800, SPECIES_KECLEON}, - [SPECIES_BALTOY] = {gMonFrontPic_Baltoy, 0x800, SPECIES_BALTOY}, - [SPECIES_CLAYDOL] = {gMonFrontPic_Claydol, 0x800, SPECIES_CLAYDOL}, - [SPECIES_NOSEPASS] = {gMonFrontPic_Nosepass, 0x800, SPECIES_NOSEPASS}, - [SPECIES_TORKOAL] = {gMonFrontPic_Torkoal, 0x800, SPECIES_TORKOAL}, - [SPECIES_SABLEYE] = {gMonFrontPic_Sableye, 0x800, SPECIES_SABLEYE}, - [SPECIES_BARBOACH] = {gMonFrontPic_Barboach, 0x800, SPECIES_BARBOACH}, - [SPECIES_WHISCASH] = {gMonFrontPic_Whiscash, 0x800, SPECIES_WHISCASH}, - [SPECIES_LUVDISC] = {gMonFrontPic_Luvdisc, 0x800, SPECIES_LUVDISC}, - [SPECIES_CORPHISH] = {gMonFrontPic_Corphish, 0x800, SPECIES_CORPHISH}, - [SPECIES_CRAWDAUNT] = {gMonFrontPic_Crawdaunt, 0x800, SPECIES_CRAWDAUNT}, - [SPECIES_FEEBAS] = {gMonFrontPic_Feebas, 0x800, SPECIES_FEEBAS}, - [SPECIES_MILOTIC] = {gMonFrontPic_Milotic, 0x800, SPECIES_MILOTIC}, - [SPECIES_CARVANHA] = {gMonFrontPic_Carvanha, 0x800, SPECIES_CARVANHA}, - [SPECIES_SHARPEDO] = {gMonFrontPic_Sharpedo, 0x800, SPECIES_SHARPEDO}, - [SPECIES_TRAPINCH] = {gMonFrontPic_Trapinch, 0x800, SPECIES_TRAPINCH}, - [SPECIES_VIBRAVA] = {gMonFrontPic_Vibrava, 0x800, SPECIES_VIBRAVA}, - [SPECIES_FLYGON] = {gMonFrontPic_Flygon, 0x800, SPECIES_FLYGON}, - [SPECIES_MAKUHITA] = {gMonFrontPic_Makuhita, 0x800, SPECIES_MAKUHITA}, - [SPECIES_HARIYAMA] = {gMonFrontPic_Hariyama, 0x800, SPECIES_HARIYAMA}, - [SPECIES_ELECTRIKE] = {gMonFrontPic_Electrike, 0x800, SPECIES_ELECTRIKE}, - [SPECIES_MANECTRIC] = {gMonFrontPic_Manectric, 0x800, SPECIES_MANECTRIC}, - [SPECIES_NUMEL] = {gMonFrontPic_Numel, 0x800, SPECIES_NUMEL}, - [SPECIES_CAMERUPT] = {gMonFrontPic_Camerupt, 0x800, SPECIES_CAMERUPT}, - [SPECIES_SPHEAL] = {gMonFrontPic_Spheal, 0x800, SPECIES_SPHEAL}, - [SPECIES_SEALEO] = {gMonFrontPic_Sealeo, 0x800, SPECIES_SEALEO}, - [SPECIES_WALREIN] = {gMonFrontPic_Walrein, 0x800, SPECIES_WALREIN}, - [SPECIES_CACNEA] = {gMonFrontPic_Cacnea, 0x800, SPECIES_CACNEA}, - [SPECIES_CACTURNE] = {gMonFrontPic_Cacturne, 0x800, SPECIES_CACTURNE}, - [SPECIES_SNORUNT] = {gMonFrontPic_Snorunt, 0x800, SPECIES_SNORUNT}, - [SPECIES_GLALIE] = {gMonFrontPic_Glalie, 0x800, SPECIES_GLALIE}, - [SPECIES_LUNATONE] = {gMonFrontPic_Lunatone, 0x800, SPECIES_LUNATONE}, - [SPECIES_SOLROCK] = {gMonFrontPic_Solrock, 0x800, SPECIES_SOLROCK}, - [SPECIES_AZURILL] = {gMonFrontPic_Azurill, 0x800, SPECIES_AZURILL}, - [SPECIES_SPOINK] = {gMonFrontPic_Spoink, 0x800, SPECIES_SPOINK}, - [SPECIES_GRUMPIG] = {gMonFrontPic_Grumpig, 0x800, SPECIES_GRUMPIG}, - [SPECIES_PLUSLE] = {gMonFrontPic_Plusle, 0x800, SPECIES_PLUSLE}, - [SPECIES_MINUN] = {gMonFrontPic_Minun, 0x800, SPECIES_MINUN}, - [SPECIES_MAWILE] = {gMonFrontPic_Mawile, 0x800, SPECIES_MAWILE}, - [SPECIES_MEDITITE] = {gMonFrontPic_Meditite, 0x800, SPECIES_MEDITITE}, - [SPECIES_MEDICHAM] = {gMonFrontPic_Medicham, 0x800, SPECIES_MEDICHAM}, - [SPECIES_SWABLU] = {gMonFrontPic_Swablu, 0x800, SPECIES_SWABLU}, - [SPECIES_ALTARIA] = {gMonFrontPic_Altaria, 0x800, SPECIES_ALTARIA}, - [SPECIES_WYNAUT] = {gMonFrontPic_Wynaut, 0x800, SPECIES_WYNAUT}, - [SPECIES_DUSKULL] = {gMonFrontPic_Duskull, 0x800, SPECIES_DUSKULL}, - [SPECIES_DUSCLOPS] = {gMonFrontPic_Dusclops, 0x800, SPECIES_DUSCLOPS}, - [SPECIES_ROSELIA] = {gMonFrontPic_Roselia, 0x800, SPECIES_ROSELIA}, - [SPECIES_SLAKOTH] = {gMonFrontPic_Slakoth, 0x800, SPECIES_SLAKOTH}, - [SPECIES_VIGOROTH] = {gMonFrontPic_Vigoroth, 0x800, SPECIES_VIGOROTH}, - [SPECIES_SLAKING] = {gMonFrontPic_Slaking, 0x800, SPECIES_SLAKING}, - [SPECIES_GULPIN] = {gMonFrontPic_Gulpin, 0x800, SPECIES_GULPIN}, - [SPECIES_SWALOT] = {gMonFrontPic_Swalot, 0x800, SPECIES_SWALOT}, - [SPECIES_TROPIUS] = {gMonFrontPic_Tropius, 0x800, SPECIES_TROPIUS}, - [SPECIES_WHISMUR] = {gMonFrontPic_Whismur, 0x800, SPECIES_WHISMUR}, - [SPECIES_LOUDRED] = {gMonFrontPic_Loudred, 0x800, SPECIES_LOUDRED}, - [SPECIES_EXPLOUD] = {gMonFrontPic_Exploud, 0x800, SPECIES_EXPLOUD}, - [SPECIES_CLAMPERL] = {gMonFrontPic_Clamperl, 0x800, SPECIES_CLAMPERL}, - [SPECIES_HUNTAIL] = {gMonFrontPic_Huntail, 0x800, SPECIES_HUNTAIL}, - [SPECIES_GOREBYSS] = {gMonFrontPic_Gorebyss, 0x800, SPECIES_GOREBYSS}, - [SPECIES_ABSOL] = {gMonFrontPic_Absol, 0x800, SPECIES_ABSOL}, - [SPECIES_SHUPPET] = {gMonFrontPic_Shuppet, 0x800, SPECIES_SHUPPET}, - [SPECIES_BANETTE] = {gMonFrontPic_Banette, 0x800, SPECIES_BANETTE}, - [SPECIES_SEVIPER] = {gMonFrontPic_Seviper, 0x800, SPECIES_SEVIPER}, - [SPECIES_ZANGOOSE] = {gMonFrontPic_Zangoose, 0x800, SPECIES_ZANGOOSE}, - [SPECIES_RELICANTH] = {gMonFrontPic_Relicanth, 0x800, SPECIES_RELICANTH}, - [SPECIES_ARON] = {gMonFrontPic_Aron, 0x800, SPECIES_ARON}, - [SPECIES_LAIRON] = {gMonFrontPic_Lairon, 0x800, SPECIES_LAIRON}, - [SPECIES_AGGRON] = {gMonFrontPic_Aggron, 0x800, SPECIES_AGGRON}, - [SPECIES_CASTFORM] = {gMonFrontPic_Castform, 0x800, SPECIES_CASTFORM}, - [SPECIES_VOLBEAT] = {gMonFrontPic_Volbeat, 0x800, SPECIES_VOLBEAT}, - [SPECIES_ILLUMISE] = {gMonFrontPic_Illumise, 0x800, SPECIES_ILLUMISE}, - [SPECIES_LILEEP] = {gMonFrontPic_Lileep, 0x800, SPECIES_LILEEP}, - [SPECIES_CRADILY] = {gMonFrontPic_Cradily, 0x800, SPECIES_CRADILY}, - [SPECIES_ANORITH] = {gMonFrontPic_Anorith, 0x800, SPECIES_ANORITH}, - [SPECIES_ARMALDO] = {gMonFrontPic_Armaldo, 0x800, SPECIES_ARMALDO}, - [SPECIES_RALTS] = {gMonFrontPic_Ralts, 0x800, SPECIES_RALTS}, - [SPECIES_KIRLIA] = {gMonFrontPic_Kirlia, 0x800, SPECIES_KIRLIA}, - [SPECIES_GARDEVOIR] = {gMonFrontPic_Gardevoir, 0x800, SPECIES_GARDEVOIR}, - [SPECIES_BAGON] = {gMonFrontPic_Bagon, 0x800, SPECIES_BAGON}, - [SPECIES_SHELGON] = {gMonFrontPic_Shelgon, 0x800, SPECIES_SHELGON}, - [SPECIES_SALAMENCE] = {gMonFrontPic_Salamence, 0x800, SPECIES_SALAMENCE}, - [SPECIES_BELDUM] = {gMonFrontPic_Beldum, 0x800, SPECIES_BELDUM}, - [SPECIES_METANG] = {gMonFrontPic_Metang, 0x800, SPECIES_METANG}, - [SPECIES_METAGROSS] = {gMonFrontPic_Metagross, 0x800, SPECIES_METAGROSS}, - [SPECIES_REGIROCK] = {gMonFrontPic_Regirock, 0x800, SPECIES_REGIROCK}, - [SPECIES_REGICE] = {gMonFrontPic_Regice, 0x800, SPECIES_REGICE}, - [SPECIES_REGISTEEL] = {gMonFrontPic_Registeel, 0x800, SPECIES_REGISTEEL}, - [SPECIES_KYOGRE] = {gMonFrontPic_Kyogre, 0x800, SPECIES_KYOGRE}, - [SPECIES_GROUDON] = {gMonFrontPic_Groudon, 0x800, SPECIES_GROUDON}, - [SPECIES_RAYQUAZA] = {gMonFrontPic_Rayquaza, 0x800, SPECIES_RAYQUAZA}, - [SPECIES_LATIAS] = {gMonFrontPic_Latias, 0x800, SPECIES_LATIAS}, - [SPECIES_LATIOS] = {gMonFrontPic_Latios, 0x800, SPECIES_LATIOS}, - [SPECIES_JIRACHI] = {gMonFrontPic_Jirachi, 0x800, SPECIES_JIRACHI}, - [SPECIES_DEOXYS] = {gMonFrontPic_Deoxys, 0x800, SPECIES_DEOXYS}, - [SPECIES_CHIMECHO] = {gMonFrontPic_Chimecho, 0x800, SPECIES_CHIMECHO}, - [SPECIES_EGG] = {gMonFrontPic_Egg, 0x800, SPECIES_EGG}, - [SPECIES_UNOWN_B] = {gMonFrontPic_UnownB, 0x800, SPECIES_UNOWN_B}, - [SPECIES_UNOWN_C] = {gMonFrontPic_UnownC, 0x800, SPECIES_UNOWN_C}, - [SPECIES_UNOWN_D] = {gMonFrontPic_UnownD, 0x800, SPECIES_UNOWN_D}, - [SPECIES_UNOWN_E] = {gMonFrontPic_UnownE, 0x800, SPECIES_UNOWN_E}, - [SPECIES_UNOWN_F] = {gMonFrontPic_UnownF, 0x800, SPECIES_UNOWN_F}, - [SPECIES_UNOWN_G] = {gMonFrontPic_UnownG, 0x800, SPECIES_UNOWN_G}, - [SPECIES_UNOWN_H] = {gMonFrontPic_UnownH, 0x800, SPECIES_UNOWN_H}, - [SPECIES_UNOWN_I] = {gMonFrontPic_UnownI, 0x800, SPECIES_UNOWN_I}, - [SPECIES_UNOWN_J] = {gMonFrontPic_UnownJ, 0x800, SPECIES_UNOWN_J}, - [SPECIES_UNOWN_K] = {gMonFrontPic_UnownK, 0x800, SPECIES_UNOWN_K}, - [SPECIES_UNOWN_L] = {gMonFrontPic_UnownL, 0x800, SPECIES_UNOWN_L}, - [SPECIES_UNOWN_M] = {gMonFrontPic_UnownM, 0x800, SPECIES_UNOWN_M}, - [SPECIES_UNOWN_N] = {gMonFrontPic_UnownN, 0x800, SPECIES_UNOWN_N}, - [SPECIES_UNOWN_O] = {gMonFrontPic_UnownO, 0x800, SPECIES_UNOWN_O}, - [SPECIES_UNOWN_P] = {gMonFrontPic_UnownP, 0x800, SPECIES_UNOWN_P}, - [SPECIES_UNOWN_Q] = {gMonFrontPic_UnownQ, 0x800, SPECIES_UNOWN_Q}, - [SPECIES_UNOWN_R] = {gMonFrontPic_UnownR, 0x800, SPECIES_UNOWN_R}, - [SPECIES_UNOWN_S] = {gMonFrontPic_UnownS, 0x800, SPECIES_UNOWN_S}, - [SPECIES_UNOWN_T] = {gMonFrontPic_UnownT, 0x800, SPECIES_UNOWN_T}, - [SPECIES_UNOWN_U] = {gMonFrontPic_UnownU, 0x800, SPECIES_UNOWN_U}, - [SPECIES_UNOWN_V] = {gMonFrontPic_UnownV, 0x800, SPECIES_UNOWN_V}, - [SPECIES_UNOWN_W] = {gMonFrontPic_UnownW, 0x800, SPECIES_UNOWN_W}, - [SPECIES_UNOWN_X] = {gMonFrontPic_UnownX, 0x800, SPECIES_UNOWN_X}, - [SPECIES_UNOWN_Y] = {gMonFrontPic_UnownY, 0x800, SPECIES_UNOWN_Y}, - [SPECIES_UNOWN_Z] = {gMonFrontPic_UnownZ, 0x800, SPECIES_UNOWN_Z}, - [SPECIES_UNOWN_EMARK] = {gMonFrontPic_UnownExclamationMark, 0x800, SPECIES_UNOWN_EMARK}, - [SPECIES_UNOWN_QMARK] = {gMonFrontPic_UnownQuestionMark, 0x800, SPECIES_UNOWN_QMARK}, + SPECIES_SPRITE(NONE, gMonFrontPic_CircledQuestionMark), + SPECIES_SPRITE(BULBASAUR, gMonFrontPic_Bulbasaur), + SPECIES_SPRITE(IVYSAUR, gMonFrontPic_Ivysaur), + SPECIES_SPRITE(VENUSAUR, gMonFrontPic_Venusaur), + SPECIES_SPRITE(CHARMANDER, gMonFrontPic_Charmander), + SPECIES_SPRITE(CHARMELEON, gMonFrontPic_Charmeleon), + SPECIES_SPRITE(CHARIZARD, gMonFrontPic_Charizard), + SPECIES_SPRITE(SQUIRTLE, gMonFrontPic_Squirtle), + SPECIES_SPRITE(WARTORTLE, gMonFrontPic_Wartortle), + SPECIES_SPRITE(BLASTOISE, gMonFrontPic_Blastoise), + SPECIES_SPRITE(CATERPIE, gMonFrontPic_Caterpie), + SPECIES_SPRITE(METAPOD, gMonFrontPic_Metapod), + SPECIES_SPRITE(BUTTERFREE, gMonFrontPic_Butterfree), + SPECIES_SPRITE(WEEDLE, gMonFrontPic_Weedle), + SPECIES_SPRITE(KAKUNA, gMonFrontPic_Kakuna), + SPECIES_SPRITE(BEEDRILL, gMonFrontPic_Beedrill), + SPECIES_SPRITE(PIDGEY, gMonFrontPic_Pidgey), + SPECIES_SPRITE(PIDGEOTTO, gMonFrontPic_Pidgeotto), + SPECIES_SPRITE(PIDGEOT, gMonFrontPic_Pidgeot), + SPECIES_SPRITE(RATTATA, gMonFrontPic_Rattata), + SPECIES_SPRITE(RATICATE, gMonFrontPic_Raticate), + SPECIES_SPRITE(SPEAROW, gMonFrontPic_Spearow), + SPECIES_SPRITE(FEAROW, gMonFrontPic_Fearow), + SPECIES_SPRITE(EKANS, gMonFrontPic_Ekans), + SPECIES_SPRITE(ARBOK, gMonFrontPic_Arbok), + SPECIES_SPRITE(PIKACHU, gMonFrontPic_Pikachu), + SPECIES_SPRITE(RAICHU, gMonFrontPic_Raichu), + SPECIES_SPRITE(SANDSHREW, gMonFrontPic_Sandshrew), + SPECIES_SPRITE(SANDSLASH, gMonFrontPic_Sandslash), + SPECIES_SPRITE(NIDORAN_F, gMonFrontPic_NidoranF), + SPECIES_SPRITE(NIDORINA, gMonFrontPic_Nidorina), + SPECIES_SPRITE(NIDOQUEEN, gMonFrontPic_Nidoqueen), + SPECIES_SPRITE(NIDORAN_M, gMonFrontPic_NidoranM), + SPECIES_SPRITE(NIDORINO, gMonFrontPic_Nidorino), + SPECIES_SPRITE(NIDOKING, gMonFrontPic_Nidoking), + SPECIES_SPRITE(CLEFAIRY, gMonFrontPic_Clefairy), + SPECIES_SPRITE(CLEFABLE, gMonFrontPic_Clefable), + SPECIES_SPRITE(VULPIX, gMonFrontPic_Vulpix), + SPECIES_SPRITE(NINETALES, gMonFrontPic_Ninetales), + SPECIES_SPRITE(JIGGLYPUFF, gMonFrontPic_Jigglypuff), + SPECIES_SPRITE(WIGGLYTUFF, gMonFrontPic_Wigglytuff), + SPECIES_SPRITE(ZUBAT, gMonFrontPic_Zubat), + SPECIES_SPRITE(GOLBAT, gMonFrontPic_Golbat), + SPECIES_SPRITE(ODDISH, gMonFrontPic_Oddish), + SPECIES_SPRITE(GLOOM, gMonFrontPic_Gloom), + SPECIES_SPRITE(VILEPLUME, gMonFrontPic_Vileplume), + SPECIES_SPRITE(PARAS, gMonFrontPic_Paras), + SPECIES_SPRITE(PARASECT, gMonFrontPic_Parasect), + SPECIES_SPRITE(VENONAT, gMonFrontPic_Venonat), + SPECIES_SPRITE(VENOMOTH, gMonFrontPic_Venomoth), + SPECIES_SPRITE(DIGLETT, gMonFrontPic_Diglett), + SPECIES_SPRITE(DUGTRIO, gMonFrontPic_Dugtrio), + SPECIES_SPRITE(MEOWTH, gMonFrontPic_Meowth), + SPECIES_SPRITE(PERSIAN, gMonFrontPic_Persian), + SPECIES_SPRITE(PSYDUCK, gMonFrontPic_Psyduck), + SPECIES_SPRITE(GOLDUCK, gMonFrontPic_Golduck), + SPECIES_SPRITE(MANKEY, gMonFrontPic_Mankey), + SPECIES_SPRITE(PRIMEAPE, gMonFrontPic_Primeape), + SPECIES_SPRITE(GROWLITHE, gMonFrontPic_Growlithe), + SPECIES_SPRITE(ARCANINE, gMonFrontPic_Arcanine), + SPECIES_SPRITE(POLIWAG, gMonFrontPic_Poliwag), + SPECIES_SPRITE(POLIWHIRL, gMonFrontPic_Poliwhirl), + SPECIES_SPRITE(POLIWRATH, gMonFrontPic_Poliwrath), + SPECIES_SPRITE(ABRA, gMonFrontPic_Abra), + SPECIES_SPRITE(KADABRA, gMonFrontPic_Kadabra), + SPECIES_SPRITE(ALAKAZAM, gMonFrontPic_Alakazam), + SPECIES_SPRITE(MACHOP, gMonFrontPic_Machop), + SPECIES_SPRITE(MACHOKE, gMonFrontPic_Machoke), + SPECIES_SPRITE(MACHAMP, gMonFrontPic_Machamp), + SPECIES_SPRITE(BELLSPROUT, gMonFrontPic_Bellsprout), + SPECIES_SPRITE(WEEPINBELL, gMonFrontPic_Weepinbell), + SPECIES_SPRITE(VICTREEBEL, gMonFrontPic_Victreebel), + SPECIES_SPRITE(TENTACOOL, gMonFrontPic_Tentacool), + SPECIES_SPRITE(TENTACRUEL, gMonFrontPic_Tentacruel), + SPECIES_SPRITE(GEODUDE, gMonFrontPic_Geodude), + SPECIES_SPRITE(GRAVELER, gMonFrontPic_Graveler), + SPECIES_SPRITE(GOLEM, gMonFrontPic_Golem), + SPECIES_SPRITE(PONYTA, gMonFrontPic_Ponyta), + SPECIES_SPRITE(RAPIDASH, gMonFrontPic_Rapidash), + SPECIES_SPRITE(SLOWPOKE, gMonFrontPic_Slowpoke), + SPECIES_SPRITE(SLOWBRO, gMonFrontPic_Slowbro), + SPECIES_SPRITE(MAGNEMITE, gMonFrontPic_Magnemite), + SPECIES_SPRITE(MAGNETON, gMonFrontPic_Magneton), + SPECIES_SPRITE(FARFETCHD, gMonFrontPic_Farfetchd), + SPECIES_SPRITE(DODUO, gMonFrontPic_Doduo), + SPECIES_SPRITE(DODRIO, gMonFrontPic_Dodrio), + SPECIES_SPRITE(SEEL, gMonFrontPic_Seel), + SPECIES_SPRITE(DEWGONG, gMonFrontPic_Dewgong), + SPECIES_SPRITE(GRIMER, gMonFrontPic_Grimer), + SPECIES_SPRITE(MUK, gMonFrontPic_Muk), + SPECIES_SPRITE(SHELLDER, gMonFrontPic_Shellder), + SPECIES_SPRITE(CLOYSTER, gMonFrontPic_Cloyster), + SPECIES_SPRITE(GASTLY, gMonFrontPic_Gastly), + SPECIES_SPRITE(HAUNTER, gMonFrontPic_Haunter), + SPECIES_SPRITE(GENGAR, gMonFrontPic_Gengar), + SPECIES_SPRITE(ONIX, gMonFrontPic_Onix), + SPECIES_SPRITE(DROWZEE, gMonFrontPic_Drowzee), + SPECIES_SPRITE(HYPNO, gMonFrontPic_Hypno), + SPECIES_SPRITE(KRABBY, gMonFrontPic_Krabby), + SPECIES_SPRITE(KINGLER, gMonFrontPic_Kingler), + SPECIES_SPRITE(VOLTORB, gMonFrontPic_Voltorb), + SPECIES_SPRITE(ELECTRODE, gMonFrontPic_Electrode), + SPECIES_SPRITE(EXEGGCUTE, gMonFrontPic_Exeggcute), + SPECIES_SPRITE(EXEGGUTOR, gMonFrontPic_Exeggutor), + SPECIES_SPRITE(CUBONE, gMonFrontPic_Cubone), + SPECIES_SPRITE(MAROWAK, gMonFrontPic_Marowak), + SPECIES_SPRITE(HITMONLEE, gMonFrontPic_Hitmonlee), + SPECIES_SPRITE(HITMONCHAN, gMonFrontPic_Hitmonchan), + SPECIES_SPRITE(LICKITUNG, gMonFrontPic_Lickitung), + SPECIES_SPRITE(KOFFING, gMonFrontPic_Koffing), + SPECIES_SPRITE(WEEZING, gMonFrontPic_Weezing), + SPECIES_SPRITE(RHYHORN, gMonFrontPic_Rhyhorn), + SPECIES_SPRITE(RHYDON, gMonFrontPic_Rhydon), + SPECIES_SPRITE(CHANSEY, gMonFrontPic_Chansey), + SPECIES_SPRITE(TANGELA, gMonFrontPic_Tangela), + SPECIES_SPRITE(KANGASKHAN, gMonFrontPic_Kangaskhan), + SPECIES_SPRITE(HORSEA, gMonFrontPic_Horsea), + SPECIES_SPRITE(SEADRA, gMonFrontPic_Seadra), + SPECIES_SPRITE(GOLDEEN, gMonFrontPic_Goldeen), + SPECIES_SPRITE(SEAKING, gMonFrontPic_Seaking), + SPECIES_SPRITE(STARYU, gMonFrontPic_Staryu), + SPECIES_SPRITE(STARMIE, gMonFrontPic_Starmie), + SPECIES_SPRITE(MR_MIME, gMonFrontPic_Mrmime), + SPECIES_SPRITE(SCYTHER, gMonFrontPic_Scyther), + SPECIES_SPRITE(JYNX, gMonFrontPic_Jynx), + SPECIES_SPRITE(ELECTABUZZ, gMonFrontPic_Electabuzz), + SPECIES_SPRITE(MAGMAR, gMonFrontPic_Magmar), + SPECIES_SPRITE(PINSIR, gMonFrontPic_Pinsir), + SPECIES_SPRITE(TAUROS, gMonFrontPic_Tauros), + SPECIES_SPRITE(MAGIKARP, gMonFrontPic_Magikarp), + SPECIES_SPRITE(GYARADOS, gMonFrontPic_Gyarados), + SPECIES_SPRITE(LAPRAS, gMonFrontPic_Lapras), + SPECIES_SPRITE(DITTO, gMonFrontPic_Ditto), + SPECIES_SPRITE(EEVEE, gMonFrontPic_Eevee), + SPECIES_SPRITE(VAPOREON, gMonFrontPic_Vaporeon), + SPECIES_SPRITE(JOLTEON, gMonFrontPic_Jolteon), + SPECIES_SPRITE(FLAREON, gMonFrontPic_Flareon), + SPECIES_SPRITE(PORYGON, gMonFrontPic_Porygon), + SPECIES_SPRITE(OMANYTE, gMonFrontPic_Omanyte), + SPECIES_SPRITE(OMASTAR, gMonFrontPic_Omastar), + SPECIES_SPRITE(KABUTO, gMonFrontPic_Kabuto), + SPECIES_SPRITE(KABUTOPS, gMonFrontPic_Kabutops), + SPECIES_SPRITE(AERODACTYL, gMonFrontPic_Aerodactyl), + SPECIES_SPRITE(SNORLAX, gMonFrontPic_Snorlax), + SPECIES_SPRITE(ARTICUNO, gMonFrontPic_Articuno), + SPECIES_SPRITE(ZAPDOS, gMonFrontPic_Zapdos), + SPECIES_SPRITE(MOLTRES, gMonFrontPic_Moltres), + SPECIES_SPRITE(DRATINI, gMonFrontPic_Dratini), + SPECIES_SPRITE(DRAGONAIR, gMonFrontPic_Dragonair), + SPECIES_SPRITE(DRAGONITE, gMonFrontPic_Dragonite), + SPECIES_SPRITE(MEWTWO, gMonFrontPic_Mewtwo), + SPECIES_SPRITE(MEW, gMonFrontPic_Mew), + SPECIES_SPRITE(CHIKORITA, gMonFrontPic_Chikorita), + SPECIES_SPRITE(BAYLEEF, gMonFrontPic_Bayleef), + SPECIES_SPRITE(MEGANIUM, gMonFrontPic_Meganium), + SPECIES_SPRITE(CYNDAQUIL, gMonFrontPic_Cyndaquil), + SPECIES_SPRITE(QUILAVA, gMonFrontPic_Quilava), + SPECIES_SPRITE(TYPHLOSION, gMonFrontPic_Typhlosion), + SPECIES_SPRITE(TOTODILE, gMonFrontPic_Totodile), + SPECIES_SPRITE(CROCONAW, gMonFrontPic_Croconaw), + SPECIES_SPRITE(FERALIGATR, gMonFrontPic_Feraligatr), + SPECIES_SPRITE(SENTRET, gMonFrontPic_Sentret), + SPECIES_SPRITE(FURRET, gMonFrontPic_Furret), + SPECIES_SPRITE(HOOTHOOT, gMonFrontPic_Hoothoot), + SPECIES_SPRITE(NOCTOWL, gMonFrontPic_Noctowl), + SPECIES_SPRITE(LEDYBA, gMonFrontPic_Ledyba), + SPECIES_SPRITE(LEDIAN, gMonFrontPic_Ledian), + SPECIES_SPRITE(SPINARAK, gMonFrontPic_Spinarak), + SPECIES_SPRITE(ARIADOS, gMonFrontPic_Ariados), + SPECIES_SPRITE(CROBAT, gMonFrontPic_Crobat), + SPECIES_SPRITE(CHINCHOU, gMonFrontPic_Chinchou), + SPECIES_SPRITE(LANTURN, gMonFrontPic_Lanturn), + SPECIES_SPRITE(PICHU, gMonFrontPic_Pichu), + SPECIES_SPRITE(CLEFFA, gMonFrontPic_Cleffa), + SPECIES_SPRITE(IGGLYBUFF, gMonFrontPic_Igglybuff), + SPECIES_SPRITE(TOGEPI, gMonFrontPic_Togepi), + SPECIES_SPRITE(TOGETIC, gMonFrontPic_Togetic), + SPECIES_SPRITE(NATU, gMonFrontPic_Natu), + SPECIES_SPRITE(XATU, gMonFrontPic_Xatu), + SPECIES_SPRITE(MAREEP, gMonFrontPic_Mareep), + SPECIES_SPRITE(FLAAFFY, gMonFrontPic_Flaaffy), + SPECIES_SPRITE(AMPHAROS, gMonFrontPic_Ampharos), + SPECIES_SPRITE(BELLOSSOM, gMonFrontPic_Bellossom), + SPECIES_SPRITE(MARILL, gMonFrontPic_Marill), + SPECIES_SPRITE(AZUMARILL, gMonFrontPic_Azumarill), + SPECIES_SPRITE(SUDOWOODO, gMonFrontPic_Sudowoodo), + SPECIES_SPRITE(POLITOED, gMonFrontPic_Politoed), + SPECIES_SPRITE(HOPPIP, gMonFrontPic_Hoppip), + SPECIES_SPRITE(SKIPLOOM, gMonFrontPic_Skiploom), + SPECIES_SPRITE(JUMPLUFF, gMonFrontPic_Jumpluff), + SPECIES_SPRITE(AIPOM, gMonFrontPic_Aipom), + SPECIES_SPRITE(SUNKERN, gMonFrontPic_Sunkern), + SPECIES_SPRITE(SUNFLORA, gMonFrontPic_Sunflora), + SPECIES_SPRITE(YANMA, gMonFrontPic_Yanma), + SPECIES_SPRITE(WOOPER, gMonFrontPic_Wooper), + SPECIES_SPRITE(QUAGSIRE, gMonFrontPic_Quagsire), + SPECIES_SPRITE(ESPEON, gMonFrontPic_Espeon), + SPECIES_SPRITE(UMBREON, gMonFrontPic_Umbreon), + SPECIES_SPRITE(MURKROW, gMonFrontPic_Murkrow), + SPECIES_SPRITE(SLOWKING, gMonFrontPic_Slowking), + SPECIES_SPRITE(MISDREAVUS, gMonFrontPic_Misdreavus), + SPECIES_SPRITE(UNOWN, gMonFrontPic_UnownA), + SPECIES_SPRITE(WOBBUFFET, gMonFrontPic_Wobbuffet), + SPECIES_SPRITE(GIRAFARIG, gMonFrontPic_Girafarig), + SPECIES_SPRITE(PINECO, gMonFrontPic_Pineco), + SPECIES_SPRITE(FORRETRESS, gMonFrontPic_Forretress), + SPECIES_SPRITE(DUNSPARCE, gMonFrontPic_Dunsparce), + SPECIES_SPRITE(GLIGAR, gMonFrontPic_Gligar), + SPECIES_SPRITE(STEELIX, gMonFrontPic_Steelix), + SPECIES_SPRITE(SNUBBULL, gMonFrontPic_Snubbull), + SPECIES_SPRITE(GRANBULL, gMonFrontPic_Granbull), + SPECIES_SPRITE(QWILFISH, gMonFrontPic_Qwilfish), + SPECIES_SPRITE(SCIZOR, gMonFrontPic_Scizor), + SPECIES_SPRITE(SHUCKLE, gMonFrontPic_Shuckle), + SPECIES_SPRITE(HERACROSS, gMonFrontPic_Heracross), + SPECIES_SPRITE(SNEASEL, gMonFrontPic_Sneasel), + SPECIES_SPRITE(TEDDIURSA, gMonFrontPic_Teddiursa), + SPECIES_SPRITE(URSARING, gMonFrontPic_Ursaring), + SPECIES_SPRITE(SLUGMA, gMonFrontPic_Slugma), + SPECIES_SPRITE(MAGCARGO, gMonFrontPic_Magcargo), + SPECIES_SPRITE(SWINUB, gMonFrontPic_Swinub), + SPECIES_SPRITE(PILOSWINE, gMonFrontPic_Piloswine), + SPECIES_SPRITE(CORSOLA, gMonFrontPic_Corsola), + SPECIES_SPRITE(REMORAID, gMonFrontPic_Remoraid), + SPECIES_SPRITE(OCTILLERY, gMonFrontPic_Octillery), + SPECIES_SPRITE(DELIBIRD, gMonFrontPic_Delibird), + SPECIES_SPRITE(MANTINE, gMonFrontPic_Mantine), + SPECIES_SPRITE(SKARMORY, gMonFrontPic_Skarmory), + SPECIES_SPRITE(HOUNDOUR, gMonFrontPic_Houndour), + SPECIES_SPRITE(HOUNDOOM, gMonFrontPic_Houndoom), + SPECIES_SPRITE(KINGDRA, gMonFrontPic_Kingdra), + SPECIES_SPRITE(PHANPY, gMonFrontPic_Phanpy), + SPECIES_SPRITE(DONPHAN, gMonFrontPic_Donphan), + SPECIES_SPRITE(PORYGON2, gMonFrontPic_Porygon2), + SPECIES_SPRITE(STANTLER, gMonFrontPic_Stantler), + SPECIES_SPRITE(SMEARGLE, gMonFrontPic_Smeargle), + SPECIES_SPRITE(TYROGUE, gMonFrontPic_Tyrogue), + SPECIES_SPRITE(HITMONTOP, gMonFrontPic_Hitmontop), + SPECIES_SPRITE(SMOOCHUM, gMonFrontPic_Smoochum), + SPECIES_SPRITE(ELEKID, gMonFrontPic_Elekid), + SPECIES_SPRITE(MAGBY, gMonFrontPic_Magby), + SPECIES_SPRITE(MILTANK, gMonFrontPic_Miltank), + SPECIES_SPRITE(BLISSEY, gMonFrontPic_Blissey), + SPECIES_SPRITE(RAIKOU, gMonFrontPic_Raikou), + SPECIES_SPRITE(ENTEI, gMonFrontPic_Entei), + SPECIES_SPRITE(SUICUNE, gMonFrontPic_Suicune), + SPECIES_SPRITE(LARVITAR, gMonFrontPic_Larvitar), + SPECIES_SPRITE(PUPITAR, gMonFrontPic_Pupitar), + SPECIES_SPRITE(TYRANITAR, gMonFrontPic_Tyranitar), + SPECIES_SPRITE(LUGIA, gMonFrontPic_Lugia), + SPECIES_SPRITE(HO_OH, gMonFrontPic_HoOh), + SPECIES_SPRITE(CELEBI, gMonFrontPic_Celebi), + SPECIES_SPRITE(OLD_UNOWN_B, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_C, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_D, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_E, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_F, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_G, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_H, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_I, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_J, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_K, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_L, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_M, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_N, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_O, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_P, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_Q, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_R, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_S, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_T, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_U, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_V, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_W, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_X, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_Y, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_Z, gMonFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(TREECKO, gMonFrontPic_Treecko), + SPECIES_SPRITE(GROVYLE, gMonFrontPic_Grovyle), + SPECIES_SPRITE(SCEPTILE, gMonFrontPic_Sceptile), + SPECIES_SPRITE(TORCHIC, gMonFrontPic_Torchic), + SPECIES_SPRITE(COMBUSKEN, gMonFrontPic_Combusken), + SPECIES_SPRITE(BLAZIKEN, gMonFrontPic_Blaziken), + SPECIES_SPRITE(MUDKIP, gMonFrontPic_Mudkip), + SPECIES_SPRITE(MARSHTOMP, gMonFrontPic_Marshtomp), + SPECIES_SPRITE(SWAMPERT, gMonFrontPic_Swampert), + SPECIES_SPRITE(POOCHYENA, gMonFrontPic_Poochyena), + SPECIES_SPRITE(MIGHTYENA, gMonFrontPic_Mightyena), + SPECIES_SPRITE(ZIGZAGOON, gMonFrontPic_Zigzagoon), + SPECIES_SPRITE(LINOONE, gMonFrontPic_Linoone), + SPECIES_SPRITE(WURMPLE, gMonFrontPic_Wurmple), + SPECIES_SPRITE(SILCOON, gMonFrontPic_Silcoon), + SPECIES_SPRITE(BEAUTIFLY, gMonFrontPic_Beautifly), + SPECIES_SPRITE(CASCOON, gMonFrontPic_Cascoon), + SPECIES_SPRITE(DUSTOX, gMonFrontPic_Dustox), + SPECIES_SPRITE(LOTAD, gMonFrontPic_Lotad), + SPECIES_SPRITE(LOMBRE, gMonFrontPic_Lombre), + SPECIES_SPRITE(LUDICOLO, gMonFrontPic_Ludicolo), + SPECIES_SPRITE(SEEDOT, gMonFrontPic_Seedot), + SPECIES_SPRITE(NUZLEAF, gMonFrontPic_Nuzleaf), + SPECIES_SPRITE(SHIFTRY, gMonFrontPic_Shiftry), + SPECIES_SPRITE(NINCADA, gMonFrontPic_Nincada), + SPECIES_SPRITE(NINJASK, gMonFrontPic_Ninjask), + SPECIES_SPRITE(SHEDINJA, gMonFrontPic_Shedinja), + SPECIES_SPRITE(TAILLOW, gMonFrontPic_Taillow), + SPECIES_SPRITE(SWELLOW, gMonFrontPic_Swellow), + SPECIES_SPRITE(SHROOMISH, gMonFrontPic_Shroomish), + SPECIES_SPRITE(BRELOOM, gMonFrontPic_Breloom), + SPECIES_SPRITE(SPINDA, gMonFrontPic_Spinda), + SPECIES_SPRITE(WINGULL, gMonFrontPic_Wingull), + SPECIES_SPRITE(PELIPPER, gMonFrontPic_Pelipper), + SPECIES_SPRITE(SURSKIT, gMonFrontPic_Surskit), + SPECIES_SPRITE(MASQUERAIN, gMonFrontPic_Masquerain), + SPECIES_SPRITE(WAILMER, gMonFrontPic_Wailmer), + SPECIES_SPRITE(WAILORD, gMonFrontPic_Wailord), + SPECIES_SPRITE(SKITTY, gMonFrontPic_Skitty), + SPECIES_SPRITE(DELCATTY, gMonFrontPic_Delcatty), + SPECIES_SPRITE(KECLEON, gMonFrontPic_Kecleon), + SPECIES_SPRITE(BALTOY, gMonFrontPic_Baltoy), + SPECIES_SPRITE(CLAYDOL, gMonFrontPic_Claydol), + SPECIES_SPRITE(NOSEPASS, gMonFrontPic_Nosepass), + SPECIES_SPRITE(TORKOAL, gMonFrontPic_Torkoal), + SPECIES_SPRITE(SABLEYE, gMonFrontPic_Sableye), + SPECIES_SPRITE(BARBOACH, gMonFrontPic_Barboach), + SPECIES_SPRITE(WHISCASH, gMonFrontPic_Whiscash), + SPECIES_SPRITE(LUVDISC, gMonFrontPic_Luvdisc), + SPECIES_SPRITE(CORPHISH, gMonFrontPic_Corphish), + SPECIES_SPRITE(CRAWDAUNT, gMonFrontPic_Crawdaunt), + SPECIES_SPRITE(FEEBAS, gMonFrontPic_Feebas), + SPECIES_SPRITE(MILOTIC, gMonFrontPic_Milotic), + SPECIES_SPRITE(CARVANHA, gMonFrontPic_Carvanha), + SPECIES_SPRITE(SHARPEDO, gMonFrontPic_Sharpedo), + SPECIES_SPRITE(TRAPINCH, gMonFrontPic_Trapinch), + SPECIES_SPRITE(VIBRAVA, gMonFrontPic_Vibrava), + SPECIES_SPRITE(FLYGON, gMonFrontPic_Flygon), + SPECIES_SPRITE(MAKUHITA, gMonFrontPic_Makuhita), + SPECIES_SPRITE(HARIYAMA, gMonFrontPic_Hariyama), + SPECIES_SPRITE(ELECTRIKE, gMonFrontPic_Electrike), + SPECIES_SPRITE(MANECTRIC, gMonFrontPic_Manectric), + SPECIES_SPRITE(NUMEL, gMonFrontPic_Numel), + SPECIES_SPRITE(CAMERUPT, gMonFrontPic_Camerupt), + SPECIES_SPRITE(SPHEAL, gMonFrontPic_Spheal), + SPECIES_SPRITE(SEALEO, gMonFrontPic_Sealeo), + SPECIES_SPRITE(WALREIN, gMonFrontPic_Walrein), + SPECIES_SPRITE(CACNEA, gMonFrontPic_Cacnea), + SPECIES_SPRITE(CACTURNE, gMonFrontPic_Cacturne), + SPECIES_SPRITE(SNORUNT, gMonFrontPic_Snorunt), + SPECIES_SPRITE(GLALIE, gMonFrontPic_Glalie), + SPECIES_SPRITE(LUNATONE, gMonFrontPic_Lunatone), + SPECIES_SPRITE(SOLROCK, gMonFrontPic_Solrock), + SPECIES_SPRITE(AZURILL, gMonFrontPic_Azurill), + SPECIES_SPRITE(SPOINK, gMonFrontPic_Spoink), + SPECIES_SPRITE(GRUMPIG, gMonFrontPic_Grumpig), + SPECIES_SPRITE(PLUSLE, gMonFrontPic_Plusle), + SPECIES_SPRITE(MINUN, gMonFrontPic_Minun), + SPECIES_SPRITE(MAWILE, gMonFrontPic_Mawile), + SPECIES_SPRITE(MEDITITE, gMonFrontPic_Meditite), + SPECIES_SPRITE(MEDICHAM, gMonFrontPic_Medicham), + SPECIES_SPRITE(SWABLU, gMonFrontPic_Swablu), + SPECIES_SPRITE(ALTARIA, gMonFrontPic_Altaria), + SPECIES_SPRITE(WYNAUT, gMonFrontPic_Wynaut), + SPECIES_SPRITE(DUSKULL, gMonFrontPic_Duskull), + SPECIES_SPRITE(DUSCLOPS, gMonFrontPic_Dusclops), + SPECIES_SPRITE(ROSELIA, gMonFrontPic_Roselia), + SPECIES_SPRITE(SLAKOTH, gMonFrontPic_Slakoth), + SPECIES_SPRITE(VIGOROTH, gMonFrontPic_Vigoroth), + SPECIES_SPRITE(SLAKING, gMonFrontPic_Slaking), + SPECIES_SPRITE(GULPIN, gMonFrontPic_Gulpin), + SPECIES_SPRITE(SWALOT, gMonFrontPic_Swalot), + SPECIES_SPRITE(TROPIUS, gMonFrontPic_Tropius), + SPECIES_SPRITE(WHISMUR, gMonFrontPic_Whismur), + SPECIES_SPRITE(LOUDRED, gMonFrontPic_Loudred), + SPECIES_SPRITE(EXPLOUD, gMonFrontPic_Exploud), + SPECIES_SPRITE(CLAMPERL, gMonFrontPic_Clamperl), + SPECIES_SPRITE(HUNTAIL, gMonFrontPic_Huntail), + SPECIES_SPRITE(GOREBYSS, gMonFrontPic_Gorebyss), + SPECIES_SPRITE(ABSOL, gMonFrontPic_Absol), + SPECIES_SPRITE(SHUPPET, gMonFrontPic_Shuppet), + SPECIES_SPRITE(BANETTE, gMonFrontPic_Banette), + SPECIES_SPRITE(SEVIPER, gMonFrontPic_Seviper), + SPECIES_SPRITE(ZANGOOSE, gMonFrontPic_Zangoose), + SPECIES_SPRITE(RELICANTH, gMonFrontPic_Relicanth), + SPECIES_SPRITE(ARON, gMonFrontPic_Aron), + SPECIES_SPRITE(LAIRON, gMonFrontPic_Lairon), + SPECIES_SPRITE(AGGRON, gMonFrontPic_Aggron), + SPECIES_SPRITE(CASTFORM, gMonFrontPic_Castform), + SPECIES_SPRITE(VOLBEAT, gMonFrontPic_Volbeat), + SPECIES_SPRITE(ILLUMISE, gMonFrontPic_Illumise), + SPECIES_SPRITE(LILEEP, gMonFrontPic_Lileep), + SPECIES_SPRITE(CRADILY, gMonFrontPic_Cradily), + SPECIES_SPRITE(ANORITH, gMonFrontPic_Anorith), + SPECIES_SPRITE(ARMALDO, gMonFrontPic_Armaldo), + SPECIES_SPRITE(RALTS, gMonFrontPic_Ralts), + SPECIES_SPRITE(KIRLIA, gMonFrontPic_Kirlia), + SPECIES_SPRITE(GARDEVOIR, gMonFrontPic_Gardevoir), + SPECIES_SPRITE(BAGON, gMonFrontPic_Bagon), + SPECIES_SPRITE(SHELGON, gMonFrontPic_Shelgon), + SPECIES_SPRITE(SALAMENCE, gMonFrontPic_Salamence), + SPECIES_SPRITE(BELDUM, gMonFrontPic_Beldum), + SPECIES_SPRITE(METANG, gMonFrontPic_Metang), + SPECIES_SPRITE(METAGROSS, gMonFrontPic_Metagross), + SPECIES_SPRITE(REGIROCK, gMonFrontPic_Regirock), + SPECIES_SPRITE(REGICE, gMonFrontPic_Regice), + SPECIES_SPRITE(REGISTEEL, gMonFrontPic_Registeel), + SPECIES_SPRITE(KYOGRE, gMonFrontPic_Kyogre), + SPECIES_SPRITE(GROUDON, gMonFrontPic_Groudon), + SPECIES_SPRITE(RAYQUAZA, gMonFrontPic_Rayquaza), + SPECIES_SPRITE(LATIAS, gMonFrontPic_Latias), + SPECIES_SPRITE(LATIOS, gMonFrontPic_Latios), + SPECIES_SPRITE(JIRACHI, gMonFrontPic_Jirachi), + SPECIES_SPRITE(DEOXYS, gMonFrontPic_Deoxys), + SPECIES_SPRITE(CHIMECHO, gMonFrontPic_Chimecho), + SPECIES_SPRITE(EGG, gMonFrontPic_Egg), + SPECIES_SPRITE(UNOWN_B, gMonFrontPic_UnownB), + SPECIES_SPRITE(UNOWN_C, gMonFrontPic_UnownC), + SPECIES_SPRITE(UNOWN_D, gMonFrontPic_UnownD), + SPECIES_SPRITE(UNOWN_E, gMonFrontPic_UnownE), + SPECIES_SPRITE(UNOWN_F, gMonFrontPic_UnownF), + SPECIES_SPRITE(UNOWN_G, gMonFrontPic_UnownG), + SPECIES_SPRITE(UNOWN_H, gMonFrontPic_UnownH), + SPECIES_SPRITE(UNOWN_I, gMonFrontPic_UnownI), + SPECIES_SPRITE(UNOWN_J, gMonFrontPic_UnownJ), + SPECIES_SPRITE(UNOWN_K, gMonFrontPic_UnownK), + SPECIES_SPRITE(UNOWN_L, gMonFrontPic_UnownL), + SPECIES_SPRITE(UNOWN_M, gMonFrontPic_UnownM), + SPECIES_SPRITE(UNOWN_N, gMonFrontPic_UnownN), + SPECIES_SPRITE(UNOWN_O, gMonFrontPic_UnownO), + SPECIES_SPRITE(UNOWN_P, gMonFrontPic_UnownP), + SPECIES_SPRITE(UNOWN_Q, gMonFrontPic_UnownQ), + SPECIES_SPRITE(UNOWN_R, gMonFrontPic_UnownR), + SPECIES_SPRITE(UNOWN_S, gMonFrontPic_UnownS), + SPECIES_SPRITE(UNOWN_T, gMonFrontPic_UnownT), + SPECIES_SPRITE(UNOWN_U, gMonFrontPic_UnownU), + SPECIES_SPRITE(UNOWN_V, gMonFrontPic_UnownV), + SPECIES_SPRITE(UNOWN_W, gMonFrontPic_UnownW), + SPECIES_SPRITE(UNOWN_X, gMonFrontPic_UnownX), + SPECIES_SPRITE(UNOWN_Y, gMonFrontPic_UnownY), + SPECIES_SPRITE(UNOWN_Z, gMonFrontPic_UnownZ), + SPECIES_SPRITE(UNOWN_EMARK, gMonFrontPic_UnownExclamationMark), + SPECIES_SPRITE(UNOWN_QMARK, gMonFrontPic_UnownQuestionMark), }; diff --git a/src/data/pokemon_graphics/palette_table.h b/src/data/pokemon_graphics/palette_table.h index 3b60d8567..35edcc76c 100644 --- a/src/data/pokemon_graphics/palette_table.h +++ b/src/data/pokemon_graphics/palette_table.h @@ -1,443 +1,443 @@ const struct CompressedSpritePalette gMonPaletteTable[] = { - [SPECIES_NONE] = {gMonPalette_CircledQuestionMark, SPECIES_NONE}, - [SPECIES_BULBASAUR] = {gMonPalette_Bulbasaur, SPECIES_BULBASAUR}, - [SPECIES_IVYSAUR] = {gMonPalette_Ivysaur, SPECIES_IVYSAUR}, - [SPECIES_VENUSAUR] = {gMonPalette_Venusaur, SPECIES_VENUSAUR}, - [SPECIES_CHARMANDER] = {gMonPalette_Charmander, SPECIES_CHARMANDER}, - [SPECIES_CHARMELEON] = {gMonPalette_Charmeleon, SPECIES_CHARMELEON}, - [SPECIES_CHARIZARD] = {gMonPalette_Charizard, SPECIES_CHARIZARD}, - [SPECIES_SQUIRTLE] = {gMonPalette_Squirtle, SPECIES_SQUIRTLE}, - [SPECIES_WARTORTLE] = {gMonPalette_Wartortle, SPECIES_WARTORTLE}, - [SPECIES_BLASTOISE] = {gMonPalette_Blastoise, SPECIES_BLASTOISE}, - [SPECIES_CATERPIE] = {gMonPalette_Caterpie, SPECIES_CATERPIE}, - [SPECIES_METAPOD] = {gMonPalette_Metapod, SPECIES_METAPOD}, - [SPECIES_BUTTERFREE] = {gMonPalette_Butterfree, SPECIES_BUTTERFREE}, - [SPECIES_WEEDLE] = {gMonPalette_Weedle, SPECIES_WEEDLE}, - [SPECIES_KAKUNA] = {gMonPalette_Kakuna, SPECIES_KAKUNA}, - [SPECIES_BEEDRILL] = {gMonPalette_Beedrill, SPECIES_BEEDRILL}, - [SPECIES_PIDGEY] = {gMonPalette_Pidgey, SPECIES_PIDGEY}, - [SPECIES_PIDGEOTTO] = {gMonPalette_Pidgeotto, SPECIES_PIDGEOTTO}, - [SPECIES_PIDGEOT] = {gMonPalette_Pidgeot, SPECIES_PIDGEOT}, - [SPECIES_RATTATA] = {gMonPalette_Rattata, SPECIES_RATTATA}, - [SPECIES_RATICATE] = {gMonPalette_Raticate, SPECIES_RATICATE}, - [SPECIES_SPEAROW] = {gMonPalette_Spearow, SPECIES_SPEAROW}, - [SPECIES_FEAROW] = {gMonPalette_Fearow, SPECIES_FEAROW}, - [SPECIES_EKANS] = {gMonPalette_Ekans, SPECIES_EKANS}, - [SPECIES_ARBOK] = {gMonPalette_Arbok, SPECIES_ARBOK}, - [SPECIES_PIKACHU] = {gMonPalette_Pikachu, SPECIES_PIKACHU}, - [SPECIES_RAICHU] = {gMonPalette_Raichu, SPECIES_RAICHU}, - [SPECIES_SANDSHREW] = {gMonPalette_Sandshrew, SPECIES_SANDSHREW}, - [SPECIES_SANDSLASH] = {gMonPalette_Sandslash, SPECIES_SANDSLASH}, - [SPECIES_NIDORAN_F] = {gMonPalette_NidoranF, SPECIES_NIDORAN_F}, - [SPECIES_NIDORINA] = {gMonPalette_Nidorina, SPECIES_NIDORINA}, - [SPECIES_NIDOQUEEN] = {gMonPalette_Nidoqueen, SPECIES_NIDOQUEEN}, - [SPECIES_NIDORAN_M] = {gMonPalette_NidoranM, SPECIES_NIDORAN_M}, - [SPECIES_NIDORINO] = {gMonPalette_Nidorino, SPECIES_NIDORINO}, - [SPECIES_NIDOKING] = {gMonPalette_Nidoking, SPECIES_NIDOKING}, - [SPECIES_CLEFAIRY] = {gMonPalette_Clefairy, SPECIES_CLEFAIRY}, - [SPECIES_CLEFABLE] = {gMonPalette_Clefable, SPECIES_CLEFABLE}, - [SPECIES_VULPIX] = {gMonPalette_Vulpix, SPECIES_VULPIX}, - [SPECIES_NINETALES] = {gMonPalette_Ninetales, SPECIES_NINETALES}, - [SPECIES_JIGGLYPUFF] = {gMonPalette_Jigglypuff, SPECIES_JIGGLYPUFF}, - [SPECIES_WIGGLYTUFF] = {gMonPalette_Wigglytuff, SPECIES_WIGGLYTUFF}, - [SPECIES_ZUBAT] = {gMonPalette_Zubat, SPECIES_ZUBAT}, - [SPECIES_GOLBAT] = {gMonPalette_Golbat, SPECIES_GOLBAT}, - [SPECIES_ODDISH] = {gMonPalette_Oddish, SPECIES_ODDISH}, - [SPECIES_GLOOM] = {gMonPalette_Gloom, SPECIES_GLOOM}, - [SPECIES_VILEPLUME] = {gMonPalette_Vileplume, SPECIES_VILEPLUME}, - [SPECIES_PARAS] = {gMonPalette_Paras, SPECIES_PARAS}, - [SPECIES_PARASECT] = {gMonPalette_Parasect, SPECIES_PARASECT}, - [SPECIES_VENONAT] = {gMonPalette_Venonat, SPECIES_VENONAT}, - [SPECIES_VENOMOTH] = {gMonPalette_Venomoth, SPECIES_VENOMOTH}, - [SPECIES_DIGLETT] = {gMonPalette_Diglett, SPECIES_DIGLETT}, - [SPECIES_DUGTRIO] = {gMonPalette_Dugtrio, SPECIES_DUGTRIO}, - [SPECIES_MEOWTH] = {gMonPalette_Meowth, SPECIES_MEOWTH}, - [SPECIES_PERSIAN] = {gMonPalette_Persian, SPECIES_PERSIAN}, - [SPECIES_PSYDUCK] = {gMonPalette_Psyduck, SPECIES_PSYDUCK}, - [SPECIES_GOLDUCK] = {gMonPalette_Golduck, SPECIES_GOLDUCK}, - [SPECIES_MANKEY] = {gMonPalette_Mankey, SPECIES_MANKEY}, - [SPECIES_PRIMEAPE] = {gMonPalette_Primeape, SPECIES_PRIMEAPE}, - [SPECIES_GROWLITHE] = {gMonPalette_Growlithe, SPECIES_GROWLITHE}, - [SPECIES_ARCANINE] = {gMonPalette_Arcanine, SPECIES_ARCANINE}, - [SPECIES_POLIWAG] = {gMonPalette_Poliwag, SPECIES_POLIWAG}, - [SPECIES_POLIWHIRL] = {gMonPalette_Poliwhirl, SPECIES_POLIWHIRL}, - [SPECIES_POLIWRATH] = {gMonPalette_Poliwrath, SPECIES_POLIWRATH}, - [SPECIES_ABRA] = {gMonPalette_Abra, SPECIES_ABRA}, - [SPECIES_KADABRA] = {gMonPalette_Kadabra, SPECIES_KADABRA}, - [SPECIES_ALAKAZAM] = {gMonPalette_Alakazam, SPECIES_ALAKAZAM}, - [SPECIES_MACHOP] = {gMonPalette_Machop, SPECIES_MACHOP}, - [SPECIES_MACHOKE] = {gMonPalette_Machoke, SPECIES_MACHOKE}, - [SPECIES_MACHAMP] = {gMonPalette_Machamp, SPECIES_MACHAMP}, - [SPECIES_BELLSPROUT] = {gMonPalette_Bellsprout, SPECIES_BELLSPROUT}, - [SPECIES_WEEPINBELL] = {gMonPalette_Weepinbell, SPECIES_WEEPINBELL}, - [SPECIES_VICTREEBEL] = {gMonPalette_Victreebel, SPECIES_VICTREEBEL}, - [SPECIES_TENTACOOL] = {gMonPalette_Tentacool, SPECIES_TENTACOOL}, - [SPECIES_TENTACRUEL] = {gMonPalette_Tentacruel, SPECIES_TENTACRUEL}, - [SPECIES_GEODUDE] = {gMonPalette_Geodude, SPECIES_GEODUDE}, - [SPECIES_GRAVELER] = {gMonPalette_Graveler, SPECIES_GRAVELER}, - [SPECIES_GOLEM] = {gMonPalette_Golem, SPECIES_GOLEM}, - [SPECIES_PONYTA] = {gMonPalette_Ponyta, SPECIES_PONYTA}, - [SPECIES_RAPIDASH] = {gMonPalette_Rapidash, SPECIES_RAPIDASH}, - [SPECIES_SLOWPOKE] = {gMonPalette_Slowpoke, SPECIES_SLOWPOKE}, - [SPECIES_SLOWBRO] = {gMonPalette_Slowbro, SPECIES_SLOWBRO}, - [SPECIES_MAGNEMITE] = {gMonPalette_Magnemite, SPECIES_MAGNEMITE}, - [SPECIES_MAGNETON] = {gMonPalette_Magneton, SPECIES_MAGNETON}, - [SPECIES_FARFETCHD] = {gMonPalette_Farfetchd, SPECIES_FARFETCHD}, - [SPECIES_DODUO] = {gMonPalette_Doduo, SPECIES_DODUO}, - [SPECIES_DODRIO] = {gMonPalette_Dodrio, SPECIES_DODRIO}, - [SPECIES_SEEL] = {gMonPalette_Seel, SPECIES_SEEL}, - [SPECIES_DEWGONG] = {gMonPalette_Dewgong, SPECIES_DEWGONG}, - [SPECIES_GRIMER] = {gMonPalette_Grimer, SPECIES_GRIMER}, - [SPECIES_MUK] = {gMonPalette_Muk, SPECIES_MUK}, - [SPECIES_SHELLDER] = {gMonPalette_Shellder, SPECIES_SHELLDER}, - [SPECIES_CLOYSTER] = {gMonPalette_Cloyster, SPECIES_CLOYSTER}, - [SPECIES_GASTLY] = {gMonPalette_Gastly, SPECIES_GASTLY}, - [SPECIES_HAUNTER] = {gMonPalette_Haunter, SPECIES_HAUNTER}, - [SPECIES_GENGAR] = {gMonPalette_Gengar, SPECIES_GENGAR}, - [SPECIES_ONIX] = {gMonPalette_Onix, SPECIES_ONIX}, - [SPECIES_DROWZEE] = {gMonPalette_Drowzee, SPECIES_DROWZEE}, - [SPECIES_HYPNO] = {gMonPalette_Hypno, SPECIES_HYPNO}, - [SPECIES_KRABBY] = {gMonPalette_Krabby, SPECIES_KRABBY}, - [SPECIES_KINGLER] = {gMonPalette_Kingler, SPECIES_KINGLER}, - [SPECIES_VOLTORB] = {gMonPalette_Voltorb, SPECIES_VOLTORB}, - [SPECIES_ELECTRODE] = {gMonPalette_Electrode, SPECIES_ELECTRODE}, - [SPECIES_EXEGGCUTE] = {gMonPalette_Exeggcute, SPECIES_EXEGGCUTE}, - [SPECIES_EXEGGUTOR] = {gMonPalette_Exeggutor, SPECIES_EXEGGUTOR}, - [SPECIES_CUBONE] = {gMonPalette_Cubone, SPECIES_CUBONE}, - [SPECIES_MAROWAK] = {gMonPalette_Marowak, SPECIES_MAROWAK}, - [SPECIES_HITMONLEE] = {gMonPalette_Hitmonlee, SPECIES_HITMONLEE}, - [SPECIES_HITMONCHAN] = {gMonPalette_Hitmonchan, SPECIES_HITMONCHAN}, - [SPECIES_LICKITUNG] = {gMonPalette_Lickitung, SPECIES_LICKITUNG}, - [SPECIES_KOFFING] = {gMonPalette_Koffing, SPECIES_KOFFING}, - [SPECIES_WEEZING] = {gMonPalette_Weezing, SPECIES_WEEZING}, - [SPECIES_RHYHORN] = {gMonPalette_Rhyhorn, SPECIES_RHYHORN}, - [SPECIES_RHYDON] = {gMonPalette_Rhydon, SPECIES_RHYDON}, - [SPECIES_CHANSEY] = {gMonPalette_Chansey, SPECIES_CHANSEY}, - [SPECIES_TANGELA] = {gMonPalette_Tangela, SPECIES_TANGELA}, - [SPECIES_KANGASKHAN] = {gMonPalette_Kangaskhan, SPECIES_KANGASKHAN}, - [SPECIES_HORSEA] = {gMonPalette_Horsea, SPECIES_HORSEA}, - [SPECIES_SEADRA] = {gMonPalette_Seadra, SPECIES_SEADRA}, - [SPECIES_GOLDEEN] = {gMonPalette_Goldeen, SPECIES_GOLDEEN}, - [SPECIES_SEAKING] = {gMonPalette_Seaking, SPECIES_SEAKING}, - [SPECIES_STARYU] = {gMonPalette_Staryu, SPECIES_STARYU}, - [SPECIES_STARMIE] = {gMonPalette_Starmie, SPECIES_STARMIE}, - [SPECIES_MR_MIME] = {gMonPalette_Mrmime, SPECIES_MR_MIME}, - [SPECIES_SCYTHER] = {gMonPalette_Scyther, SPECIES_SCYTHER}, - [SPECIES_JYNX] = {gMonPalette_Jynx, SPECIES_JYNX}, - [SPECIES_ELECTABUZZ] = {gMonPalette_Electabuzz, SPECIES_ELECTABUZZ}, - [SPECIES_MAGMAR] = {gMonPalette_Magmar, SPECIES_MAGMAR}, - [SPECIES_PINSIR] = {gMonPalette_Pinsir, SPECIES_PINSIR}, - [SPECIES_TAUROS] = {gMonPalette_Tauros, SPECIES_TAUROS}, - [SPECIES_MAGIKARP] = {gMonPalette_Magikarp, SPECIES_MAGIKARP}, - [SPECIES_GYARADOS] = {gMonPalette_Gyarados, SPECIES_GYARADOS}, - [SPECIES_LAPRAS] = {gMonPalette_Lapras, SPECIES_LAPRAS}, - [SPECIES_DITTO] = {gMonPalette_Ditto, SPECIES_DITTO}, - [SPECIES_EEVEE] = {gMonPalette_Eevee, SPECIES_EEVEE}, - [SPECIES_VAPOREON] = {gMonPalette_Vaporeon, SPECIES_VAPOREON}, - [SPECIES_JOLTEON] = {gMonPalette_Jolteon, SPECIES_JOLTEON}, - [SPECIES_FLAREON] = {gMonPalette_Flareon, SPECIES_FLAREON}, - [SPECIES_PORYGON] = {gMonPalette_Porygon, SPECIES_PORYGON}, - [SPECIES_OMANYTE] = {gMonPalette_Omanyte, SPECIES_OMANYTE}, - [SPECIES_OMASTAR] = {gMonPalette_Omastar, SPECIES_OMASTAR}, - [SPECIES_KABUTO] = {gMonPalette_Kabuto, SPECIES_KABUTO}, - [SPECIES_KABUTOPS] = {gMonPalette_Kabutops, SPECIES_KABUTOPS}, - [SPECIES_AERODACTYL] = {gMonPalette_Aerodactyl, SPECIES_AERODACTYL}, - [SPECIES_SNORLAX] = {gMonPalette_Snorlax, SPECIES_SNORLAX}, - [SPECIES_ARTICUNO] = {gMonPalette_Articuno, SPECIES_ARTICUNO}, - [SPECIES_ZAPDOS] = {gMonPalette_Zapdos, SPECIES_ZAPDOS}, - [SPECIES_MOLTRES] = {gMonPalette_Moltres, SPECIES_MOLTRES}, - [SPECIES_DRATINI] = {gMonPalette_Dratini, SPECIES_DRATINI}, - [SPECIES_DRAGONAIR] = {gMonPalette_Dragonair, SPECIES_DRAGONAIR}, - [SPECIES_DRAGONITE] = {gMonPalette_Dragonite, SPECIES_DRAGONITE}, - [SPECIES_MEWTWO] = {gMonPalette_Mewtwo, SPECIES_MEWTWO}, - [SPECIES_MEW] = {gMonPalette_Mew, SPECIES_MEW}, - [SPECIES_CHIKORITA] = {gMonPalette_Chikorita, SPECIES_CHIKORITA}, - [SPECIES_BAYLEEF] = {gMonPalette_Bayleef, SPECIES_BAYLEEF}, - [SPECIES_MEGANIUM] = {gMonPalette_Meganium, SPECIES_MEGANIUM}, - [SPECIES_CYNDAQUIL] = {gMonPalette_Cyndaquil, SPECIES_CYNDAQUIL}, - [SPECIES_QUILAVA] = {gMonPalette_Quilava, SPECIES_QUILAVA}, - [SPECIES_TYPHLOSION] = {gMonPalette_Typhlosion, SPECIES_TYPHLOSION}, - [SPECIES_TOTODILE] = {gMonPalette_Totodile, SPECIES_TOTODILE}, - [SPECIES_CROCONAW] = {gMonPalette_Croconaw, SPECIES_CROCONAW}, - [SPECIES_FERALIGATR] = {gMonPalette_Feraligatr, SPECIES_FERALIGATR}, - [SPECIES_SENTRET] = {gMonPalette_Sentret, SPECIES_SENTRET}, - [SPECIES_FURRET] = {gMonPalette_Furret, SPECIES_FURRET}, - [SPECIES_HOOTHOOT] = {gMonPalette_Hoothoot, SPECIES_HOOTHOOT}, - [SPECIES_NOCTOWL] = {gMonPalette_Noctowl, SPECIES_NOCTOWL}, - [SPECIES_LEDYBA] = {gMonPalette_Ledyba, SPECIES_LEDYBA}, - [SPECIES_LEDIAN] = {gMonPalette_Ledian, SPECIES_LEDIAN}, - [SPECIES_SPINARAK] = {gMonPalette_Spinarak, SPECIES_SPINARAK}, - [SPECIES_ARIADOS] = {gMonPalette_Ariados, SPECIES_ARIADOS}, - [SPECIES_CROBAT] = {gMonPalette_Crobat, SPECIES_CROBAT}, - [SPECIES_CHINCHOU] = {gMonPalette_Chinchou, SPECIES_CHINCHOU}, - [SPECIES_LANTURN] = {gMonPalette_Lanturn, SPECIES_LANTURN}, - [SPECIES_PICHU] = {gMonPalette_Pichu, SPECIES_PICHU}, - [SPECIES_CLEFFA] = {gMonPalette_Cleffa, SPECIES_CLEFFA}, - [SPECIES_IGGLYBUFF] = {gMonPalette_Igglybuff, SPECIES_IGGLYBUFF}, - [SPECIES_TOGEPI] = {gMonPalette_Togepi, SPECIES_TOGEPI}, - [SPECIES_TOGETIC] = {gMonPalette_Togetic, SPECIES_TOGETIC}, - [SPECIES_NATU] = {gMonPalette_Natu, SPECIES_NATU}, - [SPECIES_XATU] = {gMonPalette_Xatu, SPECIES_XATU}, - [SPECIES_MAREEP] = {gMonPalette_Mareep, SPECIES_MAREEP}, - [SPECIES_FLAAFFY] = {gMonPalette_Flaaffy, SPECIES_FLAAFFY}, - [SPECIES_AMPHAROS] = {gMonPalette_Ampharos, SPECIES_AMPHAROS}, - [SPECIES_BELLOSSOM] = {gMonPalette_Bellossom, SPECIES_BELLOSSOM}, - [SPECIES_MARILL] = {gMonPalette_Marill, SPECIES_MARILL}, - [SPECIES_AZUMARILL] = {gMonPalette_Azumarill, SPECIES_AZUMARILL}, - [SPECIES_SUDOWOODO] = {gMonPalette_Sudowoodo, SPECIES_SUDOWOODO}, - [SPECIES_POLITOED] = {gMonPalette_Politoed, SPECIES_POLITOED}, - [SPECIES_HOPPIP] = {gMonPalette_Hoppip, SPECIES_HOPPIP}, - [SPECIES_SKIPLOOM] = {gMonPalette_Skiploom, SPECIES_SKIPLOOM}, - [SPECIES_JUMPLUFF] = {gMonPalette_Jumpluff, SPECIES_JUMPLUFF}, - [SPECIES_AIPOM] = {gMonPalette_Aipom, SPECIES_AIPOM}, - [SPECIES_SUNKERN] = {gMonPalette_Sunkern, SPECIES_SUNKERN}, - [SPECIES_SUNFLORA] = {gMonPalette_Sunflora, SPECIES_SUNFLORA}, - [SPECIES_YANMA] = {gMonPalette_Yanma, SPECIES_YANMA}, - [SPECIES_WOOPER] = {gMonPalette_Wooper, SPECIES_WOOPER}, - [SPECIES_QUAGSIRE] = {gMonPalette_Quagsire, SPECIES_QUAGSIRE}, - [SPECIES_ESPEON] = {gMonPalette_Espeon, SPECIES_ESPEON}, - [SPECIES_UMBREON] = {gMonPalette_Umbreon, SPECIES_UMBREON}, - [SPECIES_MURKROW] = {gMonPalette_Murkrow, SPECIES_MURKROW}, - [SPECIES_SLOWKING] = {gMonPalette_Slowking, SPECIES_SLOWKING}, - [SPECIES_MISDREAVUS] = {gMonPalette_Misdreavus, SPECIES_MISDREAVUS}, - [SPECIES_UNOWN] = {gMonPalette_Unown, SPECIES_UNOWN}, - [SPECIES_WOBBUFFET] = {gMonPalette_Wobbuffet, SPECIES_WOBBUFFET}, - [SPECIES_GIRAFARIG] = {gMonPalette_Girafarig, SPECIES_GIRAFARIG}, - [SPECIES_PINECO] = {gMonPalette_Pineco, SPECIES_PINECO}, - [SPECIES_FORRETRESS] = {gMonPalette_Forretress, SPECIES_FORRETRESS}, - [SPECIES_DUNSPARCE] = {gMonPalette_Dunsparce, SPECIES_DUNSPARCE}, - [SPECIES_GLIGAR] = {gMonPalette_Gligar, SPECIES_GLIGAR}, - [SPECIES_STEELIX] = {gMonPalette_Steelix, SPECIES_STEELIX}, - [SPECIES_SNUBBULL] = {gMonPalette_Snubbull, SPECIES_SNUBBULL}, - [SPECIES_GRANBULL] = {gMonPalette_Granbull, SPECIES_GRANBULL}, - [SPECIES_QWILFISH] = {gMonPalette_Qwilfish, SPECIES_QWILFISH}, - [SPECIES_SCIZOR] = {gMonPalette_Scizor, SPECIES_SCIZOR}, - [SPECIES_SHUCKLE] = {gMonPalette_Shuckle, SPECIES_SHUCKLE}, - [SPECIES_HERACROSS] = {gMonPalette_Heracross, SPECIES_HERACROSS}, - [SPECIES_SNEASEL] = {gMonPalette_Sneasel, SPECIES_SNEASEL}, - [SPECIES_TEDDIURSA] = {gMonPalette_Teddiursa, SPECIES_TEDDIURSA}, - [SPECIES_URSARING] = {gMonPalette_Ursaring, SPECIES_URSARING}, - [SPECIES_SLUGMA] = {gMonPalette_Slugma, SPECIES_SLUGMA}, - [SPECIES_MAGCARGO] = {gMonPalette_Magcargo, SPECIES_MAGCARGO}, - [SPECIES_SWINUB] = {gMonPalette_Swinub, SPECIES_SWINUB}, - [SPECIES_PILOSWINE] = {gMonPalette_Piloswine, SPECIES_PILOSWINE}, - [SPECIES_CORSOLA] = {gMonPalette_Corsola, SPECIES_CORSOLA}, - [SPECIES_REMORAID] = {gMonPalette_Remoraid, SPECIES_REMORAID}, - [SPECIES_OCTILLERY] = {gMonPalette_Octillery, SPECIES_OCTILLERY}, - [SPECIES_DELIBIRD] = {gMonPalette_Delibird, SPECIES_DELIBIRD}, - [SPECIES_MANTINE] = {gMonPalette_Mantine, SPECIES_MANTINE}, - [SPECIES_SKARMORY] = {gMonPalette_Skarmory, SPECIES_SKARMORY}, - [SPECIES_HOUNDOUR] = {gMonPalette_Houndour, SPECIES_HOUNDOUR}, - [SPECIES_HOUNDOOM] = {gMonPalette_Houndoom, SPECIES_HOUNDOOM}, - [SPECIES_KINGDRA] = {gMonPalette_Kingdra, SPECIES_KINGDRA}, - [SPECIES_PHANPY] = {gMonPalette_Phanpy, SPECIES_PHANPY}, - [SPECIES_DONPHAN] = {gMonPalette_Donphan, SPECIES_DONPHAN}, - [SPECIES_PORYGON2] = {gMonPalette_Porygon2, SPECIES_PORYGON2}, - [SPECIES_STANTLER] = {gMonPalette_Stantler, SPECIES_STANTLER}, - [SPECIES_SMEARGLE] = {gMonPalette_Smeargle, SPECIES_SMEARGLE}, - [SPECIES_TYROGUE] = {gMonPalette_Tyrogue, SPECIES_TYROGUE}, - [SPECIES_HITMONTOP] = {gMonPalette_Hitmontop, SPECIES_HITMONTOP}, - [SPECIES_SMOOCHUM] = {gMonPalette_Smoochum, SPECIES_SMOOCHUM}, - [SPECIES_ELEKID] = {gMonPalette_Elekid, SPECIES_ELEKID}, - [SPECIES_MAGBY] = {gMonPalette_Magby, SPECIES_MAGBY}, - [SPECIES_MILTANK] = {gMonPalette_Miltank, SPECIES_MILTANK}, - [SPECIES_BLISSEY] = {gMonPalette_Blissey, SPECIES_BLISSEY}, - [SPECIES_RAIKOU] = {gMonPalette_Raikou, SPECIES_RAIKOU}, - [SPECIES_ENTEI] = {gMonPalette_Entei, SPECIES_ENTEI}, - [SPECIES_SUICUNE] = {gMonPalette_Suicune, SPECIES_SUICUNE}, - [SPECIES_LARVITAR] = {gMonPalette_Larvitar, SPECIES_LARVITAR}, - [SPECIES_PUPITAR] = {gMonPalette_Pupitar, SPECIES_PUPITAR}, - [SPECIES_TYRANITAR] = {gMonPalette_Tyranitar, SPECIES_TYRANITAR}, - [SPECIES_LUGIA] = {gMonPalette_Lugia, SPECIES_LUGIA}, - [SPECIES_HO_OH] = {gMonPalette_HoOh, SPECIES_HO_OH}, - [SPECIES_CELEBI] = {gMonPalette_Celebi, SPECIES_CELEBI}, - [SPECIES_OLD_UNOWN_B] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_B}, - [SPECIES_OLD_UNOWN_C] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_C}, - [SPECIES_OLD_UNOWN_D] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_D}, - [SPECIES_OLD_UNOWN_E] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_E}, - [SPECIES_OLD_UNOWN_F] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_F}, - [SPECIES_OLD_UNOWN_G] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_G}, - [SPECIES_OLD_UNOWN_H] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_H}, - [SPECIES_OLD_UNOWN_I] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_I}, - [SPECIES_OLD_UNOWN_J] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_J}, - [SPECIES_OLD_UNOWN_K] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_K}, - [SPECIES_OLD_UNOWN_L] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_L}, - [SPECIES_OLD_UNOWN_M] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_M}, - [SPECIES_OLD_UNOWN_N] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_N}, - [SPECIES_OLD_UNOWN_O] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_O}, - [SPECIES_OLD_UNOWN_P] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_P}, - [SPECIES_OLD_UNOWN_Q] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_Q}, - [SPECIES_OLD_UNOWN_R] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_R}, - [SPECIES_OLD_UNOWN_S] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_S}, - [SPECIES_OLD_UNOWN_T] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_T}, - [SPECIES_OLD_UNOWN_U] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_U}, - [SPECIES_OLD_UNOWN_V] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_V}, - [SPECIES_OLD_UNOWN_W] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_W}, - [SPECIES_OLD_UNOWN_X] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_X}, - [SPECIES_OLD_UNOWN_Y] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_Y}, - [SPECIES_OLD_UNOWN_Z] = {gMonPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_Z}, - [SPECIES_TREECKO] = {gMonPalette_Treecko, SPECIES_TREECKO}, - [SPECIES_GROVYLE] = {gMonPalette_Grovyle, SPECIES_GROVYLE}, - [SPECIES_SCEPTILE] = {gMonPalette_Sceptile, SPECIES_SCEPTILE}, - [SPECIES_TORCHIC] = {gMonPalette_Torchic, SPECIES_TORCHIC}, - [SPECIES_COMBUSKEN] = {gMonPalette_Combusken, SPECIES_COMBUSKEN}, - [SPECIES_BLAZIKEN] = {gMonPalette_Blaziken, SPECIES_BLAZIKEN}, - [SPECIES_MUDKIP] = {gMonPalette_Mudkip, SPECIES_MUDKIP}, - [SPECIES_MARSHTOMP] = {gMonPalette_Marshtomp, SPECIES_MARSHTOMP}, - [SPECIES_SWAMPERT] = {gMonPalette_Swampert, SPECIES_SWAMPERT}, - [SPECIES_POOCHYENA] = {gMonPalette_Poochyena, SPECIES_POOCHYENA}, - [SPECIES_MIGHTYENA] = {gMonPalette_Mightyena, SPECIES_MIGHTYENA}, - [SPECIES_ZIGZAGOON] = {gMonPalette_Zigzagoon, SPECIES_ZIGZAGOON}, - [SPECIES_LINOONE] = {gMonPalette_Linoone, SPECIES_LINOONE}, - [SPECIES_WURMPLE] = {gMonPalette_Wurmple, SPECIES_WURMPLE}, - [SPECIES_SILCOON] = {gMonPalette_Silcoon, SPECIES_SILCOON}, - [SPECIES_BEAUTIFLY] = {gMonPalette_Beautifly, SPECIES_BEAUTIFLY}, - [SPECIES_CASCOON] = {gMonPalette_Cascoon, SPECIES_CASCOON}, - [SPECIES_DUSTOX] = {gMonPalette_Dustox, SPECIES_DUSTOX}, - [SPECIES_LOTAD] = {gMonPalette_Lotad, SPECIES_LOTAD}, - [SPECIES_LOMBRE] = {gMonPalette_Lombre, SPECIES_LOMBRE}, - [SPECIES_LUDICOLO] = {gMonPalette_Ludicolo, SPECIES_LUDICOLO}, - [SPECIES_SEEDOT] = {gMonPalette_Seedot, SPECIES_SEEDOT}, - [SPECIES_NUZLEAF] = {gMonPalette_Nuzleaf, SPECIES_NUZLEAF}, - [SPECIES_SHIFTRY] = {gMonPalette_Shiftry, SPECIES_SHIFTRY}, - [SPECIES_NINCADA] = {gMonPalette_Nincada, SPECIES_NINCADA}, - [SPECIES_NINJASK] = {gMonPalette_Ninjask, SPECIES_NINJASK}, - [SPECIES_SHEDINJA] = {gMonPalette_Shedinja, SPECIES_SHEDINJA}, - [SPECIES_TAILLOW] = {gMonPalette_Taillow, SPECIES_TAILLOW}, - [SPECIES_SWELLOW] = {gMonPalette_Swellow, SPECIES_SWELLOW}, - [SPECIES_SHROOMISH] = {gMonPalette_Shroomish, SPECIES_SHROOMISH}, - [SPECIES_BRELOOM] = {gMonPalette_Breloom, SPECIES_BRELOOM}, - [SPECIES_SPINDA] = {gMonPalette_Spinda, SPECIES_SPINDA}, - [SPECIES_WINGULL] = {gMonPalette_Wingull, SPECIES_WINGULL}, - [SPECIES_PELIPPER] = {gMonPalette_Pelipper, SPECIES_PELIPPER}, - [SPECIES_SURSKIT] = {gMonPalette_Surskit, SPECIES_SURSKIT}, - [SPECIES_MASQUERAIN] = {gMonPalette_Masquerain, SPECIES_MASQUERAIN}, - [SPECIES_WAILMER] = {gMonPalette_Wailmer, SPECIES_WAILMER}, - [SPECIES_WAILORD] = {gMonPalette_Wailord, SPECIES_WAILORD}, - [SPECIES_SKITTY] = {gMonPalette_Skitty, SPECIES_SKITTY}, - [SPECIES_DELCATTY] = {gMonPalette_Delcatty, SPECIES_DELCATTY}, - [SPECIES_KECLEON] = {gMonPalette_Kecleon, SPECIES_KECLEON}, - [SPECIES_BALTOY] = {gMonPalette_Baltoy, SPECIES_BALTOY}, - [SPECIES_CLAYDOL] = {gMonPalette_Claydol, SPECIES_CLAYDOL}, - [SPECIES_NOSEPASS] = {gMonPalette_Nosepass, SPECIES_NOSEPASS}, - [SPECIES_TORKOAL] = {gMonPalette_Torkoal, SPECIES_TORKOAL}, - [SPECIES_SABLEYE] = {gMonPalette_Sableye, SPECIES_SABLEYE}, - [SPECIES_BARBOACH] = {gMonPalette_Barboach, SPECIES_BARBOACH}, - [SPECIES_WHISCASH] = {gMonPalette_Whiscash, SPECIES_WHISCASH}, - [SPECIES_LUVDISC] = {gMonPalette_Luvdisc, SPECIES_LUVDISC}, - [SPECIES_CORPHISH] = {gMonPalette_Corphish, SPECIES_CORPHISH}, - [SPECIES_CRAWDAUNT] = {gMonPalette_Crawdaunt, SPECIES_CRAWDAUNT}, - [SPECIES_FEEBAS] = {gMonPalette_Feebas, SPECIES_FEEBAS}, - [SPECIES_MILOTIC] = {gMonPalette_Milotic, SPECIES_MILOTIC}, - [SPECIES_CARVANHA] = {gMonPalette_Carvanha, SPECIES_CARVANHA}, - [SPECIES_SHARPEDO] = {gMonPalette_Sharpedo, SPECIES_SHARPEDO}, - [SPECIES_TRAPINCH] = {gMonPalette_Trapinch, SPECIES_TRAPINCH}, - [SPECIES_VIBRAVA] = {gMonPalette_Vibrava, SPECIES_VIBRAVA}, - [SPECIES_FLYGON] = {gMonPalette_Flygon, SPECIES_FLYGON}, - [SPECIES_MAKUHITA] = {gMonPalette_Makuhita, SPECIES_MAKUHITA}, - [SPECIES_HARIYAMA] = {gMonPalette_Hariyama, SPECIES_HARIYAMA}, - [SPECIES_ELECTRIKE] = {gMonPalette_Electrike, SPECIES_ELECTRIKE}, - [SPECIES_MANECTRIC] = {gMonPalette_Manectric, SPECIES_MANECTRIC}, - [SPECIES_NUMEL] = {gMonPalette_Numel, SPECIES_NUMEL}, - [SPECIES_CAMERUPT] = {gMonPalette_Camerupt, SPECIES_CAMERUPT}, - [SPECIES_SPHEAL] = {gMonPalette_Spheal, SPECIES_SPHEAL}, - [SPECIES_SEALEO] = {gMonPalette_Sealeo, SPECIES_SEALEO}, - [SPECIES_WALREIN] = {gMonPalette_Walrein, SPECIES_WALREIN}, - [SPECIES_CACNEA] = {gMonPalette_Cacnea, SPECIES_CACNEA}, - [SPECIES_CACTURNE] = {gMonPalette_Cacturne, SPECIES_CACTURNE}, - [SPECIES_SNORUNT] = {gMonPalette_Snorunt, SPECIES_SNORUNT}, - [SPECIES_GLALIE] = {gMonPalette_Glalie, SPECIES_GLALIE}, - [SPECIES_LUNATONE] = {gMonPalette_Lunatone, SPECIES_LUNATONE}, - [SPECIES_SOLROCK] = {gMonPalette_Solrock, SPECIES_SOLROCK}, - [SPECIES_AZURILL] = {gMonPalette_Azurill, SPECIES_AZURILL}, - [SPECIES_SPOINK] = {gMonPalette_Spoink, SPECIES_SPOINK}, - [SPECIES_GRUMPIG] = {gMonPalette_Grumpig, SPECIES_GRUMPIG}, - [SPECIES_PLUSLE] = {gMonPalette_Plusle, SPECIES_PLUSLE}, - [SPECIES_MINUN] = {gMonPalette_Minun, SPECIES_MINUN}, - [SPECIES_MAWILE] = {gMonPalette_Mawile, SPECIES_MAWILE}, - [SPECIES_MEDITITE] = {gMonPalette_Meditite, SPECIES_MEDITITE}, - [SPECIES_MEDICHAM] = {gMonPalette_Medicham, SPECIES_MEDICHAM}, - [SPECIES_SWABLU] = {gMonPalette_Swablu, SPECIES_SWABLU}, - [SPECIES_ALTARIA] = {gMonPalette_Altaria, SPECIES_ALTARIA}, - [SPECIES_WYNAUT] = {gMonPalette_Wynaut, SPECIES_WYNAUT}, - [SPECIES_DUSKULL] = {gMonPalette_Duskull, SPECIES_DUSKULL}, - [SPECIES_DUSCLOPS] = {gMonPalette_Dusclops, SPECIES_DUSCLOPS}, - [SPECIES_ROSELIA] = {gMonPalette_Roselia, SPECIES_ROSELIA}, - [SPECIES_SLAKOTH] = {gMonPalette_Slakoth, SPECIES_SLAKOTH}, - [SPECIES_VIGOROTH] = {gMonPalette_Vigoroth, SPECIES_VIGOROTH}, - [SPECIES_SLAKING] = {gMonPalette_Slaking, SPECIES_SLAKING}, - [SPECIES_GULPIN] = {gMonPalette_Gulpin, SPECIES_GULPIN}, - [SPECIES_SWALOT] = {gMonPalette_Swalot, SPECIES_SWALOT}, - [SPECIES_TROPIUS] = {gMonPalette_Tropius, SPECIES_TROPIUS}, - [SPECIES_WHISMUR] = {gMonPalette_Whismur, SPECIES_WHISMUR}, - [SPECIES_LOUDRED] = {gMonPalette_Loudred, SPECIES_LOUDRED}, - [SPECIES_EXPLOUD] = {gMonPalette_Exploud, SPECIES_EXPLOUD}, - [SPECIES_CLAMPERL] = {gMonPalette_Clamperl, SPECIES_CLAMPERL}, - [SPECIES_HUNTAIL] = {gMonPalette_Huntail, SPECIES_HUNTAIL}, - [SPECIES_GOREBYSS] = {gMonPalette_Gorebyss, SPECIES_GOREBYSS}, - [SPECIES_ABSOL] = {gMonPalette_Absol, SPECIES_ABSOL}, - [SPECIES_SHUPPET] = {gMonPalette_Shuppet, SPECIES_SHUPPET}, - [SPECIES_BANETTE] = {gMonPalette_Banette, SPECIES_BANETTE}, - [SPECIES_SEVIPER] = {gMonPalette_Seviper, SPECIES_SEVIPER}, - [SPECIES_ZANGOOSE] = {gMonPalette_Zangoose, SPECIES_ZANGOOSE}, - [SPECIES_RELICANTH] = {gMonPalette_Relicanth, SPECIES_RELICANTH}, - [SPECIES_ARON] = {gMonPalette_Aron, SPECIES_ARON}, - [SPECIES_LAIRON] = {gMonPalette_Lairon, SPECIES_LAIRON}, - [SPECIES_AGGRON] = {gMonPalette_Aggron, SPECIES_AGGRON}, - [SPECIES_CASTFORM] = {gMonPalette_Castform, SPECIES_CASTFORM}, - [SPECIES_VOLBEAT] = {gMonPalette_Volbeat, SPECIES_VOLBEAT}, - [SPECIES_ILLUMISE] = {gMonPalette_Illumise, SPECIES_ILLUMISE}, - [SPECIES_LILEEP] = {gMonPalette_Lileep, SPECIES_LILEEP}, - [SPECIES_CRADILY] = {gMonPalette_Cradily, SPECIES_CRADILY}, - [SPECIES_ANORITH] = {gMonPalette_Anorith, SPECIES_ANORITH}, - [SPECIES_ARMALDO] = {gMonPalette_Armaldo, SPECIES_ARMALDO}, - [SPECIES_RALTS] = {gMonPalette_Ralts, SPECIES_RALTS}, - [SPECIES_KIRLIA] = {gMonPalette_Kirlia, SPECIES_KIRLIA}, - [SPECIES_GARDEVOIR] = {gMonPalette_Gardevoir, SPECIES_GARDEVOIR}, - [SPECIES_BAGON] = {gMonPalette_Bagon, SPECIES_BAGON}, - [SPECIES_SHELGON] = {gMonPalette_Shelgon, SPECIES_SHELGON}, - [SPECIES_SALAMENCE] = {gMonPalette_Salamence, SPECIES_SALAMENCE}, - [SPECIES_BELDUM] = {gMonPalette_Beldum, SPECIES_BELDUM}, - [SPECIES_METANG] = {gMonPalette_Metang, SPECIES_METANG}, - [SPECIES_METAGROSS] = {gMonPalette_Metagross, SPECIES_METAGROSS}, - [SPECIES_REGIROCK] = {gMonPalette_Regirock, SPECIES_REGIROCK}, - [SPECIES_REGICE] = {gMonPalette_Regice, SPECIES_REGICE}, - [SPECIES_REGISTEEL] = {gMonPalette_Registeel, SPECIES_REGISTEEL}, - [SPECIES_KYOGRE] = {gMonPalette_Kyogre, SPECIES_KYOGRE}, - [SPECIES_GROUDON] = {gMonPalette_Groudon, SPECIES_GROUDON}, - [SPECIES_RAYQUAZA] = {gMonPalette_Rayquaza, SPECIES_RAYQUAZA}, - [SPECIES_LATIAS] = {gMonPalette_Latias, SPECIES_LATIAS}, - [SPECIES_LATIOS] = {gMonPalette_Latios, SPECIES_LATIOS}, - [SPECIES_JIRACHI] = {gMonPalette_Jirachi, SPECIES_JIRACHI}, - [SPECIES_DEOXYS] = {gMonPalette_Deoxys, SPECIES_DEOXYS}, - [SPECIES_CHIMECHO] = {gMonPalette_Chimecho, SPECIES_CHIMECHO}, - [SPECIES_EGG] = {gMonPalette_Egg, SPECIES_EGG}, - [SPECIES_UNOWN_B] = {gMonPalette_Unown, SPECIES_UNOWN_B}, - [SPECIES_UNOWN_C] = {gMonPalette_Unown, SPECIES_UNOWN_C}, - [SPECIES_UNOWN_D] = {gMonPalette_Unown, SPECIES_UNOWN_D}, - [SPECIES_UNOWN_E] = {gMonPalette_Unown, SPECIES_UNOWN_E}, - [SPECIES_UNOWN_F] = {gMonPalette_Unown, SPECIES_UNOWN_F}, - [SPECIES_UNOWN_G] = {gMonPalette_Unown, SPECIES_UNOWN_G}, - [SPECIES_UNOWN_H] = {gMonPalette_Unown, SPECIES_UNOWN_H}, - [SPECIES_UNOWN_I] = {gMonPalette_Unown, SPECIES_UNOWN_I}, - [SPECIES_UNOWN_J] = {gMonPalette_Unown, SPECIES_UNOWN_J}, - [SPECIES_UNOWN_K] = {gMonPalette_Unown, SPECIES_UNOWN_K}, - [SPECIES_UNOWN_L] = {gMonPalette_Unown, SPECIES_UNOWN_L}, - [SPECIES_UNOWN_M] = {gMonPalette_Unown, SPECIES_UNOWN_M}, - [SPECIES_UNOWN_N] = {gMonPalette_Unown, SPECIES_UNOWN_N}, - [SPECIES_UNOWN_O] = {gMonPalette_Unown, SPECIES_UNOWN_O}, - [SPECIES_UNOWN_P] = {gMonPalette_Unown, SPECIES_UNOWN_P}, - [SPECIES_UNOWN_Q] = {gMonPalette_Unown, SPECIES_UNOWN_Q}, - [SPECIES_UNOWN_R] = {gMonPalette_Unown, SPECIES_UNOWN_R}, - [SPECIES_UNOWN_S] = {gMonPalette_Unown, SPECIES_UNOWN_S}, - [SPECIES_UNOWN_T] = {gMonPalette_Unown, SPECIES_UNOWN_T}, - [SPECIES_UNOWN_U] = {gMonPalette_Unown, SPECIES_UNOWN_U}, - [SPECIES_UNOWN_V] = {gMonPalette_Unown, SPECIES_UNOWN_V}, - [SPECIES_UNOWN_W] = {gMonPalette_Unown, SPECIES_UNOWN_W}, - [SPECIES_UNOWN_X] = {gMonPalette_Unown, SPECIES_UNOWN_X}, - [SPECIES_UNOWN_Y] = {gMonPalette_Unown, SPECIES_UNOWN_Y}, - [SPECIES_UNOWN_Z] = {gMonPalette_Unown, SPECIES_UNOWN_Z}, - [SPECIES_UNOWN_EMARK] = {gMonPalette_Unown, SPECIES_UNOWN_EMARK}, - [SPECIES_UNOWN_QMARK] = {gMonPalette_Unown, SPECIES_UNOWN_QMARK}, + SPECIES_PAL(NONE, gMonPalette_CircledQuestionMark), + SPECIES_PAL(BULBASAUR, gMonPalette_Bulbasaur), + SPECIES_PAL(IVYSAUR, gMonPalette_Ivysaur), + SPECIES_PAL(VENUSAUR, gMonPalette_Venusaur), + SPECIES_PAL(CHARMANDER, gMonPalette_Charmander), + SPECIES_PAL(CHARMELEON, gMonPalette_Charmeleon), + SPECIES_PAL(CHARIZARD, gMonPalette_Charizard), + SPECIES_PAL(SQUIRTLE, gMonPalette_Squirtle), + SPECIES_PAL(WARTORTLE, gMonPalette_Wartortle), + SPECIES_PAL(BLASTOISE, gMonPalette_Blastoise), + SPECIES_PAL(CATERPIE, gMonPalette_Caterpie), + SPECIES_PAL(METAPOD, gMonPalette_Metapod), + SPECIES_PAL(BUTTERFREE, gMonPalette_Butterfree), + SPECIES_PAL(WEEDLE, gMonPalette_Weedle), + SPECIES_PAL(KAKUNA, gMonPalette_Kakuna), + SPECIES_PAL(BEEDRILL, gMonPalette_Beedrill), + SPECIES_PAL(PIDGEY, gMonPalette_Pidgey), + SPECIES_PAL(PIDGEOTTO, gMonPalette_Pidgeotto), + SPECIES_PAL(PIDGEOT, gMonPalette_Pidgeot), + SPECIES_PAL(RATTATA, gMonPalette_Rattata), + SPECIES_PAL(RATICATE, gMonPalette_Raticate), + SPECIES_PAL(SPEAROW, gMonPalette_Spearow), + SPECIES_PAL(FEAROW, gMonPalette_Fearow), + SPECIES_PAL(EKANS, gMonPalette_Ekans), + SPECIES_PAL(ARBOK, gMonPalette_Arbok), + SPECIES_PAL(PIKACHU, gMonPalette_Pikachu), + SPECIES_PAL(RAICHU, gMonPalette_Raichu), + SPECIES_PAL(SANDSHREW, gMonPalette_Sandshrew), + SPECIES_PAL(SANDSLASH, gMonPalette_Sandslash), + SPECIES_PAL(NIDORAN_F, gMonPalette_NidoranF), + SPECIES_PAL(NIDORINA, gMonPalette_Nidorina), + SPECIES_PAL(NIDOQUEEN, gMonPalette_Nidoqueen), + SPECIES_PAL(NIDORAN_M, gMonPalette_NidoranM), + SPECIES_PAL(NIDORINO, gMonPalette_Nidorino), + SPECIES_PAL(NIDOKING, gMonPalette_Nidoking), + SPECIES_PAL(CLEFAIRY, gMonPalette_Clefairy), + SPECIES_PAL(CLEFABLE, gMonPalette_Clefable), + SPECIES_PAL(VULPIX, gMonPalette_Vulpix), + SPECIES_PAL(NINETALES, gMonPalette_Ninetales), + SPECIES_PAL(JIGGLYPUFF, gMonPalette_Jigglypuff), + SPECIES_PAL(WIGGLYTUFF, gMonPalette_Wigglytuff), + SPECIES_PAL(ZUBAT, gMonPalette_Zubat), + SPECIES_PAL(GOLBAT, gMonPalette_Golbat), + SPECIES_PAL(ODDISH, gMonPalette_Oddish), + SPECIES_PAL(GLOOM, gMonPalette_Gloom), + SPECIES_PAL(VILEPLUME, gMonPalette_Vileplume), + SPECIES_PAL(PARAS, gMonPalette_Paras), + SPECIES_PAL(PARASECT, gMonPalette_Parasect), + SPECIES_PAL(VENONAT, gMonPalette_Venonat), + SPECIES_PAL(VENOMOTH, gMonPalette_Venomoth), + SPECIES_PAL(DIGLETT, gMonPalette_Diglett), + SPECIES_PAL(DUGTRIO, gMonPalette_Dugtrio), + SPECIES_PAL(MEOWTH, gMonPalette_Meowth), + SPECIES_PAL(PERSIAN, gMonPalette_Persian), + SPECIES_PAL(PSYDUCK, gMonPalette_Psyduck), + SPECIES_PAL(GOLDUCK, gMonPalette_Golduck), + SPECIES_PAL(MANKEY, gMonPalette_Mankey), + SPECIES_PAL(PRIMEAPE, gMonPalette_Primeape), + SPECIES_PAL(GROWLITHE, gMonPalette_Growlithe), + SPECIES_PAL(ARCANINE, gMonPalette_Arcanine), + SPECIES_PAL(POLIWAG, gMonPalette_Poliwag), + SPECIES_PAL(POLIWHIRL, gMonPalette_Poliwhirl), + SPECIES_PAL(POLIWRATH, gMonPalette_Poliwrath), + SPECIES_PAL(ABRA, gMonPalette_Abra), + SPECIES_PAL(KADABRA, gMonPalette_Kadabra), + SPECIES_PAL(ALAKAZAM, gMonPalette_Alakazam), + SPECIES_PAL(MACHOP, gMonPalette_Machop), + SPECIES_PAL(MACHOKE, gMonPalette_Machoke), + SPECIES_PAL(MACHAMP, gMonPalette_Machamp), + SPECIES_PAL(BELLSPROUT, gMonPalette_Bellsprout), + SPECIES_PAL(WEEPINBELL, gMonPalette_Weepinbell), + SPECIES_PAL(VICTREEBEL, gMonPalette_Victreebel), + SPECIES_PAL(TENTACOOL, gMonPalette_Tentacool), + SPECIES_PAL(TENTACRUEL, gMonPalette_Tentacruel), + SPECIES_PAL(GEODUDE, gMonPalette_Geodude), + SPECIES_PAL(GRAVELER, gMonPalette_Graveler), + SPECIES_PAL(GOLEM, gMonPalette_Golem), + SPECIES_PAL(PONYTA, gMonPalette_Ponyta), + SPECIES_PAL(RAPIDASH, gMonPalette_Rapidash), + SPECIES_PAL(SLOWPOKE, gMonPalette_Slowpoke), + SPECIES_PAL(SLOWBRO, gMonPalette_Slowbro), + SPECIES_PAL(MAGNEMITE, gMonPalette_Magnemite), + SPECIES_PAL(MAGNETON, gMonPalette_Magneton), + SPECIES_PAL(FARFETCHD, gMonPalette_Farfetchd), + SPECIES_PAL(DODUO, gMonPalette_Doduo), + SPECIES_PAL(DODRIO, gMonPalette_Dodrio), + SPECIES_PAL(SEEL, gMonPalette_Seel), + SPECIES_PAL(DEWGONG, gMonPalette_Dewgong), + SPECIES_PAL(GRIMER, gMonPalette_Grimer), + SPECIES_PAL(MUK, gMonPalette_Muk), + SPECIES_PAL(SHELLDER, gMonPalette_Shellder), + SPECIES_PAL(CLOYSTER, gMonPalette_Cloyster), + SPECIES_PAL(GASTLY, gMonPalette_Gastly), + SPECIES_PAL(HAUNTER, gMonPalette_Haunter), + SPECIES_PAL(GENGAR, gMonPalette_Gengar), + SPECIES_PAL(ONIX, gMonPalette_Onix), + SPECIES_PAL(DROWZEE, gMonPalette_Drowzee), + SPECIES_PAL(HYPNO, gMonPalette_Hypno), + SPECIES_PAL(KRABBY, gMonPalette_Krabby), + SPECIES_PAL(KINGLER, gMonPalette_Kingler), + SPECIES_PAL(VOLTORB, gMonPalette_Voltorb), + SPECIES_PAL(ELECTRODE, gMonPalette_Electrode), + SPECIES_PAL(EXEGGCUTE, gMonPalette_Exeggcute), + SPECIES_PAL(EXEGGUTOR, gMonPalette_Exeggutor), + SPECIES_PAL(CUBONE, gMonPalette_Cubone), + SPECIES_PAL(MAROWAK, gMonPalette_Marowak), + SPECIES_PAL(HITMONLEE, gMonPalette_Hitmonlee), + SPECIES_PAL(HITMONCHAN, gMonPalette_Hitmonchan), + SPECIES_PAL(LICKITUNG, gMonPalette_Lickitung), + SPECIES_PAL(KOFFING, gMonPalette_Koffing), + SPECIES_PAL(WEEZING, gMonPalette_Weezing), + SPECIES_PAL(RHYHORN, gMonPalette_Rhyhorn), + SPECIES_PAL(RHYDON, gMonPalette_Rhydon), + SPECIES_PAL(CHANSEY, gMonPalette_Chansey), + SPECIES_PAL(TANGELA, gMonPalette_Tangela), + SPECIES_PAL(KANGASKHAN, gMonPalette_Kangaskhan), + SPECIES_PAL(HORSEA, gMonPalette_Horsea), + SPECIES_PAL(SEADRA, gMonPalette_Seadra), + SPECIES_PAL(GOLDEEN, gMonPalette_Goldeen), + SPECIES_PAL(SEAKING, gMonPalette_Seaking), + SPECIES_PAL(STARYU, gMonPalette_Staryu), + SPECIES_PAL(STARMIE, gMonPalette_Starmie), + SPECIES_PAL(MR_MIME, gMonPalette_Mrmime), + SPECIES_PAL(SCYTHER, gMonPalette_Scyther), + SPECIES_PAL(JYNX, gMonPalette_Jynx), + SPECIES_PAL(ELECTABUZZ, gMonPalette_Electabuzz), + SPECIES_PAL(MAGMAR, gMonPalette_Magmar), + SPECIES_PAL(PINSIR, gMonPalette_Pinsir), + SPECIES_PAL(TAUROS, gMonPalette_Tauros), + SPECIES_PAL(MAGIKARP, gMonPalette_Magikarp), + SPECIES_PAL(GYARADOS, gMonPalette_Gyarados), + SPECIES_PAL(LAPRAS, gMonPalette_Lapras), + SPECIES_PAL(DITTO, gMonPalette_Ditto), + SPECIES_PAL(EEVEE, gMonPalette_Eevee), + SPECIES_PAL(VAPOREON, gMonPalette_Vaporeon), + SPECIES_PAL(JOLTEON, gMonPalette_Jolteon), + SPECIES_PAL(FLAREON, gMonPalette_Flareon), + SPECIES_PAL(PORYGON, gMonPalette_Porygon), + SPECIES_PAL(OMANYTE, gMonPalette_Omanyte), + SPECIES_PAL(OMASTAR, gMonPalette_Omastar), + SPECIES_PAL(KABUTO, gMonPalette_Kabuto), + SPECIES_PAL(KABUTOPS, gMonPalette_Kabutops), + SPECIES_PAL(AERODACTYL, gMonPalette_Aerodactyl), + SPECIES_PAL(SNORLAX, gMonPalette_Snorlax), + SPECIES_PAL(ARTICUNO, gMonPalette_Articuno), + SPECIES_PAL(ZAPDOS, gMonPalette_Zapdos), + SPECIES_PAL(MOLTRES, gMonPalette_Moltres), + SPECIES_PAL(DRATINI, gMonPalette_Dratini), + SPECIES_PAL(DRAGONAIR, gMonPalette_Dragonair), + SPECIES_PAL(DRAGONITE, gMonPalette_Dragonite), + SPECIES_PAL(MEWTWO, gMonPalette_Mewtwo), + SPECIES_PAL(MEW, gMonPalette_Mew), + SPECIES_PAL(CHIKORITA, gMonPalette_Chikorita), + SPECIES_PAL(BAYLEEF, gMonPalette_Bayleef), + SPECIES_PAL(MEGANIUM, gMonPalette_Meganium), + SPECIES_PAL(CYNDAQUIL, gMonPalette_Cyndaquil), + SPECIES_PAL(QUILAVA, gMonPalette_Quilava), + SPECIES_PAL(TYPHLOSION, gMonPalette_Typhlosion), + SPECIES_PAL(TOTODILE, gMonPalette_Totodile), + SPECIES_PAL(CROCONAW, gMonPalette_Croconaw), + SPECIES_PAL(FERALIGATR, gMonPalette_Feraligatr), + SPECIES_PAL(SENTRET, gMonPalette_Sentret), + SPECIES_PAL(FURRET, gMonPalette_Furret), + SPECIES_PAL(HOOTHOOT, gMonPalette_Hoothoot), + SPECIES_PAL(NOCTOWL, gMonPalette_Noctowl), + SPECIES_PAL(LEDYBA, gMonPalette_Ledyba), + SPECIES_PAL(LEDIAN, gMonPalette_Ledian), + SPECIES_PAL(SPINARAK, gMonPalette_Spinarak), + SPECIES_PAL(ARIADOS, gMonPalette_Ariados), + SPECIES_PAL(CROBAT, gMonPalette_Crobat), + SPECIES_PAL(CHINCHOU, gMonPalette_Chinchou), + SPECIES_PAL(LANTURN, gMonPalette_Lanturn), + SPECIES_PAL(PICHU, gMonPalette_Pichu), + SPECIES_PAL(CLEFFA, gMonPalette_Cleffa), + SPECIES_PAL(IGGLYBUFF, gMonPalette_Igglybuff), + SPECIES_PAL(TOGEPI, gMonPalette_Togepi), + SPECIES_PAL(TOGETIC, gMonPalette_Togetic), + SPECIES_PAL(NATU, gMonPalette_Natu), + SPECIES_PAL(XATU, gMonPalette_Xatu), + SPECIES_PAL(MAREEP, gMonPalette_Mareep), + SPECIES_PAL(FLAAFFY, gMonPalette_Flaaffy), + SPECIES_PAL(AMPHAROS, gMonPalette_Ampharos), + SPECIES_PAL(BELLOSSOM, gMonPalette_Bellossom), + SPECIES_PAL(MARILL, gMonPalette_Marill), + SPECIES_PAL(AZUMARILL, gMonPalette_Azumarill), + SPECIES_PAL(SUDOWOODO, gMonPalette_Sudowoodo), + SPECIES_PAL(POLITOED, gMonPalette_Politoed), + SPECIES_PAL(HOPPIP, gMonPalette_Hoppip), + SPECIES_PAL(SKIPLOOM, gMonPalette_Skiploom), + SPECIES_PAL(JUMPLUFF, gMonPalette_Jumpluff), + SPECIES_PAL(AIPOM, gMonPalette_Aipom), + SPECIES_PAL(SUNKERN, gMonPalette_Sunkern), + SPECIES_PAL(SUNFLORA, gMonPalette_Sunflora), + SPECIES_PAL(YANMA, gMonPalette_Yanma), + SPECIES_PAL(WOOPER, gMonPalette_Wooper), + SPECIES_PAL(QUAGSIRE, gMonPalette_Quagsire), + SPECIES_PAL(ESPEON, gMonPalette_Espeon), + SPECIES_PAL(UMBREON, gMonPalette_Umbreon), + SPECIES_PAL(MURKROW, gMonPalette_Murkrow), + SPECIES_PAL(SLOWKING, gMonPalette_Slowking), + SPECIES_PAL(MISDREAVUS, gMonPalette_Misdreavus), + SPECIES_PAL(UNOWN, gMonPalette_Unown), + SPECIES_PAL(WOBBUFFET, gMonPalette_Wobbuffet), + SPECIES_PAL(GIRAFARIG, gMonPalette_Girafarig), + SPECIES_PAL(PINECO, gMonPalette_Pineco), + SPECIES_PAL(FORRETRESS, gMonPalette_Forretress), + SPECIES_PAL(DUNSPARCE, gMonPalette_Dunsparce), + SPECIES_PAL(GLIGAR, gMonPalette_Gligar), + SPECIES_PAL(STEELIX, gMonPalette_Steelix), + SPECIES_PAL(SNUBBULL, gMonPalette_Snubbull), + SPECIES_PAL(GRANBULL, gMonPalette_Granbull), + SPECIES_PAL(QWILFISH, gMonPalette_Qwilfish), + SPECIES_PAL(SCIZOR, gMonPalette_Scizor), + SPECIES_PAL(SHUCKLE, gMonPalette_Shuckle), + SPECIES_PAL(HERACROSS, gMonPalette_Heracross), + SPECIES_PAL(SNEASEL, gMonPalette_Sneasel), + SPECIES_PAL(TEDDIURSA, gMonPalette_Teddiursa), + SPECIES_PAL(URSARING, gMonPalette_Ursaring), + SPECIES_PAL(SLUGMA, gMonPalette_Slugma), + SPECIES_PAL(MAGCARGO, gMonPalette_Magcargo), + SPECIES_PAL(SWINUB, gMonPalette_Swinub), + SPECIES_PAL(PILOSWINE, gMonPalette_Piloswine), + SPECIES_PAL(CORSOLA, gMonPalette_Corsola), + SPECIES_PAL(REMORAID, gMonPalette_Remoraid), + SPECIES_PAL(OCTILLERY, gMonPalette_Octillery), + SPECIES_PAL(DELIBIRD, gMonPalette_Delibird), + SPECIES_PAL(MANTINE, gMonPalette_Mantine), + SPECIES_PAL(SKARMORY, gMonPalette_Skarmory), + SPECIES_PAL(HOUNDOUR, gMonPalette_Houndour), + SPECIES_PAL(HOUNDOOM, gMonPalette_Houndoom), + SPECIES_PAL(KINGDRA, gMonPalette_Kingdra), + SPECIES_PAL(PHANPY, gMonPalette_Phanpy), + SPECIES_PAL(DONPHAN, gMonPalette_Donphan), + SPECIES_PAL(PORYGON2, gMonPalette_Porygon2), + SPECIES_PAL(STANTLER, gMonPalette_Stantler), + SPECIES_PAL(SMEARGLE, gMonPalette_Smeargle), + SPECIES_PAL(TYROGUE, gMonPalette_Tyrogue), + SPECIES_PAL(HITMONTOP, gMonPalette_Hitmontop), + SPECIES_PAL(SMOOCHUM, gMonPalette_Smoochum), + SPECIES_PAL(ELEKID, gMonPalette_Elekid), + SPECIES_PAL(MAGBY, gMonPalette_Magby), + SPECIES_PAL(MILTANK, gMonPalette_Miltank), + SPECIES_PAL(BLISSEY, gMonPalette_Blissey), + SPECIES_PAL(RAIKOU, gMonPalette_Raikou), + SPECIES_PAL(ENTEI, gMonPalette_Entei), + SPECIES_PAL(SUICUNE, gMonPalette_Suicune), + SPECIES_PAL(LARVITAR, gMonPalette_Larvitar), + SPECIES_PAL(PUPITAR, gMonPalette_Pupitar), + SPECIES_PAL(TYRANITAR, gMonPalette_Tyranitar), + SPECIES_PAL(LUGIA, gMonPalette_Lugia), + SPECIES_PAL(HO_OH, gMonPalette_HoOh), + SPECIES_PAL(CELEBI, gMonPalette_Celebi), + SPECIES_PAL(OLD_UNOWN_B, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_C, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_D, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_E, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_F, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_G, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_H, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_I, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_J, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_K, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_L, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_M, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_N, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_O, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_P, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_Q, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_R, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_S, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_T, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_U, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_V, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_W, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_X, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_Y, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(OLD_UNOWN_Z, gMonPalette_DoubleQuestionMark), + SPECIES_PAL(TREECKO, gMonPalette_Treecko), + SPECIES_PAL(GROVYLE, gMonPalette_Grovyle), + SPECIES_PAL(SCEPTILE, gMonPalette_Sceptile), + SPECIES_PAL(TORCHIC, gMonPalette_Torchic), + SPECIES_PAL(COMBUSKEN, gMonPalette_Combusken), + SPECIES_PAL(BLAZIKEN, gMonPalette_Blaziken), + SPECIES_PAL(MUDKIP, gMonPalette_Mudkip), + SPECIES_PAL(MARSHTOMP, gMonPalette_Marshtomp), + SPECIES_PAL(SWAMPERT, gMonPalette_Swampert), + SPECIES_PAL(POOCHYENA, gMonPalette_Poochyena), + SPECIES_PAL(MIGHTYENA, gMonPalette_Mightyena), + SPECIES_PAL(ZIGZAGOON, gMonPalette_Zigzagoon), + SPECIES_PAL(LINOONE, gMonPalette_Linoone), + SPECIES_PAL(WURMPLE, gMonPalette_Wurmple), + SPECIES_PAL(SILCOON, gMonPalette_Silcoon), + SPECIES_PAL(BEAUTIFLY, gMonPalette_Beautifly), + SPECIES_PAL(CASCOON, gMonPalette_Cascoon), + SPECIES_PAL(DUSTOX, gMonPalette_Dustox), + SPECIES_PAL(LOTAD, gMonPalette_Lotad), + SPECIES_PAL(LOMBRE, gMonPalette_Lombre), + SPECIES_PAL(LUDICOLO, gMonPalette_Ludicolo), + SPECIES_PAL(SEEDOT, gMonPalette_Seedot), + SPECIES_PAL(NUZLEAF, gMonPalette_Nuzleaf), + SPECIES_PAL(SHIFTRY, gMonPalette_Shiftry), + SPECIES_PAL(NINCADA, gMonPalette_Nincada), + SPECIES_PAL(NINJASK, gMonPalette_Ninjask), + SPECIES_PAL(SHEDINJA, gMonPalette_Shedinja), + SPECIES_PAL(TAILLOW, gMonPalette_Taillow), + SPECIES_PAL(SWELLOW, gMonPalette_Swellow), + SPECIES_PAL(SHROOMISH, gMonPalette_Shroomish), + SPECIES_PAL(BRELOOM, gMonPalette_Breloom), + SPECIES_PAL(SPINDA, gMonPalette_Spinda), + SPECIES_PAL(WINGULL, gMonPalette_Wingull), + SPECIES_PAL(PELIPPER, gMonPalette_Pelipper), + SPECIES_PAL(SURSKIT, gMonPalette_Surskit), + SPECIES_PAL(MASQUERAIN, gMonPalette_Masquerain), + SPECIES_PAL(WAILMER, gMonPalette_Wailmer), + SPECIES_PAL(WAILORD, gMonPalette_Wailord), + SPECIES_PAL(SKITTY, gMonPalette_Skitty), + SPECIES_PAL(DELCATTY, gMonPalette_Delcatty), + SPECIES_PAL(KECLEON, gMonPalette_Kecleon), + SPECIES_PAL(BALTOY, gMonPalette_Baltoy), + SPECIES_PAL(CLAYDOL, gMonPalette_Claydol), + SPECIES_PAL(NOSEPASS, gMonPalette_Nosepass), + SPECIES_PAL(TORKOAL, gMonPalette_Torkoal), + SPECIES_PAL(SABLEYE, gMonPalette_Sableye), + SPECIES_PAL(BARBOACH, gMonPalette_Barboach), + SPECIES_PAL(WHISCASH, gMonPalette_Whiscash), + SPECIES_PAL(LUVDISC, gMonPalette_Luvdisc), + SPECIES_PAL(CORPHISH, gMonPalette_Corphish), + SPECIES_PAL(CRAWDAUNT, gMonPalette_Crawdaunt), + SPECIES_PAL(FEEBAS, gMonPalette_Feebas), + SPECIES_PAL(MILOTIC, gMonPalette_Milotic), + SPECIES_PAL(CARVANHA, gMonPalette_Carvanha), + SPECIES_PAL(SHARPEDO, gMonPalette_Sharpedo), + SPECIES_PAL(TRAPINCH, gMonPalette_Trapinch), + SPECIES_PAL(VIBRAVA, gMonPalette_Vibrava), + SPECIES_PAL(FLYGON, gMonPalette_Flygon), + SPECIES_PAL(MAKUHITA, gMonPalette_Makuhita), + SPECIES_PAL(HARIYAMA, gMonPalette_Hariyama), + SPECIES_PAL(ELECTRIKE, gMonPalette_Electrike), + SPECIES_PAL(MANECTRIC, gMonPalette_Manectric), + SPECIES_PAL(NUMEL, gMonPalette_Numel), + SPECIES_PAL(CAMERUPT, gMonPalette_Camerupt), + SPECIES_PAL(SPHEAL, gMonPalette_Spheal), + SPECIES_PAL(SEALEO, gMonPalette_Sealeo), + SPECIES_PAL(WALREIN, gMonPalette_Walrein), + SPECIES_PAL(CACNEA, gMonPalette_Cacnea), + SPECIES_PAL(CACTURNE, gMonPalette_Cacturne), + SPECIES_PAL(SNORUNT, gMonPalette_Snorunt), + SPECIES_PAL(GLALIE, gMonPalette_Glalie), + SPECIES_PAL(LUNATONE, gMonPalette_Lunatone), + SPECIES_PAL(SOLROCK, gMonPalette_Solrock), + SPECIES_PAL(AZURILL, gMonPalette_Azurill), + SPECIES_PAL(SPOINK, gMonPalette_Spoink), + SPECIES_PAL(GRUMPIG, gMonPalette_Grumpig), + SPECIES_PAL(PLUSLE, gMonPalette_Plusle), + SPECIES_PAL(MINUN, gMonPalette_Minun), + SPECIES_PAL(MAWILE, gMonPalette_Mawile), + SPECIES_PAL(MEDITITE, gMonPalette_Meditite), + SPECIES_PAL(MEDICHAM, gMonPalette_Medicham), + SPECIES_PAL(SWABLU, gMonPalette_Swablu), + SPECIES_PAL(ALTARIA, gMonPalette_Altaria), + SPECIES_PAL(WYNAUT, gMonPalette_Wynaut), + SPECIES_PAL(DUSKULL, gMonPalette_Duskull), + SPECIES_PAL(DUSCLOPS, gMonPalette_Dusclops), + SPECIES_PAL(ROSELIA, gMonPalette_Roselia), + SPECIES_PAL(SLAKOTH, gMonPalette_Slakoth), + SPECIES_PAL(VIGOROTH, gMonPalette_Vigoroth), + SPECIES_PAL(SLAKING, gMonPalette_Slaking), + SPECIES_PAL(GULPIN, gMonPalette_Gulpin), + SPECIES_PAL(SWALOT, gMonPalette_Swalot), + SPECIES_PAL(TROPIUS, gMonPalette_Tropius), + SPECIES_PAL(WHISMUR, gMonPalette_Whismur), + SPECIES_PAL(LOUDRED, gMonPalette_Loudred), + SPECIES_PAL(EXPLOUD, gMonPalette_Exploud), + SPECIES_PAL(CLAMPERL, gMonPalette_Clamperl), + SPECIES_PAL(HUNTAIL, gMonPalette_Huntail), + SPECIES_PAL(GOREBYSS, gMonPalette_Gorebyss), + SPECIES_PAL(ABSOL, gMonPalette_Absol), + SPECIES_PAL(SHUPPET, gMonPalette_Shuppet), + SPECIES_PAL(BANETTE, gMonPalette_Banette), + SPECIES_PAL(SEVIPER, gMonPalette_Seviper), + SPECIES_PAL(ZANGOOSE, gMonPalette_Zangoose), + SPECIES_PAL(RELICANTH, gMonPalette_Relicanth), + SPECIES_PAL(ARON, gMonPalette_Aron), + SPECIES_PAL(LAIRON, gMonPalette_Lairon), + SPECIES_PAL(AGGRON, gMonPalette_Aggron), + SPECIES_PAL(CASTFORM, gMonPalette_Castform), + SPECIES_PAL(VOLBEAT, gMonPalette_Volbeat), + SPECIES_PAL(ILLUMISE, gMonPalette_Illumise), + SPECIES_PAL(LILEEP, gMonPalette_Lileep), + SPECIES_PAL(CRADILY, gMonPalette_Cradily), + SPECIES_PAL(ANORITH, gMonPalette_Anorith), + SPECIES_PAL(ARMALDO, gMonPalette_Armaldo), + SPECIES_PAL(RALTS, gMonPalette_Ralts), + SPECIES_PAL(KIRLIA, gMonPalette_Kirlia), + SPECIES_PAL(GARDEVOIR, gMonPalette_Gardevoir), + SPECIES_PAL(BAGON, gMonPalette_Bagon), + SPECIES_PAL(SHELGON, gMonPalette_Shelgon), + SPECIES_PAL(SALAMENCE, gMonPalette_Salamence), + SPECIES_PAL(BELDUM, gMonPalette_Beldum), + SPECIES_PAL(METANG, gMonPalette_Metang), + SPECIES_PAL(METAGROSS, gMonPalette_Metagross), + SPECIES_PAL(REGIROCK, gMonPalette_Regirock), + SPECIES_PAL(REGICE, gMonPalette_Regice), + SPECIES_PAL(REGISTEEL, gMonPalette_Registeel), + SPECIES_PAL(KYOGRE, gMonPalette_Kyogre), + SPECIES_PAL(GROUDON, gMonPalette_Groudon), + SPECIES_PAL(RAYQUAZA, gMonPalette_Rayquaza), + SPECIES_PAL(LATIAS, gMonPalette_Latias), + SPECIES_PAL(LATIOS, gMonPalette_Latios), + SPECIES_PAL(JIRACHI, gMonPalette_Jirachi), + SPECIES_PAL(DEOXYS, gMonPalette_Deoxys), + SPECIES_PAL(CHIMECHO, gMonPalette_Chimecho), + SPECIES_PAL(EGG, gMonPalette_Egg), + SPECIES_PAL(UNOWN_B, gMonPalette_Unown), + SPECIES_PAL(UNOWN_C, gMonPalette_Unown), + SPECIES_PAL(UNOWN_D, gMonPalette_Unown), + SPECIES_PAL(UNOWN_E, gMonPalette_Unown), + SPECIES_PAL(UNOWN_F, gMonPalette_Unown), + SPECIES_PAL(UNOWN_G, gMonPalette_Unown), + SPECIES_PAL(UNOWN_H, gMonPalette_Unown), + SPECIES_PAL(UNOWN_I, gMonPalette_Unown), + SPECIES_PAL(UNOWN_J, gMonPalette_Unown), + SPECIES_PAL(UNOWN_K, gMonPalette_Unown), + SPECIES_PAL(UNOWN_L, gMonPalette_Unown), + SPECIES_PAL(UNOWN_M, gMonPalette_Unown), + SPECIES_PAL(UNOWN_N, gMonPalette_Unown), + SPECIES_PAL(UNOWN_O, gMonPalette_Unown), + SPECIES_PAL(UNOWN_P, gMonPalette_Unown), + SPECIES_PAL(UNOWN_Q, gMonPalette_Unown), + SPECIES_PAL(UNOWN_R, gMonPalette_Unown), + SPECIES_PAL(UNOWN_S, gMonPalette_Unown), + SPECIES_PAL(UNOWN_T, gMonPalette_Unown), + SPECIES_PAL(UNOWN_U, gMonPalette_Unown), + SPECIES_PAL(UNOWN_V, gMonPalette_Unown), + SPECIES_PAL(UNOWN_W, gMonPalette_Unown), + SPECIES_PAL(UNOWN_X, gMonPalette_Unown), + SPECIES_PAL(UNOWN_Y, gMonPalette_Unown), + SPECIES_PAL(UNOWN_Z, gMonPalette_Unown), + SPECIES_PAL(UNOWN_EMARK, gMonPalette_Unown), + SPECIES_PAL(UNOWN_QMARK, gMonPalette_Unown), }; diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index 0c3f990cf..8b1cfcaac 100644 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ b/src/data/pokemon_graphics/shiny_palette_table.h @@ -1,443 +1,443 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = { - [SPECIES_NONE] = {gMonShinyPalette_CircledQuestionMark, SPECIES_NONE + 500}, - [SPECIES_BULBASAUR] = {gMonShinyPalette_Bulbasaur, SPECIES_BULBASAUR + 500}, - [SPECIES_IVYSAUR] = {gMonShinyPalette_Ivysaur, SPECIES_IVYSAUR + 500}, - [SPECIES_VENUSAUR] = {gMonShinyPalette_Venusaur, SPECIES_VENUSAUR + 500}, - [SPECIES_CHARMANDER] = {gMonShinyPalette_Charmander, SPECIES_CHARMANDER + 500}, - [SPECIES_CHARMELEON] = {gMonShinyPalette_Charmeleon, SPECIES_CHARMELEON + 500}, - [SPECIES_CHARIZARD] = {gMonShinyPalette_Charizard, SPECIES_CHARIZARD + 500}, - [SPECIES_SQUIRTLE] = {gMonShinyPalette_Squirtle, SPECIES_SQUIRTLE + 500}, - [SPECIES_WARTORTLE] = {gMonShinyPalette_Wartortle, SPECIES_WARTORTLE + 500}, - [SPECIES_BLASTOISE] = {gMonShinyPalette_Blastoise, SPECIES_BLASTOISE + 500}, - [SPECIES_CATERPIE] = {gMonShinyPalette_Caterpie, SPECIES_CATERPIE + 500}, - [SPECIES_METAPOD] = {gMonShinyPalette_Metapod, SPECIES_METAPOD + 500}, - [SPECIES_BUTTERFREE] = {gMonShinyPalette_Butterfree, SPECIES_BUTTERFREE + 500}, - [SPECIES_WEEDLE] = {gMonShinyPalette_Weedle, SPECIES_WEEDLE + 500}, - [SPECIES_KAKUNA] = {gMonShinyPalette_Kakuna, SPECIES_KAKUNA + 500}, - [SPECIES_BEEDRILL] = {gMonShinyPalette_Beedrill, SPECIES_BEEDRILL + 500}, - [SPECIES_PIDGEY] = {gMonShinyPalette_Pidgey, SPECIES_PIDGEY + 500}, - [SPECIES_PIDGEOTTO] = {gMonShinyPalette_Pidgeotto, SPECIES_PIDGEOTTO + 500}, - [SPECIES_PIDGEOT] = {gMonShinyPalette_Pidgeot, SPECIES_PIDGEOT + 500}, - [SPECIES_RATTATA] = {gMonShinyPalette_Rattata, SPECIES_RATTATA + 500}, - [SPECIES_RATICATE] = {gMonShinyPalette_Raticate, SPECIES_RATICATE + 500}, - [SPECIES_SPEAROW] = {gMonShinyPalette_Spearow, SPECIES_SPEAROW + 500}, - [SPECIES_FEAROW] = {gMonShinyPalette_Fearow, SPECIES_FEAROW + 500}, - [SPECIES_EKANS] = {gMonShinyPalette_Ekans, SPECIES_EKANS + 500}, - [SPECIES_ARBOK] = {gMonShinyPalette_Arbok, SPECIES_ARBOK + 500}, - [SPECIES_PIKACHU] = {gMonShinyPalette_Pikachu, SPECIES_PIKACHU + 500}, - [SPECIES_RAICHU] = {gMonShinyPalette_Raichu, SPECIES_RAICHU + 500}, - [SPECIES_SANDSHREW] = {gMonShinyPalette_Sandshrew, SPECIES_SANDSHREW + 500}, - [SPECIES_SANDSLASH] = {gMonShinyPalette_Sandslash, SPECIES_SANDSLASH + 500}, - [SPECIES_NIDORAN_F] = {gMonShinyPalette_NidoranF, SPECIES_NIDORAN_F + 500}, - [SPECIES_NIDORINA] = {gMonShinyPalette_Nidorina, SPECIES_NIDORINA + 500}, - [SPECIES_NIDOQUEEN] = {gMonShinyPalette_Nidoqueen, SPECIES_NIDOQUEEN + 500}, - [SPECIES_NIDORAN_M] = {gMonShinyPalette_NidoranM, SPECIES_NIDORAN_M + 500}, - [SPECIES_NIDORINO] = {gMonShinyPalette_Nidorino, SPECIES_NIDORINO + 500}, - [SPECIES_NIDOKING] = {gMonShinyPalette_Nidoking, SPECIES_NIDOKING + 500}, - [SPECIES_CLEFAIRY] = {gMonShinyPalette_Clefairy, SPECIES_CLEFAIRY + 500}, - [SPECIES_CLEFABLE] = {gMonShinyPalette_Clefable, SPECIES_CLEFABLE + 500}, - [SPECIES_VULPIX] = {gMonShinyPalette_Vulpix, SPECIES_VULPIX + 500}, - [SPECIES_NINETALES] = {gMonShinyPalette_Ninetales, SPECIES_NINETALES + 500}, - [SPECIES_JIGGLYPUFF] = {gMonShinyPalette_Jigglypuff, SPECIES_JIGGLYPUFF + 500}, - [SPECIES_WIGGLYTUFF] = {gMonShinyPalette_Wigglytuff, SPECIES_WIGGLYTUFF + 500}, - [SPECIES_ZUBAT] = {gMonShinyPalette_Zubat, SPECIES_ZUBAT + 500}, - [SPECIES_GOLBAT] = {gMonShinyPalette_Golbat, SPECIES_GOLBAT + 500}, - [SPECIES_ODDISH] = {gMonShinyPalette_Oddish, SPECIES_ODDISH + 500}, - [SPECIES_GLOOM] = {gMonShinyPalette_Gloom, SPECIES_GLOOM + 500}, - [SPECIES_VILEPLUME] = {gMonShinyPalette_Vileplume, SPECIES_VILEPLUME + 500}, - [SPECIES_PARAS] = {gMonShinyPalette_Paras, SPECIES_PARAS + 500}, - [SPECIES_PARASECT] = {gMonShinyPalette_Parasect, SPECIES_PARASECT + 500}, - [SPECIES_VENONAT] = {gMonShinyPalette_Venonat, SPECIES_VENONAT + 500}, - [SPECIES_VENOMOTH] = {gMonShinyPalette_Venomoth, SPECIES_VENOMOTH + 500}, - [SPECIES_DIGLETT] = {gMonShinyPalette_Diglett, SPECIES_DIGLETT + 500}, - [SPECIES_DUGTRIO] = {gMonShinyPalette_Dugtrio, SPECIES_DUGTRIO + 500}, - [SPECIES_MEOWTH] = {gMonShinyPalette_Meowth, SPECIES_MEOWTH + 500}, - [SPECIES_PERSIAN] = {gMonShinyPalette_Persian, SPECIES_PERSIAN + 500}, - [SPECIES_PSYDUCK] = {gMonShinyPalette_Psyduck, SPECIES_PSYDUCK + 500}, - [SPECIES_GOLDUCK] = {gMonShinyPalette_Golduck, SPECIES_GOLDUCK + 500}, - [SPECIES_MANKEY] = {gMonShinyPalette_Mankey, SPECIES_MANKEY + 500}, - [SPECIES_PRIMEAPE] = {gMonShinyPalette_Primeape, SPECIES_PRIMEAPE + 500}, - [SPECIES_GROWLITHE] = {gMonShinyPalette_Growlithe, SPECIES_GROWLITHE + 500}, - [SPECIES_ARCANINE] = {gMonShinyPalette_Arcanine, SPECIES_ARCANINE + 500}, - [SPECIES_POLIWAG] = {gMonShinyPalette_Poliwag, SPECIES_POLIWAG + 500}, - [SPECIES_POLIWHIRL] = {gMonShinyPalette_Poliwhirl, SPECIES_POLIWHIRL + 500}, - [SPECIES_POLIWRATH] = {gMonShinyPalette_Poliwrath, SPECIES_POLIWRATH + 500}, - [SPECIES_ABRA] = {gMonShinyPalette_Abra, SPECIES_ABRA + 500}, - [SPECIES_KADABRA] = {gMonShinyPalette_Kadabra, SPECIES_KADABRA + 500}, - [SPECIES_ALAKAZAM] = {gMonShinyPalette_Alakazam, SPECIES_ALAKAZAM + 500}, - [SPECIES_MACHOP] = {gMonShinyPalette_Machop, SPECIES_MACHOP + 500}, - [SPECIES_MACHOKE] = {gMonShinyPalette_Machoke, SPECIES_MACHOKE + 500}, - [SPECIES_MACHAMP] = {gMonShinyPalette_Machamp, SPECIES_MACHAMP + 500}, - [SPECIES_BELLSPROUT] = {gMonShinyPalette_Bellsprout, SPECIES_BELLSPROUT + 500}, - [SPECIES_WEEPINBELL] = {gMonShinyPalette_Weepinbell, SPECIES_WEEPINBELL + 500}, - [SPECIES_VICTREEBEL] = {gMonShinyPalette_Victreebel, SPECIES_VICTREEBEL + 500}, - [SPECIES_TENTACOOL] = {gMonShinyPalette_Tentacool, SPECIES_TENTACOOL + 500}, - [SPECIES_TENTACRUEL] = {gMonShinyPalette_Tentacruel, SPECIES_TENTACRUEL + 500}, - [SPECIES_GEODUDE] = {gMonShinyPalette_Geodude, SPECIES_GEODUDE + 500}, - [SPECIES_GRAVELER] = {gMonShinyPalette_Graveler, SPECIES_GRAVELER + 500}, - [SPECIES_GOLEM] = {gMonShinyPalette_Golem, SPECIES_GOLEM + 500}, - [SPECIES_PONYTA] = {gMonShinyPalette_Ponyta, SPECIES_PONYTA + 500}, - [SPECIES_RAPIDASH] = {gMonShinyPalette_Rapidash, SPECIES_RAPIDASH + 500}, - [SPECIES_SLOWPOKE] = {gMonShinyPalette_Slowpoke, SPECIES_SLOWPOKE + 500}, - [SPECIES_SLOWBRO] = {gMonShinyPalette_Slowbro, SPECIES_SLOWBRO + 500}, - [SPECIES_MAGNEMITE] = {gMonShinyPalette_Magnemite, SPECIES_MAGNEMITE + 500}, - [SPECIES_MAGNETON] = {gMonShinyPalette_Magneton, SPECIES_MAGNETON + 500}, - [SPECIES_FARFETCHD] = {gMonShinyPalette_Farfetchd, SPECIES_FARFETCHD + 500}, - [SPECIES_DODUO] = {gMonShinyPalette_Doduo, SPECIES_DODUO + 500}, - [SPECIES_DODRIO] = {gMonShinyPalette_Dodrio, SPECIES_DODRIO + 500}, - [SPECIES_SEEL] = {gMonShinyPalette_Seel, SPECIES_SEEL + 500}, - [SPECIES_DEWGONG] = {gMonShinyPalette_Dewgong, SPECIES_DEWGONG + 500}, - [SPECIES_GRIMER] = {gMonShinyPalette_Grimer, SPECIES_GRIMER + 500}, - [SPECIES_MUK] = {gMonShinyPalette_Muk, SPECIES_MUK + 500}, - [SPECIES_SHELLDER] = {gMonShinyPalette_Shellder, SPECIES_SHELLDER + 500}, - [SPECIES_CLOYSTER] = {gMonShinyPalette_Cloyster, SPECIES_CLOYSTER + 500}, - [SPECIES_GASTLY] = {gMonShinyPalette_Gastly, SPECIES_GASTLY + 500}, - [SPECIES_HAUNTER] = {gMonShinyPalette_Haunter, SPECIES_HAUNTER + 500}, - [SPECIES_GENGAR] = {gMonShinyPalette_Gengar, SPECIES_GENGAR + 500}, - [SPECIES_ONIX] = {gMonShinyPalette_Onix, SPECIES_ONIX + 500}, - [SPECIES_DROWZEE] = {gMonShinyPalette_Drowzee, SPECIES_DROWZEE + 500}, - [SPECIES_HYPNO] = {gMonShinyPalette_Hypno, SPECIES_HYPNO + 500}, - [SPECIES_KRABBY] = {gMonShinyPalette_Krabby, SPECIES_KRABBY + 500}, - [SPECIES_KINGLER] = {gMonShinyPalette_Kingler, SPECIES_KINGLER + 500}, - [SPECIES_VOLTORB] = {gMonShinyPalette_Voltorb, SPECIES_VOLTORB + 500}, - [SPECIES_ELECTRODE] = {gMonShinyPalette_Electrode, SPECIES_ELECTRODE + 500}, - [SPECIES_EXEGGCUTE] = {gMonShinyPalette_Exeggcute, SPECIES_EXEGGCUTE + 500}, - [SPECIES_EXEGGUTOR] = {gMonShinyPalette_Exeggutor, SPECIES_EXEGGUTOR + 500}, - [SPECIES_CUBONE] = {gMonShinyPalette_Cubone, SPECIES_CUBONE + 500}, - [SPECIES_MAROWAK] = {gMonShinyPalette_Marowak, SPECIES_MAROWAK + 500}, - [SPECIES_HITMONLEE] = {gMonShinyPalette_Hitmonlee, SPECIES_HITMONLEE + 500}, - [SPECIES_HITMONCHAN] = {gMonShinyPalette_Hitmonchan, SPECIES_HITMONCHAN + 500}, - [SPECIES_LICKITUNG] = {gMonShinyPalette_Lickitung, SPECIES_LICKITUNG + 500}, - [SPECIES_KOFFING] = {gMonShinyPalette_Koffing, SPECIES_KOFFING + 500}, - [SPECIES_WEEZING] = {gMonShinyPalette_Weezing, SPECIES_WEEZING + 500}, - [SPECIES_RHYHORN] = {gMonShinyPalette_Rhyhorn, SPECIES_RHYHORN + 500}, - [SPECIES_RHYDON] = {gMonShinyPalette_Rhydon, SPECIES_RHYDON + 500}, - [SPECIES_CHANSEY] = {gMonShinyPalette_Chansey, SPECIES_CHANSEY + 500}, - [SPECIES_TANGELA] = {gMonShinyPalette_Tangela, SPECIES_TANGELA + 500}, - [SPECIES_KANGASKHAN] = {gMonShinyPalette_Kangaskhan, SPECIES_KANGASKHAN + 500}, - [SPECIES_HORSEA] = {gMonShinyPalette_Horsea, SPECIES_HORSEA + 500}, - [SPECIES_SEADRA] = {gMonShinyPalette_Seadra, SPECIES_SEADRA + 500}, - [SPECIES_GOLDEEN] = {gMonShinyPalette_Goldeen, SPECIES_GOLDEEN + 500}, - [SPECIES_SEAKING] = {gMonShinyPalette_Seaking, SPECIES_SEAKING + 500}, - [SPECIES_STARYU] = {gMonShinyPalette_Staryu, SPECIES_STARYU + 500}, - [SPECIES_STARMIE] = {gMonShinyPalette_Starmie, SPECIES_STARMIE + 500}, - [SPECIES_MR_MIME] = {gMonShinyPalette_Mrmime, SPECIES_MR_MIME + 500}, - [SPECIES_SCYTHER] = {gMonShinyPalette_Scyther, SPECIES_SCYTHER + 500}, - [SPECIES_JYNX] = {gMonShinyPalette_Jynx, SPECIES_JYNX + 500}, - [SPECIES_ELECTABUZZ] = {gMonShinyPalette_Electabuzz, SPECIES_ELECTABUZZ + 500}, - [SPECIES_MAGMAR] = {gMonShinyPalette_Magmar, SPECIES_MAGMAR + 500}, - [SPECIES_PINSIR] = {gMonShinyPalette_Pinsir, SPECIES_PINSIR + 500}, - [SPECIES_TAUROS] = {gMonShinyPalette_Tauros, SPECIES_TAUROS + 500}, - [SPECIES_MAGIKARP] = {gMonShinyPalette_Magikarp, SPECIES_MAGIKARP + 500}, - [SPECIES_GYARADOS] = {gMonShinyPalette_Gyarados, SPECIES_GYARADOS + 500}, - [SPECIES_LAPRAS] = {gMonShinyPalette_Lapras, SPECIES_LAPRAS + 500}, - [SPECIES_DITTO] = {gMonShinyPalette_Ditto, SPECIES_DITTO + 500}, - [SPECIES_EEVEE] = {gMonShinyPalette_Eevee, SPECIES_EEVEE + 500}, - [SPECIES_VAPOREON] = {gMonShinyPalette_Vaporeon, SPECIES_VAPOREON + 500}, - [SPECIES_JOLTEON] = {gMonShinyPalette_Jolteon, SPECIES_JOLTEON + 500}, - [SPECIES_FLAREON] = {gMonShinyPalette_Flareon, SPECIES_FLAREON + 500}, - [SPECIES_PORYGON] = {gMonShinyPalette_Porygon, SPECIES_PORYGON + 500}, - [SPECIES_OMANYTE] = {gMonShinyPalette_Omanyte, SPECIES_OMANYTE + 500}, - [SPECIES_OMASTAR] = {gMonShinyPalette_Omastar, SPECIES_OMASTAR + 500}, - [SPECIES_KABUTO] = {gMonShinyPalette_Kabuto, SPECIES_KABUTO + 500}, - [SPECIES_KABUTOPS] = {gMonShinyPalette_Kabutops, SPECIES_KABUTOPS + 500}, - [SPECIES_AERODACTYL] = {gMonShinyPalette_Aerodactyl, SPECIES_AERODACTYL + 500}, - [SPECIES_SNORLAX] = {gMonShinyPalette_Snorlax, SPECIES_SNORLAX + 500}, - [SPECIES_ARTICUNO] = {gMonShinyPalette_Articuno, SPECIES_ARTICUNO + 500}, - [SPECIES_ZAPDOS] = {gMonShinyPalette_Zapdos, SPECIES_ZAPDOS + 500}, - [SPECIES_MOLTRES] = {gMonShinyPalette_Moltres, SPECIES_MOLTRES + 500}, - [SPECIES_DRATINI] = {gMonShinyPalette_Dratini, SPECIES_DRATINI + 500}, - [SPECIES_DRAGONAIR] = {gMonShinyPalette_Dragonair, SPECIES_DRAGONAIR + 500}, - [SPECIES_DRAGONITE] = {gMonShinyPalette_Dragonite, SPECIES_DRAGONITE + 500}, - [SPECIES_MEWTWO] = {gMonShinyPalette_Mewtwo, SPECIES_MEWTWO + 500}, - [SPECIES_MEW] = {gMonShinyPalette_Mew, SPECIES_MEW + 500}, - [SPECIES_CHIKORITA] = {gMonShinyPalette_Chikorita, SPECIES_CHIKORITA + 500}, - [SPECIES_BAYLEEF] = {gMonShinyPalette_Bayleef, SPECIES_BAYLEEF + 500}, - [SPECIES_MEGANIUM] = {gMonShinyPalette_Meganium, SPECIES_MEGANIUM + 500}, - [SPECIES_CYNDAQUIL] = {gMonShinyPalette_Cyndaquil, SPECIES_CYNDAQUIL + 500}, - [SPECIES_QUILAVA] = {gMonShinyPalette_Quilava, SPECIES_QUILAVA + 500}, - [SPECIES_TYPHLOSION] = {gMonShinyPalette_Typhlosion, SPECIES_TYPHLOSION + 500}, - [SPECIES_TOTODILE] = {gMonShinyPalette_Totodile, SPECIES_TOTODILE + 500}, - [SPECIES_CROCONAW] = {gMonShinyPalette_Croconaw, SPECIES_CROCONAW + 500}, - [SPECIES_FERALIGATR] = {gMonShinyPalette_Feraligatr, SPECIES_FERALIGATR + 500}, - [SPECIES_SENTRET] = {gMonShinyPalette_Sentret, SPECIES_SENTRET + 500}, - [SPECIES_FURRET] = {gMonShinyPalette_Furret, SPECIES_FURRET + 500}, - [SPECIES_HOOTHOOT] = {gMonShinyPalette_Hoothoot, SPECIES_HOOTHOOT + 500}, - [SPECIES_NOCTOWL] = {gMonShinyPalette_Noctowl, SPECIES_NOCTOWL + 500}, - [SPECIES_LEDYBA] = {gMonShinyPalette_Ledyba, SPECIES_LEDYBA + 500}, - [SPECIES_LEDIAN] = {gMonShinyPalette_Ledian, SPECIES_LEDIAN + 500}, - [SPECIES_SPINARAK] = {gMonShinyPalette_Spinarak, SPECIES_SPINARAK + 500}, - [SPECIES_ARIADOS] = {gMonShinyPalette_Ariados, SPECIES_ARIADOS + 500}, - [SPECIES_CROBAT] = {gMonShinyPalette_Crobat, SPECIES_CROBAT + 500}, - [SPECIES_CHINCHOU] = {gMonShinyPalette_Chinchou, SPECIES_CHINCHOU + 500}, - [SPECIES_LANTURN] = {gMonShinyPalette_Lanturn, SPECIES_LANTURN + 500}, - [SPECIES_PICHU] = {gMonShinyPalette_Pichu, SPECIES_PICHU + 500}, - [SPECIES_CLEFFA] = {gMonShinyPalette_Cleffa, SPECIES_CLEFFA + 500}, - [SPECIES_IGGLYBUFF] = {gMonShinyPalette_Igglybuff, SPECIES_IGGLYBUFF + 500}, - [SPECIES_TOGEPI] = {gMonShinyPalette_Togepi, SPECIES_TOGEPI + 500}, - [SPECIES_TOGETIC] = {gMonShinyPalette_Togetic, SPECIES_TOGETIC + 500}, - [SPECIES_NATU] = {gMonShinyPalette_Natu, SPECIES_NATU + 500}, - [SPECIES_XATU] = {gMonShinyPalette_Xatu, SPECIES_XATU + 500}, - [SPECIES_MAREEP] = {gMonShinyPalette_Mareep, SPECIES_MAREEP + 500}, - [SPECIES_FLAAFFY] = {gMonShinyPalette_Flaaffy, SPECIES_FLAAFFY + 500}, - [SPECIES_AMPHAROS] = {gMonShinyPalette_Ampharos, SPECIES_AMPHAROS + 500}, - [SPECIES_BELLOSSOM] = {gMonShinyPalette_Bellossom, SPECIES_BELLOSSOM + 500}, - [SPECIES_MARILL] = {gMonShinyPalette_Marill, SPECIES_MARILL + 500}, - [SPECIES_AZUMARILL] = {gMonShinyPalette_Azumarill, SPECIES_AZUMARILL + 500}, - [SPECIES_SUDOWOODO] = {gMonShinyPalette_Sudowoodo, SPECIES_SUDOWOODO + 500}, - [SPECIES_POLITOED] = {gMonShinyPalette_Politoed, SPECIES_POLITOED + 500}, - [SPECIES_HOPPIP] = {gMonShinyPalette_Hoppip, SPECIES_HOPPIP + 500}, - [SPECIES_SKIPLOOM] = {gMonShinyPalette_Skiploom, SPECIES_SKIPLOOM + 500}, - [SPECIES_JUMPLUFF] = {gMonShinyPalette_Jumpluff, SPECIES_JUMPLUFF + 500}, - [SPECIES_AIPOM] = {gMonShinyPalette_Aipom, SPECIES_AIPOM + 500}, - [SPECIES_SUNKERN] = {gMonShinyPalette_Sunkern, SPECIES_SUNKERN + 500}, - [SPECIES_SUNFLORA] = {gMonShinyPalette_Sunflora, SPECIES_SUNFLORA + 500}, - [SPECIES_YANMA] = {gMonShinyPalette_Yanma, SPECIES_YANMA + 500}, - [SPECIES_WOOPER] = {gMonShinyPalette_Wooper, SPECIES_WOOPER + 500}, - [SPECIES_QUAGSIRE] = {gMonShinyPalette_Quagsire, SPECIES_QUAGSIRE + 500}, - [SPECIES_ESPEON] = {gMonShinyPalette_Espeon, SPECIES_ESPEON + 500}, - [SPECIES_UMBREON] = {gMonShinyPalette_Umbreon, SPECIES_UMBREON + 500}, - [SPECIES_MURKROW] = {gMonShinyPalette_Murkrow, SPECIES_MURKROW + 500}, - [SPECIES_SLOWKING] = {gMonShinyPalette_Slowking, SPECIES_SLOWKING + 500}, - [SPECIES_MISDREAVUS] = {gMonShinyPalette_Misdreavus, SPECIES_MISDREAVUS + 500}, - [SPECIES_UNOWN] = {gMonShinyPalette_Unown, SPECIES_UNOWN + 500}, - [SPECIES_WOBBUFFET] = {gMonShinyPalette_Wobbuffet, SPECIES_WOBBUFFET + 500}, - [SPECIES_GIRAFARIG] = {gMonShinyPalette_Girafarig, SPECIES_GIRAFARIG + 500}, - [SPECIES_PINECO] = {gMonShinyPalette_Pineco, SPECIES_PINECO + 500}, - [SPECIES_FORRETRESS] = {gMonShinyPalette_Forretress, SPECIES_FORRETRESS + 500}, - [SPECIES_DUNSPARCE] = {gMonShinyPalette_Dunsparce, SPECIES_DUNSPARCE + 500}, - [SPECIES_GLIGAR] = {gMonShinyPalette_Gligar, SPECIES_GLIGAR + 500}, - [SPECIES_STEELIX] = {gMonShinyPalette_Steelix, SPECIES_STEELIX + 500}, - [SPECIES_SNUBBULL] = {gMonShinyPalette_Snubbull, SPECIES_SNUBBULL + 500}, - [SPECIES_GRANBULL] = {gMonShinyPalette_Granbull, SPECIES_GRANBULL + 500}, - [SPECIES_QWILFISH] = {gMonShinyPalette_Qwilfish, SPECIES_QWILFISH + 500}, - [SPECIES_SCIZOR] = {gMonShinyPalette_Scizor, SPECIES_SCIZOR + 500}, - [SPECIES_SHUCKLE] = {gMonShinyPalette_Shuckle, SPECIES_SHUCKLE + 500}, - [SPECIES_HERACROSS] = {gMonShinyPalette_Heracross, SPECIES_HERACROSS + 500}, - [SPECIES_SNEASEL] = {gMonShinyPalette_Sneasel, SPECIES_SNEASEL + 500}, - [SPECIES_TEDDIURSA] = {gMonShinyPalette_Teddiursa, SPECIES_TEDDIURSA + 500}, - [SPECIES_URSARING] = {gMonShinyPalette_Ursaring, SPECIES_URSARING + 500}, - [SPECIES_SLUGMA] = {gMonShinyPalette_Slugma, SPECIES_SLUGMA + 500}, - [SPECIES_MAGCARGO] = {gMonShinyPalette_Magcargo, SPECIES_MAGCARGO + 500}, - [SPECIES_SWINUB] = {gMonShinyPalette_Swinub, SPECIES_SWINUB + 500}, - [SPECIES_PILOSWINE] = {gMonShinyPalette_Piloswine, SPECIES_PILOSWINE + 500}, - [SPECIES_CORSOLA] = {gMonShinyPalette_Corsola, SPECIES_CORSOLA + 500}, - [SPECIES_REMORAID] = {gMonShinyPalette_Remoraid, SPECIES_REMORAID + 500}, - [SPECIES_OCTILLERY] = {gMonShinyPalette_Octillery, SPECIES_OCTILLERY + 500}, - [SPECIES_DELIBIRD] = {gMonShinyPalette_Delibird, SPECIES_DELIBIRD + 500}, - [SPECIES_MANTINE] = {gMonShinyPalette_Mantine, SPECIES_MANTINE + 500}, - [SPECIES_SKARMORY] = {gMonShinyPalette_Skarmory, SPECIES_SKARMORY + 500}, - [SPECIES_HOUNDOUR] = {gMonShinyPalette_Houndour, SPECIES_HOUNDOUR + 500}, - [SPECIES_HOUNDOOM] = {gMonShinyPalette_Houndoom, SPECIES_HOUNDOOM + 500}, - [SPECIES_KINGDRA] = {gMonShinyPalette_Kingdra, SPECIES_KINGDRA + 500}, - [SPECIES_PHANPY] = {gMonShinyPalette_Phanpy, SPECIES_PHANPY + 500}, - [SPECIES_DONPHAN] = {gMonShinyPalette_Donphan, SPECIES_DONPHAN + 500}, - [SPECIES_PORYGON2] = {gMonShinyPalette_Porygon2, SPECIES_PORYGON2 + 500}, - [SPECIES_STANTLER] = {gMonShinyPalette_Stantler, SPECIES_STANTLER + 500}, - [SPECIES_SMEARGLE] = {gMonShinyPalette_Smeargle, SPECIES_SMEARGLE + 500}, - [SPECIES_TYROGUE] = {gMonShinyPalette_Tyrogue, SPECIES_TYROGUE + 500}, - [SPECIES_HITMONTOP] = {gMonShinyPalette_Hitmontop, SPECIES_HITMONTOP + 500}, - [SPECIES_SMOOCHUM] = {gMonShinyPalette_Smoochum, SPECIES_SMOOCHUM + 500}, - [SPECIES_ELEKID] = {gMonShinyPalette_Elekid, SPECIES_ELEKID + 500}, - [SPECIES_MAGBY] = {gMonShinyPalette_Magby, SPECIES_MAGBY + 500}, - [SPECIES_MILTANK] = {gMonShinyPalette_Miltank, SPECIES_MILTANK + 500}, - [SPECIES_BLISSEY] = {gMonShinyPalette_Blissey, SPECIES_BLISSEY + 500}, - [SPECIES_RAIKOU] = {gMonShinyPalette_Raikou, SPECIES_RAIKOU + 500}, - [SPECIES_ENTEI] = {gMonShinyPalette_Entei, SPECIES_ENTEI + 500}, - [SPECIES_SUICUNE] = {gMonShinyPalette_Suicune, SPECIES_SUICUNE + 500}, - [SPECIES_LARVITAR] = {gMonShinyPalette_Larvitar, SPECIES_LARVITAR + 500}, - [SPECIES_PUPITAR] = {gMonShinyPalette_Pupitar, SPECIES_PUPITAR + 500}, - [SPECIES_TYRANITAR] = {gMonShinyPalette_Tyranitar, SPECIES_TYRANITAR + 500}, - [SPECIES_LUGIA] = {gMonShinyPalette_Lugia, SPECIES_LUGIA + 500}, - [SPECIES_HO_OH] = {gMonShinyPalette_HoOh, SPECIES_HO_OH + 500}, - [SPECIES_CELEBI] = {gMonShinyPalette_Celebi, SPECIES_CELEBI + 500}, - [SPECIES_OLD_UNOWN_B] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_B + 500}, - [SPECIES_OLD_UNOWN_C] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_C + 500}, - [SPECIES_OLD_UNOWN_D] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_D + 500}, - [SPECIES_OLD_UNOWN_E] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_E + 500}, - [SPECIES_OLD_UNOWN_F] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_F + 500}, - [SPECIES_OLD_UNOWN_G] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_G + 500}, - [SPECIES_OLD_UNOWN_H] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_H + 500}, - [SPECIES_OLD_UNOWN_I] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_I + 500}, - [SPECIES_OLD_UNOWN_J] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_J + 500}, - [SPECIES_OLD_UNOWN_K] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_K + 500}, - [SPECIES_OLD_UNOWN_L] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_L + 500}, - [SPECIES_OLD_UNOWN_M] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_M + 500}, - [SPECIES_OLD_UNOWN_N] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_N + 500}, - [SPECIES_OLD_UNOWN_O] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_O + 500}, - [SPECIES_OLD_UNOWN_P] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_P + 500}, - [SPECIES_OLD_UNOWN_Q] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_Q + 500}, - [SPECIES_OLD_UNOWN_R] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_R + 500}, - [SPECIES_OLD_UNOWN_S] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_S + 500}, - [SPECIES_OLD_UNOWN_T] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_T + 500}, - [SPECIES_OLD_UNOWN_U] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_U + 500}, - [SPECIES_OLD_UNOWN_V] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_V + 500}, - [SPECIES_OLD_UNOWN_W] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_W + 500}, - [SPECIES_OLD_UNOWN_X] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_X + 500}, - [SPECIES_OLD_UNOWN_Y] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_Y + 500}, - [SPECIES_OLD_UNOWN_Z] = {gMonShinyPalette_DoubleQuestionMark, SPECIES_OLD_UNOWN_Z + 500}, - [SPECIES_TREECKO] = {gMonShinyPalette_Treecko, SPECIES_TREECKO + 500}, - [SPECIES_GROVYLE] = {gMonShinyPalette_Grovyle, SPECIES_GROVYLE + 500}, - [SPECIES_SCEPTILE] = {gMonShinyPalette_Sceptile, SPECIES_SCEPTILE + 500}, - [SPECIES_TORCHIC] = {gMonShinyPalette_Torchic, SPECIES_TORCHIC + 500}, - [SPECIES_COMBUSKEN] = {gMonShinyPalette_Combusken, SPECIES_COMBUSKEN + 500}, - [SPECIES_BLAZIKEN] = {gMonShinyPalette_Blaziken, SPECIES_BLAZIKEN + 500}, - [SPECIES_MUDKIP] = {gMonShinyPalette_Mudkip, SPECIES_MUDKIP + 500}, - [SPECIES_MARSHTOMP] = {gMonShinyPalette_Marshtomp, SPECIES_MARSHTOMP + 500}, - [SPECIES_SWAMPERT] = {gMonShinyPalette_Swampert, SPECIES_SWAMPERT + 500}, - [SPECIES_POOCHYENA] = {gMonShinyPalette_Poochyena, SPECIES_POOCHYENA + 500}, - [SPECIES_MIGHTYENA] = {gMonShinyPalette_Mightyena, SPECIES_MIGHTYENA + 500}, - [SPECIES_ZIGZAGOON] = {gMonShinyPalette_Zigzagoon, SPECIES_ZIGZAGOON + 500}, - [SPECIES_LINOONE] = {gMonShinyPalette_Linoone, SPECIES_LINOONE + 500}, - [SPECIES_WURMPLE] = {gMonShinyPalette_Wurmple, SPECIES_WURMPLE + 500}, - [SPECIES_SILCOON] = {gMonShinyPalette_Silcoon, SPECIES_SILCOON + 500}, - [SPECIES_BEAUTIFLY] = {gMonShinyPalette_Beautifly, SPECIES_BEAUTIFLY + 500}, - [SPECIES_CASCOON] = {gMonShinyPalette_Cascoon, SPECIES_CASCOON + 500}, - [SPECIES_DUSTOX] = {gMonShinyPalette_Dustox, SPECIES_DUSTOX + 500}, - [SPECIES_LOTAD] = {gMonShinyPalette_Lotad, SPECIES_LOTAD + 500}, - [SPECIES_LOMBRE] = {gMonShinyPalette_Lombre, SPECIES_LOMBRE + 500}, - [SPECIES_LUDICOLO] = {gMonShinyPalette_Ludicolo, SPECIES_LUDICOLO + 500}, - [SPECIES_SEEDOT] = {gMonShinyPalette_Seedot, SPECIES_SEEDOT + 500}, - [SPECIES_NUZLEAF] = {gMonShinyPalette_Nuzleaf, SPECIES_NUZLEAF + 500}, - [SPECIES_SHIFTRY] = {gMonShinyPalette_Shiftry, SPECIES_SHIFTRY + 500}, - [SPECIES_NINCADA] = {gMonShinyPalette_Nincada, SPECIES_NINCADA + 500}, - [SPECIES_NINJASK] = {gMonShinyPalette_Ninjask, SPECIES_NINJASK + 500}, - [SPECIES_SHEDINJA] = {gMonShinyPalette_Shedinja, SPECIES_SHEDINJA + 500}, - [SPECIES_TAILLOW] = {gMonShinyPalette_Taillow, SPECIES_TAILLOW + 500}, - [SPECIES_SWELLOW] = {gMonShinyPalette_Swellow, SPECIES_SWELLOW + 500}, - [SPECIES_SHROOMISH] = {gMonShinyPalette_Shroomish, SPECIES_SHROOMISH + 500}, - [SPECIES_BRELOOM] = {gMonShinyPalette_Breloom, SPECIES_BRELOOM + 500}, - [SPECIES_SPINDA] = {gMonShinyPalette_Spinda, SPECIES_SPINDA + 500}, - [SPECIES_WINGULL] = {gMonShinyPalette_Wingull, SPECIES_WINGULL + 500}, - [SPECIES_PELIPPER] = {gMonShinyPalette_Pelipper, SPECIES_PELIPPER + 500}, - [SPECIES_SURSKIT] = {gMonShinyPalette_Surskit, SPECIES_SURSKIT + 500}, - [SPECIES_MASQUERAIN] = {gMonShinyPalette_Masquerain, SPECIES_MASQUERAIN + 500}, - [SPECIES_WAILMER] = {gMonShinyPalette_Wailmer, SPECIES_WAILMER + 500}, - [SPECIES_WAILORD] = {gMonShinyPalette_Wailord, SPECIES_WAILORD + 500}, - [SPECIES_SKITTY] = {gMonShinyPalette_Skitty, SPECIES_SKITTY + 500}, - [SPECIES_DELCATTY] = {gMonShinyPalette_Delcatty, SPECIES_DELCATTY + 500}, - [SPECIES_KECLEON] = {gMonShinyPalette_Kecleon, SPECIES_KECLEON + 500}, - [SPECIES_BALTOY] = {gMonShinyPalette_Baltoy, SPECIES_BALTOY + 500}, - [SPECIES_CLAYDOL] = {gMonShinyPalette_Claydol, SPECIES_CLAYDOL + 500}, - [SPECIES_NOSEPASS] = {gMonShinyPalette_Nosepass, SPECIES_NOSEPASS + 500}, - [SPECIES_TORKOAL] = {gMonShinyPalette_Torkoal, SPECIES_TORKOAL + 500}, - [SPECIES_SABLEYE] = {gMonShinyPalette_Sableye, SPECIES_SABLEYE + 500}, - [SPECIES_BARBOACH] = {gMonShinyPalette_Barboach, SPECIES_BARBOACH + 500}, - [SPECIES_WHISCASH] = {gMonShinyPalette_Whiscash, SPECIES_WHISCASH + 500}, - [SPECIES_LUVDISC] = {gMonShinyPalette_Luvdisc, SPECIES_LUVDISC + 500}, - [SPECIES_CORPHISH] = {gMonShinyPalette_Corphish, SPECIES_CORPHISH + 500}, - [SPECIES_CRAWDAUNT] = {gMonShinyPalette_Crawdaunt, SPECIES_CRAWDAUNT + 500}, - [SPECIES_FEEBAS] = {gMonShinyPalette_Feebas, SPECIES_FEEBAS + 500}, - [SPECIES_MILOTIC] = {gMonShinyPalette_Milotic, SPECIES_MILOTIC + 500}, - [SPECIES_CARVANHA] = {gMonShinyPalette_Carvanha, SPECIES_CARVANHA + 500}, - [SPECIES_SHARPEDO] = {gMonShinyPalette_Sharpedo, SPECIES_SHARPEDO + 500}, - [SPECIES_TRAPINCH] = {gMonShinyPalette_Trapinch, SPECIES_TRAPINCH + 500}, - [SPECIES_VIBRAVA] = {gMonShinyPalette_Vibrava, SPECIES_VIBRAVA + 500}, - [SPECIES_FLYGON] = {gMonShinyPalette_Flygon, SPECIES_FLYGON + 500}, - [SPECIES_MAKUHITA] = {gMonShinyPalette_Makuhita, SPECIES_MAKUHITA + 500}, - [SPECIES_HARIYAMA] = {gMonShinyPalette_Hariyama, SPECIES_HARIYAMA + 500}, - [SPECIES_ELECTRIKE] = {gMonShinyPalette_Electrike, SPECIES_ELECTRIKE + 500}, - [SPECIES_MANECTRIC] = {gMonShinyPalette_Manectric, SPECIES_MANECTRIC + 500}, - [SPECIES_NUMEL] = {gMonShinyPalette_Numel, SPECIES_NUMEL + 500}, - [SPECIES_CAMERUPT] = {gMonShinyPalette_Camerupt, SPECIES_CAMERUPT + 500}, - [SPECIES_SPHEAL] = {gMonShinyPalette_Spheal, SPECIES_SPHEAL + 500}, - [SPECIES_SEALEO] = {gMonShinyPalette_Sealeo, SPECIES_SEALEO + 500}, - [SPECIES_WALREIN] = {gMonShinyPalette_Walrein, SPECIES_WALREIN + 500}, - [SPECIES_CACNEA] = {gMonShinyPalette_Cacnea, SPECIES_CACNEA + 500}, - [SPECIES_CACTURNE] = {gMonShinyPalette_Cacturne, SPECIES_CACTURNE + 500}, - [SPECIES_SNORUNT] = {gMonShinyPalette_Snorunt, SPECIES_SNORUNT + 500}, - [SPECIES_GLALIE] = {gMonShinyPalette_Glalie, SPECIES_GLALIE + 500}, - [SPECIES_LUNATONE] = {gMonShinyPalette_Lunatone, SPECIES_LUNATONE + 500}, - [SPECIES_SOLROCK] = {gMonShinyPalette_Solrock, SPECIES_SOLROCK + 500}, - [SPECIES_AZURILL] = {gMonShinyPalette_Azurill, SPECIES_AZURILL + 500}, - [SPECIES_SPOINK] = {gMonShinyPalette_Spoink, SPECIES_SPOINK + 500}, - [SPECIES_GRUMPIG] = {gMonShinyPalette_Grumpig, SPECIES_GRUMPIG + 500}, - [SPECIES_PLUSLE] = {gMonShinyPalette_Plusle, SPECIES_PLUSLE + 500}, - [SPECIES_MINUN] = {gMonShinyPalette_Minun, SPECIES_MINUN + 500}, - [SPECIES_MAWILE] = {gMonShinyPalette_Mawile, SPECIES_MAWILE + 500}, - [SPECIES_MEDITITE] = {gMonShinyPalette_Meditite, SPECIES_MEDITITE + 500}, - [SPECIES_MEDICHAM] = {gMonShinyPalette_Medicham, SPECIES_MEDICHAM + 500}, - [SPECIES_SWABLU] = {gMonShinyPalette_Swablu, SPECIES_SWABLU + 500}, - [SPECIES_ALTARIA] = {gMonShinyPalette_Altaria, SPECIES_ALTARIA + 500}, - [SPECIES_WYNAUT] = {gMonShinyPalette_Wynaut, SPECIES_WYNAUT + 500}, - [SPECIES_DUSKULL] = {gMonShinyPalette_Duskull, SPECIES_DUSKULL + 500}, - [SPECIES_DUSCLOPS] = {gMonShinyPalette_Dusclops, SPECIES_DUSCLOPS + 500}, - [SPECIES_ROSELIA] = {gMonShinyPalette_Roselia, SPECIES_ROSELIA + 500}, - [SPECIES_SLAKOTH] = {gMonShinyPalette_Slakoth, SPECIES_SLAKOTH + 500}, - [SPECIES_VIGOROTH] = {gMonShinyPalette_Vigoroth, SPECIES_VIGOROTH + 500}, - [SPECIES_SLAKING] = {gMonShinyPalette_Slaking, SPECIES_SLAKING + 500}, - [SPECIES_GULPIN] = {gMonShinyPalette_Gulpin, SPECIES_GULPIN + 500}, - [SPECIES_SWALOT] = {gMonShinyPalette_Swalot, SPECIES_SWALOT + 500}, - [SPECIES_TROPIUS] = {gMonShinyPalette_Tropius, SPECIES_TROPIUS + 500}, - [SPECIES_WHISMUR] = {gMonShinyPalette_Whismur, SPECIES_WHISMUR + 500}, - [SPECIES_LOUDRED] = {gMonShinyPalette_Loudred, SPECIES_LOUDRED + 500}, - [SPECIES_EXPLOUD] = {gMonShinyPalette_Exploud, SPECIES_EXPLOUD + 500}, - [SPECIES_CLAMPERL] = {gMonShinyPalette_Clamperl, SPECIES_CLAMPERL + 500}, - [SPECIES_HUNTAIL] = {gMonShinyPalette_Huntail, SPECIES_HUNTAIL + 500}, - [SPECIES_GOREBYSS] = {gMonShinyPalette_Gorebyss, SPECIES_GOREBYSS + 500}, - [SPECIES_ABSOL] = {gMonShinyPalette_Absol, SPECIES_ABSOL + 500}, - [SPECIES_SHUPPET] = {gMonShinyPalette_Shuppet, SPECIES_SHUPPET + 500}, - [SPECIES_BANETTE] = {gMonShinyPalette_Banette, SPECIES_BANETTE + 500}, - [SPECIES_SEVIPER] = {gMonShinyPalette_Seviper, SPECIES_SEVIPER + 500}, - [SPECIES_ZANGOOSE] = {gMonShinyPalette_Zangoose, SPECIES_ZANGOOSE + 500}, - [SPECIES_RELICANTH] = {gMonShinyPalette_Relicanth, SPECIES_RELICANTH + 500}, - [SPECIES_ARON] = {gMonShinyPalette_Aron, SPECIES_ARON + 500}, - [SPECIES_LAIRON] = {gMonShinyPalette_Lairon, SPECIES_LAIRON + 500}, - [SPECIES_AGGRON] = {gMonShinyPalette_Aggron, SPECIES_AGGRON + 500}, - [SPECIES_CASTFORM] = {gMonShinyPalette_Castform, SPECIES_CASTFORM + 500}, - [SPECIES_VOLBEAT] = {gMonShinyPalette_Volbeat, SPECIES_VOLBEAT + 500}, - [SPECIES_ILLUMISE] = {gMonShinyPalette_Illumise, SPECIES_ILLUMISE + 500}, - [SPECIES_LILEEP] = {gMonShinyPalette_Lileep, SPECIES_LILEEP + 500}, - [SPECIES_CRADILY] = {gMonShinyPalette_Cradily, SPECIES_CRADILY + 500}, - [SPECIES_ANORITH] = {gMonShinyPalette_Anorith, SPECIES_ANORITH + 500}, - [SPECIES_ARMALDO] = {gMonShinyPalette_Armaldo, SPECIES_ARMALDO + 500}, - [SPECIES_RALTS] = {gMonShinyPalette_Ralts, SPECIES_RALTS + 500}, - [SPECIES_KIRLIA] = {gMonShinyPalette_Kirlia, SPECIES_KIRLIA + 500}, - [SPECIES_GARDEVOIR] = {gMonShinyPalette_Gardevoir, SPECIES_GARDEVOIR + 500}, - [SPECIES_BAGON] = {gMonShinyPalette_Bagon, SPECIES_BAGON + 500}, - [SPECIES_SHELGON] = {gMonShinyPalette_Shelgon, SPECIES_SHELGON + 500}, - [SPECIES_SALAMENCE] = {gMonShinyPalette_Salamence, SPECIES_SALAMENCE + 500}, - [SPECIES_BELDUM] = {gMonShinyPalette_Beldum, SPECIES_BELDUM + 500}, - [SPECIES_METANG] = {gMonShinyPalette_Metang, SPECIES_METANG + 500}, - [SPECIES_METAGROSS] = {gMonShinyPalette_Metagross, SPECIES_METAGROSS + 500}, - [SPECIES_REGIROCK] = {gMonShinyPalette_Regirock, SPECIES_REGIROCK + 500}, - [SPECIES_REGICE] = {gMonShinyPalette_Regice, SPECIES_REGICE + 500}, - [SPECIES_REGISTEEL] = {gMonShinyPalette_Registeel, SPECIES_REGISTEEL + 500}, - [SPECIES_KYOGRE] = {gMonShinyPalette_Kyogre, SPECIES_KYOGRE + 500}, - [SPECIES_GROUDON] = {gMonShinyPalette_Groudon, SPECIES_GROUDON + 500}, - [SPECIES_RAYQUAZA] = {gMonShinyPalette_Rayquaza, SPECIES_RAYQUAZA + 500}, - [SPECIES_LATIAS] = {gMonShinyPalette_Latias, SPECIES_LATIAS + 500}, - [SPECIES_LATIOS] = {gMonShinyPalette_Latios, SPECIES_LATIOS + 500}, - [SPECIES_JIRACHI] = {gMonShinyPalette_Jirachi, SPECIES_JIRACHI + 500}, - [SPECIES_DEOXYS] = {gMonShinyPalette_Deoxys, SPECIES_DEOXYS + 500}, - [SPECIES_CHIMECHO] = {gMonShinyPalette_Chimecho, SPECIES_CHIMECHO + 500}, - [SPECIES_EGG] = {gMonPalette_Egg, SPECIES_EGG + 500}, - [SPECIES_UNOWN_B] = {gMonShinyPalette_Unown, SPECIES_UNOWN_B + 500}, - [SPECIES_UNOWN_C] = {gMonShinyPalette_Unown, SPECIES_UNOWN_C + 500}, - [SPECIES_UNOWN_D] = {gMonShinyPalette_Unown, SPECIES_UNOWN_D + 500}, - [SPECIES_UNOWN_E] = {gMonShinyPalette_Unown, SPECIES_UNOWN_E + 500}, - [SPECIES_UNOWN_F] = {gMonShinyPalette_Unown, SPECIES_UNOWN_F + 500}, - [SPECIES_UNOWN_G] = {gMonShinyPalette_Unown, SPECIES_UNOWN_G + 500}, - [SPECIES_UNOWN_H] = {gMonShinyPalette_Unown, SPECIES_UNOWN_H + 500}, - [SPECIES_UNOWN_I] = {gMonShinyPalette_Unown, SPECIES_UNOWN_I + 500}, - [SPECIES_UNOWN_J] = {gMonShinyPalette_Unown, SPECIES_UNOWN_J + 500}, - [SPECIES_UNOWN_K] = {gMonShinyPalette_Unown, SPECIES_UNOWN_K + 500}, - [SPECIES_UNOWN_L] = {gMonShinyPalette_Unown, SPECIES_UNOWN_L + 500}, - [SPECIES_UNOWN_M] = {gMonShinyPalette_Unown, SPECIES_UNOWN_M + 500}, - [SPECIES_UNOWN_N] = {gMonShinyPalette_Unown, SPECIES_UNOWN_N + 500}, - [SPECIES_UNOWN_O] = {gMonShinyPalette_Unown, SPECIES_UNOWN_O + 500}, - [SPECIES_UNOWN_P] = {gMonShinyPalette_Unown, SPECIES_UNOWN_P + 500}, - [SPECIES_UNOWN_Q] = {gMonShinyPalette_Unown, SPECIES_UNOWN_Q + 500}, - [SPECIES_UNOWN_R] = {gMonShinyPalette_Unown, SPECIES_UNOWN_R + 500}, - [SPECIES_UNOWN_S] = {gMonShinyPalette_Unown, SPECIES_UNOWN_S + 500}, - [SPECIES_UNOWN_T] = {gMonShinyPalette_Unown, SPECIES_UNOWN_T + 500}, - [SPECIES_UNOWN_U] = {gMonShinyPalette_Unown, SPECIES_UNOWN_U + 500}, - [SPECIES_UNOWN_V] = {gMonShinyPalette_Unown, SPECIES_UNOWN_V + 500}, - [SPECIES_UNOWN_W] = {gMonShinyPalette_Unown, SPECIES_UNOWN_W + 500}, - [SPECIES_UNOWN_X] = {gMonShinyPalette_Unown, SPECIES_UNOWN_X + 500}, - [SPECIES_UNOWN_Y] = {gMonShinyPalette_Unown, SPECIES_UNOWN_Y + 500}, - [SPECIES_UNOWN_Z] = {gMonShinyPalette_Unown, SPECIES_UNOWN_Z + 500}, - [SPECIES_UNOWN_EMARK] = {gMonShinyPalette_Unown, SPECIES_UNOWN_EMARK + 500}, - [SPECIES_UNOWN_QMARK] = {gMonShinyPalette_Unown, SPECIES_UNOWN_QMARK + 500}, + SPECIES_SHINY_PAL(NONE, gMonShinyPalette_CircledQuestionMark), + SPECIES_SHINY_PAL(BULBASAUR, gMonShinyPalette_Bulbasaur), + SPECIES_SHINY_PAL(IVYSAUR, gMonShinyPalette_Ivysaur), + SPECIES_SHINY_PAL(VENUSAUR, gMonShinyPalette_Venusaur), + SPECIES_SHINY_PAL(CHARMANDER, gMonShinyPalette_Charmander), + SPECIES_SHINY_PAL(CHARMELEON, gMonShinyPalette_Charmeleon), + SPECIES_SHINY_PAL(CHARIZARD, gMonShinyPalette_Charizard), + SPECIES_SHINY_PAL(SQUIRTLE, gMonShinyPalette_Squirtle), + SPECIES_SHINY_PAL(WARTORTLE, gMonShinyPalette_Wartortle), + SPECIES_SHINY_PAL(BLASTOISE, gMonShinyPalette_Blastoise), + SPECIES_SHINY_PAL(CATERPIE, gMonShinyPalette_Caterpie), + SPECIES_SHINY_PAL(METAPOD, gMonShinyPalette_Metapod), + SPECIES_SHINY_PAL(BUTTERFREE, gMonShinyPalette_Butterfree), + SPECIES_SHINY_PAL(WEEDLE, gMonShinyPalette_Weedle), + SPECIES_SHINY_PAL(KAKUNA, gMonShinyPalette_Kakuna), + SPECIES_SHINY_PAL(BEEDRILL, gMonShinyPalette_Beedrill), + SPECIES_SHINY_PAL(PIDGEY, gMonShinyPalette_Pidgey), + SPECIES_SHINY_PAL(PIDGEOTTO, gMonShinyPalette_Pidgeotto), + SPECIES_SHINY_PAL(PIDGEOT, gMonShinyPalette_Pidgeot), + SPECIES_SHINY_PAL(RATTATA, gMonShinyPalette_Rattata), + SPECIES_SHINY_PAL(RATICATE, gMonShinyPalette_Raticate), + SPECIES_SHINY_PAL(SPEAROW, gMonShinyPalette_Spearow), + SPECIES_SHINY_PAL(FEAROW, gMonShinyPalette_Fearow), + SPECIES_SHINY_PAL(EKANS, gMonShinyPalette_Ekans), + SPECIES_SHINY_PAL(ARBOK, gMonShinyPalette_Arbok), + SPECIES_SHINY_PAL(PIKACHU, gMonShinyPalette_Pikachu), + SPECIES_SHINY_PAL(RAICHU, gMonShinyPalette_Raichu), + SPECIES_SHINY_PAL(SANDSHREW, gMonShinyPalette_Sandshrew), + SPECIES_SHINY_PAL(SANDSLASH, gMonShinyPalette_Sandslash), + SPECIES_SHINY_PAL(NIDORAN_F, gMonShinyPalette_NidoranF), + SPECIES_SHINY_PAL(NIDORINA, gMonShinyPalette_Nidorina), + SPECIES_SHINY_PAL(NIDOQUEEN, gMonShinyPalette_Nidoqueen), + SPECIES_SHINY_PAL(NIDORAN_M, gMonShinyPalette_NidoranM), + SPECIES_SHINY_PAL(NIDORINO, gMonShinyPalette_Nidorino), + SPECIES_SHINY_PAL(NIDOKING, gMonShinyPalette_Nidoking), + SPECIES_SHINY_PAL(CLEFAIRY, gMonShinyPalette_Clefairy), + SPECIES_SHINY_PAL(CLEFABLE, gMonShinyPalette_Clefable), + SPECIES_SHINY_PAL(VULPIX, gMonShinyPalette_Vulpix), + SPECIES_SHINY_PAL(NINETALES, gMonShinyPalette_Ninetales), + SPECIES_SHINY_PAL(JIGGLYPUFF, gMonShinyPalette_Jigglypuff), + SPECIES_SHINY_PAL(WIGGLYTUFF, gMonShinyPalette_Wigglytuff), + SPECIES_SHINY_PAL(ZUBAT, gMonShinyPalette_Zubat), + SPECIES_SHINY_PAL(GOLBAT, gMonShinyPalette_Golbat), + SPECIES_SHINY_PAL(ODDISH, gMonShinyPalette_Oddish), + SPECIES_SHINY_PAL(GLOOM, gMonShinyPalette_Gloom), + SPECIES_SHINY_PAL(VILEPLUME, gMonShinyPalette_Vileplume), + SPECIES_SHINY_PAL(PARAS, gMonShinyPalette_Paras), + SPECIES_SHINY_PAL(PARASECT, gMonShinyPalette_Parasect), + SPECIES_SHINY_PAL(VENONAT, gMonShinyPalette_Venonat), + SPECIES_SHINY_PAL(VENOMOTH, gMonShinyPalette_Venomoth), + SPECIES_SHINY_PAL(DIGLETT, gMonShinyPalette_Diglett), + SPECIES_SHINY_PAL(DUGTRIO, gMonShinyPalette_Dugtrio), + SPECIES_SHINY_PAL(MEOWTH, gMonShinyPalette_Meowth), + SPECIES_SHINY_PAL(PERSIAN, gMonShinyPalette_Persian), + SPECIES_SHINY_PAL(PSYDUCK, gMonShinyPalette_Psyduck), + SPECIES_SHINY_PAL(GOLDUCK, gMonShinyPalette_Golduck), + SPECIES_SHINY_PAL(MANKEY, gMonShinyPalette_Mankey), + SPECIES_SHINY_PAL(PRIMEAPE, gMonShinyPalette_Primeape), + SPECIES_SHINY_PAL(GROWLITHE, gMonShinyPalette_Growlithe), + SPECIES_SHINY_PAL(ARCANINE, gMonShinyPalette_Arcanine), + SPECIES_SHINY_PAL(POLIWAG, gMonShinyPalette_Poliwag), + SPECIES_SHINY_PAL(POLIWHIRL, gMonShinyPalette_Poliwhirl), + SPECIES_SHINY_PAL(POLIWRATH, gMonShinyPalette_Poliwrath), + SPECIES_SHINY_PAL(ABRA, gMonShinyPalette_Abra), + SPECIES_SHINY_PAL(KADABRA, gMonShinyPalette_Kadabra), + SPECIES_SHINY_PAL(ALAKAZAM, gMonShinyPalette_Alakazam), + SPECIES_SHINY_PAL(MACHOP, gMonShinyPalette_Machop), + SPECIES_SHINY_PAL(MACHOKE, gMonShinyPalette_Machoke), + SPECIES_SHINY_PAL(MACHAMP, gMonShinyPalette_Machamp), + SPECIES_SHINY_PAL(BELLSPROUT, gMonShinyPalette_Bellsprout), + SPECIES_SHINY_PAL(WEEPINBELL, gMonShinyPalette_Weepinbell), + SPECIES_SHINY_PAL(VICTREEBEL, gMonShinyPalette_Victreebel), + SPECIES_SHINY_PAL(TENTACOOL, gMonShinyPalette_Tentacool), + SPECIES_SHINY_PAL(TENTACRUEL, gMonShinyPalette_Tentacruel), + SPECIES_SHINY_PAL(GEODUDE, gMonShinyPalette_Geodude), + SPECIES_SHINY_PAL(GRAVELER, gMonShinyPalette_Graveler), + SPECIES_SHINY_PAL(GOLEM, gMonShinyPalette_Golem), + SPECIES_SHINY_PAL(PONYTA, gMonShinyPalette_Ponyta), + SPECIES_SHINY_PAL(RAPIDASH, gMonShinyPalette_Rapidash), + SPECIES_SHINY_PAL(SLOWPOKE, gMonShinyPalette_Slowpoke), + SPECIES_SHINY_PAL(SLOWBRO, gMonShinyPalette_Slowbro), + SPECIES_SHINY_PAL(MAGNEMITE, gMonShinyPalette_Magnemite), + SPECIES_SHINY_PAL(MAGNETON, gMonShinyPalette_Magneton), + SPECIES_SHINY_PAL(FARFETCHD, gMonShinyPalette_Farfetchd), + SPECIES_SHINY_PAL(DODUO, gMonShinyPalette_Doduo), + SPECIES_SHINY_PAL(DODRIO, gMonShinyPalette_Dodrio), + SPECIES_SHINY_PAL(SEEL, gMonShinyPalette_Seel), + SPECIES_SHINY_PAL(DEWGONG, gMonShinyPalette_Dewgong), + SPECIES_SHINY_PAL(GRIMER, gMonShinyPalette_Grimer), + SPECIES_SHINY_PAL(MUK, gMonShinyPalette_Muk), + SPECIES_SHINY_PAL(SHELLDER, gMonShinyPalette_Shellder), + SPECIES_SHINY_PAL(CLOYSTER, gMonShinyPalette_Cloyster), + SPECIES_SHINY_PAL(GASTLY, gMonShinyPalette_Gastly), + SPECIES_SHINY_PAL(HAUNTER, gMonShinyPalette_Haunter), + SPECIES_SHINY_PAL(GENGAR, gMonShinyPalette_Gengar), + SPECIES_SHINY_PAL(ONIX, gMonShinyPalette_Onix), + SPECIES_SHINY_PAL(DROWZEE, gMonShinyPalette_Drowzee), + SPECIES_SHINY_PAL(HYPNO, gMonShinyPalette_Hypno), + SPECIES_SHINY_PAL(KRABBY, gMonShinyPalette_Krabby), + SPECIES_SHINY_PAL(KINGLER, gMonShinyPalette_Kingler), + SPECIES_SHINY_PAL(VOLTORB, gMonShinyPalette_Voltorb), + SPECIES_SHINY_PAL(ELECTRODE, gMonShinyPalette_Electrode), + SPECIES_SHINY_PAL(EXEGGCUTE, gMonShinyPalette_Exeggcute), + SPECIES_SHINY_PAL(EXEGGUTOR, gMonShinyPalette_Exeggutor), + SPECIES_SHINY_PAL(CUBONE, gMonShinyPalette_Cubone), + SPECIES_SHINY_PAL(MAROWAK, gMonShinyPalette_Marowak), + SPECIES_SHINY_PAL(HITMONLEE, gMonShinyPalette_Hitmonlee), + SPECIES_SHINY_PAL(HITMONCHAN, gMonShinyPalette_Hitmonchan), + SPECIES_SHINY_PAL(LICKITUNG, gMonShinyPalette_Lickitung), + SPECIES_SHINY_PAL(KOFFING, gMonShinyPalette_Koffing), + SPECIES_SHINY_PAL(WEEZING, gMonShinyPalette_Weezing), + SPECIES_SHINY_PAL(RHYHORN, gMonShinyPalette_Rhyhorn), + SPECIES_SHINY_PAL(RHYDON, gMonShinyPalette_Rhydon), + SPECIES_SHINY_PAL(CHANSEY, gMonShinyPalette_Chansey), + SPECIES_SHINY_PAL(TANGELA, gMonShinyPalette_Tangela), + SPECIES_SHINY_PAL(KANGASKHAN, gMonShinyPalette_Kangaskhan), + SPECIES_SHINY_PAL(HORSEA, gMonShinyPalette_Horsea), + SPECIES_SHINY_PAL(SEADRA, gMonShinyPalette_Seadra), + SPECIES_SHINY_PAL(GOLDEEN, gMonShinyPalette_Goldeen), + SPECIES_SHINY_PAL(SEAKING, gMonShinyPalette_Seaking), + SPECIES_SHINY_PAL(STARYU, gMonShinyPalette_Staryu), + SPECIES_SHINY_PAL(STARMIE, gMonShinyPalette_Starmie), + SPECIES_SHINY_PAL(MR_MIME, gMonShinyPalette_Mrmime), + SPECIES_SHINY_PAL(SCYTHER, gMonShinyPalette_Scyther), + SPECIES_SHINY_PAL(JYNX, gMonShinyPalette_Jynx), + SPECIES_SHINY_PAL(ELECTABUZZ, gMonShinyPalette_Electabuzz), + SPECIES_SHINY_PAL(MAGMAR, gMonShinyPalette_Magmar), + SPECIES_SHINY_PAL(PINSIR, gMonShinyPalette_Pinsir), + SPECIES_SHINY_PAL(TAUROS, gMonShinyPalette_Tauros), + SPECIES_SHINY_PAL(MAGIKARP, gMonShinyPalette_Magikarp), + SPECIES_SHINY_PAL(GYARADOS, gMonShinyPalette_Gyarados), + SPECIES_SHINY_PAL(LAPRAS, gMonShinyPalette_Lapras), + SPECIES_SHINY_PAL(DITTO, gMonShinyPalette_Ditto), + SPECIES_SHINY_PAL(EEVEE, gMonShinyPalette_Eevee), + SPECIES_SHINY_PAL(VAPOREON, gMonShinyPalette_Vaporeon), + SPECIES_SHINY_PAL(JOLTEON, gMonShinyPalette_Jolteon), + SPECIES_SHINY_PAL(FLAREON, gMonShinyPalette_Flareon), + SPECIES_SHINY_PAL(PORYGON, gMonShinyPalette_Porygon), + SPECIES_SHINY_PAL(OMANYTE, gMonShinyPalette_Omanyte), + SPECIES_SHINY_PAL(OMASTAR, gMonShinyPalette_Omastar), + SPECIES_SHINY_PAL(KABUTO, gMonShinyPalette_Kabuto), + SPECIES_SHINY_PAL(KABUTOPS, gMonShinyPalette_Kabutops), + SPECIES_SHINY_PAL(AERODACTYL, gMonShinyPalette_Aerodactyl), + SPECIES_SHINY_PAL(SNORLAX, gMonShinyPalette_Snorlax), + SPECIES_SHINY_PAL(ARTICUNO, gMonShinyPalette_Articuno), + SPECIES_SHINY_PAL(ZAPDOS, gMonShinyPalette_Zapdos), + SPECIES_SHINY_PAL(MOLTRES, gMonShinyPalette_Moltres), + SPECIES_SHINY_PAL(DRATINI, gMonShinyPalette_Dratini), + SPECIES_SHINY_PAL(DRAGONAIR, gMonShinyPalette_Dragonair), + SPECIES_SHINY_PAL(DRAGONITE, gMonShinyPalette_Dragonite), + SPECIES_SHINY_PAL(MEWTWO, gMonShinyPalette_Mewtwo), + SPECIES_SHINY_PAL(MEW, gMonShinyPalette_Mew), + SPECIES_SHINY_PAL(CHIKORITA, gMonShinyPalette_Chikorita), + SPECIES_SHINY_PAL(BAYLEEF, gMonShinyPalette_Bayleef), + SPECIES_SHINY_PAL(MEGANIUM, gMonShinyPalette_Meganium), + SPECIES_SHINY_PAL(CYNDAQUIL, gMonShinyPalette_Cyndaquil), + SPECIES_SHINY_PAL(QUILAVA, gMonShinyPalette_Quilava), + SPECIES_SHINY_PAL(TYPHLOSION, gMonShinyPalette_Typhlosion), + SPECIES_SHINY_PAL(TOTODILE, gMonShinyPalette_Totodile), + SPECIES_SHINY_PAL(CROCONAW, gMonShinyPalette_Croconaw), + SPECIES_SHINY_PAL(FERALIGATR, gMonShinyPalette_Feraligatr), + SPECIES_SHINY_PAL(SENTRET, gMonShinyPalette_Sentret), + SPECIES_SHINY_PAL(FURRET, gMonShinyPalette_Furret), + SPECIES_SHINY_PAL(HOOTHOOT, gMonShinyPalette_Hoothoot), + SPECIES_SHINY_PAL(NOCTOWL, gMonShinyPalette_Noctowl), + SPECIES_SHINY_PAL(LEDYBA, gMonShinyPalette_Ledyba), + SPECIES_SHINY_PAL(LEDIAN, gMonShinyPalette_Ledian), + SPECIES_SHINY_PAL(SPINARAK, gMonShinyPalette_Spinarak), + SPECIES_SHINY_PAL(ARIADOS, gMonShinyPalette_Ariados), + SPECIES_SHINY_PAL(CROBAT, gMonShinyPalette_Crobat), + SPECIES_SHINY_PAL(CHINCHOU, gMonShinyPalette_Chinchou), + SPECIES_SHINY_PAL(LANTURN, gMonShinyPalette_Lanturn), + SPECIES_SHINY_PAL(PICHU, gMonShinyPalette_Pichu), + SPECIES_SHINY_PAL(CLEFFA, gMonShinyPalette_Cleffa), + SPECIES_SHINY_PAL(IGGLYBUFF, gMonShinyPalette_Igglybuff), + SPECIES_SHINY_PAL(TOGEPI, gMonShinyPalette_Togepi), + SPECIES_SHINY_PAL(TOGETIC, gMonShinyPalette_Togetic), + SPECIES_SHINY_PAL(NATU, gMonShinyPalette_Natu), + SPECIES_SHINY_PAL(XATU, gMonShinyPalette_Xatu), + SPECIES_SHINY_PAL(MAREEP, gMonShinyPalette_Mareep), + SPECIES_SHINY_PAL(FLAAFFY, gMonShinyPalette_Flaaffy), + SPECIES_SHINY_PAL(AMPHAROS, gMonShinyPalette_Ampharos), + SPECIES_SHINY_PAL(BELLOSSOM, gMonShinyPalette_Bellossom), + SPECIES_SHINY_PAL(MARILL, gMonShinyPalette_Marill), + SPECIES_SHINY_PAL(AZUMARILL, gMonShinyPalette_Azumarill), + SPECIES_SHINY_PAL(SUDOWOODO, gMonShinyPalette_Sudowoodo), + SPECIES_SHINY_PAL(POLITOED, gMonShinyPalette_Politoed), + SPECIES_SHINY_PAL(HOPPIP, gMonShinyPalette_Hoppip), + SPECIES_SHINY_PAL(SKIPLOOM, gMonShinyPalette_Skiploom), + SPECIES_SHINY_PAL(JUMPLUFF, gMonShinyPalette_Jumpluff), + SPECIES_SHINY_PAL(AIPOM, gMonShinyPalette_Aipom), + SPECIES_SHINY_PAL(SUNKERN, gMonShinyPalette_Sunkern), + SPECIES_SHINY_PAL(SUNFLORA, gMonShinyPalette_Sunflora), + SPECIES_SHINY_PAL(YANMA, gMonShinyPalette_Yanma), + SPECIES_SHINY_PAL(WOOPER, gMonShinyPalette_Wooper), + SPECIES_SHINY_PAL(QUAGSIRE, gMonShinyPalette_Quagsire), + SPECIES_SHINY_PAL(ESPEON, gMonShinyPalette_Espeon), + SPECIES_SHINY_PAL(UMBREON, gMonShinyPalette_Umbreon), + SPECIES_SHINY_PAL(MURKROW, gMonShinyPalette_Murkrow), + SPECIES_SHINY_PAL(SLOWKING, gMonShinyPalette_Slowking), + SPECIES_SHINY_PAL(MISDREAVUS, gMonShinyPalette_Misdreavus), + SPECIES_SHINY_PAL(UNOWN, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(WOBBUFFET, gMonShinyPalette_Wobbuffet), + SPECIES_SHINY_PAL(GIRAFARIG, gMonShinyPalette_Girafarig), + SPECIES_SHINY_PAL(PINECO, gMonShinyPalette_Pineco), + SPECIES_SHINY_PAL(FORRETRESS, gMonShinyPalette_Forretress), + SPECIES_SHINY_PAL(DUNSPARCE, gMonShinyPalette_Dunsparce), + SPECIES_SHINY_PAL(GLIGAR, gMonShinyPalette_Gligar), + SPECIES_SHINY_PAL(STEELIX, gMonShinyPalette_Steelix), + SPECIES_SHINY_PAL(SNUBBULL, gMonShinyPalette_Snubbull), + SPECIES_SHINY_PAL(GRANBULL, gMonShinyPalette_Granbull), + SPECIES_SHINY_PAL(QWILFISH, gMonShinyPalette_Qwilfish), + SPECIES_SHINY_PAL(SCIZOR, gMonShinyPalette_Scizor), + SPECIES_SHINY_PAL(SHUCKLE, gMonShinyPalette_Shuckle), + SPECIES_SHINY_PAL(HERACROSS, gMonShinyPalette_Heracross), + SPECIES_SHINY_PAL(SNEASEL, gMonShinyPalette_Sneasel), + SPECIES_SHINY_PAL(TEDDIURSA, gMonShinyPalette_Teddiursa), + SPECIES_SHINY_PAL(URSARING, gMonShinyPalette_Ursaring), + SPECIES_SHINY_PAL(SLUGMA, gMonShinyPalette_Slugma), + SPECIES_SHINY_PAL(MAGCARGO, gMonShinyPalette_Magcargo), + SPECIES_SHINY_PAL(SWINUB, gMonShinyPalette_Swinub), + SPECIES_SHINY_PAL(PILOSWINE, gMonShinyPalette_Piloswine), + SPECIES_SHINY_PAL(CORSOLA, gMonShinyPalette_Corsola), + SPECIES_SHINY_PAL(REMORAID, gMonShinyPalette_Remoraid), + SPECIES_SHINY_PAL(OCTILLERY, gMonShinyPalette_Octillery), + SPECIES_SHINY_PAL(DELIBIRD, gMonShinyPalette_Delibird), + SPECIES_SHINY_PAL(MANTINE, gMonShinyPalette_Mantine), + SPECIES_SHINY_PAL(SKARMORY, gMonShinyPalette_Skarmory), + SPECIES_SHINY_PAL(HOUNDOUR, gMonShinyPalette_Houndour), + SPECIES_SHINY_PAL(HOUNDOOM, gMonShinyPalette_Houndoom), + SPECIES_SHINY_PAL(KINGDRA, gMonShinyPalette_Kingdra), + SPECIES_SHINY_PAL(PHANPY, gMonShinyPalette_Phanpy), + SPECIES_SHINY_PAL(DONPHAN, gMonShinyPalette_Donphan), + SPECIES_SHINY_PAL(PORYGON2, gMonShinyPalette_Porygon2), + SPECIES_SHINY_PAL(STANTLER, gMonShinyPalette_Stantler), + SPECIES_SHINY_PAL(SMEARGLE, gMonShinyPalette_Smeargle), + SPECIES_SHINY_PAL(TYROGUE, gMonShinyPalette_Tyrogue), + SPECIES_SHINY_PAL(HITMONTOP, gMonShinyPalette_Hitmontop), + SPECIES_SHINY_PAL(SMOOCHUM, gMonShinyPalette_Smoochum), + SPECIES_SHINY_PAL(ELEKID, gMonShinyPalette_Elekid), + SPECIES_SHINY_PAL(MAGBY, gMonShinyPalette_Magby), + SPECIES_SHINY_PAL(MILTANK, gMonShinyPalette_Miltank), + SPECIES_SHINY_PAL(BLISSEY, gMonShinyPalette_Blissey), + SPECIES_SHINY_PAL(RAIKOU, gMonShinyPalette_Raikou), + SPECIES_SHINY_PAL(ENTEI, gMonShinyPalette_Entei), + SPECIES_SHINY_PAL(SUICUNE, gMonShinyPalette_Suicune), + SPECIES_SHINY_PAL(LARVITAR, gMonShinyPalette_Larvitar), + SPECIES_SHINY_PAL(PUPITAR, gMonShinyPalette_Pupitar), + SPECIES_SHINY_PAL(TYRANITAR, gMonShinyPalette_Tyranitar), + SPECIES_SHINY_PAL(LUGIA, gMonShinyPalette_Lugia), + SPECIES_SHINY_PAL(HO_OH, gMonShinyPalette_HoOh), + SPECIES_SHINY_PAL(CELEBI, gMonShinyPalette_Celebi), + SPECIES_SHINY_PAL(OLD_UNOWN_B, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_C, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_D, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_E, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_F, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_G, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_H, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_I, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_J, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_K, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_L, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_M, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_N, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_O, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_P, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_Q, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_R, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_S, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_T, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_U, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_V, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_W, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_X, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_Y, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(OLD_UNOWN_Z, gMonShinyPalette_DoubleQuestionMark), + SPECIES_SHINY_PAL(TREECKO, gMonShinyPalette_Treecko), + SPECIES_SHINY_PAL(GROVYLE, gMonShinyPalette_Grovyle), + SPECIES_SHINY_PAL(SCEPTILE, gMonShinyPalette_Sceptile), + SPECIES_SHINY_PAL(TORCHIC, gMonShinyPalette_Torchic), + SPECIES_SHINY_PAL(COMBUSKEN, gMonShinyPalette_Combusken), + SPECIES_SHINY_PAL(BLAZIKEN, gMonShinyPalette_Blaziken), + SPECIES_SHINY_PAL(MUDKIP, gMonShinyPalette_Mudkip), + SPECIES_SHINY_PAL(MARSHTOMP, gMonShinyPalette_Marshtomp), + SPECIES_SHINY_PAL(SWAMPERT, gMonShinyPalette_Swampert), + SPECIES_SHINY_PAL(POOCHYENA, gMonShinyPalette_Poochyena), + SPECIES_SHINY_PAL(MIGHTYENA, gMonShinyPalette_Mightyena), + SPECIES_SHINY_PAL(ZIGZAGOON, gMonShinyPalette_Zigzagoon), + SPECIES_SHINY_PAL(LINOONE, gMonShinyPalette_Linoone), + SPECIES_SHINY_PAL(WURMPLE, gMonShinyPalette_Wurmple), + SPECIES_SHINY_PAL(SILCOON, gMonShinyPalette_Silcoon), + SPECIES_SHINY_PAL(BEAUTIFLY, gMonShinyPalette_Beautifly), + SPECIES_SHINY_PAL(CASCOON, gMonShinyPalette_Cascoon), + SPECIES_SHINY_PAL(DUSTOX, gMonShinyPalette_Dustox), + SPECIES_SHINY_PAL(LOTAD, gMonShinyPalette_Lotad), + SPECIES_SHINY_PAL(LOMBRE, gMonShinyPalette_Lombre), + SPECIES_SHINY_PAL(LUDICOLO, gMonShinyPalette_Ludicolo), + SPECIES_SHINY_PAL(SEEDOT, gMonShinyPalette_Seedot), + SPECIES_SHINY_PAL(NUZLEAF, gMonShinyPalette_Nuzleaf), + SPECIES_SHINY_PAL(SHIFTRY, gMonShinyPalette_Shiftry), + SPECIES_SHINY_PAL(NINCADA, gMonShinyPalette_Nincada), + SPECIES_SHINY_PAL(NINJASK, gMonShinyPalette_Ninjask), + SPECIES_SHINY_PAL(SHEDINJA, gMonShinyPalette_Shedinja), + SPECIES_SHINY_PAL(TAILLOW, gMonShinyPalette_Taillow), + SPECIES_SHINY_PAL(SWELLOW, gMonShinyPalette_Swellow), + SPECIES_SHINY_PAL(SHROOMISH, gMonShinyPalette_Shroomish), + SPECIES_SHINY_PAL(BRELOOM, gMonShinyPalette_Breloom), + SPECIES_SHINY_PAL(SPINDA, gMonShinyPalette_Spinda), + SPECIES_SHINY_PAL(WINGULL, gMonShinyPalette_Wingull), + SPECIES_SHINY_PAL(PELIPPER, gMonShinyPalette_Pelipper), + SPECIES_SHINY_PAL(SURSKIT, gMonShinyPalette_Surskit), + SPECIES_SHINY_PAL(MASQUERAIN, gMonShinyPalette_Masquerain), + SPECIES_SHINY_PAL(WAILMER, gMonShinyPalette_Wailmer), + SPECIES_SHINY_PAL(WAILORD, gMonShinyPalette_Wailord), + SPECIES_SHINY_PAL(SKITTY, gMonShinyPalette_Skitty), + SPECIES_SHINY_PAL(DELCATTY, gMonShinyPalette_Delcatty), + SPECIES_SHINY_PAL(KECLEON, gMonShinyPalette_Kecleon), + SPECIES_SHINY_PAL(BALTOY, gMonShinyPalette_Baltoy), + SPECIES_SHINY_PAL(CLAYDOL, gMonShinyPalette_Claydol), + SPECIES_SHINY_PAL(NOSEPASS, gMonShinyPalette_Nosepass), + SPECIES_SHINY_PAL(TORKOAL, gMonShinyPalette_Torkoal), + SPECIES_SHINY_PAL(SABLEYE, gMonShinyPalette_Sableye), + SPECIES_SHINY_PAL(BARBOACH, gMonShinyPalette_Barboach), + SPECIES_SHINY_PAL(WHISCASH, gMonShinyPalette_Whiscash), + SPECIES_SHINY_PAL(LUVDISC, gMonShinyPalette_Luvdisc), + SPECIES_SHINY_PAL(CORPHISH, gMonShinyPalette_Corphish), + SPECIES_SHINY_PAL(CRAWDAUNT, gMonShinyPalette_Crawdaunt), + SPECIES_SHINY_PAL(FEEBAS, gMonShinyPalette_Feebas), + SPECIES_SHINY_PAL(MILOTIC, gMonShinyPalette_Milotic), + SPECIES_SHINY_PAL(CARVANHA, gMonShinyPalette_Carvanha), + SPECIES_SHINY_PAL(SHARPEDO, gMonShinyPalette_Sharpedo), + SPECIES_SHINY_PAL(TRAPINCH, gMonShinyPalette_Trapinch), + SPECIES_SHINY_PAL(VIBRAVA, gMonShinyPalette_Vibrava), + SPECIES_SHINY_PAL(FLYGON, gMonShinyPalette_Flygon), + SPECIES_SHINY_PAL(MAKUHITA, gMonShinyPalette_Makuhita), + SPECIES_SHINY_PAL(HARIYAMA, gMonShinyPalette_Hariyama), + SPECIES_SHINY_PAL(ELECTRIKE, gMonShinyPalette_Electrike), + SPECIES_SHINY_PAL(MANECTRIC, gMonShinyPalette_Manectric), + SPECIES_SHINY_PAL(NUMEL, gMonShinyPalette_Numel), + SPECIES_SHINY_PAL(CAMERUPT, gMonShinyPalette_Camerupt), + SPECIES_SHINY_PAL(SPHEAL, gMonShinyPalette_Spheal), + SPECIES_SHINY_PAL(SEALEO, gMonShinyPalette_Sealeo), + SPECIES_SHINY_PAL(WALREIN, gMonShinyPalette_Walrein), + SPECIES_SHINY_PAL(CACNEA, gMonShinyPalette_Cacnea), + SPECIES_SHINY_PAL(CACTURNE, gMonShinyPalette_Cacturne), + SPECIES_SHINY_PAL(SNORUNT, gMonShinyPalette_Snorunt), + SPECIES_SHINY_PAL(GLALIE, gMonShinyPalette_Glalie), + SPECIES_SHINY_PAL(LUNATONE, gMonShinyPalette_Lunatone), + SPECIES_SHINY_PAL(SOLROCK, gMonShinyPalette_Solrock), + SPECIES_SHINY_PAL(AZURILL, gMonShinyPalette_Azurill), + SPECIES_SHINY_PAL(SPOINK, gMonShinyPalette_Spoink), + SPECIES_SHINY_PAL(GRUMPIG, gMonShinyPalette_Grumpig), + SPECIES_SHINY_PAL(PLUSLE, gMonShinyPalette_Plusle), + SPECIES_SHINY_PAL(MINUN, gMonShinyPalette_Minun), + SPECIES_SHINY_PAL(MAWILE, gMonShinyPalette_Mawile), + SPECIES_SHINY_PAL(MEDITITE, gMonShinyPalette_Meditite), + SPECIES_SHINY_PAL(MEDICHAM, gMonShinyPalette_Medicham), + SPECIES_SHINY_PAL(SWABLU, gMonShinyPalette_Swablu), + SPECIES_SHINY_PAL(ALTARIA, gMonShinyPalette_Altaria), + SPECIES_SHINY_PAL(WYNAUT, gMonShinyPalette_Wynaut), + SPECIES_SHINY_PAL(DUSKULL, gMonShinyPalette_Duskull), + SPECIES_SHINY_PAL(DUSCLOPS, gMonShinyPalette_Dusclops), + SPECIES_SHINY_PAL(ROSELIA, gMonShinyPalette_Roselia), + SPECIES_SHINY_PAL(SLAKOTH, gMonShinyPalette_Slakoth), + SPECIES_SHINY_PAL(VIGOROTH, gMonShinyPalette_Vigoroth), + SPECIES_SHINY_PAL(SLAKING, gMonShinyPalette_Slaking), + SPECIES_SHINY_PAL(GULPIN, gMonShinyPalette_Gulpin), + SPECIES_SHINY_PAL(SWALOT, gMonShinyPalette_Swalot), + SPECIES_SHINY_PAL(TROPIUS, gMonShinyPalette_Tropius), + SPECIES_SHINY_PAL(WHISMUR, gMonShinyPalette_Whismur), + SPECIES_SHINY_PAL(LOUDRED, gMonShinyPalette_Loudred), + SPECIES_SHINY_PAL(EXPLOUD, gMonShinyPalette_Exploud), + SPECIES_SHINY_PAL(CLAMPERL, gMonShinyPalette_Clamperl), + SPECIES_SHINY_PAL(HUNTAIL, gMonShinyPalette_Huntail), + SPECIES_SHINY_PAL(GOREBYSS, gMonShinyPalette_Gorebyss), + SPECIES_SHINY_PAL(ABSOL, gMonShinyPalette_Absol), + SPECIES_SHINY_PAL(SHUPPET, gMonShinyPalette_Shuppet), + SPECIES_SHINY_PAL(BANETTE, gMonShinyPalette_Banette), + SPECIES_SHINY_PAL(SEVIPER, gMonShinyPalette_Seviper), + SPECIES_SHINY_PAL(ZANGOOSE, gMonShinyPalette_Zangoose), + SPECIES_SHINY_PAL(RELICANTH, gMonShinyPalette_Relicanth), + SPECIES_SHINY_PAL(ARON, gMonShinyPalette_Aron), + SPECIES_SHINY_PAL(LAIRON, gMonShinyPalette_Lairon), + SPECIES_SHINY_PAL(AGGRON, gMonShinyPalette_Aggron), + SPECIES_SHINY_PAL(CASTFORM, gMonShinyPalette_Castform), + SPECIES_SHINY_PAL(VOLBEAT, gMonShinyPalette_Volbeat), + SPECIES_SHINY_PAL(ILLUMISE, gMonShinyPalette_Illumise), + SPECIES_SHINY_PAL(LILEEP, gMonShinyPalette_Lileep), + SPECIES_SHINY_PAL(CRADILY, gMonShinyPalette_Cradily), + SPECIES_SHINY_PAL(ANORITH, gMonShinyPalette_Anorith), + SPECIES_SHINY_PAL(ARMALDO, gMonShinyPalette_Armaldo), + SPECIES_SHINY_PAL(RALTS, gMonShinyPalette_Ralts), + SPECIES_SHINY_PAL(KIRLIA, gMonShinyPalette_Kirlia), + SPECIES_SHINY_PAL(GARDEVOIR, gMonShinyPalette_Gardevoir), + SPECIES_SHINY_PAL(BAGON, gMonShinyPalette_Bagon), + SPECIES_SHINY_PAL(SHELGON, gMonShinyPalette_Shelgon), + SPECIES_SHINY_PAL(SALAMENCE, gMonShinyPalette_Salamence), + SPECIES_SHINY_PAL(BELDUM, gMonShinyPalette_Beldum), + SPECIES_SHINY_PAL(METANG, gMonShinyPalette_Metang), + SPECIES_SHINY_PAL(METAGROSS, gMonShinyPalette_Metagross), + SPECIES_SHINY_PAL(REGIROCK, gMonShinyPalette_Regirock), + SPECIES_SHINY_PAL(REGICE, gMonShinyPalette_Regice), + SPECIES_SHINY_PAL(REGISTEEL, gMonShinyPalette_Registeel), + SPECIES_SHINY_PAL(KYOGRE, gMonShinyPalette_Kyogre), + SPECIES_SHINY_PAL(GROUDON, gMonShinyPalette_Groudon), + SPECIES_SHINY_PAL(RAYQUAZA, gMonShinyPalette_Rayquaza), + SPECIES_SHINY_PAL(LATIAS, gMonShinyPalette_Latias), + SPECIES_SHINY_PAL(LATIOS, gMonShinyPalette_Latios), + SPECIES_SHINY_PAL(JIRACHI, gMonShinyPalette_Jirachi), + SPECIES_SHINY_PAL(DEOXYS, gMonShinyPalette_Deoxys), + SPECIES_SHINY_PAL(CHIMECHO, gMonShinyPalette_Chimecho), + SPECIES_SHINY_PAL(EGG, gMonPalette_Egg), + SPECIES_SHINY_PAL(UNOWN_B, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_C, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_D, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_E, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_F, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_G, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_H, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_I, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_J, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_K, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_L, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_M, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_N, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_O, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_P, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_Q, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_R, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_S, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_T, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_U, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_V, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_W, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_X, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_Y, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_Z, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_EMARK, gMonShinyPalette_Unown), + SPECIES_SHINY_PAL(UNOWN_QMARK, gMonShinyPalette_Unown), }; diff --git a/src/data/pokemon_graphics/still_front_pic_table.h b/src/data/pokemon_graphics/still_front_pic_table.h index 308a872b4..985a3aa2f 100644 --- a/src/data/pokemon_graphics/still_front_pic_table.h +++ b/src/data/pokemon_graphics/still_front_pic_table.h @@ -1,448 +1,446 @@ -#define STILL_FRONT_PIC(species, frontpic) [SPECIES_##species] = {frontpic, 0x800, SPECIES_##species} - -const struct CompressedSpriteSheet gMonStillFrontPicTable[] = +const struct CompressedSpriteSheet gMonStillFrontPicTable[] = { - STILL_FRONT_PIC(NONE, gMonStillFrontPic_CircledQuestionMark), - STILL_FRONT_PIC(BULBASAUR, gMonStillFrontPic_Bulbasaur), - STILL_FRONT_PIC(IVYSAUR, gMonStillFrontPic_Ivysaur), - STILL_FRONT_PIC(VENUSAUR, gMonStillFrontPic_Venusaur), - STILL_FRONT_PIC(CHARMANDER, gMonStillFrontPic_Charmander), - STILL_FRONT_PIC(CHARMELEON, gMonStillFrontPic_Charmeleon), - STILL_FRONT_PIC(CHARIZARD, gMonStillFrontPic_Charizard), - STILL_FRONT_PIC(SQUIRTLE, gMonStillFrontPic_Squirtle), - STILL_FRONT_PIC(WARTORTLE, gMonStillFrontPic_Wartortle), - STILL_FRONT_PIC(BLASTOISE, gMonStillFrontPic_Blastoise), - STILL_FRONT_PIC(CATERPIE, gMonStillFrontPic_Caterpie), - STILL_FRONT_PIC(METAPOD, gMonStillFrontPic_Metapod), - STILL_FRONT_PIC(BUTTERFREE, gMonStillFrontPic_Butterfree), - STILL_FRONT_PIC(WEEDLE, gMonStillFrontPic_Weedle), - STILL_FRONT_PIC(KAKUNA, gMonStillFrontPic_Kakuna), - STILL_FRONT_PIC(BEEDRILL, gMonStillFrontPic_Beedrill), - STILL_FRONT_PIC(PIDGEY, gMonStillFrontPic_Pidgey), - STILL_FRONT_PIC(PIDGEOTTO, gMonStillFrontPic_Pidgeotto), - STILL_FRONT_PIC(PIDGEOT, gMonStillFrontPic_Pidgeot), - STILL_FRONT_PIC(RATTATA, gMonStillFrontPic_Rattata), - STILL_FRONT_PIC(RATICATE, gMonStillFrontPic_Raticate), - STILL_FRONT_PIC(SPEAROW, gMonStillFrontPic_Spearow), - STILL_FRONT_PIC(FEAROW, gMonStillFrontPic_Fearow), - STILL_FRONT_PIC(EKANS, gMonStillFrontPic_Ekans), - STILL_FRONT_PIC(ARBOK, gMonStillFrontPic_Arbok), - STILL_FRONT_PIC(PIKACHU, gMonStillFrontPic_Pikachu), - STILL_FRONT_PIC(RAICHU, gMonStillFrontPic_Raichu), - STILL_FRONT_PIC(SANDSHREW, gMonStillFrontPic_Sandshrew), - STILL_FRONT_PIC(SANDSLASH, gMonStillFrontPic_Sandslash), - STILL_FRONT_PIC(NIDORAN_F, gMonStillFrontPic_NidoranF), - STILL_FRONT_PIC(NIDORINA, gMonStillFrontPic_Nidorina), - STILL_FRONT_PIC(NIDOQUEEN, gMonStillFrontPic_Nidoqueen), - STILL_FRONT_PIC(NIDORAN_M, gMonStillFrontPic_NidoranM), - STILL_FRONT_PIC(NIDORINO, gMonStillFrontPic_Nidorino), - STILL_FRONT_PIC(NIDOKING, gMonStillFrontPic_Nidoking), - STILL_FRONT_PIC(CLEFAIRY, gMonStillFrontPic_Clefairy), - STILL_FRONT_PIC(CLEFABLE, gMonStillFrontPic_Clefable), - STILL_FRONT_PIC(VULPIX, gMonStillFrontPic_Vulpix), - STILL_FRONT_PIC(NINETALES, gMonStillFrontPic_Ninetales), - STILL_FRONT_PIC(JIGGLYPUFF, gMonStillFrontPic_Jigglypuff), - STILL_FRONT_PIC(WIGGLYTUFF, gMonStillFrontPic_Wigglytuff), - STILL_FRONT_PIC(ZUBAT, gMonStillFrontPic_Zubat), - STILL_FRONT_PIC(GOLBAT, gMonStillFrontPic_Golbat), - STILL_FRONT_PIC(ODDISH, gMonStillFrontPic_Oddish), - STILL_FRONT_PIC(GLOOM, gMonStillFrontPic_Gloom), - STILL_FRONT_PIC(VILEPLUME, gMonStillFrontPic_Vileplume), - STILL_FRONT_PIC(PARAS, gMonStillFrontPic_Paras), - STILL_FRONT_PIC(PARASECT, gMonStillFrontPic_Parasect), - STILL_FRONT_PIC(VENONAT, gMonStillFrontPic_Venonat), - STILL_FRONT_PIC(VENOMOTH, gMonStillFrontPic_Venomoth), - STILL_FRONT_PIC(DIGLETT, gMonStillFrontPic_Diglett), - STILL_FRONT_PIC(DUGTRIO, gMonStillFrontPic_Dugtrio), - STILL_FRONT_PIC(MEOWTH, gMonStillFrontPic_Meowth), - STILL_FRONT_PIC(PERSIAN, gMonStillFrontPic_Persian), - STILL_FRONT_PIC(PSYDUCK, gMonStillFrontPic_Psyduck), - STILL_FRONT_PIC(GOLDUCK, gMonStillFrontPic_Golduck), - STILL_FRONT_PIC(MANKEY, gMonStillFrontPic_Mankey), - STILL_FRONT_PIC(PRIMEAPE, gMonStillFrontPic_Primeape), - STILL_FRONT_PIC(GROWLITHE, gMonStillFrontPic_Growlithe), - STILL_FRONT_PIC(ARCANINE, gMonStillFrontPic_Arcanine), - STILL_FRONT_PIC(POLIWAG, gMonStillFrontPic_Poliwag), - STILL_FRONT_PIC(POLIWHIRL, gMonStillFrontPic_Poliwhirl), - STILL_FRONT_PIC(POLIWRATH, gMonStillFrontPic_Poliwrath), - STILL_FRONT_PIC(ABRA, gMonStillFrontPic_Abra), - STILL_FRONT_PIC(KADABRA, gMonStillFrontPic_Kadabra), - STILL_FRONT_PIC(ALAKAZAM, gMonStillFrontPic_Alakazam), - STILL_FRONT_PIC(MACHOP, gMonStillFrontPic_Machop), - STILL_FRONT_PIC(MACHOKE, gMonStillFrontPic_Machoke), - STILL_FRONT_PIC(MACHAMP, gMonStillFrontPic_Machamp), - STILL_FRONT_PIC(BELLSPROUT, gMonStillFrontPic_Bellsprout), - STILL_FRONT_PIC(WEEPINBELL, gMonStillFrontPic_Weepinbell), - STILL_FRONT_PIC(VICTREEBEL, gMonStillFrontPic_Victreebel), - STILL_FRONT_PIC(TENTACOOL, gMonStillFrontPic_Tentacool), - STILL_FRONT_PIC(TENTACRUEL, gMonStillFrontPic_Tentacruel), - STILL_FRONT_PIC(GEODUDE, gMonStillFrontPic_Geodude), - STILL_FRONT_PIC(GRAVELER, gMonStillFrontPic_Graveler), - STILL_FRONT_PIC(GOLEM, gMonStillFrontPic_Golem), - STILL_FRONT_PIC(PONYTA, gMonStillFrontPic_Ponyta), - STILL_FRONT_PIC(RAPIDASH, gMonStillFrontPic_Rapidash), - STILL_FRONT_PIC(SLOWPOKE, gMonStillFrontPic_Slowpoke), - STILL_FRONT_PIC(SLOWBRO, gMonStillFrontPic_Slowbro), - STILL_FRONT_PIC(MAGNEMITE, gMonStillFrontPic_Magnemite), - STILL_FRONT_PIC(MAGNETON, gMonStillFrontPic_Magneton), - STILL_FRONT_PIC(FARFETCHD, gMonStillFrontPic_Farfetchd), - STILL_FRONT_PIC(DODUO, gMonStillFrontPic_Doduo), - STILL_FRONT_PIC(DODRIO, gMonStillFrontPic_Dodrio), - STILL_FRONT_PIC(SEEL, gMonStillFrontPic_Seel), - STILL_FRONT_PIC(DEWGONG, gMonStillFrontPic_Dewgong), - STILL_FRONT_PIC(GRIMER, gMonStillFrontPic_Grimer), - STILL_FRONT_PIC(MUK, gMonStillFrontPic_Muk), - STILL_FRONT_PIC(SHELLDER, gMonStillFrontPic_Shellder), - STILL_FRONT_PIC(CLOYSTER, gMonStillFrontPic_Cloyster), - STILL_FRONT_PIC(GASTLY, gMonStillFrontPic_Gastly), - STILL_FRONT_PIC(HAUNTER, gMonStillFrontPic_Haunter), - STILL_FRONT_PIC(GENGAR, gMonStillFrontPic_Gengar), - STILL_FRONT_PIC(ONIX, gMonStillFrontPic_Onix), - STILL_FRONT_PIC(DROWZEE, gMonStillFrontPic_Drowzee), - STILL_FRONT_PIC(HYPNO, gMonStillFrontPic_Hypno), - STILL_FRONT_PIC(KRABBY, gMonStillFrontPic_Krabby), - STILL_FRONT_PIC(KINGLER, gMonStillFrontPic_Kingler), - STILL_FRONT_PIC(VOLTORB, gMonStillFrontPic_Voltorb), - STILL_FRONT_PIC(ELECTRODE, gMonStillFrontPic_Electrode), - STILL_FRONT_PIC(EXEGGCUTE, gMonStillFrontPic_Exeggcute), - STILL_FRONT_PIC(EXEGGUTOR, gMonStillFrontPic_Exeggutor), - STILL_FRONT_PIC(CUBONE, gMonStillFrontPic_Cubone), - STILL_FRONT_PIC(MAROWAK, gMonStillFrontPic_Marowak), - STILL_FRONT_PIC(HITMONLEE, gMonStillFrontPic_Hitmonlee), - STILL_FRONT_PIC(HITMONCHAN, gMonStillFrontPic_Hitmonchan), - STILL_FRONT_PIC(LICKITUNG, gMonStillFrontPic_Lickitung), - STILL_FRONT_PIC(KOFFING, gMonStillFrontPic_Koffing), - STILL_FRONT_PIC(WEEZING, gMonStillFrontPic_Weezing), - STILL_FRONT_PIC(RHYHORN, gMonStillFrontPic_Rhyhorn), - STILL_FRONT_PIC(RHYDON, gMonStillFrontPic_Rhydon), - STILL_FRONT_PIC(CHANSEY, gMonStillFrontPic_Chansey), - STILL_FRONT_PIC(TANGELA, gMonStillFrontPic_Tangela), - STILL_FRONT_PIC(KANGASKHAN, gMonStillFrontPic_Kangaskhan), - STILL_FRONT_PIC(HORSEA, gMonStillFrontPic_Horsea), - STILL_FRONT_PIC(SEADRA, gMonStillFrontPic_Seadra), - STILL_FRONT_PIC(GOLDEEN, gMonStillFrontPic_Goldeen), - STILL_FRONT_PIC(SEAKING, gMonStillFrontPic_Seaking), - STILL_FRONT_PIC(STARYU, gMonStillFrontPic_Staryu), - STILL_FRONT_PIC(STARMIE, gMonStillFrontPic_Starmie), - STILL_FRONT_PIC(MR_MIME, gMonStillFrontPic_Mrmime), - STILL_FRONT_PIC(SCYTHER, gMonStillFrontPic_Scyther), - STILL_FRONT_PIC(JYNX, gMonStillFrontPic_Jynx), - STILL_FRONT_PIC(ELECTABUZZ, gMonStillFrontPic_Electabuzz), - STILL_FRONT_PIC(MAGMAR, gMonStillFrontPic_Magmar), - STILL_FRONT_PIC(PINSIR, gMonStillFrontPic_Pinsir), - STILL_FRONT_PIC(TAUROS, gMonStillFrontPic_Tauros), - STILL_FRONT_PIC(MAGIKARP, gMonStillFrontPic_Magikarp), - STILL_FRONT_PIC(GYARADOS, gMonStillFrontPic_Gyarados), - STILL_FRONT_PIC(LAPRAS, gMonStillFrontPic_Lapras), - STILL_FRONT_PIC(DITTO, gMonStillFrontPic_Ditto), - STILL_FRONT_PIC(EEVEE, gMonStillFrontPic_Eevee), - STILL_FRONT_PIC(VAPOREON, gMonStillFrontPic_Vaporeon), - STILL_FRONT_PIC(JOLTEON, gMonStillFrontPic_Jolteon), - STILL_FRONT_PIC(FLAREON, gMonStillFrontPic_Flareon), - STILL_FRONT_PIC(PORYGON, gMonStillFrontPic_Porygon), - STILL_FRONT_PIC(OMANYTE, gMonStillFrontPic_Omanyte), - STILL_FRONT_PIC(OMASTAR, gMonStillFrontPic_Omastar), - STILL_FRONT_PIC(KABUTO, gMonStillFrontPic_Kabuto), - STILL_FRONT_PIC(KABUTOPS, gMonStillFrontPic_Kabutops), - STILL_FRONT_PIC(AERODACTYL, gMonStillFrontPic_Aerodactyl), - STILL_FRONT_PIC(SNORLAX, gMonStillFrontPic_Snorlax), - STILL_FRONT_PIC(ARTICUNO, gMonStillFrontPic_Articuno), - STILL_FRONT_PIC(ZAPDOS, gMonStillFrontPic_Zapdos), - STILL_FRONT_PIC(MOLTRES, gMonStillFrontPic_Moltres), - STILL_FRONT_PIC(DRATINI, gMonStillFrontPic_Dratini), - STILL_FRONT_PIC(DRAGONAIR, gMonStillFrontPic_Dragonair), - STILL_FRONT_PIC(DRAGONITE, gMonStillFrontPic_Dragonite), - STILL_FRONT_PIC(MEWTWO, gMonStillFrontPic_Mewtwo), - STILL_FRONT_PIC(MEW, gMonStillFrontPic_Mew), + SPECIES_SPRITE(NONE, gMonStillFrontPic_CircledQuestionMark), + SPECIES_SPRITE(BULBASAUR, gMonStillFrontPic_Bulbasaur), + SPECIES_SPRITE(IVYSAUR, gMonStillFrontPic_Ivysaur), + SPECIES_SPRITE(VENUSAUR, gMonStillFrontPic_Venusaur), + SPECIES_SPRITE(CHARMANDER, gMonStillFrontPic_Charmander), + SPECIES_SPRITE(CHARMELEON, gMonStillFrontPic_Charmeleon), + SPECIES_SPRITE(CHARIZARD, gMonStillFrontPic_Charizard), + SPECIES_SPRITE(SQUIRTLE, gMonStillFrontPic_Squirtle), + SPECIES_SPRITE(WARTORTLE, gMonStillFrontPic_Wartortle), + SPECIES_SPRITE(BLASTOISE, gMonStillFrontPic_Blastoise), + SPECIES_SPRITE(CATERPIE, gMonStillFrontPic_Caterpie), + SPECIES_SPRITE(METAPOD, gMonStillFrontPic_Metapod), + SPECIES_SPRITE(BUTTERFREE, gMonStillFrontPic_Butterfree), + SPECIES_SPRITE(WEEDLE, gMonStillFrontPic_Weedle), + SPECIES_SPRITE(KAKUNA, gMonStillFrontPic_Kakuna), + SPECIES_SPRITE(BEEDRILL, gMonStillFrontPic_Beedrill), + SPECIES_SPRITE(PIDGEY, gMonStillFrontPic_Pidgey), + SPECIES_SPRITE(PIDGEOTTO, gMonStillFrontPic_Pidgeotto), + SPECIES_SPRITE(PIDGEOT, gMonStillFrontPic_Pidgeot), + SPECIES_SPRITE(RATTATA, gMonStillFrontPic_Rattata), + SPECIES_SPRITE(RATICATE, gMonStillFrontPic_Raticate), + SPECIES_SPRITE(SPEAROW, gMonStillFrontPic_Spearow), + SPECIES_SPRITE(FEAROW, gMonStillFrontPic_Fearow), + SPECIES_SPRITE(EKANS, gMonStillFrontPic_Ekans), + SPECIES_SPRITE(ARBOK, gMonStillFrontPic_Arbok), + SPECIES_SPRITE(PIKACHU, gMonStillFrontPic_Pikachu), + SPECIES_SPRITE(RAICHU, gMonStillFrontPic_Raichu), + SPECIES_SPRITE(SANDSHREW, gMonStillFrontPic_Sandshrew), + SPECIES_SPRITE(SANDSLASH, gMonStillFrontPic_Sandslash), + SPECIES_SPRITE(NIDORAN_F, gMonStillFrontPic_NidoranF), + SPECIES_SPRITE(NIDORINA, gMonStillFrontPic_Nidorina), + SPECIES_SPRITE(NIDOQUEEN, gMonStillFrontPic_Nidoqueen), + SPECIES_SPRITE(NIDORAN_M, gMonStillFrontPic_NidoranM), + SPECIES_SPRITE(NIDORINO, gMonStillFrontPic_Nidorino), + SPECIES_SPRITE(NIDOKING, gMonStillFrontPic_Nidoking), + SPECIES_SPRITE(CLEFAIRY, gMonStillFrontPic_Clefairy), + SPECIES_SPRITE(CLEFABLE, gMonStillFrontPic_Clefable), + SPECIES_SPRITE(VULPIX, gMonStillFrontPic_Vulpix), + SPECIES_SPRITE(NINETALES, gMonStillFrontPic_Ninetales), + SPECIES_SPRITE(JIGGLYPUFF, gMonStillFrontPic_Jigglypuff), + SPECIES_SPRITE(WIGGLYTUFF, gMonStillFrontPic_Wigglytuff), + SPECIES_SPRITE(ZUBAT, gMonStillFrontPic_Zubat), + SPECIES_SPRITE(GOLBAT, gMonStillFrontPic_Golbat), + SPECIES_SPRITE(ODDISH, gMonStillFrontPic_Oddish), + SPECIES_SPRITE(GLOOM, gMonStillFrontPic_Gloom), + SPECIES_SPRITE(VILEPLUME, gMonStillFrontPic_Vileplume), + SPECIES_SPRITE(PARAS, gMonStillFrontPic_Paras), + SPECIES_SPRITE(PARASECT, gMonStillFrontPic_Parasect), + SPECIES_SPRITE(VENONAT, gMonStillFrontPic_Venonat), + SPECIES_SPRITE(VENOMOTH, gMonStillFrontPic_Venomoth), + SPECIES_SPRITE(DIGLETT, gMonStillFrontPic_Diglett), + SPECIES_SPRITE(DUGTRIO, gMonStillFrontPic_Dugtrio), + SPECIES_SPRITE(MEOWTH, gMonStillFrontPic_Meowth), + SPECIES_SPRITE(PERSIAN, gMonStillFrontPic_Persian), + SPECIES_SPRITE(PSYDUCK, gMonStillFrontPic_Psyduck), + SPECIES_SPRITE(GOLDUCK, gMonStillFrontPic_Golduck), + SPECIES_SPRITE(MANKEY, gMonStillFrontPic_Mankey), + SPECIES_SPRITE(PRIMEAPE, gMonStillFrontPic_Primeape), + SPECIES_SPRITE(GROWLITHE, gMonStillFrontPic_Growlithe), + SPECIES_SPRITE(ARCANINE, gMonStillFrontPic_Arcanine), + SPECIES_SPRITE(POLIWAG, gMonStillFrontPic_Poliwag), + SPECIES_SPRITE(POLIWHIRL, gMonStillFrontPic_Poliwhirl), + SPECIES_SPRITE(POLIWRATH, gMonStillFrontPic_Poliwrath), + SPECIES_SPRITE(ABRA, gMonStillFrontPic_Abra), + SPECIES_SPRITE(KADABRA, gMonStillFrontPic_Kadabra), + SPECIES_SPRITE(ALAKAZAM, gMonStillFrontPic_Alakazam), + SPECIES_SPRITE(MACHOP, gMonStillFrontPic_Machop), + SPECIES_SPRITE(MACHOKE, gMonStillFrontPic_Machoke), + SPECIES_SPRITE(MACHAMP, gMonStillFrontPic_Machamp), + SPECIES_SPRITE(BELLSPROUT, gMonStillFrontPic_Bellsprout), + SPECIES_SPRITE(WEEPINBELL, gMonStillFrontPic_Weepinbell), + SPECIES_SPRITE(VICTREEBEL, gMonStillFrontPic_Victreebel), + SPECIES_SPRITE(TENTACOOL, gMonStillFrontPic_Tentacool), + SPECIES_SPRITE(TENTACRUEL, gMonStillFrontPic_Tentacruel), + SPECIES_SPRITE(GEODUDE, gMonStillFrontPic_Geodude), + SPECIES_SPRITE(GRAVELER, gMonStillFrontPic_Graveler), + SPECIES_SPRITE(GOLEM, gMonStillFrontPic_Golem), + SPECIES_SPRITE(PONYTA, gMonStillFrontPic_Ponyta), + SPECIES_SPRITE(RAPIDASH, gMonStillFrontPic_Rapidash), + SPECIES_SPRITE(SLOWPOKE, gMonStillFrontPic_Slowpoke), + SPECIES_SPRITE(SLOWBRO, gMonStillFrontPic_Slowbro), + SPECIES_SPRITE(MAGNEMITE, gMonStillFrontPic_Magnemite), + SPECIES_SPRITE(MAGNETON, gMonStillFrontPic_Magneton), + SPECIES_SPRITE(FARFETCHD, gMonStillFrontPic_Farfetchd), + SPECIES_SPRITE(DODUO, gMonStillFrontPic_Doduo), + SPECIES_SPRITE(DODRIO, gMonStillFrontPic_Dodrio), + SPECIES_SPRITE(SEEL, gMonStillFrontPic_Seel), + SPECIES_SPRITE(DEWGONG, gMonStillFrontPic_Dewgong), + SPECIES_SPRITE(GRIMER, gMonStillFrontPic_Grimer), + SPECIES_SPRITE(MUK, gMonStillFrontPic_Muk), + SPECIES_SPRITE(SHELLDER, gMonStillFrontPic_Shellder), + SPECIES_SPRITE(CLOYSTER, gMonStillFrontPic_Cloyster), + SPECIES_SPRITE(GASTLY, gMonStillFrontPic_Gastly), + SPECIES_SPRITE(HAUNTER, gMonStillFrontPic_Haunter), + SPECIES_SPRITE(GENGAR, gMonStillFrontPic_Gengar), + SPECIES_SPRITE(ONIX, gMonStillFrontPic_Onix), + SPECIES_SPRITE(DROWZEE, gMonStillFrontPic_Drowzee), + SPECIES_SPRITE(HYPNO, gMonStillFrontPic_Hypno), + SPECIES_SPRITE(KRABBY, gMonStillFrontPic_Krabby), + SPECIES_SPRITE(KINGLER, gMonStillFrontPic_Kingler), + SPECIES_SPRITE(VOLTORB, gMonStillFrontPic_Voltorb), + SPECIES_SPRITE(ELECTRODE, gMonStillFrontPic_Electrode), + SPECIES_SPRITE(EXEGGCUTE, gMonStillFrontPic_Exeggcute), + SPECIES_SPRITE(EXEGGUTOR, gMonStillFrontPic_Exeggutor), + SPECIES_SPRITE(CUBONE, gMonStillFrontPic_Cubone), + SPECIES_SPRITE(MAROWAK, gMonStillFrontPic_Marowak), + SPECIES_SPRITE(HITMONLEE, gMonStillFrontPic_Hitmonlee), + SPECIES_SPRITE(HITMONCHAN, gMonStillFrontPic_Hitmonchan), + SPECIES_SPRITE(LICKITUNG, gMonStillFrontPic_Lickitung), + SPECIES_SPRITE(KOFFING, gMonStillFrontPic_Koffing), + SPECIES_SPRITE(WEEZING, gMonStillFrontPic_Weezing), + SPECIES_SPRITE(RHYHORN, gMonStillFrontPic_Rhyhorn), + SPECIES_SPRITE(RHYDON, gMonStillFrontPic_Rhydon), + SPECIES_SPRITE(CHANSEY, gMonStillFrontPic_Chansey), + SPECIES_SPRITE(TANGELA, gMonStillFrontPic_Tangela), + SPECIES_SPRITE(KANGASKHAN, gMonStillFrontPic_Kangaskhan), + SPECIES_SPRITE(HORSEA, gMonStillFrontPic_Horsea), + SPECIES_SPRITE(SEADRA, gMonStillFrontPic_Seadra), + SPECIES_SPRITE(GOLDEEN, gMonStillFrontPic_Goldeen), + SPECIES_SPRITE(SEAKING, gMonStillFrontPic_Seaking), + SPECIES_SPRITE(STARYU, gMonStillFrontPic_Staryu), + SPECIES_SPRITE(STARMIE, gMonStillFrontPic_Starmie), + SPECIES_SPRITE(MR_MIME, gMonStillFrontPic_Mrmime), + SPECIES_SPRITE(SCYTHER, gMonStillFrontPic_Scyther), + SPECIES_SPRITE(JYNX, gMonStillFrontPic_Jynx), + SPECIES_SPRITE(ELECTABUZZ, gMonStillFrontPic_Electabuzz), + SPECIES_SPRITE(MAGMAR, gMonStillFrontPic_Magmar), + SPECIES_SPRITE(PINSIR, gMonStillFrontPic_Pinsir), + SPECIES_SPRITE(TAUROS, gMonStillFrontPic_Tauros), + SPECIES_SPRITE(MAGIKARP, gMonStillFrontPic_Magikarp), + SPECIES_SPRITE(GYARADOS, gMonStillFrontPic_Gyarados), + SPECIES_SPRITE(LAPRAS, gMonStillFrontPic_Lapras), + SPECIES_SPRITE(DITTO, gMonStillFrontPic_Ditto), + SPECIES_SPRITE(EEVEE, gMonStillFrontPic_Eevee), + SPECIES_SPRITE(VAPOREON, gMonStillFrontPic_Vaporeon), + SPECIES_SPRITE(JOLTEON, gMonStillFrontPic_Jolteon), + SPECIES_SPRITE(FLAREON, gMonStillFrontPic_Flareon), + SPECIES_SPRITE(PORYGON, gMonStillFrontPic_Porygon), + SPECIES_SPRITE(OMANYTE, gMonStillFrontPic_Omanyte), + SPECIES_SPRITE(OMASTAR, gMonStillFrontPic_Omastar), + SPECIES_SPRITE(KABUTO, gMonStillFrontPic_Kabuto), + SPECIES_SPRITE(KABUTOPS, gMonStillFrontPic_Kabutops), + SPECIES_SPRITE(AERODACTYL, gMonStillFrontPic_Aerodactyl), + SPECIES_SPRITE(SNORLAX, gMonStillFrontPic_Snorlax), + SPECIES_SPRITE(ARTICUNO, gMonStillFrontPic_Articuno), + SPECIES_SPRITE(ZAPDOS, gMonStillFrontPic_Zapdos), + SPECIES_SPRITE(MOLTRES, gMonStillFrontPic_Moltres), + SPECIES_SPRITE(DRATINI, gMonStillFrontPic_Dratini), + SPECIES_SPRITE(DRAGONAIR, gMonStillFrontPic_Dragonair), + SPECIES_SPRITE(DRAGONITE, gMonStillFrontPic_Dragonite), + SPECIES_SPRITE(MEWTWO, gMonStillFrontPic_Mewtwo), + SPECIES_SPRITE(MEW, gMonStillFrontPic_Mew), // Gen II - STILL_FRONT_PIC(CHIKORITA, gMonStillFrontPic_Chikorita), - STILL_FRONT_PIC(BAYLEEF, gMonStillFrontPic_Bayleef), - STILL_FRONT_PIC(MEGANIUM, gMonStillFrontPic_Meganium), - STILL_FRONT_PIC(CYNDAQUIL, gMonStillFrontPic_Cyndaquil), - STILL_FRONT_PIC(QUILAVA, gMonStillFrontPic_Quilava), - STILL_FRONT_PIC(TYPHLOSION, gMonStillFrontPic_Typhlosion), - STILL_FRONT_PIC(TOTODILE, gMonStillFrontPic_Totodile), - STILL_FRONT_PIC(CROCONAW, gMonStillFrontPic_Croconaw), - STILL_FRONT_PIC(FERALIGATR, gMonStillFrontPic_Feraligatr), - STILL_FRONT_PIC(SENTRET, gMonStillFrontPic_Sentret), - STILL_FRONT_PIC(FURRET, gMonStillFrontPic_Furret), - STILL_FRONT_PIC(HOOTHOOT, gMonStillFrontPic_Hoothoot), - STILL_FRONT_PIC(NOCTOWL, gMonStillFrontPic_Noctowl), - STILL_FRONT_PIC(LEDYBA, gMonStillFrontPic_Ledyba), - STILL_FRONT_PIC(LEDIAN, gMonStillFrontPic_Ledian), - STILL_FRONT_PIC(SPINARAK, gMonStillFrontPic_Spinarak), - STILL_FRONT_PIC(ARIADOS, gMonStillFrontPic_Ariados), - STILL_FRONT_PIC(CROBAT, gMonStillFrontPic_Crobat), - STILL_FRONT_PIC(CHINCHOU, gMonStillFrontPic_Chinchou), - STILL_FRONT_PIC(LANTURN, gMonStillFrontPic_Lanturn), - STILL_FRONT_PIC(PICHU, gMonStillFrontPic_Pichu), - STILL_FRONT_PIC(CLEFFA, gMonStillFrontPic_Cleffa), - STILL_FRONT_PIC(IGGLYBUFF, gMonStillFrontPic_Igglybuff), - STILL_FRONT_PIC(TOGEPI, gMonStillFrontPic_Togepi), - STILL_FRONT_PIC(TOGETIC, gMonStillFrontPic_Togetic), - STILL_FRONT_PIC(NATU, gMonStillFrontPic_Natu), - STILL_FRONT_PIC(XATU, gMonStillFrontPic_Xatu), - STILL_FRONT_PIC(MAREEP, gMonStillFrontPic_Mareep), - STILL_FRONT_PIC(FLAAFFY, gMonStillFrontPic_Flaaffy), - STILL_FRONT_PIC(AMPHAROS, gMonStillFrontPic_Ampharos), - STILL_FRONT_PIC(BELLOSSOM, gMonStillFrontPic_Bellossom), - STILL_FRONT_PIC(MARILL, gMonStillFrontPic_Marill), - STILL_FRONT_PIC(AZUMARILL, gMonStillFrontPic_Azumarill), - STILL_FRONT_PIC(SUDOWOODO, gMonStillFrontPic_Sudowoodo), - STILL_FRONT_PIC(POLITOED, gMonStillFrontPic_Politoed), - STILL_FRONT_PIC(HOPPIP, gMonStillFrontPic_Hoppip), - STILL_FRONT_PIC(SKIPLOOM, gMonStillFrontPic_Skiploom), - STILL_FRONT_PIC(JUMPLUFF, gMonStillFrontPic_Jumpluff), - STILL_FRONT_PIC(AIPOM, gMonStillFrontPic_Aipom), - STILL_FRONT_PIC(SUNKERN, gMonStillFrontPic_Sunkern), - STILL_FRONT_PIC(SUNFLORA, gMonStillFrontPic_Sunflora), - STILL_FRONT_PIC(YANMA, gMonStillFrontPic_Yanma), - STILL_FRONT_PIC(WOOPER, gMonStillFrontPic_Wooper), - STILL_FRONT_PIC(QUAGSIRE, gMonStillFrontPic_Quagsire), - STILL_FRONT_PIC(ESPEON, gMonStillFrontPic_Espeon), - STILL_FRONT_PIC(UMBREON, gMonStillFrontPic_Umbreon), - STILL_FRONT_PIC(MURKROW, gMonStillFrontPic_Murkrow), - STILL_FRONT_PIC(SLOWKING, gMonStillFrontPic_Slowking), - STILL_FRONT_PIC(MISDREAVUS, gMonStillFrontPic_Misdreavus), - STILL_FRONT_PIC(UNOWN, gMonStillFrontPic_UnownA), - STILL_FRONT_PIC(WOBBUFFET, gMonStillFrontPic_Wobbuffet), - STILL_FRONT_PIC(GIRAFARIG, gMonStillFrontPic_Girafarig), - STILL_FRONT_PIC(PINECO, gMonStillFrontPic_Pineco), - STILL_FRONT_PIC(FORRETRESS, gMonStillFrontPic_Forretress), - STILL_FRONT_PIC(DUNSPARCE, gMonStillFrontPic_Dunsparce), - STILL_FRONT_PIC(GLIGAR, gMonStillFrontPic_Gligar), - STILL_FRONT_PIC(STEELIX, gMonStillFrontPic_Steelix), - STILL_FRONT_PIC(SNUBBULL, gMonStillFrontPic_Snubbull), - STILL_FRONT_PIC(GRANBULL, gMonStillFrontPic_Granbull), - STILL_FRONT_PIC(QWILFISH, gMonStillFrontPic_Qwilfish), - STILL_FRONT_PIC(SCIZOR, gMonStillFrontPic_Scizor), - STILL_FRONT_PIC(SHUCKLE, gMonStillFrontPic_Shuckle), - STILL_FRONT_PIC(HERACROSS, gMonStillFrontPic_Heracross), - STILL_FRONT_PIC(SNEASEL, gMonStillFrontPic_Sneasel), - STILL_FRONT_PIC(TEDDIURSA, gMonStillFrontPic_Teddiursa), - STILL_FRONT_PIC(URSARING, gMonStillFrontPic_Ursaring), - STILL_FRONT_PIC(SLUGMA, gMonStillFrontPic_Slugma), - STILL_FRONT_PIC(MAGCARGO, gMonStillFrontPic_Magcargo), - STILL_FRONT_PIC(SWINUB, gMonStillFrontPic_Swinub), - STILL_FRONT_PIC(PILOSWINE, gMonStillFrontPic_Piloswine), - STILL_FRONT_PIC(CORSOLA, gMonStillFrontPic_Corsola), - STILL_FRONT_PIC(REMORAID, gMonStillFrontPic_Remoraid), - STILL_FRONT_PIC(OCTILLERY, gMonStillFrontPic_Octillery), - STILL_FRONT_PIC(DELIBIRD, gMonStillFrontPic_Delibird), - STILL_FRONT_PIC(MANTINE, gMonStillFrontPic_Mantine), - STILL_FRONT_PIC(SKARMORY, gMonStillFrontPic_Skarmory), - STILL_FRONT_PIC(HOUNDOUR, gMonStillFrontPic_Houndour), - STILL_FRONT_PIC(HOUNDOOM, gMonStillFrontPic_Houndoom), - STILL_FRONT_PIC(KINGDRA, gMonStillFrontPic_Kingdra), - STILL_FRONT_PIC(PHANPY, gMonStillFrontPic_Phanpy), - STILL_FRONT_PIC(DONPHAN, gMonStillFrontPic_Donphan), - STILL_FRONT_PIC(PORYGON2, gMonStillFrontPic_Porygon2), - STILL_FRONT_PIC(STANTLER, gMonStillFrontPic_Stantler), - STILL_FRONT_PIC(SMEARGLE, gMonStillFrontPic_Smeargle), - STILL_FRONT_PIC(TYROGUE, gMonStillFrontPic_Tyrogue), - STILL_FRONT_PIC(HITMONTOP, gMonStillFrontPic_Hitmontop), - STILL_FRONT_PIC(SMOOCHUM, gMonStillFrontPic_Smoochum), - STILL_FRONT_PIC(ELEKID, gMonStillFrontPic_Elekid), - STILL_FRONT_PIC(MAGBY, gMonStillFrontPic_Magby), - STILL_FRONT_PIC(MILTANK, gMonStillFrontPic_Miltank), - STILL_FRONT_PIC(BLISSEY, gMonStillFrontPic_Blissey), - STILL_FRONT_PIC(RAIKOU, gMonStillFrontPic_Raikou), - STILL_FRONT_PIC(ENTEI, gMonStillFrontPic_Entei), - STILL_FRONT_PIC(SUICUNE, gMonStillFrontPic_Suicune), - STILL_FRONT_PIC(LARVITAR, gMonStillFrontPic_Larvitar), - STILL_FRONT_PIC(PUPITAR, gMonStillFrontPic_Pupitar), - STILL_FRONT_PIC(TYRANITAR, gMonStillFrontPic_Tyranitar), - STILL_FRONT_PIC(LUGIA, gMonStillFrontPic_Lugia), - STILL_FRONT_PIC(HO_OH, gMonStillFrontPic_HoOh), - STILL_FRONT_PIC(CELEBI, gMonStillFrontPic_Celebi), + SPECIES_SPRITE(CHIKORITA, gMonStillFrontPic_Chikorita), + SPECIES_SPRITE(BAYLEEF, gMonStillFrontPic_Bayleef), + SPECIES_SPRITE(MEGANIUM, gMonStillFrontPic_Meganium), + SPECIES_SPRITE(CYNDAQUIL, gMonStillFrontPic_Cyndaquil), + SPECIES_SPRITE(QUILAVA, gMonStillFrontPic_Quilava), + SPECIES_SPRITE(TYPHLOSION, gMonStillFrontPic_Typhlosion), + SPECIES_SPRITE(TOTODILE, gMonStillFrontPic_Totodile), + SPECIES_SPRITE(CROCONAW, gMonStillFrontPic_Croconaw), + SPECIES_SPRITE(FERALIGATR, gMonStillFrontPic_Feraligatr), + SPECIES_SPRITE(SENTRET, gMonStillFrontPic_Sentret), + SPECIES_SPRITE(FURRET, gMonStillFrontPic_Furret), + SPECIES_SPRITE(HOOTHOOT, gMonStillFrontPic_Hoothoot), + SPECIES_SPRITE(NOCTOWL, gMonStillFrontPic_Noctowl), + SPECIES_SPRITE(LEDYBA, gMonStillFrontPic_Ledyba), + SPECIES_SPRITE(LEDIAN, gMonStillFrontPic_Ledian), + SPECIES_SPRITE(SPINARAK, gMonStillFrontPic_Spinarak), + SPECIES_SPRITE(ARIADOS, gMonStillFrontPic_Ariados), + SPECIES_SPRITE(CROBAT, gMonStillFrontPic_Crobat), + SPECIES_SPRITE(CHINCHOU, gMonStillFrontPic_Chinchou), + SPECIES_SPRITE(LANTURN, gMonStillFrontPic_Lanturn), + SPECIES_SPRITE(PICHU, gMonStillFrontPic_Pichu), + SPECIES_SPRITE(CLEFFA, gMonStillFrontPic_Cleffa), + SPECIES_SPRITE(IGGLYBUFF, gMonStillFrontPic_Igglybuff), + SPECIES_SPRITE(TOGEPI, gMonStillFrontPic_Togepi), + SPECIES_SPRITE(TOGETIC, gMonStillFrontPic_Togetic), + SPECIES_SPRITE(NATU, gMonStillFrontPic_Natu), + SPECIES_SPRITE(XATU, gMonStillFrontPic_Xatu), + SPECIES_SPRITE(MAREEP, gMonStillFrontPic_Mareep), + SPECIES_SPRITE(FLAAFFY, gMonStillFrontPic_Flaaffy), + SPECIES_SPRITE(AMPHAROS, gMonStillFrontPic_Ampharos), + SPECIES_SPRITE(BELLOSSOM, gMonStillFrontPic_Bellossom), + SPECIES_SPRITE(MARILL, gMonStillFrontPic_Marill), + SPECIES_SPRITE(AZUMARILL, gMonStillFrontPic_Azumarill), + SPECIES_SPRITE(SUDOWOODO, gMonStillFrontPic_Sudowoodo), + SPECIES_SPRITE(POLITOED, gMonStillFrontPic_Politoed), + SPECIES_SPRITE(HOPPIP, gMonStillFrontPic_Hoppip), + SPECIES_SPRITE(SKIPLOOM, gMonStillFrontPic_Skiploom), + SPECIES_SPRITE(JUMPLUFF, gMonStillFrontPic_Jumpluff), + SPECIES_SPRITE(AIPOM, gMonStillFrontPic_Aipom), + SPECIES_SPRITE(SUNKERN, gMonStillFrontPic_Sunkern), + SPECIES_SPRITE(SUNFLORA, gMonStillFrontPic_Sunflora), + SPECIES_SPRITE(YANMA, gMonStillFrontPic_Yanma), + SPECIES_SPRITE(WOOPER, gMonStillFrontPic_Wooper), + SPECIES_SPRITE(QUAGSIRE, gMonStillFrontPic_Quagsire), + SPECIES_SPRITE(ESPEON, gMonStillFrontPic_Espeon), + SPECIES_SPRITE(UMBREON, gMonStillFrontPic_Umbreon), + SPECIES_SPRITE(MURKROW, gMonStillFrontPic_Murkrow), + SPECIES_SPRITE(SLOWKING, gMonStillFrontPic_Slowking), + SPECIES_SPRITE(MISDREAVUS, gMonStillFrontPic_Misdreavus), + SPECIES_SPRITE(UNOWN, gMonStillFrontPic_UnownA), + SPECIES_SPRITE(WOBBUFFET, gMonStillFrontPic_Wobbuffet), + SPECIES_SPRITE(GIRAFARIG, gMonStillFrontPic_Girafarig), + SPECIES_SPRITE(PINECO, gMonStillFrontPic_Pineco), + SPECIES_SPRITE(FORRETRESS, gMonStillFrontPic_Forretress), + SPECIES_SPRITE(DUNSPARCE, gMonStillFrontPic_Dunsparce), + SPECIES_SPRITE(GLIGAR, gMonStillFrontPic_Gligar), + SPECIES_SPRITE(STEELIX, gMonStillFrontPic_Steelix), + SPECIES_SPRITE(SNUBBULL, gMonStillFrontPic_Snubbull), + SPECIES_SPRITE(GRANBULL, gMonStillFrontPic_Granbull), + SPECIES_SPRITE(QWILFISH, gMonStillFrontPic_Qwilfish), + SPECIES_SPRITE(SCIZOR, gMonStillFrontPic_Scizor), + SPECIES_SPRITE(SHUCKLE, gMonStillFrontPic_Shuckle), + SPECIES_SPRITE(HERACROSS, gMonStillFrontPic_Heracross), + SPECIES_SPRITE(SNEASEL, gMonStillFrontPic_Sneasel), + SPECIES_SPRITE(TEDDIURSA, gMonStillFrontPic_Teddiursa), + SPECIES_SPRITE(URSARING, gMonStillFrontPic_Ursaring), + SPECIES_SPRITE(SLUGMA, gMonStillFrontPic_Slugma), + SPECIES_SPRITE(MAGCARGO, gMonStillFrontPic_Magcargo), + SPECIES_SPRITE(SWINUB, gMonStillFrontPic_Swinub), + SPECIES_SPRITE(PILOSWINE, gMonStillFrontPic_Piloswine), + SPECIES_SPRITE(CORSOLA, gMonStillFrontPic_Corsola), + SPECIES_SPRITE(REMORAID, gMonStillFrontPic_Remoraid), + SPECIES_SPRITE(OCTILLERY, gMonStillFrontPic_Octillery), + SPECIES_SPRITE(DELIBIRD, gMonStillFrontPic_Delibird), + SPECIES_SPRITE(MANTINE, gMonStillFrontPic_Mantine), + SPECIES_SPRITE(SKARMORY, gMonStillFrontPic_Skarmory), + SPECIES_SPRITE(HOUNDOUR, gMonStillFrontPic_Houndour), + SPECIES_SPRITE(HOUNDOOM, gMonStillFrontPic_Houndoom), + SPECIES_SPRITE(KINGDRA, gMonStillFrontPic_Kingdra), + SPECIES_SPRITE(PHANPY, gMonStillFrontPic_Phanpy), + SPECIES_SPRITE(DONPHAN, gMonStillFrontPic_Donphan), + SPECIES_SPRITE(PORYGON2, gMonStillFrontPic_Porygon2), + SPECIES_SPRITE(STANTLER, gMonStillFrontPic_Stantler), + SPECIES_SPRITE(SMEARGLE, gMonStillFrontPic_Smeargle), + SPECIES_SPRITE(TYROGUE, gMonStillFrontPic_Tyrogue), + SPECIES_SPRITE(HITMONTOP, gMonStillFrontPic_Hitmontop), + SPECIES_SPRITE(SMOOCHUM, gMonStillFrontPic_Smoochum), + SPECIES_SPRITE(ELEKID, gMonStillFrontPic_Elekid), + SPECIES_SPRITE(MAGBY, gMonStillFrontPic_Magby), + SPECIES_SPRITE(MILTANK, gMonStillFrontPic_Miltank), + SPECIES_SPRITE(BLISSEY, gMonStillFrontPic_Blissey), + SPECIES_SPRITE(RAIKOU, gMonStillFrontPic_Raikou), + SPECIES_SPRITE(ENTEI, gMonStillFrontPic_Entei), + SPECIES_SPRITE(SUICUNE, gMonStillFrontPic_Suicune), + SPECIES_SPRITE(LARVITAR, gMonStillFrontPic_Larvitar), + SPECIES_SPRITE(PUPITAR, gMonStillFrontPic_Pupitar), + SPECIES_SPRITE(TYRANITAR, gMonStillFrontPic_Tyranitar), + SPECIES_SPRITE(LUGIA, gMonStillFrontPic_Lugia), + SPECIES_SPRITE(HO_OH, gMonStillFrontPic_HoOh), + SPECIES_SPRITE(CELEBI, gMonStillFrontPic_Celebi), // Empty slots - STILL_FRONT_PIC(OLD_UNOWN_B, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_C, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_D, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_E, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_F, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_G, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_H, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_I, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_J, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_K, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_L, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_M, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_N, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_O, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_P, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_Q, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_R, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_S, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_T, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_U, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_V, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_W, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_X, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_Y, gMonStillFrontPic_DoubleQuestionMark), - STILL_FRONT_PIC(OLD_UNOWN_Z, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_B, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_C, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_D, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_E, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_F, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_G, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_H, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_I, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_J, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_K, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_L, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_M, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_N, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_O, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_P, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_Q, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_R, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_S, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_T, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_U, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_V, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_W, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_X, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_Y, gMonStillFrontPic_DoubleQuestionMark), + SPECIES_SPRITE(OLD_UNOWN_Z, gMonStillFrontPic_DoubleQuestionMark), // Gen III - STILL_FRONT_PIC(TREECKO, gMonStillFrontPic_Treecko), - STILL_FRONT_PIC(GROVYLE, gMonStillFrontPic_Grovyle), - STILL_FRONT_PIC(SCEPTILE, gMonStillFrontPic_Sceptile), - STILL_FRONT_PIC(TORCHIC, gMonStillFrontPic_Torchic), - STILL_FRONT_PIC(COMBUSKEN, gMonStillFrontPic_Combusken), - STILL_FRONT_PIC(BLAZIKEN, gMonStillFrontPic_Blaziken), - STILL_FRONT_PIC(MUDKIP, gMonStillFrontPic_Mudkip), - STILL_FRONT_PIC(MARSHTOMP, gMonStillFrontPic_Marshtomp), - STILL_FRONT_PIC(SWAMPERT, gMonStillFrontPic_Swampert), - STILL_FRONT_PIC(POOCHYENA, gMonStillFrontPic_Poochyena), - STILL_FRONT_PIC(MIGHTYENA, gMonStillFrontPic_Mightyena), - STILL_FRONT_PIC(ZIGZAGOON, gMonStillFrontPic_Zigzagoon), - STILL_FRONT_PIC(LINOONE, gMonStillFrontPic_Linoone), - STILL_FRONT_PIC(WURMPLE, gMonStillFrontPic_Wurmple), - STILL_FRONT_PIC(SILCOON, gMonStillFrontPic_Silcoon), - STILL_FRONT_PIC(BEAUTIFLY, gMonStillFrontPic_Beautifly), - STILL_FRONT_PIC(CASCOON, gMonStillFrontPic_Cascoon), - STILL_FRONT_PIC(DUSTOX, gMonStillFrontPic_Dustox), - STILL_FRONT_PIC(LOTAD, gMonStillFrontPic_Lotad), - STILL_FRONT_PIC(LOMBRE, gMonStillFrontPic_Lombre), - STILL_FRONT_PIC(LUDICOLO, gMonStillFrontPic_Ludicolo), - STILL_FRONT_PIC(SEEDOT, gMonStillFrontPic_Seedot), - STILL_FRONT_PIC(NUZLEAF, gMonStillFrontPic_Nuzleaf), - STILL_FRONT_PIC(SHIFTRY, gMonStillFrontPic_Shiftry), - STILL_FRONT_PIC(NINCADA, gMonStillFrontPic_Nincada), - STILL_FRONT_PIC(NINJASK, gMonStillFrontPic_Ninjask), - STILL_FRONT_PIC(SHEDINJA, gMonStillFrontPic_Shedinja), - STILL_FRONT_PIC(TAILLOW, gMonStillFrontPic_Taillow), - STILL_FRONT_PIC(SWELLOW, gMonStillFrontPic_Swellow), - STILL_FRONT_PIC(SHROOMISH, gMonStillFrontPic_Shroomish), - STILL_FRONT_PIC(BRELOOM, gMonStillFrontPic_Breloom), - STILL_FRONT_PIC(SPINDA, gMonStillFrontPic_Spinda), - STILL_FRONT_PIC(WINGULL, gMonStillFrontPic_Wingull), - STILL_FRONT_PIC(PELIPPER, gMonStillFrontPic_Pelipper), - STILL_FRONT_PIC(SURSKIT, gMonStillFrontPic_Surskit), - STILL_FRONT_PIC(MASQUERAIN, gMonStillFrontPic_Masquerain), - STILL_FRONT_PIC(WAILMER, gMonStillFrontPic_Wailmer), - STILL_FRONT_PIC(WAILORD, gMonStillFrontPic_Wailord), - STILL_FRONT_PIC(SKITTY, gMonStillFrontPic_Skitty), - STILL_FRONT_PIC(DELCATTY, gMonStillFrontPic_Delcatty), - STILL_FRONT_PIC(KECLEON, gMonStillFrontPic_Kecleon), - STILL_FRONT_PIC(BALTOY, gMonStillFrontPic_Baltoy), - STILL_FRONT_PIC(CLAYDOL, gMonStillFrontPic_Claydol), - STILL_FRONT_PIC(NOSEPASS, gMonStillFrontPic_Nosepass), - STILL_FRONT_PIC(TORKOAL, gMonStillFrontPic_Torkoal), - STILL_FRONT_PIC(SABLEYE, gMonStillFrontPic_Sableye), - STILL_FRONT_PIC(BARBOACH, gMonStillFrontPic_Barboach), - STILL_FRONT_PIC(WHISCASH, gMonStillFrontPic_Whiscash), - STILL_FRONT_PIC(LUVDISC, gMonStillFrontPic_Luvdisc), - STILL_FRONT_PIC(CORPHISH, gMonStillFrontPic_Corphish), - STILL_FRONT_PIC(CRAWDAUNT, gMonStillFrontPic_Crawdaunt), - STILL_FRONT_PIC(FEEBAS, gMonStillFrontPic_Feebas), - STILL_FRONT_PIC(MILOTIC, gMonStillFrontPic_Milotic), - STILL_FRONT_PIC(CARVANHA, gMonStillFrontPic_Carvanha), - STILL_FRONT_PIC(SHARPEDO, gMonStillFrontPic_Sharpedo), - STILL_FRONT_PIC(TRAPINCH, gMonStillFrontPic_Trapinch), - STILL_FRONT_PIC(VIBRAVA, gMonStillFrontPic_Vibrava), - STILL_FRONT_PIC(FLYGON, gMonStillFrontPic_Flygon), - STILL_FRONT_PIC(MAKUHITA, gMonStillFrontPic_Makuhita), - STILL_FRONT_PIC(HARIYAMA, gMonStillFrontPic_Hariyama), - STILL_FRONT_PIC(ELECTRIKE, gMonStillFrontPic_Electrike), - STILL_FRONT_PIC(MANECTRIC, gMonStillFrontPic_Manectric), - STILL_FRONT_PIC(NUMEL, gMonStillFrontPic_Numel), - STILL_FRONT_PIC(CAMERUPT, gMonStillFrontPic_Camerupt), - STILL_FRONT_PIC(SPHEAL, gMonStillFrontPic_Spheal), - STILL_FRONT_PIC(SEALEO, gMonStillFrontPic_Sealeo), - STILL_FRONT_PIC(WALREIN, gMonStillFrontPic_Walrein), - STILL_FRONT_PIC(CACNEA, gMonStillFrontPic_Cacnea), - STILL_FRONT_PIC(CACTURNE, gMonStillFrontPic_Cacturne), - STILL_FRONT_PIC(SNORUNT, gMonStillFrontPic_Snorunt), - STILL_FRONT_PIC(GLALIE, gMonStillFrontPic_Glalie), - STILL_FRONT_PIC(LUNATONE, gMonStillFrontPic_Lunatone), - STILL_FRONT_PIC(SOLROCK, gMonStillFrontPic_Solrock), - STILL_FRONT_PIC(AZURILL, gMonStillFrontPic_Azurill), - STILL_FRONT_PIC(SPOINK, gMonStillFrontPic_Spoink), - STILL_FRONT_PIC(GRUMPIG, gMonStillFrontPic_Grumpig), - STILL_FRONT_PIC(PLUSLE, gMonStillFrontPic_Plusle), - STILL_FRONT_PIC(MINUN, gMonStillFrontPic_Minun), - STILL_FRONT_PIC(MAWILE, gMonStillFrontPic_Mawile), - STILL_FRONT_PIC(MEDITITE, gMonStillFrontPic_Meditite), - STILL_FRONT_PIC(MEDICHAM, gMonStillFrontPic_Medicham), - STILL_FRONT_PIC(SWABLU, gMonStillFrontPic_Swablu), - STILL_FRONT_PIC(ALTARIA, gMonStillFrontPic_Altaria), - STILL_FRONT_PIC(WYNAUT, gMonStillFrontPic_Wynaut), - STILL_FRONT_PIC(DUSKULL, gMonStillFrontPic_Duskull), - STILL_FRONT_PIC(DUSCLOPS, gMonStillFrontPic_Dusclops), - STILL_FRONT_PIC(ROSELIA, gMonStillFrontPic_Roselia), - STILL_FRONT_PIC(SLAKOTH, gMonStillFrontPic_Slakoth), - STILL_FRONT_PIC(VIGOROTH, gMonStillFrontPic_Vigoroth), - STILL_FRONT_PIC(SLAKING, gMonStillFrontPic_Slaking), - STILL_FRONT_PIC(GULPIN, gMonStillFrontPic_Gulpin), - STILL_FRONT_PIC(SWALOT, gMonStillFrontPic_Swalot), - STILL_FRONT_PIC(TROPIUS, gMonStillFrontPic_Tropius), - STILL_FRONT_PIC(WHISMUR, gMonStillFrontPic_Whismur), - STILL_FRONT_PIC(LOUDRED, gMonStillFrontPic_Loudred), - STILL_FRONT_PIC(EXPLOUD, gMonStillFrontPic_Exploud), - STILL_FRONT_PIC(CLAMPERL, gMonStillFrontPic_Clamperl), - STILL_FRONT_PIC(HUNTAIL, gMonStillFrontPic_Huntail), - STILL_FRONT_PIC(GOREBYSS, gMonStillFrontPic_Gorebyss), - STILL_FRONT_PIC(ABSOL, gMonStillFrontPic_Absol), - STILL_FRONT_PIC(SHUPPET, gMonStillFrontPic_Shuppet), - STILL_FRONT_PIC(BANETTE, gMonStillFrontPic_Banette), - STILL_FRONT_PIC(SEVIPER, gMonStillFrontPic_Seviper), - STILL_FRONT_PIC(ZANGOOSE, gMonStillFrontPic_Zangoose), - STILL_FRONT_PIC(RELICANTH, gMonStillFrontPic_Relicanth), - STILL_FRONT_PIC(ARON, gMonStillFrontPic_Aron), - STILL_FRONT_PIC(LAIRON, gMonStillFrontPic_Lairon), - STILL_FRONT_PIC(AGGRON, gMonStillFrontPic_Aggron), - STILL_FRONT_PIC(CASTFORM, gMonStillFrontPic_Castform), - STILL_FRONT_PIC(VOLBEAT, gMonStillFrontPic_Volbeat), - STILL_FRONT_PIC(ILLUMISE, gMonStillFrontPic_Illumise), - STILL_FRONT_PIC(LILEEP, gMonStillFrontPic_Lileep), - STILL_FRONT_PIC(CRADILY, gMonStillFrontPic_Cradily), - STILL_FRONT_PIC(ANORITH, gMonStillFrontPic_Anorith), - STILL_FRONT_PIC(ARMALDO, gMonStillFrontPic_Armaldo), - STILL_FRONT_PIC(RALTS, gMonStillFrontPic_Ralts), - STILL_FRONT_PIC(KIRLIA, gMonStillFrontPic_Kirlia), - STILL_FRONT_PIC(GARDEVOIR, gMonStillFrontPic_Gardevoir), - STILL_FRONT_PIC(BAGON, gMonStillFrontPic_Bagon), - STILL_FRONT_PIC(SHELGON, gMonStillFrontPic_Shelgon), - STILL_FRONT_PIC(SALAMENCE, gMonStillFrontPic_Salamence), - STILL_FRONT_PIC(BELDUM, gMonStillFrontPic_Beldum), - STILL_FRONT_PIC(METANG, gMonStillFrontPic_Metang), - STILL_FRONT_PIC(METAGROSS, gMonStillFrontPic_Metagross), - STILL_FRONT_PIC(REGIROCK, gMonStillFrontPic_Regirock), - STILL_FRONT_PIC(REGICE, gMonStillFrontPic_Regice), - STILL_FRONT_PIC(REGISTEEL, gMonStillFrontPic_Registeel), - STILL_FRONT_PIC(KYOGRE, gMonStillFrontPic_Kyogre), - STILL_FRONT_PIC(GROUDON, gMonStillFrontPic_Groudon), - STILL_FRONT_PIC(RAYQUAZA, gMonStillFrontPic_Rayquaza), - STILL_FRONT_PIC(LATIAS, gMonStillFrontPic_Latias), - STILL_FRONT_PIC(LATIOS, gMonStillFrontPic_Latios), - STILL_FRONT_PIC(JIRACHI, gMonStillFrontPic_Jirachi), - STILL_FRONT_PIC(DEOXYS, gMonStillFrontPic_Deoxys), - STILL_FRONT_PIC(CHIMECHO, gMonStillFrontPic_Chimecho), - STILL_FRONT_PIC(EGG, gMonStillFrontPic_Egg), - STILL_FRONT_PIC(UNOWN_B, gMonStillFrontPic_UnownB), - STILL_FRONT_PIC(UNOWN_C, gMonStillFrontPic_UnownC), - STILL_FRONT_PIC(UNOWN_D, gMonStillFrontPic_UnownD), - STILL_FRONT_PIC(UNOWN_E, gMonStillFrontPic_UnownE), - STILL_FRONT_PIC(UNOWN_F, gMonStillFrontPic_UnownF), - STILL_FRONT_PIC(UNOWN_G, gMonStillFrontPic_UnownG), - STILL_FRONT_PIC(UNOWN_H, gMonStillFrontPic_UnownH), - STILL_FRONT_PIC(UNOWN_I, gMonStillFrontPic_UnownI), - STILL_FRONT_PIC(UNOWN_J, gMonStillFrontPic_UnownJ), - STILL_FRONT_PIC(UNOWN_K, gMonStillFrontPic_UnownK), - STILL_FRONT_PIC(UNOWN_L, gMonStillFrontPic_UnownL), - STILL_FRONT_PIC(UNOWN_M, gMonStillFrontPic_UnownM), - STILL_FRONT_PIC(UNOWN_N, gMonStillFrontPic_UnownN), - STILL_FRONT_PIC(UNOWN_O, gMonStillFrontPic_UnownO), - STILL_FRONT_PIC(UNOWN_P, gMonStillFrontPic_UnownP), - STILL_FRONT_PIC(UNOWN_Q, gMonStillFrontPic_UnownQ), - STILL_FRONT_PIC(UNOWN_R, gMonStillFrontPic_UnownR), - STILL_FRONT_PIC(UNOWN_S, gMonStillFrontPic_UnownS), - STILL_FRONT_PIC(UNOWN_T, gMonStillFrontPic_UnownT), - STILL_FRONT_PIC(UNOWN_U, gMonStillFrontPic_UnownU), - STILL_FRONT_PIC(UNOWN_V, gMonStillFrontPic_UnownV), - STILL_FRONT_PIC(UNOWN_W, gMonStillFrontPic_UnownW), - STILL_FRONT_PIC(UNOWN_X, gMonStillFrontPic_UnownX), - STILL_FRONT_PIC(UNOWN_Y, gMonStillFrontPic_UnownY), - STILL_FRONT_PIC(UNOWN_Z, gMonStillFrontPic_UnownZ), - STILL_FRONT_PIC(UNOWN_EMARK, gMonStillFrontPic_UnownExclamationMark), - STILL_FRONT_PIC(UNOWN_QMARK, gMonStillFrontPic_UnownQuestionMark), + SPECIES_SPRITE(TREECKO, gMonStillFrontPic_Treecko), + SPECIES_SPRITE(GROVYLE, gMonStillFrontPic_Grovyle), + SPECIES_SPRITE(SCEPTILE, gMonStillFrontPic_Sceptile), + SPECIES_SPRITE(TORCHIC, gMonStillFrontPic_Torchic), + SPECIES_SPRITE(COMBUSKEN, gMonStillFrontPic_Combusken), + SPECIES_SPRITE(BLAZIKEN, gMonStillFrontPic_Blaziken), + SPECIES_SPRITE(MUDKIP, gMonStillFrontPic_Mudkip), + SPECIES_SPRITE(MARSHTOMP, gMonStillFrontPic_Marshtomp), + SPECIES_SPRITE(SWAMPERT, gMonStillFrontPic_Swampert), + SPECIES_SPRITE(POOCHYENA, gMonStillFrontPic_Poochyena), + SPECIES_SPRITE(MIGHTYENA, gMonStillFrontPic_Mightyena), + SPECIES_SPRITE(ZIGZAGOON, gMonStillFrontPic_Zigzagoon), + SPECIES_SPRITE(LINOONE, gMonStillFrontPic_Linoone), + SPECIES_SPRITE(WURMPLE, gMonStillFrontPic_Wurmple), + SPECIES_SPRITE(SILCOON, gMonStillFrontPic_Silcoon), + SPECIES_SPRITE(BEAUTIFLY, gMonStillFrontPic_Beautifly), + SPECIES_SPRITE(CASCOON, gMonStillFrontPic_Cascoon), + SPECIES_SPRITE(DUSTOX, gMonStillFrontPic_Dustox), + SPECIES_SPRITE(LOTAD, gMonStillFrontPic_Lotad), + SPECIES_SPRITE(LOMBRE, gMonStillFrontPic_Lombre), + SPECIES_SPRITE(LUDICOLO, gMonStillFrontPic_Ludicolo), + SPECIES_SPRITE(SEEDOT, gMonStillFrontPic_Seedot), + SPECIES_SPRITE(NUZLEAF, gMonStillFrontPic_Nuzleaf), + SPECIES_SPRITE(SHIFTRY, gMonStillFrontPic_Shiftry), + SPECIES_SPRITE(NINCADA, gMonStillFrontPic_Nincada), + SPECIES_SPRITE(NINJASK, gMonStillFrontPic_Ninjask), + SPECIES_SPRITE(SHEDINJA, gMonStillFrontPic_Shedinja), + SPECIES_SPRITE(TAILLOW, gMonStillFrontPic_Taillow), + SPECIES_SPRITE(SWELLOW, gMonStillFrontPic_Swellow), + SPECIES_SPRITE(SHROOMISH, gMonStillFrontPic_Shroomish), + SPECIES_SPRITE(BRELOOM, gMonStillFrontPic_Breloom), + SPECIES_SPRITE(SPINDA, gMonStillFrontPic_Spinda), + SPECIES_SPRITE(WINGULL, gMonStillFrontPic_Wingull), + SPECIES_SPRITE(PELIPPER, gMonStillFrontPic_Pelipper), + SPECIES_SPRITE(SURSKIT, gMonStillFrontPic_Surskit), + SPECIES_SPRITE(MASQUERAIN, gMonStillFrontPic_Masquerain), + SPECIES_SPRITE(WAILMER, gMonStillFrontPic_Wailmer), + SPECIES_SPRITE(WAILORD, gMonStillFrontPic_Wailord), + SPECIES_SPRITE(SKITTY, gMonStillFrontPic_Skitty), + SPECIES_SPRITE(DELCATTY, gMonStillFrontPic_Delcatty), + SPECIES_SPRITE(KECLEON, gMonStillFrontPic_Kecleon), + SPECIES_SPRITE(BALTOY, gMonStillFrontPic_Baltoy), + SPECIES_SPRITE(CLAYDOL, gMonStillFrontPic_Claydol), + SPECIES_SPRITE(NOSEPASS, gMonStillFrontPic_Nosepass), + SPECIES_SPRITE(TORKOAL, gMonStillFrontPic_Torkoal), + SPECIES_SPRITE(SABLEYE, gMonStillFrontPic_Sableye), + SPECIES_SPRITE(BARBOACH, gMonStillFrontPic_Barboach), + SPECIES_SPRITE(WHISCASH, gMonStillFrontPic_Whiscash), + SPECIES_SPRITE(LUVDISC, gMonStillFrontPic_Luvdisc), + SPECIES_SPRITE(CORPHISH, gMonStillFrontPic_Corphish), + SPECIES_SPRITE(CRAWDAUNT, gMonStillFrontPic_Crawdaunt), + SPECIES_SPRITE(FEEBAS, gMonStillFrontPic_Feebas), + SPECIES_SPRITE(MILOTIC, gMonStillFrontPic_Milotic), + SPECIES_SPRITE(CARVANHA, gMonStillFrontPic_Carvanha), + SPECIES_SPRITE(SHARPEDO, gMonStillFrontPic_Sharpedo), + SPECIES_SPRITE(TRAPINCH, gMonStillFrontPic_Trapinch), + SPECIES_SPRITE(VIBRAVA, gMonStillFrontPic_Vibrava), + SPECIES_SPRITE(FLYGON, gMonStillFrontPic_Flygon), + SPECIES_SPRITE(MAKUHITA, gMonStillFrontPic_Makuhita), + SPECIES_SPRITE(HARIYAMA, gMonStillFrontPic_Hariyama), + SPECIES_SPRITE(ELECTRIKE, gMonStillFrontPic_Electrike), + SPECIES_SPRITE(MANECTRIC, gMonStillFrontPic_Manectric), + SPECIES_SPRITE(NUMEL, gMonStillFrontPic_Numel), + SPECIES_SPRITE(CAMERUPT, gMonStillFrontPic_Camerupt), + SPECIES_SPRITE(SPHEAL, gMonStillFrontPic_Spheal), + SPECIES_SPRITE(SEALEO, gMonStillFrontPic_Sealeo), + SPECIES_SPRITE(WALREIN, gMonStillFrontPic_Walrein), + SPECIES_SPRITE(CACNEA, gMonStillFrontPic_Cacnea), + SPECIES_SPRITE(CACTURNE, gMonStillFrontPic_Cacturne), + SPECIES_SPRITE(SNORUNT, gMonStillFrontPic_Snorunt), + SPECIES_SPRITE(GLALIE, gMonStillFrontPic_Glalie), + SPECIES_SPRITE(LUNATONE, gMonStillFrontPic_Lunatone), + SPECIES_SPRITE(SOLROCK, gMonStillFrontPic_Solrock), + SPECIES_SPRITE(AZURILL, gMonStillFrontPic_Azurill), + SPECIES_SPRITE(SPOINK, gMonStillFrontPic_Spoink), + SPECIES_SPRITE(GRUMPIG, gMonStillFrontPic_Grumpig), + SPECIES_SPRITE(PLUSLE, gMonStillFrontPic_Plusle), + SPECIES_SPRITE(MINUN, gMonStillFrontPic_Minun), + SPECIES_SPRITE(MAWILE, gMonStillFrontPic_Mawile), + SPECIES_SPRITE(MEDITITE, gMonStillFrontPic_Meditite), + SPECIES_SPRITE(MEDICHAM, gMonStillFrontPic_Medicham), + SPECIES_SPRITE(SWABLU, gMonStillFrontPic_Swablu), + SPECIES_SPRITE(ALTARIA, gMonStillFrontPic_Altaria), + SPECIES_SPRITE(WYNAUT, gMonStillFrontPic_Wynaut), + SPECIES_SPRITE(DUSKULL, gMonStillFrontPic_Duskull), + SPECIES_SPRITE(DUSCLOPS, gMonStillFrontPic_Dusclops), + SPECIES_SPRITE(ROSELIA, gMonStillFrontPic_Roselia), + SPECIES_SPRITE(SLAKOTH, gMonStillFrontPic_Slakoth), + SPECIES_SPRITE(VIGOROTH, gMonStillFrontPic_Vigoroth), + SPECIES_SPRITE(SLAKING, gMonStillFrontPic_Slaking), + SPECIES_SPRITE(GULPIN, gMonStillFrontPic_Gulpin), + SPECIES_SPRITE(SWALOT, gMonStillFrontPic_Swalot), + SPECIES_SPRITE(TROPIUS, gMonStillFrontPic_Tropius), + SPECIES_SPRITE(WHISMUR, gMonStillFrontPic_Whismur), + SPECIES_SPRITE(LOUDRED, gMonStillFrontPic_Loudred), + SPECIES_SPRITE(EXPLOUD, gMonStillFrontPic_Exploud), + SPECIES_SPRITE(CLAMPERL, gMonStillFrontPic_Clamperl), + SPECIES_SPRITE(HUNTAIL, gMonStillFrontPic_Huntail), + SPECIES_SPRITE(GOREBYSS, gMonStillFrontPic_Gorebyss), + SPECIES_SPRITE(ABSOL, gMonStillFrontPic_Absol), + SPECIES_SPRITE(SHUPPET, gMonStillFrontPic_Shuppet), + SPECIES_SPRITE(BANETTE, gMonStillFrontPic_Banette), + SPECIES_SPRITE(SEVIPER, gMonStillFrontPic_Seviper), + SPECIES_SPRITE(ZANGOOSE, gMonStillFrontPic_Zangoose), + SPECIES_SPRITE(RELICANTH, gMonStillFrontPic_Relicanth), + SPECIES_SPRITE(ARON, gMonStillFrontPic_Aron), + SPECIES_SPRITE(LAIRON, gMonStillFrontPic_Lairon), + SPECIES_SPRITE(AGGRON, gMonStillFrontPic_Aggron), + SPECIES_SPRITE(CASTFORM, gMonStillFrontPic_Castform), + SPECIES_SPRITE(VOLBEAT, gMonStillFrontPic_Volbeat), + SPECIES_SPRITE(ILLUMISE, gMonStillFrontPic_Illumise), + SPECIES_SPRITE(LILEEP, gMonStillFrontPic_Lileep), + SPECIES_SPRITE(CRADILY, gMonStillFrontPic_Cradily), + SPECIES_SPRITE(ANORITH, gMonStillFrontPic_Anorith), + SPECIES_SPRITE(ARMALDO, gMonStillFrontPic_Armaldo), + SPECIES_SPRITE(RALTS, gMonStillFrontPic_Ralts), + SPECIES_SPRITE(KIRLIA, gMonStillFrontPic_Kirlia), + SPECIES_SPRITE(GARDEVOIR, gMonStillFrontPic_Gardevoir), + SPECIES_SPRITE(BAGON, gMonStillFrontPic_Bagon), + SPECIES_SPRITE(SHELGON, gMonStillFrontPic_Shelgon), + SPECIES_SPRITE(SALAMENCE, gMonStillFrontPic_Salamence), + SPECIES_SPRITE(BELDUM, gMonStillFrontPic_Beldum), + SPECIES_SPRITE(METANG, gMonStillFrontPic_Metang), + SPECIES_SPRITE(METAGROSS, gMonStillFrontPic_Metagross), + SPECIES_SPRITE(REGIROCK, gMonStillFrontPic_Regirock), + SPECIES_SPRITE(REGICE, gMonStillFrontPic_Regice), + SPECIES_SPRITE(REGISTEEL, gMonStillFrontPic_Registeel), + SPECIES_SPRITE(KYOGRE, gMonStillFrontPic_Kyogre), + SPECIES_SPRITE(GROUDON, gMonStillFrontPic_Groudon), + SPECIES_SPRITE(RAYQUAZA, gMonStillFrontPic_Rayquaza), + SPECIES_SPRITE(LATIAS, gMonStillFrontPic_Latias), + SPECIES_SPRITE(LATIOS, gMonStillFrontPic_Latios), + SPECIES_SPRITE(JIRACHI, gMonStillFrontPic_Jirachi), + SPECIES_SPRITE(DEOXYS, gMonStillFrontPic_Deoxys), + SPECIES_SPRITE(CHIMECHO, gMonStillFrontPic_Chimecho), + SPECIES_SPRITE(EGG, gMonStillFrontPic_Egg), + SPECIES_SPRITE(UNOWN_B, gMonStillFrontPic_UnownB), + SPECIES_SPRITE(UNOWN_C, gMonStillFrontPic_UnownC), + SPECIES_SPRITE(UNOWN_D, gMonStillFrontPic_UnownD), + SPECIES_SPRITE(UNOWN_E, gMonStillFrontPic_UnownE), + SPECIES_SPRITE(UNOWN_F, gMonStillFrontPic_UnownF), + SPECIES_SPRITE(UNOWN_G, gMonStillFrontPic_UnownG), + SPECIES_SPRITE(UNOWN_H, gMonStillFrontPic_UnownH), + SPECIES_SPRITE(UNOWN_I, gMonStillFrontPic_UnownI), + SPECIES_SPRITE(UNOWN_J, gMonStillFrontPic_UnownJ), + SPECIES_SPRITE(UNOWN_K, gMonStillFrontPic_UnownK), + SPECIES_SPRITE(UNOWN_L, gMonStillFrontPic_UnownL), + SPECIES_SPRITE(UNOWN_M, gMonStillFrontPic_UnownM), + SPECIES_SPRITE(UNOWN_N, gMonStillFrontPic_UnownN), + SPECIES_SPRITE(UNOWN_O, gMonStillFrontPic_UnownO), + SPECIES_SPRITE(UNOWN_P, gMonStillFrontPic_UnownP), + SPECIES_SPRITE(UNOWN_Q, gMonStillFrontPic_UnownQ), + SPECIES_SPRITE(UNOWN_R, gMonStillFrontPic_UnownR), + SPECIES_SPRITE(UNOWN_S, gMonStillFrontPic_UnownS), + SPECIES_SPRITE(UNOWN_T, gMonStillFrontPic_UnownT), + SPECIES_SPRITE(UNOWN_U, gMonStillFrontPic_UnownU), + SPECIES_SPRITE(UNOWN_V, gMonStillFrontPic_UnownV), + SPECIES_SPRITE(UNOWN_W, gMonStillFrontPic_UnownW), + SPECIES_SPRITE(UNOWN_X, gMonStillFrontPic_UnownX), + SPECIES_SPRITE(UNOWN_Y, gMonStillFrontPic_UnownY), + SPECIES_SPRITE(UNOWN_Z, gMonStillFrontPic_UnownZ), + SPECIES_SPRITE(UNOWN_EMARK, gMonStillFrontPic_UnownExclamationMark), + SPECIES_SPRITE(UNOWN_QMARK, gMonStillFrontPic_UnownQuestionMark), }; diff --git a/src/data/pokemon_graphics/unknown_anims.h b/src/data/pokemon_graphics/unknown_anims.h index 313e7ae35..bb4862d09 100644 --- a/src/data/pokemon_graphics/unknown_anims.h +++ b/src/data/pokemon_graphics/unknown_anims.h @@ -1,36 +1,5 @@ -const union AnimCmd gUnknown_082FF6EC[] = -{ - ANIMCMD_FRAME(0, 0), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_082FF6F4[] = -{ - ANIMCMD_FRAME(1, 0), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_082FF6FC[] = -{ - ANIMCMD_FRAME(2, 0), - ANIMCMD_END, -}; - -const union AnimCmd gUnknown_082FF704[] = -{ - ANIMCMD_FRAME(3, 0), - ANIMCMD_END, -}; - -const union AnimCmd *const gPlayerMonSpriteAnimsTable[] = -{ - gUnknown_082FF6EC, - gUnknown_082FF6F4, - gUnknown_082FF6FC, - gUnknown_082FF704, -}; - -const union AnimCmd gUnknown_082FF71C[] = +// unused and unkown +static const union AnimCmd gUnknown_082FF71C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(1, 25), @@ -40,7 +9,7 @@ const union AnimCmd gUnknown_082FF71C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF734[] = +static const union AnimCmd gUnknown_082FF734[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(2, 8), @@ -48,20 +17,20 @@ const union AnimCmd gUnknown_082FF734[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF744[] = +static const union AnimCmd gUnknown_082FF744[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(2, 10), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF750[] = +static const union AnimCmd gUnknown_082FF750[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF758[] = +static const union AnimCmd gUnknown_082FF758[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(1, 5), @@ -72,7 +41,7 @@ const union AnimCmd gUnknown_082FF758[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF774[] = +static const union AnimCmd gUnknown_082FF774[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(2, 12), @@ -83,14 +52,14 @@ const union AnimCmd gUnknown_082FF774[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF790[] = +static const union AnimCmd gUnknown_082FF790[] = { ANIMCMD_FRAME(0, 14), ANIMCMD_FRAME(2, 12), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF79C[] = +static const union AnimCmd gUnknown_082FF79C[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(1, 10), @@ -99,7 +68,7 @@ const union AnimCmd gUnknown_082FF79C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF7B0[] = +static const union AnimCmd gUnknown_082FF7B0[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(2, 10), @@ -108,193 +77,193 @@ const union AnimCmd gUnknown_082FF7B0[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF7C4[] = +static const union AnimCmd gUnknown_082FF7C4[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF7CC[] = +static const union AnimCmd gUnknown_082FF7CC[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF7D4[] = +static const union AnimCmd gUnknown_082FF7D4[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF7DC[] = +static const union AnimCmd gUnknown_082FF7DC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF7E4[] = +static const union AnimCmd gUnknown_082FF7E4[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF7EC[] = +static const union AnimCmd gUnknown_082FF7EC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF7F4[] = +static const union AnimCmd gUnknown_082FF7F4[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF7FC[] = +static const union AnimCmd gUnknown_082FF7FC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF804[] = +static const union AnimCmd gUnknown_082FF804[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF80C[] = +static const union AnimCmd gUnknown_082FF80C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF814[] = +static const union AnimCmd gUnknown_082FF814[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF81C[] = +static const union AnimCmd gUnknown_082FF81C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF824[] = +static const union AnimCmd gUnknown_082FF824[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF82C[] = +static const union AnimCmd gUnknown_082FF82C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF834[] = +static const union AnimCmd gUnknown_082FF834[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF83C[] = +static const union AnimCmd gUnknown_082FF83C[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF844[] = +static const union AnimCmd gUnknown_082FF844[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF84C[] = +static const union AnimCmd gUnknown_082FF84C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF854[] = +static const union AnimCmd gUnknown_082FF854[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF85C[] = +static const union AnimCmd gUnknown_082FF85C[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF864[] = +static const union AnimCmd gUnknown_082FF864[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF86C[] = +static const union AnimCmd gUnknown_082FF86C[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF874[] = +static const union AnimCmd gUnknown_082FF874[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF87C[] = +static const union AnimCmd gUnknown_082FF87C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF884[] = +static const union AnimCmd gUnknown_082FF884[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF88C[] = +static const union AnimCmd gUnknown_082FF88C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF894[] = +static const union AnimCmd gUnknown_082FF894[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF89C[] = +static const union AnimCmd gUnknown_082FF89C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF8A4[] = +static const union AnimCmd gUnknown_082FF8A4[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF8AC[] = +static const union AnimCmd gUnknown_082FF8AC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF8B4[] = +static const union AnimCmd gUnknown_082FF8B4[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF8BC[] = +static const union AnimCmd gUnknown_082FF8BC[] = { ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(8, 15), @@ -314,7 +283,7 @@ const union AnimCmd gUnknown_082FF8BC[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF8FC[] = +static const union AnimCmd gUnknown_082FF8FC[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(8, 15), @@ -326,7 +295,7 @@ const union AnimCmd gUnknown_082FF8FC[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF91C[] = +static const union AnimCmd gUnknown_082FF91C[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(9, 10), @@ -335,26 +304,26 @@ const union AnimCmd gUnknown_082FF91C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF930[] = +static const union AnimCmd gUnknown_082FF930[] = { ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(11, 15), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF93C[] = +static const union AnimCmd gUnknown_082FF93C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF944[] = +static const union AnimCmd gUnknown_082FF944[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF94C[] = +static const union AnimCmd gUnknown_082FF94C[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(1, 7), @@ -381,7 +350,7 @@ const union AnimCmd gUnknown_082FF94C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FF9A8[] = +static const union AnimCmd gUnknown_082FF9A8[] = { ANIMCMD_FRAME(0, 12), ANIMCMD_FRAME(7, 12), @@ -407,7 +376,7 @@ const union AnimCmd gUnknown_082FF9A8[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFA00[] = +static const union AnimCmd gUnknown_082FFA00[] = { ANIMCMD_FRAME(0, 12), ANIMCMD_FRAME(7, 12), @@ -433,182 +402,182 @@ const union AnimCmd gUnknown_082FFA00[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFA58[] = +static const union AnimCmd gUnknown_082FFA58[] = { ANIMCMD_FRAME(0,18), ANIMCMD_FRAME(10, 18), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFA64[] = +static const union AnimCmd gUnknown_082FFA64[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFA6C[] = +static const union AnimCmd gUnknown_082FFA6C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFA74[] = +static const union AnimCmd gUnknown_082FFA74[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFA7C[] = +static const union AnimCmd gUnknown_082FFA7C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFA84[] = +static const union AnimCmd gUnknown_082FFA84[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFA8C[] = +static const union AnimCmd gUnknown_082FFA8C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFA94[] = +static const union AnimCmd gUnknown_082FFA94[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFA9C[] = +static const union AnimCmd gUnknown_082FFA9C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFAA4[] = +static const union AnimCmd gUnknown_082FFAA4[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFAAC[] = +static const union AnimCmd gUnknown_082FFAAC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFAB4[] = +static const union AnimCmd gUnknown_082FFAB4[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFABC[] = +static const union AnimCmd gUnknown_082FFABC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFAC4[] = +static const union AnimCmd gUnknown_082FFAC4[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFACC[] = +static const union AnimCmd gUnknown_082FFACC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFAD4[] = +static const union AnimCmd gUnknown_082FFAD4[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFADC[] = +static const union AnimCmd gUnknown_082FFADC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFAE4[] = +static const union AnimCmd gUnknown_082FFAE4[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFAEC[] = +static const union AnimCmd gUnknown_082FFAEC[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFAF4[] = +static const union AnimCmd gUnknown_082FFAF4[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFAFC[] = +static const union AnimCmd gUnknown_082FFAFC[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFB04[] = +static const union AnimCmd gUnknown_082FFB04[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFB0C[] = +static const union AnimCmd gUnknown_082FFB0C[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFB14[] = +static const union AnimCmd gUnknown_082FFB14[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFB1C[] = +static const union AnimCmd gUnknown_082FFB1C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFB24[] = +static const union AnimCmd gUnknown_082FFB24[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFB2C[] = +static const union AnimCmd gUnknown_082FFB2C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFB34[] = +static const union AnimCmd gUnknown_082FFB34[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFB3C[] = +static const union AnimCmd gUnknown_082FFB3C[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFB44[] = +static const union AnimCmd gUnknown_082FFB44[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(1, 18), @@ -619,7 +588,7 @@ const union AnimCmd gUnknown_082FFB44[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFB60[] = +static const union AnimCmd gUnknown_082FFB60[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(2, 18), @@ -630,7 +599,7 @@ const union AnimCmd gUnknown_082FFB60[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFB7C[] = +static const union AnimCmd gUnknown_082FFB7C[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(2, 5), @@ -650,7 +619,7 @@ const union AnimCmd gUnknown_082FFB7C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFBBC[] = +static const union AnimCmd gUnknown_082FFBBC[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(1, 6), @@ -663,7 +632,7 @@ const union AnimCmd gUnknown_082FFBBC[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFBE0[] = +static const union AnimCmd gUnknown_082FFBE0[] = { ANIMCMD_FRAME(0, 12), ANIMCMD_FRAME(5, 12), @@ -672,61 +641,61 @@ const union AnimCmd gUnknown_082FFBE0[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFBF4[] = +static const union AnimCmd gUnknown_082FFBF4[] = { ANIMCMD_FRAME(7, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFBFC[] = +static const union AnimCmd gUnknown_082FFBFC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC04[] = +static const union AnimCmd gUnknown_082FFC04[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC0C[] = +static const union AnimCmd gUnknown_082FFC0C[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC14[] = +static const union AnimCmd gUnknown_082FFC14[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC1C[] = +static const union AnimCmd gUnknown_082FFC1C[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC24[] = +static const union AnimCmd gUnknown_082FFC24[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC2C[] = +static const union AnimCmd gUnknown_082FFC2C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC34[] = +static const union AnimCmd gUnknown_082FFC34[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC3C[] = +static const union AnimCmd gUnknown_082FFC3C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(1, 10), @@ -737,7 +706,7 @@ const union AnimCmd gUnknown_082FFC3C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC58[] = +static const union AnimCmd gUnknown_082FFC58[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(2, 8), @@ -748,217 +717,217 @@ const union AnimCmd gUnknown_082FFC58[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC74[] = +static const union AnimCmd gUnknown_082FFC74[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC7C[] = +static const union AnimCmd gUnknown_082FFC7C[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC84[] = +static const union AnimCmd gUnknown_082FFC84[] = { ANIMCMD_FRAME(1, 9), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC8C[] = +static const union AnimCmd gUnknown_082FFC8C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC94[] = +static const union AnimCmd gUnknown_082FFC94[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFC9C[] = +static const union AnimCmd gUnknown_082FFC9C[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCA4[] = +static const union AnimCmd gUnknown_082FFCA4[] = { ANIMCMD_FRAME(1, 10), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCAC[] = +static const union AnimCmd gUnknown_082FFCAC[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCB4[] = +static const union AnimCmd gUnknown_082FFCB4[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCBC[] = +static const union AnimCmd gUnknown_082FFCBC[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCC4[] = +static const union AnimCmd gUnknown_082FFCC4[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCCC[] = +static const union AnimCmd gUnknown_082FFCCC[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCD4[] = +static const union AnimCmd gUnknown_082FFCD4[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCDC[] = +static const union AnimCmd gUnknown_082FFCDC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCE4[] = +static const union AnimCmd gUnknown_082FFCE4[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCEC[] = +static const union AnimCmd gUnknown_082FFCEC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCF4[] = +static const union AnimCmd gUnknown_082FFCF4[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFCFC[] = +static const union AnimCmd gUnknown_082FFCFC[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD04[] = +static const union AnimCmd gUnknown_082FFD04[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD0C[] = +static const union AnimCmd gUnknown_082FFD0C[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD14[] = +static const union AnimCmd gUnknown_082FFD14[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD1C[] = +static const union AnimCmd gUnknown_082FFD1C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD24[] = +static const union AnimCmd gUnknown_082FFD24[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD2C[] = +static const union AnimCmd gUnknown_082FFD2C[] = { ANIMCMD_FRAME(2, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD34[] = +static const union AnimCmd gUnknown_082FFD34[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD3C[] = +static const union AnimCmd gUnknown_082FFD3C[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD44[] = +static const union AnimCmd gUnknown_082FFD44[] = { ANIMCMD_FRAME(0, 63), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD4C[] = +static const union AnimCmd gUnknown_082FFD4C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD54[] = +static const union AnimCmd gUnknown_082FFD54[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD5C[] = +static const union AnimCmd gUnknown_082FFD5C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD64[] = +static const union AnimCmd gUnknown_082FFD64[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD6C[] = +static const union AnimCmd gUnknown_082FFD6C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD74[] = +static const union AnimCmd gUnknown_082FFD74[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD7C[] = +static const union AnimCmd gUnknown_082FFD7C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD84[] = +static const union AnimCmd gUnknown_082FFD84[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFD8C[] = +static const union AnimCmd gUnknown_082FFD8C[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_FRAME(1, 30), @@ -967,7 +936,7 @@ const union AnimCmd gUnknown_082FFD8C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFDA0[] = +static const union AnimCmd gUnknown_082FFDA0[] = { ANIMCMD_FRAME(0, 20), ANIMCMD_FRAME(2, 20), @@ -976,933 +945,933 @@ const union AnimCmd gUnknown_082FFDA0[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFDB4[] = +static const union AnimCmd gUnknown_082FFDB4[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFDBC[] = +static const union AnimCmd gUnknown_082FFDBC[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -const union AnimCmd gUnknown_082FFDC4[] = +static const union AnimCmd gUnknown_082FFDC4[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_082FFDCC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDD0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDD4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDD8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDDC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDE0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDE4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDE8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDEC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDF0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDF4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDF8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFDFC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE00[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE04[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE08[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE0C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE10[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE14[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE18[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE1C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE20[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE24[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE28[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE2C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE30[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE34[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE38[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE3C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE40[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE44[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE48[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE4C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE50[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE54[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE58[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE5C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE60[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE64[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE68[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE6C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE70[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE74[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE78[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE7C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE80[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE84[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE88[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE8C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE90[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE94[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE98[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFE9C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEA0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEA4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEA8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEAC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEB0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEB4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEB8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEBC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEC0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEC4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEC8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFECC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFED0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFED4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFED8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEDC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEE0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEE4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEE8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEEC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEF0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEF4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEF8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFEFC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF00[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF04[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF08[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF0C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF10[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF14[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF18[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF1C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF20[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF24[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF28[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF2C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF30[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF34[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF38[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF3C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF40[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF44[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF48[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF4C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF50[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF54[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF58[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF5C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF60[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF64[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF68[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF6C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF70[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF74[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF78[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF7C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF80[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF84[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF88[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF8C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF90[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF94[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF98[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFF9C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFA0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFA4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFA8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFAC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFB0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFB4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFB8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFBC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFC0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFC4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFC8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFCC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFD0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFD4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFD8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFDC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFE0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFE4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFE8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFEC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFF0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFF4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFF8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_082FFFFC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300000[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300004[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300008[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830000C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300010[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300014[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300018[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830001C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300020[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300024[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300028[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830002C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300030[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300034[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300038[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830003C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300040[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300044[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300048[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830004C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300050[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300054[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300058[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830005C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300060[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300064[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300068[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830006C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300070[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300074[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300078[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830007C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300080[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300084[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300088[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830008C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300090[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300094[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300098[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830009C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000A0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000A4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000A8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000AC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000B0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000B4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000B8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000BC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000C0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000C4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000C8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000CC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000D0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000D4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000D8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000DC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000E0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000E4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000E8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000EC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000F0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000F4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000F8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083000FC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300100[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300104[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300108[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830010C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300110[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300114[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300118[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830011C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300120[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300124[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300128[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830012C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300130[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300134[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300138[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830013C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300140[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300144[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300148[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830014C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300150[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300154[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300158[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830015C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300160[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300164[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300168[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830016C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300170[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300174[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300178[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830017C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300180[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300184[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300188[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830018C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300190[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300194[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300198[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830019C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001A0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001A4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001A8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001AC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001B0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001B4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001B8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001BC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001C0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001C4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001C8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001CC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083001D0[] = {gAnimCmd_General_Frame0}; - -const union AnimCmd *const gUnknown_083001D4[] = -{ - gAnimCmd_General_Frame0, +static const union AnimCmd *const gUnknown_082FFDCC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDD0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDD4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDD8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDDC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDE0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDE4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDE8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDEC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDF0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDF4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDF8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFDFC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE00[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE04[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE08[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE0C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE10[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE14[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE18[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE1C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE20[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE24[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE28[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE2C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE30[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE34[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE38[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE3C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE40[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE44[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE48[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE4C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE50[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE54[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE58[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE5C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE60[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE64[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE68[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE6C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE70[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE74[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE78[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE7C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE80[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE84[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE88[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE8C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE90[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE94[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE98[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFE9C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEA0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEA4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEA8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEAC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEB0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEB4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEB8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEBC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEC0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEC4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEC8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFECC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFED0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFED4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFED8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEDC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEE0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEE4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEE8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEEC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEF0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEF4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEF8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFEFC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF00[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF04[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF08[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF0C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF10[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF14[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF18[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF1C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF20[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF24[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF28[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF2C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF30[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF34[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF38[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF3C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF40[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF44[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF48[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF4C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF50[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF54[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF58[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF5C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF60[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF64[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF68[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF6C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF70[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF74[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF78[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF7C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF80[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF84[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF88[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF8C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF90[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF94[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF98[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFF9C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFA0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFA4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFA8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFAC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFB0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFB4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFB8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFBC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFC0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFC4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFC8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFCC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFD0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFD4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFD8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFDC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFE0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFE4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFE8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFEC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFF0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFF4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFF8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_082FFFFC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300000[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300004[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300008[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830000C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300010[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300014[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300018[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830001C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300020[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300024[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300028[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830002C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300030[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300034[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300038[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830003C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300040[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300044[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300048[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830004C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300050[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300054[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300058[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830005C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300060[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300064[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300068[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830006C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300070[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300074[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300078[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830007C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300080[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300084[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300088[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830008C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300090[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300094[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300098[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830009C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000A0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000A4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000A8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000AC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000B0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000B4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000B8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000BC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000C0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000C4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000C8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000CC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000D0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000D4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000D8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000DC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000E0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000E4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000E8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000EC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000F0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000F4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000F8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083000FC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300100[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300104[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300108[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830010C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300110[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300114[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300118[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830011C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300120[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300124[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300128[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830012C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300130[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300134[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300138[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830013C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300140[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300144[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300148[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830014C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300150[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300154[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300158[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830015C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300160[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300164[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300168[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830016C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300170[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300174[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300178[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830017C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300180[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300184[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300188[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830018C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300190[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300194[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300198[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830019C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001A0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001A4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001A8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001AC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001B0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001B4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001B8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001BC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001C0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001C4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001C8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001CC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083001D0[] = {sAnim_GeneralFrame0}; + +static const union AnimCmd *const gUnknown_083001D4[] = +{ + sAnim_GeneralFrame0, gUnknown_082FF71C, gUnknown_082FF734, gUnknown_082FF744, gUnknown_082FF750, }; -const union AnimCmd *const gUnknown_083001E8[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_083001E8[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_083001EC[] = +static const union AnimCmd *const gUnknown_083001EC[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF758, gUnknown_082FF774, gUnknown_082FF790, }; -const union AnimCmd *const gUnknown_083001FC[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_083001FC[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_08300200[] = +static const union AnimCmd *const gUnknown_08300200[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF79C, gUnknown_082FF7B0, }; -const union AnimCmd *const gUnknown_0830020C[] = +static const union AnimCmd *const gUnknown_0830020C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF7C4, }; -const union AnimCmd *const gUnknown_08300214[] = +static const union AnimCmd *const gUnknown_08300214[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF7CC, }; -const union AnimCmd *const gUnknown_0830021C[] = +static const union AnimCmd *const gUnknown_0830021C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF7D4, }; -const union AnimCmd *const gUnknown_08300224[] = +static const union AnimCmd *const gUnknown_08300224[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF7DC, gUnknown_082FF7E4, }; -const union AnimCmd *const gUnknown_08300230[] = +static const union AnimCmd *const gUnknown_08300230[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF7EC, gUnknown_082FF7F4, }; -const union AnimCmd *const gUnknown_0830023C[] = +static const union AnimCmd *const gUnknown_0830023C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF7FC, gUnknown_082FF804, }; -const union AnimCmd *const gUnknown_08300248[] = +static const union AnimCmd *const gUnknown_08300248[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF80C, gUnknown_082FF814, }; -const union AnimCmd *const gUnknown_08300254[] = +static const union AnimCmd *const gUnknown_08300254[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF81C, gUnknown_082FF824, }; -const union AnimCmd *const gUnknown_08300260[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_08300260[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_08300264[] = +static const union AnimCmd *const gUnknown_08300264[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF82C, }; -const union AnimCmd *const gUnknown_0830026C[] = +static const union AnimCmd *const gUnknown_0830026C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF834, gUnknown_082FF83C, }; -const union AnimCmd *const gUnknown_08300278[] = +static const union AnimCmd *const gUnknown_08300278[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF844, }; -const union AnimCmd *const gUnknown_08300280[] = +static const union AnimCmd *const gUnknown_08300280[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF84C, }; -const union AnimCmd *const gUnknown_08300288[] = +static const union AnimCmd *const gUnknown_08300288[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF854, gUnknown_082FF85C, }; -const union AnimCmd *const gUnknown_08300294[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300298[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830029C[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_08300294[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300298[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830029C[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_083002A0[] = +static const union AnimCmd *const gUnknown_083002A0[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF864, }; -const union AnimCmd *const gUnknown_083002A8[] = +static const union AnimCmd *const gUnknown_083002A8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF86C, }; -const union AnimCmd *const gUnknown_083002B0[] = +static const union AnimCmd *const gUnknown_083002B0[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF874, }; -const union AnimCmd *const gUnknown_083002B8[] = +static const union AnimCmd *const gUnknown_083002B8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF87C, }; -const union AnimCmd *const gUnknown_083002C0[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_083002C0[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_083002C4[] = +static const union AnimCmd *const gUnknown_083002C4[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF884, }; -const union AnimCmd *const gUnknown_083002CC[] = +static const union AnimCmd *const gUnknown_083002CC[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF88C, gUnknown_082FF894, }; -const union AnimCmd *const gUnknown_083002D8[] = +static const union AnimCmd *const gUnknown_083002D8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF89C, gUnknown_082FF8A4, }; -const union AnimCmd *const gUnknown_083002E4[] = +static const union AnimCmd *const gUnknown_083002E4[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF8AC, gUnknown_082FF8B4, }; -const union AnimCmd *const gUnknown_083002F0[] = +static const union AnimCmd *const gUnknown_083002F0[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF8BC, gUnknown_082FF8FC, gUnknown_082FF91C, gUnknown_082FF930, }; -const union AnimCmd *const gUnknown_08300304[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_08300304[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_08300308[] = +static const union AnimCmd *const gUnknown_08300308[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF93C, }; -const union AnimCmd *const gUnknown_08300310[] = +static const union AnimCmd *const gUnknown_08300310[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF944, }; -const union AnimCmd *const gUnknown_08300318[] = +static const union AnimCmd *const gUnknown_08300318[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FF94C, gUnknown_082FF9A8, gUnknown_082FFA00, gUnknown_082FFA58, }; -const union AnimCmd *const gUnknown_0830032C[] = +static const union AnimCmd *const gUnknown_0830032C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFA64, }; -const union AnimCmd *const gUnknown_08300334[] = +static const union AnimCmd *const gUnknown_08300334[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFA6C, }; -const union AnimCmd *const gUnknown_0830033C[] = +static const union AnimCmd *const gUnknown_0830033C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFA74, }; -const union AnimCmd *const gUnknown_08300344[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_08300344[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_08300348[] = +static const union AnimCmd *const gUnknown_08300348[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFA7C, gUnknown_082FFA84, }; -const union AnimCmd *const gUnknown_08300354[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300358[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_08300354[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300358[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_0830035C[] = +static const union AnimCmd *const gUnknown_0830035C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFA8C, gUnknown_082FFA94, }; -const union AnimCmd *const gUnknown_08300368[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830036C[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_08300368[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830036C[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_08300370[] = +static const union AnimCmd *const gUnknown_08300370[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFA9C, gUnknown_082FFAA4, }; -const union AnimCmd *const gUnknown_0830037C[] = +static const union AnimCmd *const gUnknown_0830037C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFAAC, gUnknown_082FFAB4, }; -const union AnimCmd *const gUnknown_08300388[] = +static const union AnimCmd *const gUnknown_08300388[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFABC, gUnknown_082FFAC4, }; -const union AnimCmd *const gUnknown_08300394[] = +static const union AnimCmd *const gUnknown_08300394[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFACC, gUnknown_082FFAD4, }; -const union AnimCmd *const gUnknown_083003A0[] = +static const union AnimCmd *const gUnknown_083003A0[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFADC, }; -const union AnimCmd *const gUnknown_083003A8[] = +static const union AnimCmd *const gUnknown_083003A8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFAE4, }; -const union AnimCmd *const gUnknown_083003B0[] = +static const union AnimCmd *const gUnknown_083003B0[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFAEC, }; -const union AnimCmd *const gUnknown_083003B8[] = +static const union AnimCmd *const gUnknown_083003B8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFAF4, }; -const union AnimCmd *const gUnknown_083003C0[] = +static const union AnimCmd *const gUnknown_083003C0[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFAFC, }; -const union AnimCmd *const gUnknown_083003C8[] = +static const union AnimCmd *const gUnknown_083003C8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFB04, gUnknown_082FFB0C, }; -const union AnimCmd *const gUnknown_083003D4[] = +static const union AnimCmd *const gUnknown_083003D4[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFB14, }; -const union AnimCmd *const gUnknown_083003DC[] = +static const union AnimCmd *const gUnknown_083003DC[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFB1C, gUnknown_082FFB24, }; -const union AnimCmd *const gUnknown_083003E8[] = +static const union AnimCmd *const gUnknown_083003E8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFB2C, }; -const union AnimCmd *const gUnknown_083003F0[] = +static const union AnimCmd *const gUnknown_083003F0[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFB34, }; -const union AnimCmd *const gUnknown_083003F8[] = +static const union AnimCmd *const gUnknown_083003F8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFB3C, }; -const union AnimCmd *const gUnknown_08300400[] = +static const union AnimCmd *const gUnknown_08300400[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFB44, gUnknown_082FFB60, }; -const union AnimCmd *const gUnknown_0830040C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300410[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300414[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300418[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830041C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300420[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_0830040C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300410[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300414[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300418[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830041C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300420[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_08300424[] = +static const union AnimCmd *const gUnknown_08300424[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFB7C, gUnknown_082FFBBC, gUnknown_082FFBE0, gUnknown_082FFBF4, }; -const union AnimCmd *const gUnknown_08300438[] = +static const union AnimCmd *const gUnknown_08300438[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFBFC, gUnknown_082FFC04, }; -const union AnimCmd *const gUnknown_08300444[] = +static const union AnimCmd *const gUnknown_08300444[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFC0C, }; -const union AnimCmd *const gUnknown_0830044C[] = +static const union AnimCmd *const gUnknown_0830044C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFC14, }; -const union AnimCmd *const gUnknown_08300454[] = +static const union AnimCmd *const gUnknown_08300454[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFC1C, }; -const union AnimCmd *const gUnknown_0830045C[] = +static const union AnimCmd *const gUnknown_0830045C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFC24, }; -const union AnimCmd *const gUnknown_08300464[] = +static const union AnimCmd *const gUnknown_08300464[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFC2C, }; -const union AnimCmd *const gUnknown_0830046C[] = +static const union AnimCmd *const gUnknown_0830046C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFC34, }; -const union AnimCmd *const gUnknown_08300474[] = +static const union AnimCmd *const gUnknown_08300474[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFC3C, gUnknown_082FFC58, }; -const union AnimCmd *const gUnknown_08300480[] = +static const union AnimCmd *const gUnknown_08300480[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFC74, }; -const union AnimCmd *const gUnknown_08300488[] = +static const union AnimCmd *const gUnknown_08300488[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFC7C, gUnknown_082FFC84, }; -const union AnimCmd *const gUnknown_08300494[] = +static const union AnimCmd *const gUnknown_08300494[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFC8C, gUnknown_082FFC94, }; -const union AnimCmd *const gUnknown_083004A0[] = +static const union AnimCmd *const gUnknown_083004A0[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFC9C, gUnknown_082FFCA4, }; -const union AnimCmd *const gUnknown_083004AC[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_083004AC[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_083004B0[] = +static const union AnimCmd *const gUnknown_083004B0[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFCAC, }; -const union AnimCmd *const gUnknown_083004B8[] = +static const union AnimCmd *const gUnknown_083004B8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFCB4, }; -const union AnimCmd *const gUnknown_083004C0[] = +static const union AnimCmd *const gUnknown_083004C0[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFCBC, }; -const union AnimCmd *const gUnknown_083004C8[] = +static const union AnimCmd *const gUnknown_083004C8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFCC4, }; -const union AnimCmd *const gUnknown_083004D0[] = +static const union AnimCmd *const gUnknown_083004D0[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFCCC, }; -const union AnimCmd *const gUnknown_083004D8[] = +static const union AnimCmd *const gUnknown_083004D8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFCD4, }; -const union AnimCmd *const gUnknown_083004E0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083004E4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083004E8[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_083004E0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083004E4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083004E8[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_083004EC[] = +static const union AnimCmd *const gUnknown_083004EC[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFCDC, }; -const union AnimCmd *const gUnknown_083004F4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083004F8[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_083004F4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083004F8[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_083004FC[] = +static const union AnimCmd *const gUnknown_083004FC[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFCE4, }; -const union AnimCmd *const gUnknown_08300504[] = +static const union AnimCmd *const gUnknown_08300504[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFCEC, gUnknown_082FFCF4, }; -const union AnimCmd *const gUnknown_08300510[] = +static const union AnimCmd *const gUnknown_08300510[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFCFC, }; -const union AnimCmd *const gUnknown_08300518[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830051C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300520[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_08300518[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830051C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300520[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_08300524[] = +static const union AnimCmd *const gUnknown_08300524[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD04, }; -const union AnimCmd *const gUnknown_0830052C[] = +static const union AnimCmd *const gUnknown_0830052C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD0C, }; -const union AnimCmd *const gUnknown_08300534[] = +static const union AnimCmd *const gUnknown_08300534[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD14, }; -const union AnimCmd *const gUnknown_0830053C[] = +static const union AnimCmd *const gUnknown_0830053C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD1C, gUnknown_082FFD24, gUnknown_082FFD2C, gUnknown_082FFD34, }; -const union AnimCmd *const gUnknown_08300550[] = +static const union AnimCmd *const gUnknown_08300550[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD3C, }; -const union AnimCmd *const gUnknown_08300558[] = +static const union AnimCmd *const gUnknown_08300558[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD44, }; -const union AnimCmd *const gUnknown_08300560[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300564[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300568[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830056C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300570[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300574[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300578[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_08300560[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300564[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300568[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830056C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300570[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300574[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300578[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_0830057C[] = +static const union AnimCmd *const gUnknown_0830057C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD4C, gUnknown_082FFD54, }; -const union AnimCmd *const gUnknown_08300588[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_08300588[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_0830058C[] = +static const union AnimCmd *const gUnknown_0830058C[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD5C, gUnknown_082FFD64, }; -const union AnimCmd *const gUnknown_08300598[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830059C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083005A0[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_08300598[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830059C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083005A0[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_083005A4[] = +static const union AnimCmd *const gUnknown_083005A4[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD6C, }; -const union AnimCmd *const gUnknown_083005AC[] = +static const union AnimCmd *const gUnknown_083005AC[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD74, }; -const union AnimCmd *const gUnknown_083005B4[] = +static const union AnimCmd *const gUnknown_083005B4[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD7C, gUnknown_082FFD84, }; -const union AnimCmd *const gUnknown_083005C0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083005C4[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_083005C0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083005C4[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_083005C8[] = +static const union AnimCmd *const gUnknown_083005C8[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFD8C, gUnknown_082FFDA0, }; -const union AnimCmd *const gUnknown_083005D4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083005D8[] = {gAnimCmd_General_Frame0}; +static const union AnimCmd *const gUnknown_083005D4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083005D8[] = {sAnim_GeneralFrame0}; -const union AnimCmd *const gUnknown_083005DC[] = +static const union AnimCmd *const gUnknown_083005DC[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gUnknown_082FFDC4, }; -const union AnimCmd *const gUnknown_083005E4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083005E8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083005EC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083005F0[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083005F4[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083005F8[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_083005FC[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300600[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300604[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300608[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830060C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300610[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300614[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300618[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830061C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300620[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300624[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300628[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830062C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300630[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300634[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300638[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830063C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300640[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300644[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300648[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_0830064C[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300650[] = {gAnimCmd_General_Frame0}; -const union AnimCmd *const gUnknown_08300654[] = {gAnimCmd_General_Frame0}; - -const union AnimCmd *const *const gUnusedTrainerFrontAnimsPtrTable[] = +static const union AnimCmd *const gUnknown_083005E4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083005E8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083005EC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083005F0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083005F4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083005F8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_083005FC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300600[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300604[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300608[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830060C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300610[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300614[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300618[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830061C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300620[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300624[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300628[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830062C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300630[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300634[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300638[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830063C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300640[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300644[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300648[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_0830064C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300650[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const gUnknown_08300654[] = {sAnim_GeneralFrame0}; + +const union AnimCmd *const *const gUnknownAnimsTable[] = { gUnknown_082FFDCC, gUnknown_082FFDD0, diff --git a/src/data/trainer_graphics/back_pic_anims.h b/src/data/trainer_graphics/back_pic_anims.h index 0cc4bb203..821039cb3 100644 --- a/src/data/trainer_graphics/back_pic_anims.h +++ b/src/data/trainer_graphics/back_pic_anims.h @@ -1,4 +1,4 @@ -const union AnimCmd gAnimCmd_Brendan_1[] = +static const union AnimCmd gAnimCmd_Brendan_1[] = { ANIMCMD_FRAME(0, 24), ANIMCMD_FRAME(1, 9), @@ -8,7 +8,7 @@ const union AnimCmd gAnimCmd_Brendan_1[] = ANIMCMD_END, }; -const union AnimCmd gAnimCmd_May_Steven_1[] = +static const union AnimCmd gAnimCmd_May_Steven_1[] = { ANIMCMD_FRAME(0, 24), ANIMCMD_FRAME(1, 9), @@ -18,7 +18,7 @@ const union AnimCmd gAnimCmd_May_Steven_1[] = ANIMCMD_END, }; -const union AnimCmd gAnimCmd_Wally_1[] = +static const union AnimCmd gAnimCmd_Wally_1[] = { ANIMCMD_FRAME(0, 24), ANIMCMD_FRAME(1, 9), @@ -28,7 +28,7 @@ const union AnimCmd gAnimCmd_Wally_1[] = ANIMCMD_END, }; -const union AnimCmd gAnimCmd_Red_1[] = +static const union AnimCmd gAnimCmd_Red_1[] = { ANIMCMD_FRAME(1, 20), ANIMCMD_FRAME(2, 6), @@ -38,7 +38,7 @@ const union AnimCmd gAnimCmd_Red_1[] = ANIMCMD_END, }; -const union AnimCmd gAnimCmd_Leaf_1[] = +static const union AnimCmd gAnimCmd_Leaf_1[] = { ANIMCMD_FRAME(1, 20), ANIMCMD_FRAME(2, 6), @@ -48,7 +48,7 @@ const union AnimCmd gAnimCmd_Leaf_1[] = ANIMCMD_END, }; -const union AnimCmd gAnimCmd_RubySapphireBrendan_1[] = +static const union AnimCmd gAnimCmd_RubySapphireBrendan_1[] = { ANIMCMD_FRAME(0, 24), ANIMCMD_FRAME(1, 9), @@ -58,72 +58,72 @@ const union AnimCmd gAnimCmd_RubySapphireBrendan_1[] = ANIMCMD_END, }; -const union AnimCmd gAnimCmd_RubySapphireMay_1[] = +static const union AnimCmd gAnimCmd_RubySapphireMay_1[] = { ANIMCMD_FRAME(0, 24), ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(2, 24), + ANIMCMD_FRAME(2, 24), ANIMCMD_FRAME(0, 9), ANIMCMD_FRAME(3, 50), ANIMCMD_END, }; -const union AnimCmd *const gTrainerBackAnims_Brendan[] = +static const union AnimCmd *const sBackAnims_Brendan[] = { - gAnimCmd_General_Frame3, + sAnim_GeneralFrame3, gAnimCmd_Brendan_1, }; -const union AnimCmd *const gTrainerBackAnims_May[] = +static const union AnimCmd *const sBackAnims_May[] = { - gAnimCmd_General_Frame3, + sAnim_GeneralFrame3, gAnimCmd_May_Steven_1, }; -const union AnimCmd *const gTrainerBackAnims_Red[] = +static const union AnimCmd *const sBackAnims_Red[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gAnimCmd_Red_1, }; -const union AnimCmd *const gTrainerBackAnims_Leaf[] = +static const union AnimCmd *const sBackAnims_Leaf[] = { - gAnimCmd_General_Frame0, + sAnim_GeneralFrame0, gAnimCmd_Leaf_1, }; -const union AnimCmd *const gTrainerBackAnims_RubySapphireBrendan[] = +static const union AnimCmd *const sBackAnims_RubySapphireBrendan[] = { - gAnimCmd_General_Frame3, + sAnim_GeneralFrame3, gAnimCmd_RubySapphireBrendan_1, }; -const union AnimCmd *const gTrainerBackAnims_RubySapphireMay[] = +static const union AnimCmd *const sBackAnims_RubySapphireMay[] = { - gAnimCmd_General_Frame3, + sAnim_GeneralFrame3, gAnimCmd_RubySapphireMay_1, }; -const union AnimCmd *const gTrainerBackAnims_Wally[] = +static const union AnimCmd *const sBackAnims_Wally[] = { - gAnimCmd_General_Frame3, + sAnim_GeneralFrame3, gAnimCmd_Wally_1, }; -const union AnimCmd *const gTrainerBackAnims_Steven[] = +static const union AnimCmd *const sBackAnims_Steven[] = { - gAnimCmd_General_Frame3, + sAnim_GeneralFrame3, gAnimCmd_May_Steven_1, }; const union AnimCmd *const *const gTrainerBackAnimsPtrTable[] = { - gTrainerBackAnims_Brendan, - gTrainerBackAnims_May, - gTrainerBackAnims_Red, - gTrainerBackAnims_Leaf, - gTrainerBackAnims_RubySapphireBrendan, - gTrainerBackAnims_RubySapphireMay, - gTrainerBackAnims_Wally, - gTrainerBackAnims_Steven, + [TRAINER_BACK_PIC_BRENDAN] = sBackAnims_Brendan, + [TRAINER_BACK_PIC_MAY] = sBackAnims_May, + [TRAINER_BACK_PIC_RED] = sBackAnims_Red, + [TRAINER_BACK_PIC_LEAF] = sBackAnims_Leaf, + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN] = sBackAnims_RubySapphireBrendan, + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY] = sBackAnims_RubySapphireMay, + [TRAINER_BACK_PIC_WALLY] = sBackAnims_Wally, + [TRAINER_BACK_PIC_STEVEN] = sBackAnims_Steven, }; diff --git a/src/data/trainer_graphics/back_pic_tables.h b/src/data/trainer_graphics/back_pic_tables.h index 0f6b0cb91..86efd7905 100644 --- a/src/data/trainer_graphics/back_pic_tables.h +++ b/src/data/trainer_graphics/back_pic_tables.h @@ -1,13 +1,13 @@ const struct MonCoords gTrainerBackPicCoords[] = { - {.size = 8, .y_offset = 4}, - {.size = 8, .y_offset = 4}, - {.size = 8, .y_offset = 5}, - {.size = 8, .y_offset = 5}, - {.size = 8, .y_offset = 4}, - {.size = 8, .y_offset = 4}, - {.size = 8, .y_offset = 4}, - {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_BRENDAN] = {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_MAY] = {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_RED] = {.size = 8, .y_offset = 5}, + [TRAINER_BACK_PIC_LEAF] = {.size = 8, .y_offset = 5}, + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN] = {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY] = {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_WALLY] = {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_STEVEN] = {.size = 8, .y_offset = 4}, }; // this table goes functionally unused, since none of these pics are compressed @@ -25,14 +25,14 @@ const struct CompressedSpriteSheet gTrainerBackPicTable[] = (const u32 *)gTrainerBackPic_Steven, 0x2000, TRAINER_BACK_PIC_STEVEN, }; -const struct CompressedSpritePalette gTrainerBackPicPaletteTable[] = +const struct CompressedSpritePalette gTrainerBackPicPaletteTable[] = { - gTrainerPalette_Brendan, TRAINER_BACK_PIC_BRENDAN, - gTrainerPalette_May, TRAINER_BACK_PIC_MAY, - gTrainerBackPicPalette_Red, TRAINER_BACK_PIC_RED, - gTrainerBackPicPalette_Leaf, TRAINER_BACK_PIC_LEAF, - gTrainerPalette_RubySapphireBrendan, TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN, - gTrainerPalette_RubySapphireMay, TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY, - gTrainerPalette_Wally, TRAINER_BACK_PIC_WALLY, - gTrainerPalette_Steven, TRAINER_BACK_PIC_STEVEN, + TRAINER_BACK_PAL(BRENDAN, gTrainerPalette_Brendan), + TRAINER_BACK_PAL(MAY, gTrainerPalette_May), + TRAINER_BACK_PAL(RED, gTrainerBackPicPalette_Red), + TRAINER_BACK_PAL(LEAF, gTrainerBackPicPalette_Leaf), + TRAINER_BACK_PAL(RUBY_SAPPHIRE_BRENDAN, gTrainerPalette_RubySapphireBrendan), + TRAINER_BACK_PAL(RUBY_SAPPHIRE_MAY, gTrainerPalette_RubySapphireMay), + TRAINER_BACK_PAL(WALLY, gTrainerPalette_Wally), + TRAINER_BACK_PAL(STEVEN, gTrainerPalette_Steven), }; diff --git a/src/data/trainer_graphics/front_pic_anims.h b/src/data/trainer_graphics/front_pic_anims.h index 371e5a300..f01394532 100644 --- a/src/data/trainer_graphics/front_pic_anims.h +++ b/src/data/trainer_graphics/front_pic_anims.h @@ -1,470 +1,468 @@ -#include "constants/trainers.h" - -const union AnimCmd *const gTrainerFrontAnims_Hiker[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Hiker[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_AquaGruntM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_AquaGruntM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_PokemonBreederF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_PokemonBreederF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_CoolTrainerM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_CoolTrainerM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_BirdKeeper[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_BirdKeeper[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Collector[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Collector[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_AquaGruntF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_AquaGruntF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_SwimmerM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_SwimmerM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_MagmaGruntM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_MagmaGruntM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_ExpertM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_ExpertM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_AquaAdminM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_AquaAdminM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_BlackBelt[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_BlackBelt[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_AquaAdminF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_AquaAdminF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_AquaLeaderArchie[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_AquaLeaderArchie[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_HexManiac[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_HexManiac[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_AromaLady[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_AromaLady[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_RuinManiac[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_RuinManiac[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Interviewer[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Interviewer[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_TuberF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_TuberF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_TuberM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_TuberM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_CoolTrainerF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_CoolTrainerF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Lady[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Lady[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Beauty[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Beauty[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_RichBoy[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_RichBoy[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_ExpertF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_ExpertF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Pokemaniac[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Pokemaniac[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_MagmaGruntF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_MagmaGruntF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Guitarist[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Guitarist[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Kindler[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Kindler[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Camper[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Camper[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Picnicker[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Picnicker[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_BugManiac[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_BugManiac[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_PokemonBreederM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_PokemonBreederM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_PsychicM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_PsychicM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_PsychicF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_PsychicF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Gentleman[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Gentleman[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_EliteFourSidney[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_EliteFourSidney[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_EliteFourPhoebe[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_EliteFourPhoebe[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_EliteFourGlacia[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_EliteFourGlacia[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_EliteFourDrake[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_EliteFourDrake[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_LeaderRoxanne[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_LeaderRoxanne[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_LeaderBrawly[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_LeaderBrawly[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_LeaderWattson[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_LeaderWattson[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_LeaderFlannery[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_LeaderFlannery[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_LeaderNorman[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_LeaderNorman[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_LeaderWinona[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_LeaderWinona[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_LeaderTateAndLiza[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_LeaderTateAndLiza[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_LeaderJuan[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_LeaderJuan[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_SchoolKidM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_SchoolKidM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_SchoolKidF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_SchoolKidF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_SrAndJr[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_SrAndJr[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_PokefanM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_PokefanM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_PokefanF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_PokefanF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Youngster[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Youngster[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_ChampionWallace[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_ChampionWallace[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Fisherman[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Fisherman[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_CyclingTriathleteM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_CyclingTriathleteM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_CyclingTriathleteF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_CyclingTriathleteF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_RunningTriathleteM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_RunningTriathleteM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_RunningTriathleteF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_RunningTriathleteF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_SwimmingTriathleteM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_SwimmingTriathleteM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_SwimmingTriathleteF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_SwimmingTriathleteF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_DragonTamer[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_DragonTamer[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_NinjaBoy[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_NinjaBoy[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_BattleGirl[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_BattleGirl[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_ParasolLady[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_ParasolLady[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_SwimmerF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_SwimmerF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Twins[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Twins[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Sailor[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Sailor[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_MagmaAdmin[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_MagmaAdmin[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Wally[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Wally[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Brendan[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Brendan[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_May[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_May[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_BugCatcher[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_BugCatcher[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_PokemonRangerM[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_PokemonRangerM[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_PokemonRangerF[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_PokemonRangerF[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_MagmaLeaderMaxie[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_MagmaLeaderMaxie[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Lass[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Lass[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_YoungCouple[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_YoungCouple[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_OldCouple[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_OldCouple[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_SisAndBro[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_SisAndBro[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Steven[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Steven[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_SalonMaidenAnabel[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_SalonMaidenAnabel[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_DomeAceTucker[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_DomeAceTucker[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_PalaceMavenSpenser[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_PalaceMavenSpenser[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_ArenaTycoonGreta[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_ArenaTycoonGreta[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_FactoryHeadNoland[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_FactoryHeadNoland[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_PikeQueenLucy[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_PikeQueenLucy[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_PyramidKingBrandon[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_PyramidKingBrandon[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Red[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Red[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_Leaf[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_Leaf[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_RubySapphireBrendan[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_RubySapphireBrendan[] ={ + sAnim_GeneralFrame0, }; -const union AnimCmd *const gTrainerFrontAnims_RubySapphireMay[] ={ - gAnimCmd_General_Frame0, +static const union AnimCmd *const sAnims_RubySapphireMay[] ={ + sAnim_GeneralFrame0, }; const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[] = { - [TRAINER_PIC_HIKER] = gTrainerFrontAnims_Hiker, - [TRAINER_PIC_AQUA_GRUNT_M] = gTrainerFrontAnims_AquaGruntM, - [TRAINER_PIC_POKEMON_BREEDER_F] = gTrainerFrontAnims_PokemonBreederF, - [TRAINER_PIC_COOLTRAINER_M] = gTrainerFrontAnims_CoolTrainerM, - [TRAINER_PIC_BIRD_KEEPER] = gTrainerFrontAnims_BirdKeeper, - [TRAINER_PIC_COLLECTOR] = gTrainerFrontAnims_Collector, - [TRAINER_PIC_AQUA_GRUNT_F] = gTrainerFrontAnims_AquaGruntF, - [TRAINER_PIC_SWIMMER_M] = gTrainerFrontAnims_SwimmerM, - [TRAINER_PIC_MAGMA_GRUNT_M] = gTrainerFrontAnims_MagmaGruntM, - [TRAINER_PIC_EXPERT_M] = gTrainerFrontAnims_ExpertM, - [TRAINER_PIC_AQUA_ADMIN_M] = gTrainerFrontAnims_AquaAdminM, - [TRAINER_PIC_BLACK_BELT] = gTrainerFrontAnims_BlackBelt, - [TRAINER_PIC_AQUA_ADMIN_F] = gTrainerFrontAnims_AquaAdminF, - [TRAINER_PIC_AQUA_LEADER_ARCHIE] = gTrainerFrontAnims_AquaLeaderArchie, - [TRAINER_PIC_HEX_MANIAC] = gTrainerFrontAnims_HexManiac, - [TRAINER_PIC_AROMA_LADY] = gTrainerFrontAnims_AromaLady, - [TRAINER_PIC_RUIN_MANIAC] = gTrainerFrontAnims_RuinManiac, - [TRAINER_PIC_INTERVIEWER] = gTrainerFrontAnims_Interviewer, - [TRAINER_PIC_TUBER_F] = gTrainerFrontAnims_TuberF, - [TRAINER_PIC_TUBER_M] = gTrainerFrontAnims_TuberM, - [TRAINER_PIC_COOLTRAINER_F] = gTrainerFrontAnims_CoolTrainerF, - [TRAINER_PIC_LADY] = gTrainerFrontAnims_Lady, - [TRAINER_PIC_BEAUTY] = gTrainerFrontAnims_Beauty, - [TRAINER_PIC_RICH_BOY] = gTrainerFrontAnims_RichBoy, - [TRAINER_PIC_EXPERT_F] = gTrainerFrontAnims_ExpertF, - [TRAINER_PIC_POKEMANIAC] = gTrainerFrontAnims_Pokemaniac, - [TRAINER_PIC_MAGMA_GRUNT_F] = gTrainerFrontAnims_MagmaGruntF, - [TRAINER_PIC_GUITARIST] = gTrainerFrontAnims_Guitarist, - [TRAINER_PIC_KINDLER] = gTrainerFrontAnims_Kindler, - [TRAINER_PIC_CAMPER] = gTrainerFrontAnims_Camper, - [TRAINER_PIC_PICNICKER] = gTrainerFrontAnims_Picnicker, - [TRAINER_PIC_BUG_MANIAC] = gTrainerFrontAnims_BugManiac, - [TRAINER_PIC_POKEMON_BREEDER_M] = gTrainerFrontAnims_PokemonBreederM, - [TRAINER_PIC_PSYCHIC_M] = gTrainerFrontAnims_PsychicM, - [TRAINER_PIC_PSYCHIC_F] = gTrainerFrontAnims_PsychicF, - [TRAINER_PIC_GENTLEMAN] = gTrainerFrontAnims_Gentleman, - [TRAINER_PIC_ELITE_FOUR_SIDNEY] = gTrainerFrontAnims_EliteFourSidney, - [TRAINER_PIC_ELITE_FOUR_PHOEBE] = gTrainerFrontAnims_EliteFourPhoebe, - [TRAINER_PIC_ELITE_FOUR_GLACIA] = gTrainerFrontAnims_EliteFourGlacia, - [TRAINER_PIC_ELITE_FOUR_DRAKE] = gTrainerFrontAnims_EliteFourDrake, - [TRAINER_PIC_LEADER_ROXANNE] = gTrainerFrontAnims_LeaderRoxanne, - [TRAINER_PIC_LEADER_BRAWLY] = gTrainerFrontAnims_LeaderBrawly, - [TRAINER_PIC_LEADER_WATTSON] = gTrainerFrontAnims_LeaderWattson, - [TRAINER_PIC_LEADER_FLANNERY] = gTrainerFrontAnims_LeaderFlannery, - [TRAINER_PIC_LEADER_NORMAN] = gTrainerFrontAnims_LeaderNorman, - [TRAINER_PIC_LEADER_WINONA] = gTrainerFrontAnims_LeaderWinona, - [TRAINER_PIC_LEADER_TATE_AND_LIZA] = gTrainerFrontAnims_LeaderTateAndLiza, - [TRAINER_PIC_LEADER_JUAN] = gTrainerFrontAnims_LeaderJuan, - [TRAINER_PIC_SCHOOL_KID_M] = gTrainerFrontAnims_SchoolKidM, - [TRAINER_PIC_SCHOOL_KID_F] = gTrainerFrontAnims_SchoolKidF, - [TRAINER_PIC_SR_AND_JR] = gTrainerFrontAnims_SrAndJr, - [TRAINER_PIC_POKEFAN_M] = gTrainerFrontAnims_PokefanM, - [TRAINER_PIC_POKEFAN_F] = gTrainerFrontAnims_PokefanF, - [TRAINER_PIC_YOUNGSTER] = gTrainerFrontAnims_Youngster, - [TRAINER_PIC_CHAMPION_WALLACE] = gTrainerFrontAnims_ChampionWallace, - [TRAINER_PIC_FISHERMAN] = gTrainerFrontAnims_Fisherman, - [TRAINER_PIC_CYCLING_TRIATHLETE_M] = gTrainerFrontAnims_CyclingTriathleteM, - [TRAINER_PIC_CYCLING_TRIATHLETE_F] = gTrainerFrontAnims_CyclingTriathleteF, - [TRAINER_PIC_RUNNING_TRIATHLETE_M] = gTrainerFrontAnims_RunningTriathleteM, - [TRAINER_PIC_RUNNING_TRIATHLETE_F] = gTrainerFrontAnims_RunningTriathleteF, - [TRAINER_PIC_SWIMMING_TRIATHLETE_M] = gTrainerFrontAnims_SwimmingTriathleteM, - [TRAINER_PIC_SWIMMING_TRIATHLETE_F] = gTrainerFrontAnims_SwimmingTriathleteF, - [TRAINER_PIC_DRAGON_TAMER] = gTrainerFrontAnims_DragonTamer, - [TRAINER_PIC_NINJA_BOY] = gTrainerFrontAnims_NinjaBoy, - [TRAINER_PIC_BATTLE_GIRL] = gTrainerFrontAnims_BattleGirl, - [TRAINER_PIC_PARASOL_LADY] = gTrainerFrontAnims_ParasolLady, - [TRAINER_PIC_SWIMMER_F] = gTrainerFrontAnims_SwimmerF, - [TRAINER_PIC_TWINS] = gTrainerFrontAnims_Twins, - [TRAINER_PIC_SAILOR] = gTrainerFrontAnims_Sailor, - [TRAINER_PIC_MAGMA_ADMIN] = gTrainerFrontAnims_MagmaAdmin, - [TRAINER_PIC_WALLY] = gTrainerFrontAnims_Wally, - [TRAINER_PIC_BRENDAN] = gTrainerFrontAnims_Brendan, - [TRAINER_PIC_MAY] = gTrainerFrontAnims_May, - [TRAINER_PIC_BUG_CATCHER] = gTrainerFrontAnims_BugCatcher, - [TRAINER_PIC_POKEMON_RANGER_M] = gTrainerFrontAnims_PokemonRangerM, - [TRAINER_PIC_POKEMON_RANGER_F] = gTrainerFrontAnims_PokemonRangerF, - [TRAINER_PIC_MAGMA_LEADER_MAXIE] = gTrainerFrontAnims_MagmaLeaderMaxie, - [TRAINER_PIC_LASS] = gTrainerFrontAnims_Lass, - [TRAINER_PIC_YOUNG_COUPLE] = gTrainerFrontAnims_YoungCouple, - [TRAINER_PIC_OLD_COUPLE] = gTrainerFrontAnims_OldCouple, - [TRAINER_PIC_SIS_AND_BRO] = gTrainerFrontAnims_SisAndBro, - [TRAINER_PIC_STEVEN] = gTrainerFrontAnims_Steven, - [TRAINER_PIC_SALON_MAIDEN_ANABEL] = gTrainerFrontAnims_SalonMaidenAnabel, - [TRAINER_PIC_DOME_ACE_TUCKER] = gTrainerFrontAnims_DomeAceTucker, - [TRAINER_PIC_PALACE_MAVEN_SPENSER] = gTrainerFrontAnims_PalaceMavenSpenser, - [TRAINER_PIC_ARENA_TYCOON_GRETA] = gTrainerFrontAnims_ArenaTycoonGreta, - [TRAINER_PIC_FACTORY_HEAD_NOLAND] = gTrainerFrontAnims_FactoryHeadNoland, - [TRAINER_PIC_PIKE_QUEEN_LUCY] = gTrainerFrontAnims_PikeQueenLucy, - [TRAINER_PIC_PYRAMID_KING_BRANDON] = gTrainerFrontAnims_PyramidKingBrandon, - [TRAINER_PIC_RED] = gTrainerFrontAnims_Red, - [TRAINER_PIC_LEAF] = gTrainerFrontAnims_Leaf, - [TRAINER_PIC_RS_BRENDAN] = gTrainerFrontAnims_RubySapphireBrendan, - [TRAINER_PIC_RS_MAY] = gTrainerFrontAnims_RubySapphireMay, + [TRAINER_PIC_HIKER] = sAnims_Hiker, + [TRAINER_PIC_AQUA_GRUNT_M] = sAnims_AquaGruntM, + [TRAINER_PIC_POKEMON_BREEDER_F] = sAnims_PokemonBreederF, + [TRAINER_PIC_COOLTRAINER_M] = sAnims_CoolTrainerM, + [TRAINER_PIC_BIRD_KEEPER] = sAnims_BirdKeeper, + [TRAINER_PIC_COLLECTOR] = sAnims_Collector, + [TRAINER_PIC_AQUA_GRUNT_F] = sAnims_AquaGruntF, + [TRAINER_PIC_SWIMMER_M] = sAnims_SwimmerM, + [TRAINER_PIC_MAGMA_GRUNT_M] = sAnims_MagmaGruntM, + [TRAINER_PIC_EXPERT_M] = sAnims_ExpertM, + [TRAINER_PIC_AQUA_ADMIN_M] = sAnims_AquaAdminM, + [TRAINER_PIC_BLACK_BELT] = sAnims_BlackBelt, + [TRAINER_PIC_AQUA_ADMIN_F] = sAnims_AquaAdminF, + [TRAINER_PIC_AQUA_LEADER_ARCHIE] = sAnims_AquaLeaderArchie, + [TRAINER_PIC_HEX_MANIAC] = sAnims_HexManiac, + [TRAINER_PIC_AROMA_LADY] = sAnims_AromaLady, + [TRAINER_PIC_RUIN_MANIAC] = sAnims_RuinManiac, + [TRAINER_PIC_INTERVIEWER] = sAnims_Interviewer, + [TRAINER_PIC_TUBER_F] = sAnims_TuberF, + [TRAINER_PIC_TUBER_M] = sAnims_TuberM, + [TRAINER_PIC_COOLTRAINER_F] = sAnims_CoolTrainerF, + [TRAINER_PIC_LADY] = sAnims_Lady, + [TRAINER_PIC_BEAUTY] = sAnims_Beauty, + [TRAINER_PIC_RICH_BOY] = sAnims_RichBoy, + [TRAINER_PIC_EXPERT_F] = sAnims_ExpertF, + [TRAINER_PIC_POKEMANIAC] = sAnims_Pokemaniac, + [TRAINER_PIC_MAGMA_GRUNT_F] = sAnims_MagmaGruntF, + [TRAINER_PIC_GUITARIST] = sAnims_Guitarist, + [TRAINER_PIC_KINDLER] = sAnims_Kindler, + [TRAINER_PIC_CAMPER] = sAnims_Camper, + [TRAINER_PIC_PICNICKER] = sAnims_Picnicker, + [TRAINER_PIC_BUG_MANIAC] = sAnims_BugManiac, + [TRAINER_PIC_POKEMON_BREEDER_M] = sAnims_PokemonBreederM, + [TRAINER_PIC_PSYCHIC_M] = sAnims_PsychicM, + [TRAINER_PIC_PSYCHIC_F] = sAnims_PsychicF, + [TRAINER_PIC_GENTLEMAN] = sAnims_Gentleman, + [TRAINER_PIC_ELITE_FOUR_SIDNEY] = sAnims_EliteFourSidney, + [TRAINER_PIC_ELITE_FOUR_PHOEBE] = sAnims_EliteFourPhoebe, + [TRAINER_PIC_ELITE_FOUR_GLACIA] = sAnims_EliteFourGlacia, + [TRAINER_PIC_ELITE_FOUR_DRAKE] = sAnims_EliteFourDrake, + [TRAINER_PIC_LEADER_ROXANNE] = sAnims_LeaderRoxanne, + [TRAINER_PIC_LEADER_BRAWLY] = sAnims_LeaderBrawly, + [TRAINER_PIC_LEADER_WATTSON] = sAnims_LeaderWattson, + [TRAINER_PIC_LEADER_FLANNERY] = sAnims_LeaderFlannery, + [TRAINER_PIC_LEADER_NORMAN] = sAnims_LeaderNorman, + [TRAINER_PIC_LEADER_WINONA] = sAnims_LeaderWinona, + [TRAINER_PIC_LEADER_TATE_AND_LIZA] = sAnims_LeaderTateAndLiza, + [TRAINER_PIC_LEADER_JUAN] = sAnims_LeaderJuan, + [TRAINER_PIC_SCHOOL_KID_M] = sAnims_SchoolKidM, + [TRAINER_PIC_SCHOOL_KID_F] = sAnims_SchoolKidF, + [TRAINER_PIC_SR_AND_JR] = sAnims_SrAndJr, + [TRAINER_PIC_POKEFAN_M] = sAnims_PokefanM, + [TRAINER_PIC_POKEFAN_F] = sAnims_PokefanF, + [TRAINER_PIC_YOUNGSTER] = sAnims_Youngster, + [TRAINER_PIC_CHAMPION_WALLACE] = sAnims_ChampionWallace, + [TRAINER_PIC_FISHERMAN] = sAnims_Fisherman, + [TRAINER_PIC_CYCLING_TRIATHLETE_M] = sAnims_CyclingTriathleteM, + [TRAINER_PIC_CYCLING_TRIATHLETE_F] = sAnims_CyclingTriathleteF, + [TRAINER_PIC_RUNNING_TRIATHLETE_M] = sAnims_RunningTriathleteM, + [TRAINER_PIC_RUNNING_TRIATHLETE_F] = sAnims_RunningTriathleteF, + [TRAINER_PIC_SWIMMING_TRIATHLETE_M] = sAnims_SwimmingTriathleteM, + [TRAINER_PIC_SWIMMING_TRIATHLETE_F] = sAnims_SwimmingTriathleteF, + [TRAINER_PIC_DRAGON_TAMER] = sAnims_DragonTamer, + [TRAINER_PIC_NINJA_BOY] = sAnims_NinjaBoy, + [TRAINER_PIC_BATTLE_GIRL] = sAnims_BattleGirl, + [TRAINER_PIC_PARASOL_LADY] = sAnims_ParasolLady, + [TRAINER_PIC_SWIMMER_F] = sAnims_SwimmerF, + [TRAINER_PIC_TWINS] = sAnims_Twins, + [TRAINER_PIC_SAILOR] = sAnims_Sailor, + [TRAINER_PIC_MAGMA_ADMIN] = sAnims_MagmaAdmin, + [TRAINER_PIC_WALLY] = sAnims_Wally, + [TRAINER_PIC_BRENDAN] = sAnims_Brendan, + [TRAINER_PIC_MAY] = sAnims_May, + [TRAINER_PIC_BUG_CATCHER] = sAnims_BugCatcher, + [TRAINER_PIC_POKEMON_RANGER_M] = sAnims_PokemonRangerM, + [TRAINER_PIC_POKEMON_RANGER_F] = sAnims_PokemonRangerF, + [TRAINER_PIC_MAGMA_LEADER_MAXIE] = sAnims_MagmaLeaderMaxie, + [TRAINER_PIC_LASS] = sAnims_Lass, + [TRAINER_PIC_YOUNG_COUPLE] = sAnims_YoungCouple, + [TRAINER_PIC_OLD_COUPLE] = sAnims_OldCouple, + [TRAINER_PIC_SIS_AND_BRO] = sAnims_SisAndBro, + [TRAINER_PIC_STEVEN] = sAnims_Steven, + [TRAINER_PIC_SALON_MAIDEN_ANABEL] = sAnims_SalonMaidenAnabel, + [TRAINER_PIC_DOME_ACE_TUCKER] = sAnims_DomeAceTucker, + [TRAINER_PIC_PALACE_MAVEN_SPENSER] = sAnims_PalaceMavenSpenser, + [TRAINER_PIC_ARENA_TYCOON_GRETA] = sAnims_ArenaTycoonGreta, + [TRAINER_PIC_FACTORY_HEAD_NOLAND] = sAnims_FactoryHeadNoland, + [TRAINER_PIC_PIKE_QUEEN_LUCY] = sAnims_PikeQueenLucy, + [TRAINER_PIC_PYRAMID_KING_BRANDON] = sAnims_PyramidKingBrandon, + [TRAINER_PIC_RED] = sAnims_Red, + [TRAINER_PIC_LEAF] = sAnims_Leaf, + [TRAINER_PIC_RS_BRENDAN] = sAnims_RubySapphireBrendan, + [TRAINER_PIC_RS_MAY] = sAnims_RubySapphireMay, }; diff --git a/src/data/trainer_graphics/front_pic_tables.h b/src/data/trainer_graphics/front_pic_tables.h index fc637fc6e..c3408b4c3 100644 --- a/src/data/trainer_graphics/front_pic_tables.h +++ b/src/data/trainer_graphics/front_pic_tables.h @@ -1,290 +1,290 @@ const struct MonCoords gTrainerFrontPicCoords[] = { - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 2}, - {.size = 8, .y_offset = 2}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 2}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 2}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 2}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 2}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, - {.size = 8, .y_offset = 1}, + [TRAINER_PIC_HIKER] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_AQUA_GRUNT_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_POKEMON_BREEDER_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_COOLTRAINER_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_BIRD_KEEPER] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_COLLECTOR] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_AQUA_GRUNT_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_SWIMMER_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_MAGMA_GRUNT_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_EXPERT_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_AQUA_ADMIN_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_BLACK_BELT] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_AQUA_ADMIN_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_AQUA_LEADER_ARCHIE] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_HEX_MANIAC] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_AROMA_LADY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_RUIN_MANIAC] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_INTERVIEWER] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_TUBER_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_TUBER_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_COOLTRAINER_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_LADY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_BEAUTY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_RICH_BOY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_EXPERT_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_POKEMANIAC] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_MAGMA_GRUNT_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_GUITARIST] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_KINDLER] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_CAMPER] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_PICNICKER] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_BUG_MANIAC] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_POKEMON_BREEDER_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_PSYCHIC_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_PSYCHIC_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_GENTLEMAN] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_ELITE_FOUR_SIDNEY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_ELITE_FOUR_PHOEBE] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_ELITE_FOUR_GLACIA] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_ELITE_FOUR_DRAKE] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_LEADER_ROXANNE] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_LEADER_BRAWLY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_LEADER_WATTSON] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_LEADER_FLANNERY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_LEADER_NORMAN] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_LEADER_WINONA] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_LEADER_TATE_AND_LIZA] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_LEADER_JUAN] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_SCHOOL_KID_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_SCHOOL_KID_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_SR_AND_JR] = {.size = 8, .y_offset = 2}, + [TRAINER_PIC_POKEFAN_M] = {.size = 8, .y_offset = 2}, + [TRAINER_PIC_POKEFAN_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_YOUNGSTER] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_CHAMPION_WALLACE] = {.size = 8, .y_offset = 2}, + [TRAINER_PIC_FISHERMAN] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_CYCLING_TRIATHLETE_M] = {.size = 8, .y_offset = 2}, + [TRAINER_PIC_CYCLING_TRIATHLETE_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_RUNNING_TRIATHLETE_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_RUNNING_TRIATHLETE_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_SWIMMING_TRIATHLETE_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_SWIMMING_TRIATHLETE_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_DRAGON_TAMER] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_NINJA_BOY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_BATTLE_GIRL] = {.size = 8, .y_offset = 2}, + [TRAINER_PIC_PARASOL_LADY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_SWIMMER_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_TWINS] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_SAILOR] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_MAGMA_ADMIN] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_WALLY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_BRENDAN] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_MAY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_BUG_CATCHER] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_POKEMON_RANGER_M] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_POKEMON_RANGER_F] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_MAGMA_LEADER_MAXIE] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_LASS] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_YOUNG_COUPLE] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_OLD_COUPLE] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_SIS_AND_BRO] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_STEVEN] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_SALON_MAIDEN_ANABEL] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_DOME_ACE_TUCKER] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_PALACE_MAVEN_SPENSER] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_ARENA_TYCOON_GRETA] = {.size = 8, .y_offset = 2}, + [TRAINER_PIC_FACTORY_HEAD_NOLAND] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_PIKE_QUEEN_LUCY] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_PYRAMID_KING_BRANDON] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_RED] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_LEAF] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_RS_BRENDAN] = {.size = 8, .y_offset = 1}, + [TRAINER_PIC_RS_MAY] = {.size = 8, .y_offset = 1}, }; const struct CompressedSpriteSheet gTrainerFrontPicTable[] = { - gTrainerFrontPic_Hiker, 0x800, 0, - gTrainerFrontPic_AquaGruntM, 0x800, 1, - gTrainerFrontPic_PokemonBreederF, 0x800, 2, - gTrainerFrontPic_CoolTrainerM, 0x800, 3, - gTrainerFrontPic_BirdKeeper, 0x800, 4, - gTrainerFrontPic_Collector, 0x800, 5, - gTrainerFrontPic_AquaGruntF, 0x800, 6, - gTrainerFrontPic_SwimmerM, 0x800, 7, - gTrainerFrontPic_MagmaGruntM, 0x800, 8, - gTrainerFrontPic_ExpertM, 0x800, 9, - gTrainerFrontPic_AquaAdminM, 0x800, 10, - gTrainerFrontPic_BlackBelt, 0x800, 11, - gTrainerFrontPic_AquaAdminF, 0x800, 12, - gTrainerFrontPic_AquaLeaderArchie, 0x800, 13, - gTrainerFrontPic_HexManiac, 0x800, 14, - gTrainerFrontPic_AromaLady, 0x800, 15, - gTrainerFrontPic_RuinManiac, 0x800, 16, - gTrainerFrontPic_Interviewer, 0x800, 17, - gTrainerFrontPic_TuberF, 0x800, 18, - gTrainerFrontPic_TuberM, 0x800, 19, - gTrainerFrontPic_CoolTrainerF, 0x800, 20, - gTrainerFrontPic_Lady, 0x800, 21, - gTrainerFrontPic_Beauty, 0x800, 22, - gTrainerFrontPic_RichBoy, 0x800, 23, - gTrainerFrontPic_ExpertF, 0x800, 24, - gTrainerFrontPic_Pokemaniac, 0x800, 25, - gTrainerFrontPic_MagmaGruntF, 0x800, 26, - gTrainerFrontPic_Guitarist, 0x800, 27, - gTrainerFrontPic_Kindler, 0x800, 28, - gTrainerFrontPic_Camper, 0x800, 29, - gTrainerFrontPic_Picnicker, 0x800, 30, - gTrainerFrontPic_BugManiac, 0x800, 31, - gTrainerFrontPic_PokemonBreederM, 0x800, 32, - gTrainerFrontPic_PsychicM, 0x800, 33, - gTrainerFrontPic_PsychicF, 0x800, 34, - gTrainerFrontPic_Gentleman, 0x800, 35, - gTrainerFrontPic_EliteFourSidney, 0x800, 36, - gTrainerFrontPic_EliteFourPhoebe, 0x800, 37, - gTrainerFrontPic_EliteFourGlacia, 0x800, 38, - gTrainerFrontPic_EliteFourDrake, 0x800, 39, - gTrainerFrontPic_LeaderRoxanne, 0x800, 40, - gTrainerFrontPic_LeaderBrawly, 0x800, 41, - gTrainerFrontPic_LeaderWattson, 0x800, 42, - gTrainerFrontPic_LeaderFlannery, 0x800, 43, - gTrainerFrontPic_LeaderNorman, 0x800, 44, - gTrainerFrontPic_LeaderWinona, 0x800, 45, - gTrainerFrontPic_LeaderTateAndLiza, 0x800, 46, - gTrainerFrontPic_LeaderJuan, 0x800, 47, - gTrainerFrontPic_SchoolKidM, 0x800, 48, - gTrainerFrontPic_SchoolKidF, 0x800, 49, - gTrainerFrontPic_SrAndJr, 0x1000, 50, - gTrainerFrontPic_PokefanM, 0x1000, 51, - gTrainerFrontPic_PokefanF, 0x800, 52, - gTrainerFrontPic_Youngster, 0x800, 53, - gTrainerFrontPic_ChampionWallace, 0x1000, 54, - gTrainerFrontPic_Fisherman, 0x800, 55, - gTrainerFrontPic_CyclingTriathleteM, 0x1000, 56, - gTrainerFrontPic_CyclingTriathleteF, 0x800, 57, - gTrainerFrontPic_RunningTriathleteM, 0x800, 58, - gTrainerFrontPic_RunningTriathleteF, 0x800, 59, - gTrainerFrontPic_SwimmingTriathleteM, 0x800, 60, - gTrainerFrontPic_SwimmingTriathleteF, 0x800, 61, - gTrainerFrontPic_DragonTamer, 0x800, 62, - gTrainerFrontPic_NinjaBoy, 0x800, 63, - gTrainerFrontPic_BattleGirl, 0x1000, 64, - gTrainerFrontPic_ParasolLady, 0x800, 65, - gTrainerFrontPic_SwimmerF, 0x800, 66, - gTrainerFrontPic_Twins, 0x800, 67, - gTrainerFrontPic_Sailor, 0x800, 68, - gTrainerFrontPic_MagmaAdmin, 0x800, 69, - gTrainerFrontPic_Wally, 0x800, 70, - gTrainerFrontPic_Brendan, 0x800, 71, - gTrainerFrontPic_May, 0x800, 72, - gTrainerFrontPic_BugCatcher, 0x800, 73, - gTrainerFrontPic_PokemonRangerM, 0x800, 74, - gTrainerFrontPic_PokemonRangerF, 0x800, 75, - gTrainerFrontPic_MagmaLeaderMaxie, 0x800, 76, - gTrainerFrontPic_Lass, 0x800, 77, - gTrainerFrontPic_YoungCouple, 0x800, 78, - gTrainerFrontPic_OldCouple, 0x800, 79, - gTrainerFrontPic_SisAndBro, 0x800, 80, - gTrainerFrontPic_Steven, 0x800, 81, - gTrainerFrontPic_SalonMaidenAnabel, 0x800, 82, - gTrainerFrontPic_DomeAceTucker, 0x800, 83, - gTrainerFrontPic_PalaceMavenSpenser, 0x800, 84, - gTrainerFrontPic_ArenaTycoonGreta, 0x1000, 85, - gTrainerFrontPic_FactoryHeadNoland, 0x800, 86, - gTrainerFrontPic_PikeQueenLucy, 0x800, 87, - gTrainerFrontPic_PyramidKingBrandon, 0x800, 88, - gTrainerFrontPic_Red, 0x800, 89, - gTrainerFrontPic_Leaf, 0x800, 90, - gTrainerFrontPic_RubySapphireBrendan, 0x800, 91, - gTrainerFrontPic_RubySapphireMay, 0x800, 92, + TRAINER_SPRITE(HIKER, gTrainerFrontPic_Hiker, 0x800), + TRAINER_SPRITE(AQUA_GRUNT_M, gTrainerFrontPic_AquaGruntM, 0x800), + TRAINER_SPRITE(POKEMON_BREEDER_F, gTrainerFrontPic_PokemonBreederF, 0x800), + TRAINER_SPRITE(COOLTRAINER_M, gTrainerFrontPic_CoolTrainerM, 0x800), + TRAINER_SPRITE(BIRD_KEEPER, gTrainerFrontPic_BirdKeeper, 0x800), + TRAINER_SPRITE(COLLECTOR, gTrainerFrontPic_Collector, 0x800), + TRAINER_SPRITE(AQUA_GRUNT_F, gTrainerFrontPic_AquaGruntF, 0x800), + TRAINER_SPRITE(SWIMMER_M, gTrainerFrontPic_SwimmerM, 0x800), + TRAINER_SPRITE(MAGMA_GRUNT_M, gTrainerFrontPic_MagmaGruntM, 0x800), + TRAINER_SPRITE(EXPERT_M, gTrainerFrontPic_ExpertM, 0x800), + TRAINER_SPRITE(AQUA_ADMIN_M, gTrainerFrontPic_AquaAdminM, 0x800), + TRAINER_SPRITE(BLACK_BELT, gTrainerFrontPic_BlackBelt, 0x800), + TRAINER_SPRITE(AQUA_ADMIN_F, gTrainerFrontPic_AquaAdminF, 0x800), + TRAINER_SPRITE(AQUA_LEADER_ARCHIE, gTrainerFrontPic_AquaLeaderArchie, 0x800), + TRAINER_SPRITE(HEX_MANIAC, gTrainerFrontPic_HexManiac, 0x800), + TRAINER_SPRITE(AROMA_LADY, gTrainerFrontPic_AromaLady, 0x800), + TRAINER_SPRITE(RUIN_MANIAC, gTrainerFrontPic_RuinManiac, 0x800), + TRAINER_SPRITE(INTERVIEWER, gTrainerFrontPic_Interviewer, 0x800), + TRAINER_SPRITE(TUBER_F, gTrainerFrontPic_TuberF, 0x800), + TRAINER_SPRITE(TUBER_M, gTrainerFrontPic_TuberM, 0x800), + TRAINER_SPRITE(COOLTRAINER_F, gTrainerFrontPic_CoolTrainerF, 0x800), + TRAINER_SPRITE(LADY, gTrainerFrontPic_Lady, 0x800), + TRAINER_SPRITE(BEAUTY, gTrainerFrontPic_Beauty, 0x800), + TRAINER_SPRITE(RICH_BOY, gTrainerFrontPic_RichBoy, 0x800), + TRAINER_SPRITE(EXPERT_F, gTrainerFrontPic_ExpertF, 0x800), + TRAINER_SPRITE(POKEMANIAC, gTrainerFrontPic_Pokemaniac, 0x800), + TRAINER_SPRITE(MAGMA_GRUNT_F, gTrainerFrontPic_MagmaGruntF, 0x800), + TRAINER_SPRITE(GUITARIST, gTrainerFrontPic_Guitarist, 0x800), + TRAINER_SPRITE(KINDLER, gTrainerFrontPic_Kindler, 0x800), + TRAINER_SPRITE(CAMPER, gTrainerFrontPic_Camper, 0x800), + TRAINER_SPRITE(PICNICKER, gTrainerFrontPic_Picnicker, 0x800), + TRAINER_SPRITE(BUG_MANIAC, gTrainerFrontPic_BugManiac, 0x800), + TRAINER_SPRITE(POKEMON_BREEDER_M, gTrainerFrontPic_PokemonBreederM, 0x800), + TRAINER_SPRITE(PSYCHIC_M, gTrainerFrontPic_PsychicM, 0x800), + TRAINER_SPRITE(PSYCHIC_F, gTrainerFrontPic_PsychicF, 0x800), + TRAINER_SPRITE(GENTLEMAN, gTrainerFrontPic_Gentleman, 0x800), + TRAINER_SPRITE(ELITE_FOUR_SIDNEY, gTrainerFrontPic_EliteFourSidney, 0x800), + TRAINER_SPRITE(ELITE_FOUR_PHOEBE, gTrainerFrontPic_EliteFourPhoebe, 0x800), + TRAINER_SPRITE(ELITE_FOUR_GLACIA, gTrainerFrontPic_EliteFourGlacia, 0x800), + TRAINER_SPRITE(ELITE_FOUR_DRAKE, gTrainerFrontPic_EliteFourDrake, 0x800), + TRAINER_SPRITE(LEADER_ROXANNE, gTrainerFrontPic_LeaderRoxanne, 0x800), + TRAINER_SPRITE(LEADER_BRAWLY, gTrainerFrontPic_LeaderBrawly, 0x800), + TRAINER_SPRITE(LEADER_WATTSON, gTrainerFrontPic_LeaderWattson, 0x800), + TRAINER_SPRITE(LEADER_FLANNERY, gTrainerFrontPic_LeaderFlannery, 0x800), + TRAINER_SPRITE(LEADER_NORMAN, gTrainerFrontPic_LeaderNorman, 0x800), + TRAINER_SPRITE(LEADER_WINONA, gTrainerFrontPic_LeaderWinona, 0x800), + TRAINER_SPRITE(LEADER_TATE_AND_LIZA, gTrainerFrontPic_LeaderTateAndLiza, 0x800), + TRAINER_SPRITE(LEADER_JUAN, gTrainerFrontPic_LeaderJuan, 0x800), + TRAINER_SPRITE(SCHOOL_KID_M, gTrainerFrontPic_SchoolKidM, 0x800), + TRAINER_SPRITE(SCHOOL_KID_F, gTrainerFrontPic_SchoolKidF, 0x800), + TRAINER_SPRITE(SR_AND_JR, gTrainerFrontPic_SrAndJr, 0x1000), + TRAINER_SPRITE(POKEFAN_M, gTrainerFrontPic_PokefanM, 0x1000), + TRAINER_SPRITE(POKEFAN_F, gTrainerFrontPic_PokefanF, 0x800), + TRAINER_SPRITE(YOUNGSTER, gTrainerFrontPic_Youngster, 0x800), + TRAINER_SPRITE(CHAMPION_WALLACE, gTrainerFrontPic_ChampionWallace, 0x1000), + TRAINER_SPRITE(FISHERMAN, gTrainerFrontPic_Fisherman, 0x800), + TRAINER_SPRITE(CYCLING_TRIATHLETE_M, gTrainerFrontPic_CyclingTriathleteM, 0x1000), + TRAINER_SPRITE(CYCLING_TRIATHLETE_F, gTrainerFrontPic_CyclingTriathleteF, 0x800), + TRAINER_SPRITE(RUNNING_TRIATHLETE_M, gTrainerFrontPic_RunningTriathleteM, 0x800), + TRAINER_SPRITE(RUNNING_TRIATHLETE_F, gTrainerFrontPic_RunningTriathleteF, 0x800), + TRAINER_SPRITE(SWIMMING_TRIATHLETE_M, gTrainerFrontPic_SwimmingTriathleteM, 0x800), + TRAINER_SPRITE(SWIMMING_TRIATHLETE_F, gTrainerFrontPic_SwimmingTriathleteF, 0x800), + TRAINER_SPRITE(DRAGON_TAMER, gTrainerFrontPic_DragonTamer, 0x800), + TRAINER_SPRITE(NINJA_BOY, gTrainerFrontPic_NinjaBoy, 0x800), + TRAINER_SPRITE(BATTLE_GIRL, gTrainerFrontPic_BattleGirl, 0x1000), + TRAINER_SPRITE(PARASOL_LADY, gTrainerFrontPic_ParasolLady, 0x800), + TRAINER_SPRITE(SWIMMER_F, gTrainerFrontPic_SwimmerF, 0x800), + TRAINER_SPRITE(TWINS, gTrainerFrontPic_Twins, 0x800), + TRAINER_SPRITE(SAILOR, gTrainerFrontPic_Sailor, 0x800), + TRAINER_SPRITE(MAGMA_ADMIN, gTrainerFrontPic_MagmaAdmin, 0x800), + TRAINER_SPRITE(WALLY, gTrainerFrontPic_Wally, 0x800), + TRAINER_SPRITE(BRENDAN, gTrainerFrontPic_Brendan, 0x800), + TRAINER_SPRITE(MAY, gTrainerFrontPic_May, 0x800), + TRAINER_SPRITE(BUG_CATCHER, gTrainerFrontPic_BugCatcher, 0x800), + TRAINER_SPRITE(POKEMON_RANGER_M, gTrainerFrontPic_PokemonRangerM, 0x800), + TRAINER_SPRITE(POKEMON_RANGER_F, gTrainerFrontPic_PokemonRangerF, 0x800), + TRAINER_SPRITE(MAGMA_LEADER_MAXIE, gTrainerFrontPic_MagmaLeaderMaxie, 0x800), + TRAINER_SPRITE(LASS, gTrainerFrontPic_Lass, 0x800), + TRAINER_SPRITE(YOUNG_COUPLE, gTrainerFrontPic_YoungCouple, 0x800), + TRAINER_SPRITE(OLD_COUPLE, gTrainerFrontPic_OldCouple, 0x800), + TRAINER_SPRITE(SIS_AND_BRO, gTrainerFrontPic_SisAndBro, 0x800), + TRAINER_SPRITE(STEVEN, gTrainerFrontPic_Steven, 0x800), + TRAINER_SPRITE(SALON_MAIDEN_ANABEL, gTrainerFrontPic_SalonMaidenAnabel, 0x800), + TRAINER_SPRITE(DOME_ACE_TUCKER, gTrainerFrontPic_DomeAceTucker, 0x800), + TRAINER_SPRITE(PALACE_MAVEN_SPENSER, gTrainerFrontPic_PalaceMavenSpenser, 0x800), + TRAINER_SPRITE(ARENA_TYCOON_GRETA, gTrainerFrontPic_ArenaTycoonGreta, 0x1000), + TRAINER_SPRITE(FACTORY_HEAD_NOLAND, gTrainerFrontPic_FactoryHeadNoland, 0x800), + TRAINER_SPRITE(PIKE_QUEEN_LUCY, gTrainerFrontPic_PikeQueenLucy, 0x800), + TRAINER_SPRITE(PYRAMID_KING_BRANDON, gTrainerFrontPic_PyramidKingBrandon, 0x800), + TRAINER_SPRITE(RED, gTrainerFrontPic_Red, 0x800), + TRAINER_SPRITE(LEAF, gTrainerFrontPic_Leaf, 0x800), + TRAINER_SPRITE(RS_BRENDAN, gTrainerFrontPic_RubySapphireBrendan, 0x800), + TRAINER_SPRITE(RS_MAY, gTrainerFrontPic_RubySapphireMay, 0x800), }; const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[] = { - gTrainerPalette_Hiker, 0, - gTrainerPalette_AquaGruntM, 1, - gTrainerPalette_PokemonBreederF, 2, - gTrainerPalette_CoolTrainerM, 3, - gTrainerPalette_BirdKeeper, 4, - gTrainerPalette_Collector, 5, - gTrainerPalette_AquaGruntF, 6, - gTrainerPalette_SwimmerM, 7, - gTrainerPalette_MagmaGruntM, 8, - gTrainerPalette_ExpertM, 9, - gTrainerPalette_AquaAdminM, 10, - gTrainerPalette_BlackBelt, 11, - gTrainerPalette_AquaAdminF, 12, - gTrainerPalette_AquaLeaderArchie, 13, - gTrainerPalette_HexManiac, 14, - gTrainerPalette_AromaLady, 15, - gTrainerPalette_RuinManiac, 16, - gTrainerPalette_Interviewer, 17, - gTrainerPalette_TuberF, 18, - gTrainerPalette_TuberM, 19, - gTrainerPalette_CoolTrainerF, 20, - gTrainerPalette_Lady, 21, - gTrainerPalette_Beauty, 22, - gTrainerPalette_RichBoy, 23, - gTrainerPalette_ExpertF, 24, - gTrainerPalette_Pokemaniac, 25, - gTrainerPalette_MagmaGruntF, 26, - gTrainerPalette_Guitarist, 27, - gTrainerPalette_Kindler, 28, - gTrainerPalette_Camper, 29, - gTrainerPalette_Picnicker, 30, - gTrainerPalette_BugManiac, 31, - gTrainerPalette_PokemonBreederM, 32, - gTrainerPalette_PsychicM, 33, - gTrainerPalette_PsychicF, 34, - gTrainerPalette_Gentleman, 35, - gTrainerPalette_EliteFourSidney, 36, - gTrainerPalette_EliteFourPhoebe, 37, - gTrainerPalette_EliteFourGlacia, 38, - gTrainerPalette_EliteFourDrake, 39, - gTrainerPalette_LeaderRoxanne, 40, - gTrainerPalette_LeaderBrawly, 41, - gTrainerPalette_LeaderWattson, 42, - gTrainerPalette_LeaderFlannery, 43, - gTrainerPalette_LeaderNorman, 44, - gTrainerPalette_LeaderWinona, 45, - gTrainerPalette_LeaderTateAndLiza, 46, - gTrainerPalette_LeaderJuan, 47, - gTrainerPalette_SchoolKidM, 48, - gTrainerPalette_SchoolKidF, 49, - gTrainerPalette_SrAndJr, 50, - gTrainerPalette_PokefanM, 51, - gTrainerPalette_PokefanF, 52, - gTrainerPalette_Youngster, 53, - gTrainerPalette_ChampionWallace, 54, - gTrainerPalette_Fisherman, 55, - gTrainerPalette_CyclingTriathleteM, 56, - gTrainerPalette_CyclingTriathleteF, 57, - gTrainerPalette_RunningTriathleteM, 58, - gTrainerPalette_RunningTriathleteF, 59, - gTrainerPalette_SwimmingTriathleteM, 60, - gTrainerPalette_SwimmingTriathleteF, 61, - gTrainerPalette_DragonTamer, 62, - gTrainerPalette_NinjaBoy, 63, - gTrainerPalette_BattleGirl, 64, - gTrainerPalette_ParasolLady, 65, - gTrainerPalette_SwimmerF, 66, - gTrainerPalette_Twins, 67, - gTrainerPalette_Sailor, 68, - gTrainerPalette_MagmaAdmin, 69, - gTrainerPalette_Wally, 70, - gTrainerPalette_Brendan, 71, - gTrainerPalette_May, 72, - gTrainerPalette_BugCatcher, 73, - gTrainerPalette_PokemonRangerM, 74, - gTrainerPalette_PokemonRangerF, 75, - gTrainerPalette_MagmaLeaderMaxie, 76, - gTrainerPalette_Lass, 77, - gTrainerPalette_YoungCouple, 78, - gTrainerPalette_OldCouple, 79, - gTrainerPalette_SisAndBro, 80, - gTrainerPalette_Steven, 81, - gTrainerPalette_SalonMaidenAnabel, 82, - gTrainerPalette_DomeAceTucker, 83, - gTrainerPalette_PalaceMavenSpenser, 84, - gTrainerPalette_ArenaTycoonGreta, 85, - gTrainerPalette_FactoryHeadNoland, 86, - gTrainerPalette_PikeQueenLucy, 87, - gTrainerPalette_PyramidKingBrandon, 88, - gTrainerPalette_Red, 89, - gTrainerPalette_Leaf, 90, - gTrainerPalette_RubySapphireBrendan, 91, - gTrainerPalette_RubySapphireMay, 92, + TRAINER_PAL(HIKER, gTrainerPalette_Hiker), + TRAINER_PAL(AQUA_GRUNT_M, gTrainerPalette_AquaGruntM), + TRAINER_PAL(POKEMON_BREEDER_F, gTrainerPalette_PokemonBreederF), + TRAINER_PAL(COOLTRAINER_M, gTrainerPalette_CoolTrainerM), + TRAINER_PAL(BIRD_KEEPER, gTrainerPalette_BirdKeeper), + TRAINER_PAL(COLLECTOR, gTrainerPalette_Collector), + TRAINER_PAL(AQUA_GRUNT_F, gTrainerPalette_AquaGruntF), + TRAINER_PAL(SWIMMER_M, gTrainerPalette_SwimmerM), + TRAINER_PAL(MAGMA_GRUNT_M, gTrainerPalette_MagmaGruntM), + TRAINER_PAL(EXPERT_M, gTrainerPalette_ExpertM), + TRAINER_PAL(AQUA_ADMIN_M, gTrainerPalette_AquaAdminM), + TRAINER_PAL(BLACK_BELT, gTrainerPalette_BlackBelt), + TRAINER_PAL(AQUA_ADMIN_F, gTrainerPalette_AquaAdminF), + TRAINER_PAL(AQUA_LEADER_ARCHIE, gTrainerPalette_AquaLeaderArchie), + TRAINER_PAL(HEX_MANIAC, gTrainerPalette_HexManiac), + TRAINER_PAL(AROMA_LADY, gTrainerPalette_AromaLady), + TRAINER_PAL(RUIN_MANIAC, gTrainerPalette_RuinManiac), + TRAINER_PAL(INTERVIEWER, gTrainerPalette_Interviewer), + TRAINER_PAL(TUBER_F, gTrainerPalette_TuberF), + TRAINER_PAL(TUBER_M, gTrainerPalette_TuberM), + TRAINER_PAL(COOLTRAINER_F, gTrainerPalette_CoolTrainerF), + TRAINER_PAL(LADY, gTrainerPalette_Lady), + TRAINER_PAL(BEAUTY, gTrainerPalette_Beauty), + TRAINER_PAL(RICH_BOY, gTrainerPalette_RichBoy), + TRAINER_PAL(EXPERT_F, gTrainerPalette_ExpertF), + TRAINER_PAL(POKEMANIAC, gTrainerPalette_Pokemaniac), + TRAINER_PAL(MAGMA_GRUNT_F, gTrainerPalette_MagmaGruntF), + TRAINER_PAL(GUITARIST, gTrainerPalette_Guitarist), + TRAINER_PAL(KINDLER, gTrainerPalette_Kindler), + TRAINER_PAL(CAMPER, gTrainerPalette_Camper), + TRAINER_PAL(PICNICKER, gTrainerPalette_Picnicker), + TRAINER_PAL(BUG_MANIAC, gTrainerPalette_BugManiac), + TRAINER_PAL(POKEMON_BREEDER_M, gTrainerPalette_PokemonBreederM), + TRAINER_PAL(PSYCHIC_M, gTrainerPalette_PsychicM), + TRAINER_PAL(PSYCHIC_F, gTrainerPalette_PsychicF), + TRAINER_PAL(GENTLEMAN, gTrainerPalette_Gentleman), + TRAINER_PAL(ELITE_FOUR_SIDNEY, gTrainerPalette_EliteFourSidney), + TRAINER_PAL(ELITE_FOUR_PHOEBE, gTrainerPalette_EliteFourPhoebe), + TRAINER_PAL(ELITE_FOUR_GLACIA, gTrainerPalette_EliteFourGlacia), + TRAINER_PAL(ELITE_FOUR_DRAKE, gTrainerPalette_EliteFourDrake), + TRAINER_PAL(LEADER_ROXANNE, gTrainerPalette_LeaderRoxanne), + TRAINER_PAL(LEADER_BRAWLY, gTrainerPalette_LeaderBrawly), + TRAINER_PAL(LEADER_WATTSON, gTrainerPalette_LeaderWattson), + TRAINER_PAL(LEADER_FLANNERY, gTrainerPalette_LeaderFlannery), + TRAINER_PAL(LEADER_NORMAN, gTrainerPalette_LeaderNorman), + TRAINER_PAL(LEADER_WINONA, gTrainerPalette_LeaderWinona), + TRAINER_PAL(LEADER_TATE_AND_LIZA, gTrainerPalette_LeaderTateAndLiza), + TRAINER_PAL(LEADER_JUAN, gTrainerPalette_LeaderJuan), + TRAINER_PAL(SCHOOL_KID_M, gTrainerPalette_SchoolKidM), + TRAINER_PAL(SCHOOL_KID_F, gTrainerPalette_SchoolKidF), + TRAINER_PAL(SR_AND_JR, gTrainerPalette_SrAndJr), + TRAINER_PAL(POKEFAN_M, gTrainerPalette_PokefanM), + TRAINER_PAL(POKEFAN_F, gTrainerPalette_PokefanF), + TRAINER_PAL(YOUNGSTER, gTrainerPalette_Youngster), + TRAINER_PAL(CHAMPION_WALLACE, gTrainerPalette_ChampionWallace), + TRAINER_PAL(FISHERMAN, gTrainerPalette_Fisherman), + TRAINER_PAL(CYCLING_TRIATHLETE_M, gTrainerPalette_CyclingTriathleteM), + TRAINER_PAL(CYCLING_TRIATHLETE_F, gTrainerPalette_CyclingTriathleteF), + TRAINER_PAL(RUNNING_TRIATHLETE_M, gTrainerPalette_RunningTriathleteM), + TRAINER_PAL(RUNNING_TRIATHLETE_F, gTrainerPalette_RunningTriathleteF), + TRAINER_PAL(SWIMMING_TRIATHLETE_M, gTrainerPalette_SwimmingTriathleteM), + TRAINER_PAL(SWIMMING_TRIATHLETE_F, gTrainerPalette_SwimmingTriathleteF), + TRAINER_PAL(DRAGON_TAMER, gTrainerPalette_DragonTamer), + TRAINER_PAL(NINJA_BOY, gTrainerPalette_NinjaBoy), + TRAINER_PAL(BATTLE_GIRL, gTrainerPalette_BattleGirl), + TRAINER_PAL(PARASOL_LADY, gTrainerPalette_ParasolLady), + TRAINER_PAL(SWIMMER_F, gTrainerPalette_SwimmerF), + TRAINER_PAL(TWINS, gTrainerPalette_Twins), + TRAINER_PAL(SAILOR, gTrainerPalette_Sailor), + TRAINER_PAL(MAGMA_ADMIN, gTrainerPalette_MagmaAdmin), + TRAINER_PAL(WALLY, gTrainerPalette_Wally), + TRAINER_PAL(BRENDAN, gTrainerPalette_Brendan), + TRAINER_PAL(MAY, gTrainerPalette_May), + TRAINER_PAL(BUG_CATCHER, gTrainerPalette_BugCatcher), + TRAINER_PAL(POKEMON_RANGER_M, gTrainerPalette_PokemonRangerM), + TRAINER_PAL(POKEMON_RANGER_F, gTrainerPalette_PokemonRangerF), + TRAINER_PAL(MAGMA_LEADER_MAXIE, gTrainerPalette_MagmaLeaderMaxie), + TRAINER_PAL(LASS, gTrainerPalette_Lass), + TRAINER_PAL(YOUNG_COUPLE, gTrainerPalette_YoungCouple), + TRAINER_PAL(OLD_COUPLE, gTrainerPalette_OldCouple), + TRAINER_PAL(SIS_AND_BRO, gTrainerPalette_SisAndBro), + TRAINER_PAL(STEVEN, gTrainerPalette_Steven), + TRAINER_PAL(SALON_MAIDEN_ANABEL, gTrainerPalette_SalonMaidenAnabel), + TRAINER_PAL(DOME_ACE_TUCKER, gTrainerPalette_DomeAceTucker), + TRAINER_PAL(PALACE_MAVEN_SPENSER, gTrainerPalette_PalaceMavenSpenser), + TRAINER_PAL(ARENA_TYCOON_GRETA, gTrainerPalette_ArenaTycoonGreta), + TRAINER_PAL(FACTORY_HEAD_NOLAND, gTrainerPalette_FactoryHeadNoland), + TRAINER_PAL(PIKE_QUEEN_LUCY, gTrainerPalette_PikeQueenLucy), + TRAINER_PAL(PYRAMID_KING_BRANDON, gTrainerPalette_PyramidKingBrandon), + TRAINER_PAL(RED, gTrainerPalette_Red), + TRAINER_PAL(LEAF, gTrainerPalette_Leaf), + TRAINER_PAL(RS_BRENDAN, gTrainerPalette_RubySapphireBrendan), + TRAINER_PAL(RS_MAY, gTrainerPalette_RubySapphireMay), }; diff --git a/src/data/trainer_parties.h b/src/data/trainer_parties.h index b4438e5b3..252eed760 100644 --- a/src/data/trainer_parties.h +++ b/src/data/trainer_parties.h @@ -1,4 +1,4 @@ -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sawyer1[] = { { .iv = 0, .lvl = 21, @@ -6,7 +6,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt1[] = { { .iv = 0, .lvl = 32, @@ -14,7 +14,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt2[] = { { .iv = 0, .lvl = 31, @@ -27,7 +27,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt3[] = { { .iv = 0, .lvl = 32, @@ -35,7 +35,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt4[] = { { .iv = 0, .lvl = 32, @@ -43,7 +43,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt5[] = { { .iv = 0, .lvl = 36, @@ -51,7 +51,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt6[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt6[] = { { .iv = 0, .lvl = 36, @@ -59,7 +59,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt6[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt7[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt7[] = { { .iv = 0, .lvl = 36, @@ -67,7 +67,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt7[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Gabrielle1[] = { { .iv = 0, .lvl = 26, @@ -100,7 +100,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt8[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt8[] = { { .iv = 0, .lvl = 9, @@ -108,7 +108,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt8[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marcel[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Marcel[] = { { .iv = 100, .lvl = 29, @@ -121,7 +121,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marcel[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alberto[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Alberto[] = { { .iv = 0, .lvl = 30, @@ -134,7 +134,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alberto[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ed[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ed[] = { { .iv = 0, .lvl = 30, @@ -147,7 +147,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ed[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt9[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt9[] = { { .iv = 0, .lvl = 36, @@ -155,7 +155,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt9[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Declan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Declan[] = { { .iv = 0, .lvl = 34, @@ -163,7 +163,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Declan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt10[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt10[] = { { .iv = 0, .lvl = 11, @@ -171,7 +171,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt10[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt11[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt11[] = { { .iv = 0, .lvl = 27, @@ -184,7 +184,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt11[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt12[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt12[] = { { .iv = 0, .lvl = 27, @@ -197,7 +197,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt12[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt13[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt13[] = { { .iv = 0, .lvl = 26, @@ -215,7 +215,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt13[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt14[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt14[] = { { .iv = 0, .lvl = 15, @@ -223,7 +223,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt14[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt15[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt15[] = { { .iv = 0, .lvl = 14, @@ -236,7 +236,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt15[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt16[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt16[] = { { .iv = 0, .lvl = 32, @@ -244,7 +244,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt16[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt17[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt17[] = { { .iv = 0, .lvl = 32, @@ -252,7 +252,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt17[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt18[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt18[] = { { .iv = 0, .lvl = 32, @@ -260,7 +260,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt18[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt19[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt19[] = { { .iv = 0, .lvl = 30, @@ -273,7 +273,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt19[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt20[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt20[] = { { .iv = 0, .lvl = 28, @@ -281,7 +281,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt20[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt21[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt21[] = { { .iv = 0, .lvl = 32, @@ -289,7 +289,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt21[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt22[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt22[] = { { .iv = 0, .lvl = 32, @@ -297,7 +297,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt22[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fredrick[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Fredrick[] = { { .iv = 100, .lvl = 30, @@ -310,7 +310,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fredrick[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Matt[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Matt[] = { { .iv = 50, .lvl = 34, @@ -323,7 +323,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Matt[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Zander[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Zander[] = { { .iv = 0, .lvl = 31, @@ -331,7 +331,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Zander[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelly1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shelly1[] = { { .iv = 50, .lvl = 28, @@ -344,7 +344,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelly1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelly2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shelly2[] = { { .iv = 100, .lvl = 37, @@ -357,7 +357,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelly2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Archie[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Archie[] = { { .iv = 150, .lvl = 41, @@ -375,7 +375,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Archie[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leah[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Leah[] = { { .iv = 0, .lvl = 31, @@ -383,7 +383,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leah[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Daisy[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Daisy[] = { { .iv = 0, .lvl = 14, @@ -396,7 +396,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Daisy[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Rose1[] = { { .iv = 0, .lvl = 14, @@ -414,7 +414,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose1[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Felix[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Felix[] = { { .iv = 0, .lvl = 43, @@ -429,7 +429,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Felix[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Violet[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Violet[] = { { .iv = 0, .lvl = 26, @@ -442,7 +442,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Violet[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Rose2[] = { { .iv = 10, .lvl = 26, @@ -455,7 +455,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Rose3[] = { { .iv = 20, .lvl = 28, @@ -473,7 +473,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Rose4[] = { { .iv = 30, .lvl = 31, @@ -491,7 +491,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Rose5[] = { { .iv = 40, .lvl = 34, @@ -509,7 +509,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rose5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty1[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Dusty1[] = { { .iv = 50, .lvl = 23, @@ -518,7 +518,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty1[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Chip[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Chip[] = { { .iv = 50, .lvl = 27, @@ -539,7 +539,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Chip[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Foster[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Foster[] = { { .iv = 100, .lvl = 25, @@ -554,7 +554,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Foster[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty2[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Dusty2[] = { { .iv = 60, .lvl = 27, @@ -563,7 +563,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty2[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty3[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Dusty3[] = { { .iv = 70, .lvl = 30, @@ -572,7 +572,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty3[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty4[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Dusty4[] = { { .iv = 80, .lvl = 33, @@ -581,7 +581,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty4[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty5[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Dusty5[] = { { .iv = 90, .lvl = 36, @@ -590,7 +590,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Dusty5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_GabbyAndTy1[] = { { .iv = 50, .lvl = 17, @@ -603,7 +603,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_GabbyAndTy2[] = { { .iv = 100, .lvl = 27, @@ -616,7 +616,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_GabbyAndTy3[] = { { .iv = 150, .lvl = 30, @@ -629,7 +629,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_GabbyAndTy4[] = { { .iv = 200, .lvl = 33, @@ -642,7 +642,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_GabbyAndTy5[] = { { .iv = 250, .lvl = 36, @@ -655,7 +655,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_GabbyAndTy5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_GabbyAndTy6[] = { +static const struct TrainerMonNoItemCustomMoves sParty_GabbyAndTy6[] = { { .iv = 250, .lvl = 39, @@ -670,7 +670,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_GabbyAndTy6[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lola1[] = { { .iv = 10, .lvl = 12, @@ -683,7 +683,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Austina[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Austina[] = { { .iv = 0, .lvl = 26, @@ -691,7 +691,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Austina[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gwen[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Gwen[] = { { .iv = 0, .lvl = 26, @@ -699,7 +699,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gwen[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lola2[] = { { .iv = 10, .lvl = 26, @@ -712,7 +712,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lola3[] = { { .iv = 20, .lvl = 29, @@ -725,7 +725,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lola4[] = { { .iv = 30, .lvl = 32, @@ -738,7 +738,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lola5[] = { { .iv = 40, .lvl = 35, @@ -751,7 +751,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lola5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky1[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Ricky1[] = { { .iv = 10, .lvl = 13, @@ -760,7 +760,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Simon[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Simon[] = { { .iv = 0, .lvl = 12, @@ -773,7 +773,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Simon[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Charlie[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Charlie[] = { { .iv = 0, .lvl = 26, @@ -781,7 +781,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Charlie[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky2[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Ricky2[] = { { .iv = 10, .lvl = 27, @@ -790,7 +790,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky2[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky3[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Ricky3[] = { { .iv = 20, .lvl = 30, @@ -799,7 +799,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky3[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky4[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Ricky4[] = { { .iv = 30, .lvl = 33, @@ -808,7 +808,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky4[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky5[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Ricky5[] = { { .iv = 40, .lvl = 36, @@ -817,7 +817,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Ricky5[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Randall[] = { +static const struct TrainerMonItemCustomMoves sParty_Randall[] = { { .iv = 255, .lvl = 26, @@ -827,7 +827,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Randall[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Parker[] = { +static const struct TrainerMonItemCustomMoves sParty_Parker[] = { { .iv = 255, .lvl = 26, @@ -837,7 +837,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Parker[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_George[] = { +static const struct TrainerMonItemCustomMoves sParty_George[] = { { .iv = 255, .lvl = 26, @@ -847,7 +847,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_George[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Berke[] = { +static const struct TrainerMonItemCustomMoves sParty_Berke[] = { { .iv = 255, .lvl = 26, @@ -857,7 +857,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Berke[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Braxton[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Braxton[] = { { .iv = 100, .lvl = 28, @@ -890,7 +890,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Braxton[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vincent[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Vincent[] = { { .iv = 100, .lvl = 44, @@ -908,7 +908,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vincent[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leroy[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Leroy[] = { { .iv = 100, .lvl = 46, @@ -921,7 +921,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leroy[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Wilton1[] = { { .iv = 100, .lvl = 17, @@ -939,7 +939,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edgar[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Edgar[] = { { .iv = 100, .lvl = 43, @@ -952,7 +952,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edgar[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Albert[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Albert[] = { { .iv = 100, .lvl = 43, @@ -965,7 +965,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Albert[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Samuel[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Samuel[] = { { .iv = 100, .lvl = 42, @@ -983,7 +983,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Samuel[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vito[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Vito[] = { { .iv = 100, .lvl = 42, @@ -1006,7 +1006,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vito[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Owen[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Owen[] = { { .iv = 100, .lvl = 42, @@ -1024,7 +1024,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Owen[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Wilton2[] = { { .iv = 110, .lvl = 26, @@ -1042,7 +1042,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Wilton3[] = { { .iv = 120, .lvl = 29, @@ -1060,7 +1060,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Wilton4[] = { { .iv = 130, .lvl = 32, @@ -1078,7 +1078,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Wilton5[] = { { .iv = 140, .lvl = 35, @@ -1096,7 +1096,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wilton5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Warren[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Warren[] = { { .iv = 100, .lvl = 33, @@ -1109,7 +1109,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Warren[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Mary[] = { +static const struct TrainerMonItemCustomMoves sParty_Mary[] = { { .iv = 255, .lvl = 26, @@ -1119,7 +1119,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Mary[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Alexia[] = { +static const struct TrainerMonItemCustomMoves sParty_Alexia[] = { { .iv = 255, .lvl = 26, @@ -1129,7 +1129,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Alexia[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Jody[] = { +static const struct TrainerMonItemCustomMoves sParty_Jody[] = { { .iv = 255, .lvl = 26, @@ -1139,7 +1139,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Jody[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Wendy[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Wendy[] = { { .iv = 100, .lvl = 29, @@ -1160,7 +1160,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Wendy[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Keira[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Keira[] = { { .iv = 100, .lvl = 45, @@ -1173,7 +1173,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Keira[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brooke1[] = { { .iv = 100, .lvl = 17, @@ -1191,7 +1191,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jennifer[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jennifer[] = { { .iv = 200, .lvl = 30, @@ -1199,7 +1199,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jennifer[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hope[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Hope[] = { { .iv = 100, .lvl = 45, @@ -1207,7 +1207,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hope[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shannon[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shannon[] = { { .iv = 100, .lvl = 45, @@ -1215,7 +1215,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shannon[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Michelle[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Michelle[] = { { .iv = 100, .lvl = 42, @@ -1233,7 +1233,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Michelle[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Caroline[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Caroline[] = { { .iv = 100, .lvl = 43, @@ -1246,7 +1246,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Caroline[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Julie[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Julie[] = { { .iv = 100, .lvl = 42, @@ -1264,7 +1264,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Julie[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brooke2[] = { { .iv = 110, .lvl = 26, @@ -1282,7 +1282,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brooke3[] = { { .iv = 120, .lvl = 29, @@ -1300,7 +1300,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brooke4[] = { { .iv = 130, .lvl = 32, @@ -1318,7 +1318,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brooke5[] = { { .iv = 140, .lvl = 34, @@ -1336,7 +1336,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brooke5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Patricia[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Patricia[] = { { .iv = 0, .lvl = 41, @@ -1349,7 +1349,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Patricia[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kindra[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kindra[] = { { .iv = 0, .lvl = 30, @@ -1362,7 +1362,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kindra[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tammy[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tammy[] = { { .iv = 0, .lvl = 29, @@ -1375,7 +1375,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tammy[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Valerie1[] = { { .iv = 0, .lvl = 32, @@ -1383,7 +1383,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tasha[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tasha[] = { { .iv = 50, .lvl = 32, @@ -1391,7 +1391,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tasha[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Valerie2[] = { { .iv = 10, .lvl = 31, @@ -1404,7 +1404,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Valerie3[] = { { .iv = 20, .lvl = 35, @@ -1417,7 +1417,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Valerie4[] = { { .iv = 30, .lvl = 40, @@ -1430,7 +1430,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Valerie5[] = { { .iv = 40, .lvl = 42, @@ -1448,7 +1448,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Valerie5[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy1[] = { +static const struct TrainerMonItemDefaultMoves sParty_Cindy1[] = { { .iv = 0, .lvl = 7, @@ -1457,7 +1457,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy1[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Daphne[] = { +static const struct TrainerMonItemCustomMoves sParty_Daphne[] = { { .iv = 100, .lvl = 39, @@ -1474,7 +1474,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Daphne[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt23[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt23[] = { { .iv = 0, .lvl = 26, @@ -1492,7 +1492,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt23[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Cindy2[] = { +static const struct TrainerMonItemCustomMoves sParty_Cindy2[] = { { .iv = 0, .lvl = 11, @@ -1502,7 +1502,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Cindy2[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Brianna[] = { +static const struct TrainerMonItemDefaultMoves sParty_Brianna[] = { { .iv = 150, .lvl = 40, @@ -1511,7 +1511,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Brianna[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Naomi[] = { +static const struct TrainerMonItemDefaultMoves sParty_Naomi[] = { { .iv = 100, .lvl = 45, @@ -1520,7 +1520,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Naomi[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy3[] = { +static const struct TrainerMonItemDefaultMoves sParty_Cindy3[] = { { .iv = 10, .lvl = 27, @@ -1529,7 +1529,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy3[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy4[] = { +static const struct TrainerMonItemDefaultMoves sParty_Cindy4[] = { { .iv = 20, .lvl = 30, @@ -1538,7 +1538,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy4[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy5[] = { +static const struct TrainerMonItemDefaultMoves sParty_Cindy5[] = { { .iv = 30, .lvl = 33, @@ -1547,7 +1547,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Cindy5[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Cindy6[] = { +static const struct TrainerMonItemCustomMoves sParty_Cindy6[] = { { .iv = 40, .lvl = 36, @@ -1557,7 +1557,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Cindy6[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Melissa[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Melissa[] = { { .iv = 0, .lvl = 21, @@ -1565,7 +1565,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Melissa[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sheila[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sheila[] = { { .iv = 0, .lvl = 21, @@ -1573,7 +1573,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sheila[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shirley[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shirley[] = { { .iv = 0, .lvl = 21, @@ -1581,7 +1581,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shirley[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica1[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Jessica1[] = { { .iv = 0, .lvl = 29, @@ -1596,7 +1596,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Connie[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Connie[] = { { .iv = 100, .lvl = 40, @@ -1604,7 +1604,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Connie[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bridget[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Bridget[] = { { .iv = 150, .lvl = 40, @@ -1612,7 +1612,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bridget[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Olivia[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Olivia[] = { { .iv = 100, .lvl = 35, @@ -1633,7 +1633,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Olivia[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tiffany[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tiffany[] = { { .iv = 100, .lvl = 39, @@ -1646,7 +1646,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tiffany[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica2[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Jessica2[] = { { .iv = 10, .lvl = 35, @@ -1661,7 +1661,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica2[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica3[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Jessica3[] = { { .iv = 20, .lvl = 38, @@ -1676,7 +1676,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica3[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica4[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Jessica4[] = { { .iv = 30, .lvl = 41, @@ -1691,7 +1691,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica4[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica5[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Jessica5[] = { { .iv = 40, .lvl = 44, @@ -1706,7 +1706,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Jessica5[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Winston1[] = { +static const struct TrainerMonItemDefaultMoves sParty_Winston1[] = { { .iv = 0, .lvl = 7, @@ -1715,7 +1715,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Winston1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mollie[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Mollie[] = { { .iv = 0, .lvl = 33, @@ -1728,7 +1728,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mollie[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Garret[] = { +static const struct TrainerMonItemDefaultMoves sParty_Garret[] = { { .iv = 0, .lvl = 45, @@ -1737,7 +1737,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Garret[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Winston2[] = { +static const struct TrainerMonItemDefaultMoves sParty_Winston2[] = { { .iv = 0, .lvl = 27, @@ -1746,7 +1746,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Winston2[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Winston3[] = { +static const struct TrainerMonItemDefaultMoves sParty_Winston3[] = { { .iv = 0, .lvl = 30, @@ -1755,7 +1755,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Winston3[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Winston4[] = { +static const struct TrainerMonItemDefaultMoves sParty_Winston4[] = { { .iv = 0, .lvl = 33, @@ -1764,7 +1764,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Winston4[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Winston5[] = { +static const struct TrainerMonItemCustomMoves sParty_Winston5[] = { { .iv = 0, .lvl = 36, @@ -1774,7 +1774,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Winston5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Steve1[] = { { .iv = 0, .lvl = 19, @@ -1782,7 +1782,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Thalia1[] = { { .iv = 0, .lvl = 25, @@ -1795,7 +1795,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mark[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Mark[] = { { .iv = 0, .lvl = 31, @@ -1803,7 +1803,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mark[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt24[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt24[] = { { .iv = 0, .lvl = 20, @@ -1811,7 +1811,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt24[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Steve2[] = { { .iv = 10, .lvl = 27, @@ -1819,7 +1819,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Steve3[] = { { .iv = 20, .lvl = 29, @@ -1832,7 +1832,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Steve4[] = { { .iv = 30, .lvl = 32, @@ -1845,7 +1845,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Steve5[] = { { .iv = 40, .lvl = 35, @@ -1858,7 +1858,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Steve5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Luis[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Luis[] = { { .iv = 0, .lvl = 26, @@ -1866,7 +1866,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Luis[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dominik[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dominik[] = { { .iv = 0, .lvl = 26, @@ -1874,7 +1874,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dominik[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Douglas[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Douglas[] = { { .iv = 10, .lvl = 24, @@ -1887,7 +1887,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Douglas[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darrin[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Darrin[] = { { .iv = 10, .lvl = 24, @@ -1905,7 +1905,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darrin[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tony1[] = { { .iv = 0, .lvl = 26, @@ -1913,7 +1913,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerome[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jerome[] = { { .iv = 0, .lvl = 26, @@ -1921,7 +1921,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerome[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Matthew[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Matthew[] = { { .iv = 0, .lvl = 26, @@ -1929,7 +1929,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Matthew[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_David[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_David[] = { { .iv = 0, .lvl = 25, @@ -1942,7 +1942,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_David[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Spencer[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Spencer[] = { { .iv = 0, .lvl = 33, @@ -1955,7 +1955,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Spencer[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Roland[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Roland[] = { { .iv = 0, .lvl = 34, @@ -1963,7 +1963,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Roland[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nolen[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nolen[] = { { .iv = 0, .lvl = 34, @@ -1971,7 +1971,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nolen[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Stan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Stan[] = { { .iv = 0, .lvl = 34, @@ -1979,7 +1979,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Stan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Barry[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Barry[] = { { .iv = 0, .lvl = 34, @@ -1987,7 +1987,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Barry[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dean[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dean[] = { { .iv = 0, .lvl = 31, @@ -2005,7 +2005,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dean[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rodney[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Rodney[] = { { .iv = 0, .lvl = 34, @@ -2013,7 +2013,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rodney[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Richard[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Richard[] = { { .iv = 0, .lvl = 34, @@ -2021,7 +2021,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Richard[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Herman[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Herman[] = { { .iv = 0, .lvl = 33, @@ -2034,7 +2034,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Herman[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Santiago[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Santiago[] = { { .iv = 0, .lvl = 33, @@ -2047,7 +2047,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Santiago[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gilbert[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Gilbert[] = { { .iv = 0, .lvl = 34, @@ -2055,7 +2055,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gilbert[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Franklin[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Franklin[] = { { .iv = 0, .lvl = 34, @@ -2063,7 +2063,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Franklin[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kevin[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kevin[] = { { .iv = 0, .lvl = 34, @@ -2071,7 +2071,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kevin[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jack[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jack[] = { { .iv = 0, .lvl = 34, @@ -2079,7 +2079,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jack[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dudley[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dudley[] = { { .iv = 0, .lvl = 33, @@ -2097,7 +2097,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dudley[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chad[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Chad[] = { { .iv = 0, .lvl = 33, @@ -2110,7 +2110,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chad[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tony2[] = { { .iv = 10, .lvl = 30, @@ -2118,7 +2118,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tony3[] = { { .iv = 20, .lvl = 33, @@ -2126,7 +2126,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tony4[] = { { .iv = 30, .lvl = 34, @@ -2139,7 +2139,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tony5[] = { { .iv = 40, .lvl = 37, @@ -2152,7 +2152,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tony5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Takao[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Takao[] = { { .iv = 127, .lvl = 13, @@ -2160,7 +2160,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Takao[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hitoshi[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Hitoshi[] = { { .iv = 50, .lvl = 32, @@ -2173,7 +2173,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hitoshi[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kiyo[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kiyo[] = { { .iv = 100, .lvl = 34, @@ -2181,7 +2181,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kiyo[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koichi[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Koichi[] = { { .iv = 100, .lvl = 24, @@ -2194,7 +2194,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koichi[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nob1[] = { { .iv = 100, .lvl = 19, @@ -2202,7 +2202,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nob2[] = { { .iv = 110, .lvl = 27, @@ -2210,7 +2210,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nob3[] = { { .iv = 120, .lvl = 29, @@ -2223,7 +2223,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nob4[] = { { .iv = 130, .lvl = 31, @@ -2241,7 +2241,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nob4[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Nob5[] = { +static const struct TrainerMonItemDefaultMoves sParty_Nob5[] = { { .iv = 140, .lvl = 33, @@ -2268,7 +2268,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Nob5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Yuji[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Yuji[] = { { .iv = 100, .lvl = 26, @@ -2281,7 +2281,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Yuji[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Daisuke[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Daisuke[] = { { .iv = 100, .lvl = 19, @@ -2289,7 +2289,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Daisuke[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Atsushi[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Atsushi[] = { { .iv = 100, .lvl = 32, @@ -2297,7 +2297,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Atsushi[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Kirk[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Kirk[] = { { .iv = 100, .lvl = 17, @@ -2312,7 +2312,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Kirk[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt25[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt25[] = { { .iv = 0, .lvl = 31, @@ -2325,7 +2325,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt25[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt26[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt26[] = { { .iv = 0, .lvl = 32, @@ -2333,7 +2333,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt26[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shawn[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shawn[] = { { .iv = 100, .lvl = 17, @@ -2346,7 +2346,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shawn[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Fernando1[] = { { .iv = 0, .lvl = 30, @@ -2359,7 +2359,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dalton1[] = { { .iv = 0, .lvl = 15, @@ -2372,7 +2372,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dalton2[] = { { .iv = 10, .lvl = 25, @@ -2390,7 +2390,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dalton3[] = { { .iv = 20, .lvl = 28, @@ -2408,7 +2408,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dalton4[] = { { .iv = 30, .lvl = 31, @@ -2426,7 +2426,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dalton5[] = { { .iv = 40, .lvl = 34, @@ -2444,7 +2444,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dalton5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cole[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cole[] = { { .iv = 100, .lvl = 23, @@ -2452,7 +2452,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cole[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeff[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jeff[] = { { .iv = 100, .lvl = 22, @@ -2465,7 +2465,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeff[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Axle[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Axle[] = { { .iv = 100, .lvl = 23, @@ -2473,7 +2473,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Axle[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jace[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jace[] = { { .iv = 100, .lvl = 23, @@ -2481,7 +2481,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jace[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Keegan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Keegan[] = { { .iv = 120, .lvl = 23, @@ -2489,7 +2489,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Keegan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Bernie1[] = { { .iv = 0, .lvl = 18, @@ -2502,7 +2502,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Bernie2[] = { { .iv = 10, .lvl = 26, @@ -2515,7 +2515,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Bernie3[] = { { .iv = 20, .lvl = 29, @@ -2528,7 +2528,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Bernie4[] = { { .iv = 30, .lvl = 32, @@ -2541,7 +2541,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Bernie5[] = { { .iv = 40, .lvl = 35, @@ -2554,7 +2554,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bernie5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Drew[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Drew[] = { { .iv = 0, .lvl = 23, @@ -2563,7 +2563,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Drew[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Beau[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Beau[] = { { .iv = 0, .lvl = 21, @@ -2584,7 +2584,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Beau[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Larry[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Larry[] = { { .iv = 0, .lvl = 18, @@ -2592,7 +2592,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Larry[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shane[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shane[] = { { .iv = 0, .lvl = 18, @@ -2605,7 +2605,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shane[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Justin[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Justin[] = { { .iv = 0, .lvl = 24, @@ -2613,7 +2613,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Justin[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ethan1[] = { { .iv = 0, .lvl = 20, @@ -2626,7 +2626,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Autumn[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Autumn[] = { { .iv = 0, .lvl = 21, @@ -2634,7 +2634,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Autumn[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Travis[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Travis[] = { { .iv = 0, .lvl = 18, @@ -2642,7 +2642,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Travis[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ethan2[] = { { .iv = 10, .lvl = 26, @@ -2655,7 +2655,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ethan3[] = { { .iv = 20, .lvl = 29, @@ -2668,7 +2668,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ethan4[] = { { .iv = 30, .lvl = 31, @@ -2686,7 +2686,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ethan5[] = { { .iv = 40, .lvl = 34, @@ -2704,7 +2704,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ethan5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brent[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brent[] = { { .iv = 100, .lvl = 26, @@ -2712,7 +2712,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brent[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Donald[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Donald[] = { { .iv = 100, .lvl = 24, @@ -2730,7 +2730,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Donald[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Taylor[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Taylor[] = { { .iv = 100, .lvl = 27, @@ -2748,7 +2748,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Taylor[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jeffrey1[] = { { .iv = 0, .lvl = 27, @@ -2766,7 +2766,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Derek[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Derek[] = { { .iv = 150, .lvl = 16, @@ -2779,7 +2779,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Derek[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jeffrey2[] = { { .iv = 10, .lvl = 31, @@ -2797,7 +2797,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jeffrey3[] = { { .iv = 20, .lvl = 34, @@ -2815,7 +2815,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jeffrey4[] = { { .iv = 30, .lvl = 36, @@ -2838,7 +2838,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jeffrey4[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Jeffrey5[] = { +static const struct TrainerMonItemDefaultMoves sParty_Jeffrey5[] = { { .iv = 40, .lvl = 38, @@ -2871,7 +2871,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Jeffrey5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Edward[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Edward[] = { { .iv = 0, .lvl = 15, @@ -2880,7 +2880,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Edward[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Preston[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Preston[] = { { .iv = 100, .lvl = 36, @@ -2888,7 +2888,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Preston[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Virgil[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Virgil[] = { { .iv = 100, .lvl = 36, @@ -2896,7 +2896,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Virgil[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Blake[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Blake[] = { { .iv = 100, .lvl = 36, @@ -2904,7 +2904,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Blake[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_William[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_William[] = { { .iv = 0, .lvl = 26, @@ -2922,7 +2922,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_William[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joshua[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Joshua[] = { { .iv = 0, .lvl = 41, @@ -2935,7 +2935,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joshua[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cameron1[] = { { .iv = 0, .lvl = 31, @@ -2943,7 +2943,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cameron2[] = { { .iv = 10, .lvl = 33, @@ -2956,7 +2956,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cameron3[] = { { .iv = 20, .lvl = 38, @@ -2969,7 +2969,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cameron4[] = { { .iv = 30, .lvl = 41, @@ -2982,7 +2982,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cameron5[] = { { .iv = 40, .lvl = 45, @@ -2995,7 +2995,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cameron5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Jaclyn[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Jaclyn[] = { { .iv = 0, .lvl = 16, @@ -3004,7 +3004,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Jaclyn[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hannah[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Hannah[] = { { .iv = 100, .lvl = 36, @@ -3012,7 +3012,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hannah[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Samantha[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Samantha[] = { { .iv = 100, .lvl = 36, @@ -3020,7 +3020,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Samantha[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maura[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Maura[] = { { .iv = 100, .lvl = 36, @@ -3028,7 +3028,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maura[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kayla[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kayla[] = { { .iv = 0, .lvl = 26, @@ -3046,7 +3046,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kayla[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alexis[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Alexis[] = { { .iv = 0, .lvl = 41, @@ -3059,7 +3059,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alexis[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jacki1[] = { { .iv = 0, .lvl = 30, @@ -3072,7 +3072,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jacki2[] = { { .iv = 10, .lvl = 34, @@ -3085,7 +3085,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jacki3[] = { { .iv = 20, .lvl = 37, @@ -3098,7 +3098,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jacki4[] = { { .iv = 30, .lvl = 40, @@ -3111,7 +3111,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jacki5[] = { { .iv = 40, .lvl = 43, @@ -3124,7 +3124,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacki5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Walter1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Walter1[] = { { .iv = 0, .lvl = 29, @@ -3132,7 +3132,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Walter1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Micah[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Micah[] = { { .iv = 0, .lvl = 44, @@ -3145,7 +3145,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Micah[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thomas[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Thomas[] = { { .iv = 0, .lvl = 45, @@ -3153,7 +3153,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thomas[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Walter2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Walter2[] = { { .iv = 10, .lvl = 34, @@ -3161,7 +3161,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Walter2[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter3[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Walter3[] = { { .iv = 20, .lvl = 36, @@ -3176,7 +3176,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter3[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter4[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Walter4[] = { { .iv = 30, .lvl = 39, @@ -3191,7 +3191,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter4[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter5[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Walter5[] = { { .iv = 40, .lvl = 41, @@ -3212,7 +3212,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Walter5[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Sidney[] = { +static const struct TrainerMonItemCustomMoves sParty_Sidney[] = { { .iv = 250, .lvl = 46, @@ -3250,7 +3250,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Sidney[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Phoebe[] = { +static const struct TrainerMonItemCustomMoves sParty_Phoebe[] = { { .iv = 250, .lvl = 48, @@ -3288,7 +3288,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Phoebe[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Glacia[] = { +static const struct TrainerMonItemCustomMoves sParty_Glacia[] = { { .iv = 250, .lvl = 50, @@ -3326,7 +3326,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Glacia[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Drake[] = { +static const struct TrainerMonItemCustomMoves sParty_Drake[] = { { .iv = 250, .lvl = 52, @@ -3364,7 +3364,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Drake[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne1[] = { +static const struct TrainerMonItemCustomMoves sParty_Roxanne1[] = { { .iv = 100, .lvl = 12, @@ -3388,7 +3388,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne1[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Brawly1[] = { +static const struct TrainerMonItemCustomMoves sParty_Brawly1[] = { { .iv = 100, .lvl = 16, @@ -3412,7 +3412,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Brawly1[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Wattson1[] = { +static const struct TrainerMonItemCustomMoves sParty_Wattson1[] = { { .iv = 200, .lvl = 20, @@ -3443,7 +3443,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Wattson1[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Flannery1[] = { +static const struct TrainerMonItemCustomMoves sParty_Flannery1[] = { { .iv = 200, .lvl = 24, @@ -3474,7 +3474,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Flannery1[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Norman1[] = { +static const struct TrainerMonItemCustomMoves sParty_Norman1[] = { { .iv = 200, .lvl = 27, @@ -3505,7 +3505,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Norman1[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Winona1[] = { +static const struct TrainerMonItemCustomMoves sParty_Winona1[] = { { .iv = 210, .lvl = 29, @@ -3543,7 +3543,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Winona1[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza1[] = { +static const struct TrainerMonItemCustomMoves sParty_TateAndLiza1[] = { { .iv = 250, .lvl = 41, @@ -3574,7 +3574,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza1[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Juan1[] = { +static const struct TrainerMonItemCustomMoves sParty_Juan1[] = { { .iv = 200, .lvl = 41, @@ -3612,7 +3612,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Juan1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jerry1[] = { { .iv = 10, .lvl = 9, @@ -3620,7 +3620,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ted[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ted[] = { { .iv = 10, .lvl = 17, @@ -3628,7 +3628,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ted[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paul[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Paul[] = { { .iv = 10, .lvl = 15, @@ -3646,7 +3646,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paul[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jerry2[] = { { .iv = 20, .lvl = 26, @@ -3659,7 +3659,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jerry3[] = { { .iv = 30, .lvl = 29, @@ -3672,7 +3672,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jerry4[] = { { .iv = 40, .lvl = 32, @@ -3685,7 +3685,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jerry5[] = { { .iv = 50, .lvl = 34, @@ -3703,7 +3703,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jerry5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Karen1[] = { { .iv = 10, .lvl = 9, @@ -3711,7 +3711,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Georgia[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Georgia[] = { { .iv = 10, .lvl = 16, @@ -3724,7 +3724,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Georgia[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Karen2[] = { { .iv = 20, .lvl = 26, @@ -3737,7 +3737,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Karen3[] = { { .iv = 30, .lvl = 29, @@ -3750,7 +3750,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Karen4[] = { { .iv = 40, .lvl = 32, @@ -3763,7 +3763,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Karen5[] = { { .iv = 50, .lvl = 35, @@ -3776,7 +3776,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Karen5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_KateAndJoy[] = { +static const struct TrainerMonNoItemCustomMoves sParty_KateAndJoy[] = { { .iv = 0, .lvl = 30, @@ -3791,7 +3791,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_KateAndJoy[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg1[] = { +static const struct TrainerMonNoItemCustomMoves sParty_AnnaAndMeg1[] = { { .iv = 0, .lvl = 15, @@ -3806,7 +3806,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg1[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg2[] = { +static const struct TrainerMonNoItemCustomMoves sParty_AnnaAndMeg2[] = { { .iv = 10, .lvl = 28, @@ -3821,7 +3821,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg2[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg3[] = { +static const struct TrainerMonNoItemCustomMoves sParty_AnnaAndMeg3[] = { { .iv = 20, .lvl = 31, @@ -3836,7 +3836,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg3[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg4[] = { +static const struct TrainerMonNoItemCustomMoves sParty_AnnaAndMeg4[] = { { .iv = 30, .lvl = 34, @@ -3851,7 +3851,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg4[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg5[] = { +static const struct TrainerMonNoItemCustomMoves sParty_AnnaAndMeg5[] = { { .iv = 40, .lvl = 36, @@ -3866,7 +3866,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_AnnaAndMeg5[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Victor[] = { +static const struct TrainerMonItemDefaultMoves sParty_Victor[] = { { .iv = 25, .lvl = 16, @@ -3881,7 +3881,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Victor[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel1[] = { +static const struct TrainerMonItemDefaultMoves sParty_Miguel1[] = { { .iv = 0, .lvl = 15, @@ -3890,7 +3890,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel1[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Colton[] = { +static const struct TrainerMonItemCustomMoves sParty_Colton[] = { { .iv = 0, .lvl = 22, @@ -3935,7 +3935,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Colton[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel2[] = { +static const struct TrainerMonItemDefaultMoves sParty_Miguel2[] = { { .iv = 0, .lvl = 29, @@ -3944,7 +3944,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel2[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel3[] = { +static const struct TrainerMonItemDefaultMoves sParty_Miguel3[] = { { .iv = 0, .lvl = 32, @@ -3953,7 +3953,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel3[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel4[] = { +static const struct TrainerMonItemDefaultMoves sParty_Miguel4[] = { { .iv = 0, .lvl = 35, @@ -3962,7 +3962,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel4[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel5[] = { +static const struct TrainerMonItemDefaultMoves sParty_Miguel5[] = { { .iv = 0, .lvl = 38, @@ -3971,7 +3971,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Miguel5[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Victoria[] = { +static const struct TrainerMonItemDefaultMoves sParty_Victoria[] = { { .iv = 50, .lvl = 17, @@ -3980,7 +3980,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Victoria[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Vanessa[] = { +static const struct TrainerMonItemDefaultMoves sParty_Vanessa[] = { { .iv = 0, .lvl = 30, @@ -3989,7 +3989,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Vanessa[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Bethany[] = { +static const struct TrainerMonItemDefaultMoves sParty_Bethany[] = { { .iv = 100, .lvl = 35, @@ -4010,7 +4010,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Bethany[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel1[] = { +static const struct TrainerMonItemDefaultMoves sParty_Isabel1[] = { { .iv = 0, .lvl = 14, @@ -4025,7 +4025,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel1[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel2[] = { +static const struct TrainerMonItemDefaultMoves sParty_Isabel2[] = { { .iv = 10, .lvl = 26, @@ -4040,7 +4040,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel2[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel3[] = { +static const struct TrainerMonItemDefaultMoves sParty_Isabel3[] = { { .iv = 20, .lvl = 29, @@ -4055,7 +4055,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel3[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel4[] = { +static const struct TrainerMonItemDefaultMoves sParty_Isabel4[] = { { .iv = 30, .lvl = 32, @@ -4070,7 +4070,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel4[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel5[] = { +static const struct TrainerMonItemDefaultMoves sParty_Isabel5[] = { { .iv = 40, .lvl = 35, @@ -4085,7 +4085,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Isabel5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Timothy1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Timothy1[] = { { .iv = 200, .lvl = 27, @@ -4093,7 +4093,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Timothy1[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy2[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Timothy2[] = { { .iv = 210, .lvl = 33, @@ -4102,7 +4102,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy2[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy3[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Timothy3[] = { { .iv = 220, .lvl = 36, @@ -4111,7 +4111,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy3[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy4[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Timothy4[] = { { .iv = 230, .lvl = 39, @@ -4120,7 +4120,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy4[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy5[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Timothy5[] = { { .iv = 240, .lvl = 42, @@ -4129,7 +4129,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Timothy5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Vicky[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Vicky[] = { { .iv = 200, .lvl = 18, @@ -4138,7 +4138,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Vicky[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shelby1[] = { { .iv = 200, .lvl = 21, @@ -4151,7 +4151,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shelby2[] = { { .iv = 210, .lvl = 30, @@ -4164,7 +4164,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shelby3[] = { { .iv = 220, .lvl = 33, @@ -4177,7 +4177,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shelby4[] = { { .iv = 230, .lvl = 36, @@ -4190,7 +4190,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shelby5[] = { { .iv = 240, .lvl = 39, @@ -4203,7 +4203,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shelby5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Calvin1[] = { { .iv = 0, .lvl = 5, @@ -4211,7 +4211,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Billy[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Billy[] = { { .iv = 0, .lvl = 5, @@ -4224,7 +4224,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Billy[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Josh[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Josh[] = { { .iv = 100, .lvl = 10, @@ -4233,7 +4233,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Josh[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tommy[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tommy[] = { { .iv = 110, .lvl = 8, @@ -4246,7 +4246,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tommy[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joey[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Joey[] = { { .iv = 0, .lvl = 9, @@ -4254,7 +4254,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joey[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Ben[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Ben[] = { { .iv = 150, .lvl = 17, @@ -4269,7 +4269,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Ben[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Quincy[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Quincy[] = { { .iv = 100, .lvl = 43, @@ -4284,7 +4284,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Quincy[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Katelynn[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Katelynn[] = { { .iv = 100, .lvl = 43, @@ -4299,7 +4299,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Katelynn[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jaylen[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jaylen[] = { { .iv = 0, .lvl = 19, @@ -4307,7 +4307,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jaylen[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dillon[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dillon[] = { { .iv = 0, .lvl = 19, @@ -4315,7 +4315,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dillon[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Calvin2[] = { { .iv = 10, .lvl = 27, @@ -4323,7 +4323,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Calvin3[] = { { .iv = 20, .lvl = 28, @@ -4336,7 +4336,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Calvin4[] = { { .iv = 30, .lvl = 31, @@ -4354,7 +4354,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Calvin5[] = { { .iv = 40, .lvl = 34, @@ -4372,7 +4372,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eddie[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Eddie[] = { { .iv = 0, .lvl = 14, @@ -4385,7 +4385,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eddie[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Allen[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Allen[] = { { .iv = 0, .lvl = 4, @@ -4398,7 +4398,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Allen[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Timmy[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Timmy[] = { { .iv = 0, .lvl = 15, @@ -4411,7 +4411,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Timmy[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Wallace[] = { +static const struct TrainerMonItemCustomMoves sParty_Wallace[] = { { .iv = 255, .lvl = 57, @@ -4456,7 +4456,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Wallace[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andrew[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Andrew[] = { { .iv = 0, .lvl = 5, @@ -4474,7 +4474,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andrew[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ivan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ivan[] = { { .iv = 0, .lvl = 5, @@ -4492,7 +4492,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ivan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Claude[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Claude[] = { { .iv = 0, .lvl = 16, @@ -4510,7 +4510,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Claude[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Elliot1[] = { { .iv = 0, .lvl = 10, @@ -4528,7 +4528,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ned[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ned[] = { { .iv = 10, .lvl = 11, @@ -4536,7 +4536,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ned[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dale[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dale[] = { { .iv = 0, .lvl = 11, @@ -4559,7 +4559,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dale[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nolan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nolan[] = { { .iv = 0, .lvl = 19, @@ -4567,7 +4567,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nolan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Barny[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Barny[] = { { .iv = 0, .lvl = 25, @@ -4580,7 +4580,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Barny[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wade[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Wade[] = { { .iv = 0, .lvl = 16, @@ -4588,7 +4588,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wade[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carter[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Carter[] = { { .iv = 10, .lvl = 25, @@ -4601,7 +4601,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carter[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Elliot2[] = { { .iv = 10, .lvl = 24, @@ -4619,7 +4619,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Elliot3[] = { { .iv = 20, .lvl = 29, @@ -4642,7 +4642,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Elliot4[] = { { .iv = 30, .lvl = 31, @@ -4665,7 +4665,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Elliot5[] = { { .iv = 40, .lvl = 33, @@ -4688,7 +4688,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elliot5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ronald[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ronald[] = { { .iv = 0, .lvl = 19, @@ -4721,7 +4721,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ronald[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacob[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jacob[] = { { .iv = 20, .lvl = 6, @@ -4739,7 +4739,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jacob[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Anthony[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Anthony[] = { { .iv = 0, .lvl = 14, @@ -4752,7 +4752,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Anthony[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Benjamin1[] = { { .iv = 0, .lvl = 16, @@ -4760,7 +4760,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Benjamin2[] = { { .iv = 10, .lvl = 30, @@ -4768,7 +4768,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Benjamin3[] = { { .iv = 20, .lvl = 33, @@ -4776,7 +4776,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Benjamin4[] = { { .iv = 30, .lvl = 36, @@ -4784,7 +4784,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Benjamin5[] = { { .iv = 40, .lvl = 39, @@ -4792,7 +4792,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benjamin5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Abigail1[] = { { .iv = 0, .lvl = 16, @@ -4800,7 +4800,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jasmine[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jasmine[] = { { .iv = 80, .lvl = 14, @@ -4818,7 +4818,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jasmine[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Abigail2[] = { { .iv = 10, .lvl = 28, @@ -4826,7 +4826,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Abigail3[] = { { .iv = 20, .lvl = 31, @@ -4834,7 +4834,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Abigail4[] = { { .iv = 30, .lvl = 34, @@ -4842,7 +4842,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Abigail5[] = { { .iv = 40, .lvl = 37, @@ -4850,7 +4850,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Abigail5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dylan1[] = { { .iv = 0, .lvl = 17, @@ -4858,7 +4858,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dylan2[] = { { .iv = 10, .lvl = 28, @@ -4866,7 +4866,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dylan3[] = { { .iv = 20, .lvl = 31, @@ -4874,7 +4874,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dylan4[] = { { .iv = 30, .lvl = 34, @@ -4882,7 +4882,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dylan5[] = { { .iv = 40, .lvl = 37, @@ -4890,7 +4890,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dylan5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Maria1[] = { { .iv = 0, .lvl = 17, @@ -4898,7 +4898,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Maria2[] = { { .iv = 10, .lvl = 28, @@ -4906,7 +4906,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Maria3[] = { { .iv = 20, .lvl = 31, @@ -4914,7 +4914,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Maria4[] = { { .iv = 30, .lvl = 34, @@ -4922,7 +4922,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Maria5[] = { { .iv = 40, .lvl = 37, @@ -4930,7 +4930,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maria5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Camden[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Camden[] = { { .iv = 0, .lvl = 33, @@ -4943,7 +4943,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Camden[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Demetrius[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Demetrius[] = { { .iv = 0, .lvl = 25, @@ -4956,7 +4956,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Demetrius[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isaiah1[] = { { .iv = 0, .lvl = 35, @@ -4964,7 +4964,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Pablo1[] = { { .iv = 0, .lvl = 33, @@ -4977,7 +4977,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chase[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Chase[] = { { .iv = 0, .lvl = 26, @@ -4990,7 +4990,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chase[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isaiah2[] = { { .iv = 10, .lvl = 39, @@ -4998,7 +4998,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isaiah3[] = { { .iv = 20, .lvl = 42, @@ -5006,7 +5006,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isaiah4[] = { { .iv = 30, .lvl = 45, @@ -5014,7 +5014,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isaiah5[] = { { .iv = 40, .lvl = 48, @@ -5022,7 +5022,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaiah5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isobel[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isobel[] = { { .iv = 0, .lvl = 34, @@ -5030,7 +5030,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isobel[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Donny[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Donny[] = { { .iv = 0, .lvl = 26, @@ -5043,7 +5043,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Donny[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Talia[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Talia[] = { { .iv = 0, .lvl = 34, @@ -5051,7 +5051,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Talia[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Katelyn1[] = { { .iv = 0, .lvl = 35, @@ -5059,7 +5059,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Allison[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Allison[] = { { .iv = 0, .lvl = 27, @@ -5072,7 +5072,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Allison[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Katelyn2[] = { { .iv = 10, .lvl = 39, @@ -5080,7 +5080,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Katelyn3[] = { { .iv = 20, .lvl = 42, @@ -5088,7 +5088,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Katelyn4[] = { { .iv = 30, .lvl = 45, @@ -5096,7 +5096,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Katelyn5[] = { { .iv = 40, .lvl = 48, @@ -5104,7 +5104,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katelyn5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nicolas1[] = { { .iv = 100, .lvl = 37, @@ -5117,7 +5117,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nicolas2[] = { { .iv = 110, .lvl = 41, @@ -5130,7 +5130,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nicolas3[] = { { .iv = 120, .lvl = 44, @@ -5143,7 +5143,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nicolas4[] = { { .iv = 130, .lvl = 46, @@ -5161,7 +5161,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicolas4[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Nicolas5[] = { +static const struct TrainerMonItemDefaultMoves sParty_Nicolas5[] = { { .iv = 140, .lvl = 49, @@ -5182,7 +5182,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Nicolas5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Aaron[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Aaron[] = { { .iv = 255, .lvl = 34, @@ -5191,7 +5191,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Aaron[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Perry[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Perry[] = { { .iv = 0, .lvl = 26, @@ -5199,7 +5199,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Perry[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hugh[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Hugh[] = { { .iv = 0, .lvl = 25, @@ -5212,7 +5212,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hugh[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Phil[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Phil[] = { { .iv = 0, .lvl = 26, @@ -5220,7 +5220,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Phil[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jared[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jared[] = { { .iv = 100, .lvl = 27, @@ -5238,7 +5238,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jared[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Humberto[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Humberto[] = { { .iv = 250, .lvl = 30, @@ -5246,7 +5246,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Humberto[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Presley[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Presley[] = { { .iv = 0, .lvl = 33, @@ -5259,7 +5259,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Presley[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwardo[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Edwardo[] = { { .iv = 150, .lvl = 29, @@ -5272,7 +5272,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwardo[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Colin[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Colin[] = { { .iv = 0, .lvl = 28, @@ -5285,7 +5285,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Colin[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Robert1[] = { { .iv = 0, .lvl = 29, @@ -5293,7 +5293,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benny[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Benny[] = { { .iv = 0, .lvl = 36, @@ -5311,7 +5311,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Benny[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chester[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Chester[] = { { .iv = 0, .lvl = 25, @@ -5324,7 +5324,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chester[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Robert2[] = { { .iv = 10, .lvl = 32, @@ -5337,7 +5337,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Robert3[] = { { .iv = 20, .lvl = 35, @@ -5350,7 +5350,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Robert4[] = { { .iv = 30, .lvl = 38, @@ -5363,7 +5363,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Robert5[] = { { .iv = 40, .lvl = 41, @@ -5376,7 +5376,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robert5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alex[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Alex[] = { { .iv = 150, .lvl = 33, @@ -5389,7 +5389,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alex[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beck[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Beck[] = { { .iv = 0, .lvl = 34, @@ -5397,7 +5397,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beck[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Yasu[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Yasu[] = { { .iv = 0, .lvl = 26, @@ -5405,7 +5405,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Yasu[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Takashi[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Takashi[] = { { .iv = 0, .lvl = 25, @@ -5418,7 +5418,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Takashi[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Dianne[] = { +static const struct TrainerMonItemCustomMoves sParty_Dianne[] = { { .iv = 0, .lvl = 43, @@ -5435,7 +5435,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Dianne[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jani[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jani[] = { { .iv = 0, .lvl = 26, @@ -5443,7 +5443,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jani[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao1[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Lao1[] = { { .iv = 0, .lvl = 17, @@ -5464,7 +5464,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lung[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lung[] = { { .iv = 0, .lvl = 18, @@ -5477,7 +5477,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lung[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao2[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Lao2[] = { { .iv = 0, .lvl = 24, @@ -5504,7 +5504,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao2[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao3[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Lao3[] = { { .iv = 20, .lvl = 27, @@ -5531,7 +5531,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao3[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao4[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Lao4[] = { { .iv = 30, .lvl = 30, @@ -5558,7 +5558,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Lao4[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Lao5[] = { +static const struct TrainerMonItemCustomMoves sParty_Lao5[] = { { .iv = 40, .lvl = 33, @@ -5589,7 +5589,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Lao5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jocelyn[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jocelyn[] = { { .iv = 127, .lvl = 13, @@ -5597,7 +5597,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jocelyn[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Laura[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Laura[] = { { .iv = 150, .lvl = 13, @@ -5605,7 +5605,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Laura[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cyndy1[] = { { .iv = 100, .lvl = 18, @@ -5618,7 +5618,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cora[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cora[] = { { .iv = 100, .lvl = 27, @@ -5626,7 +5626,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cora[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paula[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Paula[] = { { .iv = 100, .lvl = 27, @@ -5634,7 +5634,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paula[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cyndy2[] = { { .iv = 110, .lvl = 26, @@ -5647,7 +5647,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cyndy3[] = { { .iv = 120, .lvl = 29, @@ -5660,7 +5660,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cyndy4[] = { { .iv = 130, .lvl = 32, @@ -5673,7 +5673,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cyndy5[] = { { .iv = 140, .lvl = 35, @@ -5686,7 +5686,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cyndy5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline1[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Madeline1[] = { { .iv = 0, .lvl = 19, @@ -5695,7 +5695,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clarissa[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Clarissa[] = { { .iv = 0, .lvl = 28, @@ -5708,7 +5708,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clarissa[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Angelica[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Angelica[] = { { .iv = 50, .lvl = 30, @@ -5717,7 +5717,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Angelica[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline2[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Madeline2[] = { { .iv = 10, .lvl = 29, @@ -5726,7 +5726,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline2[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline3[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Madeline3[] = { { .iv = 20, .lvl = 32, @@ -5735,7 +5735,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline3[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline4[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Madeline4[] = { { .iv = 30, .lvl = 34, @@ -5750,7 +5750,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline4[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline5[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Madeline5[] = { { .iv = 40, .lvl = 37, @@ -5765,7 +5765,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Madeline5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beverly[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Beverly[] = { { .iv = 0, .lvl = 25, @@ -5778,7 +5778,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beverly[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Imani[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Imani[] = { { .iv = 0, .lvl = 26, @@ -5786,7 +5786,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Imani[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kyla[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kyla[] = { { .iv = 0, .lvl = 26, @@ -5794,7 +5794,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kyla[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Denise[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Denise[] = { { .iv = 0, .lvl = 25, @@ -5807,7 +5807,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Denise[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beth[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Beth[] = { { .iv = 0, .lvl = 26, @@ -5815,7 +5815,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Beth[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tara[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tara[] = { { .iv = 0, .lvl = 25, @@ -5828,7 +5828,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tara[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Missy[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Missy[] = { { .iv = 0, .lvl = 26, @@ -5836,7 +5836,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Missy[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alice[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Alice[] = { { .iv = 0, .lvl = 24, @@ -5854,7 +5854,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alice[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jenny1[] = { { .iv = 0, .lvl = 34, @@ -5862,7 +5862,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grace[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grace[] = { { .iv = 0, .lvl = 34, @@ -5870,7 +5870,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grace[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tanya[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tanya[] = { { .iv = 0, .lvl = 34, @@ -5878,7 +5878,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tanya[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sharon[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sharon[] = { { .iv = 0, .lvl = 34, @@ -5886,7 +5886,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sharon[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nikki[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nikki[] = { { .iv = 0, .lvl = 33, @@ -5899,7 +5899,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nikki[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brenda[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brenda[] = { { .iv = 0, .lvl = 34, @@ -5907,7 +5907,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brenda[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katie[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Katie[] = { { .iv = 0, .lvl = 33, @@ -5920,7 +5920,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Katie[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Susie[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Susie[] = { { .iv = 0, .lvl = 34, @@ -5928,7 +5928,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Susie[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kara[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kara[] = { { .iv = 0, .lvl = 34, @@ -5936,7 +5936,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kara[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dana[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dana[] = { { .iv = 0, .lvl = 34, @@ -5944,7 +5944,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dana[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sienna[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sienna[] = { { .iv = 0, .lvl = 33, @@ -5957,7 +5957,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sienna[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Debra[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Debra[] = { { .iv = 0, .lvl = 34, @@ -5965,7 +5965,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Debra[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Linda[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Linda[] = { { .iv = 0, .lvl = 33, @@ -5978,7 +5978,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Linda[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kaylee[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kaylee[] = { { .iv = 0, .lvl = 34, @@ -5991,7 +5991,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kaylee[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Laurel[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Laurel[] = { { .iv = 0, .lvl = 33, @@ -6004,7 +6004,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Laurel[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carlee[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Carlee[] = { { .iv = 0, .lvl = 35, @@ -6012,7 +6012,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carlee[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jenny2[] = { { .iv = 0, .lvl = 38, @@ -6020,7 +6020,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jenny3[] = { { .iv = 0, .lvl = 41, @@ -6028,7 +6028,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jenny4[] = { { .iv = 0, .lvl = 43, @@ -6041,7 +6041,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jenny5[] = { { .iv = 0, .lvl = 45, @@ -6059,7 +6059,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenny5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Heidi[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Heidi[] = { { .iv = 0, .lvl = 22, @@ -6074,7 +6074,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Heidi[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Becky[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Becky[] = { { .iv = 0, .lvl = 22, @@ -6089,7 +6089,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Becky[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carol[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Carol[] = { { .iv = 0, .lvl = 17, @@ -6102,7 +6102,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carol[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nancy[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nancy[] = { { .iv = 0, .lvl = 18, @@ -6115,7 +6115,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nancy[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Martha[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Martha[] = { { .iv = 0, .lvl = 23, @@ -6128,7 +6128,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Martha[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Diana1[] = { { .iv = 0, .lvl = 19, @@ -6146,7 +6146,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana1[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Cedric[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Cedric[] = { { .iv = 0, .lvl = 32, @@ -6155,7 +6155,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Cedric[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Irene[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Irene[] = { { .iv = 0, .lvl = 17, @@ -6168,7 +6168,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Irene[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Diana2[] = { { .iv = 10, .lvl = 25, @@ -6186,7 +6186,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Diana3[] = { { .iv = 20, .lvl = 28, @@ -6204,7 +6204,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Diana4[] = { { .iv = 30, .lvl = 31, @@ -6222,7 +6222,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Diana5[] = { { .iv = 40, .lvl = 40, @@ -6240,7 +6240,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Diana5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_AmyAndLiv1[] = { { .iv = 0, .lvl = 15, @@ -6253,7 +6253,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_AmyAndLiv2[] = { { .iv = 10, .lvl = 27, @@ -6266,7 +6266,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_GinaAndMia1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_GinaAndMia1[] = { { .iv = 0, .lvl = 6, @@ -6279,7 +6279,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_GinaAndMia1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_MiuAndYuki[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MiuAndYuki[] = { { .iv = 0, .lvl = 26, @@ -6292,7 +6292,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_MiuAndYuki[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_AmyAndLiv3[] = { { .iv = 0, .lvl = 9, @@ -6305,7 +6305,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv3[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_GinaAndMia2[] = { +static const struct TrainerMonNoItemCustomMoves sParty_GinaAndMia2[] = { { .iv = 0, .lvl = 10, @@ -6320,7 +6320,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_GinaAndMia2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_AmyAndLiv4[] = { { .iv = 20, .lvl = 30, @@ -6333,7 +6333,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_AmyAndLiv4[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_AmyAndLiv5[] = { +static const struct TrainerMonNoItemCustomMoves sParty_AmyAndLiv5[] = { { .iv = 30, .lvl = 33, @@ -6348,7 +6348,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_AmyAndLiv5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_AmyAndLiv6[] = { +static const struct TrainerMonNoItemCustomMoves sParty_AmyAndLiv6[] = { { .iv = 40, .lvl = 36, @@ -6363,7 +6363,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_AmyAndLiv6[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Huey[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Huey[] = { { .iv = 10, .lvl = 12, @@ -6376,7 +6376,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Huey[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edmond[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Edmond[] = { { .iv = 0, .lvl = 13, @@ -6384,7 +6384,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edmond[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ernest1[] = { { .iv = 0, .lvl = 33, @@ -6397,7 +6397,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dwayne[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dwayne[] = { { .iv = 0, .lvl = 11, @@ -6415,7 +6415,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dwayne[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Phillip[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Phillip[] = { { .iv = 0, .lvl = 44, @@ -6428,7 +6428,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Phillip[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leonard[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Leonard[] = { { .iv = 0, .lvl = 43, @@ -6446,7 +6446,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leonard[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Duncan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Duncan[] = { { .iv = 0, .lvl = 25, @@ -6459,7 +6459,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Duncan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ernest2[] = { { .iv = 10, .lvl = 36, @@ -6477,7 +6477,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ernest3[] = { { .iv = 20, .lvl = 39, @@ -6495,7 +6495,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ernest4[] = { { .iv = 30, .lvl = 42, @@ -6513,7 +6513,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ernest5[] = { { .iv = 40, .lvl = 45, @@ -6531,7 +6531,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ernest5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eli[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Eli[] = { { .iv = 100, .lvl = 23, @@ -6539,7 +6539,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eli[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Annika[] = { +static const struct TrainerMonItemCustomMoves sParty_Annika[] = { { .iv = 100, .lvl = 39, @@ -6556,7 +6556,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Annika[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jazmyn[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jazmyn[] = { { .iv = 0, .lvl = 27, @@ -6564,7 +6564,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jazmyn[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Jonas[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Jonas[] = { { .iv = 0, .lvl = 31, @@ -6573,7 +6573,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Jonas[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Kayley[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Kayley[] = { { .iv = 0, .lvl = 31, @@ -6582,7 +6582,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Kayley[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Auron[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Auron[] = { { .iv = 0, .lvl = 33, @@ -6595,7 +6595,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Auron[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kelvin[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kelvin[] = { { .iv = 150, .lvl = 33, @@ -6608,7 +6608,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kelvin[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Marley[] = { +static const struct TrainerMonItemCustomMoves sParty_Marley[] = { { .iv = 255, .lvl = 34, @@ -6618,7 +6618,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Marley[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Reyna[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Reyna[] = { { .iv = 50, .lvl = 33, @@ -6631,7 +6631,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Reyna[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hudson[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Hudson[] = { { .iv = 0, .lvl = 34, @@ -6639,7 +6639,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hudson[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Conor[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Conor[] = { { .iv = 0, .lvl = 33, @@ -6652,7 +6652,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Conor[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Edwin1[] = { { .iv = 0, .lvl = 14, @@ -6665,7 +6665,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hector[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Hector[] = { { .iv = 0, .lvl = 18, @@ -6678,7 +6678,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hector[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tabitha1[] = { { .iv = 100, .lvl = 36, @@ -6696,7 +6696,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Edwin2[] = { { .iv = 0, .lvl = 26, @@ -6709,7 +6709,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Edwin3[] = { { .iv = 0, .lvl = 29, @@ -6722,7 +6722,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Edwin4[] = { { .iv = 0, .lvl = 32, @@ -6735,7 +6735,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Edwin5[] = { { .iv = 0, .lvl = 35, @@ -6748,7 +6748,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Edwin5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally1[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Wally1[] = { { .iv = 150, .lvl = 44, @@ -6781,7 +6781,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan1[] = { { .iv = 0, .lvl = 5, @@ -6789,7 +6789,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan2[] = { { .iv = 50, .lvl = 18, @@ -6807,7 +6807,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan3[] = { { .iv = 100, .lvl = 29, @@ -6825,7 +6825,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan4[] = { { .iv = 0, .lvl = 5, @@ -6833,7 +6833,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan5[] = { { .iv = 50, .lvl = 18, @@ -6851,7 +6851,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan6[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan6[] = { { .iv = 100, .lvl = 29, @@ -6869,7 +6869,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan6[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan7[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan7[] = { { .iv = 0, .lvl = 5, @@ -6877,7 +6877,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan7[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan8[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan8[] = { { .iv = 50, .lvl = 18, @@ -6895,7 +6895,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan8[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan9[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan9[] = { { .iv = 100, .lvl = 29, @@ -6913,7 +6913,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan9[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May1[] = { { .iv = 0, .lvl = 5, @@ -6921,7 +6921,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May2[] = { { .iv = 50, .lvl = 18, @@ -6939,7 +6939,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May3[] = { { .iv = 100, .lvl = 29, @@ -6957,7 +6957,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May4[] = { { .iv = 0, .lvl = 5, @@ -6965,7 +6965,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May5[] = { { .iv = 50, .lvl = 18, @@ -6983,7 +6983,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May6[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May6[] = { { .iv = 100, .lvl = 29, @@ -7001,7 +7001,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May6[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May7[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May7[] = { { .iv = 0, .lvl = 5, @@ -7009,7 +7009,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May7[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May8[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May8[] = { { .iv = 50, .lvl = 18, @@ -7027,7 +7027,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May8[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May9[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May9[] = { { .iv = 100, .lvl = 29, @@ -7045,7 +7045,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May9[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isaac1[] = { { .iv = 0, .lvl = 11, @@ -7078,7 +7078,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Davis[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Davis[] = { { .iv = 0, .lvl = 27, @@ -7086,7 +7086,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Davis[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Mitchell[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Mitchell[] = { { .iv = 0, .lvl = 43, @@ -7101,7 +7101,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Mitchell[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isaac2[] = { { .iv = 10, .lvl = 22, @@ -7134,7 +7134,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isaac3[] = { { .iv = 20, .lvl = 25, @@ -7167,7 +7167,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isaac4[] = { { .iv = 30, .lvl = 28, @@ -7200,7 +7200,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isaac5[] = { { .iv = 40, .lvl = 31, @@ -7233,7 +7233,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isaac5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lydia1[] = { { .iv = 0, .lvl = 11, @@ -7266,7 +7266,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Halle[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Halle[] = { { .iv = 0, .lvl = 43, @@ -7279,7 +7279,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Halle[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Garrison[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Garrison[] = { { .iv = 0, .lvl = 26, @@ -7287,7 +7287,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Garrison[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lydia2[] = { { .iv = 10, .lvl = 22, @@ -7320,7 +7320,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lydia3[] = { { .iv = 20, .lvl = 25, @@ -7353,7 +7353,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lydia4[] = { { .iv = 30, .lvl = 28, @@ -7386,7 +7386,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lydia5[] = { { .iv = 40, .lvl = 31, @@ -7419,7 +7419,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lydia5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jackson1[] = { { .iv = 50, .lvl = 27, @@ -7427,7 +7427,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lorenzo[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lorenzo[] = { { .iv = 50, .lvl = 28, @@ -7445,7 +7445,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lorenzo[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sebastian[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sebastian[] = { { .iv = 50, .lvl = 39, @@ -7453,7 +7453,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sebastian[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jackson2[] = { { .iv = 60, .lvl = 31, @@ -7461,7 +7461,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jackson3[] = { { .iv = 70, .lvl = 34, @@ -7469,7 +7469,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jackson4[] = { { .iv = 80, .lvl = 37, @@ -7477,7 +7477,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jackson5[] = { { .iv = 90, .lvl = 39, @@ -7490,7 +7490,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jackson5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Catherine1[] = { { .iv = 50, .lvl = 26, @@ -7503,7 +7503,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenna[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jenna[] = { { .iv = 50, .lvl = 28, @@ -7521,7 +7521,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jenna[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sophia[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sophia[] = { { .iv = 50, .lvl = 38, @@ -7534,7 +7534,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sophia[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Catherine2[] = { { .iv = 60, .lvl = 30, @@ -7547,7 +7547,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Catherine3[] = { { .iv = 70, .lvl = 33, @@ -7560,7 +7560,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Catherine4[] = { { .iv = 80, .lvl = 36, @@ -7573,7 +7573,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Catherine5[] = { { .iv = 90, .lvl = 39, @@ -7586,7 +7586,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Catherine5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Julio[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Julio[] = { { .iv = 0, .lvl = 21, @@ -7594,7 +7594,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Julio[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt27[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt27[] = { { .iv = 50, .lvl = 35, @@ -7607,7 +7607,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt27[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt28[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt28[] = { { .iv = 0, .lvl = 31, @@ -7620,7 +7620,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt28[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt29[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt29[] = { { .iv = 0, .lvl = 30, @@ -7633,7 +7633,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt29[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt30[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt30[] = { { .iv = 50, .lvl = 22, @@ -7646,7 +7646,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt30[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marc[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Marc[] = { { .iv = 120, .lvl = 8, @@ -7659,7 +7659,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marc[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brenden[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brenden[] = { { .iv = 100, .lvl = 13, @@ -7667,7 +7667,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brenden[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lilith[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lilith[] = { { .iv = 150, .lvl = 13, @@ -7675,7 +7675,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lilith[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristian[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cristian[] = { { .iv = 200, .lvl = 13, @@ -7683,7 +7683,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristian[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sylvia[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sylvia[] = { { .iv = 100, .lvl = 36, @@ -7691,7 +7691,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sylvia[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leonardo[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Leonardo[] = { { .iv = 0, .lvl = 34, @@ -7699,7 +7699,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leonardo[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Athena[] = { +static const struct TrainerMonItemCustomMoves sParty_Athena[] = { { .iv = 100, .lvl = 32, @@ -7716,7 +7716,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Athena[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Harrison[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Harrison[] = { { .iv = 0, .lvl = 35, @@ -7724,7 +7724,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Harrison[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt31[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt31[] = { { .iv = 0, .lvl = 20, @@ -7732,7 +7732,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt31[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clarence[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Clarence[] = { { .iv = 0, .lvl = 34, @@ -7740,7 +7740,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clarence[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Terry[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Terry[] = { { .iv = 0, .lvl = 37, @@ -7748,7 +7748,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Terry[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nate[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nate[] = { { .iv = 100, .lvl = 36, @@ -7756,7 +7756,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nate[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kathleen[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kathleen[] = { { .iv = 100, .lvl = 36, @@ -7764,7 +7764,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kathleen[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clifford[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Clifford[] = { { .iv = 0, .lvl = 36, @@ -7772,7 +7772,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clifford[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicholas[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Nicholas[] = { { .iv = 0, .lvl = 36, @@ -7780,7 +7780,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Nicholas[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt32[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt32[] = { { .iv = 0, .lvl = 31, @@ -7793,7 +7793,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt32[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt33[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt33[] = { { .iv = 0, .lvl = 32, @@ -7801,7 +7801,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt33[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt34[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt34[] = { { .iv = 0, .lvl = 32, @@ -7809,7 +7809,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt34[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt35[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt35[] = { { .iv = 0, .lvl = 32, @@ -7817,7 +7817,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt35[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt36[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt36[] = { { .iv = 0, .lvl = 32, @@ -7825,7 +7825,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt36[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Macey[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Macey[] = { { .iv = 0, .lvl = 36, @@ -7833,7 +7833,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Macey[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan10[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan10[] = { { .iv = 25, .lvl = 13, @@ -7846,7 +7846,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan10[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan11[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan11[] = { { .iv = 25, .lvl = 13, @@ -7859,7 +7859,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan11[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paxton[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Paxton[] = { { .iv = 0, .lvl = 33, @@ -7872,7 +7872,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Paxton[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isabella[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isabella[] = { { .iv = 0, .lvl = 34, @@ -7880,7 +7880,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isabella[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt37[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt37[] = { { .iv = 0, .lvl = 27, @@ -7893,7 +7893,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt37[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tabitha2[] = { { .iv = 50, .lvl = 18, @@ -7916,7 +7916,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jonathan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jonathan[] = { { .iv = 0, .lvl = 33, @@ -7929,7 +7929,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jonathan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan12[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan12[] = { { .iv = 25, .lvl = 13, @@ -7942,7 +7942,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan12[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May10[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May10[] = { { .iv = 25, .lvl = 13, @@ -7955,7 +7955,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May10[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Maxie1[] = { { .iv = 150, .lvl = 37, @@ -7973,7 +7973,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Maxie2[] = { { .iv = 150, .lvl = 24, @@ -7991,7 +7991,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tiana[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tiana[] = { { .iv = 0, .lvl = 4, @@ -8004,7 +8004,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tiana[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Haley1[] = { { .iv = 0, .lvl = 6, @@ -8017,7 +8017,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Janice[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Janice[] = { { .iv = 0, .lvl = 9, @@ -8025,7 +8025,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Janice[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vivi[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Vivi[] = { { .iv = 100, .lvl = 15, @@ -8043,7 +8043,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Vivi[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Haley2[] = { { .iv = 10, .lvl = 26, @@ -8056,7 +8056,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Haley3[] = { { .iv = 20, .lvl = 29, @@ -8069,7 +8069,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Haley4[] = { { .iv = 30, .lvl = 32, @@ -8082,7 +8082,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Haley5[] = { { .iv = 40, .lvl = 34, @@ -8100,7 +8100,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Haley5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sally[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sally[] = { { .iv = 0, .lvl = 16, @@ -8108,7 +8108,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sally[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robin[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Robin[] = { { .iv = 0, .lvl = 14, @@ -8126,7 +8126,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Robin[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andrea[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Andrea[] = { { .iv = 100, .lvl = 40, @@ -8134,7 +8134,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andrea[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Crissy[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Crissy[] = { { .iv = 100, .lvl = 39, @@ -8147,7 +8147,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Crissy[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rick[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Rick[] = { { .iv = 0, .lvl = 4, @@ -8160,7 +8160,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rick[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lyle[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lyle[] = { { .iv = 0, .lvl = 3, @@ -8183,7 +8183,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lyle[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jose[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jose[] = { { .iv = 50, .lvl = 8, @@ -8196,7 +8196,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jose[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Doug[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Doug[] = { { .iv = 0, .lvl = 28, @@ -8209,7 +8209,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Doug[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Greg[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Greg[] = { { .iv = 0, .lvl = 25, @@ -8222,7 +8222,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Greg[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kent[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kent[] = { { .iv = 0, .lvl = 25, @@ -8230,7 +8230,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kent[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_James1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_James1[] = { { .iv = 0, .lvl = 6, @@ -8243,7 +8243,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_James1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_James2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_James2[] = { { .iv = 10, .lvl = 27, @@ -8251,7 +8251,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_James2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_James3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_James3[] = { { .iv = 20, .lvl = 29, @@ -8264,7 +8264,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_James3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_James4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_James4[] = { { .iv = 30, .lvl = 31, @@ -8282,7 +8282,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_James4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_James5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_James5[] = { { .iv = 40, .lvl = 33, @@ -8305,7 +8305,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_James5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brice[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brice[] = { { .iv = 0, .lvl = 17, @@ -8318,7 +8318,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brice[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Trent1[] = { { .iv = 0, .lvl = 16, @@ -8336,7 +8336,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lenny[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lenny[] = { { .iv = 0, .lvl = 18, @@ -8349,7 +8349,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lenny[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lucas1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lucas1[] = { { .iv = 0, .lvl = 18, @@ -8362,7 +8362,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lucas1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Alan[] = { { .iv = 0, .lvl = 22, @@ -8380,7 +8380,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clark[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Clark[] = { { .iv = 0, .lvl = 8, @@ -8388,7 +8388,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Clark[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eric[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Eric[] = { { .iv = 0, .lvl = 20, @@ -8401,7 +8401,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Eric[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Lucas2[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Lucas2[] = { { .iv = 0, .lvl = 9, @@ -8410,7 +8410,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Lucas2[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Mike1[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Mike1[] = { { .iv = 0, .lvl = 10, @@ -8425,7 +8425,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Mike1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mike2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Mike2[] = { { .iv = 0, .lvl = 16, @@ -8443,7 +8443,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mike2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Trent2[] = { { .iv = 10, .lvl = 24, @@ -8466,7 +8466,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Trent3[] = { { .iv = 20, .lvl = 27, @@ -8489,7 +8489,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Trent4[] = { { .iv = 30, .lvl = 30, @@ -8512,7 +8512,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Trent5[] = { { .iv = 40, .lvl = 33, @@ -8535,7 +8535,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Trent5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_DezAndLuke[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_DezAndLuke[] = { { .iv = 0, .lvl = 31, @@ -8548,7 +8548,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_DezAndLuke[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_LeaAndJed[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_LeaAndJed[] = { { .iv = 0, .lvl = 45, @@ -8561,7 +8561,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_LeaAndJed[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_KiraAndDan1[] = { { .iv = 0, .lvl = 25, @@ -8574,7 +8574,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_KiraAndDan2[] = { { .iv = 10, .lvl = 30, @@ -8587,7 +8587,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_KiraAndDan3[] = { { .iv = 20, .lvl = 33, @@ -8600,7 +8600,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_KiraAndDan4[] = { { .iv = 30, .lvl = 36, @@ -8613,7 +8613,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_KiraAndDan5[] = { { .iv = 40, .lvl = 39, @@ -8626,7 +8626,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_KiraAndDan5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Johanna[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Johanna[] = { { .iv = 0, .lvl = 13, @@ -8634,7 +8634,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Johanna[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Gerald[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Gerald[] = { { .iv = 100, .lvl = 23, @@ -8643,7 +8643,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Gerald[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Vivian[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Vivian[] = { { .iv = 100, .lvl = 17, @@ -8658,7 +8658,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Vivian[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Danielle[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Danielle[] = { { .iv = 100, .lvl = 23, @@ -8667,7 +8667,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Danielle[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Hideo[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Hideo[] = { { .iv = 0, .lvl = 25, @@ -8682,7 +8682,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Hideo[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Keigo[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Keigo[] = { { .iv = 0, .lvl = 28, @@ -8697,7 +8697,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Keigo[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Riley[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Riley[] = { { .iv = 0, .lvl = 28, @@ -8712,7 +8712,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Riley[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Flint[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Flint[] = { { .iv = 150, .lvl = 29, @@ -8725,7 +8725,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Flint[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ashley[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ashley[] = { { .iv = 100, .lvl = 27, @@ -8743,7 +8743,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ashley[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wally2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Wally2[] = { { .iv = 30, .lvl = 16, @@ -8751,7 +8751,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wally2[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally3[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Wally3[] = { { .iv = 150, .lvl = 47, @@ -8784,7 +8784,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally3[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally4[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Wally4[] = { { .iv = 150, .lvl = 50, @@ -8817,7 +8817,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally4[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally5[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Wally5[] = { { .iv = 150, .lvl = 53, @@ -8850,7 +8850,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally5[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally6[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Wally6[] = { { .iv = 150, .lvl = 56, @@ -8883,7 +8883,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Wally6[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan13[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan13[] = { { .iv = 150, .lvl = 31, @@ -8906,7 +8906,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan13[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan14[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan14[] = { { .iv = 150, .lvl = 31, @@ -8929,7 +8929,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan14[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan15[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan15[] = { { .iv = 150, .lvl = 31, @@ -8952,7 +8952,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan15[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May11[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May11[] = { { .iv = 150, .lvl = 31, @@ -8975,7 +8975,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May11[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May12[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May12[] = { { .iv = 150, .lvl = 31, @@ -8998,7 +8998,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May12[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May13[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May13[] = { { .iv = 150, .lvl = 31, @@ -9021,7 +9021,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May13[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jonah[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jonah[] = { { .iv = 0, .lvl = 30, @@ -9039,7 +9039,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jonah[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Henry[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Henry[] = { { .iv = 0, .lvl = 31, @@ -9052,7 +9052,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Henry[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Roger[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Roger[] = { { .iv = 0, .lvl = 15, @@ -9070,7 +9070,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Roger[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alexa[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Alexa[] = { { .iv = 100, .lvl = 34, @@ -9083,7 +9083,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alexa[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ruben[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Ruben[] = { { .iv = 100, .lvl = 34, @@ -9096,7 +9096,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Ruben[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Koji1[] = { { .iv = 0, .lvl = 34, @@ -9104,7 +9104,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wayne[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Wayne[] = { { .iv = 0, .lvl = 31, @@ -9122,7 +9122,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wayne[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Aidan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Aidan[] = { { .iv = 0, .lvl = 32, @@ -9135,7 +9135,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Aidan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Reed[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Reed[] = { { .iv = 0, .lvl = 33, @@ -9148,7 +9148,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Reed[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tisha[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tisha[] = { { .iv = 0, .lvl = 34, @@ -9156,7 +9156,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tisha[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_ToriAndTia[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_ToriAndTia[] = { { .iv = 0, .lvl = 19, @@ -9169,7 +9169,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_ToriAndTia[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_KimAndIris[] = { +static const struct TrainerMonNoItemCustomMoves sParty_KimAndIris[] = { { .iv = 0, .lvl = 32, @@ -9184,7 +9184,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_KimAndIris[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_TyraAndIvy[] = { +static const struct TrainerMonNoItemCustomMoves sParty_TyraAndIvy[] = { { .iv = 0, .lvl = 18, @@ -9199,7 +9199,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_TyraAndIvy[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_MelAndPaul[] = { +static const struct TrainerMonNoItemCustomMoves sParty_MelAndPaul[] = { { .iv = 0, .lvl = 27, @@ -9214,7 +9214,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_MelAndPaul[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay1[] = { +static const struct TrainerMonNoItemCustomMoves sParty_JohnAndJay1[] = { { .iv = 200, .lvl = 39, @@ -9229,7 +9229,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay1[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay2[] = { +static const struct TrainerMonNoItemCustomMoves sParty_JohnAndJay2[] = { { .iv = 210, .lvl = 43, @@ -9244,7 +9244,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay2[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay3[] = { +static const struct TrainerMonNoItemCustomMoves sParty_JohnAndJay3[] = { { .iv = 220, .lvl = 46, @@ -9259,7 +9259,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay3[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay4[] = { +static const struct TrainerMonNoItemCustomMoves sParty_JohnAndJay4[] = { { .iv = 230, .lvl = 49, @@ -9274,7 +9274,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay4[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay5[] = { +static const struct TrainerMonNoItemCustomMoves sParty_JohnAndJay5[] = { { .iv = 240, .lvl = 52, @@ -9289,7 +9289,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_JohnAndJay5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_ReliAndIan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_ReliAndIan[] = { { .iv = 0, .lvl = 35, @@ -9302,7 +9302,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_ReliAndIan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_LilaAndRoy1[] = { { .iv = 0, .lvl = 34, @@ -9315,7 +9315,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_LilaAndRoy2[] = { { .iv = 0, .lvl = 42, @@ -9328,7 +9328,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_LilaAndRoy3[] = { { .iv = 0, .lvl = 45, @@ -9341,7 +9341,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_LilaAndRoy4[] = { { .iv = 0, .lvl = 48, @@ -9354,7 +9354,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_LilaAndRoy5[] = { { .iv = 0, .lvl = 51, @@ -9367,7 +9367,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_LilaAndRoy5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_LisaAndRay[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_LisaAndRay[] = { { .iv = 0, .lvl = 27, @@ -9380,7 +9380,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_LisaAndRay[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chris[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Chris[] = { { .iv = 0, .lvl = 29, @@ -9403,7 +9403,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chris[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Dawson[] = { +static const struct TrainerMonItemDefaultMoves sParty_Dawson[] = { { .iv = 0, .lvl = 8, @@ -9418,7 +9418,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Dawson[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Sarah[] = { +static const struct TrainerMonItemDefaultMoves sParty_Sarah[] = { { .iv = 0, .lvl = 8, @@ -9433,7 +9433,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Sarah[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darian[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Darian[] = { { .iv = 0, .lvl = 9, @@ -9441,7 +9441,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darian[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hailey[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Hailey[] = { { .iv = 0, .lvl = 13, @@ -9449,7 +9449,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hailey[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chandler[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Chandler[] = { { .iv = 0, .lvl = 12, @@ -9462,7 +9462,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Chandler[] = { } }; -const struct TrainerMonItemDefaultMoves gTrainerParty_Kaleb[] = { +static const struct TrainerMonItemDefaultMoves sParty_Kaleb[] = { { .iv = 0, .lvl = 14, @@ -9477,7 +9477,7 @@ const struct TrainerMonItemDefaultMoves gTrainerParty_Kaleb[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joseph[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Joseph[] = { { .iv = 0, .lvl = 14, @@ -9490,7 +9490,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Joseph[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alyssa[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Alyssa[] = { { .iv = 0, .lvl = 15, @@ -9498,7 +9498,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alyssa[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marcos[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Marcos[] = { { .iv = 100, .lvl = 15, @@ -9506,7 +9506,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marcos[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rhett[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Rhett[] = { { .iv = 100, .lvl = 15, @@ -9514,7 +9514,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rhett[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tyron[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tyron[] = { { .iv = 0, .lvl = 19, @@ -9522,7 +9522,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tyron[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Celina[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Celina[] = { { .iv = 0, .lvl = 18, @@ -9530,7 +9530,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Celina[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bianca[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Bianca[] = { { .iv = 0, .lvl = 18, @@ -9538,7 +9538,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bianca[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hayden[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Hayden[] = { { .iv = 0, .lvl = 18, @@ -9546,7 +9546,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Hayden[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sophie[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sophie[] = { { .iv = 0, .lvl = 17, @@ -9559,7 +9559,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sophie[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Coby[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Coby[] = { { .iv = 0, .lvl = 17, @@ -9572,7 +9572,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Coby[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lawrence[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lawrence[] = { { .iv = 0, .lvl = 18, @@ -9585,7 +9585,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lawrence[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wyatt[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Wyatt[] = { { .iv = 0, .lvl = 18, @@ -9598,7 +9598,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Wyatt[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Angelina[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Angelina[] = { { .iv = 0, .lvl = 18, @@ -9611,7 +9611,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Angelina[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kai[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kai[] = { { .iv = 0, .lvl = 19, @@ -9619,7 +9619,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kai[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Charlotte[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Charlotte[] = { { .iv = 0, .lvl = 19, @@ -9627,7 +9627,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Charlotte[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Deandre[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Deandre[] = { { .iv = 0, .lvl = 14, @@ -9645,7 +9645,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Deandre[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt38[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt38[] = { { .iv = 0, .lvl = 29, @@ -9653,7 +9653,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt38[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt39[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt39[] = { { .iv = 0, .lvl = 29, @@ -9661,7 +9661,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt39[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt40[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt40[] = { { .iv = 0, .lvl = 29, @@ -9669,7 +9669,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt40[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt41[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt41[] = { { .iv = 0, .lvl = 28, @@ -9682,7 +9682,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt41[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt42[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt42[] = { { .iv = 0, .lvl = 28, @@ -9695,7 +9695,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt42[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt43[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt43[] = { { .iv = 0, .lvl = 29, @@ -9703,7 +9703,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt43[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt44[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt44[] = { { .iv = 0, .lvl = 29, @@ -9711,7 +9711,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt44[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt45[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt45[] = { { .iv = 0, .lvl = 29, @@ -9719,7 +9719,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt45[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt46[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt46[] = { { .iv = 0, .lvl = 29, @@ -9727,7 +9727,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt46[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt47[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt47[] = { { .iv = 0, .lvl = 29, @@ -9735,7 +9735,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt47[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt48[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt48[] = { { .iv = 0, .lvl = 29, @@ -9743,7 +9743,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt48[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt49[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt49[] = { { .iv = 0, .lvl = 29, @@ -9751,7 +9751,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt49[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt50[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt50[] = { { .iv = 0, .lvl = 29, @@ -9759,7 +9759,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt50[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt51[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt51[] = { { .iv = 0, .lvl = 29, @@ -9767,7 +9767,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt51[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt52[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt52[] = { { .iv = 0, .lvl = 29, @@ -9775,7 +9775,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt52[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt53[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Grunt53[] = { { .iv = 0, .lvl = 29, @@ -9783,7 +9783,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Grunt53[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tabitha3[] = { { .iv = 75, .lvl = 26, @@ -9806,7 +9806,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tabitha3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darcy[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Darcy[] = { { .iv = 0, .lvl = 33, @@ -9819,7 +9819,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darcy[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Maxie3[] = { { .iv = 150, .lvl = 42, @@ -9837,7 +9837,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Maxie3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pete[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Pete[] = { { .iv = 0, .lvl = 15, @@ -9845,7 +9845,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pete[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isabelle[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Isabelle[] = { { .iv = 0, .lvl = 15, @@ -9853,7 +9853,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Isabelle[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Andres1[] = { { .iv = 50, .lvl = 25, @@ -9866,7 +9866,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Josue[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Josue[] = { { .iv = 50, .lvl = 25, @@ -9879,7 +9879,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Josue[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Camron[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Camron[] = { { .iv = 0, .lvl = 26, @@ -9887,7 +9887,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Camron[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cory1[] = { { .iv = 0, .lvl = 24, @@ -9905,7 +9905,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carolina[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Carolina[] = { { .iv = 50, .lvl = 24, @@ -9923,7 +9923,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Carolina[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elijah[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Elijah[] = { { .iv = 0, .lvl = 25, @@ -9936,7 +9936,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Elijah[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Celia[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Celia[] = { { .iv = 0, .lvl = 22, @@ -9949,7 +9949,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Celia[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bryan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Bryan[] = { { .iv = 0, .lvl = 22, @@ -9962,7 +9962,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bryan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Branden[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Branden[] = { { .iv = 0, .lvl = 22, @@ -9975,7 +9975,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Branden[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bryant[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Bryant[] = { { .iv = 0, .lvl = 18, @@ -9988,7 +9988,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Bryant[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shayla[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Shayla[] = { { .iv = 0, .lvl = 18, @@ -10001,7 +10001,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Shayla[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kyra[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Kyra[] = { { .iv = 0, .lvl = 26, @@ -10014,7 +10014,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Kyra[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jaiden[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Jaiden[] = { { .iv = 0, .lvl = 26, @@ -10027,7 +10027,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Jaiden[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alix[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Alix[] = { { .iv = 0, .lvl = 26, @@ -10040,7 +10040,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alix[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Helene[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Helene[] = { { .iv = 0, .lvl = 26, @@ -10053,7 +10053,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Helene[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marlene[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Marlene[] = { { .iv = 0, .lvl = 18, @@ -10066,7 +10066,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Marlene[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Devan[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Devan[] = { { .iv = 0, .lvl = 8, @@ -10079,7 +10079,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Devan[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Johnson[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Johnson[] = { { .iv = 0, .lvl = 8, @@ -10092,7 +10092,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Johnson[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Melina[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Melina[] = { { .iv = 0, .lvl = 17, @@ -10100,7 +10100,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Melina[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brandi[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brandi[] = { { .iv = 0, .lvl = 17, @@ -10108,7 +10108,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brandi[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Aisha[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Aisha[] = { { .iv = 0, .lvl = 17, @@ -10116,7 +10116,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Aisha[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Makayla[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Makayla[] = { { .iv = 0, .lvl = 33, @@ -10129,7 +10129,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Makayla[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fabian[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Fabian[] = { { .iv = 0, .lvl = 26, @@ -10137,7 +10137,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fabian[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dayton[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Dayton[] = { { .iv = 0, .lvl = 25, @@ -10150,7 +10150,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Dayton[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rachel[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Rachel[] = { { .iv = 0, .lvl = 26, @@ -10158,7 +10158,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Rachel[] = { } }; -const struct TrainerMonNoItemCustomMoves gTrainerParty_Leonel[] = { +static const struct TrainerMonNoItemCustomMoves sParty_Leonel[] = { { .iv = 100, .lvl = 30, @@ -10167,7 +10167,7 @@ const struct TrainerMonNoItemCustomMoves gTrainerParty_Leonel[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Callie[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Callie[] = { { .iv = 0, .lvl = 28, @@ -10180,7 +10180,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Callie[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cale[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cale[] = { { .iv = 0, .lvl = 29, @@ -10193,7 +10193,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cale[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Myles[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Myles[] = { { .iv = 10, .lvl = 25, @@ -10226,7 +10226,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Myles[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pat[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Pat[] = { { .iv = 10, .lvl = 25, @@ -10259,7 +10259,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pat[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cristin1[] = { { .iv = 100, .lvl = 29, @@ -10272,7 +10272,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin1[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May14[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May14[] = { { .iv = 25, .lvl = 13, @@ -10285,7 +10285,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May14[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May15[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May15[] = { { .iv = 25, .lvl = 13, @@ -10298,7 +10298,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_May15[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne2[] = { +static const struct TrainerMonItemCustomMoves sParty_Roxanne2[] = { { .iv = 255, .lvl = 32, @@ -10329,7 +10329,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne2[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne3[] = { +static const struct TrainerMonItemCustomMoves sParty_Roxanne3[] = { { .iv = 255, .lvl = 37, @@ -10367,7 +10367,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne3[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne4[] = { +static const struct TrainerMonItemCustomMoves sParty_Roxanne4[] = { { .iv = 255, .lvl = 42, @@ -10405,7 +10405,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne4[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne5[] = { +static const struct TrainerMonItemCustomMoves sParty_Roxanne5[] = { { .iv = 255, .lvl = 47, @@ -10450,7 +10450,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Roxanne5[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Brawly2[] = { +static const struct TrainerMonItemCustomMoves sParty_Brawly2[] = { { .iv = 255, .lvl = 33, @@ -10481,7 +10481,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Brawly2[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Brawly3[] = { +static const struct TrainerMonItemCustomMoves sParty_Brawly3[] = { { .iv = 255, .lvl = 38, @@ -10512,7 +10512,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Brawly3[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Brawly4[] = { +static const struct TrainerMonItemCustomMoves sParty_Brawly4[] = { { .iv = 255, .lvl = 40, @@ -10550,7 +10550,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Brawly4[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Brawly5[] = { +static const struct TrainerMonItemCustomMoves sParty_Brawly5[] = { { .iv = 255, .lvl = 46, @@ -10595,7 +10595,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Brawly5[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Wattson2[] = { +static const struct TrainerMonItemCustomMoves sParty_Wattson2[] = { { .iv = 255, .lvl = 36, @@ -10626,7 +10626,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Wattson2[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Wattson3[] = { +static const struct TrainerMonItemCustomMoves sParty_Wattson3[] = { { .iv = 255, .lvl = 39, @@ -10664,7 +10664,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Wattson3[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Wattson4[] = { +static const struct TrainerMonItemCustomMoves sParty_Wattson4[] = { { .iv = 255, .lvl = 44, @@ -10702,7 +10702,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Wattson4[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Wattson5[] = { +static const struct TrainerMonItemCustomMoves sParty_Wattson5[] = { { .iv = 255, .lvl = 50, @@ -10747,7 +10747,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Wattson5[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Flannery2[] = { +static const struct TrainerMonItemCustomMoves sParty_Flannery2[] = { { .iv = 255, .lvl = 38, @@ -10778,7 +10778,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Flannery2[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Flannery3[] = { +static const struct TrainerMonItemCustomMoves sParty_Flannery3[] = { { .iv = 255, .lvl = 41, @@ -10816,7 +10816,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Flannery3[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Flannery4[] = { +static const struct TrainerMonItemCustomMoves sParty_Flannery4[] = { { .iv = 255, .lvl = 46, @@ -10861,7 +10861,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Flannery4[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Flannery5[] = { +static const struct TrainerMonItemCustomMoves sParty_Flannery5[] = { { .iv = 255, .lvl = 51, @@ -10906,7 +10906,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Flannery5[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Norman2[] = { +static const struct TrainerMonItemCustomMoves sParty_Norman2[] = { { .iv = 255, .lvl = 42, @@ -10937,7 +10937,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Norman2[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Norman3[] = { +static const struct TrainerMonItemCustomMoves sParty_Norman3[] = { { .iv = 255, .lvl = 47, @@ -10975,7 +10975,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Norman3[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Norman4[] = { +static const struct TrainerMonItemCustomMoves sParty_Norman4[] = { { .iv = 255, .lvl = 52, @@ -11013,7 +11013,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Norman4[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Norman5[] = { +static const struct TrainerMonItemCustomMoves sParty_Norman5[] = { { .iv = 255, .lvl = 57, @@ -11058,7 +11058,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Norman5[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Winona2[] = { +static const struct TrainerMonItemCustomMoves sParty_Winona2[] = { { .iv = 255, .lvl = 40, @@ -11096,7 +11096,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Winona2[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Winona3[] = { +static const struct TrainerMonItemCustomMoves sParty_Winona3[] = { { .iv = 255, .lvl = 43, @@ -11141,7 +11141,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Winona3[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Winona4[] = { +static const struct TrainerMonItemCustomMoves sParty_Winona4[] = { { .iv = 255, .lvl = 48, @@ -11186,7 +11186,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Winona4[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Winona5[] = { +static const struct TrainerMonItemCustomMoves sParty_Winona5[] = { { .iv = 255, .lvl = 53, @@ -11231,7 +11231,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Winona5[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza2[] = { +static const struct TrainerMonItemCustomMoves sParty_TateAndLiza2[] = { { .iv = 255, .lvl = 48, @@ -11269,7 +11269,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza2[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza3[] = { +static const struct TrainerMonItemCustomMoves sParty_TateAndLiza3[] = { { .iv = 255, .lvl = 53, @@ -11314,7 +11314,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza3[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza4[] = { +static const struct TrainerMonItemCustomMoves sParty_TateAndLiza4[] = { { .iv = 255, .lvl = 58, @@ -11359,7 +11359,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza4[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza5[] = { +static const struct TrainerMonItemCustomMoves sParty_TateAndLiza5[] = { { .iv = 255, .lvl = 63, @@ -11404,7 +11404,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_TateAndLiza5[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Juan2[] = { +static const struct TrainerMonItemCustomMoves sParty_Juan2[] = { { .iv = 255, .lvl = 46, @@ -11442,7 +11442,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Juan2[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Juan3[] = { +static const struct TrainerMonItemCustomMoves sParty_Juan3[] = { { .iv = 255, .lvl = 50, @@ -11480,7 +11480,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Juan3[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Juan4[] = { +static const struct TrainerMonItemCustomMoves sParty_Juan4[] = { { .iv = 255, .lvl = 56, @@ -11525,7 +11525,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Juan4[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Juan5[] = { +static const struct TrainerMonItemCustomMoves sParty_Juan5[] = { { .iv = 255, .lvl = 61, @@ -11570,7 +11570,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Juan5[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Angelo[] = { +static const struct TrainerMonItemCustomMoves sParty_Angelo[] = { { .iv = 100, .lvl = 17, @@ -11587,7 +11587,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Angelo[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darius[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Darius[] = { { .iv = 200, .lvl = 30, @@ -11595,7 +11595,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Darius[] = { } }; -const struct TrainerMonItemCustomMoves gTrainerParty_Steven[] = { +static const struct TrainerMonItemCustomMoves sParty_Steven[] = { { .iv = 255, .lvl = 77, @@ -11640,7 +11640,7 @@ const struct TrainerMonItemCustomMoves gTrainerParty_Steven[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Anabel[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Anabel[] = { { .iv = 0, .lvl = 5, @@ -11648,7 +11648,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Anabel[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tucker[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Tucker[] = { { .iv = 0, .lvl = 5, @@ -11656,7 +11656,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Tucker[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Spenser[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Spenser[] = { { .iv = 0, .lvl = 5, @@ -11664,7 +11664,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Spenser[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Greta[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Greta[] = { { .iv = 0, .lvl = 5, @@ -11672,7 +11672,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Greta[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Noland[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Noland[] = { { .iv = 0, .lvl = 5, @@ -11680,7 +11680,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Noland[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lucy[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Lucy[] = { { .iv = 0, .lvl = 5, @@ -11688,7 +11688,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Lucy[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brandon[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brandon[] = { { .iv = 0, .lvl = 5, @@ -11696,7 +11696,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brandon[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Andres2[] = { { .iv = 10, .lvl = 31, @@ -11709,7 +11709,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Andres3[] = { { .iv = 20, .lvl = 33, @@ -11727,7 +11727,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Andres4[] = { { .iv = 30, .lvl = 35, @@ -11745,7 +11745,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Andres5[] = { { .iv = 40, .lvl = 37, @@ -11763,7 +11763,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Andres5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cory2[] = { { .iv = 10, .lvl = 30, @@ -11781,7 +11781,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cory3[] = { { .iv = 20, .lvl = 32, @@ -11799,7 +11799,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cory4[] = { { .iv = 30, .lvl = 34, @@ -11817,7 +11817,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cory5[] = { { .iv = 40, .lvl = 36, @@ -11835,7 +11835,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cory5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Pablo2[] = { { .iv = 10, .lvl = 37, @@ -11848,7 +11848,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Pablo3[] = { { .iv = 20, .lvl = 39, @@ -11866,7 +11866,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Pablo4[] = { { .iv = 30, .lvl = 41, @@ -11884,7 +11884,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Pablo5[] = { { .iv = 40, .lvl = 43, @@ -11902,7 +11902,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Pablo5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Koji2[] = { { .iv = 10, .lvl = 37, @@ -11915,7 +11915,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Koji3[] = { { .iv = 20, .lvl = 39, @@ -11933,7 +11933,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Koji4[] = { { .iv = 30, .lvl = 41, @@ -11951,7 +11951,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Koji5[] = { { .iv = 40, .lvl = 43, @@ -11969,7 +11969,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Koji5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cristin2[] = { { .iv = 110, .lvl = 35, @@ -11982,7 +11982,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cristin3[] = { { .iv = 120, .lvl = 37, @@ -12000,7 +12000,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cristin4[] = { { .iv = 130, .lvl = 39, @@ -12018,7 +12018,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Cristin5[] = { { .iv = 140, .lvl = 41, @@ -12036,7 +12036,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Cristin5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Fernando2[] = { { .iv = 10, .lvl = 35, @@ -12054,7 +12054,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Fernando3[] = { { .iv = 20, .lvl = 37, @@ -12072,7 +12072,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Fernando4[] = { { .iv = 30, .lvl = 39, @@ -12090,7 +12090,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Fernando5[] = { { .iv = 40, .lvl = 41, @@ -12108,7 +12108,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Fernando5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sawyer2[] = { { .iv = 10, .lvl = 26, @@ -12121,7 +12121,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sawyer3[] = { { .iv = 20, .lvl = 28, @@ -12139,7 +12139,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sawyer4[] = { { .iv = 30, .lvl = 30, @@ -12157,7 +12157,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Sawyer5[] = { { .iv = 40, .lvl = 33, @@ -12175,7 +12175,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Sawyer5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Gabrielle2[] = { { .iv = 10, .lvl = 31, @@ -12208,7 +12208,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Gabrielle3[] = { { .iv = 20, .lvl = 33, @@ -12241,7 +12241,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Gabrielle4[] = { { .iv = 30, .lvl = 35, @@ -12274,7 +12274,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Gabrielle5[] = { { .iv = 40, .lvl = 37, @@ -12307,7 +12307,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Gabrielle5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Thalia2[] = { { .iv = 10, .lvl = 34, @@ -12320,7 +12320,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia2[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Thalia3[] = { { .iv = 20, .lvl = 36, @@ -12338,7 +12338,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia3[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Thalia4[] = { { .iv = 30, .lvl = 38, @@ -12356,7 +12356,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia4[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Thalia5[] = { { .iv = 40, .lvl = 40, @@ -12374,7 +12374,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Thalia5[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mariela[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Mariela[] = { { .iv = 0, .lvl = 41, @@ -12382,7 +12382,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Mariela[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alvaro[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Alvaro[] = { { .iv = 0, .lvl = 41, @@ -12395,7 +12395,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Alvaro[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Everett[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Everett[] = { { .iv = 0, .lvl = 41, @@ -12403,7 +12403,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Everett[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Red[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Red[] = { { .iv = 0, .lvl = 5, @@ -12411,7 +12411,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Red[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leaf[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Leaf[] = { { .iv = 0, .lvl = 5, @@ -12419,7 +12419,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Leaf[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan16[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_Brendan16[] = { { .iv = 0, .lvl = 5, @@ -12427,7 +12427,7 @@ const struct TrainerMonNoItemDefaultMoves gTrainerParty_Brendan16[] = { } }; -const struct TrainerMonNoItemDefaultMoves gTrainerParty_May16[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_May16[] = { { .iv = 0, .lvl = 5, diff --git a/src/data/trainers.h b/src/data/trainers.h index 7ec297eb3..5a92926cc 100644 --- a/src/data/trainers.h +++ b/src/data/trainers.h @@ -24,7 +24,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer1 } + .party = {.NoItemDefaultMoves = sParty_Sawyer1 } }, [TRAINER_GRUNT_1] = @@ -38,7 +38,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt1 } + .party = {.NoItemDefaultMoves = sParty_Grunt1 } }, [TRAINER_GRUNT_2] = @@ -52,7 +52,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt2 } + .party = {.NoItemDefaultMoves = sParty_Grunt2 } }, [TRAINER_GRUNT_3] = @@ -66,7 +66,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt3 } + .party = {.NoItemDefaultMoves = sParty_Grunt3 } }, [TRAINER_GRUNT_4] = @@ -80,7 +80,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt4 } + .party = {.NoItemDefaultMoves = sParty_Grunt4 } }, [TRAINER_GRUNT_5] = @@ -94,7 +94,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt5 } + .party = {.NoItemDefaultMoves = sParty_Grunt5 } }, [TRAINER_GRUNT_6] = @@ -108,7 +108,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt6 } + .party = {.NoItemDefaultMoves = sParty_Grunt6 } }, [TRAINER_GRUNT_7] = @@ -122,7 +122,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt7 } + .party = {.NoItemDefaultMoves = sParty_Grunt7 } }, [TRAINER_GABRIELLE_1] = @@ -136,7 +136,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle1 } + .party = {.NoItemDefaultMoves = sParty_Gabrielle1 } }, [TRAINER_GRUNT_8] = @@ -150,7 +150,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt8 } + .party = {.NoItemDefaultMoves = sParty_Grunt8 } }, [TRAINER_MARCEL] = @@ -164,7 +164,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Marcel } + .party = {.NoItemDefaultMoves = sParty_Marcel } }, [TRAINER_ALBERTO] = @@ -178,7 +178,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Alberto } + .party = {.NoItemDefaultMoves = sParty_Alberto } }, [TRAINER_ED] = @@ -192,7 +192,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Ed } + .party = {.NoItemDefaultMoves = sParty_Ed } }, [TRAINER_GRUNT_9] = @@ -206,7 +206,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt9 } + .party = {.NoItemDefaultMoves = sParty_Grunt9 } }, [TRAINER_DECLAN] = @@ -220,7 +220,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Declan } + .party = {.NoItemDefaultMoves = sParty_Declan } }, [TRAINER_GRUNT_10] = @@ -234,7 +234,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt10 } + .party = {.NoItemDefaultMoves = sParty_Grunt10 } }, [TRAINER_GRUNT_11] = @@ -248,7 +248,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt11 } + .party = {.NoItemDefaultMoves = sParty_Grunt11 } }, [TRAINER_GRUNT_12] = @@ -262,7 +262,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt12 } + .party = {.NoItemDefaultMoves = sParty_Grunt12 } }, [TRAINER_GRUNT_13] = @@ -276,7 +276,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt13 } + .party = {.NoItemDefaultMoves = sParty_Grunt13 } }, [TRAINER_GRUNT_14] = @@ -290,7 +290,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt14 } + .party = {.NoItemDefaultMoves = sParty_Grunt14 } }, [TRAINER_GRUNT_15] = @@ -304,7 +304,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt15 } + .party = {.NoItemDefaultMoves = sParty_Grunt15 } }, [TRAINER_GRUNT_16] = @@ -318,7 +318,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt16 } + .party = {.NoItemDefaultMoves = sParty_Grunt16 } }, [TRAINER_GRUNT_17] = @@ -332,7 +332,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt17 } + .party = {.NoItemDefaultMoves = sParty_Grunt17 } }, [TRAINER_GRUNT_18] = @@ -346,7 +346,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt18 } + .party = {.NoItemDefaultMoves = sParty_Grunt18 } }, [TRAINER_GRUNT_19] = @@ -360,7 +360,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt19 } + .party = {.NoItemDefaultMoves = sParty_Grunt19 } }, [TRAINER_GRUNT_20] = @@ -374,7 +374,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt20 } + .party = {.NoItemDefaultMoves = sParty_Grunt20 } }, [TRAINER_GRUNT_21] = @@ -388,7 +388,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt21 } + .party = {.NoItemDefaultMoves = sParty_Grunt21 } }, [TRAINER_GRUNT_22] = @@ -402,7 +402,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt22 } + .party = {.NoItemDefaultMoves = sParty_Grunt22 } }, [TRAINER_FREDRICK] = @@ -416,7 +416,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Fredrick } + .party = {.NoItemDefaultMoves = sParty_Fredrick } }, [TRAINER_MATT] = @@ -430,7 +430,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Matt } + .party = {.NoItemDefaultMoves = sParty_Matt } }, [TRAINER_ZANDER] = @@ -444,7 +444,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Zander } + .party = {.NoItemDefaultMoves = sParty_Zander } }, [TRAINER_SHELLY_1] = @@ -458,7 +458,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Shelly1 } + .party = {.NoItemDefaultMoves = sParty_Shelly1 } }, [TRAINER_SHELLY_2] = @@ -472,7 +472,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Shelly2 } + .party = {.NoItemDefaultMoves = sParty_Shelly2 } }, [TRAINER_ARCHIE] = @@ -486,7 +486,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Archie } + .party = {.NoItemDefaultMoves = sParty_Archie } }, [TRAINER_LEAH] = @@ -500,7 +500,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Leah } + .party = {.NoItemDefaultMoves = sParty_Leah } }, [TRAINER_DAISY] = @@ -514,7 +514,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Daisy } + .party = {.NoItemDefaultMoves = sParty_Daisy } }, [TRAINER_ROSE_1] = @@ -528,7 +528,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Rose1 } + .party = {.NoItemDefaultMoves = sParty_Rose1 } }, [TRAINER_FELIX] = @@ -542,7 +542,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Felix } + .party = {.NoItemCustomMoves = sParty_Felix } }, [TRAINER_VIOLET] = @@ -556,7 +556,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Violet } + .party = {.NoItemDefaultMoves = sParty_Violet } }, [TRAINER_ROSE_2] = @@ -570,7 +570,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Rose2 } + .party = {.NoItemDefaultMoves = sParty_Rose2 } }, [TRAINER_ROSE_3] = @@ -584,7 +584,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Rose3 } + .party = {.NoItemDefaultMoves = sParty_Rose3 } }, [TRAINER_ROSE_4] = @@ -598,7 +598,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Rose4 } + .party = {.NoItemDefaultMoves = sParty_Rose4 } }, [TRAINER_ROSE_5] = @@ -612,7 +612,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Rose5 } + .party = {.NoItemDefaultMoves = sParty_Rose5 } }, [TRAINER_DUSTY_1] = @@ -626,7 +626,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Dusty1 } + .party = {.NoItemCustomMoves = sParty_Dusty1 } }, [TRAINER_CHIP] = @@ -640,7 +640,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemCustomMoves = gTrainerParty_Chip } + .party = {.NoItemCustomMoves = sParty_Chip } }, [TRAINER_FOSTER] = @@ -654,7 +654,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Foster } + .party = {.NoItemCustomMoves = sParty_Foster } }, [TRAINER_DUSTY_2] = @@ -668,7 +668,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Dusty2 } + .party = {.NoItemCustomMoves = sParty_Dusty2 } }, [TRAINER_DUSTY_3] = @@ -682,7 +682,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Dusty3 } + .party = {.NoItemCustomMoves = sParty_Dusty3 } }, [TRAINER_DUSTY_4] = @@ -696,7 +696,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Dusty4 } + .party = {.NoItemCustomMoves = sParty_Dusty4 } }, [TRAINER_DUSTY_5] = @@ -710,7 +710,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Dusty5 } + .party = {.NoItemCustomMoves = sParty_Dusty5 } }, [TRAINER_GABBY_AND_TY_1] = @@ -724,7 +724,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy1 } + .party = {.NoItemDefaultMoves = sParty_GabbyAndTy1 } }, [TRAINER_GABBY_AND_TY_2] = @@ -738,7 +738,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy2 } + .party = {.NoItemDefaultMoves = sParty_GabbyAndTy2 } }, [TRAINER_GABBY_AND_TY_3] = @@ -752,7 +752,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy3 } + .party = {.NoItemDefaultMoves = sParty_GabbyAndTy3 } }, [TRAINER_GABBY_AND_TY_4] = @@ -766,7 +766,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy4 } + .party = {.NoItemDefaultMoves = sParty_GabbyAndTy4 } }, [TRAINER_GABBY_AND_TY_5] = @@ -780,7 +780,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_GabbyAndTy5 } + .party = {.NoItemDefaultMoves = sParty_GabbyAndTy5 } }, [TRAINER_GABBY_AND_TY_6] = @@ -794,7 +794,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_GabbyAndTy6 } + .party = {.NoItemCustomMoves = sParty_GabbyAndTy6 } }, [TRAINER_LOLA_1] = @@ -808,7 +808,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Lola1 } + .party = {.NoItemDefaultMoves = sParty_Lola1 } }, [TRAINER_AUSTINA] = @@ -822,7 +822,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Austina } + .party = {.NoItemDefaultMoves = sParty_Austina } }, [TRAINER_GWEN] = @@ -836,7 +836,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Gwen } + .party = {.NoItemDefaultMoves = sParty_Gwen } }, [TRAINER_LOLA_2] = @@ -850,7 +850,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Lola2 } + .party = {.NoItemDefaultMoves = sParty_Lola2 } }, [TRAINER_LOLA_3] = @@ -864,7 +864,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Lola3 } + .party = {.NoItemDefaultMoves = sParty_Lola3 } }, [TRAINER_LOLA_4] = @@ -878,7 +878,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Lola4 } + .party = {.NoItemDefaultMoves = sParty_Lola4 } }, [TRAINER_LOLA_5] = @@ -892,7 +892,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Lola5 } + .party = {.NoItemDefaultMoves = sParty_Lola5 } }, [TRAINER_RICKY_1] = @@ -906,7 +906,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Ricky1 } + .party = {.NoItemCustomMoves = sParty_Ricky1 } }, [TRAINER_SIMON] = @@ -920,7 +920,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Simon } + .party = {.NoItemDefaultMoves = sParty_Simon } }, [TRAINER_CHARLIE] = @@ -934,7 +934,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Charlie } + .party = {.NoItemDefaultMoves = sParty_Charlie } }, [TRAINER_RICKY_2] = @@ -948,7 +948,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Ricky2 } + .party = {.NoItemCustomMoves = sParty_Ricky2 } }, [TRAINER_RICKY_3] = @@ -962,7 +962,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Ricky3 } + .party = {.NoItemCustomMoves = sParty_Ricky3 } }, [TRAINER_RICKY_4] = @@ -976,7 +976,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Ricky4 } + .party = {.NoItemCustomMoves = sParty_Ricky4 } }, [TRAINER_RICKY_5] = @@ -990,7 +990,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Ricky5 } + .party = {.NoItemCustomMoves = sParty_Ricky5 } }, [TRAINER_RANDALL] = @@ -1004,7 +1004,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.ItemCustomMoves = gTrainerParty_Randall } + .party = {.ItemCustomMoves = sParty_Randall } }, [TRAINER_PARKER] = @@ -1018,7 +1018,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.ItemCustomMoves = gTrainerParty_Parker } + .party = {.ItemCustomMoves = sParty_Parker } }, [TRAINER_GEORGE] = @@ -1032,7 +1032,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.ItemCustomMoves = gTrainerParty_George } + .party = {.ItemCustomMoves = sParty_George } }, [TRAINER_BERKE] = @@ -1046,7 +1046,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.ItemCustomMoves = gTrainerParty_Berke } + .party = {.ItemCustomMoves = sParty_Berke } }, [TRAINER_BRAXTON] = @@ -1060,7 +1060,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.NoItemCustomMoves = gTrainerParty_Braxton } + .party = {.NoItemCustomMoves = sParty_Braxton } }, [TRAINER_VINCENT] = @@ -1074,7 +1074,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Vincent } + .party = {.NoItemDefaultMoves = sParty_Vincent } }, [TRAINER_LEROY] = @@ -1088,7 +1088,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Leroy } + .party = {.NoItemDefaultMoves = sParty_Leroy } }, [TRAINER_WILTON_1] = @@ -1102,7 +1102,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Wilton1 } + .party = {.NoItemDefaultMoves = sParty_Wilton1 } }, [TRAINER_EDGAR] = @@ -1116,7 +1116,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Edgar } + .party = {.NoItemDefaultMoves = sParty_Edgar } }, [TRAINER_ALBERT] = @@ -1130,7 +1130,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Albert } + .party = {.NoItemDefaultMoves = sParty_Albert } }, [TRAINER_SAMUEL] = @@ -1144,7 +1144,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Samuel } + .party = {.NoItemDefaultMoves = sParty_Samuel } }, [TRAINER_VITO] = @@ -1158,7 +1158,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Vito } + .party = {.NoItemDefaultMoves = sParty_Vito } }, [TRAINER_OWEN] = @@ -1172,7 +1172,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Owen } + .party = {.NoItemDefaultMoves = sParty_Owen } }, [TRAINER_WILTON_2] = @@ -1186,7 +1186,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Wilton2 } + .party = {.NoItemDefaultMoves = sParty_Wilton2 } }, [TRAINER_WILTON_3] = @@ -1200,7 +1200,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Wilton3 } + .party = {.NoItemDefaultMoves = sParty_Wilton3 } }, [TRAINER_WILTON_4] = @@ -1214,7 +1214,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Wilton4 } + .party = {.NoItemDefaultMoves = sParty_Wilton4 } }, [TRAINER_WILTON_5] = @@ -1228,7 +1228,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Wilton5 } + .party = {.NoItemDefaultMoves = sParty_Wilton5 } }, [TRAINER_WARREN] = @@ -1242,7 +1242,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Warren } + .party = {.NoItemDefaultMoves = sParty_Warren } }, [TRAINER_MARY] = @@ -1256,7 +1256,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.ItemCustomMoves = gTrainerParty_Mary } + .party = {.ItemCustomMoves = sParty_Mary } }, [TRAINER_ALEXIA] = @@ -1270,7 +1270,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.ItemCustomMoves = gTrainerParty_Alexia } + .party = {.ItemCustomMoves = sParty_Alexia } }, [TRAINER_JODY] = @@ -1284,7 +1284,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 1, - .party = {.ItemCustomMoves = gTrainerParty_Jody } + .party = {.ItemCustomMoves = sParty_Jody } }, [TRAINER_WENDY] = @@ -1298,7 +1298,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 3, - .party = {.NoItemCustomMoves = gTrainerParty_Wendy } + .party = {.NoItemCustomMoves = sParty_Wendy } }, [TRAINER_KEIRA] = @@ -1312,7 +1312,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Keira } + .party = {.NoItemDefaultMoves = sParty_Keira } }, [TRAINER_BROOKE_1] = @@ -1326,7 +1326,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Brooke1 } + .party = {.NoItemDefaultMoves = sParty_Brooke1 } }, [TRAINER_JENNIFER] = @@ -1340,7 +1340,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jennifer } + .party = {.NoItemDefaultMoves = sParty_Jennifer } }, [TRAINER_HOPE] = @@ -1354,7 +1354,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Hope } + .party = {.NoItemDefaultMoves = sParty_Hope } }, [TRAINER_SHANNON] = @@ -1368,7 +1368,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Shannon } + .party = {.NoItemDefaultMoves = sParty_Shannon } }, [TRAINER_MICHELLE] = @@ -1382,7 +1382,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Michelle } + .party = {.NoItemDefaultMoves = sParty_Michelle } }, [TRAINER_CAROLINE] = @@ -1396,7 +1396,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Caroline } + .party = {.NoItemDefaultMoves = sParty_Caroline } }, [TRAINER_JULIE] = @@ -1410,7 +1410,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Julie } + .party = {.NoItemDefaultMoves = sParty_Julie } }, [TRAINER_BROOKE_2] = @@ -1424,7 +1424,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Brooke2 } + .party = {.NoItemDefaultMoves = sParty_Brooke2 } }, [TRAINER_BROOKE_3] = @@ -1438,7 +1438,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Brooke3 } + .party = {.NoItemDefaultMoves = sParty_Brooke3 } }, [TRAINER_BROOKE_4] = @@ -1452,7 +1452,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Brooke4 } + .party = {.NoItemDefaultMoves = sParty_Brooke4 } }, [TRAINER_BROOKE_5] = @@ -1466,7 +1466,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Brooke5 } + .party = {.NoItemDefaultMoves = sParty_Brooke5 } }, [TRAINER_PATRICIA] = @@ -1480,7 +1480,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Patricia } + .party = {.NoItemDefaultMoves = sParty_Patricia } }, [TRAINER_KINDRA] = @@ -1494,7 +1494,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Kindra } + .party = {.NoItemDefaultMoves = sParty_Kindra } }, [TRAINER_TAMMY] = @@ -1508,7 +1508,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Tammy } + .party = {.NoItemDefaultMoves = sParty_Tammy } }, [TRAINER_VALERIE_1] = @@ -1522,7 +1522,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Valerie1 } + .party = {.NoItemDefaultMoves = sParty_Valerie1 } }, [TRAINER_TASHA] = @@ -1536,7 +1536,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Tasha } + .party = {.NoItemDefaultMoves = sParty_Tasha } }, [TRAINER_VALERIE_2] = @@ -1550,7 +1550,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Valerie2 } + .party = {.NoItemDefaultMoves = sParty_Valerie2 } }, [TRAINER_VALERIE_3] = @@ -1564,7 +1564,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Valerie3 } + .party = {.NoItemDefaultMoves = sParty_Valerie3 } }, [TRAINER_VALERIE_4] = @@ -1578,7 +1578,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Valerie4 } + .party = {.NoItemDefaultMoves = sParty_Valerie4 } }, [TRAINER_VALERIE_5] = @@ -1592,7 +1592,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Valerie5 } + .party = {.NoItemDefaultMoves = sParty_Valerie5 } }, [TRAINER_CINDY_1] = @@ -1606,7 +1606,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Cindy1 } + .party = {.ItemDefaultMoves = sParty_Cindy1 } }, [TRAINER_DAPHNE] = @@ -1620,7 +1620,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.ItemCustomMoves = gTrainerParty_Daphne } + .party = {.ItemCustomMoves = sParty_Daphne } }, [TRAINER_GRUNT_23] = @@ -1634,7 +1634,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt23 } + .party = {.NoItemDefaultMoves = sParty_Grunt23 } }, [TRAINER_CINDY_2] = @@ -1648,7 +1648,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemCustomMoves = gTrainerParty_Cindy2 } + .party = {.ItemCustomMoves = sParty_Cindy2 } }, [TRAINER_BRIANNA] = @@ -1662,7 +1662,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Brianna } + .party = {.ItemDefaultMoves = sParty_Brianna } }, [TRAINER_NAOMI] = @@ -1676,7 +1676,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Naomi } + .party = {.ItemDefaultMoves = sParty_Naomi } }, [TRAINER_CINDY_3] = @@ -1690,7 +1690,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Cindy3 } + .party = {.ItemDefaultMoves = sParty_Cindy3 } }, [TRAINER_CINDY_4] = @@ -1704,7 +1704,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Cindy4 } + .party = {.ItemDefaultMoves = sParty_Cindy4 } }, [TRAINER_CINDY_5] = @@ -1718,7 +1718,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Cindy5 } + .party = {.ItemDefaultMoves = sParty_Cindy5 } }, [TRAINER_CINDY_6] = @@ -1732,7 +1732,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemCustomMoves = gTrainerParty_Cindy6 } + .party = {.ItemCustomMoves = sParty_Cindy6 } }, [TRAINER_MELISSA] = @@ -1746,7 +1746,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Melissa } + .party = {.NoItemDefaultMoves = sParty_Melissa } }, [TRAINER_SHEILA] = @@ -1760,7 +1760,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Sheila } + .party = {.NoItemDefaultMoves = sParty_Sheila } }, [TRAINER_SHIRLEY] = @@ -1774,7 +1774,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Shirley } + .party = {.NoItemDefaultMoves = sParty_Shirley } }, [TRAINER_JESSICA_1] = @@ -1788,7 +1788,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Jessica1 } + .party = {.NoItemCustomMoves = sParty_Jessica1 } }, [TRAINER_CONNIE] = @@ -1802,7 +1802,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Connie } + .party = {.NoItemDefaultMoves = sParty_Connie } }, [TRAINER_BRIDGET] = @@ -1816,7 +1816,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Bridget } + .party = {.NoItemDefaultMoves = sParty_Bridget } }, [TRAINER_OLIVIA] = @@ -1830,7 +1830,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemCustomMoves = gTrainerParty_Olivia } + .party = {.NoItemCustomMoves = sParty_Olivia } }, [TRAINER_TIFFANY] = @@ -1844,7 +1844,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Tiffany } + .party = {.NoItemDefaultMoves = sParty_Tiffany } }, [TRAINER_JESSICA_2] = @@ -1858,7 +1858,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Jessica2 } + .party = {.NoItemCustomMoves = sParty_Jessica2 } }, [TRAINER_JESSICA_3] = @@ -1872,7 +1872,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Jessica3 } + .party = {.NoItemCustomMoves = sParty_Jessica3 } }, [TRAINER_JESSICA_4] = @@ -1886,7 +1886,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Jessica4 } + .party = {.NoItemCustomMoves = sParty_Jessica4 } }, [TRAINER_JESSICA_5] = @@ -1900,7 +1900,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Jessica5 } + .party = {.NoItemCustomMoves = sParty_Jessica5 } }, [TRAINER_WINSTON_1] = @@ -1914,7 +1914,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Winston1 } + .party = {.ItemDefaultMoves = sParty_Winston1 } }, [TRAINER_MOLLIE] = @@ -1928,7 +1928,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Mollie } + .party = {.NoItemDefaultMoves = sParty_Mollie } }, [TRAINER_GARRET] = @@ -1942,7 +1942,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Garret } + .party = {.ItemDefaultMoves = sParty_Garret } }, [TRAINER_WINSTON_2] = @@ -1956,7 +1956,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Winston2 } + .party = {.ItemDefaultMoves = sParty_Winston2 } }, [TRAINER_WINSTON_3] = @@ -1970,7 +1970,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Winston3 } + .party = {.ItemDefaultMoves = sParty_Winston3 } }, [TRAINER_WINSTON_4] = @@ -1984,7 +1984,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Winston4 } + .party = {.ItemDefaultMoves = sParty_Winston4 } }, [TRAINER_WINSTON_5] = @@ -1998,7 +1998,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemCustomMoves = gTrainerParty_Winston5 } + .party = {.ItemCustomMoves = sParty_Winston5 } }, [TRAINER_STEVE_1] = @@ -2012,7 +2012,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Steve1 } + .party = {.NoItemDefaultMoves = sParty_Steve1 } }, [TRAINER_THALIA_1] = @@ -2026,7 +2026,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Thalia1 } + .party = {.NoItemDefaultMoves = sParty_Thalia1 } }, [TRAINER_MARK] = @@ -2040,7 +2040,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Mark } + .party = {.NoItemDefaultMoves = sParty_Mark } }, [TRAINER_GRUNT_24] = @@ -2054,7 +2054,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt24 } + .party = {.NoItemDefaultMoves = sParty_Grunt24 } }, [TRAINER_STEVE_2] = @@ -2068,7 +2068,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Steve2 } + .party = {.NoItemDefaultMoves = sParty_Steve2 } }, [TRAINER_STEVE_3] = @@ -2082,7 +2082,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Steve3 } + .party = {.NoItemDefaultMoves = sParty_Steve3 } }, [TRAINER_STEVE_4] = @@ -2096,7 +2096,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Steve4 } + .party = {.NoItemDefaultMoves = sParty_Steve4 } }, [TRAINER_STEVE_5] = @@ -2110,7 +2110,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Steve5 } + .party = {.NoItemDefaultMoves = sParty_Steve5 } }, [TRAINER_LUIS] = @@ -2124,7 +2124,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Luis } + .party = {.NoItemDefaultMoves = sParty_Luis } }, [TRAINER_DOMINIK] = @@ -2138,7 +2138,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Dominik } + .party = {.NoItemDefaultMoves = sParty_Dominik } }, [TRAINER_DOUGLAS] = @@ -2152,7 +2152,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Douglas } + .party = {.NoItemDefaultMoves = sParty_Douglas } }, [TRAINER_DARRIN] = @@ -2166,7 +2166,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Darrin } + .party = {.NoItemDefaultMoves = sParty_Darrin } }, [TRAINER_TONY_1] = @@ -2180,7 +2180,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Tony1 } + .party = {.NoItemDefaultMoves = sParty_Tony1 } }, [TRAINER_JEROME] = @@ -2194,7 +2194,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jerome } + .party = {.NoItemDefaultMoves = sParty_Jerome } }, [TRAINER_MATTHEW] = @@ -2208,7 +2208,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Matthew } + .party = {.NoItemDefaultMoves = sParty_Matthew } }, [TRAINER_DAVID] = @@ -2222,7 +2222,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_David } + .party = {.NoItemDefaultMoves = sParty_David } }, [TRAINER_SPENCER] = @@ -2236,7 +2236,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Spencer } + .party = {.NoItemDefaultMoves = sParty_Spencer } }, [TRAINER_ROLAND] = @@ -2250,7 +2250,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Roland } + .party = {.NoItemDefaultMoves = sParty_Roland } }, [TRAINER_NOLEN] = @@ -2264,7 +2264,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Nolen } + .party = {.NoItemDefaultMoves = sParty_Nolen } }, [TRAINER_STAN] = @@ -2278,7 +2278,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Stan } + .party = {.NoItemDefaultMoves = sParty_Stan } }, [TRAINER_BARRY] = @@ -2292,7 +2292,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Barry } + .party = {.NoItemDefaultMoves = sParty_Barry } }, [TRAINER_DEAN] = @@ -2306,7 +2306,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Dean } + .party = {.NoItemDefaultMoves = sParty_Dean } }, [TRAINER_RODNEY] = @@ -2320,7 +2320,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Rodney } + .party = {.NoItemDefaultMoves = sParty_Rodney } }, [TRAINER_RICHARD] = @@ -2334,7 +2334,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Richard } + .party = {.NoItemDefaultMoves = sParty_Richard } }, [TRAINER_HERMAN] = @@ -2348,7 +2348,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Herman } + .party = {.NoItemDefaultMoves = sParty_Herman } }, [TRAINER_SANTIAGO] = @@ -2362,7 +2362,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Santiago } + .party = {.NoItemDefaultMoves = sParty_Santiago } }, [TRAINER_GILBERT] = @@ -2376,7 +2376,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Gilbert } + .party = {.NoItemDefaultMoves = sParty_Gilbert } }, [TRAINER_FRANKLIN] = @@ -2390,7 +2390,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Franklin } + .party = {.NoItemDefaultMoves = sParty_Franklin } }, [TRAINER_KEVIN] = @@ -2404,7 +2404,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Kevin } + .party = {.NoItemDefaultMoves = sParty_Kevin } }, [TRAINER_JACK] = @@ -2418,7 +2418,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jack } + .party = {.NoItemDefaultMoves = sParty_Jack } }, [TRAINER_DUDLEY] = @@ -2432,7 +2432,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Dudley } + .party = {.NoItemDefaultMoves = sParty_Dudley } }, [TRAINER_CHAD] = @@ -2446,7 +2446,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Chad } + .party = {.NoItemDefaultMoves = sParty_Chad } }, [TRAINER_TONY_2] = @@ -2460,7 +2460,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Tony2 } + .party = {.NoItemDefaultMoves = sParty_Tony2 } }, [TRAINER_TONY_3] = @@ -2474,7 +2474,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Tony3 } + .party = {.NoItemDefaultMoves = sParty_Tony3 } }, [TRAINER_TONY_4] = @@ -2488,7 +2488,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Tony4 } + .party = {.NoItemDefaultMoves = sParty_Tony4 } }, [TRAINER_TONY_5] = @@ -2502,7 +2502,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Tony5 } + .party = {.NoItemDefaultMoves = sParty_Tony5 } }, [TRAINER_TAKAO] = @@ -2516,7 +2516,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Takao } + .party = {.NoItemDefaultMoves = sParty_Takao } }, [TRAINER_HITOSHI] = @@ -2530,7 +2530,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Hitoshi } + .party = {.NoItemDefaultMoves = sParty_Hitoshi } }, [TRAINER_KIYO] = @@ -2544,7 +2544,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Kiyo } + .party = {.NoItemDefaultMoves = sParty_Kiyo } }, [TRAINER_KOICHI] = @@ -2558,7 +2558,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Koichi } + .party = {.NoItemDefaultMoves = sParty_Koichi } }, [TRAINER_NOB_1] = @@ -2572,7 +2572,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Nob1 } + .party = {.NoItemDefaultMoves = sParty_Nob1 } }, [TRAINER_NOB_2] = @@ -2586,7 +2586,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Nob2 } + .party = {.NoItemDefaultMoves = sParty_Nob2 } }, [TRAINER_NOB_3] = @@ -2600,7 +2600,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Nob3 } + .party = {.NoItemDefaultMoves = sParty_Nob3 } }, [TRAINER_NOB_4] = @@ -2614,7 +2614,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Nob4 } + .party = {.NoItemDefaultMoves = sParty_Nob4 } }, [TRAINER_NOB_5] = @@ -2628,7 +2628,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.ItemDefaultMoves = gTrainerParty_Nob5 } + .party = {.ItemDefaultMoves = sParty_Nob5 } }, [TRAINER_YUJI] = @@ -2642,7 +2642,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Yuji } + .party = {.NoItemDefaultMoves = sParty_Yuji } }, [TRAINER_DAISUKE] = @@ -2656,7 +2656,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Daisuke } + .party = {.NoItemDefaultMoves = sParty_Daisuke } }, [TRAINER_ATSUSHI] = @@ -2670,7 +2670,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Atsushi } + .party = {.NoItemDefaultMoves = sParty_Atsushi } }, [TRAINER_KIRK] = @@ -2684,7 +2684,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Kirk } + .party = {.NoItemCustomMoves = sParty_Kirk } }, [TRAINER_GRUNT_25] = @@ -2698,7 +2698,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt25 } + .party = {.NoItemDefaultMoves = sParty_Grunt25 } }, [TRAINER_GRUNT_26] = @@ -2712,7 +2712,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt26 } + .party = {.NoItemDefaultMoves = sParty_Grunt26 } }, [TRAINER_SHAWN] = @@ -2726,7 +2726,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Shawn } + .party = {.NoItemDefaultMoves = sParty_Shawn } }, [TRAINER_FERNANDO_1] = @@ -2740,7 +2740,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Fernando1 } + .party = {.NoItemDefaultMoves = sParty_Fernando1 } }, [TRAINER_DALTON_1] = @@ -2754,7 +2754,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Dalton1 } + .party = {.NoItemDefaultMoves = sParty_Dalton1 } }, [TRAINER_DALTON_2] = @@ -2768,7 +2768,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Dalton2 } + .party = {.NoItemDefaultMoves = sParty_Dalton2 } }, [TRAINER_DALTON_3] = @@ -2782,7 +2782,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Dalton3 } + .party = {.NoItemDefaultMoves = sParty_Dalton3 } }, [TRAINER_DALTON_4] = @@ -2796,7 +2796,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Dalton4 } + .party = {.NoItemDefaultMoves = sParty_Dalton4 } }, [TRAINER_DALTON_5] = @@ -2810,7 +2810,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Dalton5 } + .party = {.NoItemDefaultMoves = sParty_Dalton5 } }, [TRAINER_COLE] = @@ -2824,7 +2824,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Cole } + .party = {.NoItemDefaultMoves = sParty_Cole } }, [TRAINER_JEFF] = @@ -2838,7 +2838,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jeff } + .party = {.NoItemDefaultMoves = sParty_Jeff } }, [TRAINER_AXLE] = @@ -2852,7 +2852,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Axle } + .party = {.NoItemDefaultMoves = sParty_Axle } }, [TRAINER_JACE] = @@ -2866,7 +2866,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jace } + .party = {.NoItemDefaultMoves = sParty_Jace } }, [TRAINER_KEEGAN] = @@ -2880,7 +2880,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Keegan } + .party = {.NoItemDefaultMoves = sParty_Keegan } }, [TRAINER_BERNIE_1] = @@ -2894,7 +2894,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Bernie1 } + .party = {.NoItemDefaultMoves = sParty_Bernie1 } }, [TRAINER_BERNIE_2] = @@ -2908,7 +2908,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Bernie2 } + .party = {.NoItemDefaultMoves = sParty_Bernie2 } }, [TRAINER_BERNIE_3] = @@ -2922,7 +2922,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Bernie3 } + .party = {.NoItemDefaultMoves = sParty_Bernie3 } }, [TRAINER_BERNIE_4] = @@ -2936,7 +2936,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Bernie4 } + .party = {.NoItemDefaultMoves = sParty_Bernie4 } }, [TRAINER_BERNIE_5] = @@ -2950,7 +2950,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Bernie5 } + .party = {.NoItemDefaultMoves = sParty_Bernie5 } }, [TRAINER_DREW] = @@ -2964,7 +2964,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Drew } + .party = {.NoItemCustomMoves = sParty_Drew } }, [TRAINER_BEAU] = @@ -2978,7 +2978,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemCustomMoves = gTrainerParty_Beau } + .party = {.NoItemCustomMoves = sParty_Beau } }, [TRAINER_LARRY] = @@ -2992,7 +2992,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Larry } + .party = {.NoItemDefaultMoves = sParty_Larry } }, [TRAINER_SHANE] = @@ -3006,7 +3006,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Shane } + .party = {.NoItemDefaultMoves = sParty_Shane } }, [TRAINER_JUSTIN] = @@ -3020,7 +3020,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Justin } + .party = {.NoItemDefaultMoves = sParty_Justin } }, [TRAINER_ETHAN_1] = @@ -3034,7 +3034,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Ethan1 } + .party = {.NoItemDefaultMoves = sParty_Ethan1 } }, [TRAINER_AUTUMN] = @@ -3048,7 +3048,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Autumn } + .party = {.NoItemDefaultMoves = sParty_Autumn } }, [TRAINER_TRAVIS] = @@ -3062,7 +3062,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Travis } + .party = {.NoItemDefaultMoves = sParty_Travis } }, [TRAINER_ETHAN_2] = @@ -3076,7 +3076,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Ethan2 } + .party = {.NoItemDefaultMoves = sParty_Ethan2 } }, [TRAINER_ETHAN_3] = @@ -3090,7 +3090,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Ethan3 } + .party = {.NoItemDefaultMoves = sParty_Ethan3 } }, [TRAINER_ETHAN_4] = @@ -3104,7 +3104,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Ethan4 } + .party = {.NoItemDefaultMoves = sParty_Ethan4 } }, [TRAINER_ETHAN_5] = @@ -3118,7 +3118,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Ethan5 } + .party = {.NoItemDefaultMoves = sParty_Ethan5 } }, [TRAINER_BRENT] = @@ -3132,7 +3132,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Brent } + .party = {.NoItemDefaultMoves = sParty_Brent } }, [TRAINER_DONALD] = @@ -3146,7 +3146,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Donald } + .party = {.NoItemDefaultMoves = sParty_Donald } }, [TRAINER_TAYLOR] = @@ -3160,7 +3160,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Taylor } + .party = {.NoItemDefaultMoves = sParty_Taylor } }, [TRAINER_JEFFREY_1] = @@ -3174,7 +3174,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey1 } + .party = {.NoItemDefaultMoves = sParty_Jeffrey1 } }, [TRAINER_DEREK] = @@ -3188,7 +3188,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Derek } + .party = {.NoItemDefaultMoves = sParty_Derek } }, [TRAINER_JEFFREY_2] = @@ -3202,7 +3202,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey2 } + .party = {.NoItemDefaultMoves = sParty_Jeffrey2 } }, [TRAINER_JEFFREY_3] = @@ -3216,7 +3216,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey3 } + .party = {.NoItemDefaultMoves = sParty_Jeffrey3 } }, [TRAINER_JEFFREY_4] = @@ -3230,7 +3230,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Jeffrey4 } + .party = {.NoItemDefaultMoves = sParty_Jeffrey4 } }, [TRAINER_JEFFREY_5] = @@ -3244,7 +3244,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 5, - .party = {.ItemDefaultMoves = gTrainerParty_Jeffrey5 } + .party = {.ItemDefaultMoves = sParty_Jeffrey5 } }, [TRAINER_EDWARD] = @@ -3258,7 +3258,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Edward } + .party = {.NoItemCustomMoves = sParty_Edward } }, [TRAINER_PRESTON] = @@ -3272,7 +3272,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Preston } + .party = {.NoItemDefaultMoves = sParty_Preston } }, [TRAINER_VIRGIL] = @@ -3286,7 +3286,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Virgil } + .party = {.NoItemDefaultMoves = sParty_Virgil } }, [TRAINER_BLAKE] = @@ -3300,7 +3300,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Blake } + .party = {.NoItemDefaultMoves = sParty_Blake } }, [TRAINER_WILLIAM] = @@ -3314,7 +3314,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_William } + .party = {.NoItemDefaultMoves = sParty_William } }, [TRAINER_JOSHUA] = @@ -3328,7 +3328,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Joshua } + .party = {.NoItemDefaultMoves = sParty_Joshua } }, [TRAINER_CAMERON_1] = @@ -3342,7 +3342,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Cameron1 } + .party = {.NoItemDefaultMoves = sParty_Cameron1 } }, [TRAINER_CAMERON_2] = @@ -3356,7 +3356,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cameron2 } + .party = {.NoItemDefaultMoves = sParty_Cameron2 } }, [TRAINER_CAMERON_3] = @@ -3370,7 +3370,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cameron3 } + .party = {.NoItemDefaultMoves = sParty_Cameron3 } }, [TRAINER_CAMERON_4] = @@ -3384,7 +3384,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cameron4 } + .party = {.NoItemDefaultMoves = sParty_Cameron4 } }, [TRAINER_CAMERON_5] = @@ -3398,7 +3398,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cameron5 } + .party = {.NoItemDefaultMoves = sParty_Cameron5 } }, [TRAINER_JACLYN] = @@ -3412,7 +3412,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Jaclyn } + .party = {.NoItemCustomMoves = sParty_Jaclyn } }, [TRAINER_HANNAH] = @@ -3426,7 +3426,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Hannah } + .party = {.NoItemDefaultMoves = sParty_Hannah } }, [TRAINER_SAMANTHA] = @@ -3440,7 +3440,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Samantha } + .party = {.NoItemDefaultMoves = sParty_Samantha } }, [TRAINER_MAURA] = @@ -3454,7 +3454,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Maura } + .party = {.NoItemDefaultMoves = sParty_Maura } }, [TRAINER_KAYLA] = @@ -3468,7 +3468,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Kayla } + .party = {.NoItemDefaultMoves = sParty_Kayla } }, [TRAINER_ALEXIS] = @@ -3482,7 +3482,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Alexis } + .party = {.NoItemDefaultMoves = sParty_Alexis } }, [TRAINER_JACKI_1] = @@ -3496,7 +3496,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jacki1 } + .party = {.NoItemDefaultMoves = sParty_Jacki1 } }, [TRAINER_JACKI_2] = @@ -3510,7 +3510,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jacki2 } + .party = {.NoItemDefaultMoves = sParty_Jacki2 } }, [TRAINER_JACKI_3] = @@ -3524,7 +3524,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jacki3 } + .party = {.NoItemDefaultMoves = sParty_Jacki3 } }, [TRAINER_JACKI_4] = @@ -3538,7 +3538,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jacki4 } + .party = {.NoItemDefaultMoves = sParty_Jacki4 } }, [TRAINER_JACKI_5] = @@ -3552,7 +3552,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jacki5 } + .party = {.NoItemDefaultMoves = sParty_Jacki5 } }, [TRAINER_WALTER_1] = @@ -3566,7 +3566,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Walter1 } + .party = {.NoItemDefaultMoves = sParty_Walter1 } }, [TRAINER_MICAH] = @@ -3580,7 +3580,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Micah } + .party = {.NoItemDefaultMoves = sParty_Micah } }, [TRAINER_THOMAS] = @@ -3594,7 +3594,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Thomas } + .party = {.NoItemDefaultMoves = sParty_Thomas } }, [TRAINER_WALTER_2] = @@ -3608,7 +3608,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Walter2 } + .party = {.NoItemDefaultMoves = sParty_Walter2 } }, [TRAINER_WALTER_3] = @@ -3622,7 +3622,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Walter3 } + .party = {.NoItemCustomMoves = sParty_Walter3 } }, [TRAINER_WALTER_4] = @@ -3636,7 +3636,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Walter4 } + .party = {.NoItemCustomMoves = sParty_Walter4 } }, [TRAINER_WALTER_5] = @@ -3650,7 +3650,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemCustomMoves = gTrainerParty_Walter5 } + .party = {.NoItemCustomMoves = sParty_Walter5 } }, [TRAINER_SIDNEY] = @@ -3664,7 +3664,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Sidney } + .party = {.ItemCustomMoves = sParty_Sidney } }, [TRAINER_PHOEBE] = @@ -3678,7 +3678,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Phoebe } + .party = {.ItemCustomMoves = sParty_Phoebe } }, [TRAINER_GLACIA] = @@ -3692,7 +3692,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Glacia } + .party = {.ItemCustomMoves = sParty_Glacia } }, [TRAINER_DRAKE] = @@ -3706,7 +3706,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Drake } + .party = {.ItemCustomMoves = sParty_Drake } }, [TRAINER_ROXANNE_1] = @@ -3720,7 +3720,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.ItemCustomMoves = gTrainerParty_Roxanne1 } + .party = {.ItemCustomMoves = sParty_Roxanne1 } }, [TRAINER_BRAWLY_1] = @@ -3734,7 +3734,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.ItemCustomMoves = gTrainerParty_Brawly1 } + .party = {.ItemCustomMoves = sParty_Brawly1 } }, [TRAINER_WATTSON_1] = @@ -3748,7 +3748,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.ItemCustomMoves = gTrainerParty_Wattson1 } + .party = {.ItemCustomMoves = sParty_Wattson1 } }, [TRAINER_FLANNERY_1] = @@ -3762,7 +3762,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.ItemCustomMoves = gTrainerParty_Flannery1 } + .party = {.ItemCustomMoves = sParty_Flannery1 } }, [TRAINER_NORMAN_1] = @@ -3776,7 +3776,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.ItemCustomMoves = gTrainerParty_Norman1 } + .party = {.ItemCustomMoves = sParty_Norman1 } }, [TRAINER_WINONA_1] = @@ -3790,7 +3790,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Winona1 } + .party = {.ItemCustomMoves = sParty_Winona1 } }, [TRAINER_TATE_AND_LIZA_1] = @@ -3804,7 +3804,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza1 } + .party = {.ItemCustomMoves = sParty_TateAndLiza1 } }, [TRAINER_JUAN_1] = @@ -3818,7 +3818,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Juan1 } + .party = {.ItemCustomMoves = sParty_Juan1 } }, [TRAINER_JERRY_1] = @@ -3832,7 +3832,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jerry1 } + .party = {.NoItemDefaultMoves = sParty_Jerry1 } }, [TRAINER_TED] = @@ -3846,7 +3846,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Ted } + .party = {.NoItemDefaultMoves = sParty_Ted } }, [TRAINER_PAUL] = @@ -3860,7 +3860,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Paul } + .party = {.NoItemDefaultMoves = sParty_Paul } }, [TRAINER_JERRY_2] = @@ -3874,7 +3874,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jerry2 } + .party = {.NoItemDefaultMoves = sParty_Jerry2 } }, [TRAINER_JERRY_3] = @@ -3888,7 +3888,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jerry3 } + .party = {.NoItemDefaultMoves = sParty_Jerry3 } }, [TRAINER_JERRY_4] = @@ -3902,7 +3902,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jerry4 } + .party = {.NoItemDefaultMoves = sParty_Jerry4 } }, [TRAINER_JERRY_5] = @@ -3916,7 +3916,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Jerry5 } + .party = {.NoItemDefaultMoves = sParty_Jerry5 } }, [TRAINER_KAREN_1] = @@ -3930,7 +3930,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Karen1 } + .party = {.NoItemDefaultMoves = sParty_Karen1 } }, [TRAINER_GEORGIA] = @@ -3944,7 +3944,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Georgia } + .party = {.NoItemDefaultMoves = sParty_Georgia } }, [TRAINER_KAREN_2] = @@ -3958,7 +3958,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Karen2 } + .party = {.NoItemDefaultMoves = sParty_Karen2 } }, [TRAINER_KAREN_3] = @@ -3972,7 +3972,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Karen3 } + .party = {.NoItemDefaultMoves = sParty_Karen3 } }, [TRAINER_KAREN_4] = @@ -3986,7 +3986,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Karen4 } + .party = {.NoItemDefaultMoves = sParty_Karen4 } }, [TRAINER_KAREN_5] = @@ -4000,7 +4000,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Karen5 } + .party = {.NoItemDefaultMoves = sParty_Karen5 } }, [TRAINER_KATE_AND_JOY] = @@ -4014,7 +4014,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_KateAndJoy } + .party = {.NoItemCustomMoves = sParty_KateAndJoy } }, [TRAINER_ANNA_AND_MEG_1] = @@ -4028,7 +4028,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg1 } + .party = {.NoItemCustomMoves = sParty_AnnaAndMeg1 } }, [TRAINER_ANNA_AND_MEG_2] = @@ -4042,7 +4042,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg2 } + .party = {.NoItemCustomMoves = sParty_AnnaAndMeg2 } }, [TRAINER_ANNA_AND_MEG_3] = @@ -4056,7 +4056,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg3 } + .party = {.NoItemCustomMoves = sParty_AnnaAndMeg3 } }, [TRAINER_ANNA_AND_MEG_4] = @@ -4070,7 +4070,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg4 } + .party = {.NoItemCustomMoves = sParty_AnnaAndMeg4 } }, [TRAINER_ANNA_AND_MEG_5] = @@ -4084,7 +4084,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_AnnaAndMeg5 } + .party = {.NoItemCustomMoves = sParty_AnnaAndMeg5 } }, [TRAINER_VICTOR] = @@ -4098,7 +4098,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.ItemDefaultMoves = gTrainerParty_Victor } + .party = {.ItemDefaultMoves = sParty_Victor } }, [TRAINER_MIGUEL_1] = @@ -4112,7 +4112,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Miguel1 } + .party = {.ItemDefaultMoves = sParty_Miguel1 } }, [TRAINER_COLTON] = @@ -4126,7 +4126,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Colton } + .party = {.ItemCustomMoves = sParty_Colton } }, [TRAINER_MIGUEL_2] = @@ -4140,7 +4140,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Miguel2 } + .party = {.ItemDefaultMoves = sParty_Miguel2 } }, [TRAINER_MIGUEL_3] = @@ -4154,7 +4154,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Miguel3 } + .party = {.ItemDefaultMoves = sParty_Miguel3 } }, [TRAINER_MIGUEL_4] = @@ -4168,7 +4168,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Miguel4 } + .party = {.ItemDefaultMoves = sParty_Miguel4 } }, [TRAINER_MIGUEL_5] = @@ -4182,7 +4182,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Miguel5 } + .party = {.ItemDefaultMoves = sParty_Miguel5 } }, [TRAINER_VICTORIA] = @@ -4196,7 +4196,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Victoria } + .party = {.ItemDefaultMoves = sParty_Victoria } }, [TRAINER_VANESSA] = @@ -4210,7 +4210,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.ItemDefaultMoves = gTrainerParty_Vanessa } + .party = {.ItemDefaultMoves = sParty_Vanessa } }, [TRAINER_BETHANY] = @@ -4224,7 +4224,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.ItemDefaultMoves = gTrainerParty_Bethany } + .party = {.ItemDefaultMoves = sParty_Bethany } }, [TRAINER_ISABEL_1] = @@ -4238,7 +4238,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.ItemDefaultMoves = gTrainerParty_Isabel1 } + .party = {.ItemDefaultMoves = sParty_Isabel1 } }, [TRAINER_ISABEL_2] = @@ -4252,7 +4252,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.ItemDefaultMoves = gTrainerParty_Isabel2 } + .party = {.ItemDefaultMoves = sParty_Isabel2 } }, [TRAINER_ISABEL_3] = @@ -4266,7 +4266,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.ItemDefaultMoves = gTrainerParty_Isabel3 } + .party = {.ItemDefaultMoves = sParty_Isabel3 } }, [TRAINER_ISABEL_4] = @@ -4280,7 +4280,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.ItemDefaultMoves = gTrainerParty_Isabel4 } + .party = {.ItemDefaultMoves = sParty_Isabel4 } }, [TRAINER_ISABEL_5] = @@ -4294,7 +4294,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.ItemDefaultMoves = gTrainerParty_Isabel5 } + .party = {.ItemDefaultMoves = sParty_Isabel5 } }, [TRAINER_TIMOTHY_1] = @@ -4308,7 +4308,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Timothy1 } + .party = {.NoItemDefaultMoves = sParty_Timothy1 } }, [TRAINER_TIMOTHY_2] = @@ -4322,7 +4322,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Timothy2 } + .party = {.NoItemCustomMoves = sParty_Timothy2 } }, [TRAINER_TIMOTHY_3] = @@ -4336,7 +4336,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Timothy3 } + .party = {.NoItemCustomMoves = sParty_Timothy3 } }, [TRAINER_TIMOTHY_4] = @@ -4350,7 +4350,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Timothy4 } + .party = {.NoItemCustomMoves = sParty_Timothy4 } }, [TRAINER_TIMOTHY_5] = @@ -4364,7 +4364,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Timothy5 } + .party = {.NoItemCustomMoves = sParty_Timothy5 } }, [TRAINER_VICKY] = @@ -4378,7 +4378,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Vicky } + .party = {.NoItemCustomMoves = sParty_Vicky } }, [TRAINER_SHELBY_1] = @@ -4392,7 +4392,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Shelby1 } + .party = {.NoItemDefaultMoves = sParty_Shelby1 } }, [TRAINER_SHELBY_2] = @@ -4406,7 +4406,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Shelby2 } + .party = {.NoItemDefaultMoves = sParty_Shelby2 } }, [TRAINER_SHELBY_3] = @@ -4420,7 +4420,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Shelby3 } + .party = {.NoItemDefaultMoves = sParty_Shelby3 } }, [TRAINER_SHELBY_4] = @@ -4434,7 +4434,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Shelby4 } + .party = {.NoItemDefaultMoves = sParty_Shelby4 } }, [TRAINER_SHELBY_5] = @@ -4448,7 +4448,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Shelby5 } + .party = {.NoItemDefaultMoves = sParty_Shelby5 } }, [TRAINER_CALVIN_1] = @@ -4462,7 +4462,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Calvin1 } + .party = {.NoItemDefaultMoves = sParty_Calvin1 } }, [TRAINER_BILLY] = @@ -4476,7 +4476,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Billy } + .party = {.NoItemDefaultMoves = sParty_Billy } }, [TRAINER_JOSH] = @@ -4490,7 +4490,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Josh } + .party = {.NoItemCustomMoves = sParty_Josh } }, [TRAINER_TOMMY] = @@ -4504,7 +4504,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Tommy } + .party = {.NoItemDefaultMoves = sParty_Tommy } }, [TRAINER_JOEY] = @@ -4518,7 +4518,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Joey } + .party = {.NoItemDefaultMoves = sParty_Joey } }, [TRAINER_BEN] = @@ -4532,7 +4532,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Ben } + .party = {.NoItemCustomMoves = sParty_Ben } }, [TRAINER_QUINCY] = @@ -4546,7 +4546,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Quincy } + .party = {.NoItemCustomMoves = sParty_Quincy } }, [TRAINER_KATELYNN] = @@ -4560,7 +4560,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Katelynn } + .party = {.NoItemCustomMoves = sParty_Katelynn } }, [TRAINER_JAYLEN] = @@ -4574,7 +4574,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jaylen } + .party = {.NoItemDefaultMoves = sParty_Jaylen } }, [TRAINER_DILLON] = @@ -4588,7 +4588,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Dillon } + .party = {.NoItemDefaultMoves = sParty_Dillon } }, [TRAINER_CALVIN_2] = @@ -4602,7 +4602,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Calvin2 } + .party = {.NoItemDefaultMoves = sParty_Calvin2 } }, [TRAINER_CALVIN_3] = @@ -4616,7 +4616,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Calvin3 } + .party = {.NoItemDefaultMoves = sParty_Calvin3 } }, [TRAINER_CALVIN_4] = @@ -4630,7 +4630,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Calvin4 } + .party = {.NoItemDefaultMoves = sParty_Calvin4 } }, [TRAINER_CALVIN_5] = @@ -4644,7 +4644,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Calvin5 } + .party = {.NoItemDefaultMoves = sParty_Calvin5 } }, [TRAINER_EDDIE] = @@ -4658,7 +4658,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Eddie } + .party = {.NoItemDefaultMoves = sParty_Eddie } }, [TRAINER_ALLEN] = @@ -4672,7 +4672,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Allen } + .party = {.NoItemDefaultMoves = sParty_Allen } }, [TRAINER_TIMMY] = @@ -4686,7 +4686,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Timmy } + .party = {.NoItemDefaultMoves = sParty_Timmy } }, [TRAINER_WALLACE] = @@ -4700,7 +4700,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Wallace } + .party = {.ItemCustomMoves = sParty_Wallace } }, [TRAINER_ANDREW] = @@ -4714,7 +4714,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Andrew } + .party = {.NoItemDefaultMoves = sParty_Andrew } }, [TRAINER_IVAN] = @@ -4728,7 +4728,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Ivan } + .party = {.NoItemDefaultMoves = sParty_Ivan } }, [TRAINER_CLAUDE] = @@ -4742,7 +4742,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Claude } + .party = {.NoItemDefaultMoves = sParty_Claude } }, [TRAINER_ELLIOT_1] = @@ -4756,7 +4756,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Elliot1 } + .party = {.NoItemDefaultMoves = sParty_Elliot1 } }, [TRAINER_NED] = @@ -4770,7 +4770,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Ned } + .party = {.NoItemDefaultMoves = sParty_Ned } }, [TRAINER_DALE] = @@ -4784,7 +4784,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Dale } + .party = {.NoItemDefaultMoves = sParty_Dale } }, [TRAINER_NOLAN] = @@ -4798,7 +4798,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Nolan } + .party = {.NoItemDefaultMoves = sParty_Nolan } }, [TRAINER_BARNY] = @@ -4812,7 +4812,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Barny } + .party = {.NoItemDefaultMoves = sParty_Barny } }, [TRAINER_WADE] = @@ -4826,7 +4826,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Wade } + .party = {.NoItemDefaultMoves = sParty_Wade } }, [TRAINER_CARTER] = @@ -4840,7 +4840,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Carter } + .party = {.NoItemDefaultMoves = sParty_Carter } }, [TRAINER_ELLIOT_2] = @@ -4854,7 +4854,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Elliot2 } + .party = {.NoItemDefaultMoves = sParty_Elliot2 } }, [TRAINER_ELLIOT_3] = @@ -4868,7 +4868,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Elliot3 } + .party = {.NoItemDefaultMoves = sParty_Elliot3 } }, [TRAINER_ELLIOT_4] = @@ -4882,7 +4882,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Elliot4 } + .party = {.NoItemDefaultMoves = sParty_Elliot4 } }, [TRAINER_ELLIOT_5] = @@ -4896,7 +4896,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Elliot5 } + .party = {.NoItemDefaultMoves = sParty_Elliot5 } }, [TRAINER_RONALD] = @@ -4910,7 +4910,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Ronald } + .party = {.NoItemDefaultMoves = sParty_Ronald } }, [TRAINER_JACOB] = @@ -4924,7 +4924,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Jacob } + .party = {.NoItemDefaultMoves = sParty_Jacob } }, [TRAINER_ANTHONY] = @@ -4938,7 +4938,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Anthony } + .party = {.NoItemDefaultMoves = sParty_Anthony } }, [TRAINER_BENJAMIN_1] = @@ -4952,7 +4952,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin1 } + .party = {.NoItemDefaultMoves = sParty_Benjamin1 } }, [TRAINER_BENJAMIN_2] = @@ -4966,7 +4966,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin2 } + .party = {.NoItemDefaultMoves = sParty_Benjamin2 } }, [TRAINER_BENJAMIN_3] = @@ -4980,7 +4980,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin3 } + .party = {.NoItemDefaultMoves = sParty_Benjamin3 } }, [TRAINER_BENJAMIN_4] = @@ -4994,7 +4994,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin4 } + .party = {.NoItemDefaultMoves = sParty_Benjamin4 } }, [TRAINER_BENJAMIN_5] = @@ -5008,7 +5008,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Benjamin5 } + .party = {.NoItemDefaultMoves = sParty_Benjamin5 } }, [TRAINER_ABIGAIL_1] = @@ -5022,7 +5022,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Abigail1 } + .party = {.NoItemDefaultMoves = sParty_Abigail1 } }, [TRAINER_JASMINE] = @@ -5036,7 +5036,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Jasmine } + .party = {.NoItemDefaultMoves = sParty_Jasmine } }, [TRAINER_ABIGAIL_2] = @@ -5050,7 +5050,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Abigail2 } + .party = {.NoItemDefaultMoves = sParty_Abigail2 } }, [TRAINER_ABIGAIL_3] = @@ -5064,7 +5064,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Abigail3 } + .party = {.NoItemDefaultMoves = sParty_Abigail3 } }, [TRAINER_ABIGAIL_4] = @@ -5078,7 +5078,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Abigail4 } + .party = {.NoItemDefaultMoves = sParty_Abigail4 } }, [TRAINER_ABIGAIL_5] = @@ -5092,7 +5092,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Abigail5 } + .party = {.NoItemDefaultMoves = sParty_Abigail5 } }, [TRAINER_DYLAN_1] = @@ -5106,7 +5106,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Dylan1 } + .party = {.NoItemDefaultMoves = sParty_Dylan1 } }, [TRAINER_DYLAN_2] = @@ -5120,7 +5120,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Dylan2 } + .party = {.NoItemDefaultMoves = sParty_Dylan2 } }, [TRAINER_DYLAN_3] = @@ -5134,7 +5134,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Dylan3 } + .party = {.NoItemDefaultMoves = sParty_Dylan3 } }, [TRAINER_DYLAN_4] = @@ -5148,7 +5148,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Dylan4 } + .party = {.NoItemDefaultMoves = sParty_Dylan4 } }, [TRAINER_DYLAN_5] = @@ -5162,7 +5162,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Dylan5 } + .party = {.NoItemDefaultMoves = sParty_Dylan5 } }, [TRAINER_MARIA_1] = @@ -5176,7 +5176,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Maria1 } + .party = {.NoItemDefaultMoves = sParty_Maria1 } }, [TRAINER_MARIA_2] = @@ -5190,7 +5190,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Maria2 } + .party = {.NoItemDefaultMoves = sParty_Maria2 } }, [TRAINER_MARIA_3] = @@ -5204,7 +5204,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Maria3 } + .party = {.NoItemDefaultMoves = sParty_Maria3 } }, [TRAINER_MARIA_4] = @@ -5218,7 +5218,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Maria4 } + .party = {.NoItemDefaultMoves = sParty_Maria4 } }, [TRAINER_MARIA_5] = @@ -5232,7 +5232,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Maria5 } + .party = {.NoItemDefaultMoves = sParty_Maria5 } }, [TRAINER_CAMDEN] = @@ -5246,7 +5246,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Camden } + .party = {.NoItemDefaultMoves = sParty_Camden } }, [TRAINER_DEMETRIUS] = @@ -5260,7 +5260,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Demetrius } + .party = {.NoItemDefaultMoves = sParty_Demetrius } }, [TRAINER_ISAIAH_1] = @@ -5274,7 +5274,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah1 } + .party = {.NoItemDefaultMoves = sParty_Isaiah1 } }, [TRAINER_PABLO_1] = @@ -5288,7 +5288,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Pablo1 } + .party = {.NoItemDefaultMoves = sParty_Pablo1 } }, [TRAINER_CHASE] = @@ -5302,7 +5302,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Chase } + .party = {.NoItemDefaultMoves = sParty_Chase } }, [TRAINER_ISAIAH_2] = @@ -5316,7 +5316,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah2 } + .party = {.NoItemDefaultMoves = sParty_Isaiah2 } }, [TRAINER_ISAIAH_3] = @@ -5330,7 +5330,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah3 } + .party = {.NoItemDefaultMoves = sParty_Isaiah3 } }, [TRAINER_ISAIAH_4] = @@ -5344,7 +5344,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah4 } + .party = {.NoItemDefaultMoves = sParty_Isaiah4 } }, [TRAINER_ISAIAH_5] = @@ -5358,7 +5358,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Isaiah5 } + .party = {.NoItemDefaultMoves = sParty_Isaiah5 } }, [TRAINER_ISOBEL] = @@ -5372,7 +5372,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Isobel } + .party = {.NoItemDefaultMoves = sParty_Isobel } }, [TRAINER_DONNY] = @@ -5386,7 +5386,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Donny } + .party = {.NoItemDefaultMoves = sParty_Donny } }, [TRAINER_TALIA] = @@ -5400,7 +5400,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Talia } + .party = {.NoItemDefaultMoves = sParty_Talia } }, [TRAINER_KATELYN_1] = @@ -5414,7 +5414,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn1 } + .party = {.NoItemDefaultMoves = sParty_Katelyn1 } }, [TRAINER_ALLISON] = @@ -5428,7 +5428,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Allison } + .party = {.NoItemDefaultMoves = sParty_Allison } }, [TRAINER_KATELYN_2] = @@ -5442,7 +5442,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn2 } + .party = {.NoItemDefaultMoves = sParty_Katelyn2 } }, [TRAINER_KATELYN_3] = @@ -5456,7 +5456,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn3 } + .party = {.NoItemDefaultMoves = sParty_Katelyn3 } }, [TRAINER_KATELYN_4] = @@ -5470,7 +5470,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn4 } + .party = {.NoItemDefaultMoves = sParty_Katelyn4 } }, [TRAINER_KATELYN_5] = @@ -5484,7 +5484,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Katelyn5 } + .party = {.NoItemDefaultMoves = sParty_Katelyn5 } }, [TRAINER_NICOLAS_1] = @@ -5498,7 +5498,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas1 } + .party = {.NoItemDefaultMoves = sParty_Nicolas1 } }, [TRAINER_NICOLAS_2] = @@ -5512,7 +5512,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas2 } + .party = {.NoItemDefaultMoves = sParty_Nicolas2 } }, [TRAINER_NICOLAS_3] = @@ -5526,7 +5526,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas3 } + .party = {.NoItemDefaultMoves = sParty_Nicolas3 } }, [TRAINER_NICOLAS_4] = @@ -5540,7 +5540,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Nicolas4 } + .party = {.NoItemDefaultMoves = sParty_Nicolas4 } }, [TRAINER_NICOLAS_5] = @@ -5554,7 +5554,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.ItemDefaultMoves = gTrainerParty_Nicolas5 } + .party = {.ItemDefaultMoves = sParty_Nicolas5 } }, [TRAINER_AARON] = @@ -5568,7 +5568,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Aaron } + .party = {.NoItemCustomMoves = sParty_Aaron } }, [TRAINER_PERRY] = @@ -5582,7 +5582,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Perry } + .party = {.NoItemDefaultMoves = sParty_Perry } }, [TRAINER_HUGH] = @@ -5596,7 +5596,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Hugh } + .party = {.NoItemDefaultMoves = sParty_Hugh } }, [TRAINER_PHIL] = @@ -5610,7 +5610,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Phil } + .party = {.NoItemDefaultMoves = sParty_Phil } }, [TRAINER_JARED] = @@ -5624,7 +5624,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Jared } + .party = {.NoItemDefaultMoves = sParty_Jared } }, [TRAINER_HUMBERTO] = @@ -5638,7 +5638,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Humberto } + .party = {.NoItemDefaultMoves = sParty_Humberto } }, [TRAINER_PRESLEY] = @@ -5652,7 +5652,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Presley } + .party = {.NoItemDefaultMoves = sParty_Presley } }, [TRAINER_EDWARDO] = @@ -5666,7 +5666,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Edwardo } + .party = {.NoItemDefaultMoves = sParty_Edwardo } }, [TRAINER_COLIN] = @@ -5680,7 +5680,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Colin } + .party = {.NoItemDefaultMoves = sParty_Colin } }, [TRAINER_ROBERT_1] = @@ -5694,7 +5694,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Robert1 } + .party = {.NoItemDefaultMoves = sParty_Robert1 } }, [TRAINER_BENNY] = @@ -5708,7 +5708,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Benny } + .party = {.NoItemDefaultMoves = sParty_Benny } }, [TRAINER_CHESTER] = @@ -5722,7 +5722,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Chester } + .party = {.NoItemDefaultMoves = sParty_Chester } }, [TRAINER_ROBERT_2] = @@ -5736,7 +5736,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Robert2 } + .party = {.NoItemDefaultMoves = sParty_Robert2 } }, [TRAINER_ROBERT_3] = @@ -5750,7 +5750,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Robert3 } + .party = {.NoItemDefaultMoves = sParty_Robert3 } }, [TRAINER_ROBERT_4] = @@ -5764,7 +5764,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Robert4 } + .party = {.NoItemDefaultMoves = sParty_Robert4 } }, [TRAINER_ROBERT_5] = @@ -5778,7 +5778,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Robert5 } + .party = {.NoItemDefaultMoves = sParty_Robert5 } }, [TRAINER_ALEX] = @@ -5792,7 +5792,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Alex } + .party = {.NoItemDefaultMoves = sParty_Alex } }, [TRAINER_BECK] = @@ -5806,7 +5806,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Beck } + .party = {.NoItemDefaultMoves = sParty_Beck } }, [TRAINER_YASU] = @@ -5820,7 +5820,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Yasu } + .party = {.NoItemDefaultMoves = sParty_Yasu } }, [TRAINER_TAKASHI] = @@ -5834,7 +5834,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Takashi } + .party = {.NoItemDefaultMoves = sParty_Takashi } }, [TRAINER_DIANNE] = @@ -5848,7 +5848,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 2, - .party = {.ItemCustomMoves = gTrainerParty_Dianne } + .party = {.ItemCustomMoves = sParty_Dianne } }, [TRAINER_JANI] = @@ -5862,7 +5862,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jani } + .party = {.NoItemDefaultMoves = sParty_Jani } }, [TRAINER_LAO_1] = @@ -5876,7 +5876,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 3, - .party = {.NoItemCustomMoves = gTrainerParty_Lao1 } + .party = {.NoItemCustomMoves = sParty_Lao1 } }, [TRAINER_LUNG] = @@ -5890,7 +5890,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Lung } + .party = {.NoItemDefaultMoves = sParty_Lung } }, [TRAINER_LAO_2] = @@ -5904,7 +5904,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 4, - .party = {.NoItemCustomMoves = gTrainerParty_Lao2 } + .party = {.NoItemCustomMoves = sParty_Lao2 } }, [TRAINER_LAO_3] = @@ -5918,7 +5918,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 4, - .party = {.NoItemCustomMoves = gTrainerParty_Lao3 } + .party = {.NoItemCustomMoves = sParty_Lao3 } }, [TRAINER_LAO_4] = @@ -5932,7 +5932,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 4, - .party = {.NoItemCustomMoves = gTrainerParty_Lao4 } + .party = {.NoItemCustomMoves = sParty_Lao4 } }, [TRAINER_LAO_5] = @@ -5946,7 +5946,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 4, - .party = {.ItemCustomMoves = gTrainerParty_Lao5 } + .party = {.ItemCustomMoves = sParty_Lao5 } }, [TRAINER_JOCELYN] = @@ -5960,7 +5960,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jocelyn } + .party = {.NoItemDefaultMoves = sParty_Jocelyn } }, [TRAINER_LAURA] = @@ -5974,7 +5974,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Laura } + .party = {.NoItemDefaultMoves = sParty_Laura } }, [TRAINER_CYNDY_1] = @@ -5988,7 +5988,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy1 } + .party = {.NoItemDefaultMoves = sParty_Cyndy1 } }, [TRAINER_CORA] = @@ -6002,7 +6002,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Cora } + .party = {.NoItemDefaultMoves = sParty_Cora } }, [TRAINER_PAULA] = @@ -6016,7 +6016,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Paula } + .party = {.NoItemDefaultMoves = sParty_Paula } }, [TRAINER_CYNDY_2] = @@ -6030,7 +6030,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy2 } + .party = {.NoItemDefaultMoves = sParty_Cyndy2 } }, [TRAINER_CYNDY_3] = @@ -6044,7 +6044,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy3 } + .party = {.NoItemDefaultMoves = sParty_Cyndy3 } }, [TRAINER_CYNDY_4] = @@ -6058,7 +6058,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy4 } + .party = {.NoItemDefaultMoves = sParty_Cyndy4 } }, [TRAINER_CYNDY_5] = @@ -6072,7 +6072,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cyndy5 } + .party = {.NoItemDefaultMoves = sParty_Cyndy5 } }, [TRAINER_MADELINE_1] = @@ -6086,7 +6086,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Madeline1 } + .party = {.NoItemCustomMoves = sParty_Madeline1 } }, [TRAINER_CLARISSA] = @@ -6100,7 +6100,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Clarissa } + .party = {.NoItemDefaultMoves = sParty_Clarissa } }, [TRAINER_ANGELICA] = @@ -6114,7 +6114,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Angelica } + .party = {.NoItemCustomMoves = sParty_Angelica } }, [TRAINER_MADELINE_2] = @@ -6128,7 +6128,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Madeline2 } + .party = {.NoItemCustomMoves = sParty_Madeline2 } }, [TRAINER_MADELINE_3] = @@ -6142,7 +6142,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Madeline3 } + .party = {.NoItemCustomMoves = sParty_Madeline3 } }, [TRAINER_MADELINE_4] = @@ -6156,7 +6156,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Madeline4 } + .party = {.NoItemCustomMoves = sParty_Madeline4 } }, [TRAINER_MADELINE_5] = @@ -6170,7 +6170,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Madeline5 } + .party = {.NoItemCustomMoves = sParty_Madeline5 } }, [TRAINER_BEVERLY] = @@ -6184,7 +6184,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Beverly } + .party = {.NoItemDefaultMoves = sParty_Beverly } }, [TRAINER_IMANI] = @@ -6198,7 +6198,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Imani } + .party = {.NoItemDefaultMoves = sParty_Imani } }, [TRAINER_KYLA] = @@ -6212,7 +6212,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Kyla } + .party = {.NoItemDefaultMoves = sParty_Kyla } }, [TRAINER_DENISE] = @@ -6226,7 +6226,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Denise } + .party = {.NoItemDefaultMoves = sParty_Denise } }, [TRAINER_BETH] = @@ -6240,7 +6240,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Beth } + .party = {.NoItemDefaultMoves = sParty_Beth } }, [TRAINER_TARA] = @@ -6254,7 +6254,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Tara } + .party = {.NoItemDefaultMoves = sParty_Tara } }, [TRAINER_MISSY] = @@ -6268,7 +6268,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Missy } + .party = {.NoItemDefaultMoves = sParty_Missy } }, [TRAINER_ALICE] = @@ -6282,7 +6282,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Alice } + .party = {.NoItemDefaultMoves = sParty_Alice } }, [TRAINER_JENNY_1] = @@ -6296,7 +6296,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jenny1 } + .party = {.NoItemDefaultMoves = sParty_Jenny1 } }, [TRAINER_GRACE] = @@ -6310,7 +6310,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grace } + .party = {.NoItemDefaultMoves = sParty_Grace } }, [TRAINER_TANYA] = @@ -6324,7 +6324,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Tanya } + .party = {.NoItemDefaultMoves = sParty_Tanya } }, [TRAINER_SHARON] = @@ -6338,7 +6338,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Sharon } + .party = {.NoItemDefaultMoves = sParty_Sharon } }, [TRAINER_NIKKI] = @@ -6352,7 +6352,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Nikki } + .party = {.NoItemDefaultMoves = sParty_Nikki } }, [TRAINER_BRENDA] = @@ -6366,7 +6366,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Brenda } + .party = {.NoItemDefaultMoves = sParty_Brenda } }, [TRAINER_KATIE] = @@ -6380,7 +6380,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Katie } + .party = {.NoItemDefaultMoves = sParty_Katie } }, [TRAINER_SUSIE] = @@ -6394,7 +6394,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Susie } + .party = {.NoItemDefaultMoves = sParty_Susie } }, [TRAINER_KARA] = @@ -6408,7 +6408,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Kara } + .party = {.NoItemDefaultMoves = sParty_Kara } }, [TRAINER_DANA] = @@ -6422,7 +6422,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Dana } + .party = {.NoItemDefaultMoves = sParty_Dana } }, [TRAINER_SIENNA] = @@ -6436,7 +6436,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Sienna } + .party = {.NoItemDefaultMoves = sParty_Sienna } }, [TRAINER_DEBRA] = @@ -6450,7 +6450,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Debra } + .party = {.NoItemDefaultMoves = sParty_Debra } }, [TRAINER_LINDA] = @@ -6464,7 +6464,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Linda } + .party = {.NoItemDefaultMoves = sParty_Linda } }, [TRAINER_KAYLEE] = @@ -6478,7 +6478,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Kaylee } + .party = {.NoItemDefaultMoves = sParty_Kaylee } }, [TRAINER_LAUREL] = @@ -6492,7 +6492,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Laurel } + .party = {.NoItemDefaultMoves = sParty_Laurel } }, [TRAINER_CARLEE] = @@ -6506,7 +6506,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Carlee } + .party = {.NoItemDefaultMoves = sParty_Carlee } }, [TRAINER_JENNY_2] = @@ -6520,7 +6520,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jenny2 } + .party = {.NoItemDefaultMoves = sParty_Jenny2 } }, [TRAINER_JENNY_3] = @@ -6534,7 +6534,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jenny3 } + .party = {.NoItemDefaultMoves = sParty_Jenny3 } }, [TRAINER_JENNY_4] = @@ -6548,7 +6548,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jenny4 } + .party = {.NoItemDefaultMoves = sParty_Jenny4 } }, [TRAINER_JENNY_5] = @@ -6562,7 +6562,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Jenny5 } + .party = {.NoItemDefaultMoves = sParty_Jenny5 } }, [TRAINER_HEIDI] = @@ -6576,7 +6576,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Heidi } + .party = {.NoItemCustomMoves = sParty_Heidi } }, [TRAINER_BECKY] = @@ -6590,7 +6590,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Becky } + .party = {.NoItemCustomMoves = sParty_Becky } }, [TRAINER_CAROL] = @@ -6604,7 +6604,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Carol } + .party = {.NoItemDefaultMoves = sParty_Carol } }, [TRAINER_NANCY] = @@ -6618,7 +6618,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Nancy } + .party = {.NoItemDefaultMoves = sParty_Nancy } }, [TRAINER_MARTHA] = @@ -6632,7 +6632,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Martha } + .party = {.NoItemDefaultMoves = sParty_Martha } }, [TRAINER_DIANA_1] = @@ -6646,7 +6646,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Diana1 } + .party = {.NoItemDefaultMoves = sParty_Diana1 } }, [TRAINER_CEDRIC] = @@ -6660,7 +6660,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Cedric } + .party = {.NoItemCustomMoves = sParty_Cedric } }, [TRAINER_IRENE] = @@ -6674,7 +6674,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Irene } + .party = {.NoItemDefaultMoves = sParty_Irene } }, [TRAINER_DIANA_2] = @@ -6688,7 +6688,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Diana2 } + .party = {.NoItemDefaultMoves = sParty_Diana2 } }, [TRAINER_DIANA_3] = @@ -6702,7 +6702,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Diana3 } + .party = {.NoItemDefaultMoves = sParty_Diana3 } }, [TRAINER_DIANA_4] = @@ -6716,7 +6716,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Diana4 } + .party = {.NoItemDefaultMoves = sParty_Diana4 } }, [TRAINER_DIANA_5] = @@ -6730,7 +6730,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Diana5 } + .party = {.NoItemDefaultMoves = sParty_Diana5 } }, [TRAINER_AMY_AND_LIV_1] = @@ -6744,7 +6744,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv1 } + .party = {.NoItemDefaultMoves = sParty_AmyAndLiv1 } }, [TRAINER_AMY_AND_LIV_2] = @@ -6758,7 +6758,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv2 } + .party = {.NoItemDefaultMoves = sParty_AmyAndLiv2 } }, [TRAINER_GINA_AND_MIA_1] = @@ -6772,7 +6772,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_GinaAndMia1 } + .party = {.NoItemDefaultMoves = sParty_GinaAndMia1 } }, [TRAINER_MIU_AND_YUKI] = @@ -6786,7 +6786,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_MiuAndYuki } + .party = {.NoItemDefaultMoves = sParty_MiuAndYuki } }, [TRAINER_AMY_AND_LIV_3] = @@ -6800,7 +6800,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv3 } + .party = {.NoItemDefaultMoves = sParty_AmyAndLiv3 } }, [TRAINER_GINA_AND_MIA_2] = @@ -6814,7 +6814,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_GinaAndMia2 } + .party = {.NoItemCustomMoves = sParty_GinaAndMia2 } }, [TRAINER_AMY_AND_LIV_4] = @@ -6828,7 +6828,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_AmyAndLiv4 } + .party = {.NoItemDefaultMoves = sParty_AmyAndLiv4 } }, [TRAINER_AMY_AND_LIV_5] = @@ -6842,7 +6842,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_AmyAndLiv5 } + .party = {.NoItemCustomMoves = sParty_AmyAndLiv5 } }, [TRAINER_AMY_AND_LIV_6] = @@ -6856,7 +6856,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_AmyAndLiv6 } + .party = {.NoItemCustomMoves = sParty_AmyAndLiv6 } }, [TRAINER_HUEY] = @@ -6870,7 +6870,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Huey } + .party = {.NoItemDefaultMoves = sParty_Huey } }, [TRAINER_EDMOND] = @@ -6884,7 +6884,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Edmond } + .party = {.NoItemDefaultMoves = sParty_Edmond } }, [TRAINER_ERNEST_1] = @@ -6898,7 +6898,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Ernest1 } + .party = {.NoItemDefaultMoves = sParty_Ernest1 } }, [TRAINER_DWAYNE] = @@ -6912,7 +6912,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Dwayne } + .party = {.NoItemDefaultMoves = sParty_Dwayne } }, [TRAINER_PHILLIP] = @@ -6926,7 +6926,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Phillip } + .party = {.NoItemDefaultMoves = sParty_Phillip } }, [TRAINER_LEONARD] = @@ -6940,7 +6940,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Leonard } + .party = {.NoItemDefaultMoves = sParty_Leonard } }, [TRAINER_DUNCAN] = @@ -6954,7 +6954,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Duncan } + .party = {.NoItemDefaultMoves = sParty_Duncan } }, [TRAINER_ERNEST_2] = @@ -6968,7 +6968,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Ernest2 } + .party = {.NoItemDefaultMoves = sParty_Ernest2 } }, [TRAINER_ERNEST_3] = @@ -6982,7 +6982,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Ernest3 } + .party = {.NoItemDefaultMoves = sParty_Ernest3 } }, [TRAINER_ERNEST_4] = @@ -6996,7 +6996,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Ernest4 } + .party = {.NoItemDefaultMoves = sParty_Ernest4 } }, [TRAINER_ERNEST_5] = @@ -7010,7 +7010,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Ernest5 } + .party = {.NoItemDefaultMoves = sParty_Ernest5 } }, [TRAINER_ELI] = @@ -7024,7 +7024,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Eli } + .party = {.NoItemDefaultMoves = sParty_Eli } }, [TRAINER_ANNIKA] = @@ -7038,7 +7038,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.ItemCustomMoves = gTrainerParty_Annika } + .party = {.ItemCustomMoves = sParty_Annika } }, [TRAINER_JAZMYN] = @@ -7052,7 +7052,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jazmyn } + .party = {.NoItemDefaultMoves = sParty_Jazmyn } }, [TRAINER_JONAS] = @@ -7066,7 +7066,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Jonas } + .party = {.NoItemCustomMoves = sParty_Jonas } }, [TRAINER_KAYLEY] = @@ -7080,7 +7080,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Kayley } + .party = {.NoItemCustomMoves = sParty_Kayley } }, [TRAINER_AURON] = @@ -7094,7 +7094,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Auron } + .party = {.NoItemDefaultMoves = sParty_Auron } }, [TRAINER_KELVIN] = @@ -7108,7 +7108,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Kelvin } + .party = {.NoItemDefaultMoves = sParty_Kelvin } }, [TRAINER_MARLEY] = @@ -7122,7 +7122,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.ItemCustomMoves = gTrainerParty_Marley } + .party = {.ItemCustomMoves = sParty_Marley } }, [TRAINER_REYNA] = @@ -7136,7 +7136,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Reyna } + .party = {.NoItemDefaultMoves = sParty_Reyna } }, [TRAINER_HUDSON] = @@ -7150,7 +7150,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Hudson } + .party = {.NoItemDefaultMoves = sParty_Hudson } }, [TRAINER_CONOR] = @@ -7164,7 +7164,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Conor } + .party = {.NoItemDefaultMoves = sParty_Conor } }, [TRAINER_EDWIN_1] = @@ -7178,7 +7178,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Edwin1 } + .party = {.NoItemDefaultMoves = sParty_Edwin1 } }, [TRAINER_HECTOR] = @@ -7192,7 +7192,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Hector } + .party = {.NoItemDefaultMoves = sParty_Hector } }, [TRAINER_TABITHA_1] = @@ -7206,7 +7206,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Tabitha1 } + .party = {.NoItemDefaultMoves = sParty_Tabitha1 } }, [TRAINER_EDWIN_2] = @@ -7220,7 +7220,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Edwin2 } + .party = {.NoItemDefaultMoves = sParty_Edwin2 } }, [TRAINER_EDWIN_3] = @@ -7234,7 +7234,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Edwin3 } + .party = {.NoItemDefaultMoves = sParty_Edwin3 } }, [TRAINER_EDWIN_4] = @@ -7248,7 +7248,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Edwin4 } + .party = {.NoItemDefaultMoves = sParty_Edwin4 } }, [TRAINER_EDWIN_5] = @@ -7262,7 +7262,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Edwin5 } + .party = {.NoItemDefaultMoves = sParty_Edwin5 } }, [TRAINER_WALLY_1] = @@ -7276,7 +7276,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.NoItemCustomMoves = gTrainerParty_Wally1 } + .party = {.NoItemCustomMoves = sParty_Wally1 } }, [TRAINER_BRENDAN_1] = @@ -7290,7 +7290,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan1 } + .party = {.NoItemDefaultMoves = sParty_Brendan1 } }, [TRAINER_BRENDAN_2] = @@ -7304,7 +7304,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan2 } + .party = {.NoItemDefaultMoves = sParty_Brendan2 } }, [TRAINER_BRENDAN_3] = @@ -7318,7 +7318,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan3 } + .party = {.NoItemDefaultMoves = sParty_Brendan3 } }, [TRAINER_BRENDAN_4] = @@ -7332,7 +7332,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan4 } + .party = {.NoItemDefaultMoves = sParty_Brendan4 } }, [TRAINER_BRENDAN_5] = @@ -7346,7 +7346,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan5 } + .party = {.NoItemDefaultMoves = sParty_Brendan5 } }, [TRAINER_BRENDAN_6] = @@ -7360,7 +7360,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan6 } + .party = {.NoItemDefaultMoves = sParty_Brendan6 } }, [TRAINER_BRENDAN_7] = @@ -7374,7 +7374,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan7 } + .party = {.NoItemDefaultMoves = sParty_Brendan7 } }, [TRAINER_BRENDAN_8] = @@ -7388,7 +7388,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan8 } + .party = {.NoItemDefaultMoves = sParty_Brendan8 } }, [TRAINER_BRENDAN_9] = @@ -7402,7 +7402,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan9 } + .party = {.NoItemDefaultMoves = sParty_Brendan9 } }, [TRAINER_MAY_1] = @@ -7416,7 +7416,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_May1 } + .party = {.NoItemDefaultMoves = sParty_May1 } }, [TRAINER_MAY_2] = @@ -7430,7 +7430,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_May2 } + .party = {.NoItemDefaultMoves = sParty_May2 } }, [TRAINER_MAY_3] = @@ -7444,7 +7444,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_May3 } + .party = {.NoItemDefaultMoves = sParty_May3 } }, [TRAINER_MAY_4] = @@ -7458,7 +7458,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_May4 } + .party = {.NoItemDefaultMoves = sParty_May4 } }, [TRAINER_MAY_5] = @@ -7472,7 +7472,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_May5 } + .party = {.NoItemDefaultMoves = sParty_May5 } }, [TRAINER_MAY_6] = @@ -7486,7 +7486,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_May6 } + .party = {.NoItemDefaultMoves = sParty_May6 } }, [TRAINER_MAY_7] = @@ -7500,7 +7500,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_May7 } + .party = {.NoItemDefaultMoves = sParty_May7 } }, [TRAINER_MAY_8] = @@ -7514,7 +7514,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_May8 } + .party = {.NoItemDefaultMoves = sParty_May8 } }, [TRAINER_MAY_9] = @@ -7528,7 +7528,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_May9 } + .party = {.NoItemDefaultMoves = sParty_May9 } }, [TRAINER_ISAAC_1] = @@ -7542,7 +7542,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Isaac1 } + .party = {.NoItemDefaultMoves = sParty_Isaac1 } }, [TRAINER_DAVIS] = @@ -7556,7 +7556,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Davis } + .party = {.NoItemDefaultMoves = sParty_Davis } }, [TRAINER_MITCHELL] = @@ -7570,7 +7570,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Mitchell } + .party = {.NoItemCustomMoves = sParty_Mitchell } }, [TRAINER_ISAAC_2] = @@ -7584,7 +7584,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Isaac2 } + .party = {.NoItemDefaultMoves = sParty_Isaac2 } }, [TRAINER_ISAAC_3] = @@ -7598,7 +7598,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Isaac3 } + .party = {.NoItemDefaultMoves = sParty_Isaac3 } }, [TRAINER_ISAAC_4] = @@ -7612,7 +7612,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Isaac4 } + .party = {.NoItemDefaultMoves = sParty_Isaac4 } }, [TRAINER_ISAAC_5] = @@ -7626,7 +7626,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Isaac5 } + .party = {.NoItemDefaultMoves = sParty_Isaac5 } }, [TRAINER_LYDIA_1] = @@ -7640,7 +7640,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Lydia1 } + .party = {.NoItemDefaultMoves = sParty_Lydia1 } }, [TRAINER_HALLE] = @@ -7654,7 +7654,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Halle } + .party = {.NoItemDefaultMoves = sParty_Halle } }, [TRAINER_GARRISON] = @@ -7668,7 +7668,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Garrison } + .party = {.NoItemDefaultMoves = sParty_Garrison } }, [TRAINER_LYDIA_2] = @@ -7682,7 +7682,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Lydia2 } + .party = {.NoItemDefaultMoves = sParty_Lydia2 } }, [TRAINER_LYDIA_3] = @@ -7696,7 +7696,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Lydia3 } + .party = {.NoItemDefaultMoves = sParty_Lydia3 } }, [TRAINER_LYDIA_4] = @@ -7710,7 +7710,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Lydia4 } + .party = {.NoItemDefaultMoves = sParty_Lydia4 } }, [TRAINER_LYDIA_5] = @@ -7724,7 +7724,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Lydia5 } + .party = {.NoItemDefaultMoves = sParty_Lydia5 } }, [TRAINER_JACKSON_1] = @@ -7738,7 +7738,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jackson1 } + .party = {.NoItemDefaultMoves = sParty_Jackson1 } }, [TRAINER_LORENZO] = @@ -7752,7 +7752,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Lorenzo } + .party = {.NoItemDefaultMoves = sParty_Lorenzo } }, [TRAINER_SEBASTIAN] = @@ -7766,7 +7766,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Sebastian } + .party = {.NoItemDefaultMoves = sParty_Sebastian } }, [TRAINER_JACKSON_2] = @@ -7780,7 +7780,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jackson2 } + .party = {.NoItemDefaultMoves = sParty_Jackson2 } }, [TRAINER_JACKSON_3] = @@ -7794,7 +7794,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jackson3 } + .party = {.NoItemDefaultMoves = sParty_Jackson3 } }, [TRAINER_JACKSON_4] = @@ -7808,7 +7808,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Jackson4 } + .party = {.NoItemDefaultMoves = sParty_Jackson4 } }, [TRAINER_JACKSON_5] = @@ -7822,7 +7822,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jackson5 } + .party = {.NoItemDefaultMoves = sParty_Jackson5 } }, [TRAINER_CATHERINE_1] = @@ -7836,7 +7836,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Catherine1 } + .party = {.NoItemDefaultMoves = sParty_Catherine1 } }, [TRAINER_JENNA] = @@ -7850,7 +7850,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Jenna } + .party = {.NoItemDefaultMoves = sParty_Jenna } }, [TRAINER_SOPHIA] = @@ -7864,7 +7864,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Sophia } + .party = {.NoItemDefaultMoves = sParty_Sophia } }, [TRAINER_CATHERINE_2] = @@ -7878,7 +7878,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Catherine2 } + .party = {.NoItemDefaultMoves = sParty_Catherine2 } }, [TRAINER_CATHERINE_3] = @@ -7892,7 +7892,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Catherine3 } + .party = {.NoItemDefaultMoves = sParty_Catherine3 } }, [TRAINER_CATHERINE_4] = @@ -7906,7 +7906,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Catherine4 } + .party = {.NoItemDefaultMoves = sParty_Catherine4 } }, [TRAINER_CATHERINE_5] = @@ -7920,7 +7920,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Catherine5 } + .party = {.NoItemDefaultMoves = sParty_Catherine5 } }, [TRAINER_JULIO] = @@ -7934,7 +7934,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Julio } + .party = {.NoItemDefaultMoves = sParty_Julio } }, [TRAINER_GRUNT_27] = @@ -7948,7 +7948,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt27 } + .party = {.NoItemDefaultMoves = sParty_Grunt27 } }, [TRAINER_GRUNT_28] = @@ -7962,7 +7962,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt28 } + .party = {.NoItemDefaultMoves = sParty_Grunt28 } }, [TRAINER_GRUNT_29] = @@ -7976,7 +7976,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt29 } + .party = {.NoItemDefaultMoves = sParty_Grunt29 } }, [TRAINER_GRUNT_30] = @@ -7990,7 +7990,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt30 } + .party = {.NoItemDefaultMoves = sParty_Grunt30 } }, [TRAINER_MARC] = @@ -8004,7 +8004,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Marc } + .party = {.NoItemDefaultMoves = sParty_Marc } }, [TRAINER_BRENDEN] = @@ -8018,7 +8018,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Brenden } + .party = {.NoItemDefaultMoves = sParty_Brenden } }, [TRAINER_LILITH] = @@ -8032,7 +8032,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Lilith } + .party = {.NoItemDefaultMoves = sParty_Lilith } }, [TRAINER_CRISTIAN] = @@ -8046,7 +8046,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Cristian } + .party = {.NoItemDefaultMoves = sParty_Cristian } }, [TRAINER_SYLVIA] = @@ -8060,7 +8060,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Sylvia } + .party = {.NoItemDefaultMoves = sParty_Sylvia } }, [TRAINER_LEONARDO] = @@ -8074,7 +8074,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Leonardo } + .party = {.NoItemDefaultMoves = sParty_Leonardo } }, [TRAINER_ATHENA] = @@ -8088,7 +8088,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.ItemCustomMoves = gTrainerParty_Athena } + .party = {.ItemCustomMoves = sParty_Athena } }, [TRAINER_HARRISON] = @@ -8102,7 +8102,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Harrison } + .party = {.NoItemDefaultMoves = sParty_Harrison } }, [TRAINER_GRUNT_31] = @@ -8116,7 +8116,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt31 } + .party = {.NoItemDefaultMoves = sParty_Grunt31 } }, [TRAINER_CLARENCE] = @@ -8130,7 +8130,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Clarence } + .party = {.NoItemDefaultMoves = sParty_Clarence } }, [TRAINER_TERRY] = @@ -8144,7 +8144,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Terry } + .party = {.NoItemDefaultMoves = sParty_Terry } }, [TRAINER_NATE] = @@ -8158,7 +8158,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Nate } + .party = {.NoItemDefaultMoves = sParty_Nate } }, [TRAINER_KATHLEEN] = @@ -8172,7 +8172,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Kathleen } + .party = {.NoItemDefaultMoves = sParty_Kathleen } }, [TRAINER_CLIFFORD] = @@ -8186,7 +8186,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Clifford } + .party = {.NoItemDefaultMoves = sParty_Clifford } }, [TRAINER_NICHOLAS] = @@ -8200,7 +8200,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Nicholas } + .party = {.NoItemDefaultMoves = sParty_Nicholas } }, [TRAINER_GRUNT_32] = @@ -8214,7 +8214,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt32 } + .party = {.NoItemDefaultMoves = sParty_Grunt32 } }, [TRAINER_GRUNT_33] = @@ -8228,7 +8228,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt33 } + .party = {.NoItemDefaultMoves = sParty_Grunt33 } }, [TRAINER_GRUNT_34] = @@ -8242,7 +8242,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt34 } + .party = {.NoItemDefaultMoves = sParty_Grunt34 } }, [TRAINER_GRUNT_35] = @@ -8256,7 +8256,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt35 } + .party = {.NoItemDefaultMoves = sParty_Grunt35 } }, [TRAINER_GRUNT_36] = @@ -8270,7 +8270,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt36 } + .party = {.NoItemDefaultMoves = sParty_Grunt36 } }, [TRAINER_MACEY] = @@ -8284,7 +8284,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Macey } + .party = {.NoItemDefaultMoves = sParty_Macey } }, [TRAINER_BRENDAN_10] = @@ -8298,7 +8298,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan10 } + .party = {.NoItemDefaultMoves = sParty_Brendan10 } }, [TRAINER_BRENDAN_11] = @@ -8312,7 +8312,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan11 } + .party = {.NoItemDefaultMoves = sParty_Brendan11 } }, [TRAINER_PAXTON] = @@ -8326,7 +8326,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Paxton } + .party = {.NoItemDefaultMoves = sParty_Paxton } }, [TRAINER_ISABELLA] = @@ -8340,7 +8340,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Isabella } + .party = {.NoItemDefaultMoves = sParty_Isabella } }, [TRAINER_GRUNT_37] = @@ -8354,7 +8354,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt37 } + .party = {.NoItemDefaultMoves = sParty_Grunt37 } }, [TRAINER_TABITHA_2] = @@ -8368,7 +8368,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Tabitha2 } + .party = {.NoItemDefaultMoves = sParty_Tabitha2 } }, [TRAINER_JONATHAN] = @@ -8382,7 +8382,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jonathan } + .party = {.NoItemDefaultMoves = sParty_Jonathan } }, [TRAINER_BRENDAN_12] = @@ -8396,7 +8396,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan12 } + .party = {.NoItemDefaultMoves = sParty_Brendan12 } }, [TRAINER_MAY_10] = @@ -8410,7 +8410,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_May10 } + .party = {.NoItemDefaultMoves = sParty_May10 } }, [TRAINER_MAXIE_1] = @@ -8424,7 +8424,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Maxie1 } + .party = {.NoItemDefaultMoves = sParty_Maxie1 } }, [TRAINER_MAXIE_2] = @@ -8438,7 +8438,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Maxie2 } + .party = {.NoItemDefaultMoves = sParty_Maxie2 } }, [TRAINER_TIANA] = @@ -8452,7 +8452,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Tiana } + .party = {.NoItemDefaultMoves = sParty_Tiana } }, [TRAINER_HALEY_1] = @@ -8466,7 +8466,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Haley1 } + .party = {.NoItemDefaultMoves = sParty_Haley1 } }, [TRAINER_JANICE] = @@ -8480,7 +8480,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Janice } + .party = {.NoItemDefaultMoves = sParty_Janice } }, [TRAINER_VIVI] = @@ -8494,7 +8494,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Vivi } + .party = {.NoItemDefaultMoves = sParty_Vivi } }, [TRAINER_HALEY_2] = @@ -8508,7 +8508,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Haley2 } + .party = {.NoItemDefaultMoves = sParty_Haley2 } }, [TRAINER_HALEY_3] = @@ -8522,7 +8522,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Haley3 } + .party = {.NoItemDefaultMoves = sParty_Haley3 } }, [TRAINER_HALEY_4] = @@ -8536,7 +8536,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Haley4 } + .party = {.NoItemDefaultMoves = sParty_Haley4 } }, [TRAINER_HALEY_5] = @@ -8550,7 +8550,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Haley5 } + .party = {.NoItemDefaultMoves = sParty_Haley5 } }, [TRAINER_SALLY] = @@ -8564,7 +8564,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Sally } + .party = {.NoItemDefaultMoves = sParty_Sally } }, [TRAINER_ROBIN] = @@ -8578,7 +8578,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Robin } + .party = {.NoItemDefaultMoves = sParty_Robin } }, [TRAINER_ANDREA] = @@ -8592,7 +8592,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Andrea } + .party = {.NoItemDefaultMoves = sParty_Andrea } }, [TRAINER_CRISSY] = @@ -8606,7 +8606,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Crissy } + .party = {.NoItemDefaultMoves = sParty_Crissy } }, [TRAINER_RICK] = @@ -8620,7 +8620,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Rick } + .party = {.NoItemDefaultMoves = sParty_Rick } }, [TRAINER_LYLE] = @@ -8634,7 +8634,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Lyle } + .party = {.NoItemDefaultMoves = sParty_Lyle } }, [TRAINER_JOSE] = @@ -8648,7 +8648,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jose } + .party = {.NoItemDefaultMoves = sParty_Jose } }, [TRAINER_DOUG] = @@ -8662,7 +8662,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Doug } + .party = {.NoItemDefaultMoves = sParty_Doug } }, [TRAINER_GREG] = @@ -8676,7 +8676,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Greg } + .party = {.NoItemDefaultMoves = sParty_Greg } }, [TRAINER_KENT] = @@ -8690,7 +8690,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Kent } + .party = {.NoItemDefaultMoves = sParty_Kent } }, [TRAINER_JAMES_1] = @@ -8704,7 +8704,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_James1 } + .party = {.NoItemDefaultMoves = sParty_James1 } }, [TRAINER_JAMES_2] = @@ -8718,7 +8718,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_James2 } + .party = {.NoItemDefaultMoves = sParty_James2 } }, [TRAINER_JAMES_3] = @@ -8732,7 +8732,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_James3 } + .party = {.NoItemDefaultMoves = sParty_James3 } }, [TRAINER_JAMES_4] = @@ -8746,7 +8746,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_James4 } + .party = {.NoItemDefaultMoves = sParty_James4 } }, [TRAINER_JAMES_5] = @@ -8760,7 +8760,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_James5 } + .party = {.NoItemDefaultMoves = sParty_James5 } }, [TRAINER_BRICE] = @@ -8774,7 +8774,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Brice } + .party = {.NoItemDefaultMoves = sParty_Brice } }, [TRAINER_TRENT_1] = @@ -8788,7 +8788,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Trent1 } + .party = {.NoItemDefaultMoves = sParty_Trent1 } }, [TRAINER_LENNY] = @@ -8802,7 +8802,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Lenny } + .party = {.NoItemDefaultMoves = sParty_Lenny } }, [TRAINER_LUCAS_1] = @@ -8816,7 +8816,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Lucas1 } + .party = {.NoItemDefaultMoves = sParty_Lucas1 } }, [TRAINER_ALAN] = @@ -8830,7 +8830,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Alan } + .party = {.NoItemDefaultMoves = sParty_Alan } }, [TRAINER_CLARK] = @@ -8844,7 +8844,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Clark } + .party = {.NoItemDefaultMoves = sParty_Clark } }, [TRAINER_ERIC] = @@ -8858,7 +8858,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Eric } + .party = {.NoItemDefaultMoves = sParty_Eric } }, [TRAINER_LUCAS_2] = @@ -8872,7 +8872,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Lucas2 } + .party = {.NoItemCustomMoves = sParty_Lucas2 } }, [TRAINER_MIKE_1] = @@ -8886,7 +8886,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Mike1 } + .party = {.NoItemCustomMoves = sParty_Mike1 } }, [TRAINER_MIKE_2] = @@ -8900,7 +8900,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Mike2 } + .party = {.NoItemDefaultMoves = sParty_Mike2 } }, [TRAINER_TRENT_2] = @@ -8914,7 +8914,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Trent2 } + .party = {.NoItemDefaultMoves = sParty_Trent2 } }, [TRAINER_TRENT_3] = @@ -8928,7 +8928,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Trent3 } + .party = {.NoItemDefaultMoves = sParty_Trent3 } }, [TRAINER_TRENT_4] = @@ -8942,7 +8942,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Trent4 } + .party = {.NoItemDefaultMoves = sParty_Trent4 } }, [TRAINER_TRENT_5] = @@ -8956,7 +8956,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Trent5 } + .party = {.NoItemDefaultMoves = sParty_Trent5 } }, [TRAINER_DEZ_AND_LUKE] = @@ -8970,7 +8970,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_DezAndLuke } + .party = {.NoItemDefaultMoves = sParty_DezAndLuke } }, [TRAINER_LEA_AND_JED] = @@ -8984,7 +8984,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_LeaAndJed } + .party = {.NoItemDefaultMoves = sParty_LeaAndJed } }, [TRAINER_KIRA_AND_DAN_1] = @@ -8998,7 +8998,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan1 } + .party = {.NoItemDefaultMoves = sParty_KiraAndDan1 } }, [TRAINER_KIRA_AND_DAN_2] = @@ -9012,7 +9012,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan2 } + .party = {.NoItemDefaultMoves = sParty_KiraAndDan2 } }, [TRAINER_KIRA_AND_DAN_3] = @@ -9026,7 +9026,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan3 } + .party = {.NoItemDefaultMoves = sParty_KiraAndDan3 } }, [TRAINER_KIRA_AND_DAN_4] = @@ -9040,7 +9040,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan4 } + .party = {.NoItemDefaultMoves = sParty_KiraAndDan4 } }, [TRAINER_KIRA_AND_DAN_5] = @@ -9054,7 +9054,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_KiraAndDan5 } + .party = {.NoItemDefaultMoves = sParty_KiraAndDan5 } }, [TRAINER_JOHANNA] = @@ -9068,7 +9068,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Johanna } + .party = {.NoItemDefaultMoves = sParty_Johanna } }, [TRAINER_GERALD] = @@ -9082,7 +9082,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Gerald } + .party = {.NoItemCustomMoves = sParty_Gerald } }, [TRAINER_VIVIAN] = @@ -9096,7 +9096,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Vivian } + .party = {.NoItemCustomMoves = sParty_Vivian } }, [TRAINER_DANIELLE] = @@ -9110,7 +9110,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Danielle } + .party = {.NoItemCustomMoves = sParty_Danielle } }, [TRAINER_HIDEO] = @@ -9124,7 +9124,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Hideo } + .party = {.NoItemCustomMoves = sParty_Hideo } }, [TRAINER_KEIGO] = @@ -9138,7 +9138,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Keigo } + .party = {.NoItemCustomMoves = sParty_Keigo } }, [TRAINER_RILEY] = @@ -9152,7 +9152,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_Riley } + .party = {.NoItemCustomMoves = sParty_Riley } }, [TRAINER_FLINT] = @@ -9166,7 +9166,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Flint } + .party = {.NoItemDefaultMoves = sParty_Flint } }, [TRAINER_ASHLEY] = @@ -9180,7 +9180,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Ashley } + .party = {.NoItemDefaultMoves = sParty_Ashley } }, [TRAINER_WALLY_2] = @@ -9194,7 +9194,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Wally2 } + .party = {.NoItemDefaultMoves = sParty_Wally2 } }, [TRAINER_WALLY_3] = @@ -9208,7 +9208,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.NoItemCustomMoves = gTrainerParty_Wally3 } + .party = {.NoItemCustomMoves = sParty_Wally3 } }, [TRAINER_WALLY_4] = @@ -9222,7 +9222,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.NoItemCustomMoves = gTrainerParty_Wally4 } + .party = {.NoItemCustomMoves = sParty_Wally4 } }, [TRAINER_WALLY_5] = @@ -9236,7 +9236,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.NoItemCustomMoves = gTrainerParty_Wally5 } + .party = {.NoItemCustomMoves = sParty_Wally5 } }, [TRAINER_WALLY_6] = @@ -9250,7 +9250,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.NoItemCustomMoves = gTrainerParty_Wally6 } + .party = {.NoItemCustomMoves = sParty_Wally6 } }, [TRAINER_BRENDAN_13] = @@ -9264,7 +9264,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan13 } + .party = {.NoItemDefaultMoves = sParty_Brendan13 } }, [TRAINER_BRENDAN_14] = @@ -9278,7 +9278,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan14 } + .party = {.NoItemDefaultMoves = sParty_Brendan14 } }, [TRAINER_BRENDAN_15] = @@ -9292,7 +9292,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan15 } + .party = {.NoItemDefaultMoves = sParty_Brendan15 } }, [TRAINER_MAY_11] = @@ -9306,7 +9306,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_May11 } + .party = {.NoItemDefaultMoves = sParty_May11 } }, [TRAINER_MAY_12] = @@ -9320,7 +9320,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_May12 } + .party = {.NoItemDefaultMoves = sParty_May12 } }, [TRAINER_MAY_13] = @@ -9334,7 +9334,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_May13 } + .party = {.NoItemDefaultMoves = sParty_May13 } }, [TRAINER_JONAH] = @@ -9348,7 +9348,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Jonah } + .party = {.NoItemDefaultMoves = sParty_Jonah } }, [TRAINER_HENRY] = @@ -9362,7 +9362,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Henry } + .party = {.NoItemDefaultMoves = sParty_Henry } }, [TRAINER_ROGER] = @@ -9376,7 +9376,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Roger } + .party = {.NoItemDefaultMoves = sParty_Roger } }, [TRAINER_ALEXA] = @@ -9390,7 +9390,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Alexa } + .party = {.NoItemDefaultMoves = sParty_Alexa } }, [TRAINER_RUBEN] = @@ -9404,7 +9404,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Ruben } + .party = {.NoItemDefaultMoves = sParty_Ruben } }, [TRAINER_KOJI_1] = @@ -9418,7 +9418,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Koji1 } + .party = {.NoItemDefaultMoves = sParty_Koji1 } }, [TRAINER_WAYNE] = @@ -9432,7 +9432,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Wayne } + .party = {.NoItemDefaultMoves = sParty_Wayne } }, [TRAINER_AIDAN] = @@ -9446,7 +9446,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Aidan } + .party = {.NoItemDefaultMoves = sParty_Aidan } }, [TRAINER_REED] = @@ -9460,7 +9460,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Reed } + .party = {.NoItemDefaultMoves = sParty_Reed } }, [TRAINER_TISHA] = @@ -9474,7 +9474,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Tisha } + .party = {.NoItemDefaultMoves = sParty_Tisha } }, [TRAINER_TORI_AND_TIA] = @@ -9488,7 +9488,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_ToriAndTia } + .party = {.NoItemDefaultMoves = sParty_ToriAndTia } }, [TRAINER_KIM_AND_IRIS] = @@ -9502,7 +9502,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_KimAndIris } + .party = {.NoItemCustomMoves = sParty_KimAndIris } }, [TRAINER_TYRA_AND_IVY] = @@ -9516,7 +9516,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_TyraAndIvy } + .party = {.NoItemCustomMoves = sParty_TyraAndIvy } }, [TRAINER_MEL_AND_PAUL] = @@ -9530,7 +9530,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_MelAndPaul } + .party = {.NoItemCustomMoves = sParty_MelAndPaul } }, [TRAINER_JOHN_AND_JAY_1] = @@ -9544,7 +9544,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay1 } + .party = {.NoItemCustomMoves = sParty_JohnAndJay1 } }, [TRAINER_JOHN_AND_JAY_2] = @@ -9558,7 +9558,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay2 } + .party = {.NoItemCustomMoves = sParty_JohnAndJay2 } }, [TRAINER_JOHN_AND_JAY_3] = @@ -9572,7 +9572,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay3 } + .party = {.NoItemCustomMoves = sParty_JohnAndJay3 } }, [TRAINER_JOHN_AND_JAY_4] = @@ -9586,7 +9586,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay4 } + .party = {.NoItemCustomMoves = sParty_JohnAndJay4 } }, [TRAINER_JOHN_AND_JAY_5] = @@ -9600,7 +9600,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemCustomMoves = gTrainerParty_JohnAndJay5 } + .party = {.NoItemCustomMoves = sParty_JohnAndJay5 } }, [TRAINER_RELI_AND_IAN] = @@ -9614,7 +9614,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_ReliAndIan } + .party = {.NoItemDefaultMoves = sParty_ReliAndIan } }, [TRAINER_LILA_AND_ROY_1] = @@ -9628,7 +9628,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy1 } + .party = {.NoItemDefaultMoves = sParty_LilaAndRoy1 } }, [TRAINER_LILA_AND_ROY_2] = @@ -9642,7 +9642,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy2 } + .party = {.NoItemDefaultMoves = sParty_LilaAndRoy2 } }, [TRAINER_LILA_AND_ROY_3] = @@ -9656,7 +9656,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy3 } + .party = {.NoItemDefaultMoves = sParty_LilaAndRoy3 } }, [TRAINER_LILA_AND_ROY_4] = @@ -9670,7 +9670,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy4 } + .party = {.NoItemDefaultMoves = sParty_LilaAndRoy4 } }, [TRAINER_LILA_AND_ROY_5] = @@ -9684,7 +9684,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_LilaAndRoy5 } + .party = {.NoItemDefaultMoves = sParty_LilaAndRoy5 } }, [TRAINER_LISA_AND_RAY] = @@ -9698,7 +9698,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_LisaAndRay } + .party = {.NoItemDefaultMoves = sParty_LisaAndRay } }, [TRAINER_CHRIS] = @@ -9712,7 +9712,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Chris } + .party = {.NoItemDefaultMoves = sParty_Chris } }, [TRAINER_DAWSON] = @@ -9726,7 +9726,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.ItemDefaultMoves = gTrainerParty_Dawson } + .party = {.ItemDefaultMoves = sParty_Dawson } }, [TRAINER_SARAH] = @@ -9740,7 +9740,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.ItemDefaultMoves = gTrainerParty_Sarah } + .party = {.ItemDefaultMoves = sParty_Sarah } }, [TRAINER_DARIAN] = @@ -9754,7 +9754,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Darian } + .party = {.NoItemDefaultMoves = sParty_Darian } }, [TRAINER_HAILEY] = @@ -9768,7 +9768,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Hailey } + .party = {.NoItemDefaultMoves = sParty_Hailey } }, [TRAINER_CHANDLER] = @@ -9782,7 +9782,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Chandler } + .party = {.NoItemDefaultMoves = sParty_Chandler } }, [TRAINER_KALEB] = @@ -9796,7 +9796,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.ItemDefaultMoves = gTrainerParty_Kaleb } + .party = {.ItemDefaultMoves = sParty_Kaleb } }, [TRAINER_JOSEPH] = @@ -9810,7 +9810,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Joseph } + .party = {.NoItemDefaultMoves = sParty_Joseph } }, [TRAINER_ALYSSA] = @@ -9824,7 +9824,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Alyssa } + .party = {.NoItemDefaultMoves = sParty_Alyssa } }, [TRAINER_MARCOS] = @@ -9838,7 +9838,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Marcos } + .party = {.NoItemDefaultMoves = sParty_Marcos } }, [TRAINER_RHETT] = @@ -9852,7 +9852,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Rhett } + .party = {.NoItemDefaultMoves = sParty_Rhett } }, [TRAINER_TYRON] = @@ -9866,7 +9866,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Tyron } + .party = {.NoItemDefaultMoves = sParty_Tyron } }, [TRAINER_CELINA] = @@ -9880,7 +9880,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Celina } + .party = {.NoItemDefaultMoves = sParty_Celina } }, [TRAINER_BIANCA] = @@ -9894,7 +9894,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Bianca } + .party = {.NoItemDefaultMoves = sParty_Bianca } }, [TRAINER_HAYDEN] = @@ -9908,7 +9908,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Hayden } + .party = {.NoItemDefaultMoves = sParty_Hayden } }, [TRAINER_SOPHIE] = @@ -9922,7 +9922,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Sophie } + .party = {.NoItemDefaultMoves = sParty_Sophie } }, [TRAINER_COBY] = @@ -9936,7 +9936,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Coby } + .party = {.NoItemDefaultMoves = sParty_Coby } }, [TRAINER_LAWRENCE] = @@ -9950,7 +9950,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Lawrence } + .party = {.NoItemDefaultMoves = sParty_Lawrence } }, [TRAINER_WYATT] = @@ -9964,7 +9964,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Wyatt } + .party = {.NoItemDefaultMoves = sParty_Wyatt } }, [TRAINER_ANGELINA] = @@ -9978,7 +9978,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Angelina } + .party = {.NoItemDefaultMoves = sParty_Angelina } }, [TRAINER_KAI] = @@ -9992,7 +9992,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Kai } + .party = {.NoItemDefaultMoves = sParty_Kai } }, [TRAINER_CHARLOTTE] = @@ -10006,7 +10006,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Charlotte } + .party = {.NoItemDefaultMoves = sParty_Charlotte } }, [TRAINER_DEANDRE] = @@ -10020,7 +10020,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Deandre } + .party = {.NoItemDefaultMoves = sParty_Deandre } }, [TRAINER_GRUNT_38] = @@ -10034,7 +10034,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt38 } + .party = {.NoItemDefaultMoves = sParty_Grunt38 } }, [TRAINER_GRUNT_39] = @@ -10048,7 +10048,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt39 } + .party = {.NoItemDefaultMoves = sParty_Grunt39 } }, [TRAINER_GRUNT_40] = @@ -10062,7 +10062,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt40 } + .party = {.NoItemDefaultMoves = sParty_Grunt40 } }, [TRAINER_GRUNT_41] = @@ -10076,7 +10076,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt41 } + .party = {.NoItemDefaultMoves = sParty_Grunt41 } }, [TRAINER_GRUNT_42] = @@ -10090,7 +10090,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt42 } + .party = {.NoItemDefaultMoves = sParty_Grunt42 } }, [TRAINER_GRUNT_43] = @@ -10104,7 +10104,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt43 } + .party = {.NoItemDefaultMoves = sParty_Grunt43 } }, [TRAINER_GRUNT_44] = @@ -10118,7 +10118,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt44 } + .party = {.NoItemDefaultMoves = sParty_Grunt44 } }, [TRAINER_GRUNT_45] = @@ -10132,7 +10132,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt45 } + .party = {.NoItemDefaultMoves = sParty_Grunt45 } }, [TRAINER_GRUNT_46] = @@ -10146,7 +10146,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt46 } + .party = {.NoItemDefaultMoves = sParty_Grunt46 } }, [TRAINER_GRUNT_47] = @@ -10160,7 +10160,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt47 } + .party = {.NoItemDefaultMoves = sParty_Grunt47 } }, [TRAINER_GRUNT_48] = @@ -10174,7 +10174,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt48 } + .party = {.NoItemDefaultMoves = sParty_Grunt48 } }, [TRAINER_GRUNT_49] = @@ -10188,7 +10188,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt49 } + .party = {.NoItemDefaultMoves = sParty_Grunt49 } }, [TRAINER_GRUNT_50] = @@ -10202,7 +10202,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt50 } + .party = {.NoItemDefaultMoves = sParty_Grunt50 } }, [TRAINER_GRUNT_51] = @@ -10216,7 +10216,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt51 } + .party = {.NoItemDefaultMoves = sParty_Grunt51 } }, [TRAINER_GRUNT_52] = @@ -10230,7 +10230,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt52 } + .party = {.NoItemDefaultMoves = sParty_Grunt52 } }, [TRAINER_GRUNT_53] = @@ -10244,7 +10244,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Grunt53 } + .party = {.NoItemDefaultMoves = sParty_Grunt53 } }, [TRAINER_TABITHA_3] = @@ -10258,7 +10258,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 4, - .party = {.NoItemDefaultMoves = gTrainerParty_Tabitha3 } + .party = {.NoItemDefaultMoves = sParty_Tabitha3 } }, [TRAINER_DARCY] = @@ -10272,7 +10272,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Darcy } + .party = {.NoItemDefaultMoves = sParty_Darcy } }, [TRAINER_MAXIE_3] = @@ -10286,7 +10286,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Maxie3 } + .party = {.NoItemDefaultMoves = sParty_Maxie3 } }, [TRAINER_PETE] = @@ -10300,7 +10300,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Pete } + .party = {.NoItemDefaultMoves = sParty_Pete } }, [TRAINER_ISABELLE] = @@ -10314,7 +10314,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Isabelle } + .party = {.NoItemDefaultMoves = sParty_Isabelle } }, [TRAINER_ANDRES_1] = @@ -10328,7 +10328,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Andres1 } + .party = {.NoItemDefaultMoves = sParty_Andres1 } }, [TRAINER_JOSUE] = @@ -10342,7 +10342,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Josue } + .party = {.NoItemDefaultMoves = sParty_Josue } }, [TRAINER_CAMRON] = @@ -10356,7 +10356,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Camron } + .party = {.NoItemDefaultMoves = sParty_Camron } }, [TRAINER_CORY_1] = @@ -10370,7 +10370,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Cory1 } + .party = {.NoItemDefaultMoves = sParty_Cory1 } }, [TRAINER_CAROLINA] = @@ -10384,7 +10384,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Carolina } + .party = {.NoItemDefaultMoves = sParty_Carolina } }, [TRAINER_ELIJAH] = @@ -10398,7 +10398,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Elijah } + .party = {.NoItemDefaultMoves = sParty_Elijah } }, [TRAINER_CELIA] = @@ -10412,7 +10412,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Celia } + .party = {.NoItemDefaultMoves = sParty_Celia } }, [TRAINER_BRYAN] = @@ -10426,7 +10426,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Bryan } + .party = {.NoItemDefaultMoves = sParty_Bryan } }, [TRAINER_BRANDEN] = @@ -10440,7 +10440,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Branden } + .party = {.NoItemDefaultMoves = sParty_Branden } }, [TRAINER_BRYANT] = @@ -10454,7 +10454,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Bryant } + .party = {.NoItemDefaultMoves = sParty_Bryant } }, [TRAINER_SHAYLA] = @@ -10468,7 +10468,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Shayla } + .party = {.NoItemDefaultMoves = sParty_Shayla } }, [TRAINER_KYRA] = @@ -10482,7 +10482,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Kyra } + .party = {.NoItemDefaultMoves = sParty_Kyra } }, [TRAINER_JAIDEN] = @@ -10496,7 +10496,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Jaiden } + .party = {.NoItemDefaultMoves = sParty_Jaiden } }, [TRAINER_ALIX] = @@ -10510,7 +10510,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Alix } + .party = {.NoItemDefaultMoves = sParty_Alix } }, [TRAINER_HELENE] = @@ -10524,7 +10524,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Helene } + .party = {.NoItemDefaultMoves = sParty_Helene } }, [TRAINER_MARLENE] = @@ -10538,7 +10538,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Marlene } + .party = {.NoItemDefaultMoves = sParty_Marlene } }, [TRAINER_DEVAN] = @@ -10552,7 +10552,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Devan } + .party = {.NoItemDefaultMoves = sParty_Devan } }, [TRAINER_JOHNSON] = @@ -10566,7 +10566,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Johnson } + .party = {.NoItemDefaultMoves = sParty_Johnson } }, [TRAINER_MELINA] = @@ -10580,7 +10580,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Melina } + .party = {.NoItemDefaultMoves = sParty_Melina } }, [TRAINER_BRANDI] = @@ -10594,7 +10594,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Brandi } + .party = {.NoItemDefaultMoves = sParty_Brandi } }, [TRAINER_AISHA] = @@ -10608,7 +10608,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Aisha } + .party = {.NoItemDefaultMoves = sParty_Aisha } }, [TRAINER_MAKAYLA] = @@ -10622,7 +10622,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Makayla } + .party = {.NoItemDefaultMoves = sParty_Makayla } }, [TRAINER_FABIAN] = @@ -10636,7 +10636,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Fabian } + .party = {.NoItemDefaultMoves = sParty_Fabian } }, [TRAINER_DAYTON] = @@ -10650,7 +10650,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Dayton } + .party = {.NoItemDefaultMoves = sParty_Dayton } }, [TRAINER_RACHEL] = @@ -10664,7 +10664,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Rachel } + .party = {.NoItemDefaultMoves = sParty_Rachel } }, [TRAINER_LEONEL] = @@ -10678,7 +10678,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemCustomMoves = gTrainerParty_Leonel } + .party = {.NoItemCustomMoves = sParty_Leonel } }, [TRAINER_CALLIE] = @@ -10692,7 +10692,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Callie } + .party = {.NoItemDefaultMoves = sParty_Callie } }, [TRAINER_CALE] = @@ -10706,7 +10706,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cale } + .party = {.NoItemDefaultMoves = sParty_Cale } }, [TRAINER_MYLES] = @@ -10720,7 +10720,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Myles } + .party = {.NoItemDefaultMoves = sParty_Myles } }, [TRAINER_PAT] = @@ -10734,7 +10734,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Pat } + .party = {.NoItemDefaultMoves = sParty_Pat } }, [TRAINER_CRISTIN_1] = @@ -10748,7 +10748,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cristin1 } + .party = {.NoItemDefaultMoves = sParty_Cristin1 } }, [TRAINER_MAY_14] = @@ -10762,7 +10762,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_May14 } + .party = {.NoItemDefaultMoves = sParty_May14 } }, [TRAINER_MAY_15] = @@ -10776,7 +10776,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_May15 } + .party = {.NoItemDefaultMoves = sParty_May15 } }, [TRAINER_ROXANNE_2] = @@ -10790,7 +10790,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.ItemCustomMoves = gTrainerParty_Roxanne2 } + .party = {.ItemCustomMoves = sParty_Roxanne2 } }, [TRAINER_ROXANNE_3] = @@ -10804,7 +10804,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Roxanne3 } + .party = {.ItemCustomMoves = sParty_Roxanne3 } }, [TRAINER_ROXANNE_4] = @@ -10818,7 +10818,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Roxanne4 } + .party = {.ItemCustomMoves = sParty_Roxanne4 } }, [TRAINER_ROXANNE_5] = @@ -10832,7 +10832,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Roxanne5 } + .party = {.ItemCustomMoves = sParty_Roxanne5 } }, [TRAINER_BRAWLY_2] = @@ -10846,7 +10846,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.ItemCustomMoves = gTrainerParty_Brawly2 } + .party = {.ItemCustomMoves = sParty_Brawly2 } }, [TRAINER_BRAWLY_3] = @@ -10860,7 +10860,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.ItemCustomMoves = gTrainerParty_Brawly3 } + .party = {.ItemCustomMoves = sParty_Brawly3 } }, [TRAINER_BRAWLY_4] = @@ -10874,7 +10874,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Brawly4 } + .party = {.ItemCustomMoves = sParty_Brawly4 } }, [TRAINER_BRAWLY_5] = @@ -10888,7 +10888,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Brawly5 } + .party = {.ItemCustomMoves = sParty_Brawly5 } }, [TRAINER_WATTSON_2] = @@ -10902,7 +10902,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.ItemCustomMoves = gTrainerParty_Wattson2 } + .party = {.ItemCustomMoves = sParty_Wattson2 } }, [TRAINER_WATTSON_3] = @@ -10916,7 +10916,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Wattson3 } + .party = {.ItemCustomMoves = sParty_Wattson3 } }, [TRAINER_WATTSON_4] = @@ -10930,7 +10930,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Wattson4 } + .party = {.ItemCustomMoves = sParty_Wattson4 } }, [TRAINER_WATTSON_5] = @@ -10944,7 +10944,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Wattson5 } + .party = {.ItemCustomMoves = sParty_Wattson5 } }, [TRAINER_FLANNERY_2] = @@ -10958,7 +10958,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.ItemCustomMoves = gTrainerParty_Flannery2 } + .party = {.ItemCustomMoves = sParty_Flannery2 } }, [TRAINER_FLANNERY_3] = @@ -10972,7 +10972,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Flannery3 } + .party = {.ItemCustomMoves = sParty_Flannery3 } }, [TRAINER_FLANNERY_4] = @@ -10986,7 +10986,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Flannery4 } + .party = {.ItemCustomMoves = sParty_Flannery4 } }, [TRAINER_FLANNERY_5] = @@ -11000,7 +11000,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Flannery5 } + .party = {.ItemCustomMoves = sParty_Flannery5 } }, [TRAINER_NORMAN_2] = @@ -11014,7 +11014,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 4, - .party = {.ItemCustomMoves = gTrainerParty_Norman2 } + .party = {.ItemCustomMoves = sParty_Norman2 } }, [TRAINER_NORMAN_3] = @@ -11028,7 +11028,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Norman3 } + .party = {.ItemCustomMoves = sParty_Norman3 } }, [TRAINER_NORMAN_4] = @@ -11042,7 +11042,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Norman4 } + .party = {.ItemCustomMoves = sParty_Norman4 } }, [TRAINER_NORMAN_5] = @@ -11056,7 +11056,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Norman5 } + .party = {.ItemCustomMoves = sParty_Norman5 } }, [TRAINER_WINONA_2] = @@ -11070,7 +11070,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Winona2 } + .party = {.ItemCustomMoves = sParty_Winona2 } }, [TRAINER_WINONA_3] = @@ -11084,7 +11084,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Winona3 } + .party = {.ItemCustomMoves = sParty_Winona3 } }, [TRAINER_WINONA_4] = @@ -11098,7 +11098,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Winona4 } + .party = {.ItemCustomMoves = sParty_Winona4 } }, [TRAINER_WINONA_5] = @@ -11112,7 +11112,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_RISKY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Winona5 } + .party = {.ItemCustomMoves = sParty_Winona5 } }, [TRAINER_TATE_AND_LIZA_2] = @@ -11126,7 +11126,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza2 } + .party = {.ItemCustomMoves = sParty_TateAndLiza2 } }, [TRAINER_TATE_AND_LIZA_3] = @@ -11140,7 +11140,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza3 } + .party = {.ItemCustomMoves = sParty_TateAndLiza3 } }, [TRAINER_TATE_AND_LIZA_4] = @@ -11154,7 +11154,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza4 } + .party = {.ItemCustomMoves = sParty_TateAndLiza4 } }, [TRAINER_TATE_AND_LIZA_5] = @@ -11168,7 +11168,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_TateAndLiza5 } + .party = {.ItemCustomMoves = sParty_TateAndLiza5 } }, [TRAINER_JUAN_2] = @@ -11182,7 +11182,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Juan2 } + .party = {.ItemCustomMoves = sParty_Juan2 } }, [TRAINER_JUAN_3] = @@ -11196,7 +11196,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 5, - .party = {.ItemCustomMoves = gTrainerParty_Juan3 } + .party = {.ItemCustomMoves = sParty_Juan3 } }, [TRAINER_JUAN_4] = @@ -11210,7 +11210,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Juan4 } + .party = {.ItemCustomMoves = sParty_Juan4 } }, [TRAINER_JUAN_5] = @@ -11224,7 +11224,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = TRUE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Juan5 } + .party = {.ItemCustomMoves = sParty_Juan5 } }, [TRAINER_ANGELO] = @@ -11238,7 +11238,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.ItemCustomMoves = gTrainerParty_Angelo } + .party = {.ItemCustomMoves = sParty_Angelo } }, [TRAINER_DARIUS] = @@ -11252,7 +11252,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Darius } + .party = {.NoItemDefaultMoves = sParty_Darius } }, [TRAINER_STEVEN] = @@ -11266,7 +11266,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 6, - .party = {.ItemCustomMoves = gTrainerParty_Steven } + .party = {.ItemCustomMoves = sParty_Steven } }, [TRAINER_ANABEL] = @@ -11280,7 +11280,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Anabel } + .party = {.NoItemDefaultMoves = sParty_Anabel } }, [TRAINER_TUCKER] = @@ -11294,7 +11294,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Tucker } + .party = {.NoItemDefaultMoves = sParty_Tucker } }, [TRAINER_SPENSER] = @@ -11308,7 +11308,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Spenser } + .party = {.NoItemDefaultMoves = sParty_Spenser } }, [TRAINER_GRETA] = @@ -11322,7 +11322,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Greta } + .party = {.NoItemDefaultMoves = sParty_Greta } }, [TRAINER_NOLAND] = @@ -11336,7 +11336,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Noland } + .party = {.NoItemDefaultMoves = sParty_Noland } }, [TRAINER_LUCY] = @@ -11350,7 +11350,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Lucy } + .party = {.NoItemDefaultMoves = sParty_Lucy } }, [TRAINER_BRANDON] = @@ -11364,7 +11364,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Brandon } + .party = {.NoItemDefaultMoves = sParty_Brandon } }, [TRAINER_ANDRES_2] = @@ -11378,7 +11378,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Andres2 } + .party = {.NoItemDefaultMoves = sParty_Andres2 } }, [TRAINER_ANDRES_3] = @@ -11392,7 +11392,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Andres3 } + .party = {.NoItemDefaultMoves = sParty_Andres3 } }, [TRAINER_ANDRES_4] = @@ -11406,7 +11406,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Andres4 } + .party = {.NoItemDefaultMoves = sParty_Andres4 } }, [TRAINER_ANDRES_5] = @@ -11420,7 +11420,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Andres5 } + .party = {.NoItemDefaultMoves = sParty_Andres5 } }, [TRAINER_CORY_2] = @@ -11434,7 +11434,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Cory2 } + .party = {.NoItemDefaultMoves = sParty_Cory2 } }, [TRAINER_CORY_3] = @@ -11448,7 +11448,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Cory3 } + .party = {.NoItemDefaultMoves = sParty_Cory3 } }, [TRAINER_CORY_4] = @@ -11462,7 +11462,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Cory4 } + .party = {.NoItemDefaultMoves = sParty_Cory4 } }, [TRAINER_CORY_5] = @@ -11476,7 +11476,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Cory5 } + .party = {.NoItemDefaultMoves = sParty_Cory5 } }, [TRAINER_PABLO_2] = @@ -11490,7 +11490,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Pablo2 } + .party = {.NoItemDefaultMoves = sParty_Pablo2 } }, [TRAINER_PABLO_3] = @@ -11504,7 +11504,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Pablo3 } + .party = {.NoItemDefaultMoves = sParty_Pablo3 } }, [TRAINER_PABLO_4] = @@ -11518,7 +11518,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Pablo4 } + .party = {.NoItemDefaultMoves = sParty_Pablo4 } }, [TRAINER_PABLO_5] = @@ -11532,7 +11532,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Pablo5 } + .party = {.NoItemDefaultMoves = sParty_Pablo5 } }, [TRAINER_KOJI_2] = @@ -11546,7 +11546,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Koji2 } + .party = {.NoItemDefaultMoves = sParty_Koji2 } }, [TRAINER_KOJI_3] = @@ -11560,7 +11560,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Koji3 } + .party = {.NoItemDefaultMoves = sParty_Koji3 } }, [TRAINER_KOJI_4] = @@ -11574,7 +11574,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Koji4 } + .party = {.NoItemDefaultMoves = sParty_Koji4 } }, [TRAINER_KOJI_5] = @@ -11588,7 +11588,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Koji5 } + .party = {.NoItemDefaultMoves = sParty_Koji5 } }, [TRAINER_CRISTIN_2] = @@ -11602,7 +11602,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Cristin2 } + .party = {.NoItemDefaultMoves = sParty_Cristin2 } }, [TRAINER_CRISTIN_3] = @@ -11616,7 +11616,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Cristin3 } + .party = {.NoItemDefaultMoves = sParty_Cristin3 } }, [TRAINER_CRISTIN_4] = @@ -11630,7 +11630,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Cristin4 } + .party = {.NoItemDefaultMoves = sParty_Cristin4 } }, [TRAINER_CRISTIN_5] = @@ -11644,7 +11644,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Cristin5 } + .party = {.NoItemDefaultMoves = sParty_Cristin5 } }, [TRAINER_FERNANDO_2] = @@ -11658,7 +11658,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Fernando2 } + .party = {.NoItemDefaultMoves = sParty_Fernando2 } }, [TRAINER_FERNANDO_3] = @@ -11672,7 +11672,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Fernando3 } + .party = {.NoItemDefaultMoves = sParty_Fernando3 } }, [TRAINER_FERNANDO_4] = @@ -11686,7 +11686,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Fernando4 } + .party = {.NoItemDefaultMoves = sParty_Fernando4 } }, [TRAINER_FERNANDO_5] = @@ -11700,7 +11700,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Fernando5 } + .party = {.NoItemDefaultMoves = sParty_Fernando5 } }, [TRAINER_SAWYER_2] = @@ -11714,7 +11714,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer2 } + .party = {.NoItemDefaultMoves = sParty_Sawyer2 } }, [TRAINER_SAWYER_3] = @@ -11728,7 +11728,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer3 } + .party = {.NoItemDefaultMoves = sParty_Sawyer3 } }, [TRAINER_SAWYER_4] = @@ -11742,7 +11742,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer4 } + .party = {.NoItemDefaultMoves = sParty_Sawyer4 } }, [TRAINER_SAWYER_5] = @@ -11756,7 +11756,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Sawyer5 } + .party = {.NoItemDefaultMoves = sParty_Sawyer5 } }, [TRAINER_GABRIELLE_2] = @@ -11770,7 +11770,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle2 } + .party = {.NoItemDefaultMoves = sParty_Gabrielle2 } }, [TRAINER_GABRIELLE_3] = @@ -11784,7 +11784,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle3 } + .party = {.NoItemDefaultMoves = sParty_Gabrielle3 } }, [TRAINER_GABRIELLE_4] = @@ -11798,7 +11798,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle4 } + .party = {.NoItemDefaultMoves = sParty_Gabrielle4 } }, [TRAINER_GABRIELLE_5] = @@ -11812,7 +11812,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 6, - .party = {.NoItemDefaultMoves = gTrainerParty_Gabrielle5 } + .party = {.NoItemDefaultMoves = sParty_Gabrielle5 } }, [TRAINER_THALIA_2] = @@ -11826,7 +11826,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Thalia2 } + .party = {.NoItemDefaultMoves = sParty_Thalia2 } }, [TRAINER_THALIA_3] = @@ -11840,7 +11840,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Thalia3 } + .party = {.NoItemDefaultMoves = sParty_Thalia3 } }, [TRAINER_THALIA_4] = @@ -11854,7 +11854,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Thalia4 } + .party = {.NoItemDefaultMoves = sParty_Thalia4 } }, [TRAINER_THALIA_5] = @@ -11868,7 +11868,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, .partySize = 3, - .party = {.NoItemDefaultMoves = gTrainerParty_Thalia5 } + .party = {.NoItemDefaultMoves = sParty_Thalia5 } }, [TRAINER_MARIELA] = @@ -11882,7 +11882,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Mariela } + .party = {.NoItemDefaultMoves = sParty_Mariela } }, [TRAINER_ALVARO] = @@ -11896,7 +11896,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 2, - .party = {.NoItemDefaultMoves = gTrainerParty_Alvaro } + .party = {.NoItemDefaultMoves = sParty_Alvaro } }, [TRAINER_EVERETT] = @@ -11910,7 +11910,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Everett } + .party = {.NoItemDefaultMoves = sParty_Everett } }, [TRAINER_RED] = @@ -11924,7 +11924,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Red } + .party = {.NoItemDefaultMoves = sParty_Red } }, [TRAINER_LEAF] = @@ -11938,7 +11938,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Leaf } + .party = {.NoItemDefaultMoves = sParty_Leaf } }, [TRAINER_BRENDAN_16] = @@ -11952,7 +11952,7 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_Brendan16 } + .party = {.NoItemDefaultMoves = sParty_Brendan16 } }, [TRAINER_MAY_16] = @@ -11966,6 +11966,6 @@ const struct Trainer gTrainers[] = { .doubleBattle = FALSE, .aiFlags = 0, .partySize = 1, - .party = {.NoItemDefaultMoves = gTrainerParty_May16 } + .party = {.NoItemDefaultMoves = sParty_May16 } }, }; diff --git a/src/data2b.c b/src/data2b.c deleted file mode 100644 index af76390a4..000000000 --- a/src/data2b.c +++ /dev/null @@ -1,387 +0,0 @@ -#include "global.h" -#include "data2.h" -#include "graphics.h" -#include "alloc.h" -#include "constants/species.h" - -const u16 gUnknown_082FF1D8[] = INCBIN_U16("graphics/link/minigame_digits.gbapal"); -const u32 gUnknown_082FF1F8[] = INCBIN_U32("graphics/link/minigame_digits.4bpp.lz"); -const u32 gUnknown_082FF2B8[] = INCBIN_U32("graphics/link/minigame_digits2.4bpp.lz"); - -const struct SpriteFrameImage gUnknown_082FF3A8[] = -{ - gHeap + 0x8000, 0x800, - gHeap + 0x8800, 0x800, - gHeap + 0x9000, 0x800, - gHeap + 0x9800, 0x800, -}; - -const struct SpriteFrameImage gUnknown_082FF3C8[] = -{ - gHeap + 0xA000, 0x800, - gHeap + 0xA800, 0x800, - gHeap + 0xB000, 0x800, - gHeap + 0xB800, 0x800, -}; - -const struct SpriteFrameImage gUnknown_082FF3E8[] = -{ - gHeap + 0xC000, 0x800, - gHeap + 0xC800, 0x800, - gHeap + 0xD000, 0x800, - gHeap + 0xD800, 0x800, -}; - -const struct SpriteFrameImage gUnknown_082FF408[] = -{ - gHeap + 0xE000, 0x800, - gHeap + 0xE800, 0x800, - gHeap + 0xF000, 0x800, - gHeap + 0xF800, 0x800, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_Brendan[] = -{ - gTrainerBackPic_Brendan, 0x0800, - gTrainerBackPic_Brendan + 0x0800, 0x0800, - gTrainerBackPic_Brendan + 0x1000, 0x0800, - gTrainerBackPic_Brendan + 0x1800, 0x0800, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_May[] = -{ - gTrainerBackPic_May, 0x0800, - gTrainerBackPic_May + 0x0800, 0x0800, - gTrainerBackPic_May + 0x1000, 0x0800, - gTrainerBackPic_May + 0x1800, 0x0800, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_Red[] = -{ - gTrainerBackPic_Red, 0x0800, - gTrainerBackPic_Red + 0x0800, 0x0800, - gTrainerBackPic_Red + 0x1000, 0x0800, - gTrainerBackPic_Red + 0x1800, 0x0800, - gTrainerBackPic_Red + 0x2000, 0x0800, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_Leaf[] = -{ - gTrainerBackPic_Leaf, 0x0800, - gTrainerBackPic_Leaf + 0x0800, 0x0800, - gTrainerBackPic_Leaf + 0x1000, 0x0800, - gTrainerBackPic_Leaf + 0x1800, 0x0800, - gTrainerBackPic_Leaf + 0x2000, 0x0800, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireBrendan[] = -{ - gTrainerBackPic_RubySapphireBrendan, 0x0800, - gTrainerBackPic_RubySapphireBrendan + 0x0800, 0x0800, - gTrainerBackPic_RubySapphireBrendan + 0x1000, 0x0800, - gTrainerBackPic_RubySapphireBrendan + 0x1800, 0x0800, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireMay[] = -{ - gTrainerBackPic_RubySapphireMay, 0x0800, - gTrainerBackPic_RubySapphireMay + 0x0800, 0x0800, - gTrainerBackPic_RubySapphireMay + 0x1000, 0x0800, - gTrainerBackPic_RubySapphireMay + 0x1800, 0x0800, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_Wally[] = -{ - gTrainerBackPic_Wally, 0x0800, - gTrainerBackPic_Wally + 0x0800, 0x0800, - gTrainerBackPic_Wally + 0x1000, 0x0800, - gTrainerBackPic_Wally + 0x1800, 0x0800, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_Steven[] = -{ - gTrainerBackPic_Steven, 0x0800, - gTrainerBackPic_Steven + 0x0800, 0x0800, - gTrainerBackPic_Steven + 0x1000, 0x0800, - gTrainerBackPic_Steven + 0x1800, 0x0800, -}; - -const union AnimCmd gAnimCmd_General_Frame0[] = -{ - ANIMCMD_FRAME(0, 0), - ANIMCMD_END, -}; - -const union AnimCmd gAnimCmd_General_Frame3[] = -{ - ANIMCMD_FRAME(3, 0), - ANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF548[] = -{ - AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0x00), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF558[] = -{ - AFFINEANIMCMD_FRAME(0xff00, 0x0100, 0x00, 0x00), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF568[] = -{ - AFFINEANIMCMD_FRAME(0x0028, 0x0028, 0x00, 0x00), - AFFINEANIMCMD_FRAME(0x0012, 0x0012, 0x00, 0x0c), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF580[] = -{ - AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x12), - AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x0f), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF598[] = -{ - AFFINEANIMCMD_FRAME(0x00a0, 0x0100, 0x00, 0x00), - AFFINEANIMCMD_FRAME(0x0004, 0x0000, 0x00, 0x08), - AFFINEANIMCMD_FRAME(0xfffc, 0x0000, 0x00, 0x08), - AFFINEANIMCMD_JUMP(1), -}; - -const union AffineAnimCmd gUnknown_082FF5B8[] = -{ - AFFINEANIMCMD_FRAME(0x0002, 0x0002, 0x00, 0x14), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF5C8[] = -{ - AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x14), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF5D8[] = -{ - AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0000), - AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x09), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF5F0[] = -{ - AFFINEANIMCMD_FRAME(0x0004, 0x0004, 0x00, 0x3f), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF600[] = -{ - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd * const gUnknown_082FF618[] = -{ - gUnknown_082FF548, - gUnknown_082FF568, - gUnknown_082FF580, - gUnknown_082FF598, - gUnknown_082FF5B8, - gUnknown_082FF5C8, - gUnknown_082FF5F0, - gUnknown_082FF600, - gUnknown_082FF5D8, -}; - -const union AffineAnimCmd gUnknown_082FF63C[] = -{ - AFFINEANIMCMD_FRAME(0xfffc, 0xfffc, 0x04, 0x3f), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF64C[] = -{ - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF664[] = -{ - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfb, 0x14), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x00, 0x14), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x05, 0x14), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd gUnknown_082FF684[] = -{ - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x09, 0x6e), - AFFINEANIMCMD_END, -}; - -const union AffineAnimCmd * const gUnknown_082FF694[] = -{ - gUnknown_082FF548, - gUnknown_082FF568, - gUnknown_082FF580, - gUnknown_082FF598, - gUnknown_082FF5B8, - gUnknown_082FF5C8, - gUnknown_082FF63C, - gUnknown_082FF64C, - gUnknown_082FF664, - gUnknown_082FF5D8, - gUnknown_082FF684, -}; - -const union AffineAnimCmd * const gUnknown_082FF6C0[] = -{ - gUnknown_082FF558, - gUnknown_082FF568, - gUnknown_082FF580, - gUnknown_082FF598, - gUnknown_082FF5B8, - gUnknown_082FF5C8, - gUnknown_082FF63C, - gUnknown_082FF64C, - gUnknown_082FF664, - gUnknown_082FF5D8, - gUnknown_082FF684, -}; - -#include "data/pokemon_graphics/unknown_anims.h" -#include "data/pokemon_graphics/front_pic_coordinates.h" -#include "data/pokemon_graphics/still_front_pic_table.h" -#include "data/pokemon_graphics/back_pic_coordinates.h" - -#include "data/pokemon_graphics/back_pic_table.h" -#include "data/pokemon_graphics/palette_table.h" -#include "data/pokemon_graphics/shiny_palette_table.h" - -#include "data/trainer_graphics/front_pic_anims.h" -#include "data/trainer_graphics/front_pic_tables.h" -#include "data/trainer_graphics/back_pic_anims.h" -#include "data/trainer_graphics/back_pic_tables.h" - -#include "data/pokemon_graphics/enemy_mon_elevation.h" -#include "data/pokemon_graphics/front_anims.h" -#include "data/pokemon_graphics/front_pic_table.h" - -const u32 gUnknown830AF4C[] = // Potentially part of battle_data.c -{ - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000088, 0x00000888, 0x00000888, 0x00000886, - 0x00000888, 0x00000886, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000886, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000886, 0x00000886, - 0x00000888, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000888, 0x00000886, 0x00000888, - 0x00000888, 0x00000888, 0x00000886, 0x00000886, - 0x00000888, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000886, 0x00000886, 0x00000088, - 0x00000886, 0x00000886, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000886, 0x00000888, 0x00000088, 0x00000088, - 0x00000888, 0x00000888, 0x00000888, 0x00000886, - 0x00000888, 0x00000888, 0x00000888, 0x00000886, - 0x00000886, 0x00000886, 0x00000886, 0x00000886, - 0x00000886, 0x00000886, 0x00000888, 0x00000888, - 0x00000886, 0x00000886, 0x00000886, 0x00000886, - 0x00000886, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000886, 0x00000886, 0x00000888, - 0x00000886, 0x00000886, 0x00000888, 0x00000888, - 0x00000088, 0x00000088, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000886, 0x00000886, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000088, 0x00000886, - 0x00000888, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000888, 0x00000886, 0x00000888, - 0x00000088, 0x00000088, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000888, 0x00000886, - 0x00000886, 0x00000888, 0x00000888, 0x00000088, - 0x00000888, 0x00000886, 0x00000886, 0x00000888, - 0x00000886, 0x00000888, 0x00000888, 0x00000886, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000088, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000088, 0x00000888, 0x00000888, 0x00000886, - 0x00000886, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000886, - 0x00000888, 0x00000886, 0x00000088, 0x00000088, - 0x00000088, 0x00000888, 0x00000088, 0x00000888, - 0x00000888, 0x00000088, 0x00000088, 0x00000888, - 0x00000886, 0x00000888, 0x00000886, 0x00000886, - 0x00000886, 0x00000888, 0x00000888, 0x00000888, - 0x00000088, 0x00000888, 0x00000888, 0x00000888, - 0x00000088, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000088, 0x00000088, - 0x00000886, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000088, 0x00000888, - 0x00000886, 0x00000888, 0x00000088, 0x00000088, - 0x00000888, 0x00000888, 0x00000088, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000088, - 0x00000888, 0x00000888, 0x00000088, 0x00000088, - 0x00000088, 0x00000888, 0x00000088, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000886, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000886, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000088, 0x00000886, - 0x00000088, 0x00000886, 0x00000886, 0x00000886, - 0x00000088, 0x00000886, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000886, - 0x00000886, 0x00000886, 0x00000888, 0x00000888, - 0x00000886, 0x00000886, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000886, 0x00000886, - 0x00001882, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000886, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000886, 0x00000088, 0x00000886, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000088, 0x00000886, - 0x00000886, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000886, 0x00000088, - 0x00000088, 0x00000886, 0x00000886, 0x00000886, - 0x00000886, 0x00000886, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000886, - 0x00000886, 0x00000886, 0x00000886, 0x00000088, - 0x00000886, 0x00000088, 0x00000886, 0x00000886, - 0x00000886, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000886, 0x00000886, - 0x00000886, 0x00000888, 0x00000886, 0x00000886, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000886, 0x00000886, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000088, 0x00000088, 0x00000088, - 0x00000088, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, - 0x00000888, 0x00000888, 0x00000888, 0x00000888, -}; -- cgit v1.2.3 From b0223f691fcc83c18b6ba8df5140d907939b04cf Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 4 Apr 2019 23:53:06 +0200 Subject: Clean up data headers --- src/apprentice.c | 2 +- src/battle_ai_script_commands.c | 3 ++- src/battle_anim_effects_3.c | 4 +--- src/battle_anim_mons.c | 7 +----- src/battle_controller_link_opponent.c | 4 +--- src/battle_controller_link_partner.c | 5 +--- src/battle_controller_opponent.c | 4 +--- src/battle_controller_player.c | 5 +--- src/battle_controller_player_partner.c | 5 +--- src/battle_controller_recorded_opponent.c | 4 +--- src/battle_controller_recorded_player.c | 5 +--- src/battle_controller_safari.c | 4 +--- src/battle_controller_wally.c | 4 +--- src/battle_dome.c | 5 +--- src/battle_factory_screen.c | 2 +- src/battle_gfx_sfx_util.c | 12 ++-------- src/battle_interface.c | 5 ++-- src/battle_main.c | 2 +- src/battle_message.c | 3 +-- src/battle_tower.c | 2 +- src/battle_util.c | 4 ++-- src/bike.c | 5 +--- src/cable_club.c | 2 +- src/contest.c | 6 ++--- src/contest_link_80F57C4.c | 2 +- src/contest_painting.c | 5 ++-- src/data.c | 2 +- src/data/pokemon_graphics/footprint_table.h | 2 +- src/data/pokemon_graphics/front_pic_anims.h | 2 +- src/decompress.c | 10 ++++---- src/easy_chat.c | 2 +- src/egg_hatch.c | 2 +- src/evolution_scene.c | 4 +--- src/field_effect.c | 6 ++--- src/field_specials.c | 30 ++++++++++++------------ src/frontier_util.c | 2 +- src/hall_of_fame.c | 2 +- src/item_menu.c | 2 +- src/item_use.c | 2 +- src/match_call.c | 2 +- src/menu_specialized.c | 2 +- src/move_relearner.c | 2 +- src/naming_screen.c | 2 +- src/party_menu.c | 2 +- src/pokeblock_feed.c | 9 ++++---- src/pokedex.c | 2 +- src/pokemon.c | 36 ++++++----------------------- src/pokemon_size_record.c | 2 +- src/pokemon_storage_system.c | 4 +--- src/pokemon_summary_screen.c | 3 +-- src/pokenav_match_call.c | 3 +-- src/reshow_battle_screen.c | 8 +++---- src/scanline_effect.c | 2 +- src/scrcmd.c | 2 +- src/script_pokemon_util_80F87D8.c | 2 +- src/shop.c | 2 +- src/smokescreen.c | 6 ++++- src/starter_choose.c | 2 +- src/trade.c | 6 +---- src/trainer_pokemon_sprites.c | 17 +++----------- src/tv.c | 2 +- src/union_room.c | 2 +- src/use_pokeblock.c | 7 ++---- 63 files changed, 106 insertions(+), 200 deletions(-) (limited to 'src') diff --git a/src/apprentice.c b/src/apprentice.c index 27ff8e36e..ac2bba48f 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -2,7 +2,7 @@ #include "apprentice.h" #include "battle.h" #include "battle_tower.h" -#include "data2.h" +#include "data.h" #include "event_data.h" #include "event_object_movement.h" #include "field_player_avatar.h" diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 61876e0de..5e832aba0 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -4,6 +4,7 @@ #include "battle_ai_script_commands.h" #include "battle_factory.h" #include "battle_setup.h" +#include "data.h" #include "item.h" #include "pokemon.h" #include "random.h" @@ -2217,7 +2218,7 @@ static void BattleAICmd_if_flash_fired(void) { u8 battlerId = BattleAI_GetWantedBattler(gAIScriptPtr[1]); - if (gBattleResources->flags->flags[battlerId] & UNKNOWN_FLAG_FLASH_FIRE) + if (gBattleResources->flags->flags[battlerId] & RESOURCE_FLAG_FLASH_FIRE) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); else gAIScriptPtr += 6; diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index efa2620fd..ab765b8c1 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -4,7 +4,7 @@ #include "battle_anim.h" #include "bg.h" #include "contest.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "dma3.h" #include "gpu_regs.h" @@ -25,8 +25,6 @@ #include "constants/weather.h" extern const struct SpriteTemplate gUnknown_08593114; -extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; -extern const union AffineAnimCmd *const gUnknown_082FF694[]; void sub_815A0D4(struct Sprite *); void sub_815A1B0(struct Sprite *); diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 372377a0c..c6058204d 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -3,7 +3,7 @@ #include "battle_anim.h" #include "bg.h" #include "contest.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "dma3.h" #include "gpu_regs.h" @@ -27,11 +27,6 @@ #define IS_DOUBLE_BATTLE() ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) extern const struct OamData gUnknown_0852497C; -extern const struct MonCoords gMonFrontPicCoords[]; -extern const struct MonCoords gMonBackPicCoords[]; -extern const u8 gEnemyMonElevation[]; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -extern const union AffineAnimCmd *gUnknown_082FF6C0[]; static void sub_80A6FB4(struct Sprite *sprite); static void sub_80A7144(struct Sprite *sprite); diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 23d469c27..3fb5da9dc 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -9,7 +9,7 @@ #include "battle_tower.h" #include "battle_tv.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "link.h" #include "main.h" #include "m4a.h" @@ -31,8 +31,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; - // this file's functions static void LinkOpponentHandleGetMonData(void); static void LinkOpponentHandleGetRawMonData(void); diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 22633c5bc..6fc73a604 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -9,7 +9,7 @@ #include "battle_tower.h" #include "battle_tv.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "link.h" #include "main.h" #include "m4a.h" @@ -29,9 +29,6 @@ #include "constants/trainers.h" #include "recorded_battle.h" -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; - // this file's functions static void LinkPartnerHandleGetMonData(void); static void LinkPartnerHandleGetRawMonData(void); diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 7d940cb89..392811327 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -10,7 +10,7 @@ #include "battle_tower.h" #include "battle_tv.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "frontier_util.h" #include "item.h" #include "link.h" @@ -36,8 +36,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; - // this file's functions static void OpponentHandleGetMonData(void); static void OpponentHandleGetRawMonData(void); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index b377ecf64..3f5a777e4 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -9,7 +9,7 @@ #include "battle_setup.h" #include "battle_tv.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "item.h" #include "item_menu.h" #include "link.h" @@ -36,9 +36,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; - // this file's functions static void PlayerHandleGetMonData(void); static void PlayerHandleSetMonData(void); diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 2c53938c1..0ec21fd22 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -8,7 +8,7 @@ #include "battle_setup.h" #include "battle_tower.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "item_use.h" #include "link.h" #include "main.h" @@ -27,9 +27,6 @@ #include "constants/songs.h" #include "constants/trainers.h" -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; - // this file's functions static void PlayerPartnerHandleGetMonData(void); static void PlayerPartnerHandleGetRawMonData(void); diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index e43c5f8ae..69d840020 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -9,7 +9,7 @@ #include "battle_tower.h" #include "battle_tv.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "item_use.h" #include "link.h" #include "main.h" @@ -31,8 +31,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; - // this file's functions static void RecordedOpponentHandleGetMonData(void); static void RecordedOpponentHandleGetRawMonData(void); diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 412c49f17..95683225e 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -6,7 +6,7 @@ #include "battle_message.h" #include "battle_interface.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "item_use.h" #include "link.h" #include "main.h" @@ -27,9 +27,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; - // this file's functions static void RecordedPlayerHandleGetMonData(void); static void RecordedPlayerHandleGetRawMonData(void); diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index e9da16252..8f89e4cb5 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -5,7 +5,7 @@ #include "battle_interface.h" #include "battle_message.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "item_menu.h" #include "link.h" #include "main.h" @@ -23,8 +23,6 @@ #include "constants/battle_anim.h" #include "constants/songs.h" -extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; - // this file's functions static void SafariHandleGetMonData(void); static void SafariHandleGetRawMonData(void); diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index f1b783b21..a504f5a80 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -7,7 +7,7 @@ #include "battle_setup.h" #include "battle_tv.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "item.h" #include "item_menu.h" #include "link.h" @@ -31,8 +31,6 @@ #include "constants/songs.h" #include "constants/trainers.h" -extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; - // this file's functions static void WallyHandleGetMonData(void); static void WallyHandleGetRawMonData(void); diff --git a/src/battle_dome.c b/src/battle_dome.c index 1b7953180..95fce49a3 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -24,7 +24,7 @@ #include "menu.h" #include "sound.h" #include "pokemon_icon.h" -#include "data2.h" +#include "data.h" #include "international_string_util.h" #include "trainer_pokemon_sprites.h" #include "scanline_effect.h" @@ -59,9 +59,6 @@ struct UnkStruct_860DD10 u16 src; }; -// text -extern const u8 gTrainerClassNames[][13]; - // This file's functions. static u8 GetDomeTrainerMonIvs(u16 trainerId); static void SwapDomeTrainers(int id1, int id2, u16 *statsArray); diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 367c1401f..ac32651e2 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -17,7 +17,7 @@ #include "string_util.h" #include "international_string_util.h" #include "window.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "pokemon_summary_screen.h" #include "sound.h" diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 7c6b74304..d6b1b6dee 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -19,7 +19,7 @@ #include "m4a.h" #include "constants/species.h" #include "decompress.h" -#include "data2.h" +#include "data.h" #include "palette.h" #include "contest.h" #include "constants/songs.h" @@ -32,16 +32,8 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const u8 gUnknown_0831C604[]; extern const u8 * const gBattleAnims_General[]; extern const u8 * const gBattleAnims_Special[]; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -extern const struct CompressedSpriteSheet gMonBackPicTable[]; -extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; -extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; -extern const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[]; extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow; extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow; -extern const u8 gEnemyMonElevation[]; // this file's functions static u8 sub_805D4A8(u16 move); @@ -932,7 +924,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform if (targetSpecies == SPECIES_CASTFORM) { - gSprites[gBattlerSpriteIds[battlerAtk]].anims = gMonAnimationsSpriteAnimsPtrTable[targetSpecies]; + gSprites[gBattlerSpriteIds[battlerAtk]].anims = gMonFrontAnimsPtrTable[targetSpecies]; LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[0]); LoadPalette(gBattleStruct->castformPalette[0] + gBattleMonForms[battlerDef] * 16, paletteOffset, 32); } diff --git a/src/battle_interface.c b/src/battle_interface.c index a8651f6cf..922437597 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -23,7 +23,8 @@ #include "battle_anim.h" #include "constants/battle_anim.h" #include "constants/rgb.h" -#include "data2.h" +#include "data.h" +#include "pokemon_summary_screen.h" struct TestingBar { @@ -157,8 +158,6 @@ enum HEALTHBOX_GFX_117, //unknown_D1300C }; -extern const u8 *const gNatureNamePointers[]; - // strings extern const u8 gText_Slash[]; extern const u8 gText_HighlightDarkGrey[]; diff --git a/src/battle_main.c b/src/battle_main.c index 92f12636d..7e564ce7f 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -13,7 +13,7 @@ #include "battle_tower.h" #include "berry.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "dma3.h" #include "event_data.h" diff --git a/src/battle_message.c b/src/battle_message.c index f93765b89..3fec571f4 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -5,7 +5,7 @@ #include "battle_message.h" #include "battle_setup.h" #include "battle_tower.h" -#include "data2.h" +#include "data.h" #include "event_data.h" #include "frontier_util.h" #include "international_string_util.h" @@ -38,7 +38,6 @@ struct BattleWindowText u8 shadowColor; }; -extern const u8 gTrainerClassNames[][13]; extern const u16 gUnknown_08D85620[]; // this file's functions diff --git a/src/battle_tower.c b/src/battle_tower.c index 46aab4bac..6f8e3e25f 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -18,7 +18,7 @@ #include "trainer_see.h" #include "new_game.h" #include "string_util.h" -#include "data2.h" +#include "data.h" #include "link.h" #include "field_message_box.h" #include "tv.h" diff --git a/src/battle_util.c b/src/battle_util.c index a7962b7f7..03f1482da 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -2041,7 +2041,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITY_FLASH_FIRE: if (moveType == TYPE_FIRE && !(gBattleMons[battler].status1 & STATUS1_FREEZE)) { - if (!(gBattleResources->flags->flags[battler] & UNKNOWN_FLAG_FLASH_FIRE)) + if (!(gBattleResources->flags->flags[battler] & RESOURCE_FLAG_FLASH_FIRE)) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; if (gProtectStructs[gBattlerAttacker].notFirstStrike) @@ -2049,7 +2049,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; - gBattleResources->flags->flags[battler] |= UNKNOWN_FLAG_FLASH_FIRE; + gBattleResources->flags->flags[battler] |= RESOURCE_FLAG_FLASH_FIRE; effect = 2; } else diff --git a/src/bike.c b/src/bike.c index 530742bdf..7f84f350b 100644 --- a/src/bike.c +++ b/src/bike.c @@ -3,7 +3,7 @@ #include "event_object_movement.h" #include "field_player_avatar.h" #include "fieldmap.h" -#include "global.fieldmap.h" +#include "field_specials.h" #include "metatile_behavior.h" #include "overworld.h" #include "sound.h" @@ -11,9 +11,6 @@ #include "constants/map_types.h" #include "constants/songs.h" -extern bool8 gBikeCyclingChallenge; -extern u8 gBikeCollisions; - // this file's functions static void MovePlayerOnMachBike(u8, u16, u16); static u8 GetMachBikeTransition(u8 *); diff --git a/src/cable_club.c b/src/cable_club.c index fab187b07..303cc76d1 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -4,7 +4,7 @@ #include "battle_records.h" #include "battle_setup.h" #include "cable_club.h" -#include "data2.h" +#include "data.h" #include "event_data.h" #include "field_message_box.h" #include "field_specials.h" diff --git a/src/contest.c b/src/contest.c index 02d7038cf..b06335a1c 100644 --- a/src/contest.c +++ b/src/contest.c @@ -11,7 +11,7 @@ #include "battle.h" #include "battle_anim.h" #include "contest.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "graphics.h" #include "link.h" @@ -41,7 +41,7 @@ #include "contest_link_80FC4F4.h" #include "script_pokemon_util_80F87D8.h" #include "international_string_util.h" -#include "data2.h" +#include "data.h" #include "constants/rgb.h" #include "contest_ai.h" @@ -242,8 +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 union AffineAnimCmd *const gUnknown_082FF6C0[]; -extern const union AffineAnimCmd *const gUnknown_082FF694[]; extern const struct SpriteTemplate gSpriteTemplate_8587AD0; extern const struct SpriteTemplate gSpriteTemplate_8587B18[]; extern void (*const gContestEffectFuncs[])(void); diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index 59f41d72a..cf0e77c3c 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -6,6 +6,7 @@ #include "contest.h" #include "contest_link_80F57C4.h" #include "contest_link_80FC4F4.h" +#include "data.h" #include "decompress.h" #include "dma3.h" #include "event_data.h" @@ -86,7 +87,6 @@ struct ContestLink80F57C4 EWRAM_DATA struct ContestLink80F57C4 *gUnknown_0203A034 = NULL; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; extern const struct BgTemplate gUnknown_0858D888[4]; extern const struct WindowTemplate gUnknown_0858D898[]; extern const struct CompressedSpriteSheet gUnknown_0858D878[]; diff --git a/src/contest_painting.c b/src/contest_painting.c index 87598f2bd..b43923c7b 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -1,11 +1,12 @@ #include "global.h" #include "alloc.h" #include "battle.h" +#include "battle_gfx_sfx_util.h" #include "bg.h" #include "contest.h" #include "contest_painting.h" #include "contest_painting_effects.h" -#include "battle_gfx_sfx_util.h" +#include "data.h" #include "decompress.h" #include "gpu_regs.h" #include "international_string_util.h" @@ -44,8 +45,6 @@ static void VBlankCB_ContestPainting(void); static void sub_8130380(u8 *spritePixels, u16 *palette, u16 (*destColorBuffer)[64][64]); extern const u8 gUnknown_0827EA0C[]; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -extern const struct CompressedSpriteSheet gMonBackPicTable[]; extern const u8 gContestCoolness[]; extern const u8 gContestBeauty[]; extern const u8 gContestCuteness[]; diff --git a/src/data.c b/src/data.c index b0d14d2af..7aebd63ed 100644 --- a/src/data.c +++ b/src/data.c @@ -284,7 +284,7 @@ static const union AnimCmd gUnknown_082FF704[] = ANIMCMD_END, }; -const union AnimCmd *const gPlayerMonSpriteAnimsTable[] = +const union AnimCmd *const gUnknown_082FF70C[] = { gUnknown_082FF6EC, gUnknown_082FF6F4, diff --git a/src/data/pokemon_graphics/footprint_table.h b/src/data/pokemon_graphics/footprint_table.h index 0128c08c0..86ca06790 100644 --- a/src/data/pokemon_graphics/footprint_table.h +++ b/src/data/pokemon_graphics/footprint_table.h @@ -1,4 +1,4 @@ -const u8 *const gMonFootprintTable[NUM_SPECIES] = +const u8 *const gMonFootprintTable[] = { [SPECIES_NONE] = gMonFootprint_Bulbasaur, [SPECIES_BULBASAUR] = gMonFootprint_Bulbasaur, diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index 8be6ed495..4c97af1a7 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -6948,7 +6948,7 @@ static const union AnimCmd *const sAnims_UNOWN_QMARK[] ={ #define ANIM_CMD(name) [SPECIES_##name] = sAnims_##name #define ANIM_CMD_FULL(name, anims) [SPECIES_##name] = anims -const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[] = +const union AnimCmd *const *const gMonFrontAnimsPtrTable[] = { ANIM_CMD(NONE), ANIM_CMD(BULBASAUR), diff --git a/src/decompress.c b/src/decompress.c index 949b96990..46e4ef614 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -1,15 +1,13 @@ #include "global.h" -#include "decompress.h" -#include "constants/species.h" -#include "text.h" #include "alloc.h" +#include "data.h" +#include "decompress.h" #include "pokemon.h" +#include "text.h" +#include "constants/species.h" EWRAM_DATA ALIGNED(4) u8 gDecompressionBuffer[0x4000] = {0}; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -extern const struct CompressedSpriteSheet gMonBackPicTable[]; - static void DuplicateDeoxysTiles(void *pointer, s32 species); void LZDecompressWram(const u32 *src, void *dest) diff --git a/src/easy_chat.c b/src/easy_chat.c index 4388592f7..b29a05bab 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -2,7 +2,7 @@ #include "alloc.h" #include "bard_music.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "dewford_trend.h" #include "dynamic_placeholder_text_util.h" diff --git a/src/egg_hatch.c b/src/egg_hatch.c index fc559e001..65601d64a 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -33,6 +33,7 @@ #include "naming_screen.h" #include "pokemon_storage_system.h" #include "field_screen_effect.h" +#include "data.h" #include "battle.h" // to get rid of later struct EggHatchData @@ -52,7 +53,6 @@ struct EggHatchData u8 textColor[3]; }; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle extern const u8 gText_HatchedFromEgg[]; extern const u8 gText_NickHatchPrompt[]; diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 8c4847b8d..4b8223b17 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -3,7 +3,7 @@ #include "battle.h" #include "battle_message.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "evolution_scene.h" #include "evolution_graphics.h" @@ -52,8 +52,6 @@ void (*gCB2_AfterEvolution)(void); #define sEvoCursorPos gBattleCommunication[1] // when learning a new move #define sEvoGraphicsTaskID gBattleCommunication[2] -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; - // this file's functions static void Task_EvolutionScene(u8 taskID); static void Task_TradeEvolutionScene(u8 taskID); diff --git a/src/field_effect.c b/src/field_effect.c index 93d7e5ef8..6fdf996f2 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -33,8 +33,6 @@ #define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))} -extern struct CompressedSpritePalette gMonPaletteTable[]; // GF made a mistake and did not extern it as const. - EWRAM_DATA s32 gFieldEffectArguments[8] = {0}; // Static type declarations @@ -237,7 +235,9 @@ static void Fldeff_MoveDeoxysRock_Step(u8 taskId); static IWRAM_DATA u8 sActiveList[32]; // External declarations - +extern struct CompressedSpritePalette gMonPaletteTable[]; // GF made a mistake and did not extern it as const. +extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; +extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; extern u8 *gFieldEffectScriptPointers[]; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; diff --git a/src/field_specials.c b/src/field_specials.c index 20c2e6173..8bd990063 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3,7 +3,7 @@ #include "battle.h" #include "battle_tower.h" #include "cable_club.h" -#include "data2.h" +#include "data.h" #include "decoration.h" #include "diploma.h" #include "event_data.h" @@ -59,20 +59,20 @@ EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE; EWRAM_DATA u8 gBikeCollisions = 0; -EWRAM_DATA u32 gBikeCyclingTimer = 0; -EWRAM_DATA u8 gUnknown_0203AB5C = 0; -EWRAM_DATA u8 gUnknown_0203AB5D = 0; -EWRAM_DATA u8 gUnknown_0203AB5E = 0; -EWRAM_DATA u16 gUnknown_0203AB60 = 0; -EWRAM_DATA u16 gUnknown_0203AB62 = 0; -EWRAM_DATA struct ListMenuItem *gUnknown_0203AB64 = NULL; -EWRAM_DATA u16 gUnknown_0203AB68 = 0; -EWRAM_DATA u16 gUnknown_0203AB6A = 0; -EWRAM_DATA u8 gUnknown_0203AB6C = 0; -EWRAM_DATA u8 gUnknown_0203AB6D = 0; -EWRAM_DATA u8 gUnknown_0203AB6E = 0; -EWRAM_DATA u8 gUnknown_0203AB6F = 0; -EWRAM_DATA u32 gUnknown_0203AB70 = 0; +static EWRAM_DATA u32 gBikeCyclingTimer = 0; +static EWRAM_DATA u8 gUnknown_0203AB5C = 0; +static EWRAM_DATA u8 gUnknown_0203AB5D = 0; +static EWRAM_DATA u8 gUnknown_0203AB5E = 0; +static EWRAM_DATA u16 gUnknown_0203AB60 = 0; +static EWRAM_DATA u16 gUnknown_0203AB62 = 0; +static EWRAM_DATA struct ListMenuItem *gUnknown_0203AB64 = NULL; +static EWRAM_DATA u16 gUnknown_0203AB68 = 0; +static EWRAM_DATA u16 gUnknown_0203AB6A = 0; +static EWRAM_DATA u8 gUnknown_0203AB6C = 0; +static EWRAM_DATA u8 gUnknown_0203AB6D = 0; +static EWRAM_DATA u8 gUnknown_0203AB6E = 0; +static EWRAM_DATA u8 gUnknown_0203AB6F = 0; +static EWRAM_DATA u32 gUnknown_0203AB70 = 0; struct ListMenuTemplate gUnknown_030061D0; diff --git a/src/frontier_util.c b/src/frontier_util.c index bce7b926f..4dd8159cb 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -21,7 +21,7 @@ #include "apprentice.h" #include "pokedex.h" #include "recorded_battle.h" -#include "data2.h" +#include "data.h" #include "record_mixing.h" #include "strings.h" #include "alloc.h" diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 8eba90d96..fdf2020ff 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -32,7 +32,7 @@ #include "menu.h" #include "fldeff_misc.h" #include "trainer_pokemon_sprites.h" -#include "data2.h" +#include "data.h" #include "rom_81520A8.h" #include "constants/rgb.h" diff --git a/src/item_menu.c b/src/item_menu.c index 8edf6f279..c000b9563 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -8,7 +8,7 @@ #include "bg.h" #include "constants/items.h" #include "constants/songs.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "event_data.h" #include "event_object_movement.h" diff --git a/src/item_use.c b/src/item_use.c index 159ece398..8e28d48fd 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -7,7 +7,7 @@ #include "berry_powder.h" #include "bike.h" #include "coins.h" -#include "data2.h" +#include "data.h" #include "event_data.h" #include "event_object_movement.h" #include "fieldmap.h" diff --git a/src/match_call.c b/src/match_call.c index 641079ba9..35daacc3d 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -3,7 +3,7 @@ #include "battle.h" #include "battle_setup.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "event_data.h" #include "event_object_movement.h" #include "field_player_avatar.h" diff --git a/src/menu_specialized.c b/src/menu_specialized.c index b3f07fb46..3b73d3c06 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -2,7 +2,7 @@ #include "alloc.h" #include "battle_main.h" #include "contest_effect.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "gpu_regs.h" #include "graphics.h" diff --git a/src/move_relearner.c b/src/move_relearner.c index e148b9ace..0b0b4a5aa 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -3,7 +3,7 @@ #include "battle.h" #include "bg.h" #include "contest_effect.h" -#include "data2.h" +#include "data.h" #include "event_data.h" #include "field_screen_effect.h" #include "gpu_regs.h" diff --git a/src/naming_screen.c b/src/naming_screen.c index e43a259e7..ee68edbd0 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -21,7 +21,7 @@ #include "trig.h" #include "field_effect.h" #include "pokemon_icon.h" -#include "data2.h" +#include "data.h" #include "strings.h" #include "menu.h" #include "text_window.h" diff --git a/src/party_menu.c b/src/party_menu.c index 6233558ff..b1dd8b94a 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -10,7 +10,7 @@ #include "battle_pyramid_bag.h" #include "bg.h" #include "contest.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "easy_chat.h" #include "event_data.h" diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 59ba1b4dc..972ca4285 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -1,13 +1,14 @@ #include "global.h" -#include "battle.h" // to get rid of once gMonSpritesGfxPtr is put elsewhere +#include "alloc.h" +#include "battle.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "event_data.h" #include "gpu_regs.h" #include "graphics.h" +#include "item_menu.h" #include "main.h" -#include "alloc.h" #include "menu.h" #include "menu_helpers.h" #include "m4a.h" @@ -49,10 +50,8 @@ struct PokeblockFeedStruct u8 unused; }; -extern u16 gSpecialVar_ItemId; extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; extern const u16 gUnknown_0860F074[]; // this file's functions diff --git a/src/pokedex.c b/src/pokedex.c index cceb50ba1..8b18a0e73 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1,7 +1,7 @@ #include "global.h" #include "battle_main.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "event_data.h" #include "gpu_regs.h" diff --git a/src/pokemon.c b/src/pokemon.c index a75701cb0..76a850d5a 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -9,6 +9,7 @@ #include "battle_pyramid.h" #include "battle_setup.h" #include "battle_tower.h" +#include "data.h" #include "event_data.h" #include "evolution_scene.h" #include "field_specials.h" @@ -51,29 +52,6 @@ struct SpeciesItem u16 item; }; -extern const struct SpriteFrameImage gUnknown_082FF3A8[]; -extern const struct SpriteFrameImage gUnknown_082FF3C8[]; -extern const struct SpriteFrameImage gUnknown_082FF3E8[]; -extern const struct SpriteFrameImage gUnknown_082FF408[]; -extern const struct SpriteFrameImage gTrainerBackPicTable_Brendan[]; -extern const struct SpriteFrameImage gTrainerBackPicTable_May[]; -extern const struct SpriteFrameImage gTrainerBackPicTable_Red[]; -extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[]; -extern const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireBrendan[]; -extern const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireMay[]; -extern const struct SpriteFrameImage gTrainerBackPicTable_Wally[]; -extern const struct SpriteFrameImage gTrainerBackPicTable_Steven[]; -extern const union AffineAnimCmd *const gUnknown_082FF618[]; -extern const union AffineAnimCmd *const gUnknown_082FF694[]; -extern const union AnimCmd *gPlayerMonSpriteAnimsTable[]; -extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[]; -extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[]; -extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; -extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; -extern const struct CompressedSpritePalette gMonPaletteTable[]; -extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; -extern const u8 gTrainerClassNames[][13]; - // this file's functions static u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon); static union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType); @@ -3315,7 +3293,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de } // flash fire triggered - if ((gBattleResources->flags->flags[battlerIdAtk] & UNKNOWN_FLAG_FLASH_FIRE) && type == TYPE_FIRE) + if ((gBattleResources->flags->flags[battlerIdAtk] & RESOURCE_FLAG_FLASH_FIRE) && type == TYPE_FIRE) damage = (15 * damage) / 10; } @@ -3448,11 +3426,11 @@ void SetMultiuseSpriteTemplateToPokemon(u16 species, u8 battlerPosition) gMultiuseSpriteTemplate.paletteTag = species; if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) - gMultiuseSpriteTemplate.anims = gPlayerMonSpriteAnimsTable; - else if (species > 500) - gMultiuseSpriteTemplate.anims = gMonAnimationsSpriteAnimsPtrTable[species - 500]; + gMultiuseSpriteTemplate.anims = gUnknown_082FF70C; + else if (species > SPECIES_SHINY_TAG) + gMultiuseSpriteTemplate.anims = gMonFrontAnimsPtrTable[species - SPECIES_SHINY_TAG]; else - gMultiuseSpriteTemplate.anims = gMonAnimationsSpriteAnimsPtrTable[species]; + gMultiuseSpriteTemplate.anims = gMonFrontAnimsPtrTable[species]; } void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosition) @@ -6819,7 +6797,7 @@ static void sub_806F1FC(struct Unknown_806F160_Struct* structPtr) structPtr->frameImages[i * structPtr->field_0_0 + j].data = &structPtr->byteArrays[i][j * 0x800]; } structPtr->templates[i].images = &structPtr->frameImages[i * structPtr->field_0_0]; - structPtr->templates[i].anims = gPlayerMonSpriteAnimsTable; + structPtr->templates[i].anims = gUnknown_082FF70C; structPtr->templates[i].paletteTag = i; } } diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index 98d83d8ce..f63e1ccba 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -1,4 +1,5 @@ #include "global.h" +#include "data.h" #include "event_data.h" #include "pokedex.h" #include "pokemon.h" @@ -45,7 +46,6 @@ static const u8 sGiftRibbonsMonDataIds[] = extern const u8 gText_DecimalPoint[]; extern const u8 gText_Marco[]; -extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; #define CM_PER_INCH 2.54 diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index fb1be0698..148be7c5c 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1,7 +1,7 @@ #include "global.h" #include "alloc.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "dma3.h" #include "dynamic_placeholder_text_util.h" @@ -463,8 +463,6 @@ EWRAM_DATA static u8 sMovingMonOrigBoxId = 0; EWRAM_DATA static u8 sMovingMonOrigBoxPos = 0; EWRAM_DATA static bool8 sCanOnlyMove = 0; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; - // This file's functions. static void CreatePCMenu(u8 whichMenu, s16 *windowIdPtr); static void Cb2_EnterPSS(u8 boxOption); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 3a5b06d45..2ec088628 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -9,7 +9,7 @@ #include "bg.h" #include "contest.h" #include "contest_effect.h" -#include "data2.h" +#include "data.h" #include "daycare.h" #include "decompress.h" #include "dynamic_placeholder_text_util.h" @@ -164,7 +164,6 @@ static EWRAM_DATA struct PokemonSummaryScreenData EWRAM_DATA u8 gLastViewedMonIndex = 0; static EWRAM_DATA u8 sUnknown_0203CF21 = 0; ALIGNED(4) static EWRAM_DATA u8 sUnknownTaskId = 0; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; struct UnkStruct_61CC04 { diff --git a/src/pokenav_match_call.c b/src/pokenav_match_call.c index ce00401a9..1f621922d 100644 --- a/src/pokenav_match_call.c +++ b/src/pokenav_match_call.c @@ -1,13 +1,12 @@ #include "global.h" #include "battle_setup.h" +#include "data.h" #include "event_data.h" #include "string_util.h" #include "battle.h" #include "gym_leader_rematch.h" #include "match_call.h" -extern const u8 gTrainerClassNames[][13]; - // Static type declarations typedef struct MatchCallTextDataStruct { diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index dd177f884..b804d2591 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -15,9 +15,7 @@ #include "constants/trainers.h" #include "battle_interface.h" #include "battle_anim.h" -#include "data2.h" - -extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[]; +#include "data.h" // this file's functions static void CB2_ReshowBattleScreenAfterMenu(void); @@ -233,7 +231,7 @@ static void CreateBattlerSprite(u8 battler) StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], gBattleMonForms[battler]); if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies == SPECIES_CASTFORM) - gSprites[gBattlerSpriteIds[battler]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; + gSprites[gBattlerSpriteIds[battler]].anims = gMonFrontAnimsPtrTable[SPECIES_CASTFORM]; } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == B_POSITION_PLAYER_LEFT) { @@ -269,7 +267,7 @@ static void CreateBattlerSprite(u8 battler) StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], gBattleMonForms[battler]); if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies == SPECIES_CASTFORM) - gSprites[gBattlerSpriteIds[battler]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; + gSprites[gBattlerSpriteIds[battler]].anims = gMonFrontAnimsPtrTable[SPECIES_CASTFORM]; } gSprites[gBattlerSpriteIds[battler]].invisible = gBattleSpritesDataPtr->battlerData[battler].invisible; diff --git a/src/scanline_effect.c b/src/scanline_effect.c index a9ae9427b..0a4b0b8fd 100644 --- a/src/scanline_effect.c +++ b/src/scanline_effect.c @@ -1,6 +1,6 @@ #include "global.h" #include "battle.h" -#include "data2.h" +#include "data.h" #include "task.h" #include "trig.h" #include "scanline_effect.h" diff --git a/src/scrcmd.c b/src/scrcmd.c index 125a57c01..4dc494790 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -7,7 +7,7 @@ #include "contest.h" #include "contest_link_80F57C4.h" #include "contest_painting.h" -#include "data2.h" +#include "data.h" #include "decoration.h" #include "decoration_inventory.h" #include "event_data.h" diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index ece030395..2f32951ed 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -5,6 +5,7 @@ #include "contest.h" #include "contest_link_80F57C4.h" #include "contest_painting.h" +#include "data.h" #include "daycare.h" #include "decompress.h" #include "event_data.h" @@ -35,7 +36,6 @@ extern const u16 gEventObjectPalette8[]; extern const u16 gEventObjectPalette17[]; extern const u16 gEventObjectPalette33[]; extern const u16 gEventObjectPalette34[]; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; static const u8 gUnknown_0858D8EC[] = { 3, 4, 5, 14 }; diff --git a/src/shop.c b/src/shop.c index 32caafb64..ab7f31c1f 100755 --- a/src/shop.c +++ b/src/shop.c @@ -1,6 +1,6 @@ #include "global.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "decoration.h" #include "decoration_inventory.h" diff --git a/src/smokescreen.c b/src/smokescreen.c index d9780bbb6..61e011451 100644 --- a/src/smokescreen.c +++ b/src/smokescreen.c @@ -1,11 +1,15 @@ #include "global.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "sprite.h" #include "util.h" static void sub_8075370(struct Sprite *); +extern const struct CompressedSpriteSheet gUnknown_0831C620; +extern const struct CompressedSpritePalette gUnknown_0831C628; +extern const struct SpriteTemplate gUnknown_0831C688; + u8 sub_807521C(s16 x, s16 y, u8 a3) { u8 mainSpriteId; diff --git a/src/starter_choose.c b/src/starter_choose.c index c3d636175..c3957e403 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -1,6 +1,6 @@ #include "global.h" #include "bg.h" -#include "data2.h" +#include "data.h" #include "decompress.h" #include "event_data.h" #include "gpu_regs.h" diff --git a/src/trade.c b/src/trade.c index 80c74d2cd..353ba4ce3 100644 --- a/src/trade.c +++ b/src/trade.c @@ -4,7 +4,7 @@ #include "battle_interface.h" #include "bg.h" #include "cable_club.h" -#include "data2.h" +#include "data.h" #include "daycare.h" #include "decompress.h" #include "event_data.h" @@ -1384,10 +1384,6 @@ static const u8 gUnknown_08339090[][2] = {0, 0} }; -// external to this file -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -extern const struct MonCoords gMonFrontPicCoords[]; - static bool8 sub_8077170(const void *a0, u32 a1) { if (gUnknown_02022C2C == 29) diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index 8172f09e6..6824e8747 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -6,21 +6,10 @@ #include "palette.h" #include "decompress.h" #include "trainer_pokemon_sprites.h" -#include "data2.h" +#include "data.h" #include "pokemon.h" #include "constants/trainers.h" -extern const struct CompressedSpriteSheet gMonFrontPicTable[NUM_SPECIES]; -extern const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES]; -extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; -extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern const union AffineAnimCmd *const gUnknown_082FF618[]; -extern const union AffineAnimCmd *const gUnknown_082FF694[]; -extern const union AnimCmd *const gPlayerMonSpriteAnimsTable[]; -extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[NUM_SPECIES]; -extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; - // Static type declarations struct PicData @@ -149,7 +138,7 @@ static void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 pale static void AssignSpriteAnimsTable(bool8 isTrainer) { if (!isTrainer) - sCreatingSpriteTemplate.anims = gPlayerMonSpriteAnimsTable; + sCreatingSpriteTemplate.anims = gUnknown_082FF70C; else sCreatingSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[0]; } @@ -270,7 +259,7 @@ u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s1 images[j].size = 0x800; } sCreatingSpriteTemplate.tileTag = 0xFFFF; - sCreatingSpriteTemplate.anims = gMonAnimationsSpriteAnimsPtrTable[species]; + sCreatingSpriteTemplate.anims = gMonFrontAnimsPtrTable[species]; sCreatingSpriteTemplate.images = images; if (flags2 == 0x01) { diff --git a/src/tv.c b/src/tv.c index 17243a456..7b5252add 100644 --- a/src/tv.c +++ b/src/tv.c @@ -37,7 +37,7 @@ #include "decoration.h" #include "secret_base.h" #include "tv.h" -#include "data2.h" +#include "data.h" #include "constants/layouts.h" #include "constants/metatile_behaviors.h" diff --git a/src/union_room.c b/src/union_room.c index ea3658903..687efbf5e 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -32,7 +32,7 @@ #include "palette.h" #include "decompress.h" #include "start_menu.h" -#include "data2.h" +#include "data.h" #include "field_screen_effect.h" #include "script_pokemon_util_80F87D8.h" #include "international_string_util.h" diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 4eaf60be4..f28b651cc 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -21,6 +21,8 @@ #include "menu.h" #include "gpu_regs.h" #include "graphics.h" +#include "pokemon_summary_screen.h" +#include "item_menu.h" struct UsePokeblockSubStruct { @@ -83,8 +85,6 @@ struct UsePokeblockStruct /*0x7FD0*/ struct UsePokeblockSubStruct info; }; -extern u16 gKeyRepeatStartDelay; - extern void sub_81D21DC(u8); // this file's functions @@ -133,7 +133,6 @@ void sub_8168168(struct Sprite *sprite); extern const struct BgTemplate gUnknown_085DFCCC[4]; extern const struct WindowTemplate gUnknown_085DFCDC[]; -extern u16 gSpecialVar_ItemId; extern const struct WindowTemplate sUsePokeblockYesNoWinTemplate[]; extern const u8* sContestStatNames[]; extern const u32 gUnknown_085DFCB0[]; @@ -152,8 +151,6 @@ extern const u8 gUnknown_085DFCC9[]; extern const struct SpritePalette gUnknown_085DFDB8; extern const struct SpriteTemplate gUnknown_085DFDA0; -extern const u8 *const gNatureNamePointers[]; - // ram variables EWRAM_DATA struct UsePokeblockSubStruct *gUnknown_0203BC90 = NULL; EWRAM_DATA void (*gUnknown_0203BC94)(void) = NULL; -- cgit v1.2.3 From 8751fafad148d1c2a6790b6b4fcba9be39f3c1e3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 5 Apr 2019 00:05:51 +0200 Subject: Make it compile --- src/battle_bg.c | 1 + src/battle_script_commands.c | 1 + src/battle_setup.c | 1 + src/battle_util2.c | 4 ++-- 4 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/battle_bg.c b/src/battle_bg.c index 814e8dad9..81e8acdf9 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -5,6 +5,7 @@ #include "battle_message.h" #include "battle_setup.h" #include "bg.h" +#include "data.h" #include "decompress.h" #include "gpu_regs.h" #include "graphics.h" diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index fc396b5e3..c002eefbc 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -50,6 +50,7 @@ #include "pokemon_summary_screen.h" #include "pokenav.h" #include "menu_specialized.h" +#include "data.h" extern struct MusicPlayerInfo gMPlayInfo_BGM; diff --git a/src/battle_setup.c b/src/battle_setup.c index 7395c175b..712098773 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -45,6 +45,7 @@ #include "constants/map_types.h" #include "constants/battle_frontier.h" #include "field_screen_effect.h" +#include "data.h" enum { diff --git a/src/battle_util2.c b/src/battle_util2.c index 5ef969fd5..f840cd58b 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -25,7 +25,7 @@ void AllocateBattleResources(void) gBattleResources->flags = AllocZeroed(sizeof(*gBattleResources->flags)); gBattleResources->battleScriptsStack = AllocZeroed(sizeof(*gBattleResources->battleScriptsStack)); gBattleResources->battleCallbackStack = AllocZeroed(sizeof(*gBattleResources->battleCallbackStack)); - gBattleResources->statsBeforeLvlUp = AllocZeroed(sizeof(*gBattleResources->statsBeforeLvlUp)); + gBattleResources->beforeLvlUp = AllocZeroed(sizeof(*gBattleResources->beforeLvlUp)); gBattleResources->ai = AllocZeroed(sizeof(*gBattleResources->ai)); gBattleResources->battleHistory = AllocZeroed(sizeof(*gBattleResources->battleHistory)); gBattleResources->AI_ScriptsStack = AllocZeroed(sizeof(*gBattleResources->AI_ScriptsStack)); @@ -56,7 +56,7 @@ void FreeBattleResources(void) FREE_AND_SET_NULL(gBattleResources->flags); FREE_AND_SET_NULL(gBattleResources->battleScriptsStack); FREE_AND_SET_NULL(gBattleResources->battleCallbackStack); - FREE_AND_SET_NULL(gBattleResources->statsBeforeLvlUp); + FREE_AND_SET_NULL(gBattleResources->beforeLvlUp); FREE_AND_SET_NULL(gBattleResources->ai); FREE_AND_SET_NULL(gBattleResources->battleHistory); FREE_AND_SET_NULL(gBattleResources->AI_ScriptsStack); -- cgit v1.2.3 From 70569e7ebc428bebe42709c18f13a9df5399045e Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 5 Apr 2019 00:07:39 +0200 Subject: Use shiny species tag --- src/pokemon.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/pokemon.c b/src/pokemon.c index 76a850d5a..64b02021b 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -3413,7 +3413,7 @@ u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality) return MON_MALE; } -void SetMultiuseSpriteTemplateToPokemon(u16 species, u8 battlerPosition) +void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition) { if (gMonSpritesGfxPtr != NULL) gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition]; @@ -3424,13 +3424,13 @@ void SetMultiuseSpriteTemplateToPokemon(u16 species, u8 battlerPosition) else gMultiuseSpriteTemplate = gUnknown_08329D98[battlerPosition]; - gMultiuseSpriteTemplate.paletteTag = species; + gMultiuseSpriteTemplate.paletteTag = speciesTag; if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) gMultiuseSpriteTemplate.anims = gUnknown_082FF70C; - else if (species > SPECIES_SHINY_TAG) - gMultiuseSpriteTemplate.anims = gMonFrontAnimsPtrTable[species - SPECIES_SHINY_TAG]; + else if (speciesTag > SPECIES_SHINY_TAG) + gMultiuseSpriteTemplate.anims = gMonFrontAnimsPtrTable[speciesTag - SPECIES_SHINY_TAG]; else - gMultiuseSpriteTemplate.anims = gMonFrontAnimsPtrTable[species]; + gMultiuseSpriteTemplate.anims = gMonFrontAnimsPtrTable[speciesTag]; } void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosition) -- cgit v1.2.3 From 9a11764b5208a71d346f14eb61703588bd210116 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 5 Apr 2019 09:22:56 +0200 Subject: Fix oam in menu specialised --- src/menu_specialized.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 3b73d3c06..34dd1fe2b 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -1476,18 +1476,13 @@ static void sub_81D32F4(struct Sprite *sprite) static const struct OamData sOamData_8625AD0 = { .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, - .shape = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), .x = 0, - .matrixNum = 0, - .size = 1, - .tileNum = 0, + .size = SPRITE_SIZE(16x16), .priority = 0, - .paletteNum = 0, - .affineParam = 0 }; static const union AnimCmd sSpriteAnim_8625AD8[] = -- cgit v1.2.3 From 033580da9623d6519c35efcb3594552d3389772d Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 5 Apr 2019 16:11:24 -0500 Subject: Document secret base --- src/data/decoration/header.h | 90 +- src/decoration.c | 94 +-- src/event_object_movement.c | 71 +- src/field_control_avatar.c | 20 +- src/field_effect.c | 2 +- src/field_player_avatar.c | 4 +- src/fieldmap.c | 6 +- src/fldeff_misc.c | 20 +- src/item.c | 2 +- src/metatile_behavior.c | 12 +- src/new_game.c | 2 +- src/overworld.c | 10 +- src/pokemon.c | 2 +- src/record_mixing.c | 10 +- src/scrcmd.c | 8 +- src/secret_base.c | 1780 +++++++++++++++++++--------------------- src/strings.c | 2 +- src/tv.c | 14 +- src/union_room_player_avatar.c | 2 +- 19 files changed, 1020 insertions(+), 1131 deletions(-) (limited to 'src') diff --git a/src/data/decoration/header.h b/src/data/decoration/header.h index a909bd9fd..55458c7a3 100644 --- a/src/data/decoration/header.h +++ b/src/data/decoration/header.h @@ -686,7 +686,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_PICHU_DOLL, _("PICHU DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -695,7 +695,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_PIKACHU_DOLL, _("PIKACHU DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -704,7 +704,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_MARILL_DOLL, _("MARILL DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -713,7 +713,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_TOGEPI_DOLL, _("TOGEPI DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -722,7 +722,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_CYNDAQUIL_DOLL, _("CYNDAQUIL DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -731,7 +731,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_CHIKORITA_DOLL, _("CHIKORITA DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -740,7 +740,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_TOTODILE_DOLL, _("TOTODILE DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -749,7 +749,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_JIGGLYPUFF_DOLL, _("JIGGLYPUFF DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -758,7 +758,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_MEOWTH_DOLL, _("MEOWTH DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -767,7 +767,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_CLEFAIRY_DOLL, _("CLEFAIRY DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -776,7 +776,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_DITTO_DOLL, _("DITTO DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -785,7 +785,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_SMOOCHUM_DOLL, _("SMOOCHUM DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -794,7 +794,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_TREECKO_DOLL, _("TREECKO DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -803,7 +803,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_TORCHIC_DOLL, _("TORCHIC DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -812,7 +812,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_MUDKIP_DOLL, _("MUDKIP DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -821,7 +821,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_DUSKULL_DOLL, _("DUSKULL DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -830,7 +830,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_WYNAUT_DOLL, _("WYNAUT DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -839,7 +839,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_BALTOY_DOLL, _("BALTOY DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -848,7 +848,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_KECLEON_DOLL, _("KECLEON DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -857,7 +857,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_AZURILL_DOLL, _("AZURILL DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -866,7 +866,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_SKITTY_DOLL, _("SKITTY DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -875,7 +875,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_SWABLU_DOLL, _("SWABLU DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -884,7 +884,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_GULPIN_DOLL, _("GULPIN DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -893,7 +893,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_LOTAD_DOLL, _("LOTAD DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -902,7 +902,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_SEEDOT_DOLL, _("SEEDOT DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_DOLL, 3000, @@ -911,7 +911,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_PIKA_CUSHION, _("PIKA CUSHION"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, @@ -920,7 +920,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_ROUND_CUSHION, _("ROUND CUSHION"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, @@ -929,7 +929,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_KISS_CUSHION, _("KISS CUSHION"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, @@ -938,7 +938,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_ZIGZAG_CUSHION, _("ZIGZAG CUSHION"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, @@ -947,7 +947,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_SPIN_CUSHION, _("SPIN CUSHION"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, @@ -956,7 +956,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_DIAMOND_CUSHION, _("DIAMOND CUSHION"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, @@ -965,7 +965,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_BALL_CUSHION, _("BALL CUSHION"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, @@ -974,7 +974,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_GRASS_CUSHION, _("GRASS CUSHION"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, @@ -983,7 +983,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_FIRE_CUSHION, _("FIRE CUSHION"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, @@ -992,7 +992,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_WATER_CUSHION, _("WATER CUSHION"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x1, DECORCAT_CUSHION, 2000, @@ -1001,7 +1001,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_SNORLAX_DOLL, _("SNORLAX DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, @@ -1010,7 +1010,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_RHYDON_DOLL, _("RHYDON DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, @@ -1019,7 +1019,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_LAPRAS_DOLL, _("LAPRAS DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, @@ -1028,7 +1028,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_VENUSAUR_DOLL, _("VENUSAUR DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, @@ -1037,7 +1037,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_CHARIZARD_DOLL, _("CHARIZARD DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, @@ -1046,7 +1046,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_BLASTOISE_DOLL, _("BLASTOISE DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, @@ -1055,7 +1055,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_WAILMER_DOLL, _("WAILMER DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, @@ -1064,7 +1064,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_REGIROCK_DOLL, _("REGIROCK DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, @@ -1073,7 +1073,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_REGICE_DOLL, _("REGICE DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, @@ -1082,7 +1082,7 @@ const struct Decoration gDecorations[] = { }, { DECOR_REGISTEEL_DOLL, _("REGISTEEL DOLL"), - DECORPERM_SOLID_MAT, + DECORPERM_SPRITE, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, diff --git a/src/decoration.c b/src/decoration.c index 4baa6d4c8..201fa74b1 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -444,7 +444,7 @@ void sub_8126968(void) if (gUnknown_0203A17C.isPlayerRoom == FALSE) { gUnknown_0203A17C.items = gSaveBlock1Ptr->secretBases[0].decorations; - gUnknown_0203A17C.pos = gSaveBlock1Ptr->secretBases[0].decorationPos; + gUnknown_0203A17C.pos = gSaveBlock1Ptr->secretBases[0].decorationPositions; } if (gUnknown_0203A17C.isPlayerRoom == TRUE) { @@ -507,7 +507,7 @@ void sub_8126AD8(u8 taskId) { sub_8126ABC(); gUnknown_0203A17C.items = gSaveBlock1Ptr->secretBases[0].decorations; - gUnknown_0203A17C.pos = gSaveBlock1Ptr->secretBases[0].decorationPos; + gUnknown_0203A17C.pos = gSaveBlock1Ptr->secretBases[0].decorationPositions; gUnknown_0203A17C.size = sizeof(gSaveBlock1Ptr->secretBases[0].decorations); gUnknown_0203A17C.isPlayerRoom = FALSE; gTasks[taskId].func = sub_8126B80; @@ -1165,52 +1165,40 @@ u16 sub_8127B54(u8 decor, u8 a1) void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) { - u16 i; - u16 j; + u16 i, j; + s16 x, y; u16 behavior; u16 impassableFlag; - u16 v0; - u16 v1; - s16 decLeft; - s16 decBottom; + u16 posterSide; + u16 elevation; - for (i = 0; i < decHeight; i ++) + for (j = 0; j < decHeight; j++) { - decBottom = mapY - decHeight + 1 + i; - for (j = 0; j < decWidth; j ++) + y = mapY - decHeight + 1 + j; + for (i = 0; i < decWidth; i++) { - decLeft = mapX + j; - behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decor].tiles[i * decWidth + j]); + x = mapX + i; + behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decor].tiles[j * decWidth + i]); if (MetatileBehavior_IsSecretBaseImpassable(behavior) == TRUE || (gDecorations[decor].permission != DECORPERM_PASS_FLOOR && (behavior >> 12))) - { impassableFlag = METATILE_COLLISION_MASK; - } else - { - impassableFlag = 0x000; - } - if (gDecorations[decor].permission != DECORPERM_NA_WALL && MetatileBehavior_IsSecretBaseNorthWall(MapGridGetMetatileBehaviorAt(decLeft, decBottom)) == TRUE) - { - v0 = 1; - } + impassableFlag = 0; + + if (gDecorations[decor].permission != DECORPERM_NA_WALL && MetatileBehavior_IsSecretBaseNorthWall(MapGridGetMetatileBehaviorAt(x, y)) == TRUE) + posterSide = 1; else - { - v0 = 0; - } - v1 = sub_8127B54(gDecorations[decor].id, i * decWidth + j); - if (v1 != 0xFFFF) - { - MapGridSetMetatileEntryAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | impassableFlag | v1); - } + posterSide = 0; + + elevation = sub_8127B54(gDecorations[decor].id, j * decWidth + i); + if (elevation != 0xFFFF) + MapGridSetMetatileEntryAt(x, y, (gDecorations[decor].tiles[j * decWidth + i] + (0x200 | posterSide)) | impassableFlag | elevation); else - { - MapGridSetMetatileIdAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | impassableFlag); - } + MapGridSetMetatileIdAt(x, y, (gDecorations[decor].tiles[j * decWidth + i] + (0x200 | posterSide)) | impassableFlag); } } } -void sub_8127D38(u16 mapX, u16 mapY, u16 decor) +void ShowDecorationOnMap(u16 mapX, u16 mapY, u16 decor) { switch (gDecorations[decor].shape) { @@ -1264,13 +1252,15 @@ void sub_8127E18(void) break; } } - VarSet(UNKNOWN_VAR_OFFSET_3F20 + gMapHeader.events->eventObjects[j].graphicsId, sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0]); + VarSet( + VAR_OBJ_GFX_ID_0 + (gMapHeader.events->eventObjects[j].graphicsId - EVENT_OBJ_GFX_VAR_0), + sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0]); gSpecialVar_0x8005 = gMapHeader.events->eventObjects[j].localId; gSpecialVar_0x8006 = sCurDecorMapX; gSpecialVar_0x8007 = sCurDecorMapY; - show_sprite(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); - sub_808EBA8(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, gSpecialVar_0x8006, gSpecialVar_0x8007); - sub_808F254(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + TrySpawnEventObject(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + TryMoveEventObjectToMapCoords(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, gSpecialVar_0x8006, gSpecialVar_0x8007); + TryOverrideEventObjectTemplateCoords(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); break; } } @@ -1591,7 +1581,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) } } break; - case DECORPERM_SOLID_MAT: + case DECORPERM_SPRITE: curY = gTasks[taskId].data[1]; for (j=0; jshape == DECORSHAPE_1x2) { - if (!MetatileBehavior_IsLargeMatCenter(behaviorAt)) + if (!MetatileBehavior_HoldsLargeDecoration(behaviorAt)) { return FALSE; } } - else if (!MetatileBehavior_IsSecretBaseLargeMatEdge(behaviorAt)) + else if (!MetatileBehavior_HoldsSmallDecoration(behaviorAt)) { - if (!MetatileBehavior_IsLargeMatCenter(behaviorAt)) + if (!MetatileBehavior_HoldsLargeDecoration(behaviorAt)) { return FALSE; } @@ -1646,9 +1636,9 @@ void sub_81289F0(u8 taskId) { ClearDialogWindowAndFrame(0, 0); sub_8128AAC(taskId); - if (gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].permission != DECORPERM_SOLID_MAT) + if (gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].permission != DECORPERM_SPRITE) { - sub_8127D38(gTasks[taskId].data[0], gTasks[taskId].data[1], gCurDecorInventoryItems[gCurDecorationIndex]); + ShowDecorationOnMap(gTasks[taskId].data[0], gTasks[taskId].data[1], gCurDecorInventoryItems[gCurDecorationIndex]); } else { @@ -1750,7 +1740,7 @@ void sub_8128C64(u8 taskId) switch (data[2]) { case 0: - sub_80E9578(); + HideSecretBaseDecorationSprites(); data[2] ++; break; case 1: @@ -2043,7 +2033,7 @@ u8 gpu_pal_decompress_alloc_tag_and_upload(struct PlaceDecorationGraphicsDataBuf { sub_8129048(data); data->decoration = &gDecorations[decor]; - if (data->decoration->permission == DECORPERM_SOLID_MAT) + if (data->decoration->permission == DECORPERM_SPRITE) { return AddPseudoEventObject(data->decoration->tiles[0], SpriteCallbackDummy, 0, 0, 1); } @@ -2104,7 +2094,7 @@ u8 AddDecorationIconObjectFromEventObject(u16 tilesTag, u16 paletteTag, u8 decor sub_8129048(&sPlaceDecorationGraphicsDataBuffer); sPlaceDecorationGraphicsDataBuffer.decoration = &gDecorations[decor]; - if (sPlaceDecorationGraphicsDataBuffer.decoration->permission != DECORPERM_SOLID_MAT) + if (sPlaceDecorationGraphicsDataBuffer.decoration->permission != DECORPERM_SPRITE) { sub_81291E8(&sPlaceDecorationGraphicsDataBuffer); SetDecorSelectionBoxOamAttributes(sPlaceDecorationGraphicsDataBuffer.decoration->shape); @@ -2192,7 +2182,7 @@ void sub_8129708(void) { gSpecialVar_Result = 1; } - else if (gDecorations[gUnknown_0203A17C.items[sDecorRearrangementDataBuffer[gSpecialVar_0x8004].idx]].permission == DECORPERM_SOLID_MAT) + else if (gDecorations[gUnknown_0203A17C.items[sDecorRearrangementDataBuffer[gSpecialVar_0x8004].idx]].permission == DECORPERM_SPRITE) { gSpecialVar_0x8005 = sDecorRearrangementDataBuffer[gSpecialVar_0x8004].flagId; sub_81296EC(sDecorRearrangementDataBuffer[gSpecialVar_0x8004].idx); @@ -2235,7 +2225,7 @@ void sub_81297F8(void) perm = gDecorations[gUnknown_0203A17C.items[sDecorRearrangementDataBuffer[i].idx]].permission; posX = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[i].idx] >> 4; posY = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[i].idx] & 0x0F; - if (perm != DECORPERM_SOLID_MAT) + if (perm != DECORPERM_SPRITE) { for (y = 0; y < sDecorRearrangementDataBuffer[i].height; y ++) { @@ -2522,7 +2512,7 @@ bool8 sub_8129FC8(u8 taskId) { if (gUnknown_0203A17C.items[i] != 0) { - if (gDecorations[gUnknown_0203A17C.items[i]].permission == DECORPERM_SOLID_MAT) + if (gDecorations[gUnknown_0203A17C.items[i]].permission == DECORPERM_SPRITE) { sub_8129D8C(gUnknown_0203A17C.items[i], sDecorRearrangementDataBuffer); if (sub_8129E74(taskId, i, sDecorRearrangementDataBuffer) == TRUE) @@ -2550,7 +2540,7 @@ void sub_812A040(u8 left, u8 top, u8 right, u8 bottom) decorIdx = gUnknown_0203A17C.items[i]; xOff = gUnknown_0203A17C.pos[i] >> 4; yOff = gUnknown_0203A17C.pos[i] & 0x0F; - if (decorIdx != 0 && gDecorations[decorIdx].permission == DECORPERM_SOLID_MAT && left <= xOff && top <= yOff && right >= xOff && bottom >= yOff) + if (decorIdx != 0 && gDecorations[decorIdx].permission == DECORPERM_SPRITE && left <= xOff && top <= yOff && right >= xOff && bottom >= yOff) { sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx = i; sub_8129F20(); @@ -2656,7 +2646,7 @@ void sub_812A2C4(u8 taskId) switch (data[2]) { case 0: - sub_80E9578(); + HideSecretBaseDecorationSprites(); data[2] ++; break; case 1: diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 45b721f56..3e5362de4 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1534,10 +1534,10 @@ static u8 TrySetupEventObjectSprite(struct EventObjectTemplate *eventObjectTempl paletteSlot -= 16; sub_808EAB0(graphicsInfo->paletteTag1, paletteSlot); } + if (eventObject->movementType == MOVEMENT_TYPE_INVISIBLE) - { eventObject->invisible = TRUE; - } + *(u16 *)&spriteTemplate->paletteTag = 0xFFFF; spriteId = CreateSprite(spriteTemplate, 0, 0, 0); if (spriteId == MAX_SPRITES) @@ -1545,6 +1545,7 @@ static u8 TrySetupEventObjectSprite(struct EventObjectTemplate *eventObjectTempl gEventObjects[eventObjectId].active = FALSE; return EVENT_OBJECTS_COUNT; } + sprite = &gSprites[spriteId]; sub_8092FF0(eventObject->currentCoords.x + cameraX, eventObject->currentCoords.y + cameraY, &sprite->pos1.x, &sprite->pos1.y); sprite->centerToCornerVecX = -(graphicsInfo->width >> 1); @@ -1557,15 +1558,14 @@ static u8 TrySetupEventObjectSprite(struct EventObjectTemplate *eventObjectTempl eventObject->spriteId = spriteId; eventObject->inanimate = graphicsInfo->inanimate; if (!eventObject->inanimate) - { StartSpriteAnim(sprite, GetFaceDirectionAnimNum(eventObject->facingDirection)); - } + SetObjectSubpriorityByZCoord(eventObject->previousElevation, sprite, 1); UpdateEventObjectVisibility(eventObject, sprite); return eventObjectId; } -static u8 TrySpawnEventObject(struct EventObjectTemplate *eventObjectTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY) +static u8 TrySpawnEventObjectTemplate(struct EventObjectTemplate *eventObjectTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY) { u8 eventObjectId; struct SpriteTemplate spriteTemplate; @@ -1579,14 +1579,12 @@ static u8 TrySpawnEventObject(struct EventObjectTemplate *eventObjectTemplate, u spriteTemplate.images = &spriteFrameImage; eventObjectId = TrySetupEventObjectSprite(eventObjectTemplate, &spriteTemplate, mapNum, mapGroup, cameraX, cameraY); if (eventObjectId == EVENT_OBJECTS_COUNT) - { return EVENT_OBJECTS_COUNT; - } + gSprites[gEventObjects[eventObjectId].spriteId].images = graphicsInfo->images; - if (subspriteTables != NULL) - { + if (subspriteTables) SetSubspriteTables(&gSprites[gEventObjects[eventObjectId].spriteId], subspriteTables); - } + return eventObjectId; } @@ -1596,7 +1594,7 @@ u8 SpawnSpecialEventObject(struct EventObjectTemplate *eventObjectTemplate) s16 cameraY; GetEventObjectMovingCameraOffset(&cameraX, &cameraY); - return TrySpawnEventObject(eventObjectTemplate, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); + return TrySpawnEventObjectTemplate(eventObjectTemplate, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); } u8 SpawnSpecialEventObjectParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z) @@ -1619,19 +1617,17 @@ u8 SpawnSpecialEventObjectParameterized(u8 graphicsId, u8 movementBehavior, u8 l return SpawnSpecialEventObject(&eventObjectTemplate); } -u8 show_sprite(u8 localId, u8 mapNum, u8 mapGroup) +u8 TrySpawnEventObject(u8 localId, u8 mapNum, u8 mapGroup) { struct EventObjectTemplate *eventObjectTemplate; - s16 cameraX; - s16 cameraY; + s16 cameraX, cameraY; eventObjectTemplate = GetEventObjectTemplateByLocalIdAndMap(localId, mapNum, mapGroup); - if (eventObjectTemplate == NULL) - { + if (!eventObjectTemplate) return EVENT_OBJECTS_COUNT; - } + GetEventObjectMovingCameraOffset(&cameraX, &cameraY); - return TrySpawnEventObject(eventObjectTemplate, mapNum, mapGroup, cameraX, cameraY); + return TrySpawnEventObjectTemplate(eventObjectTemplate, mapNum, mapGroup, cameraX, cameraY); } static void MakeObjectTemplateFromEventObjectGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) @@ -1765,7 +1761,7 @@ void TrySpawnEventObjects(s16 cameraX, s16 cameraY) if (top <= npcY && bottom >= npcY && left <= npcX && right >= npcX && !FlagGet(template->flagId)) - TrySpawnEventObject(template, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); + TrySpawnEventObjectTemplate(template, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); } } } @@ -2245,7 +2241,7 @@ static void SetEventObjectCoords(struct EventObject *eventObject, s16 x, s16 y) eventObject->currentCoords.y = y; } -void sub_808EB08(struct EventObject *eventObject, s16 x, s16 y) +void MoveEventObjectToMapCoords(struct EventObject *eventObject, s16 x, s16 y) { struct Sprite *sprite; const struct EventObjectGraphicsInfo *graphicsInfo; @@ -2260,20 +2256,17 @@ void sub_808EB08(struct EventObject *eventObject, s16 x, s16 y) sprite->pos1.y += 16 + sprite->centerToCornerVecY; sub_808E38C(eventObject); if (eventObject->trackedByCamera) - { CameraObjectReset1(); - } } -void sub_808EBA8(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) +void TryMoveEventObjectToMapCoords(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) { u8 eventObjectId; - if (!TryGetEventObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &eventObjectId)) { x += 7; y += 7; - sub_808EB08(&gEventObjects[eventObjectId], x, y); + MoveEventObjectToMapCoords(&gEventObjects[eventObjectId], x, y); } } @@ -2604,15 +2597,13 @@ void OverrideTemplateCoordsForEventObject(const struct EventObject *eventObject) } } -void OverrideMovementTypeForEventObject(const struct EventObject *eventObject, const u8 *script) +static void OverrideEventObjectTemplateScript(const struct EventObject *eventObject, const u8 *script) { struct EventObjectTemplate *eventObjectTemplate; eventObjectTemplate = GetBaseTemplateForEventObject(eventObject); - if (eventObjectTemplate != NULL) - { + if (eventObjectTemplate) eventObjectTemplate->script = script; - } } void TryOverrideTemplateCoordsForEventObject(const struct EventObject *eventObject, u8 movementType) @@ -2626,30 +2617,26 @@ void TryOverrideTemplateCoordsForEventObject(const struct EventObject *eventObje } } -void sub_808F254(u8 localId, u8 mapNum, u8 mapGroup) +void TryOverrideEventObjectTemplateCoords(u8 localId, u8 mapNum, u8 mapGroup) { u8 eventObjectId; - if (!TryGetEventObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &eventObjectId)) - { OverrideTemplateCoordsForEventObject(&gEventObjects[eventObjectId]); - } } -void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat) +void OverrideSecretBaseDecorationSpriteScript(u8 localId, u8 mapNum, u8 mapGroup, u8 decorationCategory) { u8 eventObjectId; - if (!TryGetEventObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &eventObjectId)) { - switch (decorCat) + switch (decorationCategory) { - case DECORCAT_DOLL: - OverrideMovementTypeForEventObject(&gEventObjects[eventObjectId], EventScript_SecretPower1); - break; - case DECORCAT_CUSHION: - OverrideMovementTypeForEventObject(&gEventObjects[eventObjectId], EventScript_SecretPower2); - break; + case DECORCAT_DOLL: + OverrideEventObjectTemplateScript(&gEventObjects[eventObjectId], SecretBase_EventScript_DollInteract); + break; + case DECORCAT_CUSHION: + OverrideEventObjectTemplateScript(&gEventObjects[eventObjectId], SecretBase_EventScript_CushionInteract); + break; } } } diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 5b685173e..455c38deb 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -16,6 +16,7 @@ #include "fldeff_misc.h" #include "item_menu.h" #include "link.h" +#include "match_call.h" #include "metatile_behavior.h" #include "overworld.h" #include "pokemon.h" @@ -32,7 +33,6 @@ #include "constants/map_types.h" #include "constants/maps.h" #include "constants/songs.h" -#include "match_call.h" static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0; static EWRAM_DATA u16 sPreviousPlayerMetatileBehavior = 0; @@ -227,8 +227,8 @@ static bool8 TryStartInteractionScript(struct MapPosition *position, u16 metatil && script != EventScript_PlayerPCFemale && script != EventScript_SecretBasePC && script != EventScript_RecordMixingSecretBasePC - && script != EventScript_SecretPower1 - && script != EventScript_SecretPower2 + && script != SecretBase_EventScript_DollInteract + && script != SecretBase_EventScript_CushionInteract && script != EventScript_PC) PlaySE(SE_SELECT); @@ -354,7 +354,7 @@ static const u8 *GetInteractedBackgroundEventScript(struct MapPosition *position if (direction == DIR_NORTH) { gSpecialVar_0x8004 = bgEvent->bgUnion.secretBaseId; - if (sub_80E9680()) + if (TrySetCurSecretBase()) return EventScript_2759F1; } return NULL; @@ -421,23 +421,23 @@ static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 me return EventScript_SecretBaseShieldOrToyTV; if (MetatileBehavior_IsMB_C6(metatileBehavior) == TRUE) { - sub_80EB56C(); + SetSecretBaseSecretsTvFlags_MiscFurnature(); return NULL; } - if (MetatileBehavior_IsLargeMatCenter(metatileBehavior) == TRUE) + if (MetatileBehavior_HoldsLargeDecoration(metatileBehavior) == TRUE) { - sub_80EB9E0(); + SetSecretBaseSecretsTvFlags_LargeDecorationSpot(); return NULL; } - if (MetatileBehavior_IsSecretBaseLargeMatEdge(metatileBehavior) == TRUE) + if (MetatileBehavior_HoldsSmallDecoration(metatileBehavior) == TRUE) { - sub_80EBB28(); + SetSecretBaseSecretsTvFlags_SmallDecorationSpot(); return NULL; } } else if (MetatileBehavior_IsSecretBasePoster(metatileBehavior) == TRUE) { - sub_80EB498(); + SetSecretBaseSecretsTvFlags_Poster(); return NULL; } diff --git a/src/field_effect.c b/src/field_effect.c index 6fdf996f2..22bf44f28 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -3485,7 +3485,7 @@ static void sub_80B9978(struct Task *task) eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; sprite = &gSprites[eventObject->spriteId]; eventObject->inanimate = 0; - sub_808EB08(eventObject, eventObject->currentCoords.x, eventObject->currentCoords.y); + MoveEventObjectToMapCoords(eventObject, eventObject->currentCoords.x, eventObject->currentCoords.y); sprite->pos2.x = 0; sprite->pos2.y = 0; sprite->coordOffsetEnabled = 1; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index a070fe0e1..ab2667c8c 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1188,9 +1188,9 @@ u8 PlayerGetZCoord(void) return gEventObjects[gPlayerAvatar.eventObjectId].previousElevation; } -void sub_808BC90(s16 a, s16 b) +void sub_808BC90(s16 x, s16 y) { - sub_808EB08(&gEventObjects[gPlayerAvatar.eventObjectId], a, b); + MoveEventObjectToMapCoords(&gEventObjects[gPlayerAvatar.eventObjectId], x, y); } u8 TestPlayerAvatarFlags(u8 a) diff --git a/src/fieldmap.c b/src/fieldmap.c index a96b71c0f..b2b80a2df 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -52,15 +52,15 @@ struct MapHeader const *const mapconnection_get_mapheader(struct MapConnection * void InitMap(void) { InitMapLayoutData(&gMapHeader); - sub_80E8EE0(gMapHeader.events); + SetOccupiedSecretBaseEntranceMetatiles(gMapHeader.events); RunOnLoadMapScript(); } void InitMapFromSavedGame(void) { InitMapLayoutData(&gMapHeader); - sub_80E9238(0); - sub_80E8EE0(gMapHeader.events); + InitSecretBaseAppearance(FALSE); + SetOccupiedSecretBaseEntranceMetatiles(gMapHeader.events); LoadSavedMapView(); RunOnLoadMapScript(); UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height); diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index efde43b76..39ed30260 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -488,8 +488,8 @@ static void sub_80F9DFC(u8 taskId) static void SetCurrentSecretBase(void) { - sub_80E9608(&gPlayerFacingPosition, gMapHeader.events); - sub_80E8B6C(); + SetCurSecretBaseIdFromPosition(&gPlayerFacingPosition, gMapHeader.events); + TrySetCurSecretBaseIndex(); } static void AdjustSecretPowerSpritePixelOffsets(void) @@ -544,7 +544,7 @@ bool8 SetUpFieldMove_SecretPower(void) { u8 mb; - sub_80E8BC8(); + CheckPlayerHasSecretBase(); if (gSpecialVar_Result == 1 || GetPlayerFacingDirection() != DIR_NORTH) return FALSE; @@ -623,10 +623,8 @@ static void CaveEntranceSpriteCallback2(struct Sprite *sprite) { if (sprite->data[0] < 40) { - sprite->data[0]++; - - if (sprite->data[0] == 20) - sub_80E8D4C(); + if (++sprite->data[0] == 20) + ToggleSecretBaseEntranceMetatile(); } else { @@ -681,7 +679,7 @@ bool8 FldEff_SecretPowerTree(void) 148); if (gFieldEffectArguments[7] == 1 || gFieldEffectArguments[7] == 3) - sub_80E8D4C(); + ToggleSecretBaseEntranceMetatile(); return FALSE; } @@ -702,7 +700,7 @@ static void TreeEntranceSpriteCallback2(struct Sprite *sprite) if (sprite->data[0] >= 40) { if (gFieldEffectArguments[7] == 0 || gFieldEffectArguments[7] == 2) - sub_80E8D4C(); + ToggleSecretBaseEntranceMetatile(); sprite->data[0] = 0; sprite->callback = TreeEntranceSpriteCallbackEnd; @@ -764,7 +762,7 @@ static void ShrubEntranceSpriteCallback2(struct Sprite *sprite) sprite->data[0]++; if (sprite->data[0] == 20) - sub_80E8D4C(); + ToggleSecretBaseEntranceMetatile(); } else { @@ -1168,7 +1166,7 @@ void GetShieldToyTVDecorationInfo(void) bool8 sub_80FADE4(u16 metatileId, u8 arg1) { - if (!CurrentMapIsSecretBase()) + if (!CurMapIsSecretBase()) return FALSE; if (!arg1) diff --git a/src/item.c b/src/item.c index 0e13ddf4c..fe8e8eadd 100644 --- a/src/item.c +++ b/src/item.c @@ -537,7 +537,7 @@ bool8 RemoveBagItem(u16 itemId, u16 count) if (totalQuantity < count) return FALSE; // We don't have enough of the item - if (CurrentMapIsSecretBase() == TRUE) + if (CurMapIsSecretBase() == TRUE) { VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x200); VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, itemId); diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c index 8a2c3ad91..16298183b 100644 --- a/src/metatile_behavior.c +++ b/src/metatile_behavior.c @@ -191,7 +191,7 @@ static const u8 sTileBitAttributes[] = [MB_SECRET_BASE_UNUSED] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), [MB_BLOCK_DECORATION] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), [MB_SECRET_BASE_DECORATION] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), - [MB_SECRET_BASE_LARGE_MAT_EDGE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_HOLDS_SMALL_DECORATION] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), [MB_UNUSED_B6] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), [MB_SECRET_BASE_NORTH_WALL] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), [MB_SECRET_BASE_BALLOON] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), @@ -205,7 +205,7 @@ static const u8 sTileBitAttributes[] = [MB_IMPASSABLE_SOUTH_AND_NORTH] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), [MB_IMPASSABLE_WEST_AND_EAST] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), [MB_SECRET_BASE_HOLE] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), - [MB_LARGE_MAT_CENTER] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), + [MB_HOLDS_LARGE_DECORATION] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), [MB_SECRET_BASE_TV_SHIELD] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), [MB_PLAYER_ROOM_PC_ON] = TILE_ATTRIBUTES(TRUE, FALSE, FALSE), [MB_C6] = TILE_ATTRIBUTES(FALSE, FALSE, FALSE), @@ -751,17 +751,17 @@ bool8 Unref_MetatileBehavior_IsSecretBaseUnused_B2_2(u8 metatileBehavior) return FALSE; } -bool8 MetatileBehavior_IsSecretBaseLargeMatEdge(u8 metatileBehavior) +bool8 MetatileBehavior_HoldsSmallDecoration(u8 metatileBehavior) { - if (metatileBehavior == MB_SECRET_BASE_LARGE_MAT_EDGE) + if (metatileBehavior == MB_HOLDS_SMALL_DECORATION) return TRUE; else return FALSE; } -bool8 MetatileBehavior_IsLargeMatCenter(u8 metatileBehavior) +bool8 MetatileBehavior_HoldsLargeDecoration(u8 metatileBehavior) { - if (metatileBehavior == MB_LARGE_MAT_CENTER) + if (metatileBehavior == MB_HOLDS_LARGE_DECORATION) return TRUE; else return FALSE; diff --git a/src/new_game.c b/src/new_game.c index 19f3461b4..0f2903349 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -170,7 +170,7 @@ void NewGameInitData(void) InitEventData(); ClearTVShowData(); ResetGabbyAndTy(); - ResetSecretBases(); + ClearSecretBases(); ClearBerryTrees(); SetMoney(&gSaveBlock1Ptr->money, 3000); SetCoins(0); diff --git a/src/overworld.c b/src/overworld.c index 9ed147c0a..a4fafe7c4 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -889,7 +889,7 @@ static void mli0_load_map(u32 a1) if (a1 != 1 && isIndoors) { UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height); - sub_80E9238(1); + InitSecretBaseAppearance(TRUE); } } @@ -1508,7 +1508,7 @@ void SetUnusedCallback(void *func) static bool8 map_post_load_hook_exec(void) { - if (gFieldCallback2 != NULL) + if (gFieldCallback2) { if (!gFieldCallback2()) { @@ -1522,7 +1522,7 @@ static bool8 map_post_load_hook_exec(void) } else { - if (gFieldCallback != NULL) + if (gFieldCallback) gFieldCallback(); else mapldr_default(); @@ -1701,7 +1701,7 @@ void sub_80861E8(void) static void sub_8086204(void) { - if ((gMapHeader.flags & 0xF8) == 8 && sub_80E909C() == TRUE) + if ((gMapHeader.flags & 0xF8) == 8 && SecretBaseMapPopupEnabled() == TRUE) ShowMapNamePopup(); sub_80AF3C8(); } @@ -1947,7 +1947,7 @@ static bool32 load_map_stuff(u8 *state, u32 a2) (*state)++; break; case 11: - if ((gMapHeader.flags & 0xF8) == 8 && sub_80E909C() == 1) + if ((gMapHeader.flags & 0xF8) == 8 && SecretBaseMapPopupEnabled() == TRUE) ShowMapNamePopup(); (*state)++; break; diff --git a/src/pokemon.c b/src/pokemon.c index 64b02021b..9c6afe0b8 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -4444,7 +4444,7 @@ u8 GetMonAbility(struct Pokemon *mon) return GetAbilityBySpecies(species, altAbility); } -void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord) +void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord) { s32 i, j; diff --git a/src/record_mixing.c b/src/record_mixing.c index 3a16f817e..85b52e478 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -47,7 +47,7 @@ struct RecordMixingHallRecords struct PlayerRecordsRS { - struct SecretBaseRecord secretBases[SECRET_BASES_COUNT]; + struct SecretBase secretBases[SECRET_BASES_COUNT]; TVShow tvShows[TV_SHOWS_COUNT]; PokeNews pokeNews[POKE_NEWS_COUNT]; OldMan oldMan; @@ -60,7 +60,7 @@ struct PlayerRecordsRS struct PlayerRecordsEmerald { - /* 0x0000 */ struct SecretBaseRecord secretBases[SECRET_BASES_COUNT]; + /* 0x0000 */ struct SecretBase secretBases[SECRET_BASES_COUNT]; /* 0x0c80 */ TVShow tvShows[TV_SHOWS_COUNT]; /* 0x1004 */ PokeNews pokeNews[POKE_NEWS_COUNT]; /* 0x1044 */ OldMan oldMan; @@ -83,7 +83,7 @@ union PlayerRecords // Static RAM declarations static IWRAM_DATA bool8 gUnknown_03001130; -static IWRAM_DATA struct SecretBaseRecord *sSecretBasesSave; +static IWRAM_DATA struct SecretBase *sSecretBasesSave; static IWRAM_DATA TVShow *sTvShowsSave; static IWRAM_DATA PokeNews *sPokeNewsSave; static IWRAM_DATA OldMan *sOldManSave; @@ -208,7 +208,7 @@ static void PrepareUnknownExchangePacket(struct PlayerRecordsRS *dest) static void PrepareExchangePacketForRubySapphire(struct PlayerRecordsRS *dest) { memcpy(dest->secretBases, sSecretBasesSave, sizeof(dest->secretBases)); - sub_80EB18C(dest->secretBases); + ClearJapaneseSecretBases(dest->secretBases); memcpy(dest->tvShows, sTvShowsSave, sizeof(dest->tvShows)); sub_80F1208(dest->tvShows); memcpy(dest->pokeNews, sPokeNewsSave, sizeof(dest->pokeNews)); @@ -226,7 +226,7 @@ static void PrepareExchangePacketForRubySapphire(struct PlayerRecordsRS *dest) static void PrepareExchangePacket(void) { - sub_80E9914(); + SetPlayerSecretBaseParty(); sub_80F0BB8(); SetSrcLookupPointers(); diff --git a/src/scrcmd.c b/src/scrcmd.c index 4dc494790..8d597b887 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1068,7 +1068,7 @@ bool8 ScrCmd_addobject(struct ScriptContext *ctx) { u16 objectId = VarGet(ScriptReadHalfword(ctx)); - show_sprite(objectId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + TrySpawnEventObject(objectId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); return FALSE; } @@ -1078,7 +1078,7 @@ bool8 ScrCmd_addobject_at(struct ScriptContext *ctx) u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); - show_sprite(objectId, mapNum, mapGroup); + TrySpawnEventObject(objectId, mapNum, mapGroup); return FALSE; } @@ -1088,7 +1088,7 @@ bool8 ScrCmd_setobjectxy(struct ScriptContext *ctx) u16 x = VarGet(ScriptReadHalfword(ctx)); u16 y = VarGet(ScriptReadHalfword(ctx)); - sub_808EBA8(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, x, y); + TryMoveEventObjectToMapCoords(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, x, y); return FALSE; } @@ -1106,7 +1106,7 @@ bool8 ScrCmd_moveobjectoffscreen(struct ScriptContext *ctx) { u16 localId = VarGet(ScriptReadHalfword(ctx)); - sub_808F254(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + TryOverrideEventObjectTemplateCoords(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); return FALSE; } diff --git a/src/secret_base.c b/src/secret_base.c index e19aecba3..a311db37d 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -35,322 +35,351 @@ #include "window.h" #include "constants/bg_event_constants.h" #include "constants/decorations.h" +#include "constants/event_objects.h" +#include "constants/items.h" #include "constants/maps.h" #include "constants/map_types.h" #include "constants/metatile_behaviors.h" +#include "constants/moves.h" #include "constants/secret_bases.h" #include "constants/songs.h" #include "constants/species.h" #include "constants/trainers.h" -// Static type declarations - -struct SecretBaseListMenuBuffer { +struct SecretBaseRegistryMenu +{ struct ListMenuItem items[11]; u8 names[11][32]; }; -struct SecretBaseRecordMixer { - struct SecretBaseRecord *records; +struct SecretBaseRecordMixer +{ + struct SecretBase *secretBases; u32 version; u32 language; }; -// Static RAM declarations -EWRAM_DATA u8 sCurSecretBaseId = 0; -EWRAM_DATA bool8 gInFriendSecretBase = FALSE; -EWRAM_DATA struct SecretBaseListMenuBuffer *gUnknown_0203A020 = NULL; - -// Static ROM declarations - -void sub_80E9C9C(u8 taskId); -void game_continue(u8 taskId); -void sub_80E9DEC(s32 a0, bool8 flag, struct ListMenu *menu); -void sub_80E9E00(u8 taskId); -void sub_80E9E44(u8 taskId); -void sub_80E9E90(u8 taskId); -void sub_80E9F20(u8 taskId); -void sub_80E9FB0(u8 taskId); -void sub_80E9FFC(u8 taskId); -void sub_80EA06C(u8 taskId); -void sub_80EA120(u8 taskId); -void sub_80EA13C(u8 taskId); -void sub_80EA18C(u8 taskId); -void task_pc_turn_off(u8 taskId); -u8 sub_80EA20C(u8 secretBaseRecordId); - -// .rodata - -const struct { - u16 tile1; - u16 tile2; -} gUnknown_0858CFCC[] = { - {0x0026, 0x0036}, - {0x0027, 0x0037}, - {0x01a0, 0x01a1}, - {0x01a8, 0x01a9}, - {0x01b0, 0x01b1}, - {0x0208, 0x0210}, - {0x0271, 0x0278} +struct SecretBaseEntranceMetatiles +{ + u16 closedMetatileId; + u16 openMetatileId; }; -const u8 gUnknown_0858CFE8[] = { - MAP_NUM(SECRET_BASE_RED_CAVE1), 0x00, 0x01, 0x03, - MAP_NUM(SECRET_BASE_RED_CAVE2), 0x00, 0x05, 0x09, - MAP_NUM(SECRET_BASE_RED_CAVE3), 0x00, 0x01, 0x03, - MAP_NUM(SECRET_BASE_RED_CAVE4), 0x00, 0x07, 0x0d, - MAP_NUM(SECRET_BASE_BROWN_CAVE1), 0x00, 0x02, 0x03, - MAP_NUM(SECRET_BASE_BROWN_CAVE2), 0x00, 0x09, 0x02, - MAP_NUM(SECRET_BASE_BROWN_CAVE3), 0x00, 0x0d, 0x04, - MAP_NUM(SECRET_BASE_BROWN_CAVE4), 0x00, 0x01, 0x02, - MAP_NUM(SECRET_BASE_BLUE_CAVE1), 0x00, 0x01, 0x03, - MAP_NUM(SECRET_BASE_BLUE_CAVE2), 0x00, 0x01, 0x02, - MAP_NUM(SECRET_BASE_BLUE_CAVE3), 0x00, 0x03, 0x0f, - MAP_NUM(SECRET_BASE_BLUE_CAVE4), 0x00, 0x03, 0x0e, - MAP_NUM(SECRET_BASE_YELLOW_CAVE1), 0x00, 0x09, 0x03, - MAP_NUM(SECRET_BASE_YELLOW_CAVE2), 0x00, 0x08, 0x07, - MAP_NUM(SECRET_BASE_YELLOW_CAVE3), 0x00, 0x03, 0x06, - MAP_NUM(SECRET_BASE_YELLOW_CAVE4), 0x00, 0x05, 0x09, - MAP_NUM(SECRET_BASE_TREE1), 0x00, 0x02, 0x03, - MAP_NUM(SECRET_BASE_TREE2), 0x00, 0x05, 0x06, - MAP_NUM(SECRET_BASE_TREE3), 0x00, 0x0f, 0x03, - MAP_NUM(SECRET_BASE_TREE4), 0x00, 0x04, 0x0a, - MAP_NUM(SECRET_BASE_SHRUB1), 0x00, 0x03, 0x03, - MAP_NUM(SECRET_BASE_SHRUB2), 0x00, 0x01, 0x02, - MAP_NUM(SECRET_BASE_SHRUB3), 0x00, 0x07, 0x08, - MAP_NUM(SECRET_BASE_SHRUB4), 0x00, 0x09, 0x06 +static EWRAM_DATA u8 sCurSecretBaseId = 0; +static EWRAM_DATA bool8 sInFriendSecretBase = FALSE; +static EWRAM_DATA struct SecretBaseRegistryMenu *sRegistryMenu = NULL; + +static void Task_ShowSecretBaseRegistryMenu(u8 taskId); +static void BuildRegistryMenuItems(u8 taskId); +static void RegistryMenu_OnCursorMove(int unused, bool8 flag, struct ListMenu *menu); +static void FinalizeRegistryMenu(u8 taskId); +static void AddRegistryMenuScrollArrows(u8 taskId); +static void HandleRegistryMenuInput(u8 taskId); +static void ShowRegistryMenuActions(u8 taskId); +static void HandleRegistryMenuActionsInput(u8 taskId); +static void ShowRegistryMenuDeleteConfirmation(u8 taskId); +static void ShowRegistryMenuDeleteYesNo(u8 taskId); +static void DeleteRegistry_Yes(u8 taskId); +static void DeleteRegistry_No(u8 taskId); +static void ReturnToMainRegistryMenu(u8 taskId); +static void GoToSecretBasePCMainMenu(u8 taskId); +static u8 GetSecretBaseOwnerType(u8 secretBaseId); + +static const struct SecretBaseEntranceMetatiles sSecretBaseEntranceMetatiles[] = +{ + {.closedMetatileId = 0x0026, .openMetatileId = 0x0036}, + {.closedMetatileId = 0x0027, .openMetatileId = 0x0037}, + {.closedMetatileId = 0x01a0, .openMetatileId = 0x01a1}, + {.closedMetatileId = 0x01a8, .openMetatileId = 0x01a9}, + {.closedMetatileId = 0x01b0, .openMetatileId = 0x01b1}, + {.closedMetatileId = 0x0208, .openMetatileId = 0x0210}, + {.closedMetatileId = 0x0271, .openMetatileId = 0x0278}, }; -const struct MenuAction gUnknown_0858D048[] = { - {gUnknown_085EA79D, {.void_u8 = sub_80E9FFC}}, - {gText_Cancel, {.void_u8 = sub_80EA18C}} +// mapNum, warpId, x, y +// x, y positions are for when the player warps in for the first time (in front of the computer) +static const u8 sSecretBaseEntrancePositions[] = +{ + MAP_NUM(SECRET_BASE_RED_CAVE1), 0, 1, 3, + MAP_NUM(SECRET_BASE_RED_CAVE2), 0, 5, 9, + MAP_NUM(SECRET_BASE_RED_CAVE3), 0, 1, 3, + MAP_NUM(SECRET_BASE_RED_CAVE4), 0, 7, 13, + MAP_NUM(SECRET_BASE_BROWN_CAVE1), 0, 2, 3, + MAP_NUM(SECRET_BASE_BROWN_CAVE2), 0, 9, 2, + MAP_NUM(SECRET_BASE_BROWN_CAVE3), 0, 13, 4, + MAP_NUM(SECRET_BASE_BROWN_CAVE4), 0, 1, 2, + MAP_NUM(SECRET_BASE_BLUE_CAVE1), 0, 1, 3, + MAP_NUM(SECRET_BASE_BLUE_CAVE2), 0, 1, 2, + MAP_NUM(SECRET_BASE_BLUE_CAVE3), 0, 3, 15, + MAP_NUM(SECRET_BASE_BLUE_CAVE4), 0, 3, 14, + MAP_NUM(SECRET_BASE_YELLOW_CAVE1), 0, 9, 3, + MAP_NUM(SECRET_BASE_YELLOW_CAVE2), 0, 8, 7, + MAP_NUM(SECRET_BASE_YELLOW_CAVE3), 0, 3, 6, + MAP_NUM(SECRET_BASE_YELLOW_CAVE4), 0, 5, 9, + MAP_NUM(SECRET_BASE_TREE1), 0, 2, 3, + MAP_NUM(SECRET_BASE_TREE2), 0, 5, 6, + MAP_NUM(SECRET_BASE_TREE3), 0, 15, 3, + MAP_NUM(SECRET_BASE_TREE4), 0, 4, 10, + MAP_NUM(SECRET_BASE_SHRUB1), 0, 3, 3, + MAP_NUM(SECRET_BASE_SHRUB2), 0, 1, 2, + MAP_NUM(SECRET_BASE_SHRUB3), 0, 7, 8, + MAP_NUM(SECRET_BASE_SHRUB4), 0, 9, 6, }; -const struct YesNoFuncTable gUnknown_0858D058 = { - sub_80EA120, sub_80EA13C +static const struct MenuAction sRegistryMenuActions[] = +{ + { + .text = gText_DelRegist, + .func = { .void_u8 = ShowRegistryMenuDeleteConfirmation }, + }, + { + .text = gText_Cancel, + .func = { .void_u8 = ReturnToMainRegistryMenu }, + }, }; -const u8 gUnknown_0858D060[10] = { - 0x23, 0x24, 0x0f, 0x1f, 0x21, - 0x2f, 0x0e, 0x14, 0x20, 0x22 +static const struct YesNoFuncTable sDeleteRegistryYesNoFuncs = +{ + .yesFunc = DeleteRegistry_Yes, + .noFunc = DeleteRegistry_No, }; -const struct WindowTemplate gUnknown_0858D06C[] = { - { 0, 18, 1, 11, 18, 15, 0x01 }, - { 0, 2, 1, 28, 4, 15, 0xc7 } +static const u8 sSecretBaseOwnerGfxIds[10] = +{ + // Male + EVENT_OBJ_GFX_YOUNGSTER, + EVENT_OBJ_GFX_BUG_CATCHER, + EVENT_OBJ_GFX_RICH_BOY, + EVENT_OBJ_GFX_CAMPER, + EVENT_OBJ_GFX_MAN_3, + // Female + EVENT_OBJ_GFX_LASS, + EVENT_OBJ_GFX_GIRL_3, + EVENT_OBJ_GFX_WOMAN_2, + EVENT_OBJ_GFX_PICNICKER, + EVENT_OBJ_GFX_WOMAN_5, }; -const struct ListMenuTemplate gUnknown_0858D07C = { - NULL, - sub_80E9DEC, - NULL, - 0, 0, - 0, 0, 8, 0, - 9, 2, 1, 3, FALSE, 0, FALSE, 1 +static const struct WindowTemplate sRegistryWindowTemplates[] = +{ + { + .bg = 0, + .tilemapLeft = 18, + .tilemapTop = 1, + .width = 11, + .height = 18, + .paletteNum = 15, + .baseBlock = 0x01, + }, + { + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 1, + .width = 28, + .height = 4, + .paletteNum = 15, + .baseBlock = 0xc7, + } }; -// .text +static const struct ListMenuTemplate sRegistryListMenuTemplate = +{ + .items = NULL, + .moveCursorFunc = RegistryMenu_OnCursorMove, + .itemPrintFunc = NULL, + .totalItems = 0, + .maxShowed = 0, + .windowId = 0, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 9, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = LIST_NO_MULTIPLE_SCROLL, + .fontId = 1, + .cursorKind = 0, +}; -void ClearSecretBase(struct SecretBaseRecord *sbr) +static void ClearSecretBase(struct SecretBase *secretBase) { u16 i; - - CpuFastFill16(0, sbr, sizeof(struct SecretBaseRecord)); - for (i = 0; i < 7; i ++) - { - sbr->trainerName[i] = EOS; - } + CpuFastFill16(0, secretBase, sizeof(struct SecretBase)); + for (i = 0; i < PLAYER_NAME_LENGTH; i++) + secretBase->trainerName[i] = EOS; } -void ResetSecretBases(void) +void ClearSecretBases(void) { u16 i; - - for (i = 0; i < SECRET_BASES_COUNT; i ++) - { + for (i = 0; i < SECRET_BASES_COUNT; i++) ClearSecretBase(&gSaveBlock1Ptr->secretBases[i]); - } } -void sub_80E8B58(void) +static void SetCurSecretBaseId(void) { sCurSecretBaseId = gSpecialVar_0x8004; } -void sub_80E8B6C(void) +void TrySetCurSecretBaseIndex(void) { u16 i; gSpecialVar_Result = FALSE; - for (i = 0; i < SECRET_BASES_COUNT; i ++) + for (i = 0; i < SECRET_BASES_COUNT; i++) { - if (sCurSecretBaseId != gSaveBlock1Ptr->secretBases[i].secretBaseId) + if (sCurSecretBaseId == gSaveBlock1Ptr->secretBases[i].secretBaseId) { - continue; + gSpecialVar_Result = TRUE; + VarSet(VAR_CURRENT_SECRET_BASE, i); + break; } - gSpecialVar_Result = TRUE; - VarSet(VAR_CURRENT_SECRET_BASE, i); - break; } } -void sub_80E8BC8(void) +void CheckPlayerHasSecretBase(void) { - if (gSaveBlock1Ptr->secretBases[0].secretBaseId != 0) - { + // The player's secret base is always the first in the array. + if (gSaveBlock1Ptr->secretBases[0].secretBaseId) gSpecialVar_Result = TRUE; - } else - { gSpecialVar_Result = FALSE; - } } -u8 sub_80E8BF8(void) +static u8 GetSecretBaseTypeInFrontOfPlayer_(void) { - s16 x; - s16 y; + s16 x, y; s16 behavior; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); behavior = MapGridGetMetatileBehaviorAt(x, y) & 0xFFF; if (behavior == MB_SECRET_BASE_SPOT_RED_CAVE || behavior == MB_SECRET_BASE_SPOT_RED_CAVE_OPEN) - { return SECRET_BASE_RED_CAVE; - } + if (behavior == MB_SECRET_BASE_SPOT_BROWN_CAVE || behavior == MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN) - { return SECRET_BASE_BROWN_CAVE; - } + if (behavior == MB_SECRET_BASE_SPOT_BLUE_CAVE || behavior == MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN) - { return SECRET_BASE_BLUE_CAVE; - } + if (behavior == MB_SECRET_BASE_SPOT_YELLOW_CAVE || behavior == MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN) - { return SECRET_BASE_YELLOW_CAVE; - } - if (behavior == MB_SECRET_BASE_SPOT_TREE_LEFT || behavior == MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN || behavior == MB_SECRET_BASE_SPOT_TREE_RIGHT || behavior == MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN) - { + + if (behavior == MB_SECRET_BASE_SPOT_TREE_LEFT || behavior == MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN + || behavior == MB_SECRET_BASE_SPOT_TREE_RIGHT || behavior == MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN) return SECRET_BASE_TREE; - } + if (behavior == MB_SECRET_BASE_SPOT_SHRUB || behavior == MB_SECRET_BASE_SPOT_SHRUB_OPEN) - { return SECRET_BASE_SHRUB; - } + return 0; } -void sub_80E8C98(void) +void GetSecretBaseTypeInFrontOfPlayer(void) { - gSpecialVar_0x8007 = sub_80E8BF8(); + gSpecialVar_0x8007 = GetSecretBaseTypeInFrontOfPlayer_(); } -void sub_80E8CB0(s16 *xPtr, s16 *yPtr, u16 tile) +static void FindMetatileIdMapCoords(s16 *x, s16 *y, u16 metatileId) { - const struct MapLayout *mapLayout; - s16 x; - s16 y; + s16 i, j; + const struct MapLayout *mapLayout = gMapHeader.mapLayout; - mapLayout = gMapHeader.mapLayout; - for (y = 0; y < mapLayout->height; y ++) + for (j = 0; j < mapLayout->height; j++) { - for (x = 0; x < mapLayout->width; x ++) + for (i = 0; i < mapLayout->width; i++) { - if ((mapLayout->map[y * mapLayout->width + x] & METATILE_ID_MASK) == tile) + if ((mapLayout->map[j * mapLayout->width + i] & METATILE_ID_MASK) == metatileId) { - *xPtr = x; - *yPtr = y; + *x = i; + *y = j; return; } } } } -void sub_80E8D4C(void) +// Opens or closes the secret base entrance metatile in front of the player. +void ToggleSecretBaseEntranceMetatile(void) { - s16 x; - s16 y; - s16 tile; u16 i; + s16 x, y; + s16 metatileId; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); - tile = MapGridGetMetatileIdAt(x, y); - for (i = 0; i < 7; i ++) + metatileId = MapGridGetMetatileIdAt(x, y); + for (i = 0; i < ARRAY_COUNT(sSecretBaseEntranceMetatiles); i++) { - if (gUnknown_0858CFCC[i].tile1 == tile) + if (sSecretBaseEntranceMetatiles[i].closedMetatileId == metatileId) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, sSecretBaseEntranceMetatiles[i].openMetatileId | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); return; } } - for (i = 0; i < 7; i ++) + + for (i = 0; i < ARRAY_COUNT(sSecretBaseEntranceMetatiles); i++) { - if (gUnknown_0858CFCC[i].tile2 == tile) + if (sSecretBaseEntranceMetatiles[i].openMetatileId == metatileId) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile1 | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, sSecretBaseEntranceMetatiles[i].closedMetatileId | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); return; } } } -u8 sub_80E8DF4(const u8 *src) +static u8 GetNameLength(const u8 *secretBaseOwnerName) { u8 i; - - for (i = 0; i < 7; i ++) + for (i = 0; i < PLAYER_NAME_LENGTH; i++) { - if (src[i] == EOS) - { + if (secretBaseOwnerName[i] == EOS) return i; - } } - return 7; + + return PLAYER_NAME_LENGTH; } -void sub_80E8E18(void) +void SetPlayerSecretBase(void) { u16 i; gSaveBlock1Ptr->secretBases[0].secretBaseId = sCurSecretBaseId; - for (i = 0; i < 4; i ++) - { + for (i = 0; i < 4; i++) gSaveBlock1Ptr->secretBases[0].trainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; - } + VarSet(VAR_CURRENT_SECRET_BASE, 0); - StringCopyN(gSaveBlock1Ptr->secretBases[0].trainerName, gSaveBlock2Ptr->playerName, sub_80E8DF4(gSaveBlock2Ptr->playerName)); + StringCopyN(gSaveBlock1Ptr->secretBases[0].trainerName, gSaveBlock2Ptr->playerName, GetNameLength(gSaveBlock2Ptr->playerName)); gSaveBlock1Ptr->secretBases[0].gender = gSaveBlock2Ptr->playerGender; gSaveBlock1Ptr->secretBases[0].language = GAME_LANGUAGE; VarSet(VAR_SECRET_BASE_MAP, gMapHeader.regionMapSectionId); } -void sub_80E8EE0(struct MapEvents const *events) +void SetOccupiedSecretBaseEntranceMetatiles(struct MapEvents const *events) { - u16 bgEventIndex; - u16 i; - u16 j; - s16 tile_id; - s16 x; - s16 y; + u16 bgId; + u16 i, j; - for (bgEventIndex = 0; bgEventIndex < events->bgEventCount; bgEventIndex ++) + for (bgId = 0; bgId < events->bgEventCount; bgId++) { - if (events->bgEvents[bgEventIndex].kind == BG_EVENT_SECRET_BASE) + if (events->bgEvents[bgId].kind == BG_EVENT_SECRET_BASE) { - for (j = 0; j < SECRET_BASES_COUNT; j ++) + for (j = 0; j < SECRET_BASES_COUNT; j++) { - if (gSaveBlock1Ptr->secretBases[j].secretBaseId == events->bgEvents[bgEventIndex].bgUnion.secretBaseId) + if (gSaveBlock1Ptr->secretBases[j].secretBaseId == events->bgEvents[bgId].bgUnion.secretBaseId) { - x = events->bgEvents[bgEventIndex].x + 7; - y = events->bgEvents[bgEventIndex].y + 7; - tile_id = MapGridGetMetatileIdAt(x, y); - for (i = 0; i < 7; i ++) + s16 x = events->bgEvents[bgId].x + 7; + s16 y = events->bgEvents[bgId].y + 7; + s16 tile_id = MapGridGetMetatileIdAt(x, y); + for (i = 0; i < ARRAY_COUNT(sSecretBaseEntranceMetatiles); i++) { - if (gUnknown_0858CFCC[i].tile1 == tile_id) + if (sSecretBaseEntranceMetatiles[i].closedMetatileId == tile_id) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, sSecretBaseEntranceMetatiles[i].openMetatileId | METATILE_COLLISION_MASK); break; } } @@ -361,58 +390,52 @@ void sub_80E8EE0(struct MapEvents const *events) } } -void sub_80E8F9C(void) +static void SetSecretBaseWarpDestination(void) { - s8 idx; - - idx = sCurSecretBaseId / 10 * 4; - SetWarpDestinationToMapWarp(MAP_GROUP(SECRET_BASE_RED_CAVE1), gUnknown_0858CFE8[idx], gUnknown_0858CFE8[idx + 1]); + s8 offset = (sCurSecretBaseId / 10) * 4; + SetWarpDestinationToMapWarp(MAP_GROUP(SECRET_BASE_RED_CAVE1), sSecretBaseEntrancePositions[offset], sSecretBaseEntrancePositions[offset + 1]); } -void sub_80E8FD0(u8 taskId) +static void Task_EnterSecretBase(u8 taskId) { - u16 secretBaseRecordId; + u16 secretBaseId; switch (gTasks[taskId].data[0]) { - case 0: - if (!gPaletteFade.active) - { - gTasks[taskId].data[0] = 1; - } - break; - case 1: - secretBaseRecordId = VarGet(VAR_CURRENT_SECRET_BASE); - if (gSaveBlock1Ptr->secretBases[secretBaseRecordId].sbr_field_10 < 255) - { - gSaveBlock1Ptr->secretBases[secretBaseRecordId].sbr_field_10 ++; - } - sub_80E8F9C(); - WarpIntoMap(); - gFieldCallback = FieldCallback_ReturnToEventScript2; - SetMainCallback2(CB2_LoadMap); - DestroyTask(taskId); - break; + case 0: + if (!gPaletteFade.active) + gTasks[taskId].data[0] = 1; + break; + case 1: + secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); + if (gSaveBlock1Ptr->secretBases[secretBaseId].numTimesEntered < 255) + gSaveBlock1Ptr->secretBases[secretBaseId].numTimesEntered++; + + SetSecretBaseWarpDestination(); + WarpIntoMap(); + gFieldCallback = FieldCallback_ReturnToEventScript2; + SetMainCallback2(CB2_LoadMap); + DestroyTask(taskId); + break; } } -void sub_80E9068(void) +void EnterSecretBase(void) { - CreateTask(sub_80E8FD0, 0); + CreateTask(Task_EnterSecretBase, 0); FadeScreen(1, 0); SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } -bool8 sub_80E909C(void) +bool8 SecretBaseMapPopupEnabled(void) { if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE && VarGet(VAR_INIT_SECRET_BASE) == 0) - { return FALSE; - } + return TRUE; } -void sub_80E90C8(u8 taskId) +static void EnterNewlyCreatedSecretBase_WaitFadeIn(u8 taskId) { EventObjectTurn(&gEventObjects[gPlayerAvatar.eventObjectId], DIR_NORTH); if (IsWeatherNotFadingIn() == TRUE) @@ -422,189 +445,202 @@ void sub_80E90C8(u8 taskId) } } -void sub_80E9108(void) +static void EnterNewlyCreatedSecretBase_StartFadeIn(void) { - s16 x; - s16 y; + s16 x, y; ScriptContext2_Enable(); HideMapNamePopUpWindow(); - sub_80E8CB0(&x, &y, 0x220); + FindMetatileIdMapCoords(&x, &y, 0x220); x += 7; y += 7; MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); pal_fill_black(); - CreateTask(sub_80E90C8, 0); + CreateTask(EnterNewlyCreatedSecretBase_WaitFadeIn, 0); } -void sub_80E916C(u8 taskId) +static void Task_EnterNewlyCreatedSecretBase(u8 taskId) { - s8 idx; - if (!gPaletteFade.active) { - idx = sCurSecretBaseId / 10 * 4; - SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, gUnknown_0858CFE8[idx + 2], gUnknown_0858CFE8[idx + 3]); + s8 offset = sCurSecretBaseId / 10 * 4; + SetWarpDestination( + gSaveBlock1Ptr->location.mapGroup, + gSaveBlock1Ptr->location.mapNum, + -1, + sSecretBaseEntrancePositions[offset + 2], + sSecretBaseEntrancePositions[offset + 3]); WarpIntoMap(); - gFieldCallback = sub_80E9108; + gFieldCallback = EnterNewlyCreatedSecretBase_StartFadeIn; SetMainCallback2(CB2_LoadMap); DestroyTask(taskId); } } -void sub_80E91F8(void) +void EnterNewlyCreatedSecretBase(void) { - CreateTask(sub_80E916C, 0); - FadeScreen(1, 0); + CreateTask(Task_EnterNewlyCreatedSecretBase, 0); + FadeScreen(FADE_TO_BLACK, 0); } -bool8 CurrentMapIsSecretBase(void) +bool8 CurMapIsSecretBase(void) { - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SECRET_BASE_RED_CAVE1) && (u8)gSaveBlock1Ptr->location.mapNum <= MAP_NUM(SECRET_BASE_SHRUB4)) - { + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SECRET_BASE_RED_CAVE1) + && (u8)gSaveBlock1Ptr->location.mapNum <= MAP_NUM(SECRET_BASE_SHRUB4)) return TRUE; - } - return FALSE; + else + return FALSE; } -void sub_80E9238(u8 flagIn) +void InitSecretBaseAppearance(bool8 hidePC) { - u16 curBaseId; - u16 x; - u16 y; + u16 secretBaseId; + u16 x, y; u8 *decorations; u8 *decorPos; - if (CurrentMapIsSecretBase()) + if (CurMapIsSecretBase()) { - curBaseId = VarGet(VAR_CURRENT_SECRET_BASE); - decorations = gSaveBlock1Ptr->secretBases[curBaseId].decorations; - decorPos = gSaveBlock1Ptr->secretBases[curBaseId].decorationPos; - for (x = 0; x < 16; x ++) + secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); + decorations = gSaveBlock1Ptr->secretBases[secretBaseId].decorations; + decorPos = gSaveBlock1Ptr->secretBases[secretBaseId].decorationPositions; + for (x = 0; x < 16; x++) { - if (decorations[x] > 0 && decorations[x] <= 0x78 && gDecorations[decorations[x]].permission != DECORPERM_SOLID_MAT) { - sub_8127D38((decorPos[x] >> 4) + 7, (decorPos[x] & 0xF) + 7, decorations[x]); - } + if (decorations[x] > 0 && decorations[x] <= NUM_DECORATIONS && gDecorations[decorations[x]].permission != DECORPERM_SPRITE) + ShowDecorationOnMap((decorPos[x] >> 4) + 7, (decorPos[x] & 0xF) + 7, decorations[x]); } - if (curBaseId != 0) + + if (secretBaseId != 0) { - sub_80E8CB0(&x, &y, 0x220); + // Another player's secret base. Change PC type to the "Register" PC. + FindMetatileIdMapCoords(&x, &y, 0x220); MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | METATILE_COLLISION_MASK); } - else if (flagIn == 1 && VarGet(VAR_SECRET_BASE_INITIALIZED) == 1) + else if (hidePC == TRUE && VarGet(VAR_SECRET_BASE_INITIALIZED) == 1) { - sub_80E8CB0(&x, &y, 0x220); + // Change PC to regular ground tile. + FindMetatileIdMapCoords(&x, &y, 0x220); MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | METATILE_COLLISION_MASK); } } } -void sub_80E933C(void) +void InitSecretBaseDecorationSprites(void) { - u8 *roomDecor; - u8 *roomDecorPos; - u8 decorIdx; - u8 objIdx; - u8 metatile; + u8 i; + u8 *decorations; + u8 *decorationPositions; + u8 eventObjectId; + u8 metatileBehavior; u8 category; u8 permission; - u8 nDecor; - u16 curBase; + u8 numDecorations; - objIdx = 0; - if (!CurrentMapIsSecretBase()) + eventObjectId = 0; + if (!CurMapIsSecretBase()) { - roomDecor = gSaveBlock1Ptr->playerRoomDecor; - roomDecorPos = gSaveBlock1Ptr->playerRoomDecorPos; - nDecor = 12; + decorations = gSaveBlock1Ptr->playerRoomDecor; + decorationPositions = gSaveBlock1Ptr->playerRoomDecorPos; + numDecorations = 12; } else { - curBase = VarGet(VAR_CURRENT_SECRET_BASE); - roomDecor = gSaveBlock1Ptr->secretBases[curBase].decorations; - roomDecorPos = gSaveBlock1Ptr->secretBases[curBase].decorationPos; - nDecor = 16; + u16 secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); + decorations = gSaveBlock1Ptr->secretBases[secretBaseId].decorations; + decorationPositions = gSaveBlock1Ptr->secretBases[secretBaseId].decorationPositions; + numDecorations = 16; } - for (decorIdx = 0; decorIdx < nDecor; decorIdx ++) + + for (i = 0; i < numDecorations; i++) { - if (roomDecor[decorIdx] != DECOR_NONE) + if (decorations[i] == DECOR_NONE) + continue; + + permission = gDecorations[decorations[i]].permission; + category = gDecorations[decorations[i]].category; + if (permission == DECORPERM_SPRITE) { - permission = gDecorations[roomDecor[decorIdx]].permission; - category = gDecorations[roomDecor[decorIdx]].category; - if (permission == DECORPERM_SOLID_MAT) + for (eventObjectId = 0; eventObjectId < gMapHeader.events->eventObjectCount; eventObjectId++) { - for (objIdx = 0; objIdx < gMapHeader.events->eventObjectCount; objIdx ++) + if (gMapHeader.events->eventObjects[eventObjectId].flagId == FLAG_DECORATION_1 + gSpecialVar_0x8004) + break; + } + + if (eventObjectId == gMapHeader.events->eventObjectCount) + continue; + + gSpecialVar_0x8006 = decorationPositions[i] >> 4; + gSpecialVar_0x8007 = decorationPositions[i] & 0xF; + metatileBehavior = MapGridGetMetatileBehaviorAt(gSpecialVar_0x8006 + 7, gSpecialVar_0x8007 + 7); + if (MetatileBehavior_HoldsSmallDecoration(metatileBehavior) == TRUE + || MetatileBehavior_HoldsLargeDecoration(metatileBehavior) == TRUE) + { + gSpecialVar_Result = VAR_OBJ_GFX_ID_0 + (gMapHeader.events->eventObjects[eventObjectId].graphicsId - EVENT_OBJ_GFX_VAR_0); + VarSet(gSpecialVar_Result, gDecorations[decorations[i]].tiles[0]); + gSpecialVar_Result = gMapHeader.events->eventObjects[eventObjectId].localId; + FlagClear(FLAG_DECORATION_1 + gSpecialVar_0x8004); + TrySpawnEventObject(gSpecialVar_Result, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + TryMoveEventObjectToMapCoords(gSpecialVar_Result, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, gSpecialVar_0x8006, gSpecialVar_0x8007); + TryOverrideEventObjectTemplateCoords(gSpecialVar_Result, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + if (CurMapIsSecretBase() == TRUE && VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - if (gMapHeader.events->eventObjects[objIdx].flagId == gSpecialVar_0x8004 + 0xAE) + if (category == DECORCAT_DOLL) { - break; + OverrideSecretBaseDecorationSpriteScript( + gSpecialVar_Result, + gSaveBlock1Ptr->location.mapNum, + gSaveBlock1Ptr->location.mapGroup, + DECORCAT_DOLL); } - } - if (objIdx == gMapHeader.events->eventObjectCount) - { - continue; - } - gSpecialVar_0x8006 = roomDecorPos[decorIdx] >> 4; - gSpecialVar_0x8007 = roomDecorPos[decorIdx] & 0xF; - metatile = MapGridGetMetatileBehaviorAt(gSpecialVar_0x8006 + 7, gSpecialVar_0x8007 + 7); - if (MetatileBehavior_IsSecretBaseLargeMatEdge(metatile) == TRUE || MetatileBehavior_IsLargeMatCenter(metatile) == TRUE) - { - gSpecialVar_Result = gMapHeader.events->eventObjects[objIdx].graphicsId + UNKNOWN_VAR_OFFSET_3F20; - VarSet(gSpecialVar_Result, gDecorations[roomDecor[decorIdx]].tiles[0]); - gSpecialVar_Result = gMapHeader.events->eventObjects[objIdx].localId; - FlagClear(gSpecialVar_0x8004 + 0xAE); - show_sprite(gSpecialVar_Result, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); - sub_808EBA8(gSpecialVar_Result, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, gSpecialVar_0x8006, gSpecialVar_0x8007); - sub_808F254(gSpecialVar_Result, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); - if (CurrentMapIsSecretBase() == TRUE && VarGet(VAR_CURRENT_SECRET_BASE) != 0) + else if (category == DECORCAT_CUSHION) { - if (category == DECORCAT_DOLL) - { - sub_808F28C(gSpecialVar_Result, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, DECORCAT_DOLL); - } - else if (category == DECORCAT_CUSHION) - { - sub_808F28C(gSpecialVar_Result, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, DECORCAT_CUSHION); - } + OverrideSecretBaseDecorationSpriteScript( + gSpecialVar_Result, + gSaveBlock1Ptr->location.mapNum, + gSaveBlock1Ptr->location.mapGroup, + DECORCAT_CUSHION); } - gSpecialVar_0x8004 ++; } + + gSpecialVar_0x8004++; } } } } -void sub_80E9578(void) +void HideSecretBaseDecorationSprites(void) { - u8 objectEventIdx; - u16 flagId; + u8 eventObjectId; + u16 flag; - for (objectEventIdx = 0; objectEventIdx < gMapHeader.events->eventObjectCount; objectEventIdx ++) + for (eventObjectId = 0; eventObjectId < gMapHeader.events->eventObjectCount; eventObjectId++) { - flagId = gMapHeader.events->eventObjects[objectEventIdx].flagId; - if (flagId >= FLAG_DECORATION_1 && flagId <= FLAG_DECORATION_14) + flag = gMapHeader.events->eventObjects[eventObjectId].flagId; + if (flag >= FLAG_DECORATION_1 && flag <= FLAG_DECORATION_14) { - RemoveEventObjectByLocalIdAndMap(gMapHeader.events->eventObjects[objectEventIdx].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); - FlagSet(flagId); + RemoveEventObjectByLocalIdAndMap( + gMapHeader.events->eventObjects[eventObjectId].localId, + gSaveBlock1Ptr->location.mapNum, + gSaveBlock1Ptr->location.mapGroup); + FlagSet(flag); } } } -void sub_80E95D4(void) +void SetSecretBaseOwnerGfxId(void) { - VarSet(VAR_OBJ_GFX_ID_F, gUnknown_0858D060[sub_80EA20C(VarGet(VAR_CURRENT_SECRET_BASE))]); + VarSet(VAR_OBJ_GFX_ID_F, sSecretBaseOwnerGfxIds[GetSecretBaseOwnerType(VarGet(VAR_CURRENT_SECRET_BASE))]); } -void sub_80E9608(const struct MapPosition *position, const struct MapEvents *events) +void SetCurSecretBaseIdFromPosition(const struct MapPosition *position, const struct MapEvents *events) { - s16 bgEventIdx; - - for (bgEventIdx = 0; bgEventIdx < events->bgEventCount; bgEventIdx ++) + s16 i; + for (i = 0; i < events->bgEventCount; i++) { - if (events->bgEvents[bgEventIdx].kind == BG_EVENT_SECRET_BASE && position->x == events->bgEvents[bgEventIdx].x + 7 && position->y == events->bgEvents[bgEventIdx].y + 7) + if (events->bgEvents[i].kind == BG_EVENT_SECRET_BASE && position->x == events->bgEvents[i].x + 7 && position->y == events->bgEvents[i].y + 7) { - sCurSecretBaseId = events->bgEvents[bgEventIdx].bgUnion.secretBaseId; + sCurSecretBaseId = events->bgEvents[i].bgUnion.secretBaseId; break; } } @@ -612,101 +648,92 @@ void sub_80E9608(const struct MapPosition *position, const struct MapEvents *eve void WarpIntoSecretBase(const struct MapPosition *position, const struct MapEvents *events) { - sub_80E9608(position, events); - sub_80E8B6C(); + SetCurSecretBaseIdFromPosition(position, events); + TrySetCurSecretBaseIndex(); ScriptContext1_SetupScript(EventScript_275BB7); } -bool8 sub_80E9680(void) +bool8 TrySetCurSecretBase(void) { - sub_80E8B58(); - sub_80E8B6C(); + SetCurSecretBaseId(); + TrySetCurSecretBaseIndex(); if (gSpecialVar_Result == TRUE) - { return FALSE; - } + return TRUE; } -void sub_80E96A4(u8 taskId) +static void Task_WarpOutOfSecretBase(u8 taskId) { switch (gTasks[taskId].data[0]) { - case 0: - ScriptContext2_Enable(); - gTasks[taskId].data[0] = 1; - break; - case 1: - if (!gPaletteFade.active) - { - gTasks[taskId].data[0] = 2; - } - break; - case 2: - SetWarpDestinationToDynamicWarp(0x7e); - WarpIntoMap(); - gFieldCallback = mapldr_default; - SetMainCallback2(CB2_LoadMap); - ScriptContext2_Disable(); - DestroyTask(taskId); - break; + case 0: + ScriptContext2_Enable(); + gTasks[taskId].data[0] = 1; + break; + case 1: + if (!gPaletteFade.active) + gTasks[taskId].data[0] = 2; + break; + case 2: + SetWarpDestinationToDynamicWarp(0x7e); + WarpIntoMap(); + gFieldCallback = mapldr_default; + SetMainCallback2(CB2_LoadMap); + ScriptContext2_Disable(); + DestroyTask(taskId); + break; } } -void sub_80E9728(void) +static void WarpOutOfSecretBase(void) { - CreateTask(sub_80E96A4, 0); - FadeScreen(1, 0); + CreateTask(Task_WarpOutOfSecretBase, 0); + FadeScreen(FADE_TO_BLACK, 0); } -void sub_80E9744(void) +void IsCurSecretBaseOwnedByAnotherPlayer(void) { if (gSaveBlock1Ptr->secretBases[0].secretBaseId != sCurSecretBaseId) - { gSpecialVar_Result = TRUE; - } else - { gSpecialVar_Result = FALSE; - } } -u8 *sub_80E9780(u8 *dest, u8 secretBaseRecordId) +static u8 *GetSecretBaseName(u8 *dest, u8 secretBaseId) { - *StringCopyN(dest, gSaveBlock1Ptr->secretBases[secretBaseRecordId].trainerName, sub_80E8DF4(gSaveBlock1Ptr->secretBases[secretBaseRecordId].trainerName)) = EOS; - ConvertInternationalString(dest, gSaveBlock1Ptr->secretBases[secretBaseRecordId].language); + *StringCopyN(dest, gSaveBlock1Ptr->secretBases[secretBaseId].trainerName, GetNameLength(gSaveBlock1Ptr->secretBases[secretBaseId].trainerName)) = EOS; + ConvertInternationalString(dest, gSaveBlock1Ptr->secretBases[secretBaseId].language); return StringAppend(dest, gText_ApostropheSBase); } u8 *GetSecretBaseMapName(u8 *dest) { - return sub_80E9780(dest, VarGet(VAR_CURRENT_SECRET_BASE)); + return GetSecretBaseName(dest, VarGet(VAR_CURRENT_SECRET_BASE)); } -void sub_80E980C(void) +void CopyCurSecretBaseOwnerName_StrVar1(void) { - u8 secretBaseRecordId; - const u8 *src; + u8 secretBaseId; + const u8 *name; - secretBaseRecordId = VarGet(VAR_CURRENT_SECRET_BASE); - src = gSaveBlock1Ptr->secretBases[secretBaseRecordId].trainerName; - *StringCopyN(gStringVar1, src, sub_80E8DF4(src)) = EOS; - ConvertInternationalString(gStringVar1, gSaveBlock1Ptr->secretBases[secretBaseRecordId].language); + secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); + name = gSaveBlock1Ptr->secretBases[secretBaseId].trainerName; + *StringCopyN(gStringVar1, name, GetNameLength(name)) = EOS; + ConvertInternationalString(gStringVar1, gSaveBlock1Ptr->secretBases[secretBaseId].language); } -bool8 sub_80E9878(u8 secretBaseRecordId) +static bool8 IsSecretBaseRegistered(u8 secretBaseId) { - if (gSaveBlock1Ptr->secretBases[secretBaseRecordId].sbr_field_1_6 != 0) - { + if (gSaveBlock1Ptr->secretBases[secretBaseId].registryStatus) return TRUE; - } + return FALSE; } -u8 sub_80E98AC(struct Pokemon *pokemon) +static u8 GetAverageEVs(struct Pokemon *pokemon) { u16 evTotal; - evTotal = GetMonData(pokemon, MON_DATA_HP_EV); evTotal += GetMonData(pokemon, MON_DATA_ATK_EV); evTotal += GetMonData(pokemon, MON_DATA_DEF_EV); @@ -716,173 +743,162 @@ u8 sub_80E98AC(struct Pokemon *pokemon) return evTotal / 6; } -void sub_80E9914(void) +void SetPlayerSecretBaseParty(void) { - u16 partyIdx; + u16 i; u16 moveIdx; - u16 sbPartyIdx; + u16 partyId; struct SecretBaseParty *party; - sbPartyIdx = 0; + partyId = 0; party = &gSaveBlock1Ptr->secretBases[0].party; - if (gSaveBlock1Ptr->secretBases[0].secretBaseId != 0) + if (gSaveBlock1Ptr->secretBases[0].secretBaseId) { - for (partyIdx = 0; partyIdx < PARTY_SIZE; partyIdx++) + for (i = 0; i < PARTY_SIZE; i++) { - for (moveIdx = 0; moveIdx < 4; moveIdx++) - { - party->moves[partyIdx * 4 + moveIdx] = 0; - } - party->species[partyIdx] = 0; - party->heldItems[partyIdx] = 0; - party->levels[partyIdx] = 0; - party->personality[partyIdx] = 0; - party->EVs[partyIdx] = 0; - if (GetMonData(&gPlayerParty[partyIdx], MON_DATA_SPECIES) != SPECIES_NONE - && !GetMonData(&gPlayerParty[partyIdx], MON_DATA_IS_EGG)) + for (moveIdx = 0; moveIdx < MAX_MON_MOVES; moveIdx++) + party->moves[i * MAX_MON_MOVES + moveIdx] = MOVE_NONE; + + party->species[i] = SPECIES_NONE; + party->heldItems[i] = ITEM_NONE; + party->levels[i] = 0; + party->personality[i] = 0; + party->EVs[i] = 0; + + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE + && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { - for (moveIdx = 0; moveIdx < 4; moveIdx++) - { - party->moves[sbPartyIdx * 4 + moveIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_MOVE1 + moveIdx); - } - party->species[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_SPECIES); - party->heldItems[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_HELD_ITEM); - party->levels[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_LEVEL); - party->personality[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_PERSONALITY); - party->EVs[sbPartyIdx] = sub_80E98AC(&gPlayerParty[partyIdx]); - sbPartyIdx++; + for (moveIdx = 0; moveIdx < MAX_MON_MOVES; moveIdx++) + party->moves[partyId * MAX_MON_MOVES + moveIdx] = GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + moveIdx); + + party->species[partyId] = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); + party->heldItems[partyId] = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); + party->levels[partyId] = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); + party->personality[partyId] = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY); + party->EVs[partyId] = GetAverageEVs(&gPlayerParty[i]); + partyId++; } } } } -void sub_80E9A90(void) +void ClearAndLeaveSecretBase(void) { - u16 sbr_e; - - sbr_e = gSaveBlock1Ptr->secretBases[0].sbr_field_e; + u16 temp = gSaveBlock1Ptr->secretBases[0].numSecretBasesReceived; ClearSecretBase(&gSaveBlock1Ptr->secretBases[0]); - gSaveBlock1Ptr->secretBases[0].sbr_field_e = sbr_e; - sub_80E9728(); + gSaveBlock1Ptr->secretBases[0].numSecretBasesReceived = temp; + WarpOutOfSecretBase(); } -void sub_80E9AC0(void) +void MoveOutOfSecretBase(void) { IncrementGameStat(GAME_STAT_MOVED_SECRET_BASE); - sub_80E9A90(); + ClearAndLeaveSecretBase(); } -void sub_80E9AD0(void) +static void ClosePlayerSecretBaseEntrance(void) { u16 i; u16 j; - s16 tile; - const struct MapEvents *events; + s16 metatileId; + const struct MapEvents *events = gMapHeader.events; - events = gMapHeader.events; - for (i = 0; i < events->bgEventCount; i ++) + for (i = 0; i < events->bgEventCount; i++) { - if (events->bgEvents[i].kind == BG_EVENT_SECRET_BASE && gSaveBlock1Ptr->secretBases[0].secretBaseId == events->bgEvents[i].bgUnion.secretBaseId) + if (events->bgEvents[i].kind == BG_EVENT_SECRET_BASE + && gSaveBlock1Ptr->secretBases[0].secretBaseId == events->bgEvents[i].bgUnion.secretBaseId) { - tile = MapGridGetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7); - for (j = 0; j < 7; j ++) + metatileId = MapGridGetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7); + for (j = 0; j < 7; j++) { - if (gUnknown_0858CFCC[j].tile2 == tile) + if (sSecretBaseEntranceMetatiles[j].openMetatileId == metatileId) { - MapGridSetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7, gUnknown_0858CFCC[j].tile1 | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7, sSecretBaseEntranceMetatiles[j].closedMetatileId | METATILE_COLLISION_MASK); break; } } + DrawWholeMapView(); break; } } } -void sub_80E9B70(void) +// When the player moves to a new secret base by interacting with a new secret base +// entrance in the overworld. +void MoveOutOfSecretBaseFromOutside(void) { - u16 sbr_e; + u16 temp; - sub_80E9AD0(); + ClosePlayerSecretBaseEntrance(); IncrementGameStat(GAME_STAT_MOVED_SECRET_BASE); - sbr_e = gSaveBlock1Ptr->secretBases[0].sbr_field_e; + temp = gSaveBlock1Ptr->secretBases[0].numSecretBasesReceived; ClearSecretBase(&gSaveBlock1Ptr->secretBases[0]); - gSaveBlock1Ptr->secretBases[0].sbr_field_e = sbr_e; + gSaveBlock1Ptr->secretBases[0].numSecretBasesReceived = temp; } -u8 sub_80E9BA8(void) +static u8 GetNumRegisteredSecretBases(void) { - u8 sum; s16 i; - - sum = 0; - for (i = 1; i < SECRET_BASES_COUNT; i ++) + u8 count = 0; + for (i = 1; i < SECRET_BASES_COUNT; i++) { - if (sub_80E9878(i) == TRUE) - { - sum ++; - } + if (IsSecretBaseRegistered(i) == TRUE) + count++; } - return sum; + + return count; } -void sub_80E9BDC(void) +void GetCurSecretBaseRegistrationValidity(void) { - if (sub_80E9878(VarGet(VAR_CURRENT_SECRET_BASE)) == TRUE) - { + if (IsSecretBaseRegistered(VarGet(VAR_CURRENT_SECRET_BASE)) == TRUE) gSpecialVar_Result = 1; - } - else if (sub_80E9BA8() > 9) - { + else if (GetNumRegisteredSecretBases() > 9) gSpecialVar_Result = 2; - } else - { gSpecialVar_Result = 0; - } } -void sub_80E9C2C(void) +void ToggleCurSecretBaseRegistry(void) { - gSaveBlock1Ptr->secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].sbr_field_1_6 ^= 1; - FlagSet(FLAG_DECORATION_16); + gSaveBlock1Ptr->secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].registryStatus ^= 1; + FlagSet(FLAG_SECRET_BASE_REGISTRY_ENABLED); } -void sub_80E9C74(void) +void ShowSecretBaseDecorationMenu(void) { CreateTask(sub_8126AD8, 0); } -void sub_80E9C88(void) +void ShowSecretBaseRegistryMenu(void) { - CreateTask(sub_80E9C9C, 0); + CreateTask(Task_ShowSecretBaseRegistryMenu, 0); } -void sub_80E9C9C(u8 taskId) +static void Task_ShowSecretBaseRegistryMenu(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; ScriptContext2_Enable(); - data[0] = sub_80E9BA8(); + data[0] = GetNumRegisteredSecretBases(); if (data[0] != 0) { data[1] = 0; data[2] = 0; ClearDialogWindowAndFrame(0, 0); - gUnknown_0203A020 = calloc(1, sizeof(struct SecretBaseListMenuBuffer)); - data[6] = AddWindow(&gUnknown_0858D06C[0]); - game_continue(taskId); - sub_80E9E00(taskId); - gTasks[taskId].func = sub_80E9E90; + sRegistryMenu = calloc(1, sizeof(*sRegistryMenu)); + data[6] = AddWindow(&sRegistryWindowTemplates[0]); + BuildRegistryMenuItems(taskId); + FinalizeRegistryMenu(taskId); + gTasks[taskId].func = HandleRegistryMenuInput; } else { - DisplayItemMessageOnField(taskId, gText_NoRegistry, task_pc_turn_off); + DisplayItemMessageOnField(taskId, gText_NoRegistry, GoToSecretBasePCMainMenu); } } -void game_continue(u8 taskId) +static void BuildRegistryMenuItems(u8 taskId) { s16 *data; u8 i; @@ -890,62 +906,54 @@ void game_continue(u8 taskId) data = gTasks[taskId].data; count = 0; - for (i = 1; i < SECRET_BASES_COUNT; i ++) + for (i = 1; i < SECRET_BASES_COUNT; i++) { - if (sub_80E9878(i)) + if (IsSecretBaseRegistered(i)) { - sub_80E9780(gUnknown_0203A020->names[count], i); - gUnknown_0203A020->items[count].name = gUnknown_0203A020->names[count]; - gUnknown_0203A020->items[count].id = i; - count ++; + GetSecretBaseName(sRegistryMenu->names[count], i); + sRegistryMenu->items[count].name = sRegistryMenu->names[count]; + sRegistryMenu->items[count].id = i; + count++; } } - gUnknown_0203A020->items[count].name = gText_Cancel; - gUnknown_0203A020->items[count].id = -2; + + sRegistryMenu->items[count].name = gText_Cancel; + sRegistryMenu->items[count].id = -2; data[0] = count + 1; if (data[0] < 8) - { data[3] = data[0]; - } else - { data[3] = 8; - } - gMultiuseListMenuTemplate = gUnknown_0858D07C; + + gMultiuseListMenuTemplate = sRegistryListMenuTemplate; gMultiuseListMenuTemplate.windowId = data[6]; gMultiuseListMenuTemplate.totalItems = data[0]; - gMultiuseListMenuTemplate.items = gUnknown_0203A020->items; + gMultiuseListMenuTemplate.items = sRegistryMenu->items; gMultiuseListMenuTemplate.maxShowed = data[3]; } -void sub_80E9DEC(s32 a0, bool8 flag, struct ListMenu *menu) +static void RegistryMenu_OnCursorMove(int unused, bool8 flag, struct ListMenu *menu) { if (flag != TRUE) - { PlaySE(SE_SELECT); - } } -void sub_80E9E00(u8 taskId) +static void FinalizeRegistryMenu(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; SetStandardWindowBorderStyle(data[6], 0); data[5] = ListMenuInit(&gMultiuseListMenuTemplate, data[2], data[1]); - sub_80E9E44(taskId); + AddRegistryMenuScrollArrows(taskId); schedule_bg_copy_tilemap_to_vram(0); } -void sub_80E9E44(u8 taskId) +static void AddRegistryMenuScrollArrows(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; data[8] = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0xbc, 0x0c, 0x94, data[0] - data[3], 0x13f8, 0x13f8, &data[2]); } -void sub_80E9E90(u8 taskId) +static void HandleRegistryMenuInput(u8 taskId) { s16 *data; s32 input; @@ -955,219 +963,185 @@ void sub_80E9E90(u8 taskId) ListMenuGetScrollAndRow(data[5], &data[2], &data[1]); switch (input) { - case LIST_NOTHING_CHOSEN: - break; - case LIST_CANCEL: - PlaySE(SE_SELECT); - DestroyListMenuTask(data[5], NULL, NULL); - RemoveScrollIndicatorArrowPair(data[8]); - ClearStdWindowAndFrame(data[6], 0); - ClearWindowTilemap(data[6]); - RemoveWindow(data[6]); - schedule_bg_copy_tilemap_to_vram(0); - free(gUnknown_0203A020); - task_pc_turn_off(taskId); - break; - default: - PlaySE(SE_SELECT); - data[4] = input; - sub_80E9F20(taskId); - break; + case LIST_NOTHING_CHOSEN: + break; + case LIST_CANCEL: + PlaySE(SE_SELECT); + DestroyListMenuTask(data[5], NULL, NULL); + RemoveScrollIndicatorArrowPair(data[8]); + ClearStdWindowAndFrame(data[6], 0); + ClearWindowTilemap(data[6]); + RemoveWindow(data[6]); + schedule_bg_copy_tilemap_to_vram(0); + free(sRegistryMenu); + GoToSecretBasePCMainMenu(taskId); + break; + default: + PlaySE(SE_SELECT); + data[4] = input; + ShowRegistryMenuActions(taskId); + break; } } -void sub_80E9F20(u8 taskId) +static void ShowRegistryMenuActions(u8 taskId) { struct WindowTemplate template; - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; RemoveScrollIndicatorArrowPair(data[8]); - template = gUnknown_0858D06C[1]; - template.width = GetMaxWidthInMenuTable(gUnknown_0858D048, 2); + template = sRegistryWindowTemplates[1]; + template.width = GetMaxWidthInMenuTable(sRegistryMenuActions, 2); data[7] = AddWindow(&template); SetStandardWindowBorderStyle(data[7], 0); - PrintMenuTable(data[7], 2, gUnknown_0858D048); + PrintMenuTable(data[7], 2, sRegistryMenuActions); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[7], 2, 0); schedule_bg_copy_tilemap_to_vram(0); - gTasks[taskId].func = sub_80E9FB0; + gTasks[taskId].func = HandleRegistryMenuActionsInput; } -void sub_80E9FB0(u8 taskId) +static void HandleRegistryMenuActionsInput(u8 taskId) { - s8 input; - - input = Menu_ProcessInputNoWrap(); + s8 input = Menu_ProcessInputNoWrap(); switch (input) { - case MENU_B_PRESSED: - PlaySE(SE_SELECT); - sub_80EA18C(taskId); - break; - case MENU_NOTHING_CHOSEN: - break; - default: - PlaySE(SE_SELECT); - gUnknown_0858D048[input].func.void_u8(taskId); - break; + case MENU_B_PRESSED: + PlaySE(SE_SELECT); + ReturnToMainRegistryMenu(taskId); + break; + case MENU_NOTHING_CHOSEN: + break; + default: + PlaySE(SE_SELECT); + sRegistryMenuActions[input].func.void_u8(taskId); + break; } } -void sub_80E9FFC(u8 taskId) +static void ShowRegistryMenuDeleteConfirmation(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; ClearStdWindowAndFrame(data[6], FALSE); ClearStdWindowAndFrame(data[7], FALSE); ClearWindowTilemap(data[6]); ClearWindowTilemap(data[7]); RemoveWindow(data[7]); schedule_bg_copy_tilemap_to_vram(0); - sub_80E9780(gStringVar1, data[4]); + GetSecretBaseName(gStringVar1, data[4]); StringExpandPlaceholders(gStringVar4, gText_OkayToDeleteFromRegistry); - DisplayItemMessageOnField(taskId, gStringVar4, sub_80EA06C); + DisplayItemMessageOnField(taskId, gStringVar4, ShowRegistryMenuDeleteYesNo); } -void sub_80EA06C(u8 taskId) +static void ShowRegistryMenuDeleteYesNo(u8 taskId) { DisplayYesNoMenuDefaultYes(); - DoYesNoFuncWithChoice(taskId, &gUnknown_0858D058); + DoYesNoFuncWithChoice(taskId, &sDeleteRegistryYesNoFuncs); } -void sub_80EA08C(u8 taskId) +void DeleteRegistry_Yes_Callback(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; ClearDialogWindowAndFrame(0, 0); DestroyListMenuTask(data[5], &data[2], &data[1]); - gSaveBlock1Ptr->secretBases[data[4]].sbr_field_1_6 = 0; - game_continue(taskId); + gSaveBlock1Ptr->secretBases[data[4]].registryStatus = 0; + BuildRegistryMenuItems(taskId); sub_812225C(&data[2], &data[1], data[3], data[0]); - sub_80E9E00(taskId); - gTasks[taskId].func = sub_80E9E90; + FinalizeRegistryMenu(taskId); + gTasks[taskId].func = HandleRegistryMenuInput; } -void sub_80EA120(u8 taskId) +static void DeleteRegistry_Yes(u8 taskId) { - DisplayItemMessageOnField(taskId, gText_RegisteredDataDeleted, sub_80EA08C); + DisplayItemMessageOnField(taskId, gText_RegisteredDataDeleted, DeleteRegistry_Yes_Callback); } -void sub_80EA13C(u8 taskId) +static void DeleteRegistry_No(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; ClearDialogWindowAndFrame(0, 0); DestroyListMenuTask(data[5], &data[2], &data[1]); - sub_80E9E00(taskId); - gTasks[taskId].func = sub_80E9E90; + FinalizeRegistryMenu(taskId); + gTasks[taskId].func = HandleRegistryMenuInput; } -void sub_80EA18C(u8 taskId) +static void ReturnToMainRegistryMenu(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; - sub_80E9E44(taskId); + s16 *data = gTasks[taskId].data; + AddRegistryMenuScrollArrows(taskId); ClearStdWindowAndFrame(data[7], 0); ClearWindowTilemap(data[7]); RemoveWindow(data[7]); schedule_bg_copy_tilemap_to_vram(0); - gTasks[taskId].func = sub_80E9E90; + gTasks[taskId].func = HandleRegistryMenuInput; } -void task_pc_turn_off(u8 taskId) +static void GoToSecretBasePCMainMenu(u8 taskId) { if (VarGet(VAR_CURRENT_SECRET_BASE) == 0) - { ScriptContext1_SetupScript(gUnknown_0823B4E8); - } else - { ScriptContext1_SetupScript(gUnknown_0823B5E9); - } + DestroyTask(taskId); } -u8 sub_80EA20C(u8 secretBaseRecordId) +static u8 GetSecretBaseOwnerType(u8 secretBaseId) { - return (gSaveBlock1Ptr->secretBases[secretBaseRecordId].trainerId[0] % 5) + (gSaveBlock1Ptr->secretBases[secretBaseRecordId].gender * 5); + return (gSaveBlock1Ptr->secretBases[secretBaseId].trainerId[0] % 5) + + (gSaveBlock1Ptr->secretBases[secretBaseId].gender * 5); } const u8 *GetSecretBaseTrainerLoseText(void) { - u8 param; - - param = sub_80EA20C(VarGet(VAR_CURRENT_SECRET_BASE)); - if (param == 0) - { + u8 ownerType = GetSecretBaseOwnerType(VarGet(VAR_CURRENT_SECRET_BASE)); + if (ownerType == 0) return SecretBase_RedCave1_Text_274966; - } - if (param == 1) - { + else if (ownerType == 1) return SecretBase_RedCave1_Text_274D13; - } - if (param == 2) - { + else if (ownerType == 2) return SecretBase_RedCave1_Text_274FFE; - } - if (param == 3) - { + else if (ownerType == 3) return SecretBase_RedCave1_Text_275367; - } - if (param == 4) - { + else if (ownerType == 4) return SecretBase_RedCave1_Text_2756C7; - } - if (param == 5) - { + else if (ownerType == 5) return SecretBase_RedCave1_Text_274B24; - } - if (param == 6) - { + else if (ownerType == 6) return SecretBase_RedCave1_Text_274E75; - } - if (param == 7) - { + else if (ownerType == 7) return SecretBase_RedCave1_Text_2751E1; - } - if (param == 8) - { + else if (ownerType == 8) return SecretBase_RedCave1_Text_2754F6; - } - return SecretBase_RedCave1_Text_2758CC; + else + return SecretBase_RedCave1_Text_2758CC; } -void sub_80EA2E4(void) +void PrepSecretBaseBattleFlags(void) { - sub_813BADC(TRUE); + sub_813BADC(1); gTrainerBattleOpponent_A = TRAINER_SECRET_BASE; gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_SECRET_BASE; } void sub_80EA30C(void) { - gSaveBlock1Ptr->secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].sbr_field_1_5 = gSpecialVar_Result; + gSaveBlock1Ptr->secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].battledOwnerToday = gSpecialVar_Result; } -void sub_80EA354(void) +void GetSecretBaseOwnerInteractionState(void) { - u16 secretBaseRecordId; + u16 secretBaseId; u8 i; - secretBaseRecordId = VarGet(VAR_CURRENT_SECRET_BASE); + secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); if (!FlagGet(FLAG_DAILY_SECRET_BASE)) { - for (i = 0; i < SECRET_BASES_COUNT; i ++) - { - gSaveBlock1Ptr->secretBases[i].sbr_field_1_5 = FALSE; - } + for (i = 0; i < SECRET_BASES_COUNT; i++) + gSaveBlock1Ptr->secretBases[i].battledOwnerToday = FALSE; + FlagSet(FLAG_DAILY_SECRET_BASE); } - gSpecialVar_0x8004 = sub_80EA20C(secretBaseRecordId); - gSpecialVar_Result = gSaveBlock1Ptr->secretBases[secretBaseRecordId].sbr_field_1_5; + gSpecialVar_0x8004 = GetSecretBaseOwnerType(secretBaseId); + gSpecialVar_Result = gSaveBlock1Ptr->secretBases[secretBaseId].battledOwnerToday; } void SecretBasePerStepCallback(u8 taskId) @@ -1181,318 +1155,286 @@ void SecretBasePerStepCallback(u8 taskId) data = gTasks[taskId].data; switch (data[1]) { - case 0: - if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) + case 0: + if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) + sInFriendSecretBase = TRUE; + else + sInFriendSecretBase = FALSE; + + PlayerGetDestCoords(&data[2], &data[3]); + data[1] = 1; + break; + case 1: + PlayerGetDestCoords(&x, &y); + if (x != data[2] || y != data[3]) + { + data[2] = x; + data[3] = y; + VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1); + behavior = MapGridGetMetatileBehaviorAt(x, y); + tileId = MapGridGetMetatileIdAt(x, y); + if (tileId == 0x234 || tileId == 0x23C) { - gInFriendSecretBase = TRUE; + if (sInFriendSecretBase == TRUE) + { + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x20); + } } - else + else if (tileId == 0x2b8 || tileId == 0x2b9 || tileId == 0x2ba || tileId == 0x2c0 || tileId == 0x2c1 || tileId == 0x2c2 || tileId == 0x2c8 || tileId == 0x2c9 || tileId == 0x2ca) { - gInFriendSecretBase = FALSE; + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x01); } - PlayerGetDestCoords(&data[2], &data[3]); - data[1] = 1; - break; - case 1: - PlayerGetDestCoords(&x, &y); - if (x != data[2] || y != data[3]) + else if (tileId == 0x239 || tileId == 0x241 || tileId == 0x251 || tileId == 0x259) { - data[2] = x; - data[3] = y; - VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1); - behavior = MapGridGetMetatileBehaviorAt(x, y); - tileId = MapGridGetMetatileIdAt(x, y); - if (tileId == 0x234 || tileId == 0x23C) - { - if (gInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x20); - } - } - else if (tileId == 0x2b8 || tileId == 0x2b9 || tileId == 0x2ba || tileId == 0x2c0 || tileId == 0x2c1 || tileId == 0x2c2 || tileId == 0x2c8 || tileId == 0x2c9 || tileId == 0x2ca) - { - if (gInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x01); - } - } - else if (tileId == 0x239 || tileId == 0x241 || tileId == 0x251 || tileId == 0x259) - { - if (gInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x04); - } - } - else if ((behavior == 0x34 && tileId == 0x26d) || (behavior == 0x35 && MapGridGetMetatileIdAt(x, y) == 0x26a)) - { - if (gInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x200); - } - } - else if (behavior == 0xc1 && tileId == 0x23d) - { - if (gInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x1000); - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x2000); - } - } - else if (behavior == 0x47 && tileId == 0x23e) - { - if (gInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x1000); - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x2000); - } - } - else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE) - { - if (gInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x80); - } - } - else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE) - { - PopSecretBaseBalloon(MapGridGetMetatileIdAt(x, y), x, y); - if (gInFriendSecretBase == TRUE) - { - switch ((int)MapGridGetMetatileIdAt(x, y)) - { - case 0x338: - case 0x33c: - case 0x340: - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x02); - break; - case 0x228: - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x100); - break; - } - } - } - else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE) + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x04); + } + else if ((behavior == 0x34 && tileId == 0x26d) || (behavior == 0x35 && MapGridGetMetatileIdAt(x, y) == 0x26a)) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x200); + } + else if (behavior == 0xc1 && tileId == 0x23d) + { + if (sInFriendSecretBase == TRUE) { - if (gInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x400); - } - ShatterSecretBaseBreakableDoor(x, y); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x1000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x2000); } - else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){ - if (gInFriendSecretBase == TRUE) { - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8000); - } - } - else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE) + } + else if (behavior == 0x47 && tileId == 0x23e) + { + if (sInFriendSecretBase == TRUE) { - if (gInFriendSecretBase == TRUE) - { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4000); - } + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x1000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x2000); } - else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE) + } + else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x80); + } + else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE) + { + PopSecretBaseBalloon(MapGridGetMetatileIdAt(x, y), x, y); + if (sInFriendSecretBase == TRUE) { - if (gInFriendSecretBase == TRUE) + switch ((int)MapGridGetMetatileIdAt(x, y)) { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x02); + case 0x338: + case 0x33c: + case 0x340: + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x02); + break; + case 0x228: + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x100); + break; } } } - break; - case 2: - if (!FieldEffectActiveListContains(data[4])) + else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE) { - data[1] = 1; + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x400); + + ShatterSecretBaseBreakableDoor(x, y); } - break; + else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){ + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8000); + } + else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4000); + } + else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE) + { + if (sInFriendSecretBase == TRUE) + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x02); + } + } + break; + case 2: + if (!FieldEffectActiveListContains(data[4])) + data[1] = 1; + break; } } -void sub_80EA828(u8 secretBaseRecordId, struct SecretBaseRecord *base, u32 version, u32 language) +static void SetSecretBaseDataAndLanguage(u8 secretBaseId, struct SecretBase *secretBase, u32 version, u32 language) { int stringLength; u8 *name; - gSaveBlock1Ptr->secretBases[secretBaseRecordId] = *base; - gSaveBlock1Ptr->secretBases[secretBaseRecordId].sbr_field_1_6 = 2; + gSaveBlock1Ptr->secretBases[secretBaseId] = *secretBase; + gSaveBlock1Ptr->secretBases[secretBaseId].registryStatus = 2; if (version == VERSION_SAPPHIRE || version == VERSION_RUBY) - { - gSaveBlock1Ptr->secretBases[secretBaseRecordId].language = LANGUAGE_ENGLISH; - } + gSaveBlock1Ptr->secretBases[secretBaseId].language = LANGUAGE_ENGLISH; + if (version == VERSION_EMERALD && language == LANGUAGE_JAPANESE) { - name = gSaveBlock1Ptr->secretBases[secretBaseRecordId].trainerName; - for (stringLength = 0; stringLength < 7; stringLength ++) + name = gSaveBlock1Ptr->secretBases[secretBaseId].trainerName; + for (stringLength = 0; stringLength < 7; stringLength++) { if (name[stringLength] == EOS) - { break; - } } + if (stringLength > 5) - { - gSaveBlock1Ptr->secretBases[secretBaseRecordId].language = LANGUAGE_ENGLISH; - } + gSaveBlock1Ptr->secretBases[secretBaseId].language = LANGUAGE_ENGLISH; } } -bool8 sub_80EA8D4(struct SecretBaseRecord *sbr1, struct SecretBaseRecord *sbr2) +static bool8 SecretBasesHaveSameTrainerId(struct SecretBase *secretBase1, struct SecretBase *secretBase2) { u8 i; - for (i = 0; i < 4; i ++) + for (i = 0; i < 4; i++) { - if (sbr1->trainerId[i] != sbr2->trainerId[i]) - { + if (secretBase1->trainerId[i] != secretBase2->trainerId[i]) return FALSE; - } } + return TRUE; } -bool8 sub_80EA904(struct SecretBaseRecord *sbr1, struct SecretBaseRecord *sbr2) +static bool8 SecretBasesHaveSameTrainerName(struct SecretBase *sbr1, struct SecretBase *sbr2) { u8 i; - for (i = 0; i < PLAYER_NAME_LENGTH && (sbr1->trainerName[i] != EOS || sbr2->trainerName[i] != EOS); i++) { if (sbr1->trainerName[i] != sbr2->trainerName[i]) - { return FALSE; - } } + return TRUE; } -bool8 sub_80EA950(struct SecretBaseRecord *sbr1, struct SecretBaseRecord *sbr2) +static bool8 SecretBasesBelongToSamePlayer(struct SecretBase *secretBase1, struct SecretBase *secretBase2) { - if (sbr1->gender == sbr2->gender && sub_80EA8D4(sbr1, sbr2) && sub_80EA904(sbr1, sbr2)) + if (secretBase1->gender == secretBase2->gender + && SecretBasesHaveSameTrainerId(secretBase1, secretBase2) + && SecretBasesHaveSameTrainerName(secretBase1, secretBase2)) { return TRUE; } + return FALSE; } -s16 sub_80EA990(u8 secretBaseRecordId) +static s16 GetSecretBaseIndexFromId(u8 secretBaseId) { s16 i; - - for (i = 0; i < SECRET_BASES_COUNT; i ++) + for (i = 0; i < SECRET_BASES_COUNT; i++) { - if (gSaveBlock1Ptr->secretBases[i].secretBaseId == secretBaseRecordId) - { + if (gSaveBlock1Ptr->secretBases[i].secretBaseId == secretBaseId) return i; - } } + return -1; } -u8 sub_80EA9D8(void) +static u8 FindAvailableSecretBaseIndex(void) { s16 i; - - for (i = 1; i < SECRET_BASES_COUNT; i ++) + for (i = 1; i < SECRET_BASES_COUNT; i++) { if (gSaveBlock1Ptr->secretBases[i].secretBaseId == 0) - { return i; - } } + return 0; } -u8 sub_80EAA18(void) +static u8 sub_80EAA18(void) { s16 i; - - for (i = 1; i < SECRET_BASES_COUNT; i ++) + for (i = 1; i < SECRET_BASES_COUNT; i++) { - if (gSaveBlock1Ptr->secretBases[i].sbr_field_1_6 == 0 && gSaveBlock1Ptr->secretBases[i].sbr_field_1_0 == 0) - { + if (gSaveBlock1Ptr->secretBases[i].registryStatus == 0 && gSaveBlock1Ptr->secretBases[i].sbr_field_1_0 == 0) return i; - } } + return 0; } -u8 sub_80EAA64(struct SecretBaseRecord *base, u32 version, u32 language) +static u8 sub_80EAA64(struct SecretBase *secretBase, u32 version, u32 language) { - s16 secretBaseRecordId; + s16 index; - if (base->secretBaseId == 0) - { + if (!secretBase->secretBaseId) return 0; - } - secretBaseRecordId = sub_80EA990(base->secretBaseId); - if (secretBaseRecordId != 0) + + index = GetSecretBaseIndexFromId(secretBase->secretBaseId); + if (index != 0) { - if (secretBaseRecordId != -1) + if (index != -1) { - if (gSaveBlock1Ptr->secretBases[secretBaseRecordId].sbr_field_1_0 == 1) - { + if (gSaveBlock1Ptr->secretBases[index].sbr_field_1_0 == 1) return 0; - } - if (gSaveBlock1Ptr->secretBases[secretBaseRecordId].sbr_field_1_6 != 2 || base->sbr_field_1_0 == 1) + + if (gSaveBlock1Ptr->secretBases[index].registryStatus != 2 || secretBase->sbr_field_1_0 == 1) { - sub_80EA828(secretBaseRecordId, base, version, language); - return secretBaseRecordId; + SetSecretBaseDataAndLanguage(index, secretBase, version, language); + return index; } } else { - secretBaseRecordId = sub_80EA9D8(); - if (secretBaseRecordId != 0) + index = FindAvailableSecretBaseIndex(); + if (index != 0) { - sub_80EA828(secretBaseRecordId, base, version, language); - return secretBaseRecordId; + SetSecretBaseDataAndLanguage(index, secretBase, version, language); + return index; } - secretBaseRecordId = sub_80EAA18(); - if (secretBaseRecordId != 0) + + index = sub_80EAA18(); + if (index != 0) { - sub_80EA828(secretBaseRecordId, base, version, language); - return secretBaseRecordId; + SetSecretBaseDataAndLanguage(index, secretBase, version, language); + return index; } } } return 0; } -void sub_80EAAF4(void) +// Moves the registered secret bases to the beginning of the array, so that +// they won't be forgotten during record mixing. +static void SortSecretBasesByRegistryStatus(void) { u8 i; u8 j; - struct SecretBaseRecord base; - struct SecretBaseRecord *secretBases; + struct SecretBase *secretBases; secretBases = gSaveBlock1Ptr->secretBases; - for (i = 1; i < 19; i ++) + for (i = 1; i < 19; i++) { - for (j = i + 1; j < SECRET_BASES_COUNT; j ++) + for (j = i + 1; j < SECRET_BASES_COUNT; j++) { - if ((secretBases[i].sbr_field_1_6 == 0 && secretBases[j].sbr_field_1_6 == 1) || (secretBases[i].sbr_field_1_6 == 2 && secretBases[j].sbr_field_1_6 != 2)) + if ((secretBases[i].registryStatus == 0 && secretBases[j].registryStatus == 1) || (secretBases[i].registryStatus == 2 && secretBases[j].registryStatus != 2)) { - base = secretBases[i]; + struct SecretBase temp = secretBases[i]; secretBases[i] = secretBases[j]; - secretBases[j] = base; + secretBases[j] = temp; } } } } -void sub_80EABA4(struct SecretBaseRecordMixer *mixer, u8 b) +void sub_80EABA4(struct SecretBaseRecordMixer *mixer, u8 registryStatus) { u16 i; - - for (i = 1; i < SECRET_BASES_COUNT; i ++) + for (i = 1; i < SECRET_BASES_COUNT; i++) { - if (mixer->records[i].sbr_field_1_6 == b) - { - sub_80EAA64(&mixer->records[i], mixer->version, mixer->language); - } + if (mixer->secretBases[i].registryStatus == registryStatus) + sub_80EAA64(&mixer->secretBases[i], mixer->version, mixer->language); } } -bool8 DoesSecretBaseBelongToPlayer(struct SecretBaseRecord *secretBase) +bool8 SecretBaseBelongsToPlayer(struct SecretBase *secretBase) { u8 i; @@ -1503,13 +1445,13 @@ bool8 DoesSecretBaseBelongToPlayer(struct SecretBaseRecord *secretBase) return FALSE; // Check if the player's trainer Id matches the secret base's id. - for (i = 0; i < 4; i ++) + for (i = 0; i < 4; i++) { if (secretBase->trainerId[i] != gSaveBlock2Ptr->playerTrainerId[i]) return FALSE; } - for (i = 0; i < PLAYER_NAME_LENGTH && (secretBase->trainerName[i] != EOS || gSaveBlock2Ptr->playerName[i] != EOS); i ++) + for (i = 0; i < PLAYER_NAME_LENGTH && (secretBase->trainerName[i] != EOS || gSaveBlock2Ptr->playerName[i] != EOS); i++) { if (secretBase->trainerName[i] != gSaveBlock2Ptr->playerName[i]) return FALSE; @@ -1518,16 +1460,16 @@ bool8 DoesSecretBaseBelongToPlayer(struct SecretBaseRecord *secretBase) return TRUE; } -void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBaseRecord *basesA, struct SecretBaseRecord *basesB, struct SecretBaseRecord *basesC) +void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC) { u8 i; u8 sbFlags = 0x0; - for (i = 0; i < SECRET_BASES_COUNT; i ++) + for (i = 0; i < SECRET_BASES_COUNT; i++) { if (!(sbFlags & 0x1)) // 001 { - if (DoesSecretBaseBelongToPlayer(&basesA[i]) == TRUE) + if (SecretBaseBelongsToPlayer(&basesA[i]) == TRUE) { ClearSecretBase(&basesA[i]); sbFlags |= 1; @@ -1536,7 +1478,7 @@ void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBaseR if (!(sbFlags & 0x2)) // 010 { - if (DoesSecretBaseBelongToPlayer(&basesB[i]) == TRUE) + if (SecretBaseBelongsToPlayer(&basesB[i]) == TRUE) { ClearSecretBase(&basesB[i]); sbFlags |= 2; @@ -1545,7 +1487,7 @@ void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBaseR if (!(sbFlags & 0x4)) // 100 { - if (DoesSecretBaseBelongToPlayer(&basesC[i]) == TRUE) + if (SecretBaseBelongsToPlayer(&basesC[i]) == TRUE) { ClearSecretBase(&basesC[i]); sbFlags |= 4; @@ -1559,15 +1501,15 @@ void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBaseR } } -bool8 sub_80EAD14(struct SecretBaseRecord *base, struct SecretBaseRecord *secretBases, u8 c) +bool8 sub_80EAD14(struct SecretBase *secretBase, struct SecretBase *secretBases, u8 c) { u8 i; - for (i = 0; i < SECRET_BASES_COUNT; i ++) + for (i = 0; i < SECRET_BASES_COUNT; i++) { if (secretBases[i].secretBaseId != 0) { - if (sub_80EA950(base, &secretBases[i]) == TRUE) + if (SecretBasesBelongToSamePlayer(secretBase, &secretBases[i]) == TRUE) { if (c == 0) { @@ -1575,15 +1517,14 @@ bool8 sub_80EAD14(struct SecretBaseRecord *base, struct SecretBaseRecord *secret return FALSE; } - if (base->sbr_field_e > secretBases[i].sbr_field_e) + if (secretBase->numSecretBasesReceived > secretBases[i].numSecretBasesReceived) { ClearSecretBase(&secretBases[i]); return FALSE; } - secretBases[i].sbr_field_1_0 = base->sbr_field_1_0; - - ClearSecretBase(base); + secretBases[i].sbr_field_1_0 = secretBase->sbr_field_1_0; + ClearSecretBase(secretBase); return TRUE; } } @@ -1592,15 +1533,15 @@ bool8 sub_80EAD14(struct SecretBaseRecord *base, struct SecretBaseRecord *secret return FALSE; } -void sub_80EAD94(struct SecretBaseRecord *basesA, struct SecretBaseRecord *basesB, struct SecretBaseRecord *basesC, struct SecretBaseRecord *basesD) +void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC, struct SecretBase *basesD) { u8 i; - for (i = 1; i < SECRET_BASES_COUNT; i ++) + for (i = 1; i < SECRET_BASES_COUNT; i++) { if (basesA[i].secretBaseId) { - if (basesA[i].sbr_field_1_6 == 1) + if (basesA[i].registryStatus == 1) { basesA[i].sbr_field_1_0 = 1; } @@ -1613,32 +1554,32 @@ void sub_80EAD94(struct SecretBaseRecord *basesA, struct SecretBaseRecord *bases } } } - for (i = 0; i < SECRET_BASES_COUNT; i ++) + for (i = 0; i < SECRET_BASES_COUNT; i++) { if (basesB[i].secretBaseId) { - basesB[i].sbr_field_1_5 = 0; + basesB[i].battledOwnerToday = 0; if (!sub_80EAD14(&basesB[i], basesC, i)) { sub_80EAD14(&basesB[i], basesD, i); } } } - for (i = 0; i < SECRET_BASES_COUNT; i ++) + for (i = 0; i < SECRET_BASES_COUNT; i++) { if (basesC[i].secretBaseId) { - basesC[i].sbr_field_1_5 = 0; + basesC[i].battledOwnerToday = 0; sub_80EAD14(&basesC[i], basesD, i); } if (basesD[i].secretBaseId) { - basesD[i].sbr_field_1_5 = 0; + basesD[i].battledOwnerToday = 0; } } } -void sub_80EAE90(struct SecretBaseRecord *base, u32 version, u32 language) +void sub_80EAE90(struct SecretBase *base, u32 version, u32 language) { if (base->sbr_field_1_0 == 1) { @@ -1651,22 +1592,22 @@ void sub_80EAEB4(struct SecretBaseRecordMixer *mixers) { u16 i; - for (i = 0; i < SECRET_BASES_COUNT; i ++) + for (i = 0; i < SECRET_BASES_COUNT; i++) { - sub_80EAE90(&mixers[0].records[i], mixers[0].version, mixers[0].language); - sub_80EAE90(&mixers[1].records[i], mixers[1].version, mixers[1].language); - sub_80EAE90(&mixers[2].records[i], mixers[2].version, mixers[2].language); + sub_80EAE90(&mixers[0].secretBases[i], mixers[0].version, mixers[0].language); + sub_80EAE90(&mixers[1].secretBases[i], mixers[1].version, mixers[1].language); + sub_80EAE90(&mixers[2].secretBases[i], mixers[2].version, mixers[2].language); } } void sub_80EAEF4(struct SecretBaseRecordMixer *mixers) { - DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(mixers[0].records, mixers[1].records, mixers[2].records); - sub_80EAD94(gSaveBlock1Ptr->secretBases, mixers[0].records, mixers[1].records, mixers[2].records); + DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(mixers[0].secretBases, mixers[1].secretBases, mixers[2].secretBases); + sub_80EAD94(gSaveBlock1Ptr->secretBases, mixers[0].secretBases, mixers[1].secretBases, mixers[2].secretBases); sub_80EAEB4(mixers); - sub_80EAA64(mixers[0].records, mixers[0].version, mixers[0].language); - sub_80EAA64(mixers[1].records, mixers[1].version, mixers[1].language); - sub_80EAA64(mixers[2].records, mixers[2].version, mixers[2].language); + sub_80EAA64(mixers[0].secretBases, mixers[0].version, mixers[0].language); + sub_80EAA64(mixers[1].secretBases, mixers[1].version, mixers[1].language); + sub_80EAA64(mixers[2].secretBases, mixers[2].version, mixers[2].language); sub_80EABA4(&mixers[0], 1); sub_80EABA4(&mixers[1], 1); sub_80EABA4(&mixers[2], 1); @@ -1675,7 +1616,7 @@ void sub_80EAEF4(struct SecretBaseRecordMixer *mixers) sub_80EABA4(&mixers[2], 0); } -void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx) +void ReceiveSecretBasesData(void *secretBases, size_t recordSize, u8 linkIdx) { struct SecretBaseRecordMixer mixers[3]; u16 i; @@ -1684,95 +1625,97 @@ void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx) { switch (GetLinkPlayerCount()) { - case 2: - memset(records + 2 * recordSize, 0, recordSize); - memset(records + 3 * recordSize, 0, recordSize); - break; - case 3: - memset(records + 3 * recordSize, 0, recordSize); - break; + case 2: + memset(secretBases + 2 * recordSize, 0, recordSize); + memset(secretBases + 3 * recordSize, 0, recordSize); + break; + case 3: + memset(secretBases + 3 * recordSize, 0, recordSize); + break; } + switch (linkIdx) { - case 0: - mixers[0].records = records + 1 * recordSize; - mixers[0].version = gLinkPlayers[1].version & 0xFF; - mixers[0].language = gLinkPlayers[1].language; - mixers[1].records = records + 2 * recordSize; - mixers[1].version = gLinkPlayers[2].version & 0xFF; - mixers[1].language = gLinkPlayers[2].language; - mixers[2].records = records + 3 * recordSize; - mixers[2].version = gLinkPlayers[3].version & 0xFF; - mixers[2].language = gLinkPlayers[3].language; - break; - case 1: - mixers[0].records = records + 2 * recordSize; - mixers[0].version = gLinkPlayers[2].version & 0xFF; - mixers[0].language = gLinkPlayers[2].language; - mixers[1].records = records + 3 * recordSize; - mixers[1].version = gLinkPlayers[3].version & 0xFF; - mixers[1].language = gLinkPlayers[3].language; - mixers[2].records = records + 0 * recordSize; - mixers[2].version = gLinkPlayers[0].version & 0xFF; - mixers[2].language = gLinkPlayers[0].language; - break; - case 2: - mixers[0].records = records + 3 * recordSize; - mixers[0].version = gLinkPlayers[3].version & 0xFF; - mixers[0].language = gLinkPlayers[3].language; - mixers[1].records = records + 0 * recordSize; - mixers[1].version = gLinkPlayers[0].version & 0xFF; - mixers[1].language = gLinkPlayers[0].language; - mixers[2].records = records + 1 * recordSize; - mixers[2].version = gLinkPlayers[1].version & 0xFF; - mixers[2].language = gLinkPlayers[1].language; - break; - case 3: - mixers[0].records = records + 0 * recordSize; - mixers[0].version = gLinkPlayers[0].version & 0xFF; - mixers[0].language = gLinkPlayers[0].language; - mixers[1].records = records + 1 * recordSize; - mixers[1].version = gLinkPlayers[1].version & 0xFF; - mixers[1].language = gLinkPlayers[1].language; - mixers[2].records = records + 2 * recordSize; - mixers[2].version = gLinkPlayers[2].version & 0xFF; - mixers[2].language = gLinkPlayers[2].language; - break; + case 0: + mixers[0].secretBases = secretBases + 1 * recordSize; + mixers[0].version = gLinkPlayers[1].version & 0xFF; + mixers[0].language = gLinkPlayers[1].language; + mixers[1].secretBases = secretBases + 2 * recordSize; + mixers[1].version = gLinkPlayers[2].version & 0xFF; + mixers[1].language = gLinkPlayers[2].language; + mixers[2].secretBases = secretBases + 3 * recordSize; + mixers[2].version = gLinkPlayers[3].version & 0xFF; + mixers[2].language = gLinkPlayers[3].language; + break; + case 1: + mixers[0].secretBases = secretBases + 2 * recordSize; + mixers[0].version = gLinkPlayers[2].version & 0xFF; + mixers[0].language = gLinkPlayers[2].language; + mixers[1].secretBases = secretBases + 3 * recordSize; + mixers[1].version = gLinkPlayers[3].version & 0xFF; + mixers[1].language = gLinkPlayers[3].language; + mixers[2].secretBases = secretBases + 0 * recordSize; + mixers[2].version = gLinkPlayers[0].version & 0xFF; + mixers[2].language = gLinkPlayers[0].language; + break; + case 2: + mixers[0].secretBases = secretBases + 3 * recordSize; + mixers[0].version = gLinkPlayers[3].version & 0xFF; + mixers[0].language = gLinkPlayers[3].language; + mixers[1].secretBases = secretBases + 0 * recordSize; + mixers[1].version = gLinkPlayers[0].version & 0xFF; + mixers[1].language = gLinkPlayers[0].language; + mixers[2].secretBases = secretBases + 1 * recordSize; + mixers[2].version = gLinkPlayers[1].version & 0xFF; + mixers[2].language = gLinkPlayers[1].language; + break; + case 3: + mixers[0].secretBases = secretBases + 0 * recordSize; + mixers[0].version = gLinkPlayers[0].version & 0xFF; + mixers[0].language = gLinkPlayers[0].language; + mixers[1].secretBases = secretBases + 1 * recordSize; + mixers[1].version = gLinkPlayers[1].version & 0xFF; + mixers[1].language = gLinkPlayers[1].language; + mixers[2].secretBases = secretBases + 2 * recordSize; + mixers[2].version = gLinkPlayers[2].version & 0xFF; + mixers[2].language = gLinkPlayers[2].language; + break; } + sub_80EAEF4(mixers); - for (i = 1; i < SECRET_BASES_COUNT; i ++) + for (i = 1; i < SECRET_BASES_COUNT; i++) { if (gSaveBlock1Ptr->secretBases[i].sbr_field_1_0 == 1) { - gSaveBlock1Ptr->secretBases[i].sbr_field_1_6 = 1; + gSaveBlock1Ptr->secretBases[i].registryStatus = 1; gSaveBlock1Ptr->secretBases[i].sbr_field_1_0 = 0; } } - sub_80EAAF4(); - for (i = 1; i < SECRET_BASES_COUNT; i ++) + + SortSecretBasesByRegistryStatus(); + for (i = 1; i < SECRET_BASES_COUNT; i++) { - if (gSaveBlock1Ptr->secretBases[i].sbr_field_1_6 == 2) + if (gSaveBlock1Ptr->secretBases[i].registryStatus == 2) { - gSaveBlock1Ptr->secretBases[i].sbr_field_1_6 = 0; + gSaveBlock1Ptr->secretBases[i].registryStatus = 0; } } - if (gSaveBlock1Ptr->secretBases[0].secretBaseId != 0 && gSaveBlock1Ptr->secretBases[0].sbr_field_e != 0xFFFF) + + if (gSaveBlock1Ptr->secretBases[0].secretBaseId != 0 + && gSaveBlock1Ptr->secretBases[0].numSecretBasesReceived != 0xFFFF) { - gSaveBlock1Ptr->secretBases[0].sbr_field_e ++; + gSaveBlock1Ptr->secretBases[0].numSecretBasesReceived++; } } } -void sub_80EB18C(struct SecretBaseRecord *bases) +void ClearJapaneseSecretBases(struct SecretBase *bases) { u32 i; - - for (i = 0; i < SECRET_BASES_COUNT; i ++) + for (i = 0; i < SECRET_BASES_COUNT; i++) { if (bases[i].language == LANGUAGE_JAPANESE) - { ClearSecretBase(&bases[i]); - } } } @@ -1783,22 +1726,19 @@ void sub_80EB1AC(void) VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, 0); VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, 0); if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, TRUE); - } else - { VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); - } - gInFriendSecretBase = FALSE; + + sInFriendSecretBase = FALSE; } void sub_80EB218(void) { - if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && gInFriendSecretBase == TRUE && !CurrentMapIsSecretBase()) + if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && sInFriendSecretBase == TRUE && !CurMapIsSecretBase()) { VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); - gInFriendSecretBase = FALSE; + sInFriendSecretBase = FALSE; sub_80EEA70(); VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0); VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0); @@ -1811,17 +1751,13 @@ void sub_80EB218(void) void sub_80EB290(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x800); - } } void sub_80EB2C8(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x400); - } } void sub_80EB300(void) @@ -1864,10 +1800,9 @@ void sub_80EB438(void) } } -void sub_80EB498(void) +void SetSecretBaseSecretsTvFlags_Poster(void) { - s16 x; - s16 y; + s16 x, y; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); switch (MapGridGetMetatileIdAt(x, y)) @@ -1888,27 +1823,23 @@ void sub_80EB498(void) case 0x333: case 0x334: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x4000); - } break; } } -void sub_80EB56C(void) +void SetSecretBaseSecretsTvFlags_MiscFurnature(void) { - s16 x; - s16 y; + s16 x, y; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); switch (MapGridGetMetatileIdAt(x, y)) { case 0x28a: case 0x28b: + // Bird Statue if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x40); - } break; case 0x2d8: case 0x2d9: @@ -1928,32 +1859,28 @@ void sub_80EB56C(void) case 0x2f9: case 0x2fa: case 0x2fb: + // Plants if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8); - } break; case 0x22c: case 0x233: + // Fence if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x40); - } break; case 0x288: case 0x289: + // Tire if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100); - } break; case 0x22d: case 0x22e: case 0x22f: + // Bricks if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10); - } break; case 0x287: case 0x28f: @@ -1978,18 +1905,16 @@ void sub_80EB56C(void) case 0x2cd: case 0x2ce: case 0x2cf: + // Tables if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); - } break; } } -void sub_80EB9E0(void) +void SetSecretBaseSecretsTvFlags_LargeDecorationSpot(void) { - s16 x; - s16 y; + s16 x, y; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); switch (MapGridGetMetatileIdAt(x, y)) @@ -2006,17 +1931,14 @@ void sub_80EB9E0(void) case 0x2c3: case 0x2c6: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); - } break; } } -void sub_80EBB28(void) +void SetSecretBaseSecretsTvFlags_SmallDecorationSpot(void) { - s16 x; - s16 y; + s16 x, y; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); switch (MapGridGetMetatileIdAt(x, y)) @@ -2044,42 +1966,34 @@ void sub_80EBB28(void) case 0x2c5: case 0x2c7: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); - } break; case 0x280: case 0x281: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100); - } break; case 0x225: case 0x226: case 0x227: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10); - } break; } } -void sub_80EBE7C(void) +void SetSecretBaseSecretsTvFlags_SandOrnament(void) { - s16 x; - s16 y; + s16 x, y; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); switch ((int)MapGridGetMetatileIdAt(x, y)) { case 0x28d: case 0x28e: + // Sand Ornament if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4); - } break; } } diff --git a/src/strings.c b/src/strings.c index 577d26f5c..44c2ae1a2 100644 --- a/src/strings.c +++ b/src/strings.c @@ -529,7 +529,7 @@ const u8 gText_ApostropheSBase[] = _("'s BASE"); const u8 gText_OkayToDeleteFromRegistry[] = _("Is it okay to delete {STR_VAR_1}\nfrom the REGISTRY?"); const u8 gText_RegisteredDataDeleted[] = _("The registered data was deleted.{PAUSE_UNTIL_PRESS}"); const u8 gText_NoRegistry[] = _("There is no REGISTRY.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_085EA79D[] = _("DEL REGIST."); +const u8 gText_DelRegist[] = _("DEL REGIST."); const u8 gUnknown_085EA7A9[] = _("{STR_VAR_3}{STR_VAR_1}/{STR_VAR_2}"); const u8 gText_Decorate[] = _("DECORATE"); const u8 gText_PutAway[] = _("PUT AWAY"); diff --git a/src/tv.c b/src/tv.c index 7b5252add..01b43f100 100644 --- a/src/tv.c +++ b/src/tv.c @@ -2567,7 +2567,7 @@ void sub_80EEA70(void) show->secretBaseSecrets.active = FALSE; StringCopy(show->secretBaseSecrets.playerName, gSaveBlock2Ptr->playerName); show->secretBaseSecrets.stepsInBase = VarGet(VAR_SECRET_BASE_STEP_COUNTER); - sub_80E980C(); + CopyCurSecretBaseOwnerName_StrVar1(); StringCopy(strbuf, gStringVar1); StripExtCtrlCodes(strbuf); StringCopy(show->secretBaseSecrets.baseOwnersName, strbuf); @@ -7366,7 +7366,7 @@ u8 TVShowGetFlagCount(TVShow *show) return tot; } -u8 TVShowGetStateForFlagNumber(TVShow *show, u8 a1) +static u8 SecretBaseSecrets_GetStateForFlagNumber(TVShow *show, u8 a1) { u8 i; u8 tot; @@ -7409,7 +7409,7 @@ static void DoTVShowSecretBaseSecrets(void) { show->secretBaseSecrets.savedState = 1; sTVSecretBaseSecretsRandomValues[0] = Random() % bitCount; - sTVShowState = TVShowGetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]); + sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]); } break; case 1: @@ -7424,11 +7424,11 @@ static void DoTVShowSecretBaseSecrets(void) show->secretBaseSecrets.savedState = 2; if (sTVSecretBaseSecretsRandomValues[0] == 0) { - sTVShowState = TVShowGetStateForFlagNumber(show, 1); + sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, 1); } else { - sTVShowState = TVShowGetStateForFlagNumber(show, 0); + sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, 0); } break; default: @@ -7441,7 +7441,7 @@ static void DoTVShowSecretBaseSecrets(void) } } show->secretBaseSecrets.savedState = 2; - sTVShowState = TVShowGetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]); + sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]); break; } break; @@ -7463,7 +7463,7 @@ static void DoTVShowSecretBaseSecrets(void) } } show->secretBaseSecrets.savedState = 3; - sTVShowState = TVShowGetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]); + sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]); } break; case 3: diff --git a/src/union_room_player_avatar.c b/src/union_room_player_avatar.c index 61be86a37..4c302c5eb 100644 --- a/src/union_room_player_avatar.c +++ b/src/union_room_player_avatar.c @@ -125,7 +125,7 @@ static void SetUnionRoomPlayerGfx(u32 playerIdx, u32 gfxId) static void CreateUnionRoomPlayerEventObject(u32 playerIdx) { - show_sprite(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + TrySpawnEventObject(gUnknown_082F0774[playerIdx], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); } static void RemoveUnionRoomPlayerEventObject(u32 playerIdx) -- cgit v1.2.3 From 311c1b9cba09507ce7d4d99cd58735c8d0363164 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 6 Apr 2019 14:34:13 +0200 Subject: Change anim tag names --- src/battle_anim.c | 372 +++++++++++++++++++++++++++--------------------------- 1 file changed, 186 insertions(+), 186 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index 88de3ee88..b7fee6f2d 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1130,137 +1130,137 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteSheet_001, 0x0300, ANIM_TAG_SPARK}, {gBattleAnimSpriteSheet_002, 0x0200, ANIM_TAG_PENCIL}, {gBattleAnimSpriteSheet_003, 0x0100, ANIM_TAG_AIR_WAVE}, - {gBattleAnimSpriteSheet_004, 0x0200, ANIM_TAG_UNUSED_ORB}, + {gBattleAnimSpriteSheet_004, 0x0200, ANIM_TAG_ORB}, {gBattleAnimSpriteSheet_005, 0x0400, ANIM_TAG_SWORD}, {gBattleAnimSpriteSheet_006, 0x0180, ANIM_TAG_SEED}, - {gBattleAnimSpriteSheet_007, 0x0800, ANIM_TAG_UNUSED_EXPLOSION}, - {gBattleAnimSpriteSheet_008, 0x0020, ANIM_TAG_UNUSED_PINK_ORB}, + {gBattleAnimSpriteSheet_007, 0x0800, ANIM_TAG_EXPLOSION_6}, + {gBattleAnimSpriteSheet_008, 0x0020, ANIM_TAG_PINK_ORB}, {gBattleAnimSpriteSheet_009, 0x0400, ANIM_TAG_GUST}, {gBattleAnimSpriteSheet_010, 0x1200, ANIM_TAG_ICE_CUBE}, {gBattleAnimSpriteSheet_011, 0x0180, ANIM_TAG_SPARK_2}, - {gBattleAnimSpriteSheet_012, 0x0080, ANIM_TAG_UNUSED_ORANGE}, + {gBattleAnimSpriteSheet_012, 0x0080, ANIM_TAG_ORANGE}, {gBattleAnimSpriteSheet_013, 0x0080, ANIM_TAG_YELLOW_BALL}, {gBattleAnimSpriteSheet_014, 0x0280, ANIM_TAG_LOCK_ON}, {gBattleAnimSpriteSheet_015, 0x0080, ANIM_TAG_TIED_BAG}, {gBattleAnimSpriteSheet_016, 0x0100, ANIM_TAG_BLACK_SMOKE}, {gBattleAnimSpriteSheet_017, 0x0020, ANIM_TAG_BLACK_BALL}, {gBattleAnimSpriteSheet_018, 0x0080, ANIM_TAG_CONVERSION}, - {gBattleAnimSpriteSheet_019, 0x0400, ANIM_TAG_UNUSED_GLASS}, + {gBattleAnimSpriteSheet_019, 0x0400, ANIM_TAG_GLASS}, {gBattleAnimSpriteSheet_020, 0x0200, ANIM_TAG_HORN_HIT}, - {gBattleAnimSpriteSheet_021, 0x0A00, ANIM_TAG_UNUSED_HIT}, - {gBattleAnimSpriteSheet_021, 0x0A00, ANIM_TAG_UNUSED_HIT_2}, - {gBattleAnimSpriteSheet_023, 0x0380, ANIM_TAG_UNUSED_BLUE_SHARDS}, - {gBattleAnimSpriteSheet_024, 0x0300, ANIM_TAG_UNUSED_CLOSING_EYE}, - {gBattleAnimSpriteSheet_025, 0x0A00, ANIM_TAG_UNUSED_WAVING_HAND}, - {gBattleAnimSpriteSheet_026, 0x0A00, ANIM_TAG_UNUSED_HIT_DUPLICATE}, + {gBattleAnimSpriteSheet_021, 0x0A00, ANIM_TAG_HIT}, + {gBattleAnimSpriteSheet_021, 0x0A00, ANIM_TAG_HIT_2}, + {gBattleAnimSpriteSheet_023, 0x0380, ANIM_TAG_BLUE_SHARDS}, + {gBattleAnimSpriteSheet_024, 0x0300, ANIM_TAG_CLOSING_EYE}, + {gBattleAnimSpriteSheet_025, 0x0A00, ANIM_TAG_WAVING_HAND}, + {gBattleAnimSpriteSheet_026, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, {gBattleAnimSpriteSheet_027, 0x0A00, ANIM_TAG_LEER}, - {gBattleAnimSpriteSheet_028, 0x0A00, ANIM_TAG_UNUSED_BLUE_BURST}, + {gBattleAnimSpriteSheet_028, 0x0A00, ANIM_TAG_BLUE_BURST}, {gBattleAnimSpriteSheet_029, 0x0A00, ANIM_TAG_SMALL_EMBER}, {gBattleAnimSpriteSheet_030, 0x0A00, ANIM_TAG_GRAY_SMOKE}, {gBattleAnimSpriteSheet_031, 0x0E00, ANIM_TAG_BLUE_STAR}, - {gBattleAnimSpriteSheet_032, 0x0380, ANIM_TAG_UNUSED_BUBBLE_BURST}, + {gBattleAnimSpriteSheet_032, 0x0380, ANIM_TAG_BUBBLE_BURST}, {gBattleAnimSpriteSheet_033, 0x1000, ANIM_TAG_FIRE}, - {gBattleAnimSpriteSheet_034, 0x0800, ANIM_TAG_UNUSED_SPINNING_FIRE}, + {gBattleAnimSpriteSheet_034, 0x0800, ANIM_TAG_SPINNING_FIRE}, {gBattleAnimSpriteSheet_035, 0x0A00, ANIM_TAG_FIRE_PLUME}, - {gBattleAnimSpriteSheet_036, 0x0800, ANIM_TAG_UNUSED_LIGHTNING}, + {gBattleAnimSpriteSheet_036, 0x0800, ANIM_TAG_LIGHTNING_2}, {gBattleAnimSpriteSheet_037, 0x0A00, ANIM_TAG_LIGHTNING}, - {gBattleAnimSpriteSheet_038, 0x0A00, ANIM_TAG_UNUSED_CLAW_SLASH}, + {gBattleAnimSpriteSheet_038, 0x0A00, ANIM_TAG_CLAW_SLASH_2}, {gBattleAnimSpriteSheet_039, 0x0A00, ANIM_TAG_CLAW_SLASH}, - {gBattleAnimSpriteSheet_040, 0x0A00, ANIM_TAG_UNUSED_SCRATCH}, - {gBattleAnimSpriteSheet_041, 0x0A00, ANIM_TAG_UNUSED_SCRATCH_2}, - {gBattleAnimSpriteSheet_042, 0x0A00, ANIM_TAG_UNUSED_BUBBLE_BURST_2}, + {gBattleAnimSpriteSheet_040, 0x0A00, ANIM_TAG_SCRATCH_3}, + {gBattleAnimSpriteSheet_041, 0x0A00, ANIM_TAG_SCRATCH_2}, + {gBattleAnimSpriteSheet_042, 0x0A00, ANIM_TAG_BUBBLE_BURST_2}, {gBattleAnimSpriteSheet_043, 0x0A00, ANIM_TAG_ICE_CHUNK}, - {gBattleAnimSpriteSheet_044, 0x0A00, ANIM_TAG_UNUSED_GLASS_2}, - {gBattleAnimSpriteSheet_045, 0x0A00, ANIM_TAG_UNUSED_PINK_HEART}, - {gBattleAnimSpriteSheet_046, 0x1000, ANIM_TAG_UNUSED_SAP_DRIP}, - {gBattleAnimSpriteSheet_046, 0x1000, ANIM_TAG_UNUSED_SAP_DRIP_2}, + {gBattleAnimSpriteSheet_044, 0x0A00, ANIM_TAG_GLASS_2}, + {gBattleAnimSpriteSheet_045, 0x0A00, ANIM_TAG_PINK_HEART_2}, + {gBattleAnimSpriteSheet_046, 0x1000, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpriteSheet_046, 0x1000, ANIM_TAG_SAP_DRIP_2}, {gBattleAnimSpriteSheet_048, 0x1000, ANIM_TAG_SPARKLE_1}, {gBattleAnimSpriteSheet_048, 0x1000, ANIM_TAG_SPARKLE_2}, {gBattleAnimSpriteSheet_050, 0x0200, ANIM_TAG_HUMANOID_FOOT}, - {gBattleAnimSpriteSheet_051, 0x0200, ANIM_TAG_UNUSED_MONSTER_FOOT}, - {gBattleAnimSpriteSheet_052, 0x0200, ANIM_TAG_UNUSED_HUMANOID_HAND}, + {gBattleAnimSpriteSheet_051, 0x0200, ANIM_TAG_MONSTER_FOOT}, + {gBattleAnimSpriteSheet_052, 0x0200, ANIM_TAG_HUMANOID_HAND}, {gBattleAnimSpriteSheet_053, 0x0800, ANIM_TAG_NOISE_LINE}, - {gBattleAnimSpriteSheet_054, 0x0080, ANIM_TAG_UNUSED_YELLOW_UNK}, - {gBattleAnimSpriteSheet_055, 0x0200, ANIM_TAG_UNUSED_RED_FIST}, + {gBattleAnimSpriteSheet_054, 0x0080, ANIM_TAG_YELLOW_UNK}, + {gBattleAnimSpriteSheet_055, 0x0200, ANIM_TAG_RED_FIST}, {gBattleAnimSpriteSheet_056, 0x1000, ANIM_TAG_SLAM_HIT}, - {gBattleAnimSpriteSheet_057, 0x0180, ANIM_TAG_UNUSED_RING}, + {gBattleAnimSpriteSheet_057, 0x0180, ANIM_TAG_RING}, {gBattleAnimSpriteSheet_058, 0x0C00, ANIM_TAG_ROCKS}, - {gBattleAnimSpriteSheet_059, 0x0100, ANIM_TAG_UNUSED_Z}, - {gBattleAnimSpriteSheet_060, 0x0040, ANIM_TAG_UNUSED_YELLOW_UNK_2}, - {gBattleAnimSpriteSheet_061, 0x0180, ANIM_TAG_UNUSED_AIR_SLASH}, - {gBattleAnimSpriteSheet_062, 0x0800, ANIM_TAG_UNUSED_SPINNING_GREEN_ORBS}, + {gBattleAnimSpriteSheet_059, 0x0100, ANIM_TAG_Z}, + {gBattleAnimSpriteSheet_060, 0x0040, ANIM_TAG_YELLOW_UNK_2}, + {gBattleAnimSpriteSheet_061, 0x0180, ANIM_TAG_AIR_SLASH}, + {gBattleAnimSpriteSheet_062, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, {gBattleAnimSpriteSheet_063, 0x0480, ANIM_TAG_LEAF}, {gBattleAnimSpriteSheet_064, 0x0200, ANIM_TAG_FINGER}, {gBattleAnimSpriteSheet_065, 0x0200, ANIM_TAG_POISON_POWDER}, - {gBattleAnimSpriteSheet_066, 0x0100, ANIM_TAG_UNUSED_BROWN_TRIANGLE}, + {gBattleAnimSpriteSheet_066, 0x0100, ANIM_TAG_BROWN_TRIANGLE}, {gBattleAnimSpriteSheet_065, 0x0200, ANIM_TAG_SLEEP_POWDER}, {gBattleAnimSpriteSheet_065, 0x0200, ANIM_TAG_STUN_SPORE}, - {gBattleAnimSpriteSheet_065, 0x0200, ANIM_TAG_UNUSED_POWDER}, + {gBattleAnimSpriteSheet_065, 0x0200, ANIM_TAG_POWDER}, {gBattleAnimSpriteSheet_070, 0x0200, ANIM_TAG_SPARKLE_3}, {gBattleAnimSpriteSheet_071, 0x0A00, ANIM_TAG_SPARKLE_4}, {gBattleAnimSpriteSheet_072, 0x0300, ANIM_TAG_MUSIC_NOTES}, {gBattleAnimSpriteSheet_073, 0x0180, ANIM_TAG_DUCK}, {gBattleAnimSpriteSheet_074, 0x00A0, ANIM_TAG_MUD_SAND}, {gBattleAnimSpriteSheet_075, 0x0700, ANIM_TAG_ALERT}, - {gBattleAnimSpriteSheet_076, 0x0400, ANIM_TAG_UNUSED_BLUE_FLAMES}, - {gBattleAnimSpriteSheet_077, 0x0200, ANIM_TAG_UNUSED_BLUE_FLAMES_2}, - {gBattleAnimSpriteSheet_078, 0x0300, ANIM_TAG_UNUSED_SHOCK}, + {gBattleAnimSpriteSheet_076, 0x0400, ANIM_TAG_BLUE_FLAMES}, + {gBattleAnimSpriteSheet_077, 0x0200, ANIM_TAG_BLUE_FLAMES_2}, + {gBattleAnimSpriteSheet_078, 0x0300, ANIM_TAG_SHOCK_4}, {gBattleAnimSpriteSheet_079, 0x0C00, ANIM_TAG_SHOCK}, - {gBattleAnimSpriteSheet_080, 0x0A00, ANIM_TAG_UNUSED_BELL}, - {gBattleAnimSpriteSheet_081, 0x0080, ANIM_TAG_UNUSED_PINK_GLOVE}, - {gBattleAnimSpriteSheet_082, 0x0040, ANIM_TAG_UNUSED_BLUE_LINES}, - {gBattleAnimSpriteSheet_083, 0x0E00, ANIM_TAG_UNUSED_IMPACT}, - {gBattleAnimSpriteSheet_084, 0x0E00, ANIM_TAG_UNUSED_IMPACT_2}, - {gBattleAnimSpriteSheet_085, 0x0280, ANIM_TAG_UNUSED_RETICLE}, + {gBattleAnimSpriteSheet_080, 0x0A00, ANIM_TAG_BELL_2}, + {gBattleAnimSpriteSheet_081, 0x0080, ANIM_TAG_PINK_GLOVE}, + {gBattleAnimSpriteSheet_082, 0x0040, ANIM_TAG_BLUE_LINES}, + {gBattleAnimSpriteSheet_083, 0x0E00, ANIM_TAG_IMPACT_3}, + {gBattleAnimSpriteSheet_084, 0x0E00, ANIM_TAG_IMPACT_2}, + {gBattleAnimSpriteSheet_085, 0x0280, ANIM_TAG_RETICLE}, {gBattleAnimSpriteSheet_086, 0x0200, ANIM_TAG_BREATH}, {gBattleAnimSpriteSheet_087, 0x0080, ANIM_TAG_ANGER}, - {gBattleAnimSpriteSheet_088, 0x00C0, ANIM_TAG_UNUSED_SNOWBALL}, - {gBattleAnimSpriteSheet_089, 0x0A00, ANIM_TAG_UNUSED_VINE}, - {gBattleAnimSpriteSheet_090, 0x0200, ANIM_TAG_UNUSED_SWORD}, - {gBattleAnimSpriteSheet_091, 0x0180, ANIM_TAG_UNUSED_CLAPPING}, - {gBattleAnimSpriteSheet_092, 0x0080, ANIM_TAG_UNUSED_RED_TUBE}, + {gBattleAnimSpriteSheet_088, 0x00C0, ANIM_TAG_SNOWBALL}, + {gBattleAnimSpriteSheet_089, 0x0A00, ANIM_TAG_VINE}, + {gBattleAnimSpriteSheet_090, 0x0200, ANIM_TAG_SWORD_2}, + {gBattleAnimSpriteSheet_091, 0x0180, ANIM_TAG_CLAPPING}, + {gBattleAnimSpriteSheet_092, 0x0080, ANIM_TAG_RED_TUBE}, {gBattleAnimSpriteSheet_093, 0x1000, ANIM_TAG_AMNESIA}, - {gBattleAnimSpriteSheet_094, 0x0A00, ANIM_TAG_UNUSED_STRING}, - {gBattleAnimSpriteSheet_095, 0x0180, ANIM_TAG_UNUSED_PENCIL}, - {gBattleAnimSpriteSheet_096, 0x0380, ANIM_TAG_UNUSED_PETAL}, + {gBattleAnimSpriteSheet_094, 0x0A00, ANIM_TAG_STRING_2}, + {gBattleAnimSpriteSheet_095, 0x0180, ANIM_TAG_PENCIL_2}, + {gBattleAnimSpriteSheet_096, 0x0380, ANIM_TAG_PETAL}, {gBattleAnimSpriteSheet_097, 0x0C00, ANIM_TAG_BENT_SPOON}, - {gBattleAnimSpriteSheet_098, 0x0200, ANIM_TAG_UNUSED_WEB}, + {gBattleAnimSpriteSheet_098, 0x0200, ANIM_TAG_WEB}, {gBattleAnimSpriteSheet_099, 0x0200, ANIM_TAG_MILK_BOTTLE}, {gBattleAnimSpriteSheet_100, 0x0200, ANIM_TAG_COIN}, - {gBattleAnimSpriteSheet_101, 0x0200, ANIM_TAG_UNUSED_CRACKED_EGG}, - {gBattleAnimSpriteSheet_102, 0x0400, ANIM_TAG_UNUSED_HATCHED_EGG}, - {gBattleAnimSpriteSheet_103, 0x0080, ANIM_TAG_UNUSED_FRESH_EGG}, - {gBattleAnimSpriteSheet_104, 0x0400, ANIM_TAG_UNUSED_FANGS}, - {gBattleAnimSpriteSheet_105, 0x0c00, ANIM_TAG_UNUSED_EXPLOSION_2}, - {gBattleAnimSpriteSheet_106, 0x0200, ANIM_TAG_UNUSED_EXPLOSION_3}, - {gBattleAnimSpriteSheet_107, 0x1000, ANIM_TAG_UNUSED_WATER_DROPLET}, - {gBattleAnimSpriteSheet_108, 0x0a00, ANIM_TAG_UNUSED_WATER_DROPLET_2}, - {gBattleAnimSpriteSheet_109, 0x0020, ANIM_TAG_UNUSED_SEED}, - {gBattleAnimSpriteSheet_110, 0x0e00, ANIM_TAG_UNUSED_SPROUT}, - {gBattleAnimSpriteSheet_111, 0x0080, ANIM_TAG_UNUSED_RED_WAND}, - {gBattleAnimSpriteSheet_112, 0x0a00, ANIM_TAG_UNUSED_PURPLE_GREEN_UNK}, - {gBattleAnimSpriteSheet_113, 0x0400, ANIM_TAG_UNUSED_WATER_COLUMN}, - {gBattleAnimSpriteSheet_114, 0x0200, ANIM_TAG_UNUSED_MUD_UNK}, + {gBattleAnimSpriteSheet_101, 0x0200, ANIM_TAG_CRACKED_EGG}, + {gBattleAnimSpriteSheet_102, 0x0400, ANIM_TAG_HATCHED_EGG}, + {gBattleAnimSpriteSheet_103, 0x0080, ANIM_TAG_FRESH_EGG}, + {gBattleAnimSpriteSheet_104, 0x0400, ANIM_TAG_FANGS}, + {gBattleAnimSpriteSheet_105, 0x0c00, ANIM_TAG_EXPLOSION_2}, + {gBattleAnimSpriteSheet_106, 0x0200, ANIM_TAG_EXPLOSION_3}, + {gBattleAnimSpriteSheet_107, 0x1000, ANIM_TAG_WATER_DROPLET}, + {gBattleAnimSpriteSheet_108, 0x0a00, ANIM_TAG_WATER_DROPLET_2}, + {gBattleAnimSpriteSheet_109, 0x0020, ANIM_TAG_SEED_2}, + {gBattleAnimSpriteSheet_110, 0x0e00, ANIM_TAG_SPROUT}, + {gBattleAnimSpriteSheet_111, 0x0080, ANIM_TAG_RED_WAND}, + {gBattleAnimSpriteSheet_112, 0x0a00, ANIM_TAG_PURPLE_GREEN_UNK}, + {gBattleAnimSpriteSheet_113, 0x0400, ANIM_TAG_WATER_COLUMN}, + {gBattleAnimSpriteSheet_114, 0x0200, ANIM_TAG_MUD_UNK}, {gBattleAnimSpriteSheet_115, 0x0700, ANIM_TAG_RAIN_DROPS}, - {gBattleAnimSpriteSheet_116, 0x0800, ANIM_TAG_UNUSED_FURY_SWIPES}, - {gBattleAnimSpriteSheet_117, 0x0a00, ANIM_TAG_UNUSED_VINE_2}, - {gBattleAnimSpriteSheet_118, 0x0600, ANIM_TAG_UNUSED_TEETH}, - {gBattleAnimSpriteSheet_119, 0x0800, ANIM_TAG_UNUSED_BONE}, - {gBattleAnimSpriteSheet_120, 0x0200, ANIM_TAG_UNUSED_WHITE_BAG}, - {gBattleAnimSpriteSheet_121, 0x0040, ANIM_TAG_UNUSED_UNKNOWN}, - {gBattleAnimSpriteSheet_122, 0x0180, ANIM_TAG_UNUSED_PURPLE_CORAL}, - {gBattleAnimSpriteSheet_123, 0x0600, ANIM_TAG_UNUSED_PURPLE_DROPLET}, - {gBattleAnimSpriteSheet_124, 0x0600, ANIM_TAG_UNUSED_SHOCK_2}, - {gBattleAnimSpriteSheet_125, 0x0200, ANIM_TAG_UNUSED_CLOSING_EYE_2}, - {gBattleAnimSpriteSheet_126, 0x0080, ANIM_TAG_UNUSED_METAL_BALL}, - {gBattleAnimSpriteSheet_127, 0x0200, ANIM_TAG_UNUSED_MONSTER_DOLL}, - {gBattleAnimSpriteSheet_128, 0x0800, ANIM_TAG_UNUSED_WHIRLWIND}, - {gBattleAnimSpriteSheet_129, 0x0080, ANIM_TAG_UNUSED_WHIRLWIND_2}, - {gBattleAnimSpriteSheet_130, 0x0a00, ANIM_TAG_UNUSED_EXPLOSION_4}, - {gBattleAnimSpriteSheet_131, 0x0280, ANIM_TAG_UNUSED_EXPLOSION_5}, - {gBattleAnimSpriteSheet_132, 0x0280, ANIM_TAG_UNUSED_TONGUE}, - {gBattleAnimSpriteSheet_133, 0x0100, ANIM_TAG_UNUSED_SMOKE}, - {gBattleAnimSpriteSheet_134, 0x0200, ANIM_TAG_UNUSED_SMOKE_2}, + {gBattleAnimSpriteSheet_116, 0x0800, ANIM_TAG_FURY_SWIPES}, + {gBattleAnimSpriteSheet_117, 0x0a00, ANIM_TAG_VINE_2}, + {gBattleAnimSpriteSheet_118, 0x0600, ANIM_TAG_TEETH}, + {gBattleAnimSpriteSheet_119, 0x0800, ANIM_TAG_BONE_2}, + {gBattleAnimSpriteSheet_120, 0x0200, ANIM_TAG_WHITE_BAG}, + {gBattleAnimSpriteSheet_121, 0x0040, ANIM_TAG_UNKNOWN}, + {gBattleAnimSpriteSheet_122, 0x0180, ANIM_TAG_PURPLE_CORAL}, + {gBattleAnimSpriteSheet_123, 0x0600, ANIM_TAG_PURPLE_DROPLET}, + {gBattleAnimSpriteSheet_124, 0x0600, ANIM_TAG_SHOCK_2}, + {gBattleAnimSpriteSheet_125, 0x0200, ANIM_TAG_CLOSING_EYE_2}, + {gBattleAnimSpriteSheet_126, 0x0080, ANIM_TAG_METAL_BALL}, + {gBattleAnimSpriteSheet_127, 0x0200, ANIM_TAG_MONSTER_DOLL}, + {gBattleAnimSpriteSheet_128, 0x0800, ANIM_TAG_WHIRLWIND}, + {gBattleAnimSpriteSheet_129, 0x0080, ANIM_TAG_WHIRLWIND_2}, + {gBattleAnimSpriteSheet_130, 0x0a00, ANIM_TAG_EXPLOSION_4}, + {gBattleAnimSpriteSheet_131, 0x0280, ANIM_TAG_EXPLOSION_5}, + {gBattleAnimSpriteSheet_132, 0x0280, ANIM_TAG_TONGUE}, + {gBattleAnimSpriteSheet_133, 0x0100, ANIM_TAG_SMOKE}, + {gBattleAnimSpriteSheet_134, 0x0200, ANIM_TAG_SMOKE_2}, {gBattleAnimSpriteSheet_135, 0x0200, ANIM_TAG_IMPACT}, {gBattleAnimSpriteSheet_136, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, {gBattleAnimSpriteSheet_137, 0x0a00, ANIM_TAG_SCRATCH}, @@ -1304,11 +1304,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteSheet_175, 0x0080, ANIM_TAG_LARGE_FRESH_EGG}, {gBattleAnimSpriteSheet_176, 0x0200, ANIM_TAG_SHADOW_BALL}, {gBattleAnimSpriteSheet_177, 0x0500, ANIM_TAG_LICK}, - {gBattleAnimSpriteSheet_178, 0x0800, ANIM_TAG_UNUSED_VOID_LINES}, + {gBattleAnimSpriteSheet_178, 0x0800, ANIM_TAG_VOID_LINES}, {gBattleAnimSpriteSheet_179, 0x0400, ANIM_TAG_STRING}, {gBattleAnimSpriteSheet_180, 0x0020, ANIM_TAG_WEB_THREAD}, {gBattleAnimSpriteSheet_181, 0x0800, ANIM_TAG_SPIDER_WEB}, - {gBattleAnimSpriteSheet_182, 0x0100, ANIM_TAG_UNUSED_LIGHTBULB}, + {gBattleAnimSpriteSheet_182, 0x0100, ANIM_TAG_LIGHTBULB}, {gBattleAnimSpriteSheet_183, 0x0800, ANIM_TAG_SLASH}, {gBattleAnimSpriteSheet_184, 0x0400, ANIM_TAG_FOCUS_ENERGY}, {gBattleAnimSpriteSheet_185, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, @@ -1330,7 +1330,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteSheet_201, 0x0a80, ANIM_TAG_WARM_ROCK}, {gBattleAnimSpriteSheet_202, 0x0600, ANIM_TAG_BREAKING_EGG}, {gBattleAnimSpriteSheet_203, 0x0800, ANIM_TAG_THIN_RING}, - {gBattleAnimSpriteSheet_204, 0x0200, ANIM_TAG_UNUSED_PUNCH_IMPACT}, + {gBattleAnimSpriteSheet_204, 0x0200, ANIM_TAG_PUNCH_IMPACT}, {gBattleAnimSpriteSheet_205, 0x0600, ANIM_TAG_BELL}, {gBattleAnimSpriteSheet_206, 0x0800, ANIM_TAG_MUSIC_NOTES_2}, {gBattleAnimSpriteSheet_207, 0x0180, ANIM_TAG_SPEED_DUST}, @@ -1395,17 +1395,17 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteSheet_266, 0x0080, ANIM_TAG_GREEN_SPIKE}, {gBattleAnimSpriteSheet_212, 0x0800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, {gBattleAnimSpriteSheet_264, 0x0020, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpriteSheet_269, 0x0080, ANIM_TAG_UNUSED_RED_BRICK}, + {gBattleAnimSpriteSheet_269, 0x0080, ANIM_TAG_RED_BRICK}, {gBattleAnimSpriteSheet_270, 0x0400, ANIM_TAG_WHITE_FEATHER}, {gBattleAnimSpriteSheet_271, 0x0080, ANIM_TAG_SPARKLE_6}, {gBattleAnimSpriteSheet_272, 0x0800, ANIM_TAG_SPLASH}, {gBattleAnimSpriteSheet_273, 0x0020, ANIM_TAG_SWEAT_BEAD}, - {gBattleAnimSpriteSheet_274, 0x0800, ANIM_TAG_UNUSED_GEM_1}, - {gBattleAnimSpriteSheet_275, 0x0800, ANIM_TAG_UNUSED_GEM_2}, - {gBattleAnimSpriteSheet_276, 0x0800, ANIM_TAG_UNUSED_GEM_3}, + {gBattleAnimSpriteSheet_274, 0x0800, ANIM_TAG_GEM_1}, + {gBattleAnimSpriteSheet_275, 0x0800, ANIM_TAG_GEM_2}, + {gBattleAnimSpriteSheet_276, 0x0800, ANIM_TAG_GEM_3}, {gBattleAnimSpriteSheet_277, 0x1000, ANIM_TAG_SLAM_HIT_2}, {gBattleAnimSpriteSheet_278, 0x0800, ANIM_TAG_RECYCLE}, - {gBattleAnimSpriteSheet_279, 0x00a0, ANIM_TAG_UNUSED_RED_PARTICLES}, + {gBattleAnimSpriteSheet_279, 0x00a0, ANIM_TAG_RED_PARTICLES}, {gBattleAnimSpriteSheet_280, 0x0800, ANIM_TAG_PROTECT}, {gBattleAnimSpriteSheet_281, 0x0200, ANIM_TAG_DIRT_MOUND}, {gBattleAnimSpriteSheet_282, 0x0600, ANIM_TAG_SHOCK_3}, @@ -1424,137 +1424,137 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePalette_001, ANIM_TAG_SPARK}, {gBattleAnimSpritePalette_002, ANIM_TAG_PENCIL}, {gBattleAnimSpritePalette_003, ANIM_TAG_AIR_WAVE}, - {gBattleAnimSpritePalette_004, ANIM_TAG_UNUSED_ORB}, + {gBattleAnimSpritePalette_004, ANIM_TAG_ORB}, {gBattleAnimSpritePalette_005, ANIM_TAG_SWORD}, {gBattleAnimSpritePalette_006, ANIM_TAG_SEED}, - {gBattleAnimSpritePalette_007, ANIM_TAG_UNUSED_EXPLOSION}, - {gBattleAnimSpritePalette_008, ANIM_TAG_UNUSED_PINK_ORB}, + {gBattleAnimSpritePalette_007, ANIM_TAG_EXPLOSION_6}, + {gBattleAnimSpritePalette_008, ANIM_TAG_PINK_ORB}, {gBattleAnimSpritePalette_009, ANIM_TAG_GUST}, {gBattleAnimSpritePalette_010, ANIM_TAG_ICE_CUBE}, {gBattleAnimSpritePalette_011, ANIM_TAG_SPARK_2}, - {gBattleAnimSpritePalette_012, ANIM_TAG_UNUSED_ORANGE}, + {gBattleAnimSpritePalette_012, ANIM_TAG_ORANGE}, {gBattleAnimSpritePalette_013, ANIM_TAG_YELLOW_BALL}, {gBattleAnimSpritePalette_014, ANIM_TAG_LOCK_ON}, {gBattleAnimSpritePalette_015, ANIM_TAG_TIED_BAG}, {gBattleAnimSpritePalette_016, ANIM_TAG_BLACK_SMOKE}, {gBattleAnimSpritePalette_016, ANIM_TAG_BLACK_BALL}, {gBattleAnimSpritePalette_018, ANIM_TAG_CONVERSION}, - {gBattleAnimSpritePalette_019, ANIM_TAG_UNUSED_GLASS}, + {gBattleAnimSpritePalette_019, ANIM_TAG_GLASS}, {gBattleAnimSpritePalette_020, ANIM_TAG_HORN_HIT}, - {gBattleAnimSpritePalette_021, ANIM_TAG_UNUSED_HIT}, - {gBattleAnimSpritePalette_022, ANIM_TAG_UNUSED_HIT_2}, - {gBattleAnimSpritePalette_023, ANIM_TAG_UNUSED_BLUE_SHARDS}, - {gBattleAnimSpritePalette_024, ANIM_TAG_UNUSED_CLOSING_EYE}, - {gBattleAnimSpritePalette_025, ANIM_TAG_UNUSED_WAVING_HAND}, - {gBattleAnimSpritePalette_026, ANIM_TAG_UNUSED_HIT_DUPLICATE}, + {gBattleAnimSpritePalette_021, ANIM_TAG_HIT}, + {gBattleAnimSpritePalette_022, ANIM_TAG_HIT_2}, + {gBattleAnimSpritePalette_023, ANIM_TAG_BLUE_SHARDS}, + {gBattleAnimSpritePalette_024, ANIM_TAG_CLOSING_EYE}, + {gBattleAnimSpritePalette_025, ANIM_TAG_WAVING_HAND}, + {gBattleAnimSpritePalette_026, ANIM_TAG_HIT_DUPLICATE}, {gBattleAnimSpritePalette_027, ANIM_TAG_LEER}, - {gBattleAnimSpritePalette_028, ANIM_TAG_UNUSED_BLUE_BURST}, + {gBattleAnimSpritePalette_028, ANIM_TAG_BLUE_BURST}, {gBattleAnimSpritePalette_029, ANIM_TAG_SMALL_EMBER}, {gBattleAnimSpritePalette_030, ANIM_TAG_GRAY_SMOKE}, {gBattleAnimSpritePalette_031, ANIM_TAG_BLUE_STAR}, - {gBattleAnimSpritePalette_032, ANIM_TAG_UNUSED_BUBBLE_BURST}, + {gBattleAnimSpritePalette_032, ANIM_TAG_BUBBLE_BURST}, {gBattleAnimSpritePalette_033, ANIM_TAG_FIRE}, - {gBattleAnimSpritePalette_033, ANIM_TAG_UNUSED_SPINNING_FIRE}, + {gBattleAnimSpritePalette_033, ANIM_TAG_SPINNING_FIRE}, {gBattleAnimSpritePalette_033, ANIM_TAG_FIRE_PLUME}, - {gBattleAnimSpritePalette_036, ANIM_TAG_UNUSED_LIGHTNING}, + {gBattleAnimSpritePalette_036, ANIM_TAG_LIGHTNING_2}, {gBattleAnimSpritePalette_036, ANIM_TAG_LIGHTNING}, - {gBattleAnimSpritePalette_038, ANIM_TAG_UNUSED_CLAW_SLASH}, + {gBattleAnimSpritePalette_038, ANIM_TAG_CLAW_SLASH_2}, {gBattleAnimSpritePalette_039, ANIM_TAG_CLAW_SLASH}, - {gBattleAnimSpritePalette_038, ANIM_TAG_UNUSED_SCRATCH}, - {gBattleAnimSpritePalette_038, ANIM_TAG_UNUSED_SCRATCH_2}, - {gBattleAnimSpritePalette_042, ANIM_TAG_UNUSED_BUBBLE_BURST_2}, + {gBattleAnimSpritePalette_038, ANIM_TAG_SCRATCH_3}, + {gBattleAnimSpritePalette_038, ANIM_TAG_SCRATCH_2}, + {gBattleAnimSpritePalette_042, ANIM_TAG_BUBBLE_BURST_2}, {gBattleAnimSpritePalette_043, ANIM_TAG_ICE_CHUNK}, - {gBattleAnimSpritePalette_044, ANIM_TAG_UNUSED_GLASS_2}, - {gBattleAnimSpritePalette_045, ANIM_TAG_UNUSED_PINK_HEART}, - {gBattleAnimSpritePalette_046, ANIM_TAG_UNUSED_SAP_DRIP}, - {gBattleAnimSpritePalette_047, ANIM_TAG_UNUSED_SAP_DRIP}, + {gBattleAnimSpritePalette_044, ANIM_TAG_GLASS_2}, + {gBattleAnimSpritePalette_045, ANIM_TAG_PINK_HEART_2}, + {gBattleAnimSpritePalette_046, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpritePalette_047, ANIM_TAG_SAP_DRIP}, {gBattleAnimSpritePalette_048, ANIM_TAG_SPARKLE_1}, {gBattleAnimSpritePalette_049, ANIM_TAG_SPARKLE_2}, {gBattleAnimSpritePalette_050, ANIM_TAG_HUMANOID_FOOT}, - {gBattleAnimSpritePalette_050, ANIM_TAG_UNUSED_MONSTER_FOOT}, - {gBattleAnimSpritePalette_050, ANIM_TAG_UNUSED_HUMANOID_HAND}, + {gBattleAnimSpritePalette_050, ANIM_TAG_MONSTER_FOOT}, + {gBattleAnimSpritePalette_050, ANIM_TAG_HUMANOID_HAND}, {gBattleAnimSpritePalette_026, ANIM_TAG_NOISE_LINE}, - {gBattleAnimSpritePalette_054, ANIM_TAG_UNUSED_YELLOW_UNK}, - {gBattleAnimSpritePalette_050, ANIM_TAG_UNUSED_RED_FIST}, + {gBattleAnimSpritePalette_054, ANIM_TAG_YELLOW_UNK}, + {gBattleAnimSpritePalette_050, ANIM_TAG_RED_FIST}, {gBattleAnimSpritePalette_056, ANIM_TAG_SLAM_HIT}, - {gBattleAnimSpritePalette_057, ANIM_TAG_UNUSED_RING}, + {gBattleAnimSpritePalette_057, ANIM_TAG_RING}, {gBattleAnimSpritePalette_058, ANIM_TAG_ROCKS}, - {gBattleAnimSpritePalette_059, ANIM_TAG_UNUSED_Z}, - {gBattleAnimSpritePalette_060, ANIM_TAG_UNUSED_YELLOW_UNK_2}, - {gBattleAnimSpritePalette_061, ANIM_TAG_UNUSED_AIR_SLASH}, - {gBattleAnimSpritePalette_062, ANIM_TAG_UNUSED_SPINNING_GREEN_ORBS}, + {gBattleAnimSpritePalette_059, ANIM_TAG_Z}, + {gBattleAnimSpritePalette_060, ANIM_TAG_YELLOW_UNK_2}, + {gBattleAnimSpritePalette_061, ANIM_TAG_AIR_SLASH}, + {gBattleAnimSpritePalette_062, ANIM_TAG_SPINNING_GREEN_ORBS}, {gBattleAnimSpritePalette_063, ANIM_TAG_LEAF}, {gBattleAnimSpritePalette_064, ANIM_TAG_FINGER}, {gBattleAnimSpritePalette_065, ANIM_TAG_POISON_POWDER}, - {gBattleAnimSpritePalette_066, ANIM_TAG_UNUSED_BROWN_TRIANGLE}, + {gBattleAnimSpritePalette_066, ANIM_TAG_BROWN_TRIANGLE}, {gBattleAnimSpritePalette_067, ANIM_TAG_SLEEP_POWDER}, {gBattleAnimSpritePalette_068, ANIM_TAG_STUN_SPORE}, - {gBattleAnimSpritePalette_065, ANIM_TAG_UNUSED_POWDER}, + {gBattleAnimSpritePalette_065, ANIM_TAG_POWDER}, {gBattleAnimSpritePalette_070, ANIM_TAG_SPARKLE_3}, {gBattleAnimSpritePalette_070, ANIM_TAG_SPARKLE_4}, {gBattleAnimSpritePalette_072, ANIM_TAG_MUSIC_NOTES}, {gBattleAnimSpritePalette_073, ANIM_TAG_DUCK}, {gBattleAnimSpritePalette_074, ANIM_TAG_MUD_SAND}, {gBattleAnimSpritePalette_075, ANIM_TAG_ALERT}, - {gBattleAnimSpritePalette_076, ANIM_TAG_UNUSED_BLUE_FLAMES}, - {gBattleAnimSpritePalette_076, ANIM_TAG_UNUSED_BLUE_FLAMES_2}, - {gBattleAnimSpritePalette_078, ANIM_TAG_UNUSED_SHOCK}, + {gBattleAnimSpritePalette_076, ANIM_TAG_BLUE_FLAMES}, + {gBattleAnimSpritePalette_076, ANIM_TAG_BLUE_FLAMES_2}, + {gBattleAnimSpritePalette_078, ANIM_TAG_SHOCK_4}, {gBattleAnimSpritePalette_078, ANIM_TAG_SHOCK}, - {gBattleAnimSpritePalette_080, ANIM_TAG_UNUSED_BELL}, - {gBattleAnimSpritePalette_081, ANIM_TAG_UNUSED_PINK_GLOVE}, - {gBattleAnimSpritePalette_082, ANIM_TAG_UNUSED_BLUE_LINES}, - {gBattleAnimSpritePalette_083, ANIM_TAG_UNUSED_IMPACT}, - {gBattleAnimSpritePalette_084, ANIM_TAG_UNUSED_IMPACT_2}, - {gBattleAnimSpritePalette_085, ANIM_TAG_UNUSED_RETICLE}, + {gBattleAnimSpritePalette_080, ANIM_TAG_BELL_2}, + {gBattleAnimSpritePalette_081, ANIM_TAG_PINK_GLOVE}, + {gBattleAnimSpritePalette_082, ANIM_TAG_BLUE_LINES}, + {gBattleAnimSpritePalette_083, ANIM_TAG_IMPACT_3}, + {gBattleAnimSpritePalette_084, ANIM_TAG_IMPACT_2}, + {gBattleAnimSpritePalette_085, ANIM_TAG_RETICLE}, {gBattleAnimSpritePalette_086, ANIM_TAG_BREATH}, {gBattleAnimSpritePalette_087, ANIM_TAG_ANGER}, - {gBattleAnimSpritePalette_088, ANIM_TAG_UNUSED_SNOWBALL}, - {gBattleAnimSpritePalette_089, ANIM_TAG_UNUSED_VINE}, - {gBattleAnimSpritePalette_090, ANIM_TAG_UNUSED_SWORD}, - {gBattleAnimSpritePalette_091, ANIM_TAG_UNUSED_CLAPPING}, - {gBattleAnimSpritePalette_092, ANIM_TAG_UNUSED_RED_TUBE}, + {gBattleAnimSpritePalette_088, ANIM_TAG_SNOWBALL}, + {gBattleAnimSpritePalette_089, ANIM_TAG_VINE}, + {gBattleAnimSpritePalette_090, ANIM_TAG_SWORD_2}, + {gBattleAnimSpritePalette_091, ANIM_TAG_CLAPPING}, + {gBattleAnimSpritePalette_092, ANIM_TAG_RED_TUBE}, {gBattleAnimSpritePalette_093, ANIM_TAG_AMNESIA}, - {gBattleAnimSpritePalette_094, ANIM_TAG_UNUSED_STRING}, - {gBattleAnimSpritePalette_095, ANIM_TAG_UNUSED_PENCIL}, - {gBattleAnimSpritePalette_096, ANIM_TAG_UNUSED_PETAL}, + {gBattleAnimSpritePalette_094, ANIM_TAG_STRING_2}, + {gBattleAnimSpritePalette_095, ANIM_TAG_PENCIL_2}, + {gBattleAnimSpritePalette_096, ANIM_TAG_PETAL}, {gBattleAnimSpritePalette_097, ANIM_TAG_BENT_SPOON}, - {gBattleAnimSpritePalette_094, ANIM_TAG_UNUSED_WEB}, + {gBattleAnimSpritePalette_094, ANIM_TAG_WEB}, {gBattleAnimSpritePalette_099, ANIM_TAG_MILK_BOTTLE}, {gBattleAnimSpritePalette_100, ANIM_TAG_COIN}, - {gBattleAnimSpritePalette_101, ANIM_TAG_UNUSED_CRACKED_EGG}, - {gBattleAnimSpritePalette_101, ANIM_TAG_UNUSED_HATCHED_EGG}, - {gBattleAnimSpritePalette_103, ANIM_TAG_UNUSED_FRESH_EGG}, - {gBattleAnimSpritePalette_104, ANIM_TAG_UNUSED_FANGS}, - {gBattleAnimSpritePalette_105, ANIM_TAG_UNUSED_EXPLOSION_2}, - {gBattleAnimSpritePalette_105, ANIM_TAG_UNUSED_EXPLOSION_3}, - {gBattleAnimSpritePalette_107, ANIM_TAG_UNUSED_WATER_DROPLET}, - {gBattleAnimSpritePalette_107, ANIM_TAG_UNUSED_WATER_DROPLET_2}, - {gBattleAnimSpritePalette_109, ANIM_TAG_UNUSED_SEED}, - {gBattleAnimSpritePalette_109, ANIM_TAG_UNUSED_SPROUT}, - {gBattleAnimSpritePalette_111, ANIM_TAG_UNUSED_RED_WAND}, - {gBattleAnimSpritePalette_112, ANIM_TAG_UNUSED_PURPLE_GREEN_UNK}, - {gBattleAnimSpritePalette_113, ANIM_TAG_UNUSED_WATER_COLUMN}, - {gBattleAnimSpritePalette_114, ANIM_TAG_UNUSED_MUD_UNK}, + {gBattleAnimSpritePalette_101, ANIM_TAG_CRACKED_EGG}, + {gBattleAnimSpritePalette_101, ANIM_TAG_HATCHED_EGG}, + {gBattleAnimSpritePalette_103, ANIM_TAG_FRESH_EGG}, + {gBattleAnimSpritePalette_104, ANIM_TAG_FANGS}, + {gBattleAnimSpritePalette_105, ANIM_TAG_EXPLOSION_2}, + {gBattleAnimSpritePalette_105, ANIM_TAG_EXPLOSION_3}, + {gBattleAnimSpritePalette_107, ANIM_TAG_WATER_DROPLET}, + {gBattleAnimSpritePalette_107, ANIM_TAG_WATER_DROPLET_2}, + {gBattleAnimSpritePalette_109, ANIM_TAG_SEED_2}, + {gBattleAnimSpritePalette_109, ANIM_TAG_SPROUT}, + {gBattleAnimSpritePalette_111, ANIM_TAG_RED_WAND}, + {gBattleAnimSpritePalette_112, ANIM_TAG_PURPLE_GREEN_UNK}, + {gBattleAnimSpritePalette_113, ANIM_TAG_WATER_COLUMN}, + {gBattleAnimSpritePalette_114, ANIM_TAG_MUD_UNK}, {gBattleAnimSpritePalette_115, ANIM_TAG_RAIN_DROPS}, - {gBattleAnimSpritePalette_116, ANIM_TAG_UNUSED_FURY_SWIPES}, - {gBattleAnimSpritePalette_117, ANIM_TAG_UNUSED_VINE_2}, - {gBattleAnimSpritePalette_118, ANIM_TAG_UNUSED_TEETH}, - {gBattleAnimSpritePalette_119, ANIM_TAG_UNUSED_BONE}, - {gBattleAnimSpritePalette_120, ANIM_TAG_UNUSED_WHITE_BAG}, - {gBattleAnimSpritePalette_121, ANIM_TAG_UNUSED_UNKNOWN}, - {gBattleAnimSpritePalette_122, ANIM_TAG_UNUSED_PURPLE_CORAL}, - {gBattleAnimSpritePalette_122, ANIM_TAG_UNUSED_PURPLE_DROPLET}, - {gBattleAnimSpritePalette_124, ANIM_TAG_UNUSED_SHOCK_2}, - {gBattleAnimSpritePalette_125, ANIM_TAG_UNUSED_CLOSING_EYE_2}, - {gBattleAnimSpritePalette_126, ANIM_TAG_UNUSED_METAL_BALL}, - {gBattleAnimSpritePalette_127, ANIM_TAG_UNUSED_MONSTER_DOLL}, - {gBattleAnimSpritePalette_128, ANIM_TAG_UNUSED_WHIRLWIND}, - {gBattleAnimSpritePalette_128, ANIM_TAG_UNUSED_WHIRLWIND_2}, - {gBattleAnimSpritePalette_130, ANIM_TAG_UNUSED_EXPLOSION_4}, - {gBattleAnimSpritePalette_130, ANIM_TAG_UNUSED_EXPLOSION_5}, - {gBattleAnimSpritePalette_132, ANIM_TAG_UNUSED_TONGUE}, - {gBattleAnimSpritePalette_133, ANIM_TAG_UNUSED_SMOKE}, - {gBattleAnimSpritePalette_133, ANIM_TAG_UNUSED_SMOKE_2}, + {gBattleAnimSpritePalette_116, ANIM_TAG_FURY_SWIPES}, + {gBattleAnimSpritePalette_117, ANIM_TAG_VINE_2}, + {gBattleAnimSpritePalette_118, ANIM_TAG_TEETH}, + {gBattleAnimSpritePalette_119, ANIM_TAG_BONE_2}, + {gBattleAnimSpritePalette_120, ANIM_TAG_WHITE_BAG}, + {gBattleAnimSpritePalette_121, ANIM_TAG_UNKNOWN}, + {gBattleAnimSpritePalette_122, ANIM_TAG_PURPLE_CORAL}, + {gBattleAnimSpritePalette_122, ANIM_TAG_PURPLE_DROPLET}, + {gBattleAnimSpritePalette_124, ANIM_TAG_SHOCK_2}, + {gBattleAnimSpritePalette_125, ANIM_TAG_CLOSING_EYE_2}, + {gBattleAnimSpritePalette_126, ANIM_TAG_METAL_BALL}, + {gBattleAnimSpritePalette_127, ANIM_TAG_MONSTER_DOLL}, + {gBattleAnimSpritePalette_128, ANIM_TAG_WHIRLWIND}, + {gBattleAnimSpritePalette_128, ANIM_TAG_WHIRLWIND_2}, + {gBattleAnimSpritePalette_130, ANIM_TAG_EXPLOSION_4}, + {gBattleAnimSpritePalette_130, ANIM_TAG_EXPLOSION_5}, + {gBattleAnimSpritePalette_132, ANIM_TAG_TONGUE}, + {gBattleAnimSpritePalette_133, ANIM_TAG_SMOKE}, + {gBattleAnimSpritePalette_133, ANIM_TAG_SMOKE_2}, {gBattleAnimSpritePalette_135, ANIM_TAG_IMPACT}, {gBattleAnimSpritePalette_136, ANIM_TAG_CIRCLE_IMPACT}, {gBattleAnimSpritePalette_135, ANIM_TAG_SCRATCH}, @@ -1598,11 +1598,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePalette_175, ANIM_TAG_LARGE_FRESH_EGG}, {gBattleAnimSpritePalette_176, ANIM_TAG_SHADOW_BALL}, {gBattleAnimSpritePalette_177, ANIM_TAG_LICK}, - {gBattleAnimSpritePalette_178, ANIM_TAG_UNUSED_VOID_LINES}, + {gBattleAnimSpritePalette_178, ANIM_TAG_VOID_LINES}, {gBattleAnimSpritePalette_179, ANIM_TAG_STRING}, {gBattleAnimSpritePalette_179, ANIM_TAG_WEB_THREAD}, {gBattleAnimSpritePalette_179, ANIM_TAG_SPIDER_WEB}, - {gBattleAnimSpritePalette_182, ANIM_TAG_UNUSED_LIGHTBULB}, + {gBattleAnimSpritePalette_182, ANIM_TAG_LIGHTBULB}, {gBattleAnimSpritePalette_183, ANIM_TAG_SLASH}, {gBattleAnimSpritePalette_184, ANIM_TAG_FOCUS_ENERGY}, {gBattleAnimSpritePalette_185, ANIM_TAG_SPHERE_TO_CUBE}, @@ -1624,7 +1624,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePalette_201, ANIM_TAG_WARM_ROCK}, {gBattleAnimSpritePalette_202, ANIM_TAG_BREAKING_EGG}, {gBattleAnimSpritePalette_203, ANIM_TAG_THIN_RING}, - {gBattleAnimSpritePalette_204, ANIM_TAG_UNUSED_PUNCH_IMPACT}, + {gBattleAnimSpritePalette_204, ANIM_TAG_PUNCH_IMPACT}, {gBattleAnimSpritePalette_205, ANIM_TAG_BELL}, {gBattleAnimSpritePalette_206, ANIM_TAG_MUSIC_NOTES_2}, {gBattleAnimSpritePalette_207, ANIM_TAG_SPEED_DUST}, @@ -1689,17 +1689,17 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePalette_266, ANIM_TAG_GREEN_SPIKE}, {gBattleAnimSpritePalette_267, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, {gBattleAnimSpritePalette_268, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpritePalette_269, ANIM_TAG_UNUSED_RED_BRICK}, + {gBattleAnimSpritePalette_269, ANIM_TAG_RED_BRICK}, {gBattleAnimSpritePalette_270, ANIM_TAG_WHITE_FEATHER}, {gBattleAnimSpritePalette_271, ANIM_TAG_SPARKLE_6}, {gBattleAnimSpritePalette_272, ANIM_TAG_SPLASH}, {gBattleAnimSpritePalette_272, ANIM_TAG_SWEAT_BEAD}, - {gBattleAnimSpritePalette_274, ANIM_TAG_UNUSED_GEM_1}, - {gBattleAnimSpritePalette_274, ANIM_TAG_UNUSED_GEM_2}, - {gBattleAnimSpritePalette_274, ANIM_TAG_UNUSED_GEM_3}, + {gBattleAnimSpritePalette_274, ANIM_TAG_GEM_1}, + {gBattleAnimSpritePalette_274, ANIM_TAG_GEM_2}, + {gBattleAnimSpritePalette_274, ANIM_TAG_GEM_3}, {gBattleAnimSpritePalette_277, ANIM_TAG_SLAM_HIT_2}, {gBattleAnimSpritePalette_278, ANIM_TAG_RECYCLE}, - {gBattleAnimSpritePalette_279, ANIM_TAG_UNUSED_RED_PARTICLES}, + {gBattleAnimSpritePalette_279, ANIM_TAG_RED_PARTICLES}, {gBattleAnimSpritePalette_280, ANIM_TAG_PROTECT}, {gBattleAnimSpritePalette_281, ANIM_TAG_DIRT_MOUND}, {gBattleAnimSpritePalette_282, ANIM_TAG_SHOCK_3}, -- cgit v1.2.3 From b93581b519134e24c71a9d54135c7df1fcce6b0a Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 6 Apr 2019 16:32:02 +0200 Subject: Rename battle anim sprites --- src/battle_anim.c | 1159 +++++++++++++++++++------------------- src/battle_anim_effects_1.c | 12 +- src/battle_anim_effects_2.c | 10 +- src/battle_anim_special.c | 36 +- src/battle_anim_status_effects.c | 16 +- src/graphics.c | 1018 ++++++++++++++++----------------- src/rock.c | 2 +- 7 files changed, 1125 insertions(+), 1128 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index b7fee6f2d..fac07e02e 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1126,589 +1126,588 @@ const struct OamData gUnknown_08524B3C = const struct CompressedSpriteSheet gBattleAnimPicTable[] = { - {gBattleAnimSpriteSheet_000, 0x0200, ANIM_TAG_BONE}, - {gBattleAnimSpriteSheet_001, 0x0300, ANIM_TAG_SPARK}, - {gBattleAnimSpriteSheet_002, 0x0200, ANIM_TAG_PENCIL}, - {gBattleAnimSpriteSheet_003, 0x0100, ANIM_TAG_AIR_WAVE}, - {gBattleAnimSpriteSheet_004, 0x0200, ANIM_TAG_ORB}, - {gBattleAnimSpriteSheet_005, 0x0400, ANIM_TAG_SWORD}, - {gBattleAnimSpriteSheet_006, 0x0180, ANIM_TAG_SEED}, - {gBattleAnimSpriteSheet_007, 0x0800, ANIM_TAG_EXPLOSION_6}, - {gBattleAnimSpriteSheet_008, 0x0020, ANIM_TAG_PINK_ORB}, - {gBattleAnimSpriteSheet_009, 0x0400, ANIM_TAG_GUST}, - {gBattleAnimSpriteSheet_010, 0x1200, ANIM_TAG_ICE_CUBE}, - {gBattleAnimSpriteSheet_011, 0x0180, ANIM_TAG_SPARK_2}, - {gBattleAnimSpriteSheet_012, 0x0080, ANIM_TAG_ORANGE}, - {gBattleAnimSpriteSheet_013, 0x0080, ANIM_TAG_YELLOW_BALL}, - {gBattleAnimSpriteSheet_014, 0x0280, ANIM_TAG_LOCK_ON}, - {gBattleAnimSpriteSheet_015, 0x0080, ANIM_TAG_TIED_BAG}, - {gBattleAnimSpriteSheet_016, 0x0100, ANIM_TAG_BLACK_SMOKE}, - {gBattleAnimSpriteSheet_017, 0x0020, ANIM_TAG_BLACK_BALL}, - {gBattleAnimSpriteSheet_018, 0x0080, ANIM_TAG_CONVERSION}, - {gBattleAnimSpriteSheet_019, 0x0400, ANIM_TAG_GLASS}, - {gBattleAnimSpriteSheet_020, 0x0200, ANIM_TAG_HORN_HIT}, - {gBattleAnimSpriteSheet_021, 0x0A00, ANIM_TAG_HIT}, - {gBattleAnimSpriteSheet_021, 0x0A00, ANIM_TAG_HIT_2}, - {gBattleAnimSpriteSheet_023, 0x0380, ANIM_TAG_BLUE_SHARDS}, - {gBattleAnimSpriteSheet_024, 0x0300, ANIM_TAG_CLOSING_EYE}, - {gBattleAnimSpriteSheet_025, 0x0A00, ANIM_TAG_WAVING_HAND}, - {gBattleAnimSpriteSheet_026, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, - {gBattleAnimSpriteSheet_027, 0x0A00, ANIM_TAG_LEER}, - {gBattleAnimSpriteSheet_028, 0x0A00, ANIM_TAG_BLUE_BURST}, - {gBattleAnimSpriteSheet_029, 0x0A00, ANIM_TAG_SMALL_EMBER}, - {gBattleAnimSpriteSheet_030, 0x0A00, ANIM_TAG_GRAY_SMOKE}, - {gBattleAnimSpriteSheet_031, 0x0E00, ANIM_TAG_BLUE_STAR}, - {gBattleAnimSpriteSheet_032, 0x0380, ANIM_TAG_BUBBLE_BURST}, - {gBattleAnimSpriteSheet_033, 0x1000, ANIM_TAG_FIRE}, - {gBattleAnimSpriteSheet_034, 0x0800, ANIM_TAG_SPINNING_FIRE}, - {gBattleAnimSpriteSheet_035, 0x0A00, ANIM_TAG_FIRE_PLUME}, - {gBattleAnimSpriteSheet_036, 0x0800, ANIM_TAG_LIGHTNING_2}, - {gBattleAnimSpriteSheet_037, 0x0A00, ANIM_TAG_LIGHTNING}, - {gBattleAnimSpriteSheet_038, 0x0A00, ANIM_TAG_CLAW_SLASH_2}, - {gBattleAnimSpriteSheet_039, 0x0A00, ANIM_TAG_CLAW_SLASH}, - {gBattleAnimSpriteSheet_040, 0x0A00, ANIM_TAG_SCRATCH_3}, - {gBattleAnimSpriteSheet_041, 0x0A00, ANIM_TAG_SCRATCH_2}, - {gBattleAnimSpriteSheet_042, 0x0A00, ANIM_TAG_BUBBLE_BURST_2}, - {gBattleAnimSpriteSheet_043, 0x0A00, ANIM_TAG_ICE_CHUNK}, - {gBattleAnimSpriteSheet_044, 0x0A00, ANIM_TAG_GLASS_2}, - {gBattleAnimSpriteSheet_045, 0x0A00, ANIM_TAG_PINK_HEART_2}, - {gBattleAnimSpriteSheet_046, 0x1000, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpriteSheet_046, 0x1000, ANIM_TAG_SAP_DRIP_2}, - {gBattleAnimSpriteSheet_048, 0x1000, ANIM_TAG_SPARKLE_1}, - {gBattleAnimSpriteSheet_048, 0x1000, ANIM_TAG_SPARKLE_2}, - {gBattleAnimSpriteSheet_050, 0x0200, ANIM_TAG_HUMANOID_FOOT}, - {gBattleAnimSpriteSheet_051, 0x0200, ANIM_TAG_MONSTER_FOOT}, - {gBattleAnimSpriteSheet_052, 0x0200, ANIM_TAG_HUMANOID_HAND}, - {gBattleAnimSpriteSheet_053, 0x0800, ANIM_TAG_NOISE_LINE}, - {gBattleAnimSpriteSheet_054, 0x0080, ANIM_TAG_YELLOW_UNK}, - {gBattleAnimSpriteSheet_055, 0x0200, ANIM_TAG_RED_FIST}, - {gBattleAnimSpriteSheet_056, 0x1000, ANIM_TAG_SLAM_HIT}, - {gBattleAnimSpriteSheet_057, 0x0180, ANIM_TAG_RING}, - {gBattleAnimSpriteSheet_058, 0x0C00, ANIM_TAG_ROCKS}, - {gBattleAnimSpriteSheet_059, 0x0100, ANIM_TAG_Z}, - {gBattleAnimSpriteSheet_060, 0x0040, ANIM_TAG_YELLOW_UNK_2}, - {gBattleAnimSpriteSheet_061, 0x0180, ANIM_TAG_AIR_SLASH}, - {gBattleAnimSpriteSheet_062, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, - {gBattleAnimSpriteSheet_063, 0x0480, ANIM_TAG_LEAF}, - {gBattleAnimSpriteSheet_064, 0x0200, ANIM_TAG_FINGER}, - {gBattleAnimSpriteSheet_065, 0x0200, ANIM_TAG_POISON_POWDER}, - {gBattleAnimSpriteSheet_066, 0x0100, ANIM_TAG_BROWN_TRIANGLE}, - {gBattleAnimSpriteSheet_065, 0x0200, ANIM_TAG_SLEEP_POWDER}, - {gBattleAnimSpriteSheet_065, 0x0200, ANIM_TAG_STUN_SPORE}, - {gBattleAnimSpriteSheet_065, 0x0200, ANIM_TAG_POWDER}, - {gBattleAnimSpriteSheet_070, 0x0200, ANIM_TAG_SPARKLE_3}, - {gBattleAnimSpriteSheet_071, 0x0A00, ANIM_TAG_SPARKLE_4}, - {gBattleAnimSpriteSheet_072, 0x0300, ANIM_TAG_MUSIC_NOTES}, - {gBattleAnimSpriteSheet_073, 0x0180, ANIM_TAG_DUCK}, - {gBattleAnimSpriteSheet_074, 0x00A0, ANIM_TAG_MUD_SAND}, - {gBattleAnimSpriteSheet_075, 0x0700, ANIM_TAG_ALERT}, - {gBattleAnimSpriteSheet_076, 0x0400, ANIM_TAG_BLUE_FLAMES}, - {gBattleAnimSpriteSheet_077, 0x0200, ANIM_TAG_BLUE_FLAMES_2}, - {gBattleAnimSpriteSheet_078, 0x0300, ANIM_TAG_SHOCK_4}, - {gBattleAnimSpriteSheet_079, 0x0C00, ANIM_TAG_SHOCK}, - {gBattleAnimSpriteSheet_080, 0x0A00, ANIM_TAG_BELL_2}, - {gBattleAnimSpriteSheet_081, 0x0080, ANIM_TAG_PINK_GLOVE}, - {gBattleAnimSpriteSheet_082, 0x0040, ANIM_TAG_BLUE_LINES}, - {gBattleAnimSpriteSheet_083, 0x0E00, ANIM_TAG_IMPACT_3}, - {gBattleAnimSpriteSheet_084, 0x0E00, ANIM_TAG_IMPACT_2}, - {gBattleAnimSpriteSheet_085, 0x0280, ANIM_TAG_RETICLE}, - {gBattleAnimSpriteSheet_086, 0x0200, ANIM_TAG_BREATH}, - {gBattleAnimSpriteSheet_087, 0x0080, ANIM_TAG_ANGER}, - {gBattleAnimSpriteSheet_088, 0x00C0, ANIM_TAG_SNOWBALL}, - {gBattleAnimSpriteSheet_089, 0x0A00, ANIM_TAG_VINE}, - {gBattleAnimSpriteSheet_090, 0x0200, ANIM_TAG_SWORD_2}, - {gBattleAnimSpriteSheet_091, 0x0180, ANIM_TAG_CLAPPING}, - {gBattleAnimSpriteSheet_092, 0x0080, ANIM_TAG_RED_TUBE}, - {gBattleAnimSpriteSheet_093, 0x1000, ANIM_TAG_AMNESIA}, - {gBattleAnimSpriteSheet_094, 0x0A00, ANIM_TAG_STRING_2}, - {gBattleAnimSpriteSheet_095, 0x0180, ANIM_TAG_PENCIL_2}, - {gBattleAnimSpriteSheet_096, 0x0380, ANIM_TAG_PETAL}, - {gBattleAnimSpriteSheet_097, 0x0C00, ANIM_TAG_BENT_SPOON}, - {gBattleAnimSpriteSheet_098, 0x0200, ANIM_TAG_WEB}, - {gBattleAnimSpriteSheet_099, 0x0200, ANIM_TAG_MILK_BOTTLE}, - {gBattleAnimSpriteSheet_100, 0x0200, ANIM_TAG_COIN}, - {gBattleAnimSpriteSheet_101, 0x0200, ANIM_TAG_CRACKED_EGG}, - {gBattleAnimSpriteSheet_102, 0x0400, ANIM_TAG_HATCHED_EGG}, - {gBattleAnimSpriteSheet_103, 0x0080, ANIM_TAG_FRESH_EGG}, - {gBattleAnimSpriteSheet_104, 0x0400, ANIM_TAG_FANGS}, - {gBattleAnimSpriteSheet_105, 0x0c00, ANIM_TAG_EXPLOSION_2}, - {gBattleAnimSpriteSheet_106, 0x0200, ANIM_TAG_EXPLOSION_3}, - {gBattleAnimSpriteSheet_107, 0x1000, ANIM_TAG_WATER_DROPLET}, - {gBattleAnimSpriteSheet_108, 0x0a00, ANIM_TAG_WATER_DROPLET_2}, - {gBattleAnimSpriteSheet_109, 0x0020, ANIM_TAG_SEED_2}, - {gBattleAnimSpriteSheet_110, 0x0e00, ANIM_TAG_SPROUT}, - {gBattleAnimSpriteSheet_111, 0x0080, ANIM_TAG_RED_WAND}, - {gBattleAnimSpriteSheet_112, 0x0a00, ANIM_TAG_PURPLE_GREEN_UNK}, - {gBattleAnimSpriteSheet_113, 0x0400, ANIM_TAG_WATER_COLUMN}, - {gBattleAnimSpriteSheet_114, 0x0200, ANIM_TAG_MUD_UNK}, - {gBattleAnimSpriteSheet_115, 0x0700, ANIM_TAG_RAIN_DROPS}, - {gBattleAnimSpriteSheet_116, 0x0800, ANIM_TAG_FURY_SWIPES}, - {gBattleAnimSpriteSheet_117, 0x0a00, ANIM_TAG_VINE_2}, - {gBattleAnimSpriteSheet_118, 0x0600, ANIM_TAG_TEETH}, - {gBattleAnimSpriteSheet_119, 0x0800, ANIM_TAG_BONE_2}, - {gBattleAnimSpriteSheet_120, 0x0200, ANIM_TAG_WHITE_BAG}, - {gBattleAnimSpriteSheet_121, 0x0040, ANIM_TAG_UNKNOWN}, - {gBattleAnimSpriteSheet_122, 0x0180, ANIM_TAG_PURPLE_CORAL}, - {gBattleAnimSpriteSheet_123, 0x0600, ANIM_TAG_PURPLE_DROPLET}, - {gBattleAnimSpriteSheet_124, 0x0600, ANIM_TAG_SHOCK_2}, - {gBattleAnimSpriteSheet_125, 0x0200, ANIM_TAG_CLOSING_EYE_2}, - {gBattleAnimSpriteSheet_126, 0x0080, ANIM_TAG_METAL_BALL}, - {gBattleAnimSpriteSheet_127, 0x0200, ANIM_TAG_MONSTER_DOLL}, - {gBattleAnimSpriteSheet_128, 0x0800, ANIM_TAG_WHIRLWIND}, - {gBattleAnimSpriteSheet_129, 0x0080, ANIM_TAG_WHIRLWIND_2}, - {gBattleAnimSpriteSheet_130, 0x0a00, ANIM_TAG_EXPLOSION_4}, - {gBattleAnimSpriteSheet_131, 0x0280, ANIM_TAG_EXPLOSION_5}, - {gBattleAnimSpriteSheet_132, 0x0280, ANIM_TAG_TONGUE}, - {gBattleAnimSpriteSheet_133, 0x0100, ANIM_TAG_SMOKE}, - {gBattleAnimSpriteSheet_134, 0x0200, ANIM_TAG_SMOKE_2}, - {gBattleAnimSpriteSheet_135, 0x0200, ANIM_TAG_IMPACT}, - {gBattleAnimSpriteSheet_136, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, - {gBattleAnimSpriteSheet_137, 0x0a00, ANIM_TAG_SCRATCH}, - {gBattleAnimSpriteSheet_138, 0x0800, ANIM_TAG_CUT}, - {gBattleAnimSpriteSheet_139, 0x0800, ANIM_TAG_SHARP_TEETH}, - {gBattleAnimSpriteSheet_140, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, - {gBattleAnimSpriteSheet_141, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, - {gBattleAnimSpriteSheet_142, 0x0100, ANIM_TAG_ICE_SPIKES}, - {gBattleAnimSpriteSheet_143, 0x0800, ANIM_TAG_HANDS_AND_FEET}, - {gBattleAnimSpriteSheet_144, 0x0200, ANIM_TAG_MIST_CLOUD}, - {gBattleAnimSpriteSheet_145, 0x0800, ANIM_TAG_CLAMP}, - {gBattleAnimSpriteSheet_146, 0x0180, ANIM_TAG_BUBBLE}, - {gBattleAnimSpriteSheet_147, 0x0180, ANIM_TAG_ORBS}, - {gBattleAnimSpriteSheet_148, 0x0200, ANIM_TAG_WATER_IMPACT}, - {gBattleAnimSpriteSheet_149, 0x0200, ANIM_TAG_WATER_ORB}, - {gBattleAnimSpriteSheet_150, 0x0180, ANIM_TAG_POISON_BUBBLE}, - {gBattleAnimSpriteSheet_151, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, - {gBattleAnimSpriteSheet_152, 0x0080, ANIM_TAG_SPIKES}, - {gBattleAnimSpriteSheet_153, 0x0100, ANIM_TAG_HORN_HIT_2}, - {gBattleAnimSpriteSheet_154, 0x0100, ANIM_TAG_AIR_WAVE_2}, - {gBattleAnimSpriteSheet_155, 0x0140, ANIM_TAG_SMALL_BUBBLES}, - {gBattleAnimSpriteSheet_156, 0x0800, ANIM_TAG_ROUND_SHADOW}, - {gBattleAnimSpriteSheet_157, 0x0200, ANIM_TAG_SUNLIGHT}, - {gBattleAnimSpriteSheet_158, 0x0100, ANIM_TAG_SPORE}, - {gBattleAnimSpriteSheet_159, 0x00a0, ANIM_TAG_FLOWER}, - {gBattleAnimSpriteSheet_160, 0x0100, ANIM_TAG_RAZOR_LEAF}, - {gBattleAnimSpriteSheet_161, 0x0080, ANIM_TAG_NEEDLE}, - {gBattleAnimSpriteSheet_162, 0x0300, ANIM_TAG_WHIRLWIND_LINES}, - {gBattleAnimSpriteSheet_163, 0x0100, ANIM_TAG_GOLD_RING}, - {gBattleAnimSpriteSheet_163, 0x0100, ANIM_TAG_PURPLE_RING}, - {gBattleAnimSpriteSheet_163, 0x0100, ANIM_TAG_BLUE_RING}, - {gBattleAnimSpriteSheet_166, 0x0800, ANIM_TAG_GREEN_LIGHT_WALL}, - {gBattleAnimSpriteSheet_166, 0x0800, ANIM_TAG_BLUE_LIGHT_WALL}, - {gBattleAnimSpriteSheet_166, 0x0800, ANIM_TAG_RED_LIGHT_WALL}, - {gBattleAnimSpriteSheet_166, 0x0800, ANIM_TAG_GRAY_LIGHT_WALL}, - {gBattleAnimSpriteSheet_166, 0x0800, ANIM_TAG_ORANGE_LIGHT_WALL}, - {gBattleAnimSpriteSheet_171, 0x0080, ANIM_TAG_BLACK_BALL_2}, - {gBattleAnimSpriteSheet_144, 0x0200, ANIM_TAG_PURPLE_GAS_CLOUD}, - {gBattleAnimSpriteSheet_173, 0x0200, ANIM_TAG_SPARK_H}, - {gBattleAnimSpriteSheet_174, 0x0200, ANIM_TAG_YELLOW_STAR}, - {gBattleAnimSpriteSheet_175, 0x0080, ANIM_TAG_LARGE_FRESH_EGG}, - {gBattleAnimSpriteSheet_176, 0x0200, ANIM_TAG_SHADOW_BALL}, - {gBattleAnimSpriteSheet_177, 0x0500, ANIM_TAG_LICK}, - {gBattleAnimSpriteSheet_178, 0x0800, ANIM_TAG_VOID_LINES}, - {gBattleAnimSpriteSheet_179, 0x0400, ANIM_TAG_STRING}, - {gBattleAnimSpriteSheet_180, 0x0020, ANIM_TAG_WEB_THREAD}, - {gBattleAnimSpriteSheet_181, 0x0800, ANIM_TAG_SPIDER_WEB}, - {gBattleAnimSpriteSheet_182, 0x0100, ANIM_TAG_LIGHTBULB}, - {gBattleAnimSpriteSheet_183, 0x0800, ANIM_TAG_SLASH}, - {gBattleAnimSpriteSheet_184, 0x0400, ANIM_TAG_FOCUS_ENERGY}, - {gBattleAnimSpriteSheet_185, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, - {gBattleAnimSpriteSheet_186, 0x1000, ANIM_TAG_TENDRILS}, - {gBattleAnimSpriteSheet_187, 0x0800, ANIM_TAG_EYE}, - {gBattleAnimSpriteSheet_188, 0x0400, ANIM_TAG_WHITE_SHADOW}, - {gBattleAnimSpriteSheet_189, 0x0200, ANIM_TAG_TEAL_ALERT}, - {gBattleAnimSpriteSheet_190, 0x0800, ANIM_TAG_OPENING_EYE}, - {gBattleAnimSpriteSheet_191, 0x0800, ANIM_TAG_ROUND_WHITE_HALO}, - {gBattleAnimSpriteSheet_192, 0x0800, ANIM_TAG_FANG_ATTACK}, - {gBattleAnimSpriteSheet_193, 0x0200, ANIM_TAG_PURPLE_HAND_OUTLINE}, - {gBattleAnimSpriteSheet_194, 0x0800, ANIM_TAG_MOON}, - {gBattleAnimSpriteSheet_195, 0x0200, ANIM_TAG_GREEN_SPARKLE}, - {gBattleAnimSpriteSheet_196, 0x0800, ANIM_TAG_SPIRAL}, - {gBattleAnimSpriteSheet_197, 0x0200, ANIM_TAG_SNORE_Z}, - {gBattleAnimSpriteSheet_198, 0x0800, ANIM_TAG_EXPLOSION}, - {gBattleAnimSpriteSheet_199, 0x0400, ANIM_TAG_NAIL}, - {gBattleAnimSpriteSheet_200, 0x0200, ANIM_TAG_GHOSTLY_SPIRIT}, - {gBattleAnimSpriteSheet_201, 0x0a80, ANIM_TAG_WARM_ROCK}, - {gBattleAnimSpriteSheet_202, 0x0600, ANIM_TAG_BREAKING_EGG}, - {gBattleAnimSpriteSheet_203, 0x0800, ANIM_TAG_THIN_RING}, - {gBattleAnimSpriteSheet_204, 0x0200, ANIM_TAG_PUNCH_IMPACT}, - {gBattleAnimSpriteSheet_205, 0x0600, ANIM_TAG_BELL}, - {gBattleAnimSpriteSheet_206, 0x0800, ANIM_TAG_MUSIC_NOTES_2}, - {gBattleAnimSpriteSheet_207, 0x0180, ANIM_TAG_SPEED_DUST}, - {gBattleAnimSpriteSheet_208, 0x0800, ANIM_TAG_TORN_METAL}, - {gBattleAnimSpriteSheet_209, 0x0800, ANIM_TAG_THOUGHT_BUBBLE}, - {gBattleAnimSpriteSheet_210, 0x0080, ANIM_TAG_MAGENTA_HEART}, - {gBattleAnimSpriteSheet_211, 0x0080, ANIM_TAG_ELECTRIC_ORBS}, - {gBattleAnimSpriteSheet_212, 0x0800, ANIM_TAG_CIRCLE_OF_LIGHT}, - {gBattleAnimSpriteSheet_213, 0x0800, ANIM_TAG_ELECTRICITY}, - {gBattleAnimSpriteSheet_214, 0x0600, ANIM_TAG_FINGER_2}, - {gBattleAnimSpriteSheet_215, 0x0600, ANIM_TAG_MOVEMENT_WAVES}, - {gBattleAnimSpriteSheet_210, 0x0080, ANIM_TAG_RED_HEART}, - {gBattleAnimSpriteSheet_217, 0x0080, ANIM_TAG_RED_ORB}, - {gBattleAnimSpriteSheet_218, 0x0180, ANIM_TAG_EYE_SPARKLE}, - {gBattleAnimSpriteSheet_210, 0x0080, ANIM_TAG_PINK_HEART}, - {gBattleAnimSpriteSheet_220, 0x0200, ANIM_TAG_ANGEL}, - {gBattleAnimSpriteSheet_221, 0x0400, ANIM_TAG_DEVIL}, - {gBattleAnimSpriteSheet_222, 0x0a00, ANIM_TAG_SWIPE}, - {gBattleAnimSpriteSheet_223, 0x0800, ANIM_TAG_ROOTS}, - {gBattleAnimSpriteSheet_224, 0x0200, ANIM_TAG_ITEM_BAG}, - {gBattleAnimSpriteSheet_225, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, - {gBattleAnimSpriteSheet_226, 0x0080, ANIM_TAG_POKEBALL}, - {gBattleAnimSpriteSheet_227, 0x0800, ANIM_TAG_SPOTLIGHT}, - {gBattleAnimSpriteSheet_228, 0x0200, ANIM_TAG_LETTER_Z}, - {gBattleAnimSpriteSheet_229, 0x0300, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpriteSheet_230, 0x0800, ANIM_TAG_TRI_FORCE_TRIANGLE}, - {gBattleAnimSpriteSheet_231, 0x0380, ANIM_TAG_WISP_ORB}, - {gBattleAnimSpriteSheet_232, 0x0800, ANIM_TAG_WISP_FIRE}, - {gBattleAnimSpriteSheet_233, 0x00c0, ANIM_TAG_GOLD_STARS}, - {gBattleAnimSpriteSheet_234, 0x0800, ANIM_TAG_ECLIPSING_ORB}, - {gBattleAnimSpriteSheet_235, 0x0060, ANIM_TAG_GRAY_ORB}, - {gBattleAnimSpriteSheet_235, 0x0060, ANIM_TAG_BLUE_ORB}, - {gBattleAnimSpriteSheet_235, 0x0060, ANIM_TAG_RED_ORB_2}, - {gBattleAnimSpriteSheet_238, 0x0080, ANIM_TAG_PINK_PETAL}, - {gBattleAnimSpriteSheet_239, 0x0180, ANIM_TAG_PAIN_SPLIT}, - {gBattleAnimSpriteSheet_240, 0x0180, ANIM_TAG_CONFETTI}, - {gBattleAnimSpriteSheet_241, 0x0200, ANIM_TAG_GREEN_STAR}, - {gBattleAnimSpriteSheet_242, 0x0200, ANIM_TAG_PINK_CLOUD}, - {gBattleAnimSpriteSheet_243, 0x0020, ANIM_TAG_SWEAT_DROP}, - {gBattleAnimSpriteSheet_244, 0x0400, ANIM_TAG_GUARD_RING}, - {gBattleAnimSpriteSheet_245, 0x0600, ANIM_TAG_PURPLE_SCRATCH}, - {gBattleAnimSpriteSheet_246, 0x1000, ANIM_TAG_PURPLE_SWIPE}, - {gBattleAnimSpriteSheet_247, 0x0400, ANIM_TAG_TAG_HAND}, - {gBattleAnimSpriteSheet_248, 0x0020, ANIM_TAG_SMALL_RED_EYE}, - {gBattleAnimSpriteSheet_249, 0x0080, ANIM_TAG_HOLLOW_ORB}, - {gBattleAnimSpriteSheet_250, 0x0800, ANIM_TAG_X_SIGN}, - {gBattleAnimSpriteSheet_251, 0x0080, ANIM_TAG_BLUEGREEN_ORB}, - {gBattleAnimSpriteSheet_252, 0x0200, ANIM_TAG_PAW_PRINT}, - {gBattleAnimSpriteSheet_253, 0x0400, ANIM_TAG_PURPLE_FLAME}, - {gBattleAnimSpriteSheet_254, 0x0200, ANIM_TAG_RED_BALL}, - {gBattleAnimSpriteSheet_255, 0x0200, ANIM_TAG_SMELLINGSALT_EFFECT}, - {gBattleAnimSpriteSheet_256, 0x0800, ANIM_TAG_METEOR}, - {gBattleAnimSpriteSheet_257, 0x0280, ANIM_TAG_FLAT_ROCK}, - {gBattleAnimSpriteSheet_258, 0x0200, ANIM_TAG_MAGNIFYING_GLASS}, - {gBattleAnimSpriteSheet_149, 0x0200, ANIM_TAG_BROWN_ORB}, - {gBattleAnimSpriteSheet_260, 0x0400, ANIM_TAG_METAL_SOUND_WAVES}, - {gBattleAnimSpriteSheet_261, 0x0200, ANIM_TAG_FLYING_DIRT}, - {gBattleAnimSpriteSheet_262, 0x0200, ANIM_TAG_ICICLE_SPEAR}, - {gBattleAnimSpriteSheet_263, 0x0080, ANIM_TAG_HAIL}, - {gBattleAnimSpriteSheet_264, 0x0020, ANIM_TAG_GLOWY_RED_ORB}, - {gBattleAnimSpriteSheet_264, 0x0020, ANIM_TAG_GLOWY_GREEN_ORB}, - {gBattleAnimSpriteSheet_266, 0x0080, ANIM_TAG_GREEN_SPIKE}, - {gBattleAnimSpriteSheet_212, 0x0800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, - {gBattleAnimSpriteSheet_264, 0x0020, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpriteSheet_269, 0x0080, ANIM_TAG_RED_BRICK}, - {gBattleAnimSpriteSheet_270, 0x0400, ANIM_TAG_WHITE_FEATHER}, - {gBattleAnimSpriteSheet_271, 0x0080, ANIM_TAG_SPARKLE_6}, - {gBattleAnimSpriteSheet_272, 0x0800, ANIM_TAG_SPLASH}, - {gBattleAnimSpriteSheet_273, 0x0020, ANIM_TAG_SWEAT_BEAD}, - {gBattleAnimSpriteSheet_274, 0x0800, ANIM_TAG_GEM_1}, - {gBattleAnimSpriteSheet_275, 0x0800, ANIM_TAG_GEM_2}, - {gBattleAnimSpriteSheet_276, 0x0800, ANIM_TAG_GEM_3}, - {gBattleAnimSpriteSheet_277, 0x1000, ANIM_TAG_SLAM_HIT_2}, - {gBattleAnimSpriteSheet_278, 0x0800, ANIM_TAG_RECYCLE}, - {gBattleAnimSpriteSheet_279, 0x00a0, ANIM_TAG_RED_PARTICLES}, - {gBattleAnimSpriteSheet_280, 0x0800, ANIM_TAG_PROTECT}, - {gBattleAnimSpriteSheet_281, 0x0200, ANIM_TAG_DIRT_MOUND}, - {gBattleAnimSpriteSheet_282, 0x0600, ANIM_TAG_SHOCK_3}, - {gBattleAnimSpriteSheet_283, 0x0200, ANIM_TAG_WEATHER_BALL}, - {gBattleAnimSpriteSheet_284, 0x0800, ANIM_TAG_BIRD}, - {gBattleAnimSpriteSheet_285, 0x0200, ANIM_TAG_CROSS_IMPACT}, - {gBattleAnimSpriteSheet_183, 0x0800, ANIM_TAG_SLASH_2}, - {gBattleAnimSpriteSheet_056, 0x1000, ANIM_TAG_WHIP_HIT}, - {gBattleAnimSpriteSheet_163, 0x0100, ANIM_TAG_BLUE_RING_2}, + {gBattleAnimSpriteSheet_Bone, 0x0200, ANIM_TAG_BONE}, + {gBattleAnimSpriteSheet_Spark, 0x0300, ANIM_TAG_SPARK}, + {gBattleAnimSpriteSheet_Pencil, 0x0200, ANIM_TAG_PENCIL}, + {gBattleAnimSpriteSheet_AirWave, 0x0100, ANIM_TAG_AIR_WAVE}, + {gBattleAnimSpriteSheet_Orb, 0x0200, ANIM_TAG_ORB}, + {gBattleAnimSpriteSheet_Sword, 0x0400, ANIM_TAG_SWORD}, + {gBattleAnimSpriteSheet_Seed, 0x0180, ANIM_TAG_SEED}, + {gBattleAnimSpriteSheet_Explosion6, 0x0800, ANIM_TAG_EXPLOSION_6}, + {gBattleAnimSpriteSheet_PinkOrb, 0x0020, ANIM_TAG_PINK_ORB}, + {gBattleAnimSpriteSheet_Gust, 0x0400, ANIM_TAG_GUST}, + {gBattleAnimSpriteSheet_IceCube, 0x1200, ANIM_TAG_ICE_CUBE}, + {gBattleAnimSpriteSheet_Spark2, 0x0180, ANIM_TAG_SPARK_2}, + {gBattleAnimSpriteSheet_Orange, 0x0080, ANIM_TAG_ORANGE}, + {gBattleAnimSpriteSheet_YellowBall, 0x0080, ANIM_TAG_YELLOW_BALL}, + {gBattleAnimSpriteSheet_LockOn, 0x0280, ANIM_TAG_LOCK_ON}, + {gBattleAnimSpriteSheet_TiedBag, 0x0080, ANIM_TAG_TIED_BAG}, + {gBattleAnimSpriteSheet_BlackSmoke, 0x0100, ANIM_TAG_BLACK_SMOKE}, + {gBattleAnimSpriteSheet_BlackBall, 0x0020, ANIM_TAG_BLACK_BALL}, + {gBattleAnimSpriteSheet_Conversion, 0x0080, ANIM_TAG_CONVERSION}, + {gBattleAnimSpriteSheet_Glass, 0x0400, ANIM_TAG_GLASS}, + {gBattleAnimSpriteSheet_HornHit, 0x0200, ANIM_TAG_HORN_HIT}, + {gBattleAnimSpriteSheet_Hit, 0x0A00, ANIM_TAG_HIT}, + {gBattleAnimSpriteSheet_Hit, 0x0A00, ANIM_TAG_HIT_2}, + {gBattleAnimSpriteSheet_BlueShards, 0x0380, ANIM_TAG_BLUE_SHARDS}, + {gBattleAnimSpriteSheet_ClosingEye, 0x0300, ANIM_TAG_CLOSING_EYE}, + {gBattleAnimSpriteSheet_WavingHand, 0x0A00, ANIM_TAG_WAVING_HAND}, + {gBattleAnimSpriteSheet_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, + {gBattleAnimSpriteSheet_Leer, 0x0A00, ANIM_TAG_LEER}, + {gBattleAnimSpriteSheet_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST}, + {gBattleAnimSpriteSheet_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER}, + {gBattleAnimSpriteSheet_GraySmoke, 0x0A00, ANIM_TAG_GRAY_SMOKE}, + {gBattleAnimSpriteSheet_BlueStar, 0x0E00, ANIM_TAG_BLUE_STAR}, + {gBattleAnimSpriteSheet_BubbleBurst, 0x0380, ANIM_TAG_BUBBLE_BURST}, + {gBattleAnimSpriteSheet_Fire, 0x1000, ANIM_TAG_FIRE}, + {gBattleAnimSpriteSheet_SpinningFire, 0x0800, ANIM_TAG_SPINNING_FIRE}, + {gBattleAnimSpriteSheet_FirePlume, 0x0A00, ANIM_TAG_FIRE_PLUME}, + {gBattleAnimSpriteSheet_Lightning2, 0x0800, ANIM_TAG_LIGHTNING_2}, + {gBattleAnimSpriteSheet_Lightning, 0x0A00, ANIM_TAG_LIGHTNING}, + {gBattleAnimSpriteSheet_ClawSlash2, 0x0A00, ANIM_TAG_CLAW_SLASH_2}, + {gBattleAnimSpriteSheet_ClawSlash, 0x0A00, ANIM_TAG_CLAW_SLASH}, + {gBattleAnimSpriteSheet_Scratch3, 0x0A00, ANIM_TAG_SCRATCH_3}, + {gBattleAnimSpriteSheet_Scratch2, 0x0A00, ANIM_TAG_SCRATCH_2}, + {gBattleAnimSpriteSheet_BubbleBurst2, 0x0A00, ANIM_TAG_BUBBLE_BURST_2}, + {gBattleAnimSpriteSheet_IceChunk, 0x0A00, ANIM_TAG_ICE_CHUNK}, + {gBattleAnimSpriteSheet_Glass2, 0x0A00, ANIM_TAG_GLASS_2}, + {gBattleAnimSpriteSheet_PinkHeart2, 0x0A00, ANIM_TAG_PINK_HEART_2}, + {gBattleAnimSpriteSheet_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpriteSheet_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP_2}, + {gBattleAnimSpriteSheet_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_1}, + {gBattleAnimSpriteSheet_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_2}, + {gBattleAnimSpriteSheet_HumanoidFoot, 0x0200, ANIM_TAG_HUMANOID_FOOT}, + {gBattleAnimSpriteSheet_MonsterFoot, 0x0200, ANIM_TAG_MONSTER_FOOT}, + {gBattleAnimSpriteSheet_HumanoidHand, 0x0200, ANIM_TAG_HUMANOID_HAND}, + {gBattleAnimSpriteSheet_NoiseLine, 0x0800, ANIM_TAG_NOISE_LINE}, + {gBattleAnimSpriteSheet_YellowUnk, 0x0080, ANIM_TAG_YELLOW_UNK}, + {gBattleAnimSpriteSheet_RedFist, 0x0200, ANIM_TAG_RED_FIST}, + {gBattleAnimSpriteSheet_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT}, + {gBattleAnimSpriteSheet_Ring, 0x0180, ANIM_TAG_RING}, + {gBattleAnimSpriteSheet_Rocks, 0x0C00, ANIM_TAG_ROCKS}, + {gBattleAnimSpriteSheet_Z, 0x0100, ANIM_TAG_Z}, + {gBattleAnimSpriteSheet_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2}, + {gBattleAnimSpriteSheet_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH}, + {gBattleAnimSpriteSheet_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, + {gBattleAnimSpriteSheet_Leaf, 0x0480, ANIM_TAG_LEAF}, + {gBattleAnimSpriteSheet_Finger, 0x0200, ANIM_TAG_FINGER}, + {gBattleAnimSpriteSheet_PoisonPowder, 0x0200, ANIM_TAG_POISON_POWDER}, + {gBattleAnimSpriteSheet_BrownTriangle, 0x0100, ANIM_TAG_BROWN_TRIANGLE}, + {gBattleAnimSpriteSheet_PoisonPowder, 0x0200, ANIM_TAG_SLEEP_POWDER}, + {gBattleAnimSpriteSheet_PoisonPowder, 0x0200, ANIM_TAG_STUN_SPORE}, + {gBattleAnimSpriteSheet_PoisonPowder, 0x0200, ANIM_TAG_POWDER}, + {gBattleAnimSpriteSheet_Sparkle3, 0x0200, ANIM_TAG_SPARKLE_3}, + {gBattleAnimSpriteSheet_Sparkle4, 0x0A00, ANIM_TAG_SPARKLE_4}, + {gBattleAnimSpriteSheet_MusicNotes, 0x0300, ANIM_TAG_MUSIC_NOTES}, + {gBattleAnimSpriteSheet_Duck, 0x0180, ANIM_TAG_DUCK}, + {gBattleAnimSpriteSheet_MudSand, 0x00A0, ANIM_TAG_MUD_SAND}, + {gBattleAnimSpriteSheet_Alert, 0x0700, ANIM_TAG_ALERT}, + {gBattleAnimSpriteSheet_BlueFlames, 0x0400, ANIM_TAG_BLUE_FLAMES}, + {gBattleAnimSpriteSheet_BlueFlames2, 0x0200, ANIM_TAG_BLUE_FLAMES_2}, + {gBattleAnimSpriteSheet_Shock4, 0x0300, ANIM_TAG_SHOCK_4}, + {gBattleAnimSpriteSheet_Shock, 0x0C00, ANIM_TAG_SHOCK}, + {gBattleAnimSpriteSheet_Bell2, 0x0A00, ANIM_TAG_BELL_2}, + {gBattleAnimSpriteSheet_PinkGlove, 0x0080, ANIM_TAG_PINK_GLOVE}, + {gBattleAnimSpriteSheet_BlueLines, 0x0040, ANIM_TAG_BLUE_LINES}, + {gBattleAnimSpriteSheet_Impact3, 0x0E00, ANIM_TAG_IMPACT_3}, + {gBattleAnimSpriteSheet_Impact2, 0x0E00, ANIM_TAG_IMPACT_2}, + {gBattleAnimSpriteSheet_Reticle, 0x0280, ANIM_TAG_RETICLE}, + {gBattleAnimSpriteSheet_Breath, 0x0200, ANIM_TAG_BREATH}, + {gBattleAnimSpriteSheet_Anger, 0x0080, ANIM_TAG_ANGER}, + {gBattleAnimSpriteSheet_Snowball, 0x00C0, ANIM_TAG_SNOWBALL}, + {gBattleAnimSpriteSheet_Vine, 0x0A00, ANIM_TAG_VINE}, + {gBattleAnimSpriteSheet_Sword2, 0x0200, ANIM_TAG_SWORD_2}, + {gBattleAnimSpriteSheet_Clapping, 0x0180, ANIM_TAG_CLAPPING}, + {gBattleAnimSpriteSheet_RedTube, 0x0080, ANIM_TAG_RED_TUBE}, + {gBattleAnimSpriteSheet_Amnesia, 0x1000, ANIM_TAG_AMNESIA}, + {gBattleAnimSpriteSheet_String2, 0x0A00, ANIM_TAG_STRING_2}, + {gBattleAnimSpriteSheet_Pencil2, 0x0180, ANIM_TAG_PENCIL_2}, + {gBattleAnimSpriteSheet_Petal, 0x0380, ANIM_TAG_PETAL}, + {gBattleAnimSpriteSheet_BentSpoon, 0x0C00, ANIM_TAG_BENT_SPOON}, + {gBattleAnimSpriteSheet_Web, 0x0200, ANIM_TAG_WEB}, + {gBattleAnimSpriteSheet_MilkBottle, 0x0200, ANIM_TAG_MILK_BOTTLE}, + {gBattleAnimSpriteSheet_Coin, 0x0200, ANIM_TAG_COIN}, + {gBattleAnimSpriteSheet_CrackedEgg, 0x0200, ANIM_TAG_CRACKED_EGG}, + {gBattleAnimSpriteSheet_HatchedEgg, 0x0400, ANIM_TAG_HATCHED_EGG}, + {gBattleAnimSpriteSheet_FreshEgg, 0x0080, ANIM_TAG_FRESH_EGG}, + {gBattleAnimSpriteSheet_Fangs, 0x0400, ANIM_TAG_FANGS}, + {gBattleAnimSpriteSheet_Explosion2, 0x0c00, ANIM_TAG_EXPLOSION_2}, + {gBattleAnimSpriteSheet_Explosion3, 0x0200, ANIM_TAG_EXPLOSION_3}, + {gBattleAnimSpriteSheet_WaterDroplet, 0x1000, ANIM_TAG_WATER_DROPLET}, + {gBattleAnimSpriteSheet_WaterDroplet2, 0x0a00, ANIM_TAG_WATER_DROPLET_2}, + {gBattleAnimSpriteSheet_Seed2, 0x0020, ANIM_TAG_SEED_2}, + {gBattleAnimSpriteSheet_Sprout, 0x0e00, ANIM_TAG_SPROUT}, + {gBattleAnimSpriteSheet_RedWand, 0x0080, ANIM_TAG_RED_WAND}, + {gBattleAnimSpriteSheet_PurpleGreenUnk, 0x0a00, ANIM_TAG_PURPLE_GREEN_UNK}, + {gBattleAnimSpriteSheet_WaterColumn, 0x0400, ANIM_TAG_WATER_COLUMN}, + {gBattleAnimSpriteSheet_MudUnk, 0x0200, ANIM_TAG_MUD_UNK}, + {gBattleAnimSpriteSheet_RainDrops, 0x0700, ANIM_TAG_RAIN_DROPS}, + {gBattleAnimSpriteSheet_FurySwipes, 0x0800, ANIM_TAG_FURY_SWIPES}, + {gBattleAnimSpriteSheet_Vine2, 0x0a00, ANIM_TAG_VINE_2}, + {gBattleAnimSpriteSheet_Teeth, 0x0600, ANIM_TAG_TEETH}, + {gBattleAnimSpriteSheet_Bone2, 0x0800, ANIM_TAG_BONE_2}, + {gBattleAnimSpriteSheet_WhiteBag, 0x0200, ANIM_TAG_WHITE_BAG}, + {gBattleAnimSpriteSheet_Unknown, 0x0040, ANIM_TAG_UNKNOWN}, + {gBattleAnimSpriteSheet_PurpleCoral, 0x0180, ANIM_TAG_PURPLE_CORAL}, + {gBattleAnimSpriteSheet_PurpleDroplet, 0x0600, ANIM_TAG_PURPLE_DROPLET}, + {gBattleAnimSpriteSheet_Shock2, 0x0600, ANIM_TAG_SHOCK_2}, + {gBattleAnimSpriteSheet_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2}, + {gBattleAnimSpriteSheet_MetalBall, 0x0080, ANIM_TAG_METAL_BALL}, + {gBattleAnimSpriteSheet_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL}, + {gBattleAnimSpriteSheet_Whirlwind, 0x0800, ANIM_TAG_WHIRLWIND}, + {gBattleAnimSpriteSheet_Whirlwind2, 0x0080, ANIM_TAG_WHIRLWIND_2}, + {gBattleAnimSpriteSheet_Explosion4, 0x0a00, ANIM_TAG_EXPLOSION_4}, + {gBattleAnimSpriteSheet_Explosion5, 0x0280, ANIM_TAG_EXPLOSION_5}, + {gBattleAnimSpriteSheet_Tongue, 0x0280, ANIM_TAG_TONGUE}, + {gBattleAnimSpriteSheet_Smoke, 0x0100, ANIM_TAG_SMOKE}, + {gBattleAnimSpriteSheet_Smoke2, 0x0200, ANIM_TAG_SMOKE_2}, + {gBattleAnimSpriteSheet_Impact, 0x0200, ANIM_TAG_IMPACT}, + {gBattleAnimSpriteSheet_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, + {gBattleAnimSpriteSheet_Scratch, 0x0a00, ANIM_TAG_SCRATCH}, + {gBattleAnimSpriteSheet_Cut, 0x0800, ANIM_TAG_CUT}, + {gBattleAnimSpriteSheet_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, + {gBattleAnimSpriteSheet_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, + {gBattleAnimSpriteSheet_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, + {gBattleAnimSpriteSheet_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES}, + {gBattleAnimSpriteSheet_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, + {gBattleAnimSpriteSheet_MistCloud, 0x0200, ANIM_TAG_MIST_CLOUD}, + {gBattleAnimSpriteSheet_Clamp, 0x0800, ANIM_TAG_CLAMP}, + {gBattleAnimSpriteSheet_Bubble, 0x0180, ANIM_TAG_BUBBLE}, + {gBattleAnimSpriteSheet_Orbs, 0x0180, ANIM_TAG_ORBS}, + {gBattleAnimSpriteSheet_WaterImpact, 0x0200, ANIM_TAG_WATER_IMPACT}, + {gBattleAnimSpriteSheet_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB}, + {gBattleAnimSpriteSheet_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE}, + {gBattleAnimSpriteSheet_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, + {gBattleAnimSpriteSheet_Spikes, 0x0080, ANIM_TAG_SPIKES}, + {gBattleAnimSpriteSheet_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2}, + {gBattleAnimSpriteSheet_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2}, + {gBattleAnimSpriteSheet_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES}, + {gBattleAnimSpriteSheet_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW}, + {gBattleAnimSpriteSheet_Sunlight, 0x0200, ANIM_TAG_SUNLIGHT}, + {gBattleAnimSpriteSheet_Spore, 0x0100, ANIM_TAG_SPORE}, + {gBattleAnimSpriteSheet_Flower, 0x00a0, ANIM_TAG_FLOWER}, + {gBattleAnimSpriteSheet_RazorLeaf, 0x0100, ANIM_TAG_RAZOR_LEAF}, + {gBattleAnimSpriteSheet_Needle, 0x0080, ANIM_TAG_NEEDLE}, + {gBattleAnimSpriteSheet_WhirlwindLines, 0x0300, ANIM_TAG_WHIRLWIND_LINES}, + {gBattleAnimSpriteSheet_GoldRing, 0x0100, ANIM_TAG_GOLD_RING}, + {gBattleAnimSpriteSheet_GoldRing, 0x0100, ANIM_TAG_PURPLE_RING}, + {gBattleAnimSpriteSheet_GoldRing, 0x0100, ANIM_TAG_BLUE_RING}, + {gBattleAnimSpriteSheet_GreenLightWall, 0x0800, ANIM_TAG_GREEN_LIGHT_WALL}, + {gBattleAnimSpriteSheet_GreenLightWall, 0x0800, ANIM_TAG_BLUE_LIGHT_WALL}, + {gBattleAnimSpriteSheet_GreenLightWall, 0x0800, ANIM_TAG_RED_LIGHT_WALL}, + {gBattleAnimSpriteSheet_GreenLightWall, 0x0800, ANIM_TAG_GRAY_LIGHT_WALL}, + {gBattleAnimSpriteSheet_GreenLightWall, 0x0800, ANIM_TAG_ORANGE_LIGHT_WALL}, + {gBattleAnimSpriteSheet_BlackBall2, 0x0080, ANIM_TAG_BLACK_BALL_2}, + {gBattleAnimSpriteSheet_MistCloud, 0x0200, ANIM_TAG_PURPLE_GAS_CLOUD}, + {gBattleAnimSpriteSheet_SparkH, 0x0200, ANIM_TAG_SPARK_H}, + {gBattleAnimSpriteSheet_YellowStar, 0x0200, ANIM_TAG_YELLOW_STAR}, + {gBattleAnimSpriteSheet_LargeFreshEgg, 0x0080, ANIM_TAG_LARGE_FRESH_EGG}, + {gBattleAnimSpriteSheet_ShadowBall, 0x0200, ANIM_TAG_SHADOW_BALL}, + {gBattleAnimSpriteSheet_Lick, 0x0500, ANIM_TAG_LICK}, + {gBattleAnimSpriteSheet_VoidLines, 0x0800, ANIM_TAG_VOID_LINES}, + {gBattleAnimSpriteSheet_String, 0x0400, ANIM_TAG_STRING}, + {gBattleAnimSpriteSheet_WebThread, 0x0020, ANIM_TAG_WEB_THREAD}, + {gBattleAnimSpriteSheet_SpiderWeb, 0x0800, ANIM_TAG_SPIDER_WEB}, + {gBattleAnimSpriteSheet_Lightbulb, 0x0100, ANIM_TAG_LIGHTBULB}, + {gBattleAnimSpriteSheet_Slash, 0x0800, ANIM_TAG_SLASH}, + {gBattleAnimSpriteSheet_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY}, + {gBattleAnimSpriteSheet_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, + {gBattleAnimSpriteSheet_Tendrils, 0x1000, ANIM_TAG_TENDRILS}, + {gBattleAnimSpriteSheet_Eye, 0x0800, ANIM_TAG_EYE}, + {gBattleAnimSpriteSheet_WhiteShadow, 0x0400, ANIM_TAG_WHITE_SHADOW}, + {gBattleAnimSpriteSheet_TealAlert, 0x0200, ANIM_TAG_TEAL_ALERT}, + {gBattleAnimSpriteSheet_OpeningEye, 0x0800, ANIM_TAG_OPENING_EYE}, + {gBattleAnimSpriteSheet_RoundWhiteHalo, 0x0800, ANIM_TAG_ROUND_WHITE_HALO}, + {gBattleAnimSpriteSheet_FangAttack, 0x0800, ANIM_TAG_FANG_ATTACK}, + {gBattleAnimSpriteSheet_PurpleHandOutline, 0x0200, ANIM_TAG_PURPLE_HAND_OUTLINE}, + {gBattleAnimSpriteSheet_Moon, 0x0800, ANIM_TAG_MOON}, + {gBattleAnimSpriteSheet_GreenSparkle, 0x0200, ANIM_TAG_GREEN_SPARKLE}, + {gBattleAnimSpriteSheet_Spiral, 0x0800, ANIM_TAG_SPIRAL}, + {gBattleAnimSpriteSheet_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z}, + {gBattleAnimSpriteSheet_Explosion, 0x0800, ANIM_TAG_EXPLOSION}, + {gBattleAnimSpriteSheet_Nail, 0x0400, ANIM_TAG_NAIL}, + {gBattleAnimSpriteSheet_GhostlySpirit, 0x0200, ANIM_TAG_GHOSTLY_SPIRIT}, + {gBattleAnimSpriteSheet_WarmRock, 0x0a80, ANIM_TAG_WARM_ROCK}, + {gBattleAnimSpriteSheet_BreakingEgg, 0x0600, ANIM_TAG_BREAKING_EGG}, + {gBattleAnimSpriteSheet_ThinRing, 0x0800, ANIM_TAG_THIN_RING}, + {gBattleAnimSpriteSheet_PunchImpact, 0x0200, ANIM_TAG_PUNCH_IMPACT}, + {gBattleAnimSpriteSheet_Bell, 0x0600, ANIM_TAG_BELL}, + {gBattleAnimSpriteSheet_MusicNotes2, 0x0800, ANIM_TAG_MUSIC_NOTES_2}, + {gBattleAnimSpriteSheet_SpeedDust, 0x0180, ANIM_TAG_SPEED_DUST}, + {gBattleAnimSpriteSheet_TornMetal, 0x0800, ANIM_TAG_TORN_METAL}, + {gBattleAnimSpriteSheet_ThoughtBubble, 0x0800, ANIM_TAG_THOUGHT_BUBBLE}, + {gBattleAnimSpriteSheet_MagentaHeart, 0x0080, ANIM_TAG_MAGENTA_HEART}, + {gBattleAnimSpriteSheet_ElectricOrbs, 0x0080, ANIM_TAG_ELECTRIC_ORBS}, + {gBattleAnimSpriteSheet_CircleOfLight, 0x0800, ANIM_TAG_CIRCLE_OF_LIGHT}, + {gBattleAnimSpriteSheet_Electricity, 0x0800, ANIM_TAG_ELECTRICITY}, + {gBattleAnimSpriteSheet_Finger2, 0x0600, ANIM_TAG_FINGER_2}, + {gBattleAnimSpriteSheet_MovementWaves, 0x0600, ANIM_TAG_MOVEMENT_WAVES}, + {gBattleAnimSpriteSheet_MagentaHeart, 0x0080, ANIM_TAG_RED_HEART}, + {gBattleAnimSpriteSheet_RedOrb, 0x0080, ANIM_TAG_RED_ORB}, + {gBattleAnimSpriteSheet_EyeSparkle, 0x0180, ANIM_TAG_EYE_SPARKLE}, + {gBattleAnimSpriteSheet_MagentaHeart, 0x0080, ANIM_TAG_PINK_HEART}, + {gBattleAnimSpriteSheet_Angel, 0x0200, ANIM_TAG_ANGEL}, + {gBattleAnimSpriteSheet_Devil, 0x0400, ANIM_TAG_DEVIL}, + {gBattleAnimSpriteSheet_Swipe, 0x0a00, ANIM_TAG_SWIPE}, + {gBattleAnimSpriteSheet_Roots, 0x0800, ANIM_TAG_ROOTS}, + {gBattleAnimSpriteSheet_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG}, + {gBattleAnimSpriteSheet_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, + {gBattleAnimSpriteSheet_Pokeball, 0x0080, ANIM_TAG_POKEBALL}, + {gBattleAnimSpriteSheet_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, + {gBattleAnimSpriteSheet_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, + {gBattleAnimSpriteSheet_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, + {gBattleAnimSpriteSheet_TriForceTriangle, 0x0800, ANIM_TAG_TRI_FORCE_TRIANGLE}, + {gBattleAnimSpriteSheet_WispOrb, 0x0380, ANIM_TAG_WISP_ORB}, + {gBattleAnimSpriteSheet_WispFire, 0x0800, ANIM_TAG_WISP_FIRE}, + {gBattleAnimSpriteSheet_GoldStars, 0x00c0, ANIM_TAG_GOLD_STARS}, + {gBattleAnimSpriteSheet_EclipsingOrb, 0x0800, ANIM_TAG_ECLIPSING_ORB}, + {gBattleAnimSpriteSheet_GrayOrb, 0x0060, ANIM_TAG_GRAY_ORB}, + {gBattleAnimSpriteSheet_GrayOrb, 0x0060, ANIM_TAG_BLUE_ORB}, + {gBattleAnimSpriteSheet_GrayOrb, 0x0060, ANIM_TAG_RED_ORB_2}, + {gBattleAnimSpriteSheet_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL}, + {gBattleAnimSpriteSheet_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT}, + {gBattleAnimSpriteSheet_Confetti, 0x0180, ANIM_TAG_CONFETTI}, + {gBattleAnimSpriteSheet_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, + {gBattleAnimSpriteSheet_PinkCloud, 0x0200, ANIM_TAG_PINK_CLOUD}, + {gBattleAnimSpriteSheet_SweatDrop, 0x0020, ANIM_TAG_SWEAT_DROP}, + {gBattleAnimSpriteSheet_GuardRing, 0x0400, ANIM_TAG_GUARD_RING}, + {gBattleAnimSpriteSheet_PurpleScratch, 0x0600, ANIM_TAG_PURPLE_SCRATCH}, + {gBattleAnimSpriteSheet_PurpleSwipe, 0x1000, ANIM_TAG_PURPLE_SWIPE}, + {gBattleAnimSpriteSheet_TagHand, 0x0400, ANIM_TAG_TAG_HAND}, + {gBattleAnimSpriteSheet_SmallRedEye, 0x0020, ANIM_TAG_SMALL_RED_EYE}, + {gBattleAnimSpriteSheet_HollowOrb, 0x0080, ANIM_TAG_HOLLOW_ORB}, + {gBattleAnimSpriteSheet_XSign, 0x0800, ANIM_TAG_X_SIGN}, + {gBattleAnimSpriteSheet_BluegreenOrb, 0x0080, ANIM_TAG_BLUEGREEN_ORB}, + {gBattleAnimSpriteSheet_PawPrint, 0x0200, ANIM_TAG_PAW_PRINT}, + {gBattleAnimSpriteSheet_PurpleFlame, 0x0400, ANIM_TAG_PURPLE_FLAME}, + {gBattleAnimSpriteSheet_RedBall, 0x0200, ANIM_TAG_RED_BALL}, + {gBattleAnimSpriteSheet_SmellingsaltEffect, 0x0200, ANIM_TAG_SMELLINGSALT_EFFECT}, + {gBattleAnimSpriteSheet_Meteor, 0x0800, ANIM_TAG_METEOR}, + {gBattleAnimSpriteSheet_FlatRock, 0x0280, ANIM_TAG_FLAT_ROCK}, + {gBattleAnimSpriteSheet_MagnifyingGlass, 0x0200, ANIM_TAG_MAGNIFYING_GLASS}, + {gBattleAnimSpriteSheet_WaterOrb, 0x0200, ANIM_TAG_BROWN_ORB}, + {gBattleAnimSpriteSheet_MetalSoundWaves, 0x0400, ANIM_TAG_METAL_SOUND_WAVES}, + {gBattleAnimSpriteSheet_FlyingDirt, 0x0200, ANIM_TAG_FLYING_DIRT}, + {gBattleAnimSpriteSheet_IcicleSpear, 0x0200, ANIM_TAG_ICICLE_SPEAR}, + {gBattleAnimSpriteSheet_Hail, 0x0080, ANIM_TAG_HAIL}, + {gBattleAnimSpriteSheet_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_RED_ORB}, + {gBattleAnimSpriteSheet_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_GREEN_ORB}, + {gBattleAnimSpriteSheet_GreenSpike, 0x0080, ANIM_TAG_GREEN_SPIKE}, + {gBattleAnimSpriteSheet_CircleOfLight, 0x0800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, + {gBattleAnimSpriteSheet_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_BLUE_ORB}, + {gBattleAnimSpriteSheet_RedBrick, 0x0080, ANIM_TAG_RED_BRICK}, + {gBattleAnimSpriteSheet_WhiteFeather, 0x0400, ANIM_TAG_WHITE_FEATHER}, + {gBattleAnimSpriteSheet_Sparkle6, 0x0080, ANIM_TAG_SPARKLE_6}, + {gBattleAnimSpriteSheet_Splash, 0x0800, ANIM_TAG_SPLASH}, + {gBattleAnimSpriteSheet_SweatBead, 0x0020, ANIM_TAG_SWEAT_BEAD}, + {gBattleAnimSpriteSheet_Gem1, 0x0800, ANIM_TAG_GEM_1}, + {gBattleAnimSpriteSheet_Gem2, 0x0800, ANIM_TAG_GEM_2}, + {gBattleAnimSpriteSheet_Gem3, 0x0800, ANIM_TAG_GEM_3}, + {gBattleAnimSpriteSheet_SlamHit2, 0x1000, ANIM_TAG_SLAM_HIT_2}, + {gBattleAnimSpriteSheet_Recycle, 0x0800, ANIM_TAG_RECYCLE}, + {gBattleAnimSpriteSheet_RedParticles, 0x00a0, ANIM_TAG_RED_PARTICLES}, + {gBattleAnimSpriteSheet_Protect, 0x0800, ANIM_TAG_PROTECT}, + {gBattleAnimSpriteSheet_DirtMound, 0x0200, ANIM_TAG_DIRT_MOUND}, + {gBattleAnimSpriteSheet_Shock3, 0x0600, ANIM_TAG_SHOCK_3}, + {gBattleAnimSpriteSheet_WeatherBall, 0x0200, ANIM_TAG_WEATHER_BALL}, + {gBattleAnimSpriteSheet_Bird, 0x0800, ANIM_TAG_BIRD}, + {gBattleAnimSpriteSheet_CrossImpact, 0x0200, ANIM_TAG_CROSS_IMPACT}, + {gBattleAnimSpriteSheet_Slash, 0x0800, ANIM_TAG_SLASH_2}, + {gBattleAnimSpriteSheet_SlamHit, 0x1000, ANIM_TAG_WHIP_HIT}, + {gBattleAnimSpriteSheet_GoldRing, 0x0100, ANIM_TAG_BLUE_RING_2}, }; - const struct CompressedSpritePalette gBattleAnimPaletteTable[] = { - {gBattleAnimSpritePalette_000, ANIM_TAG_BONE}, - {gBattleAnimSpritePalette_001, ANIM_TAG_SPARK}, - {gBattleAnimSpritePalette_002, ANIM_TAG_PENCIL}, - {gBattleAnimSpritePalette_003, ANIM_TAG_AIR_WAVE}, - {gBattleAnimSpritePalette_004, ANIM_TAG_ORB}, - {gBattleAnimSpritePalette_005, ANIM_TAG_SWORD}, - {gBattleAnimSpritePalette_006, ANIM_TAG_SEED}, - {gBattleAnimSpritePalette_007, ANIM_TAG_EXPLOSION_6}, - {gBattleAnimSpritePalette_008, ANIM_TAG_PINK_ORB}, - {gBattleAnimSpritePalette_009, ANIM_TAG_GUST}, - {gBattleAnimSpritePalette_010, ANIM_TAG_ICE_CUBE}, - {gBattleAnimSpritePalette_011, ANIM_TAG_SPARK_2}, - {gBattleAnimSpritePalette_012, ANIM_TAG_ORANGE}, - {gBattleAnimSpritePalette_013, ANIM_TAG_YELLOW_BALL}, - {gBattleAnimSpritePalette_014, ANIM_TAG_LOCK_ON}, - {gBattleAnimSpritePalette_015, ANIM_TAG_TIED_BAG}, - {gBattleAnimSpritePalette_016, ANIM_TAG_BLACK_SMOKE}, - {gBattleAnimSpritePalette_016, ANIM_TAG_BLACK_BALL}, - {gBattleAnimSpritePalette_018, ANIM_TAG_CONVERSION}, - {gBattleAnimSpritePalette_019, ANIM_TAG_GLASS}, - {gBattleAnimSpritePalette_020, ANIM_TAG_HORN_HIT}, - {gBattleAnimSpritePalette_021, ANIM_TAG_HIT}, - {gBattleAnimSpritePalette_022, ANIM_TAG_HIT_2}, - {gBattleAnimSpritePalette_023, ANIM_TAG_BLUE_SHARDS}, - {gBattleAnimSpritePalette_024, ANIM_TAG_CLOSING_EYE}, - {gBattleAnimSpritePalette_025, ANIM_TAG_WAVING_HAND}, - {gBattleAnimSpritePalette_026, ANIM_TAG_HIT_DUPLICATE}, - {gBattleAnimSpritePalette_027, ANIM_TAG_LEER}, - {gBattleAnimSpritePalette_028, ANIM_TAG_BLUE_BURST}, - {gBattleAnimSpritePalette_029, ANIM_TAG_SMALL_EMBER}, - {gBattleAnimSpritePalette_030, ANIM_TAG_GRAY_SMOKE}, - {gBattleAnimSpritePalette_031, ANIM_TAG_BLUE_STAR}, - {gBattleAnimSpritePalette_032, ANIM_TAG_BUBBLE_BURST}, - {gBattleAnimSpritePalette_033, ANIM_TAG_FIRE}, - {gBattleAnimSpritePalette_033, ANIM_TAG_SPINNING_FIRE}, - {gBattleAnimSpritePalette_033, ANIM_TAG_FIRE_PLUME}, - {gBattleAnimSpritePalette_036, ANIM_TAG_LIGHTNING_2}, - {gBattleAnimSpritePalette_036, ANIM_TAG_LIGHTNING}, - {gBattleAnimSpritePalette_038, ANIM_TAG_CLAW_SLASH_2}, - {gBattleAnimSpritePalette_039, ANIM_TAG_CLAW_SLASH}, - {gBattleAnimSpritePalette_038, ANIM_TAG_SCRATCH_3}, - {gBattleAnimSpritePalette_038, ANIM_TAG_SCRATCH_2}, - {gBattleAnimSpritePalette_042, ANIM_TAG_BUBBLE_BURST_2}, - {gBattleAnimSpritePalette_043, ANIM_TAG_ICE_CHUNK}, - {gBattleAnimSpritePalette_044, ANIM_TAG_GLASS_2}, - {gBattleAnimSpritePalette_045, ANIM_TAG_PINK_HEART_2}, - {gBattleAnimSpritePalette_046, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpritePalette_047, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpritePalette_048, ANIM_TAG_SPARKLE_1}, - {gBattleAnimSpritePalette_049, ANIM_TAG_SPARKLE_2}, - {gBattleAnimSpritePalette_050, ANIM_TAG_HUMANOID_FOOT}, - {gBattleAnimSpritePalette_050, ANIM_TAG_MONSTER_FOOT}, - {gBattleAnimSpritePalette_050, ANIM_TAG_HUMANOID_HAND}, - {gBattleAnimSpritePalette_026, ANIM_TAG_NOISE_LINE}, - {gBattleAnimSpritePalette_054, ANIM_TAG_YELLOW_UNK}, - {gBattleAnimSpritePalette_050, ANIM_TAG_RED_FIST}, - {gBattleAnimSpritePalette_056, ANIM_TAG_SLAM_HIT}, - {gBattleAnimSpritePalette_057, ANIM_TAG_RING}, - {gBattleAnimSpritePalette_058, ANIM_TAG_ROCKS}, - {gBattleAnimSpritePalette_059, ANIM_TAG_Z}, - {gBattleAnimSpritePalette_060, ANIM_TAG_YELLOW_UNK_2}, - {gBattleAnimSpritePalette_061, ANIM_TAG_AIR_SLASH}, - {gBattleAnimSpritePalette_062, ANIM_TAG_SPINNING_GREEN_ORBS}, - {gBattleAnimSpritePalette_063, ANIM_TAG_LEAF}, - {gBattleAnimSpritePalette_064, ANIM_TAG_FINGER}, - {gBattleAnimSpritePalette_065, ANIM_TAG_POISON_POWDER}, - {gBattleAnimSpritePalette_066, ANIM_TAG_BROWN_TRIANGLE}, - {gBattleAnimSpritePalette_067, ANIM_TAG_SLEEP_POWDER}, - {gBattleAnimSpritePalette_068, ANIM_TAG_STUN_SPORE}, - {gBattleAnimSpritePalette_065, ANIM_TAG_POWDER}, - {gBattleAnimSpritePalette_070, ANIM_TAG_SPARKLE_3}, - {gBattleAnimSpritePalette_070, ANIM_TAG_SPARKLE_4}, - {gBattleAnimSpritePalette_072, ANIM_TAG_MUSIC_NOTES}, - {gBattleAnimSpritePalette_073, ANIM_TAG_DUCK}, - {gBattleAnimSpritePalette_074, ANIM_TAG_MUD_SAND}, - {gBattleAnimSpritePalette_075, ANIM_TAG_ALERT}, - {gBattleAnimSpritePalette_076, ANIM_TAG_BLUE_FLAMES}, - {gBattleAnimSpritePalette_076, ANIM_TAG_BLUE_FLAMES_2}, - {gBattleAnimSpritePalette_078, ANIM_TAG_SHOCK_4}, - {gBattleAnimSpritePalette_078, ANIM_TAG_SHOCK}, - {gBattleAnimSpritePalette_080, ANIM_TAG_BELL_2}, - {gBattleAnimSpritePalette_081, ANIM_TAG_PINK_GLOVE}, - {gBattleAnimSpritePalette_082, ANIM_TAG_BLUE_LINES}, - {gBattleAnimSpritePalette_083, ANIM_TAG_IMPACT_3}, - {gBattleAnimSpritePalette_084, ANIM_TAG_IMPACT_2}, - {gBattleAnimSpritePalette_085, ANIM_TAG_RETICLE}, - {gBattleAnimSpritePalette_086, ANIM_TAG_BREATH}, - {gBattleAnimSpritePalette_087, ANIM_TAG_ANGER}, - {gBattleAnimSpritePalette_088, ANIM_TAG_SNOWBALL}, - {gBattleAnimSpritePalette_089, ANIM_TAG_VINE}, - {gBattleAnimSpritePalette_090, ANIM_TAG_SWORD_2}, - {gBattleAnimSpritePalette_091, ANIM_TAG_CLAPPING}, - {gBattleAnimSpritePalette_092, ANIM_TAG_RED_TUBE}, - {gBattleAnimSpritePalette_093, ANIM_TAG_AMNESIA}, - {gBattleAnimSpritePalette_094, ANIM_TAG_STRING_2}, - {gBattleAnimSpritePalette_095, ANIM_TAG_PENCIL_2}, - {gBattleAnimSpritePalette_096, ANIM_TAG_PETAL}, - {gBattleAnimSpritePalette_097, ANIM_TAG_BENT_SPOON}, - {gBattleAnimSpritePalette_094, ANIM_TAG_WEB}, - {gBattleAnimSpritePalette_099, ANIM_TAG_MILK_BOTTLE}, - {gBattleAnimSpritePalette_100, ANIM_TAG_COIN}, - {gBattleAnimSpritePalette_101, ANIM_TAG_CRACKED_EGG}, - {gBattleAnimSpritePalette_101, ANIM_TAG_HATCHED_EGG}, - {gBattleAnimSpritePalette_103, ANIM_TAG_FRESH_EGG}, - {gBattleAnimSpritePalette_104, ANIM_TAG_FANGS}, - {gBattleAnimSpritePalette_105, ANIM_TAG_EXPLOSION_2}, - {gBattleAnimSpritePalette_105, ANIM_TAG_EXPLOSION_3}, - {gBattleAnimSpritePalette_107, ANIM_TAG_WATER_DROPLET}, - {gBattleAnimSpritePalette_107, ANIM_TAG_WATER_DROPLET_2}, - {gBattleAnimSpritePalette_109, ANIM_TAG_SEED_2}, - {gBattleAnimSpritePalette_109, ANIM_TAG_SPROUT}, - {gBattleAnimSpritePalette_111, ANIM_TAG_RED_WAND}, - {gBattleAnimSpritePalette_112, ANIM_TAG_PURPLE_GREEN_UNK}, - {gBattleAnimSpritePalette_113, ANIM_TAG_WATER_COLUMN}, - {gBattleAnimSpritePalette_114, ANIM_TAG_MUD_UNK}, - {gBattleAnimSpritePalette_115, ANIM_TAG_RAIN_DROPS}, - {gBattleAnimSpritePalette_116, ANIM_TAG_FURY_SWIPES}, - {gBattleAnimSpritePalette_117, ANIM_TAG_VINE_2}, - {gBattleAnimSpritePalette_118, ANIM_TAG_TEETH}, - {gBattleAnimSpritePalette_119, ANIM_TAG_BONE_2}, - {gBattleAnimSpritePalette_120, ANIM_TAG_WHITE_BAG}, - {gBattleAnimSpritePalette_121, ANIM_TAG_UNKNOWN}, - {gBattleAnimSpritePalette_122, ANIM_TAG_PURPLE_CORAL}, - {gBattleAnimSpritePalette_122, ANIM_TAG_PURPLE_DROPLET}, - {gBattleAnimSpritePalette_124, ANIM_TAG_SHOCK_2}, - {gBattleAnimSpritePalette_125, ANIM_TAG_CLOSING_EYE_2}, - {gBattleAnimSpritePalette_126, ANIM_TAG_METAL_BALL}, - {gBattleAnimSpritePalette_127, ANIM_TAG_MONSTER_DOLL}, - {gBattleAnimSpritePalette_128, ANIM_TAG_WHIRLWIND}, - {gBattleAnimSpritePalette_128, ANIM_TAG_WHIRLWIND_2}, - {gBattleAnimSpritePalette_130, ANIM_TAG_EXPLOSION_4}, - {gBattleAnimSpritePalette_130, ANIM_TAG_EXPLOSION_5}, - {gBattleAnimSpritePalette_132, ANIM_TAG_TONGUE}, - {gBattleAnimSpritePalette_133, ANIM_TAG_SMOKE}, - {gBattleAnimSpritePalette_133, ANIM_TAG_SMOKE_2}, - {gBattleAnimSpritePalette_135, ANIM_TAG_IMPACT}, - {gBattleAnimSpritePalette_136, ANIM_TAG_CIRCLE_IMPACT}, - {gBattleAnimSpritePalette_135, ANIM_TAG_SCRATCH}, - {gBattleAnimSpritePalette_135, ANIM_TAG_CUT}, - {gBattleAnimSpritePalette_139, ANIM_TAG_SHARP_TEETH}, - {gBattleAnimSpritePalette_140, ANIM_TAG_RAINBOW_RINGS}, - {gBattleAnimSpritePalette_141, ANIM_TAG_ICE_CRYSTALS}, - {gBattleAnimSpritePalette_141, ANIM_TAG_ICE_SPIKES}, - {gBattleAnimSpritePalette_143, ANIM_TAG_HANDS_AND_FEET}, - {gBattleAnimSpritePalette_144, ANIM_TAG_MIST_CLOUD}, - {gBattleAnimSpritePalette_139, ANIM_TAG_CLAMP}, - {gBattleAnimSpritePalette_115, ANIM_TAG_BUBBLE}, - {gBattleAnimSpritePalette_147, ANIM_TAG_ORBS}, - {gBattleAnimSpritePalette_148, ANIM_TAG_WATER_IMPACT}, - {gBattleAnimSpritePalette_148, ANIM_TAG_WATER_ORB}, - {gBattleAnimSpritePalette_150, ANIM_TAG_POISON_BUBBLE}, - {gBattleAnimSpritePalette_150, ANIM_TAG_TOXIC_BUBBLE}, - {gBattleAnimSpritePalette_152, ANIM_TAG_SPIKES}, - {gBattleAnimSpritePalette_153, ANIM_TAG_HORN_HIT_2}, - {gBattleAnimSpritePalette_154, ANIM_TAG_AIR_WAVE_2}, - {gBattleAnimSpritePalette_155, ANIM_TAG_SMALL_BUBBLES}, - {gBattleAnimSpritePalette_156, ANIM_TAG_ROUND_SHADOW}, - {gBattleAnimSpritePalette_157, ANIM_TAG_SUNLIGHT}, - {gBattleAnimSpritePalette_158, ANIM_TAG_SPORE}, - {gBattleAnimSpritePalette_159, ANIM_TAG_FLOWER}, - {gBattleAnimSpritePalette_160, ANIM_TAG_RAZOR_LEAF}, - {gBattleAnimSpritePalette_161, ANIM_TAG_NEEDLE}, - {gBattleAnimSpritePalette_162, ANIM_TAG_WHIRLWIND_LINES}, - {gBattleAnimSpritePalette_163, ANIM_TAG_GOLD_RING}, - {gBattleAnimSpritePalette_164, ANIM_TAG_PURPLE_RING}, - {gBattleAnimSpritePalette_165, ANIM_TAG_BLUE_RING}, - {gBattleAnimSpritePalette_166, ANIM_TAG_GREEN_LIGHT_WALL}, - {gBattleAnimSpritePalette_167, ANIM_TAG_BLUE_LIGHT_WALL}, - {gBattleAnimSpritePalette_168, ANIM_TAG_RED_LIGHT_WALL}, - {gBattleAnimSpritePalette_169, ANIM_TAG_GRAY_LIGHT_WALL}, - {gBattleAnimSpritePalette_170, ANIM_TAG_ORANGE_LIGHT_WALL}, - {gBattleAnimSpritePalette_171, ANIM_TAG_BLACK_BALL_2}, - {gBattleAnimSpritePalette_172, ANIM_TAG_PURPLE_GAS_CLOUD}, - {gBattleAnimSpritePalette_001, ANIM_TAG_SPARK_H}, - {gBattleAnimSpritePalette_174, ANIM_TAG_YELLOW_STAR}, - {gBattleAnimSpritePalette_175, ANIM_TAG_LARGE_FRESH_EGG}, - {gBattleAnimSpritePalette_176, ANIM_TAG_SHADOW_BALL}, - {gBattleAnimSpritePalette_177, ANIM_TAG_LICK}, - {gBattleAnimSpritePalette_178, ANIM_TAG_VOID_LINES}, - {gBattleAnimSpritePalette_179, ANIM_TAG_STRING}, - {gBattleAnimSpritePalette_179, ANIM_TAG_WEB_THREAD}, - {gBattleAnimSpritePalette_179, ANIM_TAG_SPIDER_WEB}, - {gBattleAnimSpritePalette_182, ANIM_TAG_LIGHTBULB}, - {gBattleAnimSpritePalette_183, ANIM_TAG_SLASH}, - {gBattleAnimSpritePalette_184, ANIM_TAG_FOCUS_ENERGY}, - {gBattleAnimSpritePalette_185, ANIM_TAG_SPHERE_TO_CUBE}, - {gBattleAnimSpritePalette_186, ANIM_TAG_TENDRILS}, - {gBattleAnimSpritePalette_187, ANIM_TAG_EYE}, - {gBattleAnimSpritePalette_188, ANIM_TAG_WHITE_SHADOW}, - {gBattleAnimSpritePalette_189, ANIM_TAG_TEAL_ALERT}, - {gBattleAnimSpritePalette_190, ANIM_TAG_OPENING_EYE}, - {gBattleAnimSpritePalette_191, ANIM_TAG_ROUND_WHITE_HALO}, - {gBattleAnimSpritePalette_192, ANIM_TAG_FANG_ATTACK}, - {gBattleAnimSpritePalette_193, ANIM_TAG_PURPLE_HAND_OUTLINE}, - {gBattleAnimSpritePalette_194, ANIM_TAG_MOON}, - {gBattleAnimSpritePalette_195, ANIM_TAG_GREEN_SPARKLE}, - {gBattleAnimSpritePalette_196, ANIM_TAG_SPIRAL}, - {gBattleAnimSpritePalette_197, ANIM_TAG_SNORE_Z}, - {gBattleAnimSpritePalette_198, ANIM_TAG_EXPLOSION}, - {gBattleAnimSpritePalette_199, ANIM_TAG_NAIL}, - {gBattleAnimSpritePalette_200, ANIM_TAG_GHOSTLY_SPIRIT}, - {gBattleAnimSpritePalette_201, ANIM_TAG_WARM_ROCK}, - {gBattleAnimSpritePalette_202, ANIM_TAG_BREAKING_EGG}, - {gBattleAnimSpritePalette_203, ANIM_TAG_THIN_RING}, - {gBattleAnimSpritePalette_204, ANIM_TAG_PUNCH_IMPACT}, - {gBattleAnimSpritePalette_205, ANIM_TAG_BELL}, - {gBattleAnimSpritePalette_206, ANIM_TAG_MUSIC_NOTES_2}, - {gBattleAnimSpritePalette_207, ANIM_TAG_SPEED_DUST}, - {gBattleAnimSpritePalette_167, ANIM_TAG_TORN_METAL}, - {gBattleAnimSpritePalette_209, ANIM_TAG_THOUGHT_BUBBLE}, - {gBattleAnimSpritePalette_210, ANIM_TAG_MAGENTA_HEART}, - {gBattleAnimSpritePalette_211, ANIM_TAG_ELECTRIC_ORBS}, - {gBattleAnimSpritePalette_211, ANIM_TAG_CIRCLE_OF_LIGHT}, - {gBattleAnimSpritePalette_211, ANIM_TAG_ELECTRICITY}, - {gBattleAnimSpritePalette_064, ANIM_TAG_FINGER_2}, - {gBattleAnimSpritePalette_215, ANIM_TAG_MOVEMENT_WAVES}, - {gBattleAnimSpritePalette_216, ANIM_TAG_RED_HEART}, - {gBattleAnimSpritePalette_217, ANIM_TAG_RED_ORB}, - {gBattleAnimSpritePalette_218, ANIM_TAG_EYE_SPARKLE}, - {gBattleAnimSpritePalette_219, ANIM_TAG_PINK_HEART}, - {gBattleAnimSpritePalette_220, ANIM_TAG_ANGEL}, - {gBattleAnimSpritePalette_221, ANIM_TAG_DEVIL}, - {gBattleAnimSpritePalette_222, ANIM_TAG_SWIPE}, - {gBattleAnimSpritePalette_223, ANIM_TAG_ROOTS}, - {gBattleAnimSpritePalette_224, ANIM_TAG_ITEM_BAG}, - {gBattleAnimSpritePalette_225, ANIM_TAG_JAGGED_MUSIC_NOTE}, - {gBattleAnimSpritePalette_226, ANIM_TAG_POKEBALL}, - {gBattleAnimSpritePalette_226, ANIM_TAG_SPOTLIGHT}, - {gBattleAnimSpritePalette_228, ANIM_TAG_LETTER_Z}, - {gBattleAnimSpritePalette_229, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpritePalette_230, ANIM_TAG_TRI_FORCE_TRIANGLE}, - {gBattleAnimSpritePalette_231, ANIM_TAG_WISP_ORB}, - {gBattleAnimSpritePalette_231, ANIM_TAG_WISP_FIRE}, - {gBattleAnimSpritePalette_233, ANIM_TAG_GOLD_STARS}, - {gBattleAnimSpritePalette_234, ANIM_TAG_ECLIPSING_ORB}, - {gBattleAnimSpritePalette_235, ANIM_TAG_GRAY_ORB}, - {gBattleAnimSpritePalette_236, ANIM_TAG_BLUE_ORB}, - {gBattleAnimSpritePalette_237, ANIM_TAG_RED_ORB_2}, - {gBattleAnimSpritePalette_238, ANIM_TAG_PINK_PETAL}, - {gBattleAnimSpritePalette_239, ANIM_TAG_PAIN_SPLIT}, - {gBattleAnimSpritePalette_240, ANIM_TAG_CONFETTI}, - {gBattleAnimSpritePalette_241, ANIM_TAG_GREEN_STAR}, - {gBattleAnimSpritePalette_242, ANIM_TAG_PINK_CLOUD}, - {gBattleAnimSpritePalette_243, ANIM_TAG_SWEAT_DROP}, - {gBattleAnimSpritePalette_244, ANIM_TAG_GUARD_RING}, - {gBattleAnimSpritePalette_245, ANIM_TAG_PURPLE_SCRATCH}, - {gBattleAnimSpritePalette_245, ANIM_TAG_PURPLE_SWIPE}, - {gBattleAnimSpritePalette_064, ANIM_TAG_TAG_HAND}, - {gBattleAnimSpritePalette_248, ANIM_TAG_SMALL_RED_EYE}, - {gBattleAnimSpritePalette_249, ANIM_TAG_HOLLOW_ORB}, - {gBattleAnimSpritePalette_249, ANIM_TAG_X_SIGN}, - {gBattleAnimSpritePalette_251, ANIM_TAG_BLUEGREEN_ORB}, - {gBattleAnimSpritePalette_252, ANIM_TAG_PAW_PRINT}, - {gBattleAnimSpritePalette_253, ANIM_TAG_PURPLE_FLAME}, - {gBattleAnimSpritePalette_254, ANIM_TAG_RED_BALL}, - {gBattleAnimSpritePalette_255, ANIM_TAG_SMELLINGSALT_EFFECT}, - {gBattleAnimSpritePalette_256, ANIM_TAG_METEOR}, - {gBattleAnimSpritePalette_257, ANIM_TAG_FLAT_ROCK}, - {gBattleAnimSpritePalette_258, ANIM_TAG_MAGNIFYING_GLASS}, - {gBattleAnimSpritePalette_259, ANIM_TAG_BROWN_ORB}, - {gBattleAnimSpritePalette_260, ANIM_TAG_METAL_SOUND_WAVES}, - {gBattleAnimSpritePalette_261, ANIM_TAG_FLYING_DIRT}, - {gBattleAnimSpritePalette_262, ANIM_TAG_ICICLE_SPEAR}, - {gBattleAnimSpritePalette_263, ANIM_TAG_HAIL}, - {gBattleAnimSpritePalette_264, ANIM_TAG_GLOWY_RED_ORB}, - {gBattleAnimSpritePalette_265, ANIM_TAG_GLOWY_GREEN_ORB}, - {gBattleAnimSpritePalette_266, ANIM_TAG_GREEN_SPIKE}, - {gBattleAnimSpritePalette_267, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, - {gBattleAnimSpritePalette_268, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpritePalette_269, ANIM_TAG_RED_BRICK}, - {gBattleAnimSpritePalette_270, ANIM_TAG_WHITE_FEATHER}, - {gBattleAnimSpritePalette_271, ANIM_TAG_SPARKLE_6}, - {gBattleAnimSpritePalette_272, ANIM_TAG_SPLASH}, - {gBattleAnimSpritePalette_272, ANIM_TAG_SWEAT_BEAD}, - {gBattleAnimSpritePalette_274, ANIM_TAG_GEM_1}, - {gBattleAnimSpritePalette_274, ANIM_TAG_GEM_2}, - {gBattleAnimSpritePalette_274, ANIM_TAG_GEM_3}, - {gBattleAnimSpritePalette_277, ANIM_TAG_SLAM_HIT_2}, - {gBattleAnimSpritePalette_278, ANIM_TAG_RECYCLE}, - {gBattleAnimSpritePalette_279, ANIM_TAG_RED_PARTICLES}, - {gBattleAnimSpritePalette_280, ANIM_TAG_PROTECT}, - {gBattleAnimSpritePalette_281, ANIM_TAG_DIRT_MOUND}, - {gBattleAnimSpritePalette_282, ANIM_TAG_SHOCK_3}, - {gBattleAnimSpritePalette_283, ANIM_TAG_WEATHER_BALL}, - {gBattleAnimSpritePalette_284, ANIM_TAG_BIRD}, - {gBattleAnimSpritePalette_285, ANIM_TAG_CROSS_IMPACT}, - {gBattleAnimSpritePalette_286, ANIM_TAG_SLASH_2}, - {gBattleAnimSpritePalette_287, ANIM_TAG_WHIP_HIT}, - {gBattleAnimSpritePalette_288, ANIM_TAG_BLUE_RING_2}, + {gBattleAnimSpritePalette_Bone, ANIM_TAG_BONE}, + {gBattleAnimSpritePalette_Spark, ANIM_TAG_SPARK}, + {gBattleAnimSpritePalette_Pencil, ANIM_TAG_PENCIL}, + {gBattleAnimSpritePalette_AirWave, ANIM_TAG_AIR_WAVE}, + {gBattleAnimSpritePalette_Orb, ANIM_TAG_ORB}, + {gBattleAnimSpritePalette_Sword, ANIM_TAG_SWORD}, + {gBattleAnimSpritePalette_Seed, ANIM_TAG_SEED}, + {gBattleAnimSpritePalette_Explosion6, ANIM_TAG_EXPLOSION_6}, + {gBattleAnimSpritePalette_PinkOrb, ANIM_TAG_PINK_ORB}, + {gBattleAnimSpritePalette_Gust, ANIM_TAG_GUST}, + {gBattleAnimSpritePalette_IceCube, ANIM_TAG_ICE_CUBE}, + {gBattleAnimSpritePalette_Spark2, ANIM_TAG_SPARK_2}, + {gBattleAnimSpritePalette_Orange, ANIM_TAG_ORANGE}, + {gBattleAnimSpritePalette_YellowBall, ANIM_TAG_YELLOW_BALL}, + {gBattleAnimSpritePalette_LockOn, ANIM_TAG_LOCK_ON}, + {gBattleAnimSpritePalette_TiedBag, ANIM_TAG_TIED_BAG}, + {gBattleAnimSpritePalette_BlackSmoke, ANIM_TAG_BLACK_SMOKE}, + {gBattleAnimSpritePalette_BlackSmoke, ANIM_TAG_BLACK_BALL}, + {gBattleAnimSpritePalette_Conversion, ANIM_TAG_CONVERSION}, + {gBattleAnimSpritePalette_Glass, ANIM_TAG_GLASS}, + {gBattleAnimSpritePalette_HornHit, ANIM_TAG_HORN_HIT}, + {gBattleAnimSpritePalette_Hit, ANIM_TAG_HIT}, + {gBattleAnimSpritePalette_Hit2, ANIM_TAG_HIT_2}, + {gBattleAnimSpritePalette_BlueShards, ANIM_TAG_BLUE_SHARDS}, + {gBattleAnimSpritePalette_ClosingEye, ANIM_TAG_CLOSING_EYE}, + {gBattleAnimSpritePalette_WavingHand, ANIM_TAG_WAVING_HAND}, + {gBattleAnimSpritePalette_HitDuplicate, ANIM_TAG_HIT_DUPLICATE}, + {gBattleAnimSpritePalette_Leer, ANIM_TAG_LEER}, + {gBattleAnimSpritePalette_BlueBurst, ANIM_TAG_BLUE_BURST}, + {gBattleAnimSpritePalette_SmallEmber, ANIM_TAG_SMALL_EMBER}, + {gBattleAnimSpritePalette_GraySmoke, ANIM_TAG_GRAY_SMOKE}, + {gBattleAnimSpritePalette_BlueStar, ANIM_TAG_BLUE_STAR}, + {gBattleAnimSpritePalette_BubbleBurst, ANIM_TAG_BUBBLE_BURST}, + {gBattleAnimSpritePalette_Fire, ANIM_TAG_FIRE}, + {gBattleAnimSpritePalette_Fire, ANIM_TAG_SPINNING_FIRE}, + {gBattleAnimSpritePalette_Fire, ANIM_TAG_FIRE_PLUME}, + {gBattleAnimSpritePalette_Lightning2, ANIM_TAG_LIGHTNING_2}, + {gBattleAnimSpritePalette_Lightning2, ANIM_TAG_LIGHTNING}, + {gBattleAnimSpritePalette_ClawSlash2, ANIM_TAG_CLAW_SLASH_2}, + {gBattleAnimSpritePalette_ClawSlash, ANIM_TAG_CLAW_SLASH}, + {gBattleAnimSpritePalette_ClawSlash2, ANIM_TAG_SCRATCH_3}, + {gBattleAnimSpritePalette_ClawSlash2, ANIM_TAG_SCRATCH_2}, + {gBattleAnimSpritePalette_BubbleBurst2, ANIM_TAG_BUBBLE_BURST_2}, + {gBattleAnimSpritePalette_IceChunk, ANIM_TAG_ICE_CHUNK}, + {gBattleAnimSpritePalette_Glass2, ANIM_TAG_GLASS_2}, + {gBattleAnimSpritePalette_PinkHeart2, ANIM_TAG_PINK_HEART_2}, + {gBattleAnimSpritePalette_SapDrip, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpritePalette_SapDrip2, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpritePalette_Sparkle1, ANIM_TAG_SPARKLE_1}, + {gBattleAnimSpritePalette_Sparkle2, ANIM_TAG_SPARKLE_2}, + {gBattleAnimSpritePalette_HumanoidFoot, ANIM_TAG_HUMANOID_FOOT}, + {gBattleAnimSpritePalette_HumanoidFoot, ANIM_TAG_MONSTER_FOOT}, + {gBattleAnimSpritePalette_HumanoidFoot, ANIM_TAG_HUMANOID_HAND}, + {gBattleAnimSpritePalette_HitDuplicate, ANIM_TAG_NOISE_LINE}, + {gBattleAnimSpritePalette_YellowUnk, ANIM_TAG_YELLOW_UNK}, + {gBattleAnimSpritePalette_HumanoidFoot, ANIM_TAG_RED_FIST}, + {gBattleAnimSpritePalette_SlamHit, ANIM_TAG_SLAM_HIT}, + {gBattleAnimSpritePalette_Ring, ANIM_TAG_RING}, + {gBattleAnimSpritePalette_Rocks, ANIM_TAG_ROCKS}, + {gBattleAnimSpritePalette_Z, ANIM_TAG_Z}, + {gBattleAnimSpritePalette_YellowUnk2, ANIM_TAG_YELLOW_UNK_2}, + {gBattleAnimSpritePalette_AirSlash, ANIM_TAG_AIR_SLASH}, + {gBattleAnimSpritePalette_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS}, + {gBattleAnimSpritePalette_Leaf, ANIM_TAG_LEAF}, + {gBattleAnimSpritePalette_Finger, ANIM_TAG_FINGER}, + {gBattleAnimSpritePalette_PoisonPowder, ANIM_TAG_POISON_POWDER}, + {gBattleAnimSpritePalette_BrownTriangle, ANIM_TAG_BROWN_TRIANGLE}, + {gBattleAnimSpritePalette_SleepPowder, ANIM_TAG_SLEEP_POWDER}, + {gBattleAnimSpritePalette_StunSpore, ANIM_TAG_STUN_SPORE}, + {gBattleAnimSpritePalette_PoisonPowder, ANIM_TAG_POWDER}, + {gBattleAnimSpritePalette_Sparkle3, ANIM_TAG_SPARKLE_3}, + {gBattleAnimSpritePalette_Sparkle3, ANIM_TAG_SPARKLE_4}, + {gBattleAnimSpritePalette_MusicNotes, ANIM_TAG_MUSIC_NOTES}, + {gBattleAnimSpritePalette_Duck, ANIM_TAG_DUCK}, + {gBattleAnimSpritePalette_MudSand, ANIM_TAG_MUD_SAND}, + {gBattleAnimSpritePalette_Alert, ANIM_TAG_ALERT}, + {gBattleAnimSpritePalette_BlueFlames, ANIM_TAG_BLUE_FLAMES}, + {gBattleAnimSpritePalette_BlueFlames, ANIM_TAG_BLUE_FLAMES_2}, + {gBattleAnimSpritePalette_Shock4, ANIM_TAG_SHOCK_4}, + {gBattleAnimSpritePalette_Shock4, ANIM_TAG_SHOCK}, + {gBattleAnimSpritePalette_Bell2, ANIM_TAG_BELL_2}, + {gBattleAnimSpritePalette_PinkGlove, ANIM_TAG_PINK_GLOVE}, + {gBattleAnimSpritePalette_BlueLines, ANIM_TAG_BLUE_LINES}, + {gBattleAnimSpritePalette_Impact3, ANIM_TAG_IMPACT_3}, + {gBattleAnimSpritePalette_Impact2, ANIM_TAG_IMPACT_2}, + {gBattleAnimSpritePalette_Reticle, ANIM_TAG_RETICLE}, + {gBattleAnimSpritePalette_Breath, ANIM_TAG_BREATH}, + {gBattleAnimSpritePalette_Anger, ANIM_TAG_ANGER}, + {gBattleAnimSpritePalette_Snowball, ANIM_TAG_SNOWBALL}, + {gBattleAnimSpritePalette_Vine, ANIM_TAG_VINE}, + {gBattleAnimSpritePalette_Sword2, ANIM_TAG_SWORD_2}, + {gBattleAnimSpritePalette_Clapping, ANIM_TAG_CLAPPING}, + {gBattleAnimSpritePalette_RedTube, ANIM_TAG_RED_TUBE}, + {gBattleAnimSpritePalette_Amnesia, ANIM_TAG_AMNESIA}, + {gBattleAnimSpritePalette_String2, ANIM_TAG_STRING_2}, + {gBattleAnimSpritePalette_Pencil2, ANIM_TAG_PENCIL_2}, + {gBattleAnimSpritePalette_Petal, ANIM_TAG_PETAL}, + {gBattleAnimSpritePalette_BentSpoon, ANIM_TAG_BENT_SPOON}, + {gBattleAnimSpritePalette_String2, ANIM_TAG_WEB}, + {gBattleAnimSpritePalette_MilkBottle, ANIM_TAG_MILK_BOTTLE}, + {gBattleAnimSpritePalette_Coin, ANIM_TAG_COIN}, + {gBattleAnimSpritePalette_CrackedEgg, ANIM_TAG_CRACKED_EGG}, + {gBattleAnimSpritePalette_CrackedEgg, ANIM_TAG_HATCHED_EGG}, + {gBattleAnimSpritePalette_FreshEgg, ANIM_TAG_FRESH_EGG}, + {gBattleAnimSpritePalette_Fangs, ANIM_TAG_FANGS}, + {gBattleAnimSpritePalette_Explosion2, ANIM_TAG_EXPLOSION_2}, + {gBattleAnimSpritePalette_Explosion2, ANIM_TAG_EXPLOSION_3}, + {gBattleAnimSpritePalette_WaterDroplet, ANIM_TAG_WATER_DROPLET}, + {gBattleAnimSpritePalette_WaterDroplet, ANIM_TAG_WATER_DROPLET_2}, + {gBattleAnimSpritePalette_Seed2, ANIM_TAG_SEED_2}, + {gBattleAnimSpritePalette_Seed2, ANIM_TAG_SPROUT}, + {gBattleAnimSpritePalette_RedWand, ANIM_TAG_RED_WAND}, + {gBattleAnimSpritePalette_PurpleGreenUnk, ANIM_TAG_PURPLE_GREEN_UNK}, + {gBattleAnimSpritePalette_WaterColumn, ANIM_TAG_WATER_COLUMN}, + {gBattleAnimSpritePalette_MudUnk, ANIM_TAG_MUD_UNK}, + {gBattleAnimSpritePalette_RainDrops, ANIM_TAG_RAIN_DROPS}, + {gBattleAnimSpritePalette_FurySwipes, ANIM_TAG_FURY_SWIPES}, + {gBattleAnimSpritePalette_Vine2, ANIM_TAG_VINE_2}, + {gBattleAnimSpritePalette_Teeth, ANIM_TAG_TEETH}, + {gBattleAnimSpritePalette_Bone2, ANIM_TAG_BONE_2}, + {gBattleAnimSpritePalette_WhiteBag, ANIM_TAG_WHITE_BAG}, + {gBattleAnimSpritePalette_Unknown, ANIM_TAG_UNKNOWN}, + {gBattleAnimSpritePalette_PurpleCoral, ANIM_TAG_PURPLE_CORAL}, + {gBattleAnimSpritePalette_PurpleCoral, ANIM_TAG_PURPLE_DROPLET}, + {gBattleAnimSpritePalette_Shock2, ANIM_TAG_SHOCK_2}, + {gBattleAnimSpritePalette_ClosingEye2, ANIM_TAG_CLOSING_EYE_2}, + {gBattleAnimSpritePalette_MetalBall, ANIM_TAG_METAL_BALL}, + {gBattleAnimSpritePalette_MonsterDoll, ANIM_TAG_MONSTER_DOLL}, + {gBattleAnimSpritePalette_Whirlwind, ANIM_TAG_WHIRLWIND}, + {gBattleAnimSpritePalette_Whirlwind, ANIM_TAG_WHIRLWIND_2}, + {gBattleAnimSpritePalette_Explosion4, ANIM_TAG_EXPLOSION_4}, + {gBattleAnimSpritePalette_Explosion4, ANIM_TAG_EXPLOSION_5}, + {gBattleAnimSpritePalette_Tongue, ANIM_TAG_TONGUE}, + {gBattleAnimSpritePalette_Smoke, ANIM_TAG_SMOKE}, + {gBattleAnimSpritePalette_Smoke, ANIM_TAG_SMOKE_2}, + {gBattleAnimSpritePalette_Impact, ANIM_TAG_IMPACT}, + {gBattleAnimSpritePalette_CircleImpact, ANIM_TAG_CIRCLE_IMPACT}, + {gBattleAnimSpritePalette_Impact, ANIM_TAG_SCRATCH}, + {gBattleAnimSpritePalette_Impact, ANIM_TAG_CUT}, + {gBattleAnimSpritePalette_SharpTeeth, ANIM_TAG_SHARP_TEETH}, + {gBattleAnimSpritePalette_RainbowRings, ANIM_TAG_RAINBOW_RINGS}, + {gBattleAnimSpritePalette_IceCrystals, ANIM_TAG_ICE_CRYSTALS}, + {gBattleAnimSpritePalette_IceCrystals, ANIM_TAG_ICE_SPIKES}, + {gBattleAnimSpritePalette_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, + {gBattleAnimSpritePalette_MistCloud, ANIM_TAG_MIST_CLOUD}, + {gBattleAnimSpritePalette_SharpTeeth, ANIM_TAG_CLAMP}, + {gBattleAnimSpritePalette_RainDrops, ANIM_TAG_BUBBLE}, + {gBattleAnimSpritePalette_Orbs, ANIM_TAG_ORBS}, + {gBattleAnimSpritePalette_WaterImpact, ANIM_TAG_WATER_IMPACT}, + {gBattleAnimSpritePalette_WaterImpact, ANIM_TAG_WATER_ORB}, + {gBattleAnimSpritePalette_PoisonBubble, ANIM_TAG_POISON_BUBBLE}, + {gBattleAnimSpritePalette_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE}, + {gBattleAnimSpritePalette_Spikes, ANIM_TAG_SPIKES}, + {gBattleAnimSpritePalette_HornHit2, ANIM_TAG_HORN_HIT_2}, + {gBattleAnimSpritePalette_AirWave2, ANIM_TAG_AIR_WAVE_2}, + {gBattleAnimSpritePalette_SmallBubbles, ANIM_TAG_SMALL_BUBBLES}, + {gBattleAnimSpritePalette_RoundShadow, ANIM_TAG_ROUND_SHADOW}, + {gBattleAnimSpritePalette_Sunlight, ANIM_TAG_SUNLIGHT}, + {gBattleAnimSpritePalette_Spore, ANIM_TAG_SPORE}, + {gBattleAnimSpritePalette_Flower, ANIM_TAG_FLOWER}, + {gBattleAnimSpritePalette_RazorLeaf, ANIM_TAG_RAZOR_LEAF}, + {gBattleAnimSpritePalette_Needle, ANIM_TAG_NEEDLE}, + {gBattleAnimSpritePalette_WhirlwindLines, ANIM_TAG_WHIRLWIND_LINES}, + {gBattleAnimSpritePalette_GoldRing, ANIM_TAG_GOLD_RING}, + {gBattleAnimSpritePalette_PurpleRing, ANIM_TAG_PURPLE_RING}, + {gBattleAnimSpritePalette_BlueRing, ANIM_TAG_BLUE_RING}, + {gBattleAnimSpritePalette_GreenLightWall, ANIM_TAG_GREEN_LIGHT_WALL}, + {gBattleAnimSpritePalette_BlueLightWall, ANIM_TAG_BLUE_LIGHT_WALL}, + {gBattleAnimSpritePalette_RedLightWall, ANIM_TAG_RED_LIGHT_WALL}, + {gBattleAnimSpritePalette_GrayLightWall, ANIM_TAG_GRAY_LIGHT_WALL}, + {gBattleAnimSpritePalette_OrangeLightWall, ANIM_TAG_ORANGE_LIGHT_WALL}, + {gBattleAnimSpritePalette_BlackBall2, ANIM_TAG_BLACK_BALL_2}, + {gBattleAnimSpritePalette_PurpleGasCloud, ANIM_TAG_PURPLE_GAS_CLOUD}, + {gBattleAnimSpritePalette_Spark, ANIM_TAG_SPARK_H}, + {gBattleAnimSpritePalette_YellowStar, ANIM_TAG_YELLOW_STAR}, + {gBattleAnimSpritePalette_LargeFreshEgg, ANIM_TAG_LARGE_FRESH_EGG}, + {gBattleAnimSpritePalette_ShadowBall, ANIM_TAG_SHADOW_BALL}, + {gBattleAnimSpritePalette_Lick, ANIM_TAG_LICK}, + {gBattleAnimSpritePalette_VoidLines, ANIM_TAG_VOID_LINES}, + {gBattleAnimSpritePalette_String, ANIM_TAG_STRING}, + {gBattleAnimSpritePalette_String, ANIM_TAG_WEB_THREAD}, + {gBattleAnimSpritePalette_String, ANIM_TAG_SPIDER_WEB}, + {gBattleAnimSpritePalette_Lightbulb, ANIM_TAG_LIGHTBULB}, + {gBattleAnimSpritePalette_Slash, ANIM_TAG_SLASH}, + {gBattleAnimSpritePalette_FocusEnergy, ANIM_TAG_FOCUS_ENERGY}, + {gBattleAnimSpritePalette_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE}, + {gBattleAnimSpritePalette_Tendrils, ANIM_TAG_TENDRILS}, + {gBattleAnimSpritePalette_Eye, ANIM_TAG_EYE}, + {gBattleAnimSpritePalette_WhiteShadow, ANIM_TAG_WHITE_SHADOW}, + {gBattleAnimSpritePalette_TealAlert, ANIM_TAG_TEAL_ALERT}, + {gBattleAnimSpritePalette_OpeningEye, ANIM_TAG_OPENING_EYE}, + {gBattleAnimSpritePalette_RoundWhiteHalo, ANIM_TAG_ROUND_WHITE_HALO}, + {gBattleAnimSpritePalette_FangAttack, ANIM_TAG_FANG_ATTACK}, + {gBattleAnimSpritePalette_PurpleHandOutline, ANIM_TAG_PURPLE_HAND_OUTLINE}, + {gBattleAnimSpritePalette_Moon, ANIM_TAG_MOON}, + {gBattleAnimSpritePalette_GreenSparkle, ANIM_TAG_GREEN_SPARKLE}, + {gBattleAnimSpritePalette_Spiral, ANIM_TAG_SPIRAL}, + {gBattleAnimSpritePalette_SnoreZ, ANIM_TAG_SNORE_Z}, + {gBattleAnimSpritePalette_Explosion, ANIM_TAG_EXPLOSION}, + {gBattleAnimSpritePalette_Nail, ANIM_TAG_NAIL}, + {gBattleAnimSpritePalette_GhostlySpirit, ANIM_TAG_GHOSTLY_SPIRIT}, + {gBattleAnimSpritePalette_WarmRock, ANIM_TAG_WARM_ROCK}, + {gBattleAnimSpritePalette_BreakingEgg, ANIM_TAG_BREAKING_EGG}, + {gBattleAnimSpritePalette_ThinRing, ANIM_TAG_THIN_RING}, + {gBattleAnimSpritePalette_PunchImpact, ANIM_TAG_PUNCH_IMPACT}, + {gBattleAnimSpritePalette_Bell, ANIM_TAG_BELL}, + {gBattleAnimSpritePalette_MusicNotes2, ANIM_TAG_MUSIC_NOTES_2}, + {gBattleAnimSpritePalette_SpeedDust, ANIM_TAG_SPEED_DUST}, + {gBattleAnimSpritePalette_BlueLightWall, ANIM_TAG_TORN_METAL}, + {gBattleAnimSpritePalette_ThoughtBubble, ANIM_TAG_THOUGHT_BUBBLE}, + {gBattleAnimSpritePalette_MagentaHeart, ANIM_TAG_MAGENTA_HEART}, + {gBattleAnimSpritePalette_ElectricOrbs, ANIM_TAG_ELECTRIC_ORBS}, + {gBattleAnimSpritePalette_ElectricOrbs, ANIM_TAG_CIRCLE_OF_LIGHT}, + {gBattleAnimSpritePalette_ElectricOrbs, ANIM_TAG_ELECTRICITY}, + {gBattleAnimSpritePalette_Finger, ANIM_TAG_FINGER_2}, + {gBattleAnimSpritePalette_MovementWaves, ANIM_TAG_MOVEMENT_WAVES}, + {gBattleAnimSpritePalette_RedHeart, ANIM_TAG_RED_HEART}, + {gBattleAnimSpritePalette_RedOrb, ANIM_TAG_RED_ORB}, + {gBattleAnimSpritePalette_EyeSparkle, ANIM_TAG_EYE_SPARKLE}, + {gBattleAnimSpritePalette_PinkHeart, ANIM_TAG_PINK_HEART}, + {gBattleAnimSpritePalette_Angel, ANIM_TAG_ANGEL}, + {gBattleAnimSpritePalette_Devil, ANIM_TAG_DEVIL}, + {gBattleAnimSpritePalette_Swipe, ANIM_TAG_SWIPE}, + {gBattleAnimSpritePalette_Roots, ANIM_TAG_ROOTS}, + {gBattleAnimSpritePalette_ItemBag, ANIM_TAG_ITEM_BAG}, + {gBattleAnimSpritePalette_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE}, + {gBattleAnimSpritePalette_Pokeball, ANIM_TAG_POKEBALL}, + {gBattleAnimSpritePalette_Pokeball, ANIM_TAG_SPOTLIGHT}, + {gBattleAnimSpritePalette_LetterZ, ANIM_TAG_LETTER_Z}, + {gBattleAnimSpritePalette_RapidSpin, ANIM_TAG_RAPID_SPIN}, + {gBattleAnimSpritePalette_TriForceTriangle, ANIM_TAG_TRI_FORCE_TRIANGLE}, + {gBattleAnimSpritePalette_WispOrb, ANIM_TAG_WISP_ORB}, + {gBattleAnimSpritePalette_WispOrb, ANIM_TAG_WISP_FIRE}, + {gBattleAnimSpritePalette_GoldStars, ANIM_TAG_GOLD_STARS}, + {gBattleAnimSpritePalette_EclipsingOrb, ANIM_TAG_ECLIPSING_ORB}, + {gBattleAnimSpritePalette_GrayOrb, ANIM_TAG_GRAY_ORB}, + {gBattleAnimSpritePalette_BlueOrb, ANIM_TAG_BLUE_ORB}, + {gBattleAnimSpritePalette_RedOrb2, ANIM_TAG_RED_ORB_2}, + {gBattleAnimSpritePalette_PinkPetal, ANIM_TAG_PINK_PETAL}, + {gBattleAnimSpritePalette_PainSplit, ANIM_TAG_PAIN_SPLIT}, + {gBattleAnimSpritePalette_Confetti, ANIM_TAG_CONFETTI}, + {gBattleAnimSpritePalette_GreenStar, ANIM_TAG_GREEN_STAR}, + {gBattleAnimSpritePalette_PinkCloud, ANIM_TAG_PINK_CLOUD}, + {gBattleAnimSpritePalette_SweatDrop, ANIM_TAG_SWEAT_DROP}, + {gBattleAnimSpritePalette_GuardRing, ANIM_TAG_GUARD_RING}, + {gBattleAnimSpritePalette_PurpleScratch, ANIM_TAG_PURPLE_SCRATCH}, + {gBattleAnimSpritePalette_PurpleScratch, ANIM_TAG_PURPLE_SWIPE}, + {gBattleAnimSpritePalette_Finger, ANIM_TAG_TAG_HAND}, + {gBattleAnimSpritePalette_SmallRedEye, ANIM_TAG_SMALL_RED_EYE}, + {gBattleAnimSpritePalette_HollowOrb, ANIM_TAG_HOLLOW_ORB}, + {gBattleAnimSpritePalette_HollowOrb, ANIM_TAG_X_SIGN}, + {gBattleAnimSpritePalette_BluegreenOrb, ANIM_TAG_BLUEGREEN_ORB}, + {gBattleAnimSpritePalette_PawPrint, ANIM_TAG_PAW_PRINT}, + {gBattleAnimSpritePalette_PurpleFlame, ANIM_TAG_PURPLE_FLAME}, + {gBattleAnimSpritePalette_RedBall, ANIM_TAG_RED_BALL}, + {gBattleAnimSpritePalette_SmellingsaltEffect, ANIM_TAG_SMELLINGSALT_EFFECT}, + {gBattleAnimSpritePalette_Meteor, ANIM_TAG_METEOR}, + {gBattleAnimSpritePalette_FlatRock, ANIM_TAG_FLAT_ROCK}, + {gBattleAnimSpritePalette_MagnifyingGlass, ANIM_TAG_MAGNIFYING_GLASS}, + {gBattleAnimSpritePalette_BrownOrb, ANIM_TAG_BROWN_ORB}, + {gBattleAnimSpritePalette_MetalSoundWaves, ANIM_TAG_METAL_SOUND_WAVES}, + {gBattleAnimSpritePalette_FlyingDirt, ANIM_TAG_FLYING_DIRT}, + {gBattleAnimSpritePalette_IcicleSpear, ANIM_TAG_ICICLE_SPEAR}, + {gBattleAnimSpritePalette_Hail, ANIM_TAG_HAIL}, + {gBattleAnimSpritePalette_GlowyRedOrb, ANIM_TAG_GLOWY_RED_ORB}, + {gBattleAnimSpritePalette_GlowyGreenOrb, ANIM_TAG_GLOWY_GREEN_ORB}, + {gBattleAnimSpritePalette_GreenSpike, ANIM_TAG_GREEN_SPIKE}, + {gBattleAnimSpritePalette_WhiteCircleOfLight, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, + {gBattleAnimSpritePalette_GlowyBlueOrb, ANIM_TAG_GLOWY_BLUE_ORB}, + {gBattleAnimSpritePalette_RedBrick, ANIM_TAG_RED_BRICK}, + {gBattleAnimSpritePalette_WhiteFeather, ANIM_TAG_WHITE_FEATHER}, + {gBattleAnimSpritePalette_Sparkle6, ANIM_TAG_SPARKLE_6}, + {gBattleAnimSpritePalette_Splash, ANIM_TAG_SPLASH}, + {gBattleAnimSpritePalette_Splash, ANIM_TAG_SWEAT_BEAD}, + {gBattleAnimSpritePalette_Gem1, ANIM_TAG_GEM_1}, + {gBattleAnimSpritePalette_Gem1, ANIM_TAG_GEM_2}, + {gBattleAnimSpritePalette_Gem1, ANIM_TAG_GEM_3}, + {gBattleAnimSpritePalette_SlamHit2, ANIM_TAG_SLAM_HIT_2}, + {gBattleAnimSpritePalette_Recycle, ANIM_TAG_RECYCLE}, + {gBattleAnimSpritePalette_RedParticles, ANIM_TAG_RED_PARTICLES}, + {gBattleAnimSpritePalette_Protect, ANIM_TAG_PROTECT}, + {gBattleAnimSpritePalette_DirtMound, ANIM_TAG_DIRT_MOUND}, + {gBattleAnimSpritePalette_Shock3, ANIM_TAG_SHOCK_3}, + {gBattleAnimSpritePalette_WeatherBall, ANIM_TAG_WEATHER_BALL}, + {gBattleAnimSpritePalette_Bird, ANIM_TAG_BIRD}, + {gBattleAnimSpritePalette_CrossImpact, ANIM_TAG_CROSS_IMPACT}, + {gBattleAnimSpritePalette_Slash2, ANIM_TAG_SLASH_2}, + {gBattleAnimSpritePalette_WhipHit, ANIM_TAG_WHIP_HIT}, + {gBattleAnimSpritePalette_BlueRing2, ANIM_TAG_BLUE_RING_2}, }; const struct BattleAnimBackground gBattleAnimBackgroundTable[] = @@ -3448,5 +3447,3 @@ static void ScriptCmd_stopsound(void) m4aMPlayStop(&gMPlayInfo_SE2); sBattleAnimScriptPtr++; } - - diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index af4bc19ec..49bb0216b 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -1121,8 +1121,8 @@ const union AnimCmd *const gUnknown_08592918[] = const struct SpriteTemplate gUnknown_0859291C = { - .tileTag = ANIM_TAG_UNUSED_HIT, - .paletteTag = ANIM_TAG_UNUSED_HIT, + .tileTag = ANIM_TAG_HIT, + .paletteTag = ANIM_TAG_HIT, .oam = &gUnknown_08524914, .anims = gUnknown_08592918, .images = NULL, @@ -1132,8 +1132,8 @@ const struct SpriteTemplate gUnknown_0859291C = const struct SpriteTemplate gUnknown_08592934 = { - .tileTag = ANIM_TAG_UNUSED_HIT_2, - .paletteTag = ANIM_TAG_UNUSED_HIT_2, + .tileTag = ANIM_TAG_HIT_2, + .paletteTag = ANIM_TAG_HIT_2, .oam = &gUnknown_08524914, .anims = gUnknown_08592918, .images = NULL, @@ -1442,8 +1442,8 @@ const union AnimCmd *const gUnknown_08592BF4[] = const struct SpriteTemplate gUnknown_08592BFC = { - .tileTag = ANIM_TAG_UNUSED_BUBBLE_BURST, - .paletteTag = ANIM_TAG_UNUSED_BUBBLE_BURST, + .tileTag = ANIM_TAG_BUBBLE_BURST, + .paletteTag = ANIM_TAG_BUBBLE_BURST, .oam = &gUnknown_0852490C, .anims = gUnknown_08592BF4, .images = NULL, diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index e3295acb8..09a442221 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -189,8 +189,8 @@ const union AffineAnimCmd *const gUnknown_08593300[] = const struct SpriteTemplate gUnknown_08593304 = { - .tileTag = ANIM_TAG_UNUSED_EXPLOSION, - .paletteTag = ANIM_TAG_UNUSED_EXPLOSION, + .tileTag = ANIM_TAG_EXPLOSION_6, + .paletteTag = ANIM_TAG_EXPLOSION_6, .oam = &gUnknown_08524974, .anims = gUnknown_085932E4, .images = NULL, @@ -359,8 +359,8 @@ const struct SpriteTemplate gUnknown_08593488 = const struct SpriteTemplate gUnknown_085934A0 = { - .tileTag = ANIM_TAG_UNUSED_VOID_LINES, - .paletteTag = ANIM_TAG_UNUSED_VOID_LINES, + .tileTag = ANIM_TAG_VOID_LINES, + .paletteTag = ANIM_TAG_VOID_LINES, .oam = &gUnknown_08524A3C, .anims = gDummySpriteAnimTable, .images = NULL, @@ -3067,7 +3067,7 @@ void sub_8105CB4(u8 taskId) paletteNums[i] = AllocSpritePalette(ANIM_SPRITES_START - i); gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000); - LZDecompressWram(gBattleAnimSpritePalette_206, gMonSpritesGfxPtr->field_17C); + LZDecompressWram(gBattleAnimSpritePalette_MusicNotes2, gMonSpritesGfxPtr->field_17C); for (i = 0; i < 3; i++) LoadPalette(&gMonSpritesGfxPtr->field_17C[i * 32], (u16)((paletteNums[i] << 4) + 0x100), 32); diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 92874fe09..8583276ee 100755 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -121,18 +121,18 @@ const struct CompressedSpriteSheet gBallOpenParticleSpritesheets[] = const struct CompressedSpritePalette gBallOpenParticlePalettes[] = { - {gBattleAnimSpritePalette_136, 0xD6EC}, - {gBattleAnimSpritePalette_136, 0xD6ED}, - {gBattleAnimSpritePalette_136, 0xD6EE}, - {gBattleAnimSpritePalette_136, 0xD6EF}, - {gBattleAnimSpritePalette_136, 0xD6F0}, - {gBattleAnimSpritePalette_136, 0xD6F1}, - {gBattleAnimSpritePalette_136, 0xD6F2}, - {gBattleAnimSpritePalette_136, 0xD6F3}, - {gBattleAnimSpritePalette_136, 0xD6F4}, - {gBattleAnimSpritePalette_136, 0xD6F5}, - {gBattleAnimSpritePalette_136, 0xD6F6}, - {gBattleAnimSpritePalette_136, 0xD6F7}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6EC}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6ED}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6EE}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6EF}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6F0}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6F1}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6F2}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6F3}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6F4}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6F5}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6F6}, + {gBattleAnimSpritePalette_CircleImpact, 0xD6F7}, }; const union AnimCmd gUnknown_085E5154[] = @@ -357,8 +357,8 @@ const u16 gUnknown_085E5310[] = const struct SpriteTemplate gBattleAnimSpriteTemplate_85E5338 = { - .tileTag = ANIM_TAG_UNUSED_RED_BRICK, - .paletteTag = ANIM_TAG_UNUSED_RED_BRICK, + .tileTag = ANIM_TAG_RED_BRICK, + .paletteTag = ANIM_TAG_RED_BRICK, .oam = &gUnknown_0852490C, .anims = gDummySpriteAnimTable, .images = NULL, @@ -1314,7 +1314,7 @@ static void sub_8171BAC(struct Sprite *sprite) if (sprite->animEnded) sprite->invisible = 1; - + if (gSprites[gBattlerSpriteIds[gBattleAnimTarget]].affineAnimEnded) { StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 0); @@ -1323,7 +1323,7 @@ static void sub_8171BAC(struct Sprite *sprite) else { gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] -= 288; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] >> 8; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] >> 8; } if (sprite->animEnded && next) @@ -1907,7 +1907,7 @@ void sub_8172BF0(u8 taskId) u8 spriteId; u32 x; u32 done; - + done = FALSE; spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; switch (gTasks[taskId].data[10]) @@ -2063,7 +2063,7 @@ static void sub_8172FEC(u8 taskId) gTasks[taskId].data[13]++; return; } - + if (gBattleSpritesDataPtr->animationData->field_A) return; diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c index 1271680e0..7ed78ea9a 100644 --- a/src/battle_anim_status_effects.c +++ b/src/battle_anim_status_effects.c @@ -44,8 +44,8 @@ static const union AnimCmd *const sSpriteAnimTable_853EDF8[] = const struct SpriteTemplate gUnknown_0853EDFC = { - .tileTag = ANIM_TAG_UNUSED_ORB, - .paletteTag = ANIM_TAG_UNUSED_ORB, + .tileTag = ANIM_TAG_ORB, + .paletteTag = ANIM_TAG_ORB, .oam = &gUnknown_0852490C, .anims = sSpriteAnimTable_853EDF8, .images = NULL, @@ -55,8 +55,8 @@ const struct SpriteTemplate gUnknown_0853EDFC = const struct SpriteTemplate gUnknown_0853EE14 = { - .tileTag = ANIM_TAG_UNUSED_ORB, - .paletteTag = ANIM_TAG_UNUSED_ORB, + .tileTag = ANIM_TAG_ORB, + .paletteTag = ANIM_TAG_ORB, .oam = &gUnknown_0852490C, .anims = sSpriteAnimTable_853EDF8, .images = NULL, @@ -125,8 +125,8 @@ const struct SpriteTemplate gUnknown_0853EE84 = const struct SpriteTemplate gUnknown_0853EE9C = { - .tileTag = ANIM_TAG_UNUSED_MONSTER_FOOT, - .paletteTag = ANIM_TAG_UNUSED_MONSTER_FOOT, + .tileTag = ANIM_TAG_MONSTER_FOOT, + .paletteTag = ANIM_TAG_MONSTER_FOOT, .oam = &gUnknown_08524914, .anims = gDummySpriteAnimTable, .images = NULL, @@ -195,8 +195,8 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_853EEF8[] = const struct SpriteTemplate gUnknown_0853EF18 = { - .tileTag = ANIM_TAG_UNUSED_ORB, - .paletteTag = ANIM_TAG_UNUSED_ORB, + .tileTag = ANIM_TAG_ORB, + .paletteTag = ANIM_TAG_ORB, .oam = &gUnknown_085249CC, .anims = sSpriteAnimTable_853EEF8, .images = NULL, diff --git a/src/graphics.c b/src/graphics.c index c243c64a5..f585a3feb 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -21,112 +21,112 @@ const u32 gSmokescreenImpactPalette[] = INCBIN_U32("graphics/battle_anims/sprite const u32 gBlankGfxCompressed[] = INCBIN_U32("graphics/interface/blank.4bpp.lz"); // Battle anims -const u32 gBattleAnimSpriteSheet_146[] = INCBIN_U32("graphics/battle_anims/sprites/146.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_000[] = INCBIN_U32("graphics/battle_anims/sprites/000.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_003[] = INCBIN_U32("graphics/battle_anims/sprites/003.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_004[] = INCBIN_U32("graphics/battle_anims/sprites/004.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_005[] = INCBIN_U32("graphics/battle_anims/sprites/005.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_006[] = INCBIN_U32("graphics/battle_anims/sprites/006.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Bubble[] = INCBIN_U32("graphics/battle_anims/sprites/bubble.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Bone[] = INCBIN_U32("graphics/battle_anims/sprites/bone.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_AirWave[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Orb[] = INCBIN_U32("graphics/battle_anims/sprites/orb.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Sword[] = INCBIN_U32("graphics/battle_anims/sprites/sword.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Seed[] = INCBIN_U32("graphics/battle_anims/sprites/seed.4bpp.lz"); -const u32 gBattleAnimSpritePalette_115[] = INCBIN_U32("graphics/battle_anims/sprites/115.gbapal.lz"); -const u32 gBattleAnimSpritePalette_000[] = INCBIN_U32("graphics/battle_anims/sprites/000.gbapal.lz"); -const u32 gBattleAnimSpritePalette_003[] = INCBIN_U32("graphics/battle_anims/sprites/003.gbapal.lz"); -const u32 gBattleAnimSpritePalette_004[] = INCBIN_U32("graphics/battle_anims/sprites/004.gbapal.lz"); -const u32 gBattleAnimSpritePalette_005[] = INCBIN_U32("graphics/battle_anims/sprites/005.gbapal.lz"); -const u32 gBattleAnimSpritePalette_006[] = INCBIN_U32("graphics/battle_anims/sprites/006.gbapal.lz"); +const u32 gBattleAnimSpritePalette_RainDrops[] = INCBIN_U32("graphics/battle_anims/sprites/rain_drops.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Bone[] = INCBIN_U32("graphics/battle_anims/sprites/bone.gbapal.lz"); +const u32 gBattleAnimSpritePalette_AirWave[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Orb[] = INCBIN_U32("graphics/battle_anims/sprites/orb.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Sword[] = INCBIN_U32("graphics/battle_anims/sprites/sword.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Seed[] = INCBIN_U32("graphics/battle_anims/sprites/seed.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_161[] = INCBIN_U32("graphics/battle_anims/sprites/161.4bpp.lz"); -const u32 gBattleAnimSpritePalette_161[] = INCBIN_U32("graphics/battle_anims/sprites/161.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Needle[] = INCBIN_U32("graphics/battle_anims/sprites/needle.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Needle[] = INCBIN_U32("graphics/battle_anims/sprites/needle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_007[] = INCBIN_U32("graphics/battle_anims/sprites/007.4bpp.lz"); -const u32 gBattleAnimSpritePalette_007[] = INCBIN_U32("graphics/battle_anims/sprites/007.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Explosion6[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_6.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Explosion6[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_6.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_008[] = INCBIN_U32("graphics/battle_anims/sprites/008.4bpp.lz"); -const u32 gBattleAnimSpritePalette_008[] = INCBIN_U32("graphics/battle_anims/sprites/008.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PinkOrb[] = INCBIN_U32("graphics/battle_anims/sprites/pink_orb.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PinkOrb[] = INCBIN_U32("graphics/battle_anims/sprites/pink_orb.gbapal.lz"); -const u32 gBattleAnimSpritePalette_010[] = INCBIN_U32("graphics/battle_anims/sprites/010.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_010[] = INCBIN_U32("graphics/battle_anims/sprites/010.4bpp.lz"); +const u32 gBattleAnimSpritePalette_IceCube[] = INCBIN_U32("graphics/battle_anims/sprites/ice_cube.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_IceCube[] = INCBIN_U32("graphics/battle_anims/sprites/ice_cube.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_009[] = INCBIN_U32("graphics/battle_anims/sprites/009.4bpp.lz"); -const u32 gBattleAnimSpritePalette_009[] = INCBIN_U32("graphics/battle_anims/sprites/009.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Gust[] = INCBIN_U32("graphics/battle_anims/sprites/gust.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Gust[] = INCBIN_U32("graphics/battle_anims/sprites/gust.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_011[] = INCBIN_U32("graphics/battle_anims/sprites/011.4bpp.lz"); -const u32 gBattleAnimSpritePalette_011[] = INCBIN_U32("graphics/battle_anims/sprites/011.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Spark2[] = INCBIN_U32("graphics/battle_anims/sprites/spark_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Spark2[] = INCBIN_U32("graphics/battle_anims/sprites/spark_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_012[] = INCBIN_U32("graphics/battle_anims/sprites/012.4bpp.lz"); -const u32 gBattleAnimSpritePalette_012[] = INCBIN_U32("graphics/battle_anims/sprites/012.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Orange[] = INCBIN_U32("graphics/battle_anims/sprites/orange.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Orange[] = INCBIN_U32("graphics/battle_anims/sprites/orange.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_152[] = INCBIN_U32("graphics/battle_anims/sprites/152.4bpp.lz"); -const u32 gBattleAnimSpritePalette_152[] = INCBIN_U32("graphics/battle_anims/sprites/152.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Spikes[] = INCBIN_U32("graphics/battle_anims/sprites/spikes.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Spikes[] = INCBIN_U32("graphics/battle_anims/sprites/spikes.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_013[] = INCBIN_U32("graphics/battle_anims/sprites/013.4bpp.lz"); -const u32 gBattleAnimSpritePalette_013[] = INCBIN_U32("graphics/battle_anims/sprites/013.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_YellowBall[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_ball.4bpp.lz"); +const u32 gBattleAnimSpritePalette_YellowBall[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_ball.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_015[] = INCBIN_U32("graphics/battle_anims/sprites/015.4bpp.lz"); -const u32 gBattleAnimSpritePalette_015[] = INCBIN_U32("graphics/battle_anims/sprites/015.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_TiedBag[] = INCBIN_U32("graphics/battle_anims/sprites/tied_bag.4bpp.lz"); +const u32 gBattleAnimSpritePalette_TiedBag[] = INCBIN_U32("graphics/battle_anims/sprites/tied_bag.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_016[] = INCBIN_U32("graphics/battle_anims/sprites/016.4bpp.lz"); -const u32 gBattleAnimSpritePalette_016[] = INCBIN_U32("graphics/battle_anims/sprites/016.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_BlackSmoke[] = INCBIN_U32("graphics/battle_anims/sprites/black_smoke.4bpp.lz"); +const u32 gBattleAnimSpritePalette_BlackSmoke[] = INCBIN_U32("graphics/battle_anims/sprites/black_smoke.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_017[] = INCBIN_U32("graphics/battle_anims/sprites/017.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_BlackBall[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball.4bpp.lz"); const u32 gUnknownGfx_C035B8[] = INCBIN_U32("graphics/unknown/unknown_C035B8.4bpp.lz"); -const u32 gBattleAnimSpritePalette_019[] = INCBIN_U32("graphics/battle_anims/sprites/019.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_019[] = INCBIN_U32("graphics/battle_anims/sprites/019.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Glass[] = INCBIN_U32("graphics/battle_anims/sprites/glass.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Glass[] = INCBIN_U32("graphics/battle_anims/sprites/glass.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_020[] = INCBIN_U32("graphics/battle_anims/sprites/020.4bpp.lz"); -const u32 gBattleAnimSpritePalette_020[] = INCBIN_U32("graphics/battle_anims/sprites/020.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_HornHit[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit.4bpp.lz"); +const u32 gBattleAnimSpritePalette_HornHit[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit.gbapal.lz"); -const u32 gBattleAnimSpritePalette_023[] = INCBIN_U32("graphics/battle_anims/sprites/023.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_023[] = INCBIN_U32("graphics/battle_anims/sprites/023.4bpp.lz"); +const u32 gBattleAnimSpritePalette_BlueShards[] = INCBIN_U32("graphics/battle_anims/sprites/blue_shards.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_BlueShards[] = INCBIN_U32("graphics/battle_anims/sprites/blue_shards.4bpp.lz"); const u32 gUnused_BattleSpritePalette_023[] = INCBIN_U32("graphics/unused/battle_anim_023.gbapal.lz"); const u32 gUnusedGfx_MusicNotes[] = INCBIN_U32("graphics/unused/music_notes.4bpp.lz"); -const u32 gBattleAnimSpritePalette_021[] = INCBIN_U32("graphics/battle_anims/sprites/021.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_021[] = INCBIN_U32("graphics/battle_anims/sprites/021.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Hit[] = INCBIN_U32("graphics/battle_anims/sprites/hit.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Hit[] = INCBIN_U32("graphics/battle_anims/sprites/hit.4bpp.lz"); -const u32 gBattleAnimSpritePalette_022[] = INCBIN_U32("graphics/battle_anims/sprites/022.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Hit2[] = INCBIN_U32("graphics/battle_anims/sprites/hit_2.gbapal.lz"); -const u32 gBattleAnimSpritePalette_025[] = INCBIN_U32("graphics/battle_anims/sprites/025.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_025[] = INCBIN_U32("graphics/battle_anims/sprites/025.4bpp.lz"); +const u32 gBattleAnimSpritePalette_WavingHand[] = INCBIN_U32("graphics/battle_anims/sprites/waving_hand.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_WavingHand[] = INCBIN_U32("graphics/battle_anims/sprites/waving_hand.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_024[] = INCBIN_U32("graphics/battle_anims/sprites/024.4bpp.lz"); -const u32 gBattleAnimSpritePalette_024[] = INCBIN_U32("graphics/battle_anims/sprites/024.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_ClosingEye[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye.4bpp.lz"); +const u32 gBattleAnimSpritePalette_ClosingEye[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_031[] = INCBIN_U32("graphics/battle_anims/sprites/031.4bpp.lz"); -const u32 gBattleAnimSpritePalette_031[] = INCBIN_U32("graphics/battle_anims/sprites/031.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_BlueStar[] = INCBIN_U32("graphics/battle_anims/sprites/blue_star.4bpp.lz"); +const u32 gBattleAnimSpritePalette_BlueStar[] = INCBIN_U32("graphics/battle_anims/sprites/blue_star.gbapal.lz"); -const u32 gBattleAnimSpritePalette_032[] = INCBIN_U32("graphics/battle_anims/sprites/032.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_032[] = INCBIN_U32("graphics/battle_anims/sprites/032.4bpp.lz"); +const u32 gBattleAnimSpritePalette_BubbleBurst[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_BubbleBurst[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_026[] = INCBIN_U32("graphics/battle_anims/sprites/026.4bpp.lz"); -const u32 gBattleAnimSpritePalette_026[] = INCBIN_U32("graphics/battle_anims/sprites/026.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_HitDuplicate[] = INCBIN_U32("graphics/battle_anims/sprites/hit_duplicate.4bpp.lz"); +const u32 gBattleAnimSpritePalette_HitDuplicate[] = INCBIN_U32("graphics/battle_anims/sprites/hit_duplicate.gbapal.lz"); -const u32 gBattleAnimSpritePalette_027[] = INCBIN_U32("graphics/battle_anims/sprites/027.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_027[] = INCBIN_U32("graphics/battle_anims/sprites/027.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Leer[] = INCBIN_U32("graphics/battle_anims/sprites/leer.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Leer[] = INCBIN_U32("graphics/battle_anims/sprites/leer.4bpp.lz"); -const u32 gBattleAnimSpritePalette_028[] = INCBIN_U32("graphics/battle_anims/sprites/028.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_028[] = INCBIN_U32("graphics/battle_anims/sprites/028.4bpp.lz"); +const u32 gBattleAnimSpritePalette_BlueBurst[] = INCBIN_U32("graphics/battle_anims/sprites/blue_burst.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_BlueBurst[] = INCBIN_U32("graphics/battle_anims/sprites/blue_burst.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_029[] = INCBIN_U32("graphics/battle_anims/sprites/029.4bpp.lz"); -const u32 gBattleAnimSpritePalette_029[] = INCBIN_U32("graphics/battle_anims/sprites/029.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SmallEmber[] = INCBIN_U32("graphics/battle_anims/sprites/small_ember.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SmallEmber[] = INCBIN_U32("graphics/battle_anims/sprites/small_ember.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_030[] = INCBIN_U32("graphics/battle_anims/sprites/030.4bpp.lz"); -const u32 gBattleAnimSpritePalette_030[] = INCBIN_U32("graphics/battle_anims/sprites/030.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_GraySmoke[] = INCBIN_U32("graphics/battle_anims/sprites/gray_smoke.4bpp.lz"); +const u32 gBattleAnimSpritePalette_GraySmoke[] = INCBIN_U32("graphics/battle_anims/sprites/gray_smoke.gbapal.lz"); -const u32 gBattleAnimSpritePalette_033[] = INCBIN_U32("graphics/battle_anims/sprites/033.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_033[] = INCBIN_U32("graphics/battle_anims/sprites/033.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Fire[] = INCBIN_U32("graphics/battle_anims/sprites/fire.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Fire[] = INCBIN_U32("graphics/battle_anims/sprites/fire.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_034[] = INCBIN_U32("graphics/battle_anims/sprites/034.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_035[] = INCBIN_U32("graphics/battle_anims/sprites/035.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_SpinningFire[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_fire.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_FirePlume[] = INCBIN_U32("graphics/battle_anims/sprites/fire_plume.4bpp.lz"); -const u32 gBattleAnimSpritePalette_036[] = INCBIN_U32("graphics/battle_anims/sprites/036.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_036[] = INCBIN_U32("graphics/battle_anims/sprites/036.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Lightning2[] = INCBIN_U32("graphics/battle_anims/sprites/lightning_2.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Lightning2[] = INCBIN_U32("graphics/battle_anims/sprites/lightning_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_037[] = INCBIN_U32("graphics/battle_anims/sprites/037.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Lightning[] = INCBIN_U32("graphics/battle_anims/sprites/lightning.4bpp.lz"); const u32 gUnknownGfx_C06D98[] = INCBIN_U32("graphics/unknown/unknown_C06D98.4bpp.lz"); const u32 gUnknownPal_C06D98[] = INCBIN_U32("graphics/unknown/unknown_C06D98.gbapal.lz"); @@ -141,118 +141,118 @@ const u32 gOldBattleInterfacePal_5_6_7[] = INCBIN_U32("graphics/unused/obi_palpa const u32 gOldBattleInterfaceGfx2[] = INCBIN_U32("graphics/unused/obi2.4bpp.lz"); const u32 gOldBattleInterfaceTilemap[] = INCBIN_U32("graphics/unused/old_battle_interface_tilemap.bin.lz"); -const u32 gBattleAnimSpritePalette_038[] = INCBIN_U32("graphics/battle_anims/sprites/038.gbapal.lz"); -const u32 gBattleAnimSpritePalette_039[] = INCBIN_U32("graphics/battle_anims/sprites/039.gbapal.lz"); +const u32 gBattleAnimSpritePalette_ClawSlash2[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash_2.gbapal.lz"); +const u32 gBattleAnimSpritePalette_ClawSlash[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_038[] = INCBIN_U32("graphics/battle_anims/sprites/038.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_039[] = INCBIN_U32("graphics/battle_anims/sprites/039.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_040[] = INCBIN_U32("graphics/battle_anims/sprites/040.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_041[] = INCBIN_U32("graphics/battle_anims/sprites/041.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_ClawSlash2[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash_2.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_ClawSlash[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Scratch3[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_3.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Scratch2[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_2.4bpp.lz"); const u32 gPartyMenuHpBar_Gfx[] = INCBIN_U32("graphics/interface/party_menu_hpbar.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_042[] = INCBIN_U32("graphics/battle_anims/sprites/042.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_BubbleBurst2[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_042[] = INCBIN_U32("graphics/battle_anims/sprites/042.gbapal.lz"); +const u32 gBattleAnimSpritePalette_BubbleBurst2[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_043[] = INCBIN_U32("graphics/battle_anims/sprites/043.4bpp.lz"); -const u32 gBattleAnimSpritePalette_043[] = INCBIN_U32("graphics/battle_anims/sprites/043.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_IceChunk[] = INCBIN_U32("graphics/battle_anims/sprites/ice_chunk.4bpp.lz"); +const u32 gBattleAnimSpritePalette_IceChunk[] = INCBIN_U32("graphics/battle_anims/sprites/ice_chunk.gbapal.lz"); -const u32 gBattleAnimSpritePalette_044[] = INCBIN_U32("graphics/battle_anims/sprites/044.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_044[] = INCBIN_U32("graphics/battle_anims/sprites/044.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Glass2[] = INCBIN_U32("graphics/battle_anims/sprites/glass_2.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Glass2[] = INCBIN_U32("graphics/battle_anims/sprites/glass_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_045[] = INCBIN_U32("graphics/battle_anims/sprites/045.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_045[] = INCBIN_U32("graphics/battle_anims/sprites/045.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PinkHeart2[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart_2.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PinkHeart2[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart_2.4bpp.lz"); const u32 gUnknown_08C08F0C[] = INCBIN_U32("graphics/battle_interface/unused_window.4bpp.lz"); const u32 gUnknown_08C093C8[] = INCBIN_U32("graphics/battle_interface/unused_window.gbapal.lz"); const u32 gUnknown_08C093F0[] = INCBIN_U32("graphics/interface/hp_numbers.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_046[] = INCBIN_U32("graphics/battle_anims/sprites/046.4bpp.lz"); -const u32 gBattleAnimSpritePalette_046[] = INCBIN_U32("graphics/battle_anims/sprites/046.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.gbapal.lz"); -const u32 gBattleAnimSpritePalette_047[] = INCBIN_U32("graphics/battle_anims/sprites/047.gbapal.lz"); +const u32 gBattleAnimSpritePalette_SapDrip2[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip_2.gbapal.lz"); const u32 gUnusedGfx_Window2[] = INCBIN_U32("graphics/battle_interface/unused_window2.4bpp.lz"); const u32 gUnusedGfx_Window2Bar[] = INCBIN_U32("graphics/battle_interface/unused_window2bar.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_048[] = INCBIN_U32("graphics/battle_anims/sprites/048.4bpp.lz"); -const u32 gBattleAnimSpritePalette_048[] = INCBIN_U32("graphics/battle_anims/sprites/048.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Sparkle1[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_1.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Sparkle1[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_1.gbapal.lz"); -const u32 gBattleAnimSpritePalette_049[] = INCBIN_U32("graphics/battle_anims/sprites/049.gbapal.lz"); -const u32 gBattleAnimSpritePalette_050[] = INCBIN_U32("graphics/battle_anims/sprites/050.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Sparkle2[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_2.gbapal.lz"); +const u32 gBattleAnimSpritePalette_HumanoidFoot[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_foot.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_050[] = INCBIN_U32("graphics/battle_anims/sprites/050.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_051[] = INCBIN_U32("graphics/battle_anims/sprites/051.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_052[] = INCBIN_U32("graphics/battle_anims/sprites/052.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_HumanoidFoot[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_foot.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_MonsterFoot[] = INCBIN_U32("graphics/battle_anims/sprites/monster_foot.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_HumanoidHand[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_hand.4bpp.lz"); const u32 gUnusedGfx_LineSketch[] = INCBIN_U32("graphics/unused/line_sketch.4bpp.lz"); const u32 gUnusedPal_LineSketch[] = INCBIN_U32("graphics/unused/line_sketch.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_054[] = INCBIN_U32("graphics/battle_anims/sprites/054.4bpp.lz"); -const u32 gBattleAnimSpritePalette_054[] = INCBIN_U32("graphics/battle_anims/sprites/054.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_YellowUnk[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk.4bpp.lz"); +const u32 gBattleAnimSpritePalette_YellowUnk[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_056[] = INCBIN_U32("graphics/battle_anims/sprites/056.4bpp.lz"); -const u32 gBattleAnimSpritePalette_056[] = INCBIN_U32("graphics/battle_anims/sprites/056.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SlamHit[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SlamHit[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_055[] = INCBIN_U32("graphics/battle_anims/sprites/055.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_RedFist[] = INCBIN_U32("graphics/battle_anims/sprites/red_fist.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_057[] = INCBIN_U32("graphics/battle_anims/sprites/057.4bpp.lz"); -const u32 gBattleAnimSpritePalette_057[] = INCBIN_U32("graphics/battle_anims/sprites/057.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Ring[] = INCBIN_U32("graphics/battle_anims/sprites/ring.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Ring[] = INCBIN_U32("graphics/battle_anims/sprites/ring.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_058[] = INCBIN_U32("graphics/battle_anims/sprites/058.4bpp.lz"); -const u32 gBattleAnimSpritePalette_058[] = INCBIN_U32("graphics/battle_anims/sprites/058.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Rocks[] = INCBIN_U32("graphics/battle_anims/sprites/rocks.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Rocks[] = INCBIN_U32("graphics/battle_anims/sprites/rocks.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_059[] = INCBIN_U32("graphics/battle_anims/sprites/059.4bpp.lz"); -const u32 gBattleAnimSpritePalette_059[] = INCBIN_U32("graphics/battle_anims/sprites/059.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Z[] = INCBIN_U32("graphics/battle_anims/sprites/z.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Z[] = INCBIN_U32("graphics/battle_anims/sprites/z.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_060[] = INCBIN_U32("graphics/battle_anims/sprites/060.4bpp.lz"); -const u32 gBattleAnimSpritePalette_060[] = INCBIN_U32("graphics/battle_anims/sprites/060.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_YellowUnk2[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_YellowUnk2[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_061[] = INCBIN_U32("graphics/battle_anims/sprites/061.4bpp.lz"); -const u32 gBattleAnimSpritePalette_061[] = INCBIN_U32("graphics/battle_anims/sprites/061.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_AirSlash[] = INCBIN_U32("graphics/battle_anims/sprites/air_slash.4bpp.lz"); +const u32 gBattleAnimSpritePalette_AirSlash[] = INCBIN_U32("graphics/battle_anims/sprites/air_slash.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_062[] = INCBIN_U32("graphics/battle_anims/sprites/062.4bpp.lz"); -const u32 gBattleAnimSpritePalette_062[] = INCBIN_U32("graphics/battle_anims/sprites/062.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SpinningGreenOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_green_orbs.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SpinningGreenOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_green_orbs.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_063[] = INCBIN_U32("graphics/battle_anims/sprites/063.4bpp.lz"); -const u32 gBattleAnimSpritePalette_063[] = INCBIN_U32("graphics/battle_anims/sprites/063.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Leaf[] = INCBIN_U32("graphics/battle_anims/sprites/leaf.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Leaf[] = INCBIN_U32("graphics/battle_anims/sprites/leaf.gbapal.lz"); const u32 gUnusedGfx_Metronome[] = INCBIN_U32("graphics/unused/metronome_hand_small.4bpp.lz"); // unused, was for metronome at one point -const u32 gBattleAnimSpritePalette_091[] = INCBIN_U32("graphics/battle_anims/sprites/091.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Clapping[] = INCBIN_U32("graphics/battle_anims/sprites/clapping.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_065[] = INCBIN_U32("graphics/battle_anims/sprites/065.4bpp.lz"); -const u32 gBattleAnimSpritePalette_065[] = INCBIN_U32("graphics/battle_anims/sprites/065.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PoisonPowder[] = INCBIN_U32("graphics/battle_anims/sprites/poison_powder.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PoisonPowder[] = INCBIN_U32("graphics/battle_anims/sprites/poison_powder.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_066[] = INCBIN_U32("graphics/battle_anims/sprites/066.4bpp.lz"); -const u32 gBattleAnimSpritePalette_066[] = INCBIN_U32("graphics/battle_anims/sprites/066.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_BrownTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/brown_triangle.4bpp.lz"); +const u32 gBattleAnimSpritePalette_BrownTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/brown_triangle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_070[] = INCBIN_U32("graphics/battle_anims/sprites/070.4bpp.lz"); -const u32 gBattleAnimSpritePalette_070[] = INCBIN_U32("graphics/battle_anims/sprites/070.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Sparkle3[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_3.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Sparkle3[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_3.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_071[] = INCBIN_U32("graphics/battle_anims/sprites/071.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Sparkle4[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_4.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_072[] = INCBIN_U32("graphics/battle_anims/sprites/072.4bpp.lz"); -const u32 gBattleAnimSpritePalette_072[] = INCBIN_U32("graphics/battle_anims/sprites/072.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_MusicNotes[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes.4bpp.lz"); +const u32 gBattleAnimSpritePalette_MusicNotes[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_073[] = INCBIN_U32("graphics/battle_anims/sprites/073.4bpp.lz"); -const u32 gBattleAnimSpritePalette_073[] = INCBIN_U32("graphics/battle_anims/sprites/073.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Duck[] = INCBIN_U32("graphics/battle_anims/sprites/duck.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Duck[] = INCBIN_U32("graphics/battle_anims/sprites/duck.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_075[] = INCBIN_U32("graphics/battle_anims/sprites/075.4bpp.lz"); -const u32 gBattleAnimSpritePalette_075[] = INCBIN_U32("graphics/battle_anims/sprites/075.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Alert[] = INCBIN_U32("graphics/battle_anims/sprites/alert.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Alert[] = INCBIN_U32("graphics/battle_anims/sprites/alert.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_078[] = INCBIN_U32("graphics/battle_anims/sprites/078.4bpp.lz"); -const u32 gBattleAnimSpritePalette_078[] = INCBIN_U32("graphics/battle_anims/sprites/078.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Shock4[] = INCBIN_U32("graphics/battle_anims/sprites/shock_4.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Shock4[] = INCBIN_U32("graphics/battle_anims/sprites/shock_4.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_079[] = INCBIN_U32("graphics/battle_anims/sprites/079.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Shock[] = INCBIN_U32("graphics/battle_anims/sprites/shock.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_080[] = INCBIN_U32("graphics/battle_anims/sprites/080.4bpp.lz"); -const u32 gBattleAnimSpritePalette_080[] = INCBIN_U32("graphics/battle_anims/sprites/080.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Bell2[] = INCBIN_U32("graphics/battle_anims/sprites/bell_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Bell2[] = INCBIN_U32("graphics/battle_anims/sprites/bell_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_081[] = INCBIN_U32("graphics/battle_anims/sprites/081.4bpp.lz"); -const u32 gBattleAnimSpritePalette_081[] = INCBIN_U32("graphics/battle_anims/sprites/081.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PinkGlove[] = INCBIN_U32("graphics/battle_anims/sprites/pink_glove.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PinkGlove[] = INCBIN_U32("graphics/battle_anims/sprites/pink_glove.gbapal.lz"); const u16 gUnknown_C0CA1C[] = INCBIN_U16("graphics/unknown/unknown_C0CA1C.bin"); const u16 gUnknown_C0CA40[] = INCBIN_U16("graphics/unknown/unknown_C0CA40.bin"); @@ -261,85 +261,85 @@ const u32 gUnusedGfx8bpp_LineSketch2[] = INCBIN_U32("graphics/unused/line_sketch const u16 gUnknown_C0CAE0[] = INCBIN_U16("graphics/unknown/unknown_C0CAE0.bin"); const u32 gUnusedTilemap_LineSketch2[] = INCBIN_U32("graphics/unused/line_sketch_2.bin.lz"); -const u32 gBattleAnimSpriteSheet_082[] = INCBIN_U32("graphics/battle_anims/sprites/082.4bpp.lz"); -const u32 gBattleAnimSpritePalette_082[] = INCBIN_U32("graphics/battle_anims/sprites/082.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_BlueLines[] = INCBIN_U32("graphics/battle_anims/sprites/blue_lines.4bpp.lz"); +const u32 gBattleAnimSpritePalette_BlueLines[] = INCBIN_U32("graphics/battle_anims/sprites/blue_lines.gbapal.lz"); -const u32 gBattleAnimSpritePalette_083[] = INCBIN_U32("graphics/battle_anims/sprites/083.gbapal.lz"); -const u32 gBattleAnimSpritePalette_084[] = INCBIN_U32("graphics/battle_anims/sprites/084.gbapal.lz"); -const u32 gBattleAnimSpritePalette_085[] = INCBIN_U32("graphics/battle_anims/sprites/085.gbapal.lz"); -const u32 gBattleAnimSpritePalette_086[] = INCBIN_U32("graphics/battle_anims/sprites/086.gbapal.lz"); -const u32 gBattleAnimSpritePalette_088[] = INCBIN_U32("graphics/battle_anims/sprites/088.gbapal.lz"); -const u32 gBattleAnimSpritePalette_089[] = INCBIN_U32("graphics/battle_anims/sprites/089.gbapal.lz"); -const u32 gBattleAnimSpritePalette_090[] = INCBIN_U32("graphics/battle_anims/sprites/090.gbapal.lz"); -const u32 gBattleAnimSpritePalette_092[] = INCBIN_U32("graphics/battle_anims/sprites/092.gbapal.lz"); -const u32 gBattleAnimSpritePalette_093[] = INCBIN_U32("graphics/battle_anims/sprites/093.gbapal.lz"); -const u32 gBattleAnimSpritePalette_094[] = INCBIN_U32("graphics/battle_anims/sprites/094.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Impact3[] = INCBIN_U32("graphics/battle_anims/sprites/impact_3.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Impact2[] = INCBIN_U32("graphics/battle_anims/sprites/impact_2.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Reticle[] = INCBIN_U32("graphics/battle_anims/sprites/reticle.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Breath[] = INCBIN_U32("graphics/battle_anims/sprites/breath.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Snowball[] = INCBIN_U32("graphics/battle_anims/sprites/snowball.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Vine[] = INCBIN_U32("graphics/battle_anims/sprites/vine.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Sword2[] = INCBIN_U32("graphics/battle_anims/sprites/sword_2.gbapal.lz"); +const u32 gBattleAnimSpritePalette_RedTube[] = INCBIN_U32("graphics/battle_anims/sprites/red_tube.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Amnesia[] = INCBIN_U32("graphics/battle_anims/sprites/amnesia.gbapal.lz"); +const u32 gBattleAnimSpritePalette_String2[] = INCBIN_U32("graphics/battle_anims/sprites/string_2.gbapal.lz"); const u32 gUnknown_D0D2B4[] = INCBIN_U32("graphics/unknown/unknown_D0D2B4.bin.lz"); -const u32 gBattleAnimSpritePalette_095[] = INCBIN_U32("graphics/battle_anims/sprites/095.gbapal.lz"); -const u32 gBattleAnimSpritePalette_096[] = INCBIN_U32("graphics/battle_anims/sprites/096.gbapal.lz"); -const u32 gBattleAnimSpritePalette_097[] = INCBIN_U32("graphics/battle_anims/sprites/097.gbapal.lz"); -const u32 gBattleAnimSpritePalette_100[] = INCBIN_U32("graphics/battle_anims/sprites/100.gbapal.lz"); -const u32 gBattleAnimSpritePalette_101[] = INCBIN_U32("graphics/battle_anims/sprites/101.gbapal.lz"); -const u32 gBattleAnimSpritePalette_103[] = INCBIN_U32("graphics/battle_anims/sprites/103.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Pencil2[] = INCBIN_U32("graphics/battle_anims/sprites/pencil_2.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Petal[] = INCBIN_U32("graphics/battle_anims/sprites/petal.gbapal.lz"); +const u32 gBattleAnimSpritePalette_BentSpoon[] = INCBIN_U32("graphics/battle_anims/sprites/bent_spoon.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Coin[] = INCBIN_U32("graphics/battle_anims/sprites/coin.gbapal.lz"); +const u32 gBattleAnimSpritePalette_CrackedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/cracked_egg.gbapal.lz"); +const u32 gBattleAnimSpritePalette_FreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/fresh_egg.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_083[] = INCBIN_U32("graphics/battle_anims/sprites/083.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_084[] = INCBIN_U32("graphics/battle_anims/sprites/084.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_085[] = INCBIN_U32("graphics/battle_anims/sprites/085.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_086[] = INCBIN_U32("graphics/battle_anims/sprites/086.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_088[] = INCBIN_U32("graphics/battle_anims/sprites/088.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_089[] = INCBIN_U32("graphics/battle_anims/sprites/089.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_090[] = INCBIN_U32("graphics/battle_anims/sprites/090.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_091[] = INCBIN_U32("graphics/battle_anims/sprites/091.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_092[] = INCBIN_U32("graphics/battle_anims/sprites/092.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_093[] = INCBIN_U32("graphics/battle_anims/sprites/093.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_094[] = INCBIN_U32("graphics/battle_anims/sprites/094.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_095[] = INCBIN_U32("graphics/battle_anims/sprites/095.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_096[] = INCBIN_U32("graphics/battle_anims/sprites/096.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_097[] = INCBIN_U32("graphics/battle_anims/sprites/097.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_098[] = INCBIN_U32("graphics/battle_anims/sprites/098.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_100[] = INCBIN_U32("graphics/battle_anims/sprites/100.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_101[] = INCBIN_U32("graphics/battle_anims/sprites/101.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_102[] = INCBIN_U32("graphics/battle_anims/sprites/102.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_103[] = INCBIN_U32("graphics/battle_anims/sprites/103.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Impact3[] = INCBIN_U32("graphics/battle_anims/sprites/impact_3.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Impact2[] = INCBIN_U32("graphics/battle_anims/sprites/impact_2.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Reticle[] = INCBIN_U32("graphics/battle_anims/sprites/reticle.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Breath[] = INCBIN_U32("graphics/battle_anims/sprites/breath.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Snowball[] = INCBIN_U32("graphics/battle_anims/sprites/snowball.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Vine[] = INCBIN_U32("graphics/battle_anims/sprites/vine.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Sword2[] = INCBIN_U32("graphics/battle_anims/sprites/sword_2.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Clapping[] = INCBIN_U32("graphics/battle_anims/sprites/clapping.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_RedTube[] = INCBIN_U32("graphics/battle_anims/sprites/red_tube.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Amnesia[] = INCBIN_U32("graphics/battle_anims/sprites/amnesia.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_String2[] = INCBIN_U32("graphics/battle_anims/sprites/string_2.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Pencil2[] = INCBIN_U32("graphics/battle_anims/sprites/pencil_2.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Petal[] = INCBIN_U32("graphics/battle_anims/sprites/petal.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_BentSpoon[] = INCBIN_U32("graphics/battle_anims/sprites/bent_spoon.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Web[] = INCBIN_U32("graphics/battle_anims/sprites/web.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Coin[] = INCBIN_U32("graphics/battle_anims/sprites/coin.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_CrackedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/cracked_egg.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_HatchedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/hatched_egg.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_FreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/fresh_egg.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_104[] = INCBIN_U32("graphics/battle_anims/sprites/104.4bpp.lz"); -const u32 gBattleAnimSpritePalette_104[] = INCBIN_U32("graphics/battle_anims/sprites/104.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Fangs[] = INCBIN_U32("graphics/battle_anims/sprites/fangs.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Fangs[] = INCBIN_U32("graphics/battle_anims/sprites/fangs.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_105[] = INCBIN_U32("graphics/battle_anims/sprites/105.4bpp.lz"); -const u32 gBattleAnimSpritePalette_105[] = INCBIN_U32("graphics/battle_anims/sprites/105.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Explosion2[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Explosion2[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_106[] = INCBIN_U32("graphics/battle_anims/sprites/106.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Explosion3[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_3.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_107[] = INCBIN_U32("graphics/battle_anims/sprites/107.4bpp.lz"); -const u32 gBattleAnimSpritePalette_107[] = INCBIN_U32("graphics/battle_anims/sprites/107.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_WaterDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet.4bpp.lz"); +const u32 gBattleAnimSpritePalette_WaterDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_108[] = INCBIN_U32("graphics/battle_anims/sprites/108.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_WaterDroplet2[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_109[] = INCBIN_U32("graphics/battle_anims/sprites/109.4bpp.lz"); -const u32 gBattleAnimSpritePalette_109[] = INCBIN_U32("graphics/battle_anims/sprites/109.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Seed2[] = INCBIN_U32("graphics/battle_anims/sprites/seed_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Seed2[] = INCBIN_U32("graphics/battle_anims/sprites/seed_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_110[] = INCBIN_U32("graphics/battle_anims/sprites/110.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Sprout[] = INCBIN_U32("graphics/battle_anims/sprites/sprout.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_111[] = INCBIN_U32("graphics/battle_anims/sprites/111.4bpp.lz"); -const u32 gBattleAnimSpritePalette_111[] = INCBIN_U32("graphics/battle_anims/sprites/111.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_RedWand[] = INCBIN_U32("graphics/battle_anims/sprites/red_wand.4bpp.lz"); +const u32 gBattleAnimSpritePalette_RedWand[] = INCBIN_U32("graphics/battle_anims/sprites/red_wand.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_112[] = INCBIN_U32("graphics/battle_anims/sprites/112.4bpp.lz"); -const u32 gBattleAnimSpritePalette_112[] = INCBIN_U32("graphics/battle_anims/sprites/112.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PurpleGreenUnk[] = INCBIN_U32("graphics/battle_anims/sprites/purple_green_unk.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PurpleGreenUnk[] = INCBIN_U32("graphics/battle_anims/sprites/purple_green_unk.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_113[] = INCBIN_U32("graphics/battle_anims/sprites/113.4bpp.lz"); -const u32 gBattleAnimSpritePalette_113[] = INCBIN_U32("graphics/battle_anims/sprites/113.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_WaterColumn[] = INCBIN_U32("graphics/battle_anims/sprites/water_column.4bpp.lz"); +const u32 gBattleAnimSpritePalette_WaterColumn[] = INCBIN_U32("graphics/battle_anims/sprites/water_column.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_114[] = INCBIN_U32("graphics/battle_anims/sprites/114.4bpp.lz"); -const u32 gBattleAnimSpritePalette_114[] = INCBIN_U32("graphics/battle_anims/sprites/114.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_MudUnk[] = INCBIN_U32("graphics/battle_anims/sprites/mud_unk.4bpp.lz"); +const u32 gBattleAnimSpritePalette_MudUnk[] = INCBIN_U32("graphics/battle_anims/sprites/mud_unk.gbapal.lz"); const u32 gUnusedTilemap_BlueFrame[] = INCBIN_U32("graphics/unused/blue_frame.bin.lz"); // P1, P2, P3 and P4 tilemaps? const u32 gUnusedTilemap_RedYellowGreenFrame[] = INCBIN_U32("graphics/unused/redyellowgreen_frame.bin.lz"); const u32 gUnusedGfx_ColorFrames[] = INCBIN_U32("graphics/unused/color_frames.4bpp.lz"); const u32 gUnusedPal_ColorFrames[] = INCBIN_U32("graphics/unused/color_frames.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_115[] = INCBIN_U32("graphics/battle_anims/sprites/115.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_RainDrops[] = INCBIN_U32("graphics/battle_anims/sprites/rain_drops.4bpp.lz"); const u32 gUnusedGfx8bpp_WaterSplash [] = INCBIN_U32("graphics/unused/water_splash.8bpp.lz"); const u32 gUnusedTilemap_WaterSplash[] = INCBIN_U32("graphics/unused/water_splash.bin.lz"); @@ -379,63 +379,63 @@ const u8 gUnknown_D1300C[] = INCBIN_U8("graphics/unknown/unknown_D1300C.4bpp"); const u32 gBattleInterfaceGfx_UnusedWindow3[] = INCBIN_U32("graphics/battle_interface/unused_window3.4bpp.lz"); const u32 gBattleInterfaceGfx_UnusedWindow4[] = INCBIN_U32("graphics/battle_interface/unused_window4.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_116[] = INCBIN_U32("graphics/battle_anims/sprites/116.4bpp.lz"); -const u32 gBattleAnimSpritePalette_116[] = INCBIN_U32("graphics/battle_anims/sprites/116.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_FurySwipes[] = INCBIN_U32("graphics/battle_anims/sprites/fury_swipes.4bpp.lz"); +const u32 gBattleAnimSpritePalette_FurySwipes[] = INCBIN_U32("graphics/battle_anims/sprites/fury_swipes.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_117[] = INCBIN_U32("graphics/battle_anims/sprites/117.4bpp.lz"); -const u32 gBattleAnimSpritePalette_117[] = INCBIN_U32("graphics/battle_anims/sprites/117.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Vine2[] = INCBIN_U32("graphics/battle_anims/sprites/vine_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Vine2[] = INCBIN_U32("graphics/battle_anims/sprites/vine_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_118[] = INCBIN_U32("graphics/battle_anims/sprites/118.4bpp.lz"); -const u32 gBattleAnimSpritePalette_118[] = INCBIN_U32("graphics/battle_anims/sprites/118.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Teeth[] = INCBIN_U32("graphics/battle_anims/sprites/teeth.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Teeth[] = INCBIN_U32("graphics/battle_anims/sprites/teeth.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_119[] = INCBIN_U32("graphics/battle_anims/sprites/119.4bpp.lz"); -const u32 gBattleAnimSpritePalette_119[] = INCBIN_U32("graphics/battle_anims/sprites/119.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Bone2[] = INCBIN_U32("graphics/battle_anims/sprites/bone_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Bone2[] = INCBIN_U32("graphics/battle_anims/sprites/bone_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_120[] = INCBIN_U32("graphics/battle_anims/sprites/120.4bpp.lz"); -const u32 gBattleAnimSpritePalette_120[] = INCBIN_U32("graphics/battle_anims/sprites/120.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_WhiteBag[] = INCBIN_U32("graphics/battle_anims/sprites/white_bag.4bpp.lz"); +const u32 gBattleAnimSpritePalette_WhiteBag[] = INCBIN_U32("graphics/battle_anims/sprites/white_bag.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_121[] = INCBIN_U32("graphics/battle_anims/sprites/121.4bpp.lz"); -const u32 gBattleAnimSpritePalette_121[] = INCBIN_U32("graphics/battle_anims/sprites/121.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Unknown[] = INCBIN_U32("graphics/battle_anims/sprites/unknown.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Unknown[] = INCBIN_U32("graphics/battle_anims/sprites/unknown.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_122[] = INCBIN_U32("graphics/battle_anims/sprites/122.4bpp.lz"); -const u32 gBattleAnimSpritePalette_122[] = INCBIN_U32("graphics/battle_anims/sprites/122.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PurpleCoral[] = INCBIN_U32("graphics/battle_anims/sprites/purple_coral.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PurpleCoral[] = INCBIN_U32("graphics/battle_anims/sprites/purple_coral.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_123[] = INCBIN_U32("graphics/battle_anims/sprites/123.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_PurpleDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/purple_droplet.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_124[] = INCBIN_U32("graphics/battle_anims/sprites/124.4bpp.lz"); -const u32 gBattleAnimSpritePalette_124[] = INCBIN_U32("graphics/battle_anims/sprites/124.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Shock2[] = INCBIN_U32("graphics/battle_anims/sprites/shock_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Shock2[] = INCBIN_U32("graphics/battle_anims/sprites/shock_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_125[] = INCBIN_U32("graphics/battle_anims/sprites/125.4bpp.lz"); -const u32 gBattleAnimSpritePalette_125[] = INCBIN_U32("graphics/battle_anims/sprites/125.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_ClosingEye2[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_ClosingEye2[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_126[] = INCBIN_U32("graphics/battle_anims/sprites/126.4bpp.lz"); -const u32 gBattleAnimSpritePalette_126[] = INCBIN_U32("graphics/battle_anims/sprites/126.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_MetalBall[] = INCBIN_U32("graphics/battle_anims/sprites/metal_ball.4bpp.lz"); +const u32 gBattleAnimSpritePalette_MetalBall[] = INCBIN_U32("graphics/battle_anims/sprites/metal_ball.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_127[] = INCBIN_U32("graphics/battle_anims/sprites/127.4bpp.lz"); -const u32 gBattleAnimSpritePalette_127[] = INCBIN_U32("graphics/battle_anims/sprites/127.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_MonsterDoll[] = INCBIN_U32("graphics/battle_anims/sprites/monster_doll.4bpp.lz"); +const u32 gBattleAnimSpritePalette_MonsterDoll[] = INCBIN_U32("graphics/battle_anims/sprites/monster_doll.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_128[] = INCBIN_U32("graphics/battle_anims/sprites/128.4bpp.lz"); -const u32 gBattleAnimSpritePalette_128[] = INCBIN_U32("graphics/battle_anims/sprites/128.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Whirlwind[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Whirlwind[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_129[] = INCBIN_U32("graphics/battle_anims/sprites/129.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Whirlwind2[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_130[] = INCBIN_U32("graphics/battle_anims/sprites/130.4bpp.lz"); -const u32 gBattleAnimSpritePalette_130[] = INCBIN_U32("graphics/battle_anims/sprites/130.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Explosion4[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_4.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Explosion4[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_4.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_131[] = INCBIN_U32("graphics/battle_anims/sprites/131.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Explosion5[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_5.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_132[] = INCBIN_U32("graphics/battle_anims/sprites/132.4bpp.lz"); -const u32 gBattleAnimSpritePalette_132[] = INCBIN_U32("graphics/battle_anims/sprites/132.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Tongue[] = INCBIN_U32("graphics/battle_anims/sprites/tongue.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Tongue[] = INCBIN_U32("graphics/battle_anims/sprites/tongue.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_133[] = INCBIN_U32("graphics/battle_anims/sprites/133.4bpp.lz"); -const u32 gBattleAnimSpritePalette_133[] = INCBIN_U32("graphics/battle_anims/sprites/133.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Smoke[] = INCBIN_U32("graphics/battle_anims/sprites/smoke.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Smoke[] = INCBIN_U32("graphics/battle_anims/sprites/smoke.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_134[] = INCBIN_U32("graphics/battle_anims/sprites/134.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Smoke2[] = INCBIN_U32("graphics/battle_anims/sprites/smoke_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_076[] = INCBIN_U32("graphics/battle_anims/sprites/076.4bpp.lz"); -const u32 gBattleAnimSpritePalette_076[] = INCBIN_U32("graphics/battle_anims/sprites/076.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_BlueFlames[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames.4bpp.lz"); +const u32 gBattleAnimSpritePalette_BlueFlames[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_077[] = INCBIN_U32("graphics/battle_anims/sprites/077.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_BlueFlames2[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames_2.4bpp.lz"); // Contest @@ -479,114 +479,114 @@ const u32 gUnknown_08C1A12C[] = INCBIN_U32("graphics/contest/misc_2_tilemap_3.bi const u32 gUnknown_08C1A2B4[] = INCBIN_U32("graphics/contest/misc_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_135[] = INCBIN_U32("graphics/battle_anims/sprites/135.4bpp.lz"); -const u32 gBattleAnimSpritePalette_135[] = INCBIN_U32("graphics/battle_anims/sprites/135.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Impact[] = INCBIN_U32("graphics/battle_anims/sprites/impact.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Impact[] = INCBIN_U32("graphics/battle_anims/sprites/impact.gbapal.lz"); const u32 gBattleAnimSpriteSheet_Particles[] = INCBIN_U32("graphics/battle_anims/sprites/particles.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_136[] = INCBIN_U32("graphics/battle_anims/sprites/136.4bpp.lz"); -const u32 gBattleAnimSpritePalette_136[] = INCBIN_U32("graphics/battle_anims/sprites/136.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_CircleImpact[] = INCBIN_U32("graphics/battle_anims/sprites/circle_impact.4bpp.lz"); +const u32 gBattleAnimSpritePalette_CircleImpact[] = INCBIN_U32("graphics/battle_anims/sprites/circle_impact.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_137[] = INCBIN_U32("graphics/battle_anims/sprites/137.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Scratch[] = INCBIN_U32("graphics/battle_anims/sprites/scratch.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_139[] = INCBIN_U32("graphics/battle_anims/sprites/139.4bpp.lz"); -const u32 gBattleAnimSpritePalette_139[] = INCBIN_U32("graphics/battle_anims/sprites/139.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SharpTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/sharp_teeth.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SharpTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/sharp_teeth.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_145[] = INCBIN_U32("graphics/battle_anims/sprites/145.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Clamp[] = INCBIN_U32("graphics/battle_anims/sprites/clamp.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_138[] = INCBIN_U32("graphics/battle_anims/sprites/138.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Cut[] = INCBIN_U32("graphics/battle_anims/sprites/cut.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_140[] = INCBIN_U32("graphics/battle_anims/sprites/140.4bpp.lz"); -const u32 gBattleAnimSpritePalette_140[] = INCBIN_U32("graphics/battle_anims/sprites/140.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_RainbowRings[] = INCBIN_U32("graphics/battle_anims/sprites/rainbow_rings.4bpp.lz"); +const u32 gBattleAnimSpritePalette_RainbowRings[] = INCBIN_U32("graphics/battle_anims/sprites/rainbow_rings.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_141[] = INCBIN_U32("graphics/battle_anims/sprites/141.4bpp.lz"); -const u32 gBattleAnimSpritePalette_141[] = INCBIN_U32("graphics/battle_anims/sprites/141.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_IceCrystals[] = INCBIN_U32("graphics/battle_anims/sprites/ice_crystals.4bpp.lz"); +const u32 gBattleAnimSpritePalette_IceCrystals[] = INCBIN_U32("graphics/battle_anims/sprites/ice_crystals.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_142[] = INCBIN_U32("graphics/battle_anims/sprites/142.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_IceSpikes[] = INCBIN_U32("graphics/battle_anims/sprites/ice_spikes.4bpp.lz"); const u32 gUnusedGfx_OldBeatUp[] = INCBIN_U32("graphics/unused/old_beatup.4bpp.lz"); const u32 gUnusedPal_OldBeatUp[] = INCBIN_U32("graphics/unused/old_beatup.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_147[] = INCBIN_U32("graphics/battle_anims/sprites/147.4bpp.lz"); -const u32 gBattleAnimSpritePalette_147[] = INCBIN_U32("graphics/battle_anims/sprites/147.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Orbs[] = INCBIN_U32("graphics/battle_anims/sprites/orbs.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Orbs[] = INCBIN_U32("graphics/battle_anims/sprites/orbs.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_149[] = INCBIN_U32("graphics/battle_anims/sprites/149.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_WaterOrb[] = INCBIN_U32("graphics/battle_anims/sprites/water_orb.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_148[] = INCBIN_U32("graphics/battle_anims/sprites/148.4bpp.lz"); -const u32 gBattleAnimSpritePalette_148[] = INCBIN_U32("graphics/battle_anims/sprites/148.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_WaterImpact[] = INCBIN_U32("graphics/battle_anims/sprites/water_impact.4bpp.lz"); +const u32 gBattleAnimSpritePalette_WaterImpact[] = INCBIN_U32("graphics/battle_anims/sprites/water_impact.gbapal.lz"); -const u32 gBattleAnimSpritePalette_259[] = INCBIN_U32("graphics/battle_anims/sprites/259.gbapal.lz"); +const u32 gBattleAnimSpritePalette_BrownOrb[] = INCBIN_U32("graphics/battle_anims/sprites/brown_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_074[] = INCBIN_U32("graphics/battle_anims/sprites/074.4bpp.lz"); -const u32 gBattleAnimSpritePalette_074[] = INCBIN_U32("graphics/battle_anims/sprites/074.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_MudSand[] = INCBIN_U32("graphics/battle_anims/sprites/mud_sand.4bpp.lz"); +const u32 gBattleAnimSpritePalette_MudSand[] = INCBIN_U32("graphics/battle_anims/sprites/mud_sand.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_150[] = INCBIN_U32("graphics/battle_anims/sprites/150.4bpp.lz"); -const u32 gBattleAnimSpritePalette_150[] = INCBIN_U32("graphics/battle_anims/sprites/150.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PoisonBubble[] = INCBIN_U32("graphics/battle_anims/sprites/poison_bubble.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PoisonBubble[] = INCBIN_U32("graphics/battle_anims/sprites/poison_bubble.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_151[] = INCBIN_U32("graphics/battle_anims/sprites/151.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_ToxicBubble[] = INCBIN_U32("graphics/battle_anims/sprites/toxic_bubble.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_153[] = INCBIN_U32("graphics/battle_anims/sprites/153.4bpp.lz"); -const u32 gBattleAnimSpritePalette_153[] = INCBIN_U32("graphics/battle_anims/sprites/153.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_HornHit2[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_HornHit2[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_154[] = INCBIN_U32("graphics/battle_anims/sprites/154.4bpp.lz"); -const u32 gBattleAnimSpritePalette_154[] = INCBIN_U32("graphics/battle_anims/sprites/154.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_AirWave2[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_AirWave2[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_155[] = INCBIN_U32("graphics/battle_anims/sprites/155.4bpp.lz"); -const u32 gBattleAnimSpritePalette_155[] = INCBIN_U32("graphics/battle_anims/sprites/155.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SmallBubbles[] = INCBIN_U32("graphics/battle_anims/sprites/small_bubbles.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SmallBubbles[] = INCBIN_U32("graphics/battle_anims/sprites/small_bubbles.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_156[] = INCBIN_U32("graphics/battle_anims/sprites/156.4bpp.lz"); -const u32 gBattleAnimSpritePalette_156[] = INCBIN_U32("graphics/battle_anims/sprites/156.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_RoundShadow[] = INCBIN_U32("graphics/battle_anims/sprites/round_shadow.4bpp.lz"); +const u32 gBattleAnimSpritePalette_RoundShadow[] = INCBIN_U32("graphics/battle_anims/sprites/round_shadow.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_157[] = INCBIN_U32("graphics/battle_anims/sprites/157.4bpp.lz"); -const u32 gBattleAnimSpritePalette_157[] = INCBIN_U32("graphics/battle_anims/sprites/157.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Sunlight[] = INCBIN_U32("graphics/battle_anims/sprites/sunlight.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Sunlight[] = INCBIN_U32("graphics/battle_anims/sprites/sunlight.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_158[] = INCBIN_U32("graphics/battle_anims/sprites/158.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Spore[] = INCBIN_U32("graphics/battle_anims/sprites/spore.4bpp.lz"); -const u32 gBattleAnimSpritePalette_158[] = INCBIN_U32("graphics/battle_anims/sprites/158.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Spore[] = INCBIN_U32("graphics/battle_anims/sprites/spore.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_159[] = INCBIN_U32("graphics/battle_anims/sprites/159.4bpp.lz"); -const u32 gBattleAnimSpritePalette_159[] = INCBIN_U32("graphics/battle_anims/sprites/159.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Flower[] = INCBIN_U32("graphics/battle_anims/sprites/flower.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Flower[] = INCBIN_U32("graphics/battle_anims/sprites/flower.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_160[] = INCBIN_U32("graphics/battle_anims/sprites/160.4bpp.lz"); -const u32 gBattleAnimSpritePalette_160[] = INCBIN_U32("graphics/battle_anims/sprites/160.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_RazorLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/razor_leaf.4bpp.lz"); +const u32 gBattleAnimSpritePalette_RazorLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/razor_leaf.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_144[] = INCBIN_U32("graphics/battle_anims/sprites/144.4bpp.lz"); -const u32 gBattleAnimSpritePalette_144[] = INCBIN_U32("graphics/battle_anims/sprites/144.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_MistCloud[] = INCBIN_U32("graphics/battle_anims/sprites/mist_cloud.4bpp.lz"); +const u32 gBattleAnimSpritePalette_MistCloud[] = INCBIN_U32("graphics/battle_anims/sprites/mist_cloud.gbapal.lz"); const u32 gUnknownGfx_D1C060[] = INCBIN_U32("graphics/unknown/unknown_D1C060.4bpp.lz"); const u32 gUnknownPal_D1C060[] = INCBIN_U32("graphics/unknown/unknown_D1C060.gbapal.lz"); const u32 gUnknownTilemap_D1C060[] = INCBIN_U32("graphics/unknown/unknown_D1C060.bin.lz"); -const u32 gBattleAnimSpriteSheet_162[] = INCBIN_U32("graphics/battle_anims/sprites/162.4bpp.lz"); -const u32 gBattleAnimSpritePalette_162[] = INCBIN_U32("graphics/battle_anims/sprites/162.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_WhirlwindLines[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_lines.4bpp.lz"); +const u32 gBattleAnimSpritePalette_WhirlwindLines[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_lines.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_163[] = INCBIN_U32("graphics/battle_anims/sprites/163.4bpp.lz"); -const u32 gBattleAnimSpritePalette_163[] = INCBIN_U32("graphics/battle_anims/sprites/163.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_GoldRing[] = INCBIN_U32("graphics/battle_anims/sprites/gold_ring.4bpp.lz"); +const u32 gBattleAnimSpritePalette_GoldRing[] = INCBIN_U32("graphics/battle_anims/sprites/gold_ring.gbapal.lz"); -const u32 gBattleAnimSpritePalette_288[] = INCBIN_U32("graphics/battle_anims/sprites/288.gbapal.lz"); -const u32 gBattleAnimSpritePalette_164[] = INCBIN_U32("graphics/battle_anims/sprites/164.gbapal.lz"); -const u32 gBattleAnimSpritePalette_165[] = INCBIN_U32("graphics/battle_anims/sprites/165.gbapal.lz"); +const u32 gBattleAnimSpritePalette_BlueRing2[] = INCBIN_U32("graphics/battle_anims/sprites/blue_ring_2.gbapal.lz"); +const u32 gBattleAnimSpritePalette_PurpleRing[] = INCBIN_U32("graphics/battle_anims/sprites/purple_ring.gbapal.lz"); +const u32 gBattleAnimSpritePalette_BlueRing[] = INCBIN_U32("graphics/battle_anims/sprites/blue_ring.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_166[] = INCBIN_U32("graphics/battle_anims/sprites/166.4bpp.lz"); -const u32 gBattleAnimSpritePalette_166[] = INCBIN_U32("graphics/battle_anims/sprites/166.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_GreenLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/green_light_wall.4bpp.lz"); +const u32 gBattleAnimSpritePalette_GreenLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/green_light_wall.gbapal.lz"); -const u32 gBattleAnimSpritePalette_167[] = INCBIN_U32("graphics/battle_anims/sprites/167.gbapal.lz"); -const u32 gBattleAnimSpritePalette_168[] = INCBIN_U32("graphics/battle_anims/sprites/168.gbapal.lz"); -const u32 gBattleAnimSpritePalette_169[] = INCBIN_U32("graphics/battle_anims/sprites/169.gbapal.lz"); -const u32 gBattleAnimSpritePalette_170[] = INCBIN_U32("graphics/battle_anims/sprites/170.gbapal.lz"); +const u32 gBattleAnimSpritePalette_BlueLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/blue_light_wall.gbapal.lz"); +const u32 gBattleAnimSpritePalette_RedLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/red_light_wall.gbapal.lz"); +const u32 gBattleAnimSpritePalette_GrayLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/gray_light_wall.gbapal.lz"); +const u32 gBattleAnimSpritePalette_OrangeLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/orange_light_wall.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_171[] = INCBIN_U32("graphics/battle_anims/sprites/171.4bpp.lz"); -const u32 gBattleAnimSpritePalette_171[] = INCBIN_U32("graphics/battle_anims/sprites/171.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_BlackBall2[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_BlackBall2[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball_2.gbapal.lz"); -const u32 gBattleAnimSpritePalette_172[] = INCBIN_U32("graphics/battle_anims/sprites/172.gbapal.lz"); +const u32 gBattleAnimSpritePalette_PurpleGasCloud[] = INCBIN_U32("graphics/battle_anims/sprites/purple_gas_cloud.gbapal.lz"); const u32 gContestJudgeGfx[] = INCBIN_U32("graphics/contest/judge.4bpp.lz"); const u32 gContest2Pal[] = INCBIN_U32("graphics/contest/judge.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_001[] = INCBIN_U32("graphics/battle_anims/sprites/001.4bpp.lz"); -const u32 gBattleAnimSpritePalette_001[] = INCBIN_U32("graphics/battle_anims/sprites/001.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Spark[] = INCBIN_U32("graphics/battle_anims/sprites/spark.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Spark[] = INCBIN_U32("graphics/battle_anims/sprites/spark.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_173[] = INCBIN_U32("graphics/battle_anims/sprites/173.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_SparkH[] = INCBIN_U32("graphics/battle_anims/sprites/spark_h.4bpp.lz"); const u32 gBattleAnimBackgroundImage_00[] = INCBIN_U32("graphics/battle_anims/backgrounds/00.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_00[] = INCBIN_U32("graphics/battle_anims/backgrounds/00.gbapal.lz"); @@ -600,48 +600,48 @@ const u32 gUnusedGfx_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.4bpp.lz"); const u32 gUnusedPal_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.gbapal.lz"); const u32 gUnusedTilemap_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.bin.lz"); -const u32 gBattleAnimSpriteSheet_174[] = INCBIN_U32("graphics/battle_anims/sprites/174.4bpp.lz"); -const u32 gBattleAnimSpritePalette_174[] = INCBIN_U32("graphics/battle_anims/sprites/174.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_YellowStar[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_star.4bpp.lz"); +const u32 gBattleAnimSpritePalette_YellowStar[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_star.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_175[] = INCBIN_U32("graphics/battle_anims/sprites/175.4bpp.lz"); -const u32 gBattleAnimSpritePalette_175[] = INCBIN_U32("graphics/battle_anims/sprites/175.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_LargeFreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/large_fresh_egg.4bpp.lz"); +const u32 gBattleAnimSpritePalette_LargeFreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/large_fresh_egg.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_176[] = INCBIN_U32("graphics/battle_anims/sprites/176.4bpp.lz"); -const u32 gBattleAnimSpritePalette_176[] = INCBIN_U32("graphics/battle_anims/sprites/176.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_ShadowBall[] = INCBIN_U32("graphics/battle_anims/sprites/shadow_ball.4bpp.lz"); +const u32 gBattleAnimSpritePalette_ShadowBall[] = INCBIN_U32("graphics/battle_anims/sprites/shadow_ball.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_177[] = INCBIN_U32("graphics/battle_anims/sprites/177.4bpp.lz"); -const u32 gBattleAnimSpritePalette_177[] = INCBIN_U32("graphics/battle_anims/sprites/177.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Lick[] = INCBIN_U32("graphics/battle_anims/sprites/lick.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Lick[] = INCBIN_U32("graphics/battle_anims/sprites/lick.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_178[] = INCBIN_U32("graphics/battle_anims/sprites/178.4bpp.lz"); -const u32 gBattleAnimSpritePalette_178[] = INCBIN_U32("graphics/battle_anims/sprites/178.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_VoidLines[] = INCBIN_U32("graphics/battle_anims/sprites/void_lines.4bpp.lz"); +const u32 gBattleAnimSpritePalette_VoidLines[] = INCBIN_U32("graphics/battle_anims/sprites/void_lines.gbapal.lz"); -const u32 gBattleAnimSpritePalette_179[] = INCBIN_U32("graphics/battle_anims/sprites/179.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_179[] = INCBIN_U32("graphics/battle_anims/sprites/179.4bpp.lz"); +const u32 gBattleAnimSpritePalette_String[] = INCBIN_U32("graphics/battle_anims/sprites/string.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_String[] = INCBIN_U32("graphics/battle_anims/sprites/string.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_180[] = INCBIN_U32("graphics/battle_anims/sprites/180.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_181[] = INCBIN_U32("graphics/battle_anims/sprites/181.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_WebThread[] = INCBIN_U32("graphics/battle_anims/sprites/web_thread.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_SpiderWeb[] = INCBIN_U32("graphics/battle_anims/sprites/spider_web.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_182[] = INCBIN_U32("graphics/battle_anims/sprites/182.4bpp.lz"); -const u32 gBattleAnimSpritePalette_182[] = INCBIN_U32("graphics/battle_anims/sprites/182.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Lightbulb[] = INCBIN_U32("graphics/battle_anims/sprites/lightbulb.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Lightbulb[] = INCBIN_U32("graphics/battle_anims/sprites/lightbulb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_183[] = INCBIN_U32("graphics/battle_anims/sprites/183.4bpp.lz"); -const u32 gBattleAnimSpritePalette_183[] = INCBIN_U32("graphics/battle_anims/sprites/183.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Slash[] = INCBIN_U32("graphics/battle_anims/sprites/slash.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Slash[] = INCBIN_U32("graphics/battle_anims/sprites/slash.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_184[] = INCBIN_U32("graphics/battle_anims/sprites/184.4bpp.lz"); -const u32 gBattleAnimSpritePalette_184[] = INCBIN_U32("graphics/battle_anims/sprites/184.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_FocusEnergy[] = INCBIN_U32("graphics/battle_anims/sprites/focus_energy.4bpp.lz"); +const u32 gBattleAnimSpritePalette_FocusEnergy[] = INCBIN_U32("graphics/battle_anims/sprites/focus_energy.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_185[] = INCBIN_U32("graphics/battle_anims/sprites/185.4bpp.lz"); -const u32 gBattleAnimSpritePalette_185[] = INCBIN_U32("graphics/battle_anims/sprites/185.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SphereToCube[] = INCBIN_U32("graphics/battle_anims/sprites/sphere_to_cube.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SphereToCube[] = INCBIN_U32("graphics/battle_anims/sprites/sphere_to_cube.gbapal.lz"); const u32 gBattleAnimBackgroundImage_03[] = INCBIN_U32("graphics/battle_anims/backgrounds/03.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_03[] = INCBIN_U32("graphics/battle_anims/backgrounds/03.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_03[] = INCBIN_U32("graphics/battle_anims/backgrounds/03.bin.lz"); -const u32 gBattleAnimSpriteSheet_187[] = INCBIN_U32("graphics/battle_anims/sprites/187.4bpp.lz"); -const u32 gBattleAnimSpritePalette_187[] = INCBIN_U32("graphics/battle_anims/sprites/187.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Eye[] = INCBIN_U32("graphics/battle_anims/sprites/eye.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Eye[] = INCBIN_U32("graphics/battle_anims/sprites/eye.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_186[] = INCBIN_U32("graphics/battle_anims/sprites/186.4bpp.lz"); -const u32 gBattleAnimSpritePalette_186[] = INCBIN_U32("graphics/battle_anims/sprites/186.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Tendrils[] = INCBIN_U32("graphics/battle_anims/sprites/tendrils.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Tendrils[] = INCBIN_U32("graphics/battle_anims/sprites/tendrils.gbapal.lz"); const u32 gHealthboxSinglesPlayerGfx[] = INCBIN_U32("graphics/battle_interface/healthbox_singles_player.4bpp.lz"); const u32 gHealthboxSinglesOpponentGfx[] = INCBIN_U32("graphics/battle_interface/healthbox_singles_opponent.4bpp.lz"); @@ -652,136 +652,136 @@ const u32 gHealthboxSafariGfx[] = INCBIN_U32("graphics/battle_interface/healthbo const u32 gUnusedGfx_Shadow[] = INCBIN_U32("graphics/unused/shadow.4bpp.lz"); const u32 gUnusedPal_Shadow[] = INCBIN_U32("graphics/unused/shadow.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_014[] = INCBIN_U32("graphics/battle_anims/sprites/014.4bpp.lz"); -const u32 gBattleAnimSpritePalette_014[] = INCBIN_U32("graphics/battle_anims/sprites/014.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_LockOn[] = INCBIN_U32("graphics/battle_anims/sprites/lock_on.4bpp.lz"); +const u32 gBattleAnimSpritePalette_LockOn[] = INCBIN_U32("graphics/battle_anims/sprites/lock_on.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_190[] = INCBIN_U32("graphics/battle_anims/sprites/190.4bpp.lz"); -const u32 gBattleAnimSpritePalette_190[] = INCBIN_U32("graphics/battle_anims/sprites/190.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_OpeningEye[] = INCBIN_U32("graphics/battle_anims/sprites/opening_eye.4bpp.lz"); +const u32 gBattleAnimSpritePalette_OpeningEye[] = INCBIN_U32("graphics/battle_anims/sprites/opening_eye.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_191[] = INCBIN_U32("graphics/battle_anims/sprites/191.4bpp.lz"); -const u32 gBattleAnimSpritePalette_191[] = INCBIN_U32("graphics/battle_anims/sprites/191.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_RoundWhiteHalo[] = INCBIN_U32("graphics/battle_anims/sprites/round_white_halo.4bpp.lz"); +const u32 gBattleAnimSpritePalette_RoundWhiteHalo[] = INCBIN_U32("graphics/battle_anims/sprites/round_white_halo.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_189[] = INCBIN_U32("graphics/battle_anims/sprites/189.4bpp.lz"); -const u32 gBattleAnimSpritePalette_189[] = INCBIN_U32("graphics/battle_anims/sprites/189.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_TealAlert[] = INCBIN_U32("graphics/battle_anims/sprites/teal_alert.4bpp.lz"); +const u32 gBattleAnimSpritePalette_TealAlert[] = INCBIN_U32("graphics/battle_anims/sprites/teal_alert.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_192[] = INCBIN_U32("graphics/battle_anims/sprites/192.4bpp.lz"); -const u32 gBattleAnimSpritePalette_192[] = INCBIN_U32("graphics/battle_anims/sprites/192.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_FangAttack[] = INCBIN_U32("graphics/battle_anims/sprites/fang_attack.4bpp.lz"); +const u32 gBattleAnimSpritePalette_FangAttack[] = INCBIN_U32("graphics/battle_anims/sprites/fang_attack.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_193[] = INCBIN_U32("graphics/battle_anims/sprites/193.4bpp.lz"); -const u32 gBattleAnimSpritePalette_193[] = INCBIN_U32("graphics/battle_anims/sprites/193.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.gbapal.lz"); const u32 gUnknown_08C20668[] = INCBIN_U32("graphics/battle_anims/masks/curse.4bpp.lz"); const u32 gUnknown_08C20684[] = INCBIN_U32("graphics/battle_anims/masks/curse.bin.lz"); -const u32 gBattleAnimSpriteSheet_002[] = INCBIN_U32("graphics/battle_anims/sprites/002.4bpp.lz"); -const u32 gBattleAnimSpritePalette_002[] = INCBIN_U32("graphics/battle_anims/sprites/002.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_196[] = INCBIN_U32("graphics/battle_anims/sprites/196.4bpp.lz"); -const u32 gBattleAnimSpritePalette_196[] = INCBIN_U32("graphics/battle_anims/sprites/196.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Spiral[] = INCBIN_U32("graphics/battle_anims/sprites/spiral.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Spiral[] = INCBIN_U32("graphics/battle_anims/sprites/spiral.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_194[] = INCBIN_U32("graphics/battle_anims/sprites/194.4bpp.lz"); -const u32 gBattleAnimSpritePalette_194[] = INCBIN_U32("graphics/battle_anims/sprites/194.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Moon[] = INCBIN_U32("graphics/battle_anims/sprites/moon.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Moon[] = INCBIN_U32("graphics/battle_anims/sprites/moon.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_195[] = INCBIN_U32("graphics/battle_anims/sprites/195.4bpp.lz"); -const u32 gBattleAnimSpritePalette_195[] = INCBIN_U32("graphics/battle_anims/sprites/195.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_GreenSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/green_sparkle.4bpp.lz"); +const u32 gBattleAnimSpritePalette_GreenSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/green_sparkle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_197[] = INCBIN_U32("graphics/battle_anims/sprites/197.4bpp.lz"); -const u32 gBattleAnimSpritePalette_197[] = INCBIN_U32("graphics/battle_anims/sprites/197.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SnoreZ[] = INCBIN_U32("graphics/battle_anims/sprites/snore_z.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SnoreZ[] = INCBIN_U32("graphics/battle_anims/sprites/snore_z.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_198[] = INCBIN_U32("graphics/battle_anims/sprites/198.4bpp.lz"); -const u32 gBattleAnimSpritePalette_198[] = INCBIN_U32("graphics/battle_anims/sprites/198.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Explosion[] = INCBIN_U32("graphics/battle_anims/sprites/explosion.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Explosion[] = INCBIN_U32("graphics/battle_anims/sprites/explosion.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_199[] = INCBIN_U32("graphics/battle_anims/sprites/199.4bpp.lz"); -const u32 gBattleAnimSpritePalette_199[] = INCBIN_U32("graphics/battle_anims/sprites/199.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Nail[] = INCBIN_U32("graphics/battle_anims/sprites/nail.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Nail[] = INCBIN_U32("graphics/battle_anims/sprites/nail.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_200[] = INCBIN_U32("graphics/battle_anims/sprites/200.4bpp.lz"); -const u32 gBattleAnimSpritePalette_200[] = INCBIN_U32("graphics/battle_anims/sprites/200.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_GhostlySpirit[] = INCBIN_U32("graphics/battle_anims/sprites/ghostly_spirit.4bpp.lz"); +const u32 gBattleAnimSpritePalette_GhostlySpirit[] = INCBIN_U32("graphics/battle_anims/sprites/ghostly_spirit.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_201[] = INCBIN_U32("graphics/battle_anims/sprites/201.4bpp.lz"); -const u32 gBattleAnimSpritePalette_201[] = INCBIN_U32("graphics/battle_anims/sprites/201.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_WarmRock[] = INCBIN_U32("graphics/battle_anims/sprites/warm_rock.4bpp.lz"); +const u32 gBattleAnimSpritePalette_WarmRock[] = INCBIN_U32("graphics/battle_anims/sprites/warm_rock.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_204[] = INCBIN_U32("graphics/battle_anims/sprites/204.4bpp.lz"); -const u32 gBattleAnimSpritePalette_204[] = INCBIN_U32("graphics/battle_anims/sprites/204.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PunchImpact[] = INCBIN_U32("graphics/battle_anims/sprites/punch_impact.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PunchImpact[] = INCBIN_U32("graphics/battle_anims/sprites/punch_impact.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_202[] = INCBIN_U32("graphics/battle_anims/sprites/202.4bpp.lz"); -const u32 gBattleAnimSpritePalette_202[] = INCBIN_U32("graphics/battle_anims/sprites/202.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_BreakingEgg[] = INCBIN_U32("graphics/battle_anims/sprites/breaking_egg.4bpp.lz"); +const u32 gBattleAnimSpritePalette_BreakingEgg[] = INCBIN_U32("graphics/battle_anims/sprites/breaking_egg.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_203[] = INCBIN_U32("graphics/battle_anims/sprites/203.4bpp.lz"); -const u32 gBattleAnimSpritePalette_203[] = INCBIN_U32("graphics/battle_anims/sprites/203.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_ThinRing[] = INCBIN_U32("graphics/battle_anims/sprites/thin_ring.4bpp.lz"); +const u32 gBattleAnimSpritePalette_ThinRing[] = INCBIN_U32("graphics/battle_anims/sprites/thin_ring.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_206[] = INCBIN_U32("graphics/battle_anims/sprites/206.4bpp.lz"); -const u32 gBattleAnimSpritePalette_206[] = INCBIN_U32("graphics/battle_anims/sprites/206.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_MusicNotes2[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes_2.4bpp.lz"); +const u32 gBattleAnimSpritePalette_MusicNotes2[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_205[] = INCBIN_U32("graphics/battle_anims/sprites/205.4bpp.lz"); -const u32 gBattleAnimSpritePalette_205[] = INCBIN_U32("graphics/battle_anims/sprites/205.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Bell[] = INCBIN_U32("graphics/battle_anims/sprites/bell.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Bell[] = INCBIN_U32("graphics/battle_anims/sprites/bell.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_207[] = INCBIN_U32("graphics/battle_anims/sprites/207.4bpp.lz"); -const u32 gBattleAnimSpritePalette_207[] = INCBIN_U32("graphics/battle_anims/sprites/207.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SpeedDust[] = INCBIN_U32("graphics/battle_anims/sprites/speed_dust.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SpeedDust[] = INCBIN_U32("graphics/battle_anims/sprites/speed_dust.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_208[] = INCBIN_U32("graphics/battle_anims/sprites/208.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_TornMetal[] = INCBIN_U32("graphics/battle_anims/sprites/torn_metal.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_209[] = INCBIN_U32("graphics/battle_anims/sprites/209.4bpp.lz"); -const u32 gBattleAnimSpritePalette_209[] = INCBIN_U32("graphics/battle_anims/sprites/209.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_ThoughtBubble[] = INCBIN_U32("graphics/battle_anims/sprites/thought_bubble.4bpp.lz"); +const u32 gBattleAnimSpritePalette_ThoughtBubble[] = INCBIN_U32("graphics/battle_anims/sprites/thought_bubble.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_064[] = INCBIN_U32("graphics/battle_anims/sprites/064.4bpp.lz"); -const u32 gBattleAnimSpritePalette_064[] = INCBIN_U32("graphics/battle_anims/sprites/064.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Finger[] = INCBIN_U32("graphics/battle_anims/sprites/finger.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Finger[] = INCBIN_U32("graphics/battle_anims/sprites/finger.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_210[] = INCBIN_U32("graphics/battle_anims/sprites/210.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_MagentaHeart[] = INCBIN_U32("graphics/battle_anims/sprites/magenta_heart.4bpp.lz"); -const u32 gBattleAnimSpritePalette_219[] = INCBIN_U32("graphics/battle_anims/sprites/219.gbapal.lz"); -const u32 gBattleAnimSpritePalette_210[] = INCBIN_U32("graphics/battle_anims/sprites/210.gbapal.lz"); -const u32 gBattleAnimSpritePalette_216[] = INCBIN_U32("graphics/battle_anims/sprites/216.gbapal.lz"); +const u32 gBattleAnimSpritePalette_PinkHeart[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart.gbapal.lz"); +const u32 gBattleAnimSpritePalette_MagentaHeart[] = INCBIN_U32("graphics/battle_anims/sprites/magenta_heart.gbapal.lz"); +const u32 gBattleAnimSpritePalette_RedHeart[] = INCBIN_U32("graphics/battle_anims/sprites/red_heart.gbapal.lz"); const u32 gUnknown_08C232E0[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.4bpp.lz"); const u32 gUnknown_08C23D50[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.gbapal.lz"); const u32 gUnknown_08C23D78[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.bin.lz"); -const u32 gBattleAnimSpriteSheet_217[] = INCBIN_U32("graphics/battle_anims/sprites/217.4bpp.lz"); -const u32 gBattleAnimSpritePalette_217[] = INCBIN_U32("graphics/battle_anims/sprites/217.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_RedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb.4bpp.lz"); +const u32 gBattleAnimSpritePalette_RedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_212[] = INCBIN_U32("graphics/battle_anims/sprites/212.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_211[] = INCBIN_U32("graphics/battle_anims/sprites/211.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_213[] = INCBIN_U32("graphics/battle_anims/sprites/213.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_CircleOfLight[] = INCBIN_U32("graphics/battle_anims/sprites/circle_of_light.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_ElectricOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/electric_orbs.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Electricity[] = INCBIN_U32("graphics/battle_anims/sprites/electricity.4bpp.lz"); -const u32 gBattleAnimSpritePalette_211[] = INCBIN_U32("graphics/battle_anims/sprites/211.gbapal.lz"); +const u32 gBattleAnimSpritePalette_ElectricOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/electric_orbs.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_214[] = INCBIN_U32("graphics/battle_anims/sprites/214.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Finger2[] = INCBIN_U32("graphics/battle_anims/sprites/finger_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_215[] = INCBIN_U32("graphics/battle_anims/sprites/215.4bpp.lz"); -const u32 gBattleAnimSpritePalette_215[] = INCBIN_U32("graphics/battle_anims/sprites/215.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_MovementWaves[] = INCBIN_U32("graphics/battle_anims/sprites/movement_waves.4bpp.lz"); +const u32 gBattleAnimSpritePalette_MovementWaves[] = INCBIN_U32("graphics/battle_anims/sprites/movement_waves.gbapal.lz"); const u32 gUnknown_08C249D0[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face.gbapal.lz"); const u32 gUnknown_08C249F8[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face.4bpp.lz"); -const u32 gBattleAnimSpritePalette_218[] = INCBIN_U32("graphics/battle_anims/sprites/218.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_218[] = INCBIN_U32("graphics/battle_anims/sprites/218.4bpp.lz"); +const u32 gBattleAnimSpritePalette_EyeSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/eye_sparkle.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_EyeSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/eye_sparkle.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_087[] = INCBIN_U32("graphics/battle_anims/sprites/087.4bpp.lz"); -const u32 gBattleAnimSpritePalette_087[] = INCBIN_U32("graphics/battle_anims/sprites/087.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Anger[] = INCBIN_U32("graphics/battle_anims/sprites/anger.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Anger[] = INCBIN_U32("graphics/battle_anims/sprites/anger.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_018[] = INCBIN_U32("graphics/battle_anims/sprites/018.4bpp.lz"); -const u32 gBattleAnimSpritePalette_018[] = INCBIN_U32("graphics/battle_anims/sprites/018.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Conversion[] = INCBIN_U32("graphics/battle_anims/sprites/conversion.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Conversion[] = INCBIN_U32("graphics/battle_anims/sprites/conversion.gbapal.lz"); -const u32 gBattleAnimSpritePalette_220[] = INCBIN_U32("graphics/battle_anims/sprites/220.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_220[] = INCBIN_U32("graphics/battle_anims/sprites/220.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Angel[] = INCBIN_U32("graphics/battle_anims/sprites/angel.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Angel[] = INCBIN_U32("graphics/battle_anims/sprites/angel.4bpp.lz"); -const u32 gBattleAnimSpritePalette_221[] = INCBIN_U32("graphics/battle_anims/sprites/221.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_221[] = INCBIN_U32("graphics/battle_anims/sprites/221.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Devil[] = INCBIN_U32("graphics/battle_anims/sprites/devil.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Devil[] = INCBIN_U32("graphics/battle_anims/sprites/devil.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_222[] = INCBIN_U32("graphics/battle_anims/sprites/222.4bpp.lz"); -const u32 gBattleAnimSpritePalette_222[] = INCBIN_U32("graphics/battle_anims/sprites/222.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Swipe[] = INCBIN_U32("graphics/battle_anims/sprites/swipe.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Swipe[] = INCBIN_U32("graphics/battle_anims/sprites/swipe.gbapal.lz"); -const u32 gBattleAnimSpritePalette_223[] = INCBIN_U32("graphics/battle_anims/sprites/223.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_223[] = INCBIN_U32("graphics/battle_anims/sprites/223.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Roots[] = INCBIN_U32("graphics/battle_anims/sprites/roots.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Roots[] = INCBIN_U32("graphics/battle_anims/sprites/roots.4bpp.lz"); -const u32 gBattleAnimSpritePalette_224[] = INCBIN_U32("graphics/battle_anims/sprites/224.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_224[] = INCBIN_U32("graphics/battle_anims/sprites/224.4bpp.lz"); +const u32 gBattleAnimSpritePalette_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.4bpp.lz"); -const u32 gBattleAnimSpritePalette_230[] = INCBIN_U32("graphics/battle_anims/sprites/230.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_230[] = INCBIN_U32("graphics/battle_anims/sprites/230.4bpp.lz"); +const u32 gBattleAnimSpritePalette_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_force_triangle.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_force_triangle.4bpp.lz"); -const u32 gBattleAnimSpritePalette_228[] = INCBIN_U32("graphics/battle_anims/sprites/228.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_228[] = INCBIN_U32("graphics/battle_anims/sprites/228.4bpp.lz"); +const u32 gBattleAnimSpritePalette_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_04[] = INCBIN_U32("graphics/battle_anims/backgrounds/04.gbapal.lz"); const u32 gBattleAnimBackgroundImage_04[] = INCBIN_U32("graphics/battle_anims/backgrounds/04.4bpp.lz"); @@ -790,39 +790,39 @@ const u32 gBattleAnimBackgroundTilemap_04[] = INCBIN_U32("graphics/battle_anims/ const u32 gBattleAnimBackgroundTilemap_05[] = INCBIN_U32("graphics/battle_anims/backgrounds/05.bin.lz"); const u32 gBattleAnimBackgroundTilemap_06[] = INCBIN_U32("graphics/battle_anims/backgrounds/06.bin.lz"); -const u32 gBattleAnimSpriteSheet_225[] = INCBIN_U32("graphics/battle_anims/sprites/225.4bpp.lz"); -const u32 gBattleAnimSpritePalette_225[] = INCBIN_U32("graphics/battle_anims/sprites/225.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_JaggedMusicNote[] = INCBIN_U32("graphics/battle_anims/sprites/jagged_music_note.4bpp.lz"); +const u32 gBattleAnimSpritePalette_JaggedMusicNote[] = INCBIN_U32("graphics/battle_anims/sprites/jagged_music_note.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_227[] = INCBIN_U32("graphics/battle_anims/sprites/227.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Spotlight[] = INCBIN_U32("graphics/battle_anims/sprites/spotlight.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_226[] = INCBIN_U32("graphics/battle_anims/sprites/226.4bpp.lz"); -const u32 gBattleAnimSpritePalette_226[] = INCBIN_U32("graphics/battle_anims/sprites/226.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Pokeball[] = INCBIN_U32("graphics/battle_anims/sprites/pokeball.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Pokeball[] = INCBIN_U32("graphics/battle_anims/sprites/pokeball.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_229[] = INCBIN_U32("graphics/battle_anims/sprites/229.4bpp.lz"); -const u32 gBattleAnimSpritePalette_229[] = INCBIN_U32("graphics/battle_anims/sprites/229.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_RapidSpin[] = INCBIN_U32("graphics/battle_anims/sprites/rapid_spin.4bpp.lz"); +const u32 gBattleAnimSpritePalette_RapidSpin[] = INCBIN_U32("graphics/battle_anims/sprites/rapid_spin.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_099[] = INCBIN_U32("graphics/battle_anims/sprites/099.4bpp.lz"); -const u32 gBattleAnimSpritePalette_099[] = INCBIN_U32("graphics/battle_anims/sprites/099.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_MilkBottle[] = INCBIN_U32("graphics/battle_anims/sprites/milk_bottle.4bpp.lz"); +const u32 gBattleAnimSpritePalette_MilkBottle[] = INCBIN_U32("graphics/battle_anims/sprites/milk_bottle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_232[] = INCBIN_U32("graphics/battle_anims/sprites/232.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_WispFire[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_fire.4bpp.lz"); -const u32 gBattleAnimSpritePalette_231[] = INCBIN_U32("graphics/battle_anims/sprites/231.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_231[] = INCBIN_U32("graphics/battle_anims/sprites/231.4bpp.lz"); +const u32 gBattleAnimSpritePalette_WispOrb[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_orb.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_WispOrb[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_orb.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_233[] = INCBIN_U32("graphics/battle_anims/sprites/233.4bpp.lz"); -const u32 gBattleAnimSpritePalette_233[] = INCBIN_U32("graphics/battle_anims/sprites/233.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_GoldStars[] = INCBIN_U32("graphics/battle_anims/sprites/gold_stars.4bpp.lz"); +const u32 gBattleAnimSpritePalette_GoldStars[] = INCBIN_U32("graphics/battle_anims/sprites/gold_stars.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_234[] = INCBIN_U32("graphics/battle_anims/sprites/234.4bpp.lz"); -const u32 gBattleAnimSpritePalette_234[] = INCBIN_U32("graphics/battle_anims/sprites/234.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_EclipsingOrb[] = INCBIN_U32("graphics/battle_anims/sprites/eclipsing_orb.4bpp.lz"); +const u32 gBattleAnimSpritePalette_EclipsingOrb[] = INCBIN_U32("graphics/battle_anims/sprites/eclipsing_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_238[] = INCBIN_U32("graphics/battle_anims/sprites/238.4bpp.lz"); -const u32 gBattleAnimSpritePalette_238[] = INCBIN_U32("graphics/battle_anims/sprites/238.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PinkPetal[] = INCBIN_U32("graphics/battle_anims/sprites/pink_petal.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PinkPetal[] = INCBIN_U32("graphics/battle_anims/sprites/pink_petal.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_235[] = INCBIN_U32("graphics/battle_anims/sprites/235.4bpp.lz"); -const u32 gBattleAnimSpritePalette_235[] = INCBIN_U32("graphics/battle_anims/sprites/235.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_GrayOrb[] = INCBIN_U32("graphics/battle_anims/sprites/gray_orb.4bpp.lz"); +const u32 gBattleAnimSpritePalette_GrayOrb[] = INCBIN_U32("graphics/battle_anims/sprites/gray_orb.gbapal.lz"); -const u32 gBattleAnimSpritePalette_236[] = INCBIN_U32("graphics/battle_anims/sprites/236.gbapal.lz"); -const u32 gBattleAnimSpritePalette_237[] = INCBIN_U32("graphics/battle_anims/sprites/237.gbapal.lz"); +const u32 gBattleAnimSpritePalette_BlueOrb[] = INCBIN_U32("graphics/battle_anims/sprites/blue_orb.gbapal.lz"); +const u32 gBattleAnimSpritePalette_RedOrb2[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb_2.gbapal.lz"); const u32 gBattleAnimBackgroundImage_07[] = INCBIN_U32("graphics/battle_anims/backgrounds/07.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_07[] = INCBIN_U32("graphics/battle_anims/backgrounds/07.gbapal.lz"); @@ -859,30 +859,30 @@ const u32 gBattleAnimBackgroundImage_11[] = INCBIN_U32("graphics/battle_anims/ba const u32 gBattleAnimBackgroundPalette_11[] = INCBIN_U32("graphics/battle_anims/backgrounds/11.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_11[] = INCBIN_U32("graphics/battle_anims/backgrounds/11.bin.lz"); -const u32 gBattleAnimSpriteSheet_239[] = INCBIN_U32("graphics/battle_anims/sprites/239.4bpp.lz"); -const u32 gBattleAnimSpritePalette_239[] = INCBIN_U32("graphics/battle_anims/sprites/239.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PainSplit[] = INCBIN_U32("graphics/battle_anims/sprites/pain_split.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PainSplit[] = INCBIN_U32("graphics/battle_anims/sprites/pain_split.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_143[] = INCBIN_U32("graphics/battle_anims/sprites/143.4bpp.lz"); -const u32 gBattleAnimSpritePalette_143[] = INCBIN_U32("graphics/battle_anims/sprites/143.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_HandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/hands_and_feet.4bpp.lz"); +const u32 gBattleAnimSpritePalette_HandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/hands_and_feet.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_240[] = INCBIN_U32("graphics/battle_anims/sprites/240.4bpp.lz"); -const u32 gBattleAnimSpritePalette_240[] = INCBIN_U32("graphics/battle_anims/sprites/240.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Confetti[] = INCBIN_U32("graphics/battle_anims/sprites/confetti.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Confetti[] = INCBIN_U32("graphics/battle_anims/sprites/confetti.gbapal.lz"); const u32 gSubstituteDollPal[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.gbapal.lz"); const u32 gSubstituteDollGfx[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.4bpp.lz"); const u32 gSubstituteDollTilemap[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.bin.lz"); -const u32 gBattleAnimSpriteSheet_241[] = INCBIN_U32("graphics/battle_anims/sprites/241.4bpp.lz"); -const u32 gBattleAnimSpritePalette_241[] = INCBIN_U32("graphics/battle_anims/sprites/241.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.4bpp.lz"); +const u32 gBattleAnimSpritePalette_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.gbapal.lz"); const u32 gContestConfetti_Gfx[] = INCBIN_U32("graphics/misc/confetti.4bpp.lz"); const u32 gContestConfetti_Pal[] = INCBIN_U32("graphics/misc/confetti.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_242[] = INCBIN_U32("graphics/battle_anims/sprites/242.4bpp.lz"); -const u32 gBattleAnimSpritePalette_242[] = INCBIN_U32("graphics/battle_anims/sprites/242.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PinkCloud[] = INCBIN_U32("graphics/battle_anims/sprites/pink_cloud.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PinkCloud[] = INCBIN_U32("graphics/battle_anims/sprites/pink_cloud.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_243[] = INCBIN_U32("graphics/battle_anims/sprites/243.4bpp.lz"); -const u32 gBattleAnimSpritePalette_243[] = INCBIN_U32("graphics/battle_anims/sprites/243.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.gbapal.lz"); const u32 gBattleStatMask_Gfx[] = INCBIN_U32("graphics/battle_anims/masks/stat.4bpp.lz"); const u32 gBattleStatMask1_Tilemap[] = INCBIN_U32("graphics/battle_anims/masks/stat_tilemap_1.bin.lz"); @@ -901,52 +901,52 @@ const u32 gCureBubblesGfx[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbl const u32 gCureBubblesPal[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.gbapal.lz"); const u32 gCureBubblesTilemap[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.bin.lz"); -const u32 gBattleAnimSpritePalette_245[] = INCBIN_U32("graphics/battle_anims/sprites/245.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_245[] = INCBIN_U32("graphics/battle_anims/sprites/245.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PurpleScratch[] = INCBIN_U32("graphics/battle_anims/sprites/purple_scratch.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PurpleScratch[] = INCBIN_U32("graphics/battle_anims/sprites/purple_scratch.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_246[] = INCBIN_U32("graphics/battle_anims/sprites/246.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_PurpleSwipe[] = INCBIN_U32("graphics/battle_anims/sprites/purple_swipe.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_244[] = INCBIN_U32("graphics/battle_anims/sprites/244.4bpp.lz"); -const u32 gBattleAnimSpritePalette_244[] = INCBIN_U32("graphics/battle_anims/sprites/244.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_GuardRing[] = INCBIN_U32("graphics/battle_anims/sprites/guard_ring.4bpp.lz"); +const u32 gBattleAnimSpritePalette_GuardRing[] = INCBIN_U32("graphics/battle_anims/sprites/guard_ring.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_247[] = INCBIN_U32("graphics/battle_anims/sprites/247.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_TagHand[] = INCBIN_U32("graphics/battle_anims/sprites/tag_hand.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_053[] = INCBIN_U32("graphics/battle_anims/sprites/053.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_NoiseLine[] = INCBIN_U32("graphics/battle_anims/sprites/noise_line.4bpp.lz"); const u32 gUnknown_08C2EA50[] = INCBIN_U32("graphics/battle_anims/masks/unknown_C2EA50.4bpp.lz"); const u32 gUnknown_08C2EA9C[] = INCBIN_U32("graphics/battle_anims/masks/unknown_C2EA50.bin.lz"); -const u32 gBattleAnimSpriteSheet_248[] = INCBIN_U32("graphics/battle_anims/sprites/248.4bpp.lz"); -const u32 gBattleAnimSpritePalette_248[] = INCBIN_U32("graphics/battle_anims/sprites/248.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_249[] = INCBIN_U32("graphics/battle_anims/sprites/249.4bpp.lz"); -const u32 gBattleAnimSpritePalette_249[] = INCBIN_U32("graphics/battle_anims/sprites/249.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_HollowOrb[] = INCBIN_U32("graphics/battle_anims/sprites/hollow_orb.4bpp.lz"); +const u32 gBattleAnimSpritePalette_HollowOrb[] = INCBIN_U32("graphics/battle_anims/sprites/hollow_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_250[] = INCBIN_U32("graphics/battle_anims/sprites/250.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_XSign[] = INCBIN_U32("graphics/battle_anims/sprites/x_sign.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_251[] = INCBIN_U32("graphics/battle_anims/sprites/251.4bpp.lz"); -const u32 gBattleAnimSpritePalette_251[] = INCBIN_U32("graphics/battle_anims/sprites/251.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_BluegreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/bluegreen_orb.4bpp.lz"); +const u32 gBattleAnimSpritePalette_BluegreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/bluegreen_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_252[] = INCBIN_U32("graphics/battle_anims/sprites/252.4bpp.lz"); -const u32 gBattleAnimSpritePalette_252[] = INCBIN_U32("graphics/battle_anims/sprites/252.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PawPrint[] = INCBIN_U32("graphics/battle_anims/sprites/paw_print.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PawPrint[] = INCBIN_U32("graphics/battle_anims/sprites/paw_print.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_253[] = INCBIN_U32("graphics/battle_anims/sprites/253.4bpp.lz"); -const u32 gBattleAnimSpritePalette_253[] = INCBIN_U32("graphics/battle_anims/sprites/253.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_PurpleFlame[] = INCBIN_U32("graphics/battle_anims/sprites/purple_flame.4bpp.lz"); +const u32 gBattleAnimSpritePalette_PurpleFlame[] = INCBIN_U32("graphics/battle_anims/sprites/purple_flame.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_254[] = INCBIN_U32("graphics/battle_anims/sprites/254.4bpp.lz"); -const u32 gBattleAnimSpritePalette_254[] = INCBIN_U32("graphics/battle_anims/sprites/254.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_RedBall[] = INCBIN_U32("graphics/battle_anims/sprites/red_ball.4bpp.lz"); +const u32 gBattleAnimSpritePalette_RedBall[] = INCBIN_U32("graphics/battle_anims/sprites/red_ball.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_255[] = INCBIN_U32("graphics/battle_anims/sprites/255.4bpp.lz"); -const u32 gBattleAnimSpritePalette_255[] = INCBIN_U32("graphics/battle_anims/sprites/255.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SmellingsaltEffect[] = INCBIN_U32("graphics/battle_anims/sprites/smellingsalt_effect.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SmellingsaltEffect[] = INCBIN_U32("graphics/battle_anims/sprites/smellingsalt_effect.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_258[] = INCBIN_U32("graphics/battle_anims/sprites/258.4bpp.lz"); -const u32 gBattleAnimSpritePalette_258[] = INCBIN_U32("graphics/battle_anims/sprites/258.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_MagnifyingGlass[] = INCBIN_U32("graphics/battle_anims/sprites/magnifying_glass.4bpp.lz"); +const u32 gBattleAnimSpritePalette_MagnifyingGlass[] = INCBIN_U32("graphics/battle_anims/sprites/magnifying_glass.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_256[] = INCBIN_U32("graphics/battle_anims/sprites/256.4bpp.lz"); -const u32 gBattleAnimSpritePalette_256[] = INCBIN_U32("graphics/battle_anims/sprites/256.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Meteor[] = INCBIN_U32("graphics/battle_anims/sprites/meteor.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Meteor[] = INCBIN_U32("graphics/battle_anims/sprites/meteor.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_257[] = INCBIN_U32("graphics/battle_anims/sprites/257.4bpp.lz"); -const u32 gBattleAnimSpritePalette_257[] = INCBIN_U32("graphics/battle_anims/sprites/257.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.4bpp.lz"); +const u32 gBattleAnimSpritePalette_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.gbapal.lz"); const u32 gUnknownPal_C2F9E0[] = INCBIN_U32("graphics/unknown/unknown_C2F9E0.gbapal.lz"); @@ -1005,58 +1005,58 @@ const u32 gUnknown_08D85A1C[] = INCBIN_U32("graphics/battle_frontier/battle_tile #include "data/graphics/intro_scene.h" -const u32 gBattleAnimSpriteSheet_261[] = INCBIN_U32("graphics/battle_anims/sprites/261.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_FlyingDirt[] = INCBIN_U32("graphics/battle_anims/sprites/flying_dirt.4bpp.lz"); const u32 gUnknown_08D8D410[] = INCBIN_U32("graphics/battle_anims/backgrounds/sandstorm_brew.bin.lz"); const u32 gUnknown_08D8D58C[] = INCBIN_U32("graphics/battle_anims/backgrounds/sandstorm_brew.4bpp.lz"); -const u32 gBattleAnimSpritePalette_261[] = INCBIN_U32("graphics/battle_anims/sprites/261.gbapal.lz"); +const u32 gBattleAnimSpritePalette_FlyingDirt[] = INCBIN_U32("graphics/battle_anims/sprites/flying_dirt.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_260[] = INCBIN_U32("graphics/battle_anims/sprites/260.4bpp.lz"); -const u32 gBattleAnimSpritePalette_260[] = INCBIN_U32("graphics/battle_anims/sprites/260.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_MetalSoundWaves[] = INCBIN_U32("graphics/battle_anims/sprites/metal_sound_waves.4bpp.lz"); +const u32 gBattleAnimSpritePalette_MetalSoundWaves[] = INCBIN_U32("graphics/battle_anims/sprites/metal_sound_waves.gbapal.lz"); const u32 gBattleAnimBackgroundImage_15[] = INCBIN_U32("graphics/battle_anims/backgrounds/15.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_15[] = INCBIN_U32("graphics/battle_anims/backgrounds/15.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_15[] = INCBIN_U32("graphics/battle_anims/backgrounds/15.bin.lz"); -const u32 gBattleAnimSpriteSheet_262[] = INCBIN_U32("graphics/battle_anims/sprites/262.4bpp.lz"); -const u32 gBattleAnimSpritePalette_262[] = INCBIN_U32("graphics/battle_anims/sprites/262.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_IcicleSpear[] = INCBIN_U32("graphics/battle_anims/sprites/icicle_spear.4bpp.lz"); +const u32 gBattleAnimSpritePalette_IcicleSpear[] = INCBIN_U32("graphics/battle_anims/sprites/icicle_spear.gbapal.lz"); const u32 gContestNextTurnGfx[] = INCBIN_U32("graphics/contest/nextturn.4bpp.lz"); const u8 gContestNextTurnNumbersGfx[] = INCBIN_U8("graphics/contest/nextturn_numbers.4bpp"); const u8 gContestNextTurnRandomGfx[] = INCBIN_U8("graphics/contest/nextturn_random.4bpp"); -const u32 gBattleAnimSpriteSheet_264[] = INCBIN_U32("graphics/battle_anims/sprites/264.4bpp.lz"); -const u32 gBattleAnimSpritePalette_264[] = INCBIN_U32("graphics/battle_anims/sprites/264.gbapal.lz"); -const u32 gBattleAnimSpritePalette_265[] = INCBIN_U32("graphics/battle_anims/sprites/265.gbapal.lz"); -const u32 gBattleAnimSpritePalette_067[] = INCBIN_U32("graphics/battle_anims/sprites/067.gbapal.lz"); -const u32 gBattleAnimSpritePalette_068[] = INCBIN_U32("graphics/battle_anims/sprites/068.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_GlowyRedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_red_orb.4bpp.lz"); +const u32 gBattleAnimSpritePalette_GlowyRedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_red_orb.gbapal.lz"); +const u32 gBattleAnimSpritePalette_GlowyGreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_green_orb.gbapal.lz"); +const u32 gBattleAnimSpritePalette_SleepPowder[] = INCBIN_U32("graphics/battle_anims/sprites/sleep_powder.gbapal.lz"); +const u32 gBattleAnimSpritePalette_StunSpore[] = INCBIN_U32("graphics/battle_anims/sprites/stun_spore.gbapal.lz"); const u32 gContestApplauseGfx[] = INCBIN_U32("graphics/contest/applause.4bpp.lz"); const u8 gContestApplauseMeterGfx[] = INCBIN_U8("graphics/contest/applause_meter.4bpp"); const u16 gContestPal[] = INCBIN_U16("graphics/contest/nextturn.gbapal"); -const u32 gBattleAnimSpriteSheet_272[] = INCBIN_U32("graphics/battle_anims/sprites/272.4bpp.lz"); -const u32 gBattleAnimSpritePalette_272[] = INCBIN_U32("graphics/battle_anims/sprites/272.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Splash[] = INCBIN_U32("graphics/battle_anims/sprites/splash.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Splash[] = INCBIN_U32("graphics/battle_anims/sprites/splash.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_273[] = INCBIN_U32("graphics/battle_anims/sprites/273.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_SweatBead[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_bead.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_269[] = INCBIN_U32("graphics/battle_anims/sprites/269.4bpp.lz"); -const u32 gBattleAnimSpritePalette_269[] = INCBIN_U32("graphics/battle_anims/sprites/269.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_RedBrick[] = INCBIN_U32("graphics/battle_anims/sprites/red_brick.4bpp.lz"); +const u32 gBattleAnimSpritePalette_RedBrick[] = INCBIN_U32("graphics/battle_anims/sprites/red_brick.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_274[] = INCBIN_U32("graphics/battle_anims/sprites/274.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_275[] = INCBIN_U32("graphics/battle_anims/sprites/275.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_276[] = INCBIN_U32("graphics/battle_anims/sprites/276.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Gem1[] = INCBIN_U32("graphics/battle_anims/sprites/gem_1.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Gem2[] = INCBIN_U32("graphics/battle_anims/sprites/gem_2.4bpp.lz"); +const u32 gBattleAnimSpriteSheet_Gem3[] = INCBIN_U32("graphics/battle_anims/sprites/gem_3.4bpp.lz"); -const u32 gBattleAnimSpritePalette_274[] = INCBIN_U32("graphics/battle_anims/sprites/274.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Gem1[] = INCBIN_U32("graphics/battle_anims/sprites/gem_1.gbapal.lz"); const u32 gBattleAnimBackgroundImage_17[] = INCBIN_U32("graphics/battle_anims/backgrounds/17.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_17[] = INCBIN_U32("graphics/battle_anims/backgrounds/17.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_17[] = INCBIN_U32("graphics/battle_anims/backgrounds/17.bin.lz"); -const u32 gBattleAnimSpriteSheet_280[] = INCBIN_U32("graphics/battle_anims/sprites/280.4bpp.lz"); -const u32 gBattleAnimSpritePalette_280[] = INCBIN_U32("graphics/battle_anims/sprites/280.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.gbapal.lz"); const u32 gBattleAnimBackgroundImageMuddyWater_Pal[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz"); @@ -1070,7 +1070,7 @@ const u32 gBattleAnimBackgroundImage_02[] = INCBIN_U32("graphics/battle_anims/ba const u32 gBattleAnimBackgroundPalette_02[] = INCBIN_U32("graphics/battle_anims/backgrounds/02.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_02[] = INCBIN_U32("graphics/battle_anims/backgrounds/02.bin.lz"); -const u32 gBattleAnimSpritePalette_287[] = INCBIN_U32("graphics/battle_anims/sprites/287.gbapal.lz"); +const u32 gBattleAnimSpritePalette_WhipHit[] = INCBIN_U32("graphics/battle_anims/sprites/whip_hit.gbapal.lz"); const u32 gBattleAnimBackgroundPalette_24[] = INCBIN_U32("graphics/battle_anims/backgrounds/24.gbapal.lz"); @@ -1085,44 +1085,44 @@ const u32 gBattleAnimBackgroundPalette_16[] = INCBIN_U32("graphics/battle_anims/ const u32 gBattleAnimBackgroundImage_16[] = INCBIN_U32("graphics/battle_anims/backgrounds/16.4bpp.lz"); const u32 gBattleAnimBackgroundTilemap_16[] = INCBIN_U32("graphics/battle_anims/backgrounds/16.bin.lz"); -const u32 gBattleAnimSpritePalette_277[] = INCBIN_U32("graphics/battle_anims/sprites/277.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_277[] = INCBIN_U32("graphics/battle_anims/sprites/277.4bpp.lz"); +const u32 gBattleAnimSpritePalette_SlamHit2[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit_2.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_SlamHit2[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit_2.4bpp.lz"); const u32 gBattleAnimFogTilemap[] = INCBIN_U32("graphics/battle_anims/backgrounds/fog.bin.lz"); -const u32 gBattleAnimSpritePalette_283[] = INCBIN_U32("graphics/battle_anims/sprites/283.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_283[] = INCBIN_U32("graphics/battle_anims/sprites/283.4bpp.lz"); +const u32 gBattleAnimSpritePalette_WeatherBall[] = INCBIN_U32("graphics/battle_anims/sprites/weather_ball.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_WeatherBall[] = INCBIN_U32("graphics/battle_anims/sprites/weather_ball.4bpp.lz"); const u32 gBattleAnimBackgroundTilemap_ScaryFacePlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_player.bin.lz"); const u32 gBattleAnimBackgroundTilemap_ScaryFaceOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_opponent.bin.lz"); const u32 gBattleAnimBackgroundTilemap_ScaryFaceContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_contest.bin.lz"); -const u32 gBattleAnimSpriteSheet_263[] = INCBIN_U32("graphics/battle_anims/sprites/263.4bpp.lz"); -const u32 gBattleAnimSpritePalette_263[] = INCBIN_U32("graphics/battle_anims/sprites/263.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Hail[] = INCBIN_U32("graphics/battle_anims/sprites/hail.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Hail[] = INCBIN_U32("graphics/battle_anims/sprites/hail.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_266[] = INCBIN_U32("graphics/battle_anims/sprites/266.4bpp.lz"); -const u32 gBattleAnimSpritePalette_266[] = INCBIN_U32("graphics/battle_anims/sprites/266.gbapal.lz"); -const u32 gBattleAnimSpritePalette_267[] = INCBIN_U32("graphics/battle_anims/sprites/267.gbapal.lz"); -const u32 gBattleAnimSpritePalette_268[] = INCBIN_U32("graphics/battle_anims/sprites/268.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_GreenSpike[] = INCBIN_U32("graphics/battle_anims/sprites/green_spike.4bpp.lz"); +const u32 gBattleAnimSpritePalette_GreenSpike[] = INCBIN_U32("graphics/battle_anims/sprites/green_spike.gbapal.lz"); +const u32 gBattleAnimSpritePalette_WhiteCircleOfLight[] = INCBIN_U32("graphics/battle_anims/sprites/white_circle_of_light.gbapal.lz"); +const u32 gBattleAnimSpritePalette_GlowyBlueOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_blue_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_278[] = INCBIN_U32("graphics/battle_anims/sprites/278.4bpp.lz"); -const u32 gBattleAnimSpritePalette_278[] = INCBIN_U32("graphics/battle_anims/sprites/278.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Recycle[] = INCBIN_U32("graphics/battle_anims/sprites/recycle.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Recycle[] = INCBIN_U32("graphics/battle_anims/sprites/recycle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_279[] = INCBIN_U32("graphics/battle_anims/sprites/279.4bpp.lz"); -const u32 gBattleAnimSpritePalette_279[] = INCBIN_U32("graphics/battle_anims/sprites/279.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_RedParticles[] = INCBIN_U32("graphics/battle_anims/sprites/red_particles.4bpp.lz"); +const u32 gBattleAnimSpritePalette_RedParticles[] = INCBIN_U32("graphics/battle_anims/sprites/red_particles.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_281[] = INCBIN_U32("graphics/battle_anims/sprites/281.4bpp.lz"); -const u32 gBattleAnimSpritePalette_281[] = INCBIN_U32("graphics/battle_anims/sprites/281.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_DirtMound[] = INCBIN_U32("graphics/battle_anims/sprites/dirt_mound.4bpp.lz"); +const u32 gBattleAnimSpritePalette_DirtMound[] = INCBIN_U32("graphics/battle_anims/sprites/dirt_mound.gbapal.lz"); const u32 gBattleAnimBackgroundImage_21[] = INCBIN_U32("graphics/battle_anims/backgrounds/21.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_21[] = INCBIN_U32("graphics/battle_anims/backgrounds/21.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_21[] = INCBIN_U32("graphics/battle_anims/backgrounds/21.bin.lz"); -const u32 gBattleAnimSpriteSheet_284[] = INCBIN_U32("graphics/battle_anims/sprites/284.4bpp.lz"); -const u32 gBattleAnimSpritePalette_284[] = INCBIN_U32("graphics/battle_anims/sprites/284.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Bird[] = INCBIN_U32("graphics/battle_anims/sprites/bird.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Bird[] = INCBIN_U32("graphics/battle_anims/sprites/bird.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_285[] = INCBIN_U32("graphics/battle_anims/sprites/285.4bpp.lz"); -const u32 gBattleAnimSpritePalette_285[] = INCBIN_U32("graphics/battle_anims/sprites/285.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.4bpp.lz"); +const u32 gBattleAnimSpritePalette_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.gbapal.lz"); const u32 gBattleAnimBackgroundImage_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz"); @@ -1133,10 +1133,10 @@ const u32 gUnknown_08D960D0[] = INCBIN_U32("graphics/unknown/unknown_D960D0.bin. const u32 gUnknown_08D963A4[] = INCBIN_U32("graphics/unknown/unknown_D963A4.bin.lz"); -const u32 gBattleAnimSpritePalette_286[] = INCBIN_U32("graphics/battle_anims/sprites/286.gbapal.lz"); +const u32 gBattleAnimSpritePalette_Slash2[] = INCBIN_U32("graphics/battle_anims/sprites/slash_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_188[] = INCBIN_U32("graphics/battle_anims/sprites/188.4bpp.lz"); -const u32 gBattleAnimSpritePalette_188[] = INCBIN_U32("graphics/battle_anims/sprites/188.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.4bpp.lz"); +const u32 gBattleAnimSpritePalette_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.gbapal.lz"); const u32 gPartyMenuMisc_Gfx[] = INCBIN_U32("graphics/interface/party_menu_misc.4bpp.lz"); const u32 gPartyMenuMisc_Pal[] = INCBIN_U32("graphics/interface/party_menu_misc.gbapal.lz"); @@ -1223,14 +1223,14 @@ const u32 gUnknown_08D9BA44[] = INCBIN_U32("graphics/interface/pokeblock_feeding #include "data/graphics/items.h" #include "data/graphics/decorations.h" -const u32 gBattleAnimSpritePalette_282[] = INCBIN_U32("graphics/battle_anims/sprites/282.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_282[] = INCBIN_U32("graphics/battle_anims/sprites/282.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Shock3[] = INCBIN_U32("graphics/battle_anims/sprites/shock_3.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Shock3[] = INCBIN_U32("graphics/battle_anims/sprites/shock_3.4bpp.lz"); -const u32 gBattleAnimSpritePalette_270[] = INCBIN_U32("graphics/battle_anims/sprites/270.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_270[] = INCBIN_U32("graphics/battle_anims/sprites/270.4bpp.lz"); +const u32 gBattleAnimSpritePalette_WhiteFeather[] = INCBIN_U32("graphics/battle_anims/sprites/white_feather.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_WhiteFeather[] = INCBIN_U32("graphics/battle_anims/sprites/white_feather.4bpp.lz"); -const u32 gBattleAnimSpritePalette_271[] = INCBIN_U32("graphics/battle_anims/sprites/271.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_271[] = INCBIN_U32("graphics/battle_anims/sprites/271.4bpp.lz"); +const u32 gBattleAnimSpritePalette_Sparkle6[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_6.gbapal.lz"); +const u32 gBattleAnimSpriteSheet_Sparkle6[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_6.4bpp.lz"); const u16 gUnknown_08DBA518[] = INCBIN_U16("graphics/misc/cable_car_bg.gbapal"); const u16 gCableCar_Pal[] = INCBIN_U16("graphics/misc/cable_car.gbapal"); diff --git a/src/rock.c b/src/rock.c index 814b1d88b..489ef9f7d 100644 --- a/src/rock.c +++ b/src/rock.c @@ -419,7 +419,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId) sub_80A6B30(&animBg); AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08D8D58C, animBg.tilesOffset); sub_80A6D60(&animBg, gUnknown_08D8D410, 0); - LoadCompressedPalette(gBattleAnimSpritePalette_261, animBg.paletteId * 16, 32); + LoadCompressedPalette(gBattleAnimSpritePalette_FlyingDirt, animBg.paletteId * 16, 32); if (gBattleAnimArgs[0] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) var0 = 1; -- cgit v1.2.3 From 19f151417ee0a8a158747939a850c19419ff65f8 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 6 Apr 2019 16:38:55 +0200 Subject: Rename sprite sheet to sprite gfx --- src/battle_anim.c | 1156 +++++++++++++++++++++---------------------- src/battle_anim_effects_2.c | 2 +- src/battle_anim_special.c | 48 +- src/graphics.c | 1020 +++++++++++++++++++------------------- src/rock.c | 2 +- 5 files changed, 1114 insertions(+), 1114 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index fac07e02e..33eb1dac4 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1126,588 +1126,588 @@ const struct OamData gUnknown_08524B3C = const struct CompressedSpriteSheet gBattleAnimPicTable[] = { - {gBattleAnimSpriteSheet_Bone, 0x0200, ANIM_TAG_BONE}, - {gBattleAnimSpriteSheet_Spark, 0x0300, ANIM_TAG_SPARK}, - {gBattleAnimSpriteSheet_Pencil, 0x0200, ANIM_TAG_PENCIL}, - {gBattleAnimSpriteSheet_AirWave, 0x0100, ANIM_TAG_AIR_WAVE}, - {gBattleAnimSpriteSheet_Orb, 0x0200, ANIM_TAG_ORB}, - {gBattleAnimSpriteSheet_Sword, 0x0400, ANIM_TAG_SWORD}, - {gBattleAnimSpriteSheet_Seed, 0x0180, ANIM_TAG_SEED}, - {gBattleAnimSpriteSheet_Explosion6, 0x0800, ANIM_TAG_EXPLOSION_6}, - {gBattleAnimSpriteSheet_PinkOrb, 0x0020, ANIM_TAG_PINK_ORB}, - {gBattleAnimSpriteSheet_Gust, 0x0400, ANIM_TAG_GUST}, - {gBattleAnimSpriteSheet_IceCube, 0x1200, ANIM_TAG_ICE_CUBE}, - {gBattleAnimSpriteSheet_Spark2, 0x0180, ANIM_TAG_SPARK_2}, - {gBattleAnimSpriteSheet_Orange, 0x0080, ANIM_TAG_ORANGE}, - {gBattleAnimSpriteSheet_YellowBall, 0x0080, ANIM_TAG_YELLOW_BALL}, - {gBattleAnimSpriteSheet_LockOn, 0x0280, ANIM_TAG_LOCK_ON}, - {gBattleAnimSpriteSheet_TiedBag, 0x0080, ANIM_TAG_TIED_BAG}, - {gBattleAnimSpriteSheet_BlackSmoke, 0x0100, ANIM_TAG_BLACK_SMOKE}, - {gBattleAnimSpriteSheet_BlackBall, 0x0020, ANIM_TAG_BLACK_BALL}, - {gBattleAnimSpriteSheet_Conversion, 0x0080, ANIM_TAG_CONVERSION}, - {gBattleAnimSpriteSheet_Glass, 0x0400, ANIM_TAG_GLASS}, - {gBattleAnimSpriteSheet_HornHit, 0x0200, ANIM_TAG_HORN_HIT}, - {gBattleAnimSpriteSheet_Hit, 0x0A00, ANIM_TAG_HIT}, - {gBattleAnimSpriteSheet_Hit, 0x0A00, ANIM_TAG_HIT_2}, - {gBattleAnimSpriteSheet_BlueShards, 0x0380, ANIM_TAG_BLUE_SHARDS}, - {gBattleAnimSpriteSheet_ClosingEye, 0x0300, ANIM_TAG_CLOSING_EYE}, - {gBattleAnimSpriteSheet_WavingHand, 0x0A00, ANIM_TAG_WAVING_HAND}, - {gBattleAnimSpriteSheet_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, - {gBattleAnimSpriteSheet_Leer, 0x0A00, ANIM_TAG_LEER}, - {gBattleAnimSpriteSheet_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST}, - {gBattleAnimSpriteSheet_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER}, - {gBattleAnimSpriteSheet_GraySmoke, 0x0A00, ANIM_TAG_GRAY_SMOKE}, - {gBattleAnimSpriteSheet_BlueStar, 0x0E00, ANIM_TAG_BLUE_STAR}, - {gBattleAnimSpriteSheet_BubbleBurst, 0x0380, ANIM_TAG_BUBBLE_BURST}, - {gBattleAnimSpriteSheet_Fire, 0x1000, ANIM_TAG_FIRE}, - {gBattleAnimSpriteSheet_SpinningFire, 0x0800, ANIM_TAG_SPINNING_FIRE}, - {gBattleAnimSpriteSheet_FirePlume, 0x0A00, ANIM_TAG_FIRE_PLUME}, - {gBattleAnimSpriteSheet_Lightning2, 0x0800, ANIM_TAG_LIGHTNING_2}, - {gBattleAnimSpriteSheet_Lightning, 0x0A00, ANIM_TAG_LIGHTNING}, - {gBattleAnimSpriteSheet_ClawSlash2, 0x0A00, ANIM_TAG_CLAW_SLASH_2}, - {gBattleAnimSpriteSheet_ClawSlash, 0x0A00, ANIM_TAG_CLAW_SLASH}, - {gBattleAnimSpriteSheet_Scratch3, 0x0A00, ANIM_TAG_SCRATCH_3}, - {gBattleAnimSpriteSheet_Scratch2, 0x0A00, ANIM_TAG_SCRATCH_2}, - {gBattleAnimSpriteSheet_BubbleBurst2, 0x0A00, ANIM_TAG_BUBBLE_BURST_2}, - {gBattleAnimSpriteSheet_IceChunk, 0x0A00, ANIM_TAG_ICE_CHUNK}, - {gBattleAnimSpriteSheet_Glass2, 0x0A00, ANIM_TAG_GLASS_2}, - {gBattleAnimSpriteSheet_PinkHeart2, 0x0A00, ANIM_TAG_PINK_HEART_2}, - {gBattleAnimSpriteSheet_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpriteSheet_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP_2}, - {gBattleAnimSpriteSheet_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_1}, - {gBattleAnimSpriteSheet_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_2}, - {gBattleAnimSpriteSheet_HumanoidFoot, 0x0200, ANIM_TAG_HUMANOID_FOOT}, - {gBattleAnimSpriteSheet_MonsterFoot, 0x0200, ANIM_TAG_MONSTER_FOOT}, - {gBattleAnimSpriteSheet_HumanoidHand, 0x0200, ANIM_TAG_HUMANOID_HAND}, - {gBattleAnimSpriteSheet_NoiseLine, 0x0800, ANIM_TAG_NOISE_LINE}, - {gBattleAnimSpriteSheet_YellowUnk, 0x0080, ANIM_TAG_YELLOW_UNK}, - {gBattleAnimSpriteSheet_RedFist, 0x0200, ANIM_TAG_RED_FIST}, - {gBattleAnimSpriteSheet_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT}, - {gBattleAnimSpriteSheet_Ring, 0x0180, ANIM_TAG_RING}, - {gBattleAnimSpriteSheet_Rocks, 0x0C00, ANIM_TAG_ROCKS}, - {gBattleAnimSpriteSheet_Z, 0x0100, ANIM_TAG_Z}, - {gBattleAnimSpriteSheet_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2}, - {gBattleAnimSpriteSheet_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH}, - {gBattleAnimSpriteSheet_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, - {gBattleAnimSpriteSheet_Leaf, 0x0480, ANIM_TAG_LEAF}, - {gBattleAnimSpriteSheet_Finger, 0x0200, ANIM_TAG_FINGER}, - {gBattleAnimSpriteSheet_PoisonPowder, 0x0200, ANIM_TAG_POISON_POWDER}, - {gBattleAnimSpriteSheet_BrownTriangle, 0x0100, ANIM_TAG_BROWN_TRIANGLE}, - {gBattleAnimSpriteSheet_PoisonPowder, 0x0200, ANIM_TAG_SLEEP_POWDER}, - {gBattleAnimSpriteSheet_PoisonPowder, 0x0200, ANIM_TAG_STUN_SPORE}, - {gBattleAnimSpriteSheet_PoisonPowder, 0x0200, ANIM_TAG_POWDER}, - {gBattleAnimSpriteSheet_Sparkle3, 0x0200, ANIM_TAG_SPARKLE_3}, - {gBattleAnimSpriteSheet_Sparkle4, 0x0A00, ANIM_TAG_SPARKLE_4}, - {gBattleAnimSpriteSheet_MusicNotes, 0x0300, ANIM_TAG_MUSIC_NOTES}, - {gBattleAnimSpriteSheet_Duck, 0x0180, ANIM_TAG_DUCK}, - {gBattleAnimSpriteSheet_MudSand, 0x00A0, ANIM_TAG_MUD_SAND}, - {gBattleAnimSpriteSheet_Alert, 0x0700, ANIM_TAG_ALERT}, - {gBattleAnimSpriteSheet_BlueFlames, 0x0400, ANIM_TAG_BLUE_FLAMES}, - {gBattleAnimSpriteSheet_BlueFlames2, 0x0200, ANIM_TAG_BLUE_FLAMES_2}, - {gBattleAnimSpriteSheet_Shock4, 0x0300, ANIM_TAG_SHOCK_4}, - {gBattleAnimSpriteSheet_Shock, 0x0C00, ANIM_TAG_SHOCK}, - {gBattleAnimSpriteSheet_Bell2, 0x0A00, ANIM_TAG_BELL_2}, - {gBattleAnimSpriteSheet_PinkGlove, 0x0080, ANIM_TAG_PINK_GLOVE}, - {gBattleAnimSpriteSheet_BlueLines, 0x0040, ANIM_TAG_BLUE_LINES}, - {gBattleAnimSpriteSheet_Impact3, 0x0E00, ANIM_TAG_IMPACT_3}, - {gBattleAnimSpriteSheet_Impact2, 0x0E00, ANIM_TAG_IMPACT_2}, - {gBattleAnimSpriteSheet_Reticle, 0x0280, ANIM_TAG_RETICLE}, - {gBattleAnimSpriteSheet_Breath, 0x0200, ANIM_TAG_BREATH}, - {gBattleAnimSpriteSheet_Anger, 0x0080, ANIM_TAG_ANGER}, - {gBattleAnimSpriteSheet_Snowball, 0x00C0, ANIM_TAG_SNOWBALL}, - {gBattleAnimSpriteSheet_Vine, 0x0A00, ANIM_TAG_VINE}, - {gBattleAnimSpriteSheet_Sword2, 0x0200, ANIM_TAG_SWORD_2}, - {gBattleAnimSpriteSheet_Clapping, 0x0180, ANIM_TAG_CLAPPING}, - {gBattleAnimSpriteSheet_RedTube, 0x0080, ANIM_TAG_RED_TUBE}, - {gBattleAnimSpriteSheet_Amnesia, 0x1000, ANIM_TAG_AMNESIA}, - {gBattleAnimSpriteSheet_String2, 0x0A00, ANIM_TAG_STRING_2}, - {gBattleAnimSpriteSheet_Pencil2, 0x0180, ANIM_TAG_PENCIL_2}, - {gBattleAnimSpriteSheet_Petal, 0x0380, ANIM_TAG_PETAL}, - {gBattleAnimSpriteSheet_BentSpoon, 0x0C00, ANIM_TAG_BENT_SPOON}, - {gBattleAnimSpriteSheet_Web, 0x0200, ANIM_TAG_WEB}, - {gBattleAnimSpriteSheet_MilkBottle, 0x0200, ANIM_TAG_MILK_BOTTLE}, - {gBattleAnimSpriteSheet_Coin, 0x0200, ANIM_TAG_COIN}, - {gBattleAnimSpriteSheet_CrackedEgg, 0x0200, ANIM_TAG_CRACKED_EGG}, - {gBattleAnimSpriteSheet_HatchedEgg, 0x0400, ANIM_TAG_HATCHED_EGG}, - {gBattleAnimSpriteSheet_FreshEgg, 0x0080, ANIM_TAG_FRESH_EGG}, - {gBattleAnimSpriteSheet_Fangs, 0x0400, ANIM_TAG_FANGS}, - {gBattleAnimSpriteSheet_Explosion2, 0x0c00, ANIM_TAG_EXPLOSION_2}, - {gBattleAnimSpriteSheet_Explosion3, 0x0200, ANIM_TAG_EXPLOSION_3}, - {gBattleAnimSpriteSheet_WaterDroplet, 0x1000, ANIM_TAG_WATER_DROPLET}, - {gBattleAnimSpriteSheet_WaterDroplet2, 0x0a00, ANIM_TAG_WATER_DROPLET_2}, - {gBattleAnimSpriteSheet_Seed2, 0x0020, ANIM_TAG_SEED_2}, - {gBattleAnimSpriteSheet_Sprout, 0x0e00, ANIM_TAG_SPROUT}, - {gBattleAnimSpriteSheet_RedWand, 0x0080, ANIM_TAG_RED_WAND}, - {gBattleAnimSpriteSheet_PurpleGreenUnk, 0x0a00, ANIM_TAG_PURPLE_GREEN_UNK}, - {gBattleAnimSpriteSheet_WaterColumn, 0x0400, ANIM_TAG_WATER_COLUMN}, - {gBattleAnimSpriteSheet_MudUnk, 0x0200, ANIM_TAG_MUD_UNK}, - {gBattleAnimSpriteSheet_RainDrops, 0x0700, ANIM_TAG_RAIN_DROPS}, - {gBattleAnimSpriteSheet_FurySwipes, 0x0800, ANIM_TAG_FURY_SWIPES}, - {gBattleAnimSpriteSheet_Vine2, 0x0a00, ANIM_TAG_VINE_2}, - {gBattleAnimSpriteSheet_Teeth, 0x0600, ANIM_TAG_TEETH}, - {gBattleAnimSpriteSheet_Bone2, 0x0800, ANIM_TAG_BONE_2}, - {gBattleAnimSpriteSheet_WhiteBag, 0x0200, ANIM_TAG_WHITE_BAG}, - {gBattleAnimSpriteSheet_Unknown, 0x0040, ANIM_TAG_UNKNOWN}, - {gBattleAnimSpriteSheet_PurpleCoral, 0x0180, ANIM_TAG_PURPLE_CORAL}, - {gBattleAnimSpriteSheet_PurpleDroplet, 0x0600, ANIM_TAG_PURPLE_DROPLET}, - {gBattleAnimSpriteSheet_Shock2, 0x0600, ANIM_TAG_SHOCK_2}, - {gBattleAnimSpriteSheet_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2}, - {gBattleAnimSpriteSheet_MetalBall, 0x0080, ANIM_TAG_METAL_BALL}, - {gBattleAnimSpriteSheet_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL}, - {gBattleAnimSpriteSheet_Whirlwind, 0x0800, ANIM_TAG_WHIRLWIND}, - {gBattleAnimSpriteSheet_Whirlwind2, 0x0080, ANIM_TAG_WHIRLWIND_2}, - {gBattleAnimSpriteSheet_Explosion4, 0x0a00, ANIM_TAG_EXPLOSION_4}, - {gBattleAnimSpriteSheet_Explosion5, 0x0280, ANIM_TAG_EXPLOSION_5}, - {gBattleAnimSpriteSheet_Tongue, 0x0280, ANIM_TAG_TONGUE}, - {gBattleAnimSpriteSheet_Smoke, 0x0100, ANIM_TAG_SMOKE}, - {gBattleAnimSpriteSheet_Smoke2, 0x0200, ANIM_TAG_SMOKE_2}, - {gBattleAnimSpriteSheet_Impact, 0x0200, ANIM_TAG_IMPACT}, - {gBattleAnimSpriteSheet_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, - {gBattleAnimSpriteSheet_Scratch, 0x0a00, ANIM_TAG_SCRATCH}, - {gBattleAnimSpriteSheet_Cut, 0x0800, ANIM_TAG_CUT}, - {gBattleAnimSpriteSheet_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, - {gBattleAnimSpriteSheet_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, - {gBattleAnimSpriteSheet_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, - {gBattleAnimSpriteSheet_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES}, - {gBattleAnimSpriteSheet_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, - {gBattleAnimSpriteSheet_MistCloud, 0x0200, ANIM_TAG_MIST_CLOUD}, - {gBattleAnimSpriteSheet_Clamp, 0x0800, ANIM_TAG_CLAMP}, - {gBattleAnimSpriteSheet_Bubble, 0x0180, ANIM_TAG_BUBBLE}, - {gBattleAnimSpriteSheet_Orbs, 0x0180, ANIM_TAG_ORBS}, - {gBattleAnimSpriteSheet_WaterImpact, 0x0200, ANIM_TAG_WATER_IMPACT}, - {gBattleAnimSpriteSheet_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB}, - {gBattleAnimSpriteSheet_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE}, - {gBattleAnimSpriteSheet_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, - {gBattleAnimSpriteSheet_Spikes, 0x0080, ANIM_TAG_SPIKES}, - {gBattleAnimSpriteSheet_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2}, - {gBattleAnimSpriteSheet_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2}, - {gBattleAnimSpriteSheet_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES}, - {gBattleAnimSpriteSheet_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW}, - {gBattleAnimSpriteSheet_Sunlight, 0x0200, ANIM_TAG_SUNLIGHT}, - {gBattleAnimSpriteSheet_Spore, 0x0100, ANIM_TAG_SPORE}, - {gBattleAnimSpriteSheet_Flower, 0x00a0, ANIM_TAG_FLOWER}, - {gBattleAnimSpriteSheet_RazorLeaf, 0x0100, ANIM_TAG_RAZOR_LEAF}, - {gBattleAnimSpriteSheet_Needle, 0x0080, ANIM_TAG_NEEDLE}, - {gBattleAnimSpriteSheet_WhirlwindLines, 0x0300, ANIM_TAG_WHIRLWIND_LINES}, - {gBattleAnimSpriteSheet_GoldRing, 0x0100, ANIM_TAG_GOLD_RING}, - {gBattleAnimSpriteSheet_GoldRing, 0x0100, ANIM_TAG_PURPLE_RING}, - {gBattleAnimSpriteSheet_GoldRing, 0x0100, ANIM_TAG_BLUE_RING}, - {gBattleAnimSpriteSheet_GreenLightWall, 0x0800, ANIM_TAG_GREEN_LIGHT_WALL}, - {gBattleAnimSpriteSheet_GreenLightWall, 0x0800, ANIM_TAG_BLUE_LIGHT_WALL}, - {gBattleAnimSpriteSheet_GreenLightWall, 0x0800, ANIM_TAG_RED_LIGHT_WALL}, - {gBattleAnimSpriteSheet_GreenLightWall, 0x0800, ANIM_TAG_GRAY_LIGHT_WALL}, - {gBattleAnimSpriteSheet_GreenLightWall, 0x0800, ANIM_TAG_ORANGE_LIGHT_WALL}, - {gBattleAnimSpriteSheet_BlackBall2, 0x0080, ANIM_TAG_BLACK_BALL_2}, - {gBattleAnimSpriteSheet_MistCloud, 0x0200, ANIM_TAG_PURPLE_GAS_CLOUD}, - {gBattleAnimSpriteSheet_SparkH, 0x0200, ANIM_TAG_SPARK_H}, - {gBattleAnimSpriteSheet_YellowStar, 0x0200, ANIM_TAG_YELLOW_STAR}, - {gBattleAnimSpriteSheet_LargeFreshEgg, 0x0080, ANIM_TAG_LARGE_FRESH_EGG}, - {gBattleAnimSpriteSheet_ShadowBall, 0x0200, ANIM_TAG_SHADOW_BALL}, - {gBattleAnimSpriteSheet_Lick, 0x0500, ANIM_TAG_LICK}, - {gBattleAnimSpriteSheet_VoidLines, 0x0800, ANIM_TAG_VOID_LINES}, - {gBattleAnimSpriteSheet_String, 0x0400, ANIM_TAG_STRING}, - {gBattleAnimSpriteSheet_WebThread, 0x0020, ANIM_TAG_WEB_THREAD}, - {gBattleAnimSpriteSheet_SpiderWeb, 0x0800, ANIM_TAG_SPIDER_WEB}, - {gBattleAnimSpriteSheet_Lightbulb, 0x0100, ANIM_TAG_LIGHTBULB}, - {gBattleAnimSpriteSheet_Slash, 0x0800, ANIM_TAG_SLASH}, - {gBattleAnimSpriteSheet_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY}, - {gBattleAnimSpriteSheet_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, - {gBattleAnimSpriteSheet_Tendrils, 0x1000, ANIM_TAG_TENDRILS}, - {gBattleAnimSpriteSheet_Eye, 0x0800, ANIM_TAG_EYE}, - {gBattleAnimSpriteSheet_WhiteShadow, 0x0400, ANIM_TAG_WHITE_SHADOW}, - {gBattleAnimSpriteSheet_TealAlert, 0x0200, ANIM_TAG_TEAL_ALERT}, - {gBattleAnimSpriteSheet_OpeningEye, 0x0800, ANIM_TAG_OPENING_EYE}, - {gBattleAnimSpriteSheet_RoundWhiteHalo, 0x0800, ANIM_TAG_ROUND_WHITE_HALO}, - {gBattleAnimSpriteSheet_FangAttack, 0x0800, ANIM_TAG_FANG_ATTACK}, - {gBattleAnimSpriteSheet_PurpleHandOutline, 0x0200, ANIM_TAG_PURPLE_HAND_OUTLINE}, - {gBattleAnimSpriteSheet_Moon, 0x0800, ANIM_TAG_MOON}, - {gBattleAnimSpriteSheet_GreenSparkle, 0x0200, ANIM_TAG_GREEN_SPARKLE}, - {gBattleAnimSpriteSheet_Spiral, 0x0800, ANIM_TAG_SPIRAL}, - {gBattleAnimSpriteSheet_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z}, - {gBattleAnimSpriteSheet_Explosion, 0x0800, ANIM_TAG_EXPLOSION}, - {gBattleAnimSpriteSheet_Nail, 0x0400, ANIM_TAG_NAIL}, - {gBattleAnimSpriteSheet_GhostlySpirit, 0x0200, ANIM_TAG_GHOSTLY_SPIRIT}, - {gBattleAnimSpriteSheet_WarmRock, 0x0a80, ANIM_TAG_WARM_ROCK}, - {gBattleAnimSpriteSheet_BreakingEgg, 0x0600, ANIM_TAG_BREAKING_EGG}, - {gBattleAnimSpriteSheet_ThinRing, 0x0800, ANIM_TAG_THIN_RING}, - {gBattleAnimSpriteSheet_PunchImpact, 0x0200, ANIM_TAG_PUNCH_IMPACT}, - {gBattleAnimSpriteSheet_Bell, 0x0600, ANIM_TAG_BELL}, - {gBattleAnimSpriteSheet_MusicNotes2, 0x0800, ANIM_TAG_MUSIC_NOTES_2}, - {gBattleAnimSpriteSheet_SpeedDust, 0x0180, ANIM_TAG_SPEED_DUST}, - {gBattleAnimSpriteSheet_TornMetal, 0x0800, ANIM_TAG_TORN_METAL}, - {gBattleAnimSpriteSheet_ThoughtBubble, 0x0800, ANIM_TAG_THOUGHT_BUBBLE}, - {gBattleAnimSpriteSheet_MagentaHeart, 0x0080, ANIM_TAG_MAGENTA_HEART}, - {gBattleAnimSpriteSheet_ElectricOrbs, 0x0080, ANIM_TAG_ELECTRIC_ORBS}, - {gBattleAnimSpriteSheet_CircleOfLight, 0x0800, ANIM_TAG_CIRCLE_OF_LIGHT}, - {gBattleAnimSpriteSheet_Electricity, 0x0800, ANIM_TAG_ELECTRICITY}, - {gBattleAnimSpriteSheet_Finger2, 0x0600, ANIM_TAG_FINGER_2}, - {gBattleAnimSpriteSheet_MovementWaves, 0x0600, ANIM_TAG_MOVEMENT_WAVES}, - {gBattleAnimSpriteSheet_MagentaHeart, 0x0080, ANIM_TAG_RED_HEART}, - {gBattleAnimSpriteSheet_RedOrb, 0x0080, ANIM_TAG_RED_ORB}, - {gBattleAnimSpriteSheet_EyeSparkle, 0x0180, ANIM_TAG_EYE_SPARKLE}, - {gBattleAnimSpriteSheet_MagentaHeart, 0x0080, ANIM_TAG_PINK_HEART}, - {gBattleAnimSpriteSheet_Angel, 0x0200, ANIM_TAG_ANGEL}, - {gBattleAnimSpriteSheet_Devil, 0x0400, ANIM_TAG_DEVIL}, - {gBattleAnimSpriteSheet_Swipe, 0x0a00, ANIM_TAG_SWIPE}, - {gBattleAnimSpriteSheet_Roots, 0x0800, ANIM_TAG_ROOTS}, - {gBattleAnimSpriteSheet_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG}, - {gBattleAnimSpriteSheet_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, - {gBattleAnimSpriteSheet_Pokeball, 0x0080, ANIM_TAG_POKEBALL}, - {gBattleAnimSpriteSheet_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, - {gBattleAnimSpriteSheet_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, - {gBattleAnimSpriteSheet_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpriteSheet_TriForceTriangle, 0x0800, ANIM_TAG_TRI_FORCE_TRIANGLE}, - {gBattleAnimSpriteSheet_WispOrb, 0x0380, ANIM_TAG_WISP_ORB}, - {gBattleAnimSpriteSheet_WispFire, 0x0800, ANIM_TAG_WISP_FIRE}, - {gBattleAnimSpriteSheet_GoldStars, 0x00c0, ANIM_TAG_GOLD_STARS}, - {gBattleAnimSpriteSheet_EclipsingOrb, 0x0800, ANIM_TAG_ECLIPSING_ORB}, - {gBattleAnimSpriteSheet_GrayOrb, 0x0060, ANIM_TAG_GRAY_ORB}, - {gBattleAnimSpriteSheet_GrayOrb, 0x0060, ANIM_TAG_BLUE_ORB}, - {gBattleAnimSpriteSheet_GrayOrb, 0x0060, ANIM_TAG_RED_ORB_2}, - {gBattleAnimSpriteSheet_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL}, - {gBattleAnimSpriteSheet_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT}, - {gBattleAnimSpriteSheet_Confetti, 0x0180, ANIM_TAG_CONFETTI}, - {gBattleAnimSpriteSheet_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, - {gBattleAnimSpriteSheet_PinkCloud, 0x0200, ANIM_TAG_PINK_CLOUD}, - {gBattleAnimSpriteSheet_SweatDrop, 0x0020, ANIM_TAG_SWEAT_DROP}, - {gBattleAnimSpriteSheet_GuardRing, 0x0400, ANIM_TAG_GUARD_RING}, - {gBattleAnimSpriteSheet_PurpleScratch, 0x0600, ANIM_TAG_PURPLE_SCRATCH}, - {gBattleAnimSpriteSheet_PurpleSwipe, 0x1000, ANIM_TAG_PURPLE_SWIPE}, - {gBattleAnimSpriteSheet_TagHand, 0x0400, ANIM_TAG_TAG_HAND}, - {gBattleAnimSpriteSheet_SmallRedEye, 0x0020, ANIM_TAG_SMALL_RED_EYE}, - {gBattleAnimSpriteSheet_HollowOrb, 0x0080, ANIM_TAG_HOLLOW_ORB}, - {gBattleAnimSpriteSheet_XSign, 0x0800, ANIM_TAG_X_SIGN}, - {gBattleAnimSpriteSheet_BluegreenOrb, 0x0080, ANIM_TAG_BLUEGREEN_ORB}, - {gBattleAnimSpriteSheet_PawPrint, 0x0200, ANIM_TAG_PAW_PRINT}, - {gBattleAnimSpriteSheet_PurpleFlame, 0x0400, ANIM_TAG_PURPLE_FLAME}, - {gBattleAnimSpriteSheet_RedBall, 0x0200, ANIM_TAG_RED_BALL}, - {gBattleAnimSpriteSheet_SmellingsaltEffect, 0x0200, ANIM_TAG_SMELLINGSALT_EFFECT}, - {gBattleAnimSpriteSheet_Meteor, 0x0800, ANIM_TAG_METEOR}, - {gBattleAnimSpriteSheet_FlatRock, 0x0280, ANIM_TAG_FLAT_ROCK}, - {gBattleAnimSpriteSheet_MagnifyingGlass, 0x0200, ANIM_TAG_MAGNIFYING_GLASS}, - {gBattleAnimSpriteSheet_WaterOrb, 0x0200, ANIM_TAG_BROWN_ORB}, - {gBattleAnimSpriteSheet_MetalSoundWaves, 0x0400, ANIM_TAG_METAL_SOUND_WAVES}, - {gBattleAnimSpriteSheet_FlyingDirt, 0x0200, ANIM_TAG_FLYING_DIRT}, - {gBattleAnimSpriteSheet_IcicleSpear, 0x0200, ANIM_TAG_ICICLE_SPEAR}, - {gBattleAnimSpriteSheet_Hail, 0x0080, ANIM_TAG_HAIL}, - {gBattleAnimSpriteSheet_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_RED_ORB}, - {gBattleAnimSpriteSheet_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_GREEN_ORB}, - {gBattleAnimSpriteSheet_GreenSpike, 0x0080, ANIM_TAG_GREEN_SPIKE}, - {gBattleAnimSpriteSheet_CircleOfLight, 0x0800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, - {gBattleAnimSpriteSheet_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpriteSheet_RedBrick, 0x0080, ANIM_TAG_RED_BRICK}, - {gBattleAnimSpriteSheet_WhiteFeather, 0x0400, ANIM_TAG_WHITE_FEATHER}, - {gBattleAnimSpriteSheet_Sparkle6, 0x0080, ANIM_TAG_SPARKLE_6}, - {gBattleAnimSpriteSheet_Splash, 0x0800, ANIM_TAG_SPLASH}, - {gBattleAnimSpriteSheet_SweatBead, 0x0020, ANIM_TAG_SWEAT_BEAD}, - {gBattleAnimSpriteSheet_Gem1, 0x0800, ANIM_TAG_GEM_1}, - {gBattleAnimSpriteSheet_Gem2, 0x0800, ANIM_TAG_GEM_2}, - {gBattleAnimSpriteSheet_Gem3, 0x0800, ANIM_TAG_GEM_3}, - {gBattleAnimSpriteSheet_SlamHit2, 0x1000, ANIM_TAG_SLAM_HIT_2}, - {gBattleAnimSpriteSheet_Recycle, 0x0800, ANIM_TAG_RECYCLE}, - {gBattleAnimSpriteSheet_RedParticles, 0x00a0, ANIM_TAG_RED_PARTICLES}, - {gBattleAnimSpriteSheet_Protect, 0x0800, ANIM_TAG_PROTECT}, - {gBattleAnimSpriteSheet_DirtMound, 0x0200, ANIM_TAG_DIRT_MOUND}, - {gBattleAnimSpriteSheet_Shock3, 0x0600, ANIM_TAG_SHOCK_3}, - {gBattleAnimSpriteSheet_WeatherBall, 0x0200, ANIM_TAG_WEATHER_BALL}, - {gBattleAnimSpriteSheet_Bird, 0x0800, ANIM_TAG_BIRD}, - {gBattleAnimSpriteSheet_CrossImpact, 0x0200, ANIM_TAG_CROSS_IMPACT}, - {gBattleAnimSpriteSheet_Slash, 0x0800, ANIM_TAG_SLASH_2}, - {gBattleAnimSpriteSheet_SlamHit, 0x1000, ANIM_TAG_WHIP_HIT}, - {gBattleAnimSpriteSheet_GoldRing, 0x0100, ANIM_TAG_BLUE_RING_2}, + {gBattleAnimSpriteGfx_Bone, 0x0200, ANIM_TAG_BONE}, + {gBattleAnimSpriteGfx_Spark, 0x0300, ANIM_TAG_SPARK}, + {gBattleAnimSpriteGfx_Pencil, 0x0200, ANIM_TAG_PENCIL}, + {gBattleAnimSpriteGfx_AirWave, 0x0100, ANIM_TAG_AIR_WAVE}, + {gBattleAnimSpriteGfx_Orb, 0x0200, ANIM_TAG_ORB}, + {gBattleAnimSpriteGfx_Sword, 0x0400, ANIM_TAG_SWORD}, + {gBattleAnimSpriteGfx_Seed, 0x0180, ANIM_TAG_SEED}, + {gBattleAnimSpriteGfx_Explosion6, 0x0800, ANIM_TAG_EXPLOSION_6}, + {gBattleAnimSpriteGfx_PinkOrb, 0x0020, ANIM_TAG_PINK_ORB}, + {gBattleAnimSpriteGfx_Gust, 0x0400, ANIM_TAG_GUST}, + {gBattleAnimSpriteGfx_IceCube, 0x1200, ANIM_TAG_ICE_CUBE}, + {gBattleAnimSpriteGfx_Spark2, 0x0180, ANIM_TAG_SPARK_2}, + {gBattleAnimSpriteGfx_Orange, 0x0080, ANIM_TAG_ORANGE}, + {gBattleAnimSpriteGfx_YellowBall, 0x0080, ANIM_TAG_YELLOW_BALL}, + {gBattleAnimSpriteGfx_LockOn, 0x0280, ANIM_TAG_LOCK_ON}, + {gBattleAnimSpriteGfx_TiedBag, 0x0080, ANIM_TAG_TIED_BAG}, + {gBattleAnimSpriteGfx_BlackSmoke, 0x0100, ANIM_TAG_BLACK_SMOKE}, + {gBattleAnimSpriteGfx_BlackBall, 0x0020, ANIM_TAG_BLACK_BALL}, + {gBattleAnimSpriteGfx_Conversion, 0x0080, ANIM_TAG_CONVERSION}, + {gBattleAnimSpriteGfx_Glass, 0x0400, ANIM_TAG_GLASS}, + {gBattleAnimSpriteGfx_HornHit, 0x0200, ANIM_TAG_HORN_HIT}, + {gBattleAnimSpriteGfx_Hit, 0x0A00, ANIM_TAG_HIT}, + {gBattleAnimSpriteGfx_Hit, 0x0A00, ANIM_TAG_HIT_2}, + {gBattleAnimSpriteGfx_BlueShards, 0x0380, ANIM_TAG_BLUE_SHARDS}, + {gBattleAnimSpriteGfx_ClosingEye, 0x0300, ANIM_TAG_CLOSING_EYE}, + {gBattleAnimSpriteGfx_WavingHand, 0x0A00, ANIM_TAG_WAVING_HAND}, + {gBattleAnimSpriteGfx_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, + {gBattleAnimSpriteGfx_Leer, 0x0A00, ANIM_TAG_LEER}, + {gBattleAnimSpriteGfx_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST}, + {gBattleAnimSpriteGfx_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER}, + {gBattleAnimSpriteGfx_GraySmoke, 0x0A00, ANIM_TAG_GRAY_SMOKE}, + {gBattleAnimSpriteGfx_BlueStar, 0x0E00, ANIM_TAG_BLUE_STAR}, + {gBattleAnimSpriteGfx_BubbleBurst, 0x0380, ANIM_TAG_BUBBLE_BURST}, + {gBattleAnimSpriteGfx_Fire, 0x1000, ANIM_TAG_FIRE}, + {gBattleAnimSpriteGfx_SpinningFire, 0x0800, ANIM_TAG_SPINNING_FIRE}, + {gBattleAnimSpriteGfx_FirePlume, 0x0A00, ANIM_TAG_FIRE_PLUME}, + {gBattleAnimSpriteGfx_Lightning2, 0x0800, ANIM_TAG_LIGHTNING_2}, + {gBattleAnimSpriteGfx_Lightning, 0x0A00, ANIM_TAG_LIGHTNING}, + {gBattleAnimSpriteGfx_ClawSlash2, 0x0A00, ANIM_TAG_CLAW_SLASH_2}, + {gBattleAnimSpriteGfx_ClawSlash, 0x0A00, ANIM_TAG_CLAW_SLASH}, + {gBattleAnimSpriteGfx_Scratch3, 0x0A00, ANIM_TAG_SCRATCH_3}, + {gBattleAnimSpriteGfx_Scratch2, 0x0A00, ANIM_TAG_SCRATCH_2}, + {gBattleAnimSpriteGfx_BubbleBurst2, 0x0A00, ANIM_TAG_BUBBLE_BURST_2}, + {gBattleAnimSpriteGfx_IceChunk, 0x0A00, ANIM_TAG_ICE_CHUNK}, + {gBattleAnimSpriteGfx_Glass2, 0x0A00, ANIM_TAG_GLASS_2}, + {gBattleAnimSpriteGfx_PinkHeart2, 0x0A00, ANIM_TAG_PINK_HEART_2}, + {gBattleAnimSpriteGfx_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpriteGfx_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP_2}, + {gBattleAnimSpriteGfx_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_1}, + {gBattleAnimSpriteGfx_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_2}, + {gBattleAnimSpriteGfx_HumanoidFoot, 0x0200, ANIM_TAG_HUMANOID_FOOT}, + {gBattleAnimSpriteGfx_MonsterFoot, 0x0200, ANIM_TAG_MONSTER_FOOT}, + {gBattleAnimSpriteGfx_HumanoidHand, 0x0200, ANIM_TAG_HUMANOID_HAND}, + {gBattleAnimSpriteGfx_NoiseLine, 0x0800, ANIM_TAG_NOISE_LINE}, + {gBattleAnimSpriteGfx_YellowUnk, 0x0080, ANIM_TAG_YELLOW_UNK}, + {gBattleAnimSpriteGfx_RedFist, 0x0200, ANIM_TAG_RED_FIST}, + {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT}, + {gBattleAnimSpriteGfx_Ring, 0x0180, ANIM_TAG_RING}, + {gBattleAnimSpriteGfx_Rocks, 0x0C00, ANIM_TAG_ROCKS}, + {gBattleAnimSpriteGfx_Z, 0x0100, ANIM_TAG_Z}, + {gBattleAnimSpriteGfx_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2}, + {gBattleAnimSpriteGfx_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH}, + {gBattleAnimSpriteGfx_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, + {gBattleAnimSpriteGfx_Leaf, 0x0480, ANIM_TAG_LEAF}, + {gBattleAnimSpriteGfx_Finger, 0x0200, ANIM_TAG_FINGER}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POISON_POWDER}, + {gBattleAnimSpriteGfx_BrownTriangle, 0x0100, ANIM_TAG_BROWN_TRIANGLE}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_SLEEP_POWDER}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_STUN_SPORE}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POWDER}, + {gBattleAnimSpriteGfx_Sparkle3, 0x0200, ANIM_TAG_SPARKLE_3}, + {gBattleAnimSpriteGfx_Sparkle4, 0x0A00, ANIM_TAG_SPARKLE_4}, + {gBattleAnimSpriteGfx_MusicNotes, 0x0300, ANIM_TAG_MUSIC_NOTES}, + {gBattleAnimSpriteGfx_Duck, 0x0180, ANIM_TAG_DUCK}, + {gBattleAnimSpriteGfx_MudSand, 0x00A0, ANIM_TAG_MUD_SAND}, + {gBattleAnimSpriteGfx_Alert, 0x0700, ANIM_TAG_ALERT}, + {gBattleAnimSpriteGfx_BlueFlames, 0x0400, ANIM_TAG_BLUE_FLAMES}, + {gBattleAnimSpriteGfx_BlueFlames2, 0x0200, ANIM_TAG_BLUE_FLAMES_2}, + {gBattleAnimSpriteGfx_Shock4, 0x0300, ANIM_TAG_SHOCK_4}, + {gBattleAnimSpriteGfx_Shock, 0x0C00, ANIM_TAG_SHOCK}, + {gBattleAnimSpriteGfx_Bell2, 0x0A00, ANIM_TAG_BELL_2}, + {gBattleAnimSpriteGfx_PinkGlove, 0x0080, ANIM_TAG_PINK_GLOVE}, + {gBattleAnimSpriteGfx_BlueLines, 0x0040, ANIM_TAG_BLUE_LINES}, + {gBattleAnimSpriteGfx_Impact3, 0x0E00, ANIM_TAG_IMPACT_3}, + {gBattleAnimSpriteGfx_Impact2, 0x0E00, ANIM_TAG_IMPACT_2}, + {gBattleAnimSpriteGfx_Reticle, 0x0280, ANIM_TAG_RETICLE}, + {gBattleAnimSpriteGfx_Breath, 0x0200, ANIM_TAG_BREATH}, + {gBattleAnimSpriteGfx_Anger, 0x0080, ANIM_TAG_ANGER}, + {gBattleAnimSpriteGfx_Snowball, 0x00C0, ANIM_TAG_SNOWBALL}, + {gBattleAnimSpriteGfx_Vine, 0x0A00, ANIM_TAG_VINE}, + {gBattleAnimSpriteGfx_Sword2, 0x0200, ANIM_TAG_SWORD_2}, + {gBattleAnimSpriteGfx_Clapping, 0x0180, ANIM_TAG_CLAPPING}, + {gBattleAnimSpriteGfx_RedTube, 0x0080, ANIM_TAG_RED_TUBE}, + {gBattleAnimSpriteGfx_Amnesia, 0x1000, ANIM_TAG_AMNESIA}, + {gBattleAnimSpriteGfx_String2, 0x0A00, ANIM_TAG_STRING_2}, + {gBattleAnimSpriteGfx_Pencil2, 0x0180, ANIM_TAG_PENCIL_2}, + {gBattleAnimSpriteGfx_Petal, 0x0380, ANIM_TAG_PETAL}, + {gBattleAnimSpriteGfx_BentSpoon, 0x0C00, ANIM_TAG_BENT_SPOON}, + {gBattleAnimSpriteGfx_Web, 0x0200, ANIM_TAG_WEB}, + {gBattleAnimSpriteGfx_MilkBottle, 0x0200, ANIM_TAG_MILK_BOTTLE}, + {gBattleAnimSpriteGfx_Coin, 0x0200, ANIM_TAG_COIN}, + {gBattleAnimSpriteGfx_CrackedEgg, 0x0200, ANIM_TAG_CRACKED_EGG}, + {gBattleAnimSpriteGfx_HatchedEgg, 0x0400, ANIM_TAG_HATCHED_EGG}, + {gBattleAnimSpriteGfx_FreshEgg, 0x0080, ANIM_TAG_FRESH_EGG}, + {gBattleAnimSpriteGfx_Fangs, 0x0400, ANIM_TAG_FANGS}, + {gBattleAnimSpriteGfx_Explosion2, 0x0c00, ANIM_TAG_EXPLOSION_2}, + {gBattleAnimSpriteGfx_Explosion3, 0x0200, ANIM_TAG_EXPLOSION_3}, + {gBattleAnimSpriteGfx_WaterDroplet, 0x1000, ANIM_TAG_WATER_DROPLET}, + {gBattleAnimSpriteGfx_WaterDroplet2, 0x0a00, ANIM_TAG_WATER_DROPLET_2}, + {gBattleAnimSpriteGfx_Seed2, 0x0020, ANIM_TAG_SEED_2}, + {gBattleAnimSpriteGfx_Sprout, 0x0e00, ANIM_TAG_SPROUT}, + {gBattleAnimSpriteGfx_RedWand, 0x0080, ANIM_TAG_RED_WAND}, + {gBattleAnimSpriteGfx_PurpleGreenUnk, 0x0a00, ANIM_TAG_PURPLE_GREEN_UNK}, + {gBattleAnimSpriteGfx_WaterColumn, 0x0400, ANIM_TAG_WATER_COLUMN}, + {gBattleAnimSpriteGfx_MudUnk, 0x0200, ANIM_TAG_MUD_UNK}, + {gBattleAnimSpriteGfx_RainDrops, 0x0700, ANIM_TAG_RAIN_DROPS}, + {gBattleAnimSpriteGfx_FurySwipes, 0x0800, ANIM_TAG_FURY_SWIPES}, + {gBattleAnimSpriteGfx_Vine2, 0x0a00, ANIM_TAG_VINE_2}, + {gBattleAnimSpriteGfx_Teeth, 0x0600, ANIM_TAG_TEETH}, + {gBattleAnimSpriteGfx_Bone2, 0x0800, ANIM_TAG_BONE_2}, + {gBattleAnimSpriteGfx_WhiteBag, 0x0200, ANIM_TAG_WHITE_BAG}, + {gBattleAnimSpriteGfx_Unknown, 0x0040, ANIM_TAG_UNKNOWN}, + {gBattleAnimSpriteGfx_PurpleCoral, 0x0180, ANIM_TAG_PURPLE_CORAL}, + {gBattleAnimSpriteGfx_PurpleDroplet, 0x0600, ANIM_TAG_PURPLE_DROPLET}, + {gBattleAnimSpriteGfx_Shock2, 0x0600, ANIM_TAG_SHOCK_2}, + {gBattleAnimSpriteGfx_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2}, + {gBattleAnimSpriteGfx_MetalBall, 0x0080, ANIM_TAG_METAL_BALL}, + {gBattleAnimSpriteGfx_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL}, + {gBattleAnimSpriteGfx_Whirlwind, 0x0800, ANIM_TAG_WHIRLWIND}, + {gBattleAnimSpriteGfx_Whirlwind2, 0x0080, ANIM_TAG_WHIRLWIND_2}, + {gBattleAnimSpriteGfx_Explosion4, 0x0a00, ANIM_TAG_EXPLOSION_4}, + {gBattleAnimSpriteGfx_Explosion5, 0x0280, ANIM_TAG_EXPLOSION_5}, + {gBattleAnimSpriteGfx_Tongue, 0x0280, ANIM_TAG_TONGUE}, + {gBattleAnimSpriteGfx_Smoke, 0x0100, ANIM_TAG_SMOKE}, + {gBattleAnimSpriteGfx_Smoke2, 0x0200, ANIM_TAG_SMOKE_2}, + {gBattleAnimSpriteGfx_Impact, 0x0200, ANIM_TAG_IMPACT}, + {gBattleAnimSpriteGfx_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, + {gBattleAnimSpriteGfx_Scratch, 0x0a00, ANIM_TAG_SCRATCH}, + {gBattleAnimSpriteGfx_Cut, 0x0800, ANIM_TAG_CUT}, + {gBattleAnimSpriteGfx_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, + {gBattleAnimSpriteGfx_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, + {gBattleAnimSpriteGfx_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, + {gBattleAnimSpriteGfx_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES}, + {gBattleAnimSpriteGfx_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, + {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_MIST_CLOUD}, + {gBattleAnimSpriteGfx_Clamp, 0x0800, ANIM_TAG_CLAMP}, + {gBattleAnimSpriteGfx_Bubble, 0x0180, ANIM_TAG_BUBBLE}, + {gBattleAnimSpriteGfx_Orbs, 0x0180, ANIM_TAG_ORBS}, + {gBattleAnimSpriteGfx_WaterImpact, 0x0200, ANIM_TAG_WATER_IMPACT}, + {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB}, + {gBattleAnimSpriteGfx_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE}, + {gBattleAnimSpriteGfx_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, + {gBattleAnimSpriteGfx_Spikes, 0x0080, ANIM_TAG_SPIKES}, + {gBattleAnimSpriteGfx_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2}, + {gBattleAnimSpriteGfx_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2}, + {gBattleAnimSpriteGfx_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES}, + {gBattleAnimSpriteGfx_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW}, + {gBattleAnimSpriteGfx_Sunlight, 0x0200, ANIM_TAG_SUNLIGHT}, + {gBattleAnimSpriteGfx_Spore, 0x0100, ANIM_TAG_SPORE}, + {gBattleAnimSpriteGfx_Flower, 0x00a0, ANIM_TAG_FLOWER}, + {gBattleAnimSpriteGfx_RazorLeaf, 0x0100, ANIM_TAG_RAZOR_LEAF}, + {gBattleAnimSpriteGfx_Needle, 0x0080, ANIM_TAG_NEEDLE}, + {gBattleAnimSpriteGfx_WhirlwindLines, 0x0300, ANIM_TAG_WHIRLWIND_LINES}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_GOLD_RING}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_PURPLE_RING}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_BLUE_RING}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_GREEN_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_BLUE_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_RED_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_GRAY_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_ORANGE_LIGHT_WALL}, + {gBattleAnimSpriteGfx_BlackBall2, 0x0080, ANIM_TAG_BLACK_BALL_2}, + {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_PURPLE_GAS_CLOUD}, + {gBattleAnimSpriteGfx_SparkH, 0x0200, ANIM_TAG_SPARK_H}, + {gBattleAnimSpriteGfx_YellowStar, 0x0200, ANIM_TAG_YELLOW_STAR}, + {gBattleAnimSpriteGfx_LargeFreshEgg, 0x0080, ANIM_TAG_LARGE_FRESH_EGG}, + {gBattleAnimSpriteGfx_ShadowBall, 0x0200, ANIM_TAG_SHADOW_BALL}, + {gBattleAnimSpriteGfx_Lick, 0x0500, ANIM_TAG_LICK}, + {gBattleAnimSpriteGfx_VoidLines, 0x0800, ANIM_TAG_VOID_LINES}, + {gBattleAnimSpriteGfx_String, 0x0400, ANIM_TAG_STRING}, + {gBattleAnimSpriteGfx_WebThread, 0x0020, ANIM_TAG_WEB_THREAD}, + {gBattleAnimSpriteGfx_SpiderWeb, 0x0800, ANIM_TAG_SPIDER_WEB}, + {gBattleAnimSpriteGfx_Lightbulb, 0x0100, ANIM_TAG_LIGHTBULB}, + {gBattleAnimSpriteGfx_Slash, 0x0800, ANIM_TAG_SLASH}, + {gBattleAnimSpriteGfx_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY}, + {gBattleAnimSpriteGfx_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, + {gBattleAnimSpriteGfx_Tendrils, 0x1000, ANIM_TAG_TENDRILS}, + {gBattleAnimSpriteGfx_Eye, 0x0800, ANIM_TAG_EYE}, + {gBattleAnimSpriteGfx_WhiteShadow, 0x0400, ANIM_TAG_WHITE_SHADOW}, + {gBattleAnimSpriteGfx_TealAlert, 0x0200, ANIM_TAG_TEAL_ALERT}, + {gBattleAnimSpriteGfx_OpeningEye, 0x0800, ANIM_TAG_OPENING_EYE}, + {gBattleAnimSpriteGfx_RoundWhiteHalo, 0x0800, ANIM_TAG_ROUND_WHITE_HALO}, + {gBattleAnimSpriteGfx_FangAttack, 0x0800, ANIM_TAG_FANG_ATTACK}, + {gBattleAnimSpriteGfx_PurpleHandOutline, 0x0200, ANIM_TAG_PURPLE_HAND_OUTLINE}, + {gBattleAnimSpriteGfx_Moon, 0x0800, ANIM_TAG_MOON}, + {gBattleAnimSpriteGfx_GreenSparkle, 0x0200, ANIM_TAG_GREEN_SPARKLE}, + {gBattleAnimSpriteGfx_Spiral, 0x0800, ANIM_TAG_SPIRAL}, + {gBattleAnimSpriteGfx_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z}, + {gBattleAnimSpriteGfx_Explosion, 0x0800, ANIM_TAG_EXPLOSION}, + {gBattleAnimSpriteGfx_Nail, 0x0400, ANIM_TAG_NAIL}, + {gBattleAnimSpriteGfx_GhostlySpirit, 0x0200, ANIM_TAG_GHOSTLY_SPIRIT}, + {gBattleAnimSpriteGfx_WarmRock, 0x0a80, ANIM_TAG_WARM_ROCK}, + {gBattleAnimSpriteGfx_BreakingEgg, 0x0600, ANIM_TAG_BREAKING_EGG}, + {gBattleAnimSpriteGfx_ThinRing, 0x0800, ANIM_TAG_THIN_RING}, + {gBattleAnimSpriteGfx_PunchImpact, 0x0200, ANIM_TAG_PUNCH_IMPACT}, + {gBattleAnimSpriteGfx_Bell, 0x0600, ANIM_TAG_BELL}, + {gBattleAnimSpriteGfx_MusicNotes2, 0x0800, ANIM_TAG_MUSIC_NOTES_2}, + {gBattleAnimSpriteGfx_SpeedDust, 0x0180, ANIM_TAG_SPEED_DUST}, + {gBattleAnimSpriteGfx_TornMetal, 0x0800, ANIM_TAG_TORN_METAL}, + {gBattleAnimSpriteGfx_ThoughtBubble, 0x0800, ANIM_TAG_THOUGHT_BUBBLE}, + {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_MAGENTA_HEART}, + {gBattleAnimSpriteGfx_ElectricOrbs, 0x0080, ANIM_TAG_ELECTRIC_ORBS}, + {gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_CIRCLE_OF_LIGHT}, + {gBattleAnimSpriteGfx_Electricity, 0x0800, ANIM_TAG_ELECTRICITY}, + {gBattleAnimSpriteGfx_Finger2, 0x0600, ANIM_TAG_FINGER_2}, + {gBattleAnimSpriteGfx_MovementWaves, 0x0600, ANIM_TAG_MOVEMENT_WAVES}, + {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_RED_HEART}, + {gBattleAnimSpriteGfx_RedOrb, 0x0080, ANIM_TAG_RED_ORB}, + {gBattleAnimSpriteGfx_EyeSparkle, 0x0180, ANIM_TAG_EYE_SPARKLE}, + {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_PINK_HEART}, + {gBattleAnimSpriteGfx_Angel, 0x0200, ANIM_TAG_ANGEL}, + {gBattleAnimSpriteGfx_Devil, 0x0400, ANIM_TAG_DEVIL}, + {gBattleAnimSpriteGfx_Swipe, 0x0a00, ANIM_TAG_SWIPE}, + {gBattleAnimSpriteGfx_Roots, 0x0800, ANIM_TAG_ROOTS}, + {gBattleAnimSpriteGfx_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG}, + {gBattleAnimSpriteGfx_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, + {gBattleAnimSpriteGfx_Pokeball, 0x0080, ANIM_TAG_POKEBALL}, + {gBattleAnimSpriteGfx_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, + {gBattleAnimSpriteGfx_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, + {gBattleAnimSpriteGfx_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, + {gBattleAnimSpriteGfx_TriForceTriangle, 0x0800, ANIM_TAG_TRI_FORCE_TRIANGLE}, + {gBattleAnimSpriteGfx_WispOrb, 0x0380, ANIM_TAG_WISP_ORB}, + {gBattleAnimSpriteGfx_WispFire, 0x0800, ANIM_TAG_WISP_FIRE}, + {gBattleAnimSpriteGfx_GoldStars, 0x00c0, ANIM_TAG_GOLD_STARS}, + {gBattleAnimSpriteGfx_EclipsingOrb, 0x0800, ANIM_TAG_ECLIPSING_ORB}, + {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_GRAY_ORB}, + {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_BLUE_ORB}, + {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_RED_ORB_2}, + {gBattleAnimSpriteGfx_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL}, + {gBattleAnimSpriteGfx_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT}, + {gBattleAnimSpriteGfx_Confetti, 0x0180, ANIM_TAG_CONFETTI}, + {gBattleAnimSpriteGfx_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, + {gBattleAnimSpriteGfx_PinkCloud, 0x0200, ANIM_TAG_PINK_CLOUD}, + {gBattleAnimSpriteGfx_SweatDrop, 0x0020, ANIM_TAG_SWEAT_DROP}, + {gBattleAnimSpriteGfx_GuardRing, 0x0400, ANIM_TAG_GUARD_RING}, + {gBattleAnimSpriteGfx_PurpleScratch, 0x0600, ANIM_TAG_PURPLE_SCRATCH}, + {gBattleAnimSpriteGfx_PurpleSwipe, 0x1000, ANIM_TAG_PURPLE_SWIPE}, + {gBattleAnimSpriteGfx_TagHand, 0x0400, ANIM_TAG_TAG_HAND}, + {gBattleAnimSpriteGfx_SmallRedEye, 0x0020, ANIM_TAG_SMALL_RED_EYE}, + {gBattleAnimSpriteGfx_HollowOrb, 0x0080, ANIM_TAG_HOLLOW_ORB}, + {gBattleAnimSpriteGfx_XSign, 0x0800, ANIM_TAG_X_SIGN}, + {gBattleAnimSpriteGfx_BluegreenOrb, 0x0080, ANIM_TAG_BLUEGREEN_ORB}, + {gBattleAnimSpriteGfx_PawPrint, 0x0200, ANIM_TAG_PAW_PRINT}, + {gBattleAnimSpriteGfx_PurpleFlame, 0x0400, ANIM_TAG_PURPLE_FLAME}, + {gBattleAnimSpriteGfx_RedBall, 0x0200, ANIM_TAG_RED_BALL}, + {gBattleAnimSpriteGfx_SmellingsaltEffect, 0x0200, ANIM_TAG_SMELLINGSALT_EFFECT}, + {gBattleAnimSpriteGfx_Meteor, 0x0800, ANIM_TAG_METEOR}, + {gBattleAnimSpriteGfx_FlatRock, 0x0280, ANIM_TAG_FLAT_ROCK}, + {gBattleAnimSpriteGfx_MagnifyingGlass, 0x0200, ANIM_TAG_MAGNIFYING_GLASS}, + {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_BROWN_ORB}, + {gBattleAnimSpriteGfx_MetalSoundWaves, 0x0400, ANIM_TAG_METAL_SOUND_WAVES}, + {gBattleAnimSpriteGfx_FlyingDirt, 0x0200, ANIM_TAG_FLYING_DIRT}, + {gBattleAnimSpriteGfx_IcicleSpear, 0x0200, ANIM_TAG_ICICLE_SPEAR}, + {gBattleAnimSpriteGfx_Hail, 0x0080, ANIM_TAG_HAIL}, + {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_RED_ORB}, + {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_GREEN_ORB}, + {gBattleAnimSpriteGfx_GreenSpike, 0x0080, ANIM_TAG_GREEN_SPIKE}, + {gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, + {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_BLUE_ORB}, + {gBattleAnimSpriteGfx_RedBrick, 0x0080, ANIM_TAG_RED_BRICK}, + {gBattleAnimSpriteGfx_WhiteFeather, 0x0400, ANIM_TAG_WHITE_FEATHER}, + {gBattleAnimSpriteGfx_Sparkle6, 0x0080, ANIM_TAG_SPARKLE_6}, + {gBattleAnimSpriteGfx_Splash, 0x0800, ANIM_TAG_SPLASH}, + {gBattleAnimSpriteGfx_SweatBead, 0x0020, ANIM_TAG_SWEAT_BEAD}, + {gBattleAnimSpriteGfx_Gem1, 0x0800, ANIM_TAG_GEM_1}, + {gBattleAnimSpriteGfx_Gem2, 0x0800, ANIM_TAG_GEM_2}, + {gBattleAnimSpriteGfx_Gem3, 0x0800, ANIM_TAG_GEM_3}, + {gBattleAnimSpriteGfx_SlamHit2, 0x1000, ANIM_TAG_SLAM_HIT_2}, + {gBattleAnimSpriteGfx_Recycle, 0x0800, ANIM_TAG_RECYCLE}, + {gBattleAnimSpriteGfx_RedParticles, 0x00a0, ANIM_TAG_RED_PARTICLES}, + {gBattleAnimSpriteGfx_Protect, 0x0800, ANIM_TAG_PROTECT}, + {gBattleAnimSpriteGfx_DirtMound, 0x0200, ANIM_TAG_DIRT_MOUND}, + {gBattleAnimSpriteGfx_Shock3, 0x0600, ANIM_TAG_SHOCK_3}, + {gBattleAnimSpriteGfx_WeatherBall, 0x0200, ANIM_TAG_WEATHER_BALL}, + {gBattleAnimSpriteGfx_Bird, 0x0800, ANIM_TAG_BIRD}, + {gBattleAnimSpriteGfx_CrossImpact, 0x0200, ANIM_TAG_CROSS_IMPACT}, + {gBattleAnimSpriteGfx_Slash, 0x0800, ANIM_TAG_SLASH_2}, + {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_WHIP_HIT}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_BLUE_RING_2}, }; const struct CompressedSpritePalette gBattleAnimPaletteTable[] = { - {gBattleAnimSpritePalette_Bone, ANIM_TAG_BONE}, - {gBattleAnimSpritePalette_Spark, ANIM_TAG_SPARK}, - {gBattleAnimSpritePalette_Pencil, ANIM_TAG_PENCIL}, - {gBattleAnimSpritePalette_AirWave, ANIM_TAG_AIR_WAVE}, - {gBattleAnimSpritePalette_Orb, ANIM_TAG_ORB}, - {gBattleAnimSpritePalette_Sword, ANIM_TAG_SWORD}, - {gBattleAnimSpritePalette_Seed, ANIM_TAG_SEED}, - {gBattleAnimSpritePalette_Explosion6, ANIM_TAG_EXPLOSION_6}, - {gBattleAnimSpritePalette_PinkOrb, ANIM_TAG_PINK_ORB}, - {gBattleAnimSpritePalette_Gust, ANIM_TAG_GUST}, - {gBattleAnimSpritePalette_IceCube, ANIM_TAG_ICE_CUBE}, - {gBattleAnimSpritePalette_Spark2, ANIM_TAG_SPARK_2}, - {gBattleAnimSpritePalette_Orange, ANIM_TAG_ORANGE}, - {gBattleAnimSpritePalette_YellowBall, ANIM_TAG_YELLOW_BALL}, - {gBattleAnimSpritePalette_LockOn, ANIM_TAG_LOCK_ON}, - {gBattleAnimSpritePalette_TiedBag, ANIM_TAG_TIED_BAG}, - {gBattleAnimSpritePalette_BlackSmoke, ANIM_TAG_BLACK_SMOKE}, - {gBattleAnimSpritePalette_BlackSmoke, ANIM_TAG_BLACK_BALL}, - {gBattleAnimSpritePalette_Conversion, ANIM_TAG_CONVERSION}, - {gBattleAnimSpritePalette_Glass, ANIM_TAG_GLASS}, - {gBattleAnimSpritePalette_HornHit, ANIM_TAG_HORN_HIT}, - {gBattleAnimSpritePalette_Hit, ANIM_TAG_HIT}, - {gBattleAnimSpritePalette_Hit2, ANIM_TAG_HIT_2}, - {gBattleAnimSpritePalette_BlueShards, ANIM_TAG_BLUE_SHARDS}, - {gBattleAnimSpritePalette_ClosingEye, ANIM_TAG_CLOSING_EYE}, - {gBattleAnimSpritePalette_WavingHand, ANIM_TAG_WAVING_HAND}, - {gBattleAnimSpritePalette_HitDuplicate, ANIM_TAG_HIT_DUPLICATE}, - {gBattleAnimSpritePalette_Leer, ANIM_TAG_LEER}, - {gBattleAnimSpritePalette_BlueBurst, ANIM_TAG_BLUE_BURST}, - {gBattleAnimSpritePalette_SmallEmber, ANIM_TAG_SMALL_EMBER}, - {gBattleAnimSpritePalette_GraySmoke, ANIM_TAG_GRAY_SMOKE}, - {gBattleAnimSpritePalette_BlueStar, ANIM_TAG_BLUE_STAR}, - {gBattleAnimSpritePalette_BubbleBurst, ANIM_TAG_BUBBLE_BURST}, - {gBattleAnimSpritePalette_Fire, ANIM_TAG_FIRE}, - {gBattleAnimSpritePalette_Fire, ANIM_TAG_SPINNING_FIRE}, - {gBattleAnimSpritePalette_Fire, ANIM_TAG_FIRE_PLUME}, - {gBattleAnimSpritePalette_Lightning2, ANIM_TAG_LIGHTNING_2}, - {gBattleAnimSpritePalette_Lightning2, ANIM_TAG_LIGHTNING}, - {gBattleAnimSpritePalette_ClawSlash2, ANIM_TAG_CLAW_SLASH_2}, - {gBattleAnimSpritePalette_ClawSlash, ANIM_TAG_CLAW_SLASH}, - {gBattleAnimSpritePalette_ClawSlash2, ANIM_TAG_SCRATCH_3}, - {gBattleAnimSpritePalette_ClawSlash2, ANIM_TAG_SCRATCH_2}, - {gBattleAnimSpritePalette_BubbleBurst2, ANIM_TAG_BUBBLE_BURST_2}, - {gBattleAnimSpritePalette_IceChunk, ANIM_TAG_ICE_CHUNK}, - {gBattleAnimSpritePalette_Glass2, ANIM_TAG_GLASS_2}, - {gBattleAnimSpritePalette_PinkHeart2, ANIM_TAG_PINK_HEART_2}, - {gBattleAnimSpritePalette_SapDrip, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpritePalette_SapDrip2, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpritePalette_Sparkle1, ANIM_TAG_SPARKLE_1}, - {gBattleAnimSpritePalette_Sparkle2, ANIM_TAG_SPARKLE_2}, - {gBattleAnimSpritePalette_HumanoidFoot, ANIM_TAG_HUMANOID_FOOT}, - {gBattleAnimSpritePalette_HumanoidFoot, ANIM_TAG_MONSTER_FOOT}, - {gBattleAnimSpritePalette_HumanoidFoot, ANIM_TAG_HUMANOID_HAND}, - {gBattleAnimSpritePalette_HitDuplicate, ANIM_TAG_NOISE_LINE}, - {gBattleAnimSpritePalette_YellowUnk, ANIM_TAG_YELLOW_UNK}, - {gBattleAnimSpritePalette_HumanoidFoot, ANIM_TAG_RED_FIST}, - {gBattleAnimSpritePalette_SlamHit, ANIM_TAG_SLAM_HIT}, - {gBattleAnimSpritePalette_Ring, ANIM_TAG_RING}, - {gBattleAnimSpritePalette_Rocks, ANIM_TAG_ROCKS}, - {gBattleAnimSpritePalette_Z, ANIM_TAG_Z}, - {gBattleAnimSpritePalette_YellowUnk2, ANIM_TAG_YELLOW_UNK_2}, - {gBattleAnimSpritePalette_AirSlash, ANIM_TAG_AIR_SLASH}, - {gBattleAnimSpritePalette_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS}, - {gBattleAnimSpritePalette_Leaf, ANIM_TAG_LEAF}, - {gBattleAnimSpritePalette_Finger, ANIM_TAG_FINGER}, - {gBattleAnimSpritePalette_PoisonPowder, ANIM_TAG_POISON_POWDER}, - {gBattleAnimSpritePalette_BrownTriangle, ANIM_TAG_BROWN_TRIANGLE}, - {gBattleAnimSpritePalette_SleepPowder, ANIM_TAG_SLEEP_POWDER}, - {gBattleAnimSpritePalette_StunSpore, ANIM_TAG_STUN_SPORE}, - {gBattleAnimSpritePalette_PoisonPowder, ANIM_TAG_POWDER}, - {gBattleAnimSpritePalette_Sparkle3, ANIM_TAG_SPARKLE_3}, - {gBattleAnimSpritePalette_Sparkle3, ANIM_TAG_SPARKLE_4}, - {gBattleAnimSpritePalette_MusicNotes, ANIM_TAG_MUSIC_NOTES}, - {gBattleAnimSpritePalette_Duck, ANIM_TAG_DUCK}, - {gBattleAnimSpritePalette_MudSand, ANIM_TAG_MUD_SAND}, - {gBattleAnimSpritePalette_Alert, ANIM_TAG_ALERT}, - {gBattleAnimSpritePalette_BlueFlames, ANIM_TAG_BLUE_FLAMES}, - {gBattleAnimSpritePalette_BlueFlames, ANIM_TAG_BLUE_FLAMES_2}, - {gBattleAnimSpritePalette_Shock4, ANIM_TAG_SHOCK_4}, - {gBattleAnimSpritePalette_Shock4, ANIM_TAG_SHOCK}, - {gBattleAnimSpritePalette_Bell2, ANIM_TAG_BELL_2}, - {gBattleAnimSpritePalette_PinkGlove, ANIM_TAG_PINK_GLOVE}, - {gBattleAnimSpritePalette_BlueLines, ANIM_TAG_BLUE_LINES}, - {gBattleAnimSpritePalette_Impact3, ANIM_TAG_IMPACT_3}, - {gBattleAnimSpritePalette_Impact2, ANIM_TAG_IMPACT_2}, - {gBattleAnimSpritePalette_Reticle, ANIM_TAG_RETICLE}, - {gBattleAnimSpritePalette_Breath, ANIM_TAG_BREATH}, - {gBattleAnimSpritePalette_Anger, ANIM_TAG_ANGER}, - {gBattleAnimSpritePalette_Snowball, ANIM_TAG_SNOWBALL}, - {gBattleAnimSpritePalette_Vine, ANIM_TAG_VINE}, - {gBattleAnimSpritePalette_Sword2, ANIM_TAG_SWORD_2}, - {gBattleAnimSpritePalette_Clapping, ANIM_TAG_CLAPPING}, - {gBattleAnimSpritePalette_RedTube, ANIM_TAG_RED_TUBE}, - {gBattleAnimSpritePalette_Amnesia, ANIM_TAG_AMNESIA}, - {gBattleAnimSpritePalette_String2, ANIM_TAG_STRING_2}, - {gBattleAnimSpritePalette_Pencil2, ANIM_TAG_PENCIL_2}, - {gBattleAnimSpritePalette_Petal, ANIM_TAG_PETAL}, - {gBattleAnimSpritePalette_BentSpoon, ANIM_TAG_BENT_SPOON}, - {gBattleAnimSpritePalette_String2, ANIM_TAG_WEB}, - {gBattleAnimSpritePalette_MilkBottle, ANIM_TAG_MILK_BOTTLE}, - {gBattleAnimSpritePalette_Coin, ANIM_TAG_COIN}, - {gBattleAnimSpritePalette_CrackedEgg, ANIM_TAG_CRACKED_EGG}, - {gBattleAnimSpritePalette_CrackedEgg, ANIM_TAG_HATCHED_EGG}, - {gBattleAnimSpritePalette_FreshEgg, ANIM_TAG_FRESH_EGG}, - {gBattleAnimSpritePalette_Fangs, ANIM_TAG_FANGS}, - {gBattleAnimSpritePalette_Explosion2, ANIM_TAG_EXPLOSION_2}, - {gBattleAnimSpritePalette_Explosion2, ANIM_TAG_EXPLOSION_3}, - {gBattleAnimSpritePalette_WaterDroplet, ANIM_TAG_WATER_DROPLET}, - {gBattleAnimSpritePalette_WaterDroplet, ANIM_TAG_WATER_DROPLET_2}, - {gBattleAnimSpritePalette_Seed2, ANIM_TAG_SEED_2}, - {gBattleAnimSpritePalette_Seed2, ANIM_TAG_SPROUT}, - {gBattleAnimSpritePalette_RedWand, ANIM_TAG_RED_WAND}, - {gBattleAnimSpritePalette_PurpleGreenUnk, ANIM_TAG_PURPLE_GREEN_UNK}, - {gBattleAnimSpritePalette_WaterColumn, ANIM_TAG_WATER_COLUMN}, - {gBattleAnimSpritePalette_MudUnk, ANIM_TAG_MUD_UNK}, - {gBattleAnimSpritePalette_RainDrops, ANIM_TAG_RAIN_DROPS}, - {gBattleAnimSpritePalette_FurySwipes, ANIM_TAG_FURY_SWIPES}, - {gBattleAnimSpritePalette_Vine2, ANIM_TAG_VINE_2}, - {gBattleAnimSpritePalette_Teeth, ANIM_TAG_TEETH}, - {gBattleAnimSpritePalette_Bone2, ANIM_TAG_BONE_2}, - {gBattleAnimSpritePalette_WhiteBag, ANIM_TAG_WHITE_BAG}, - {gBattleAnimSpritePalette_Unknown, ANIM_TAG_UNKNOWN}, - {gBattleAnimSpritePalette_PurpleCoral, ANIM_TAG_PURPLE_CORAL}, - {gBattleAnimSpritePalette_PurpleCoral, ANIM_TAG_PURPLE_DROPLET}, - {gBattleAnimSpritePalette_Shock2, ANIM_TAG_SHOCK_2}, - {gBattleAnimSpritePalette_ClosingEye2, ANIM_TAG_CLOSING_EYE_2}, - {gBattleAnimSpritePalette_MetalBall, ANIM_TAG_METAL_BALL}, - {gBattleAnimSpritePalette_MonsterDoll, ANIM_TAG_MONSTER_DOLL}, - {gBattleAnimSpritePalette_Whirlwind, ANIM_TAG_WHIRLWIND}, - {gBattleAnimSpritePalette_Whirlwind, ANIM_TAG_WHIRLWIND_2}, - {gBattleAnimSpritePalette_Explosion4, ANIM_TAG_EXPLOSION_4}, - {gBattleAnimSpritePalette_Explosion4, ANIM_TAG_EXPLOSION_5}, - {gBattleAnimSpritePalette_Tongue, ANIM_TAG_TONGUE}, - {gBattleAnimSpritePalette_Smoke, ANIM_TAG_SMOKE}, - {gBattleAnimSpritePalette_Smoke, ANIM_TAG_SMOKE_2}, - {gBattleAnimSpritePalette_Impact, ANIM_TAG_IMPACT}, - {gBattleAnimSpritePalette_CircleImpact, ANIM_TAG_CIRCLE_IMPACT}, - {gBattleAnimSpritePalette_Impact, ANIM_TAG_SCRATCH}, - {gBattleAnimSpritePalette_Impact, ANIM_TAG_CUT}, - {gBattleAnimSpritePalette_SharpTeeth, ANIM_TAG_SHARP_TEETH}, - {gBattleAnimSpritePalette_RainbowRings, ANIM_TAG_RAINBOW_RINGS}, - {gBattleAnimSpritePalette_IceCrystals, ANIM_TAG_ICE_CRYSTALS}, - {gBattleAnimSpritePalette_IceCrystals, ANIM_TAG_ICE_SPIKES}, - {gBattleAnimSpritePalette_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, - {gBattleAnimSpritePalette_MistCloud, ANIM_TAG_MIST_CLOUD}, - {gBattleAnimSpritePalette_SharpTeeth, ANIM_TAG_CLAMP}, - {gBattleAnimSpritePalette_RainDrops, ANIM_TAG_BUBBLE}, - {gBattleAnimSpritePalette_Orbs, ANIM_TAG_ORBS}, - {gBattleAnimSpritePalette_WaterImpact, ANIM_TAG_WATER_IMPACT}, - {gBattleAnimSpritePalette_WaterImpact, ANIM_TAG_WATER_ORB}, - {gBattleAnimSpritePalette_PoisonBubble, ANIM_TAG_POISON_BUBBLE}, - {gBattleAnimSpritePalette_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE}, - {gBattleAnimSpritePalette_Spikes, ANIM_TAG_SPIKES}, - {gBattleAnimSpritePalette_HornHit2, ANIM_TAG_HORN_HIT_2}, - {gBattleAnimSpritePalette_AirWave2, ANIM_TAG_AIR_WAVE_2}, - {gBattleAnimSpritePalette_SmallBubbles, ANIM_TAG_SMALL_BUBBLES}, - {gBattleAnimSpritePalette_RoundShadow, ANIM_TAG_ROUND_SHADOW}, - {gBattleAnimSpritePalette_Sunlight, ANIM_TAG_SUNLIGHT}, - {gBattleAnimSpritePalette_Spore, ANIM_TAG_SPORE}, - {gBattleAnimSpritePalette_Flower, ANIM_TAG_FLOWER}, - {gBattleAnimSpritePalette_RazorLeaf, ANIM_TAG_RAZOR_LEAF}, - {gBattleAnimSpritePalette_Needle, ANIM_TAG_NEEDLE}, - {gBattleAnimSpritePalette_WhirlwindLines, ANIM_TAG_WHIRLWIND_LINES}, - {gBattleAnimSpritePalette_GoldRing, ANIM_TAG_GOLD_RING}, - {gBattleAnimSpritePalette_PurpleRing, ANIM_TAG_PURPLE_RING}, - {gBattleAnimSpritePalette_BlueRing, ANIM_TAG_BLUE_RING}, - {gBattleAnimSpritePalette_GreenLightWall, ANIM_TAG_GREEN_LIGHT_WALL}, - {gBattleAnimSpritePalette_BlueLightWall, ANIM_TAG_BLUE_LIGHT_WALL}, - {gBattleAnimSpritePalette_RedLightWall, ANIM_TAG_RED_LIGHT_WALL}, - {gBattleAnimSpritePalette_GrayLightWall, ANIM_TAG_GRAY_LIGHT_WALL}, - {gBattleAnimSpritePalette_OrangeLightWall, ANIM_TAG_ORANGE_LIGHT_WALL}, - {gBattleAnimSpritePalette_BlackBall2, ANIM_TAG_BLACK_BALL_2}, - {gBattleAnimSpritePalette_PurpleGasCloud, ANIM_TAG_PURPLE_GAS_CLOUD}, - {gBattleAnimSpritePalette_Spark, ANIM_TAG_SPARK_H}, - {gBattleAnimSpritePalette_YellowStar, ANIM_TAG_YELLOW_STAR}, - {gBattleAnimSpritePalette_LargeFreshEgg, ANIM_TAG_LARGE_FRESH_EGG}, - {gBattleAnimSpritePalette_ShadowBall, ANIM_TAG_SHADOW_BALL}, - {gBattleAnimSpritePalette_Lick, ANIM_TAG_LICK}, - {gBattleAnimSpritePalette_VoidLines, ANIM_TAG_VOID_LINES}, - {gBattleAnimSpritePalette_String, ANIM_TAG_STRING}, - {gBattleAnimSpritePalette_String, ANIM_TAG_WEB_THREAD}, - {gBattleAnimSpritePalette_String, ANIM_TAG_SPIDER_WEB}, - {gBattleAnimSpritePalette_Lightbulb, ANIM_TAG_LIGHTBULB}, - {gBattleAnimSpritePalette_Slash, ANIM_TAG_SLASH}, - {gBattleAnimSpritePalette_FocusEnergy, ANIM_TAG_FOCUS_ENERGY}, - {gBattleAnimSpritePalette_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE}, - {gBattleAnimSpritePalette_Tendrils, ANIM_TAG_TENDRILS}, - {gBattleAnimSpritePalette_Eye, ANIM_TAG_EYE}, - {gBattleAnimSpritePalette_WhiteShadow, ANIM_TAG_WHITE_SHADOW}, - {gBattleAnimSpritePalette_TealAlert, ANIM_TAG_TEAL_ALERT}, - {gBattleAnimSpritePalette_OpeningEye, ANIM_TAG_OPENING_EYE}, - {gBattleAnimSpritePalette_RoundWhiteHalo, ANIM_TAG_ROUND_WHITE_HALO}, - {gBattleAnimSpritePalette_FangAttack, ANIM_TAG_FANG_ATTACK}, - {gBattleAnimSpritePalette_PurpleHandOutline, ANIM_TAG_PURPLE_HAND_OUTLINE}, - {gBattleAnimSpritePalette_Moon, ANIM_TAG_MOON}, - {gBattleAnimSpritePalette_GreenSparkle, ANIM_TAG_GREEN_SPARKLE}, - {gBattleAnimSpritePalette_Spiral, ANIM_TAG_SPIRAL}, - {gBattleAnimSpritePalette_SnoreZ, ANIM_TAG_SNORE_Z}, - {gBattleAnimSpritePalette_Explosion, ANIM_TAG_EXPLOSION}, - {gBattleAnimSpritePalette_Nail, ANIM_TAG_NAIL}, - {gBattleAnimSpritePalette_GhostlySpirit, ANIM_TAG_GHOSTLY_SPIRIT}, - {gBattleAnimSpritePalette_WarmRock, ANIM_TAG_WARM_ROCK}, - {gBattleAnimSpritePalette_BreakingEgg, ANIM_TAG_BREAKING_EGG}, - {gBattleAnimSpritePalette_ThinRing, ANIM_TAG_THIN_RING}, - {gBattleAnimSpritePalette_PunchImpact, ANIM_TAG_PUNCH_IMPACT}, - {gBattleAnimSpritePalette_Bell, ANIM_TAG_BELL}, - {gBattleAnimSpritePalette_MusicNotes2, ANIM_TAG_MUSIC_NOTES_2}, - {gBattleAnimSpritePalette_SpeedDust, ANIM_TAG_SPEED_DUST}, - {gBattleAnimSpritePalette_BlueLightWall, ANIM_TAG_TORN_METAL}, - {gBattleAnimSpritePalette_ThoughtBubble, ANIM_TAG_THOUGHT_BUBBLE}, - {gBattleAnimSpritePalette_MagentaHeart, ANIM_TAG_MAGENTA_HEART}, - {gBattleAnimSpritePalette_ElectricOrbs, ANIM_TAG_ELECTRIC_ORBS}, - {gBattleAnimSpritePalette_ElectricOrbs, ANIM_TAG_CIRCLE_OF_LIGHT}, - {gBattleAnimSpritePalette_ElectricOrbs, ANIM_TAG_ELECTRICITY}, - {gBattleAnimSpritePalette_Finger, ANIM_TAG_FINGER_2}, - {gBattleAnimSpritePalette_MovementWaves, ANIM_TAG_MOVEMENT_WAVES}, - {gBattleAnimSpritePalette_RedHeart, ANIM_TAG_RED_HEART}, - {gBattleAnimSpritePalette_RedOrb, ANIM_TAG_RED_ORB}, - {gBattleAnimSpritePalette_EyeSparkle, ANIM_TAG_EYE_SPARKLE}, - {gBattleAnimSpritePalette_PinkHeart, ANIM_TAG_PINK_HEART}, - {gBattleAnimSpritePalette_Angel, ANIM_TAG_ANGEL}, - {gBattleAnimSpritePalette_Devil, ANIM_TAG_DEVIL}, - {gBattleAnimSpritePalette_Swipe, ANIM_TAG_SWIPE}, - {gBattleAnimSpritePalette_Roots, ANIM_TAG_ROOTS}, - {gBattleAnimSpritePalette_ItemBag, ANIM_TAG_ITEM_BAG}, - {gBattleAnimSpritePalette_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE}, - {gBattleAnimSpritePalette_Pokeball, ANIM_TAG_POKEBALL}, - {gBattleAnimSpritePalette_Pokeball, ANIM_TAG_SPOTLIGHT}, - {gBattleAnimSpritePalette_LetterZ, ANIM_TAG_LETTER_Z}, - {gBattleAnimSpritePalette_RapidSpin, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpritePalette_TriForceTriangle, ANIM_TAG_TRI_FORCE_TRIANGLE}, - {gBattleAnimSpritePalette_WispOrb, ANIM_TAG_WISP_ORB}, - {gBattleAnimSpritePalette_WispOrb, ANIM_TAG_WISP_FIRE}, - {gBattleAnimSpritePalette_GoldStars, ANIM_TAG_GOLD_STARS}, - {gBattleAnimSpritePalette_EclipsingOrb, ANIM_TAG_ECLIPSING_ORB}, - {gBattleAnimSpritePalette_GrayOrb, ANIM_TAG_GRAY_ORB}, - {gBattleAnimSpritePalette_BlueOrb, ANIM_TAG_BLUE_ORB}, - {gBattleAnimSpritePalette_RedOrb2, ANIM_TAG_RED_ORB_2}, - {gBattleAnimSpritePalette_PinkPetal, ANIM_TAG_PINK_PETAL}, - {gBattleAnimSpritePalette_PainSplit, ANIM_TAG_PAIN_SPLIT}, - {gBattleAnimSpritePalette_Confetti, ANIM_TAG_CONFETTI}, - {gBattleAnimSpritePalette_GreenStar, ANIM_TAG_GREEN_STAR}, - {gBattleAnimSpritePalette_PinkCloud, ANIM_TAG_PINK_CLOUD}, - {gBattleAnimSpritePalette_SweatDrop, ANIM_TAG_SWEAT_DROP}, - {gBattleAnimSpritePalette_GuardRing, ANIM_TAG_GUARD_RING}, - {gBattleAnimSpritePalette_PurpleScratch, ANIM_TAG_PURPLE_SCRATCH}, - {gBattleAnimSpritePalette_PurpleScratch, ANIM_TAG_PURPLE_SWIPE}, - {gBattleAnimSpritePalette_Finger, ANIM_TAG_TAG_HAND}, - {gBattleAnimSpritePalette_SmallRedEye, ANIM_TAG_SMALL_RED_EYE}, - {gBattleAnimSpritePalette_HollowOrb, ANIM_TAG_HOLLOW_ORB}, - {gBattleAnimSpritePalette_HollowOrb, ANIM_TAG_X_SIGN}, - {gBattleAnimSpritePalette_BluegreenOrb, ANIM_TAG_BLUEGREEN_ORB}, - {gBattleAnimSpritePalette_PawPrint, ANIM_TAG_PAW_PRINT}, - {gBattleAnimSpritePalette_PurpleFlame, ANIM_TAG_PURPLE_FLAME}, - {gBattleAnimSpritePalette_RedBall, ANIM_TAG_RED_BALL}, - {gBattleAnimSpritePalette_SmellingsaltEffect, ANIM_TAG_SMELLINGSALT_EFFECT}, - {gBattleAnimSpritePalette_Meteor, ANIM_TAG_METEOR}, - {gBattleAnimSpritePalette_FlatRock, ANIM_TAG_FLAT_ROCK}, - {gBattleAnimSpritePalette_MagnifyingGlass, ANIM_TAG_MAGNIFYING_GLASS}, - {gBattleAnimSpritePalette_BrownOrb, ANIM_TAG_BROWN_ORB}, - {gBattleAnimSpritePalette_MetalSoundWaves, ANIM_TAG_METAL_SOUND_WAVES}, - {gBattleAnimSpritePalette_FlyingDirt, ANIM_TAG_FLYING_DIRT}, - {gBattleAnimSpritePalette_IcicleSpear, ANIM_TAG_ICICLE_SPEAR}, - {gBattleAnimSpritePalette_Hail, ANIM_TAG_HAIL}, - {gBattleAnimSpritePalette_GlowyRedOrb, ANIM_TAG_GLOWY_RED_ORB}, - {gBattleAnimSpritePalette_GlowyGreenOrb, ANIM_TAG_GLOWY_GREEN_ORB}, - {gBattleAnimSpritePalette_GreenSpike, ANIM_TAG_GREEN_SPIKE}, - {gBattleAnimSpritePalette_WhiteCircleOfLight, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, - {gBattleAnimSpritePalette_GlowyBlueOrb, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpritePalette_RedBrick, ANIM_TAG_RED_BRICK}, - {gBattleAnimSpritePalette_WhiteFeather, ANIM_TAG_WHITE_FEATHER}, - {gBattleAnimSpritePalette_Sparkle6, ANIM_TAG_SPARKLE_6}, - {gBattleAnimSpritePalette_Splash, ANIM_TAG_SPLASH}, - {gBattleAnimSpritePalette_Splash, ANIM_TAG_SWEAT_BEAD}, - {gBattleAnimSpritePalette_Gem1, ANIM_TAG_GEM_1}, - {gBattleAnimSpritePalette_Gem1, ANIM_TAG_GEM_2}, - {gBattleAnimSpritePalette_Gem1, ANIM_TAG_GEM_3}, - {gBattleAnimSpritePalette_SlamHit2, ANIM_TAG_SLAM_HIT_2}, - {gBattleAnimSpritePalette_Recycle, ANIM_TAG_RECYCLE}, - {gBattleAnimSpritePalette_RedParticles, ANIM_TAG_RED_PARTICLES}, - {gBattleAnimSpritePalette_Protect, ANIM_TAG_PROTECT}, - {gBattleAnimSpritePalette_DirtMound, ANIM_TAG_DIRT_MOUND}, - {gBattleAnimSpritePalette_Shock3, ANIM_TAG_SHOCK_3}, - {gBattleAnimSpritePalette_WeatherBall, ANIM_TAG_WEATHER_BALL}, - {gBattleAnimSpritePalette_Bird, ANIM_TAG_BIRD}, - {gBattleAnimSpritePalette_CrossImpact, ANIM_TAG_CROSS_IMPACT}, - {gBattleAnimSpritePalette_Slash2, ANIM_TAG_SLASH_2}, - {gBattleAnimSpritePalette_WhipHit, ANIM_TAG_WHIP_HIT}, - {gBattleAnimSpritePalette_BlueRing2, ANIM_TAG_BLUE_RING_2}, + {gBattleAnimSpritePal_Bone, ANIM_TAG_BONE}, + {gBattleAnimSpritePal_Spark, ANIM_TAG_SPARK}, + {gBattleAnimSpritePal_Pencil, ANIM_TAG_PENCIL}, + {gBattleAnimSpritePal_AirWave, ANIM_TAG_AIR_WAVE}, + {gBattleAnimSpritePal_Orb, ANIM_TAG_ORB}, + {gBattleAnimSpritePal_Sword, ANIM_TAG_SWORD}, + {gBattleAnimSpritePal_Seed, ANIM_TAG_SEED}, + {gBattleAnimSpritePal_Explosion6, ANIM_TAG_EXPLOSION_6}, + {gBattleAnimSpritePal_PinkOrb, ANIM_TAG_PINK_ORB}, + {gBattleAnimSpritePal_Gust, ANIM_TAG_GUST}, + {gBattleAnimSpritePal_IceCube, ANIM_TAG_ICE_CUBE}, + {gBattleAnimSpritePal_Spark2, ANIM_TAG_SPARK_2}, + {gBattleAnimSpritePal_Orange, ANIM_TAG_ORANGE}, + {gBattleAnimSpritePal_YellowBall, ANIM_TAG_YELLOW_BALL}, + {gBattleAnimSpritePal_LockOn, ANIM_TAG_LOCK_ON}, + {gBattleAnimSpritePal_TiedBag, ANIM_TAG_TIED_BAG}, + {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_SMOKE}, + {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_BALL}, + {gBattleAnimSpritePal_Conversion, ANIM_TAG_CONVERSION}, + {gBattleAnimSpritePal_Glass, ANIM_TAG_GLASS}, + {gBattleAnimSpritePal_HornHit, ANIM_TAG_HORN_HIT}, + {gBattleAnimSpritePal_Hit, ANIM_TAG_HIT}, + {gBattleAnimSpritePal_Hit2, ANIM_TAG_HIT_2}, + {gBattleAnimSpritePal_BlueShards, ANIM_TAG_BLUE_SHARDS}, + {gBattleAnimSpritePal_ClosingEye, ANIM_TAG_CLOSING_EYE}, + {gBattleAnimSpritePal_WavingHand, ANIM_TAG_WAVING_HAND}, + {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_HIT_DUPLICATE}, + {gBattleAnimSpritePal_Leer, ANIM_TAG_LEER}, + {gBattleAnimSpritePal_BlueBurst, ANIM_TAG_BLUE_BURST}, + {gBattleAnimSpritePal_SmallEmber, ANIM_TAG_SMALL_EMBER}, + {gBattleAnimSpritePal_GraySmoke, ANIM_TAG_GRAY_SMOKE}, + {gBattleAnimSpritePal_BlueStar, ANIM_TAG_BLUE_STAR}, + {gBattleAnimSpritePal_BubbleBurst, ANIM_TAG_BUBBLE_BURST}, + {gBattleAnimSpritePal_Fire, ANIM_TAG_FIRE}, + {gBattleAnimSpritePal_Fire, ANIM_TAG_SPINNING_FIRE}, + {gBattleAnimSpritePal_Fire, ANIM_TAG_FIRE_PLUME}, + {gBattleAnimSpritePal_Lightning2, ANIM_TAG_LIGHTNING_2}, + {gBattleAnimSpritePal_Lightning2, ANIM_TAG_LIGHTNING}, + {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_CLAW_SLASH_2}, + {gBattleAnimSpritePal_ClawSlash, ANIM_TAG_CLAW_SLASH}, + {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_SCRATCH_3}, + {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_SCRATCH_2}, + {gBattleAnimSpritePal_BubbleBurst2, ANIM_TAG_BUBBLE_BURST_2}, + {gBattleAnimSpritePal_IceChunk, ANIM_TAG_ICE_CHUNK}, + {gBattleAnimSpritePal_Glass2, ANIM_TAG_GLASS_2}, + {gBattleAnimSpritePal_PinkHeart2, ANIM_TAG_PINK_HEART_2}, + {gBattleAnimSpritePal_SapDrip, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpritePal_SapDrip2, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpritePal_Sparkle1, ANIM_TAG_SPARKLE_1}, + {gBattleAnimSpritePal_Sparkle2, ANIM_TAG_SPARKLE_2}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_HUMANOID_FOOT}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_MONSTER_FOOT}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_HUMANOID_HAND}, + {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_NOISE_LINE}, + {gBattleAnimSpritePal_YellowUnk, ANIM_TAG_YELLOW_UNK}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_RED_FIST}, + {gBattleAnimSpritePal_SlamHit, ANIM_TAG_SLAM_HIT}, + {gBattleAnimSpritePal_Ring, ANIM_TAG_RING}, + {gBattleAnimSpritePal_Rocks, ANIM_TAG_ROCKS}, + {gBattleAnimSpritePal_Z, ANIM_TAG_Z}, + {gBattleAnimSpritePal_YellowUnk2, ANIM_TAG_YELLOW_UNK_2}, + {gBattleAnimSpritePal_AirSlash, ANIM_TAG_AIR_SLASH}, + {gBattleAnimSpritePal_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS}, + {gBattleAnimSpritePal_Leaf, ANIM_TAG_LEAF}, + {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER}, + {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POISON_POWDER}, + {gBattleAnimSpritePal_BrownTriangle, ANIM_TAG_BROWN_TRIANGLE}, + {gBattleAnimSpritePal_SleepPowder, ANIM_TAG_SLEEP_POWDER}, + {gBattleAnimSpritePal_StunSpore, ANIM_TAG_STUN_SPORE}, + {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POWDER}, + {gBattleAnimSpritePal_Sparkle3, ANIM_TAG_SPARKLE_3}, + {gBattleAnimSpritePal_Sparkle3, ANIM_TAG_SPARKLE_4}, + {gBattleAnimSpritePal_MusicNotes, ANIM_TAG_MUSIC_NOTES}, + {gBattleAnimSpritePal_Duck, ANIM_TAG_DUCK}, + {gBattleAnimSpritePal_MudSand, ANIM_TAG_MUD_SAND}, + {gBattleAnimSpritePal_Alert, ANIM_TAG_ALERT}, + {gBattleAnimSpritePal_BlueFlames, ANIM_TAG_BLUE_FLAMES}, + {gBattleAnimSpritePal_BlueFlames, ANIM_TAG_BLUE_FLAMES_2}, + {gBattleAnimSpritePal_Shock4, ANIM_TAG_SHOCK_4}, + {gBattleAnimSpritePal_Shock4, ANIM_TAG_SHOCK}, + {gBattleAnimSpritePal_Bell2, ANIM_TAG_BELL_2}, + {gBattleAnimSpritePal_PinkGlove, ANIM_TAG_PINK_GLOVE}, + {gBattleAnimSpritePal_BlueLines, ANIM_TAG_BLUE_LINES}, + {gBattleAnimSpritePal_Impact3, ANIM_TAG_IMPACT_3}, + {gBattleAnimSpritePal_Impact2, ANIM_TAG_IMPACT_2}, + {gBattleAnimSpritePal_Reticle, ANIM_TAG_RETICLE}, + {gBattleAnimSpritePal_Breath, ANIM_TAG_BREATH}, + {gBattleAnimSpritePal_Anger, ANIM_TAG_ANGER}, + {gBattleAnimSpritePal_Snowball, ANIM_TAG_SNOWBALL}, + {gBattleAnimSpritePal_Vine, ANIM_TAG_VINE}, + {gBattleAnimSpritePal_Sword2, ANIM_TAG_SWORD_2}, + {gBattleAnimSpritePal_Clapping, ANIM_TAG_CLAPPING}, + {gBattleAnimSpritePal_RedTube, ANIM_TAG_RED_TUBE}, + {gBattleAnimSpritePal_Amnesia, ANIM_TAG_AMNESIA}, + {gBattleAnimSpritePal_String2, ANIM_TAG_STRING_2}, + {gBattleAnimSpritePal_Pencil2, ANIM_TAG_PENCIL_2}, + {gBattleAnimSpritePal_Petal, ANIM_TAG_PETAL}, + {gBattleAnimSpritePal_BentSpoon, ANIM_TAG_BENT_SPOON}, + {gBattleAnimSpritePal_String2, ANIM_TAG_WEB}, + {gBattleAnimSpritePal_MilkBottle, ANIM_TAG_MILK_BOTTLE}, + {gBattleAnimSpritePal_Coin, ANIM_TAG_COIN}, + {gBattleAnimSpritePal_CrackedEgg, ANIM_TAG_CRACKED_EGG}, + {gBattleAnimSpritePal_CrackedEgg, ANIM_TAG_HATCHED_EGG}, + {gBattleAnimSpritePal_FreshEgg, ANIM_TAG_FRESH_EGG}, + {gBattleAnimSpritePal_Fangs, ANIM_TAG_FANGS}, + {gBattleAnimSpritePal_Explosion2, ANIM_TAG_EXPLOSION_2}, + {gBattleAnimSpritePal_Explosion2, ANIM_TAG_EXPLOSION_3}, + {gBattleAnimSpritePal_WaterDroplet, ANIM_TAG_WATER_DROPLET}, + {gBattleAnimSpritePal_WaterDroplet, ANIM_TAG_WATER_DROPLET_2}, + {gBattleAnimSpritePal_Seed2, ANIM_TAG_SEED_2}, + {gBattleAnimSpritePal_Seed2, ANIM_TAG_SPROUT}, + {gBattleAnimSpritePal_RedWand, ANIM_TAG_RED_WAND}, + {gBattleAnimSpritePal_PurpleGreenUnk, ANIM_TAG_PURPLE_GREEN_UNK}, + {gBattleAnimSpritePal_WaterColumn, ANIM_TAG_WATER_COLUMN}, + {gBattleAnimSpritePal_MudUnk, ANIM_TAG_MUD_UNK}, + {gBattleAnimSpritePal_RainDrops, ANIM_TAG_RAIN_DROPS}, + {gBattleAnimSpritePal_FurySwipes, ANIM_TAG_FURY_SWIPES}, + {gBattleAnimSpritePal_Vine2, ANIM_TAG_VINE_2}, + {gBattleAnimSpritePal_Teeth, ANIM_TAG_TEETH}, + {gBattleAnimSpritePal_Bone2, ANIM_TAG_BONE_2}, + {gBattleAnimSpritePal_WhiteBag, ANIM_TAG_WHITE_BAG}, + {gBattleAnimSpritePal_Unknown, ANIM_TAG_UNKNOWN}, + {gBattleAnimSpritePal_PurpleCoral, ANIM_TAG_PURPLE_CORAL}, + {gBattleAnimSpritePal_PurpleCoral, ANIM_TAG_PURPLE_DROPLET}, + {gBattleAnimSpritePal_Shock2, ANIM_TAG_SHOCK_2}, + {gBattleAnimSpritePal_ClosingEye2, ANIM_TAG_CLOSING_EYE_2}, + {gBattleAnimSpritePal_MetalBall, ANIM_TAG_METAL_BALL}, + {gBattleAnimSpritePal_MonsterDoll, ANIM_TAG_MONSTER_DOLL}, + {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND}, + {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND_2}, + {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_4}, + {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_5}, + {gBattleAnimSpritePal_Tongue, ANIM_TAG_TONGUE}, + {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE}, + {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE_2}, + {gBattleAnimSpritePal_Impact, ANIM_TAG_IMPACT}, + {gBattleAnimSpritePal_CircleImpact, ANIM_TAG_CIRCLE_IMPACT}, + {gBattleAnimSpritePal_Impact, ANIM_TAG_SCRATCH}, + {gBattleAnimSpritePal_Impact, ANIM_TAG_CUT}, + {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_SHARP_TEETH}, + {gBattleAnimSpritePal_RainbowRings, ANIM_TAG_RAINBOW_RINGS}, + {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_CRYSTALS}, + {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_SPIKES}, + {gBattleAnimSpritePal_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, + {gBattleAnimSpritePal_MistCloud, ANIM_TAG_MIST_CLOUD}, + {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_CLAMP}, + {gBattleAnimSpritePal_RainDrops, ANIM_TAG_BUBBLE}, + {gBattleAnimSpritePal_Orbs, ANIM_TAG_ORBS}, + {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_IMPACT}, + {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_ORB}, + {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_POISON_BUBBLE}, + {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE}, + {gBattleAnimSpritePal_Spikes, ANIM_TAG_SPIKES}, + {gBattleAnimSpritePal_HornHit2, ANIM_TAG_HORN_HIT_2}, + {gBattleAnimSpritePal_AirWave2, ANIM_TAG_AIR_WAVE_2}, + {gBattleAnimSpritePal_SmallBubbles, ANIM_TAG_SMALL_BUBBLES}, + {gBattleAnimSpritePal_RoundShadow, ANIM_TAG_ROUND_SHADOW}, + {gBattleAnimSpritePal_Sunlight, ANIM_TAG_SUNLIGHT}, + {gBattleAnimSpritePal_Spore, ANIM_TAG_SPORE}, + {gBattleAnimSpritePal_Flower, ANIM_TAG_FLOWER}, + {gBattleAnimSpritePal_RazorLeaf, ANIM_TAG_RAZOR_LEAF}, + {gBattleAnimSpritePal_Needle, ANIM_TAG_NEEDLE}, + {gBattleAnimSpritePal_WhirlwindLines, ANIM_TAG_WHIRLWIND_LINES}, + {gBattleAnimSpritePal_GoldRing, ANIM_TAG_GOLD_RING}, + {gBattleAnimSpritePal_PurpleRing, ANIM_TAG_PURPLE_RING}, + {gBattleAnimSpritePal_BlueRing, ANIM_TAG_BLUE_RING}, + {gBattleAnimSpritePal_GreenLightWall, ANIM_TAG_GREEN_LIGHT_WALL}, + {gBattleAnimSpritePal_BlueLightWall, ANIM_TAG_BLUE_LIGHT_WALL}, + {gBattleAnimSpritePal_RedLightWall, ANIM_TAG_RED_LIGHT_WALL}, + {gBattleAnimSpritePal_GrayLightWall, ANIM_TAG_GRAY_LIGHT_WALL}, + {gBattleAnimSpritePal_OrangeLightWall, ANIM_TAG_ORANGE_LIGHT_WALL}, + {gBattleAnimSpritePal_BlackBall2, ANIM_TAG_BLACK_BALL_2}, + {gBattleAnimSpritePal_PurpleGasCloud, ANIM_TAG_PURPLE_GAS_CLOUD}, + {gBattleAnimSpritePal_Spark, ANIM_TAG_SPARK_H}, + {gBattleAnimSpritePal_YellowStar, ANIM_TAG_YELLOW_STAR}, + {gBattleAnimSpritePal_LargeFreshEgg, ANIM_TAG_LARGE_FRESH_EGG}, + {gBattleAnimSpritePal_ShadowBall, ANIM_TAG_SHADOW_BALL}, + {gBattleAnimSpritePal_Lick, ANIM_TAG_LICK}, + {gBattleAnimSpritePal_VoidLines, ANIM_TAG_VOID_LINES}, + {gBattleAnimSpritePal_String, ANIM_TAG_STRING}, + {gBattleAnimSpritePal_String, ANIM_TAG_WEB_THREAD}, + {gBattleAnimSpritePal_String, ANIM_TAG_SPIDER_WEB}, + {gBattleAnimSpritePal_Lightbulb, ANIM_TAG_LIGHTBULB}, + {gBattleAnimSpritePal_Slash, ANIM_TAG_SLASH}, + {gBattleAnimSpritePal_FocusEnergy, ANIM_TAG_FOCUS_ENERGY}, + {gBattleAnimSpritePal_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE}, + {gBattleAnimSpritePal_Tendrils, ANIM_TAG_TENDRILS}, + {gBattleAnimSpritePal_Eye, ANIM_TAG_EYE}, + {gBattleAnimSpritePal_WhiteShadow, ANIM_TAG_WHITE_SHADOW}, + {gBattleAnimSpritePal_TealAlert, ANIM_TAG_TEAL_ALERT}, + {gBattleAnimSpritePal_OpeningEye, ANIM_TAG_OPENING_EYE}, + {gBattleAnimSpritePal_RoundWhiteHalo, ANIM_TAG_ROUND_WHITE_HALO}, + {gBattleAnimSpritePal_FangAttack, ANIM_TAG_FANG_ATTACK}, + {gBattleAnimSpritePal_PurpleHandOutline, ANIM_TAG_PURPLE_HAND_OUTLINE}, + {gBattleAnimSpritePal_Moon, ANIM_TAG_MOON}, + {gBattleAnimSpritePal_GreenSparkle, ANIM_TAG_GREEN_SPARKLE}, + {gBattleAnimSpritePal_Spiral, ANIM_TAG_SPIRAL}, + {gBattleAnimSpritePal_SnoreZ, ANIM_TAG_SNORE_Z}, + {gBattleAnimSpritePal_Explosion, ANIM_TAG_EXPLOSION}, + {gBattleAnimSpritePal_Nail, ANIM_TAG_NAIL}, + {gBattleAnimSpritePal_GhostlySpirit, ANIM_TAG_GHOSTLY_SPIRIT}, + {gBattleAnimSpritePal_WarmRock, ANIM_TAG_WARM_ROCK}, + {gBattleAnimSpritePal_BreakingEgg, ANIM_TAG_BREAKING_EGG}, + {gBattleAnimSpritePal_ThinRing, ANIM_TAG_THIN_RING}, + {gBattleAnimSpritePal_PunchImpact, ANIM_TAG_PUNCH_IMPACT}, + {gBattleAnimSpritePal_Bell, ANIM_TAG_BELL}, + {gBattleAnimSpritePal_MusicNotes2, ANIM_TAG_MUSIC_NOTES_2}, + {gBattleAnimSpritePal_SpeedDust, ANIM_TAG_SPEED_DUST}, + {gBattleAnimSpritePal_BlueLightWall, ANIM_TAG_TORN_METAL}, + {gBattleAnimSpritePal_ThoughtBubble, ANIM_TAG_THOUGHT_BUBBLE}, + {gBattleAnimSpritePal_MagentaHeart, ANIM_TAG_MAGENTA_HEART}, + {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_ELECTRIC_ORBS}, + {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_CIRCLE_OF_LIGHT}, + {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_ELECTRICITY}, + {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER_2}, + {gBattleAnimSpritePal_MovementWaves, ANIM_TAG_MOVEMENT_WAVES}, + {gBattleAnimSpritePal_RedHeart, ANIM_TAG_RED_HEART}, + {gBattleAnimSpritePal_RedOrb, ANIM_TAG_RED_ORB}, + {gBattleAnimSpritePal_EyeSparkle, ANIM_TAG_EYE_SPARKLE}, + {gBattleAnimSpritePal_PinkHeart, ANIM_TAG_PINK_HEART}, + {gBattleAnimSpritePal_Angel, ANIM_TAG_ANGEL}, + {gBattleAnimSpritePal_Devil, ANIM_TAG_DEVIL}, + {gBattleAnimSpritePal_Swipe, ANIM_TAG_SWIPE}, + {gBattleAnimSpritePal_Roots, ANIM_TAG_ROOTS}, + {gBattleAnimSpritePal_ItemBag, ANIM_TAG_ITEM_BAG}, + {gBattleAnimSpritePal_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE}, + {gBattleAnimSpritePal_Pokeball, ANIM_TAG_POKEBALL}, + {gBattleAnimSpritePal_Pokeball, ANIM_TAG_SPOTLIGHT}, + {gBattleAnimSpritePal_LetterZ, ANIM_TAG_LETTER_Z}, + {gBattleAnimSpritePal_RapidSpin, ANIM_TAG_RAPID_SPIN}, + {gBattleAnimSpritePal_TriForceTriangle, ANIM_TAG_TRI_FORCE_TRIANGLE}, + {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_ORB}, + {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_FIRE}, + {gBattleAnimSpritePal_GoldStars, ANIM_TAG_GOLD_STARS}, + {gBattleAnimSpritePal_EclipsingOrb, ANIM_TAG_ECLIPSING_ORB}, + {gBattleAnimSpritePal_GrayOrb, ANIM_TAG_GRAY_ORB}, + {gBattleAnimSpritePal_BlueOrb, ANIM_TAG_BLUE_ORB}, + {gBattleAnimSpritePal_RedOrb2, ANIM_TAG_RED_ORB_2}, + {gBattleAnimSpritePal_PinkPetal, ANIM_TAG_PINK_PETAL}, + {gBattleAnimSpritePal_PainSplit, ANIM_TAG_PAIN_SPLIT}, + {gBattleAnimSpritePal_Confetti, ANIM_TAG_CONFETTI}, + {gBattleAnimSpritePal_GreenStar, ANIM_TAG_GREEN_STAR}, + {gBattleAnimSpritePal_PinkCloud, ANIM_TAG_PINK_CLOUD}, + {gBattleAnimSpritePal_SweatDrop, ANIM_TAG_SWEAT_DROP}, + {gBattleAnimSpritePal_GuardRing, ANIM_TAG_GUARD_RING}, + {gBattleAnimSpritePal_PurpleScratch, ANIM_TAG_PURPLE_SCRATCH}, + {gBattleAnimSpritePal_PurpleScratch, ANIM_TAG_PURPLE_SWIPE}, + {gBattleAnimSpritePal_Finger, ANIM_TAG_TAG_HAND}, + {gBattleAnimSpritePal_SmallRedEye, ANIM_TAG_SMALL_RED_EYE}, + {gBattleAnimSpritePal_HollowOrb, ANIM_TAG_HOLLOW_ORB}, + {gBattleAnimSpritePal_HollowOrb, ANIM_TAG_X_SIGN}, + {gBattleAnimSpritePal_BluegreenOrb, ANIM_TAG_BLUEGREEN_ORB}, + {gBattleAnimSpritePal_PawPrint, ANIM_TAG_PAW_PRINT}, + {gBattleAnimSpritePal_PurpleFlame, ANIM_TAG_PURPLE_FLAME}, + {gBattleAnimSpritePal_RedBall, ANIM_TAG_RED_BALL}, + {gBattleAnimSpritePal_SmellingsaltEffect, ANIM_TAG_SMELLINGSALT_EFFECT}, + {gBattleAnimSpritePal_Meteor, ANIM_TAG_METEOR}, + {gBattleAnimSpritePal_FlatRock, ANIM_TAG_FLAT_ROCK}, + {gBattleAnimSpritePal_MagnifyingGlass, ANIM_TAG_MAGNIFYING_GLASS}, + {gBattleAnimSpritePal_BrownOrb, ANIM_TAG_BROWN_ORB}, + {gBattleAnimSpritePal_MetalSoundWaves, ANIM_TAG_METAL_SOUND_WAVES}, + {gBattleAnimSpritePal_FlyingDirt, ANIM_TAG_FLYING_DIRT}, + {gBattleAnimSpritePal_IcicleSpear, ANIM_TAG_ICICLE_SPEAR}, + {gBattleAnimSpritePal_Hail, ANIM_TAG_HAIL}, + {gBattleAnimSpritePal_GlowyRedOrb, ANIM_TAG_GLOWY_RED_ORB}, + {gBattleAnimSpritePal_GlowyGreenOrb, ANIM_TAG_GLOWY_GREEN_ORB}, + {gBattleAnimSpritePal_GreenSpike, ANIM_TAG_GREEN_SPIKE}, + {gBattleAnimSpritePal_WhiteCircleOfLight, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, + {gBattleAnimSpritePal_GlowyBlueOrb, ANIM_TAG_GLOWY_BLUE_ORB}, + {gBattleAnimSpritePal_RedBrick, ANIM_TAG_RED_BRICK}, + {gBattleAnimSpritePal_WhiteFeather, ANIM_TAG_WHITE_FEATHER}, + {gBattleAnimSpritePal_Sparkle6, ANIM_TAG_SPARKLE_6}, + {gBattleAnimSpritePal_Splash, ANIM_TAG_SPLASH}, + {gBattleAnimSpritePal_Splash, ANIM_TAG_SWEAT_BEAD}, + {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_1}, + {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_2}, + {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_3}, + {gBattleAnimSpritePal_SlamHit2, ANIM_TAG_SLAM_HIT_2}, + {gBattleAnimSpritePal_Recycle, ANIM_TAG_RECYCLE}, + {gBattleAnimSpritePal_RedParticles, ANIM_TAG_RED_PARTICLES}, + {gBattleAnimSpritePal_Protect, ANIM_TAG_PROTECT}, + {gBattleAnimSpritePal_DirtMound, ANIM_TAG_DIRT_MOUND}, + {gBattleAnimSpritePal_Shock3, ANIM_TAG_SHOCK_3}, + {gBattleAnimSpritePal_WeatherBall, ANIM_TAG_WEATHER_BALL}, + {gBattleAnimSpritePal_Bird, ANIM_TAG_BIRD}, + {gBattleAnimSpritePal_CrossImpact, ANIM_TAG_CROSS_IMPACT}, + {gBattleAnimSpritePal_Slash2, ANIM_TAG_SLASH_2}, + {gBattleAnimSpritePal_WhipHit, ANIM_TAG_WHIP_HIT}, + {gBattleAnimSpritePal_BlueRing2, ANIM_TAG_BLUE_RING_2}, }; const struct BattleAnimBackground gBattleAnimBackgroundTable[] = diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 09a442221..88319a2e3 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -3067,7 +3067,7 @@ void sub_8105CB4(u8 taskId) paletteNums[i] = AllocSpritePalette(ANIM_SPRITES_START - i); gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000); - LZDecompressWram(gBattleAnimSpritePalette_MusicNotes2, gMonSpritesGfxPtr->field_17C); + LZDecompressWram(gBattleAnimSpritePal_MusicNotes2, gMonSpritesGfxPtr->field_17C); for (i = 0; i < 3; i++) LoadPalette(&gMonSpritesGfxPtr->field_17C[i * 32], (u16)((paletteNums[i] << 4) + 0x100), 32); diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 8583276ee..ee37d199f 100755 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -105,34 +105,34 @@ static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] = const struct CompressedSpriteSheet gBallOpenParticleSpritesheets[] = { - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EC}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6ED}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EE}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6EF}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F0}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F1}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F2}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F3}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F4}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F5}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F6}, - {gBattleAnimSpriteSheet_Particles, 0x100, 0xD6F7}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6EC}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6ED}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6EE}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6EF}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F0}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F1}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F2}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F3}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F4}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F5}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F6}, + {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F7}, }; const struct CompressedSpritePalette gBallOpenParticlePalettes[] = { - {gBattleAnimSpritePalette_CircleImpact, 0xD6EC}, - {gBattleAnimSpritePalette_CircleImpact, 0xD6ED}, - {gBattleAnimSpritePalette_CircleImpact, 0xD6EE}, - {gBattleAnimSpritePalette_CircleImpact, 0xD6EF}, - {gBattleAnimSpritePalette_CircleImpact, 0xD6F0}, - {gBattleAnimSpritePalette_CircleImpact, 0xD6F1}, - {gBattleAnimSpritePalette_CircleImpact, 0xD6F2}, - {gBattleAnimSpritePalette_CircleImpact, 0xD6F3}, - {gBattleAnimSpritePalette_CircleImpact, 0xD6F4}, - {gBattleAnimSpritePalette_CircleImpact, 0xD6F5}, - {gBattleAnimSpritePalette_CircleImpact, 0xD6F6}, - {gBattleAnimSpritePalette_CircleImpact, 0xD6F7}, + {gBattleAnimSpritePal_CircleImpact, 0xD6EC}, + {gBattleAnimSpritePal_CircleImpact, 0xD6ED}, + {gBattleAnimSpritePal_CircleImpact, 0xD6EE}, + {gBattleAnimSpritePal_CircleImpact, 0xD6EF}, + {gBattleAnimSpritePal_CircleImpact, 0xD6F0}, + {gBattleAnimSpritePal_CircleImpact, 0xD6F1}, + {gBattleAnimSpritePal_CircleImpact, 0xD6F2}, + {gBattleAnimSpritePal_CircleImpact, 0xD6F3}, + {gBattleAnimSpritePal_CircleImpact, 0xD6F4}, + {gBattleAnimSpritePal_CircleImpact, 0xD6F5}, + {gBattleAnimSpritePal_CircleImpact, 0xD6F6}, + {gBattleAnimSpritePal_CircleImpact, 0xD6F7}, }; const union AnimCmd gUnknown_085E5154[] = diff --git a/src/graphics.c b/src/graphics.c index f585a3feb..509f5bea9 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -21,112 +21,112 @@ const u32 gSmokescreenImpactPalette[] = INCBIN_U32("graphics/battle_anims/sprite const u32 gBlankGfxCompressed[] = INCBIN_U32("graphics/interface/blank.4bpp.lz"); // Battle anims -const u32 gBattleAnimSpriteSheet_Bubble[] = INCBIN_U32("graphics/battle_anims/sprites/bubble.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Bone[] = INCBIN_U32("graphics/battle_anims/sprites/bone.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_AirWave[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Orb[] = INCBIN_U32("graphics/battle_anims/sprites/orb.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Sword[] = INCBIN_U32("graphics/battle_anims/sprites/sword.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Seed[] = INCBIN_U32("graphics/battle_anims/sprites/seed.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Bubble[] = INCBIN_U32("graphics/battle_anims/sprites/bubble.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Bone[] = INCBIN_U32("graphics/battle_anims/sprites/bone.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_AirWave[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Orb[] = INCBIN_U32("graphics/battle_anims/sprites/orb.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Sword[] = INCBIN_U32("graphics/battle_anims/sprites/sword.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Seed[] = INCBIN_U32("graphics/battle_anims/sprites/seed.4bpp.lz"); -const u32 gBattleAnimSpritePalette_RainDrops[] = INCBIN_U32("graphics/battle_anims/sprites/rain_drops.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Bone[] = INCBIN_U32("graphics/battle_anims/sprites/bone.gbapal.lz"); -const u32 gBattleAnimSpritePalette_AirWave[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Orb[] = INCBIN_U32("graphics/battle_anims/sprites/orb.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Sword[] = INCBIN_U32("graphics/battle_anims/sprites/sword.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Seed[] = INCBIN_U32("graphics/battle_anims/sprites/seed.gbapal.lz"); +const u32 gBattleAnimSpritePal_RainDrops[] = INCBIN_U32("graphics/battle_anims/sprites/rain_drops.gbapal.lz"); +const u32 gBattleAnimSpritePal_Bone[] = INCBIN_U32("graphics/battle_anims/sprites/bone.gbapal.lz"); +const u32 gBattleAnimSpritePal_AirWave[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave.gbapal.lz"); +const u32 gBattleAnimSpritePal_Orb[] = INCBIN_U32("graphics/battle_anims/sprites/orb.gbapal.lz"); +const u32 gBattleAnimSpritePal_Sword[] = INCBIN_U32("graphics/battle_anims/sprites/sword.gbapal.lz"); +const u32 gBattleAnimSpritePal_Seed[] = INCBIN_U32("graphics/battle_anims/sprites/seed.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Needle[] = INCBIN_U32("graphics/battle_anims/sprites/needle.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Needle[] = INCBIN_U32("graphics/battle_anims/sprites/needle.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Needle[] = INCBIN_U32("graphics/battle_anims/sprites/needle.4bpp.lz"); +const u32 gBattleAnimSpritePal_Needle[] = INCBIN_U32("graphics/battle_anims/sprites/needle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Explosion6[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_6.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Explosion6[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_6.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Explosion6[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_6.4bpp.lz"); +const u32 gBattleAnimSpritePal_Explosion6[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_6.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PinkOrb[] = INCBIN_U32("graphics/battle_anims/sprites/pink_orb.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PinkOrb[] = INCBIN_U32("graphics/battle_anims/sprites/pink_orb.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PinkOrb[] = INCBIN_U32("graphics/battle_anims/sprites/pink_orb.4bpp.lz"); +const u32 gBattleAnimSpritePal_PinkOrb[] = INCBIN_U32("graphics/battle_anims/sprites/pink_orb.gbapal.lz"); -const u32 gBattleAnimSpritePalette_IceCube[] = INCBIN_U32("graphics/battle_anims/sprites/ice_cube.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_IceCube[] = INCBIN_U32("graphics/battle_anims/sprites/ice_cube.4bpp.lz"); +const u32 gBattleAnimSpritePal_IceCube[] = INCBIN_U32("graphics/battle_anims/sprites/ice_cube.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_IceCube[] = INCBIN_U32("graphics/battle_anims/sprites/ice_cube.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Gust[] = INCBIN_U32("graphics/battle_anims/sprites/gust.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Gust[] = INCBIN_U32("graphics/battle_anims/sprites/gust.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Gust[] = INCBIN_U32("graphics/battle_anims/sprites/gust.4bpp.lz"); +const u32 gBattleAnimSpritePal_Gust[] = INCBIN_U32("graphics/battle_anims/sprites/gust.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Spark2[] = INCBIN_U32("graphics/battle_anims/sprites/spark_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Spark2[] = INCBIN_U32("graphics/battle_anims/sprites/spark_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Spark2[] = INCBIN_U32("graphics/battle_anims/sprites/spark_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_Spark2[] = INCBIN_U32("graphics/battle_anims/sprites/spark_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Orange[] = INCBIN_U32("graphics/battle_anims/sprites/orange.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Orange[] = INCBIN_U32("graphics/battle_anims/sprites/orange.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Orange[] = INCBIN_U32("graphics/battle_anims/sprites/orange.4bpp.lz"); +const u32 gBattleAnimSpritePal_Orange[] = INCBIN_U32("graphics/battle_anims/sprites/orange.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Spikes[] = INCBIN_U32("graphics/battle_anims/sprites/spikes.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Spikes[] = INCBIN_U32("graphics/battle_anims/sprites/spikes.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Spikes[] = INCBIN_U32("graphics/battle_anims/sprites/spikes.4bpp.lz"); +const u32 gBattleAnimSpritePal_Spikes[] = INCBIN_U32("graphics/battle_anims/sprites/spikes.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_YellowBall[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_ball.4bpp.lz"); -const u32 gBattleAnimSpritePalette_YellowBall[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_ball.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_YellowBall[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_ball.4bpp.lz"); +const u32 gBattleAnimSpritePal_YellowBall[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_ball.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_TiedBag[] = INCBIN_U32("graphics/battle_anims/sprites/tied_bag.4bpp.lz"); -const u32 gBattleAnimSpritePalette_TiedBag[] = INCBIN_U32("graphics/battle_anims/sprites/tied_bag.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_TiedBag[] = INCBIN_U32("graphics/battle_anims/sprites/tied_bag.4bpp.lz"); +const u32 gBattleAnimSpritePal_TiedBag[] = INCBIN_U32("graphics/battle_anims/sprites/tied_bag.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_BlackSmoke[] = INCBIN_U32("graphics/battle_anims/sprites/black_smoke.4bpp.lz"); -const u32 gBattleAnimSpritePalette_BlackSmoke[] = INCBIN_U32("graphics/battle_anims/sprites/black_smoke.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BlackSmoke[] = INCBIN_U32("graphics/battle_anims/sprites/black_smoke.4bpp.lz"); +const u32 gBattleAnimSpritePal_BlackSmoke[] = INCBIN_U32("graphics/battle_anims/sprites/black_smoke.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_BlackBall[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_BlackBall[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball.4bpp.lz"); const u32 gUnknownGfx_C035B8[] = INCBIN_U32("graphics/unknown/unknown_C035B8.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Glass[] = INCBIN_U32("graphics/battle_anims/sprites/glass.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Glass[] = INCBIN_U32("graphics/battle_anims/sprites/glass.4bpp.lz"); +const u32 gBattleAnimSpritePal_Glass[] = INCBIN_U32("graphics/battle_anims/sprites/glass.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Glass[] = INCBIN_U32("graphics/battle_anims/sprites/glass.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_HornHit[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit.4bpp.lz"); -const u32 gBattleAnimSpritePalette_HornHit[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_HornHit[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit.4bpp.lz"); +const u32 gBattleAnimSpritePal_HornHit[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit.gbapal.lz"); -const u32 gBattleAnimSpritePalette_BlueShards[] = INCBIN_U32("graphics/battle_anims/sprites/blue_shards.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_BlueShards[] = INCBIN_U32("graphics/battle_anims/sprites/blue_shards.4bpp.lz"); +const u32 gBattleAnimSpritePal_BlueShards[] = INCBIN_U32("graphics/battle_anims/sprites/blue_shards.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BlueShards[] = INCBIN_U32("graphics/battle_anims/sprites/blue_shards.4bpp.lz"); const u32 gUnused_BattleSpritePalette_023[] = INCBIN_U32("graphics/unused/battle_anim_023.gbapal.lz"); const u32 gUnusedGfx_MusicNotes[] = INCBIN_U32("graphics/unused/music_notes.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Hit[] = INCBIN_U32("graphics/battle_anims/sprites/hit.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Hit[] = INCBIN_U32("graphics/battle_anims/sprites/hit.4bpp.lz"); +const u32 gBattleAnimSpritePal_Hit[] = INCBIN_U32("graphics/battle_anims/sprites/hit.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Hit[] = INCBIN_U32("graphics/battle_anims/sprites/hit.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Hit2[] = INCBIN_U32("graphics/battle_anims/sprites/hit_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_Hit2[] = INCBIN_U32("graphics/battle_anims/sprites/hit_2.gbapal.lz"); -const u32 gBattleAnimSpritePalette_WavingHand[] = INCBIN_U32("graphics/battle_anims/sprites/waving_hand.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_WavingHand[] = INCBIN_U32("graphics/battle_anims/sprites/waving_hand.4bpp.lz"); +const u32 gBattleAnimSpritePal_WavingHand[] = INCBIN_U32("graphics/battle_anims/sprites/waving_hand.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_WavingHand[] = INCBIN_U32("graphics/battle_anims/sprites/waving_hand.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_ClosingEye[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye.4bpp.lz"); -const u32 gBattleAnimSpritePalette_ClosingEye[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_ClosingEye[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye.4bpp.lz"); +const u32 gBattleAnimSpritePal_ClosingEye[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_BlueStar[] = INCBIN_U32("graphics/battle_anims/sprites/blue_star.4bpp.lz"); -const u32 gBattleAnimSpritePalette_BlueStar[] = INCBIN_U32("graphics/battle_anims/sprites/blue_star.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BlueStar[] = INCBIN_U32("graphics/battle_anims/sprites/blue_star.4bpp.lz"); +const u32 gBattleAnimSpritePal_BlueStar[] = INCBIN_U32("graphics/battle_anims/sprites/blue_star.gbapal.lz"); -const u32 gBattleAnimSpritePalette_BubbleBurst[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_BubbleBurst[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst.4bpp.lz"); +const u32 gBattleAnimSpritePal_BubbleBurst[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BubbleBurst[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_HitDuplicate[] = INCBIN_U32("graphics/battle_anims/sprites/hit_duplicate.4bpp.lz"); -const u32 gBattleAnimSpritePalette_HitDuplicate[] = INCBIN_U32("graphics/battle_anims/sprites/hit_duplicate.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_HitDuplicate[] = INCBIN_U32("graphics/battle_anims/sprites/hit_duplicate.4bpp.lz"); +const u32 gBattleAnimSpritePal_HitDuplicate[] = INCBIN_U32("graphics/battle_anims/sprites/hit_duplicate.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Leer[] = INCBIN_U32("graphics/battle_anims/sprites/leer.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Leer[] = INCBIN_U32("graphics/battle_anims/sprites/leer.4bpp.lz"); +const u32 gBattleAnimSpritePal_Leer[] = INCBIN_U32("graphics/battle_anims/sprites/leer.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Leer[] = INCBIN_U32("graphics/battle_anims/sprites/leer.4bpp.lz"); -const u32 gBattleAnimSpritePalette_BlueBurst[] = INCBIN_U32("graphics/battle_anims/sprites/blue_burst.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_BlueBurst[] = INCBIN_U32("graphics/battle_anims/sprites/blue_burst.4bpp.lz"); +const u32 gBattleAnimSpritePal_BlueBurst[] = INCBIN_U32("graphics/battle_anims/sprites/blue_burst.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BlueBurst[] = INCBIN_U32("graphics/battle_anims/sprites/blue_burst.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_SmallEmber[] = INCBIN_U32("graphics/battle_anims/sprites/small_ember.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SmallEmber[] = INCBIN_U32("graphics/battle_anims/sprites/small_ember.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SmallEmber[] = INCBIN_U32("graphics/battle_anims/sprites/small_ember.4bpp.lz"); +const u32 gBattleAnimSpritePal_SmallEmber[] = INCBIN_U32("graphics/battle_anims/sprites/small_ember.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_GraySmoke[] = INCBIN_U32("graphics/battle_anims/sprites/gray_smoke.4bpp.lz"); -const u32 gBattleAnimSpritePalette_GraySmoke[] = INCBIN_U32("graphics/battle_anims/sprites/gray_smoke.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GraySmoke[] = INCBIN_U32("graphics/battle_anims/sprites/gray_smoke.4bpp.lz"); +const u32 gBattleAnimSpritePal_GraySmoke[] = INCBIN_U32("graphics/battle_anims/sprites/gray_smoke.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Fire[] = INCBIN_U32("graphics/battle_anims/sprites/fire.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Fire[] = INCBIN_U32("graphics/battle_anims/sprites/fire.4bpp.lz"); +const u32 gBattleAnimSpritePal_Fire[] = INCBIN_U32("graphics/battle_anims/sprites/fire.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Fire[] = INCBIN_U32("graphics/battle_anims/sprites/fire.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_SpinningFire[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_fire.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_FirePlume[] = INCBIN_U32("graphics/battle_anims/sprites/fire_plume.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_SpinningFire[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_fire.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_FirePlume[] = INCBIN_U32("graphics/battle_anims/sprites/fire_plume.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Lightning2[] = INCBIN_U32("graphics/battle_anims/sprites/lightning_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Lightning2[] = INCBIN_U32("graphics/battle_anims/sprites/lightning_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_Lightning2[] = INCBIN_U32("graphics/battle_anims/sprites/lightning_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Lightning2[] = INCBIN_U32("graphics/battle_anims/sprites/lightning_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Lightning[] = INCBIN_U32("graphics/battle_anims/sprites/lightning.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Lightning[] = INCBIN_U32("graphics/battle_anims/sprites/lightning.4bpp.lz"); const u32 gUnknownGfx_C06D98[] = INCBIN_U32("graphics/unknown/unknown_C06D98.4bpp.lz"); const u32 gUnknownPal_C06D98[] = INCBIN_U32("graphics/unknown/unknown_C06D98.gbapal.lz"); @@ -141,118 +141,118 @@ const u32 gOldBattleInterfacePal_5_6_7[] = INCBIN_U32("graphics/unused/obi_palpa const u32 gOldBattleInterfaceGfx2[] = INCBIN_U32("graphics/unused/obi2.4bpp.lz"); const u32 gOldBattleInterfaceTilemap[] = INCBIN_U32("graphics/unused/old_battle_interface_tilemap.bin.lz"); -const u32 gBattleAnimSpritePalette_ClawSlash2[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash_2.gbapal.lz"); -const u32 gBattleAnimSpritePalette_ClawSlash[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash.gbapal.lz"); +const u32 gBattleAnimSpritePal_ClawSlash2[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_ClawSlash[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_ClawSlash2[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_ClawSlash[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Scratch3[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_3.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Scratch2[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_ClawSlash2[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_ClawSlash[] = INCBIN_U32("graphics/battle_anims/sprites/claw_slash.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Scratch3[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_3.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Scratch2[] = INCBIN_U32("graphics/battle_anims/sprites/scratch_2.4bpp.lz"); const u32 gPartyMenuHpBar_Gfx[] = INCBIN_U32("graphics/interface/party_menu_hpbar.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_BubbleBurst2[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_BubbleBurst2[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_BubbleBurst2[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_BubbleBurst2[] = INCBIN_U32("graphics/battle_anims/sprites/bubble_burst_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_IceChunk[] = INCBIN_U32("graphics/battle_anims/sprites/ice_chunk.4bpp.lz"); -const u32 gBattleAnimSpritePalette_IceChunk[] = INCBIN_U32("graphics/battle_anims/sprites/ice_chunk.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_IceChunk[] = INCBIN_U32("graphics/battle_anims/sprites/ice_chunk.4bpp.lz"); +const u32 gBattleAnimSpritePal_IceChunk[] = INCBIN_U32("graphics/battle_anims/sprites/ice_chunk.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Glass2[] = INCBIN_U32("graphics/battle_anims/sprites/glass_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Glass2[] = INCBIN_U32("graphics/battle_anims/sprites/glass_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_Glass2[] = INCBIN_U32("graphics/battle_anims/sprites/glass_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Glass2[] = INCBIN_U32("graphics/battle_anims/sprites/glass_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PinkHeart2[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PinkHeart2[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_PinkHeart2[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PinkHeart2[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart_2.4bpp.lz"); const u32 gUnknown_08C08F0C[] = INCBIN_U32("graphics/battle_interface/unused_window.4bpp.lz"); const u32 gUnknown_08C093C8[] = INCBIN_U32("graphics/battle_interface/unused_window.gbapal.lz"); const u32 gUnknown_08C093F0[] = INCBIN_U32("graphics/interface/hp_numbers.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.4bpp.lz"); +const u32 gBattleAnimSpritePal_SapDrip[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip.gbapal.lz"); -const u32 gBattleAnimSpritePalette_SapDrip2[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_SapDrip2[] = INCBIN_U32("graphics/battle_anims/sprites/sap_drip_2.gbapal.lz"); const u32 gUnusedGfx_Window2[] = INCBIN_U32("graphics/battle_interface/unused_window2.4bpp.lz"); const u32 gUnusedGfx_Window2Bar[] = INCBIN_U32("graphics/battle_interface/unused_window2bar.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Sparkle1[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_1.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Sparkle1[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_1.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Sparkle1[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_1.4bpp.lz"); +const u32 gBattleAnimSpritePal_Sparkle1[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_1.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Sparkle2[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_2.gbapal.lz"); -const u32 gBattleAnimSpritePalette_HumanoidFoot[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_foot.gbapal.lz"); +const u32 gBattleAnimSpritePal_Sparkle2[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_HumanoidFoot[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_foot.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_HumanoidFoot[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_foot.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_MonsterFoot[] = INCBIN_U32("graphics/battle_anims/sprites/monster_foot.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_HumanoidHand[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_hand.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_HumanoidFoot[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_foot.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_MonsterFoot[] = INCBIN_U32("graphics/battle_anims/sprites/monster_foot.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_HumanoidHand[] = INCBIN_U32("graphics/battle_anims/sprites/humanoid_hand.4bpp.lz"); const u32 gUnusedGfx_LineSketch[] = INCBIN_U32("graphics/unused/line_sketch.4bpp.lz"); const u32 gUnusedPal_LineSketch[] = INCBIN_U32("graphics/unused/line_sketch.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_YellowUnk[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk.4bpp.lz"); -const u32 gBattleAnimSpritePalette_YellowUnk[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_YellowUnk[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk.4bpp.lz"); +const u32 gBattleAnimSpritePal_YellowUnk[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_SlamHit[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SlamHit[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SlamHit[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit.4bpp.lz"); +const u32 gBattleAnimSpritePal_SlamHit[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_RedFist[] = INCBIN_U32("graphics/battle_anims/sprites/red_fist.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_RedFist[] = INCBIN_U32("graphics/battle_anims/sprites/red_fist.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Ring[] = INCBIN_U32("graphics/battle_anims/sprites/ring.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Ring[] = INCBIN_U32("graphics/battle_anims/sprites/ring.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Ring[] = INCBIN_U32("graphics/battle_anims/sprites/ring.4bpp.lz"); +const u32 gBattleAnimSpritePal_Ring[] = INCBIN_U32("graphics/battle_anims/sprites/ring.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Rocks[] = INCBIN_U32("graphics/battle_anims/sprites/rocks.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Rocks[] = INCBIN_U32("graphics/battle_anims/sprites/rocks.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Rocks[] = INCBIN_U32("graphics/battle_anims/sprites/rocks.4bpp.lz"); +const u32 gBattleAnimSpritePal_Rocks[] = INCBIN_U32("graphics/battle_anims/sprites/rocks.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Z[] = INCBIN_U32("graphics/battle_anims/sprites/z.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Z[] = INCBIN_U32("graphics/battle_anims/sprites/z.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Z[] = INCBIN_U32("graphics/battle_anims/sprites/z.4bpp.lz"); +const u32 gBattleAnimSpritePal_Z[] = INCBIN_U32("graphics/battle_anims/sprites/z.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_YellowUnk2[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_YellowUnk2[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_YellowUnk2[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_YellowUnk2[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_unk_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_AirSlash[] = INCBIN_U32("graphics/battle_anims/sprites/air_slash.4bpp.lz"); -const u32 gBattleAnimSpritePalette_AirSlash[] = INCBIN_U32("graphics/battle_anims/sprites/air_slash.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_AirSlash[] = INCBIN_U32("graphics/battle_anims/sprites/air_slash.4bpp.lz"); +const u32 gBattleAnimSpritePal_AirSlash[] = INCBIN_U32("graphics/battle_anims/sprites/air_slash.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_SpinningGreenOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_green_orbs.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SpinningGreenOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_green_orbs.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SpinningGreenOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_green_orbs.4bpp.lz"); +const u32 gBattleAnimSpritePal_SpinningGreenOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/spinning_green_orbs.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Leaf[] = INCBIN_U32("graphics/battle_anims/sprites/leaf.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Leaf[] = INCBIN_U32("graphics/battle_anims/sprites/leaf.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Leaf[] = INCBIN_U32("graphics/battle_anims/sprites/leaf.4bpp.lz"); +const u32 gBattleAnimSpritePal_Leaf[] = INCBIN_U32("graphics/battle_anims/sprites/leaf.gbapal.lz"); const u32 gUnusedGfx_Metronome[] = INCBIN_U32("graphics/unused/metronome_hand_small.4bpp.lz"); // unused, was for metronome at one point -const u32 gBattleAnimSpritePalette_Clapping[] = INCBIN_U32("graphics/battle_anims/sprites/clapping.gbapal.lz"); +const u32 gBattleAnimSpritePal_Clapping[] = INCBIN_U32("graphics/battle_anims/sprites/clapping.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PoisonPowder[] = INCBIN_U32("graphics/battle_anims/sprites/poison_powder.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PoisonPowder[] = INCBIN_U32("graphics/battle_anims/sprites/poison_powder.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PoisonPowder[] = INCBIN_U32("graphics/battle_anims/sprites/poison_powder.4bpp.lz"); +const u32 gBattleAnimSpritePal_PoisonPowder[] = INCBIN_U32("graphics/battle_anims/sprites/poison_powder.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_BrownTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/brown_triangle.4bpp.lz"); -const u32 gBattleAnimSpritePalette_BrownTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/brown_triangle.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BrownTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/brown_triangle.4bpp.lz"); +const u32 gBattleAnimSpritePal_BrownTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/brown_triangle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Sparkle3[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_3.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Sparkle3[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_3.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Sparkle3[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_3.4bpp.lz"); +const u32 gBattleAnimSpritePal_Sparkle3[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_3.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Sparkle4[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_4.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Sparkle4[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_4.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_MusicNotes[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes.4bpp.lz"); -const u32 gBattleAnimSpritePalette_MusicNotes[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MusicNotes[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes.4bpp.lz"); +const u32 gBattleAnimSpritePal_MusicNotes[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Duck[] = INCBIN_U32("graphics/battle_anims/sprites/duck.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Duck[] = INCBIN_U32("graphics/battle_anims/sprites/duck.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Duck[] = INCBIN_U32("graphics/battle_anims/sprites/duck.4bpp.lz"); +const u32 gBattleAnimSpritePal_Duck[] = INCBIN_U32("graphics/battle_anims/sprites/duck.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Alert[] = INCBIN_U32("graphics/battle_anims/sprites/alert.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Alert[] = INCBIN_U32("graphics/battle_anims/sprites/alert.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Alert[] = INCBIN_U32("graphics/battle_anims/sprites/alert.4bpp.lz"); +const u32 gBattleAnimSpritePal_Alert[] = INCBIN_U32("graphics/battle_anims/sprites/alert.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Shock4[] = INCBIN_U32("graphics/battle_anims/sprites/shock_4.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Shock4[] = INCBIN_U32("graphics/battle_anims/sprites/shock_4.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Shock4[] = INCBIN_U32("graphics/battle_anims/sprites/shock_4.4bpp.lz"); +const u32 gBattleAnimSpritePal_Shock4[] = INCBIN_U32("graphics/battle_anims/sprites/shock_4.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Shock[] = INCBIN_U32("graphics/battle_anims/sprites/shock.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Shock[] = INCBIN_U32("graphics/battle_anims/sprites/shock.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Bell2[] = INCBIN_U32("graphics/battle_anims/sprites/bell_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Bell2[] = INCBIN_U32("graphics/battle_anims/sprites/bell_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Bell2[] = INCBIN_U32("graphics/battle_anims/sprites/bell_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_Bell2[] = INCBIN_U32("graphics/battle_anims/sprites/bell_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PinkGlove[] = INCBIN_U32("graphics/battle_anims/sprites/pink_glove.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PinkGlove[] = INCBIN_U32("graphics/battle_anims/sprites/pink_glove.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PinkGlove[] = INCBIN_U32("graphics/battle_anims/sprites/pink_glove.4bpp.lz"); +const u32 gBattleAnimSpritePal_PinkGlove[] = INCBIN_U32("graphics/battle_anims/sprites/pink_glove.gbapal.lz"); const u16 gUnknown_C0CA1C[] = INCBIN_U16("graphics/unknown/unknown_C0CA1C.bin"); const u16 gUnknown_C0CA40[] = INCBIN_U16("graphics/unknown/unknown_C0CA40.bin"); @@ -261,85 +261,85 @@ const u32 gUnusedGfx8bpp_LineSketch2[] = INCBIN_U32("graphics/unused/line_sketch const u16 gUnknown_C0CAE0[] = INCBIN_U16("graphics/unknown/unknown_C0CAE0.bin"); const u32 gUnusedTilemap_LineSketch2[] = INCBIN_U32("graphics/unused/line_sketch_2.bin.lz"); -const u32 gBattleAnimSpriteSheet_BlueLines[] = INCBIN_U32("graphics/battle_anims/sprites/blue_lines.4bpp.lz"); -const u32 gBattleAnimSpritePalette_BlueLines[] = INCBIN_U32("graphics/battle_anims/sprites/blue_lines.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BlueLines[] = INCBIN_U32("graphics/battle_anims/sprites/blue_lines.4bpp.lz"); +const u32 gBattleAnimSpritePal_BlueLines[] = INCBIN_U32("graphics/battle_anims/sprites/blue_lines.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Impact3[] = INCBIN_U32("graphics/battle_anims/sprites/impact_3.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Impact2[] = INCBIN_U32("graphics/battle_anims/sprites/impact_2.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Reticle[] = INCBIN_U32("graphics/battle_anims/sprites/reticle.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Breath[] = INCBIN_U32("graphics/battle_anims/sprites/breath.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Snowball[] = INCBIN_U32("graphics/battle_anims/sprites/snowball.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Vine[] = INCBIN_U32("graphics/battle_anims/sprites/vine.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Sword2[] = INCBIN_U32("graphics/battle_anims/sprites/sword_2.gbapal.lz"); -const u32 gBattleAnimSpritePalette_RedTube[] = INCBIN_U32("graphics/battle_anims/sprites/red_tube.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Amnesia[] = INCBIN_U32("graphics/battle_anims/sprites/amnesia.gbapal.lz"); -const u32 gBattleAnimSpritePalette_String2[] = INCBIN_U32("graphics/battle_anims/sprites/string_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_Impact3[] = INCBIN_U32("graphics/battle_anims/sprites/impact_3.gbapal.lz"); +const u32 gBattleAnimSpritePal_Impact2[] = INCBIN_U32("graphics/battle_anims/sprites/impact_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_Reticle[] = INCBIN_U32("graphics/battle_anims/sprites/reticle.gbapal.lz"); +const u32 gBattleAnimSpritePal_Breath[] = INCBIN_U32("graphics/battle_anims/sprites/breath.gbapal.lz"); +const u32 gBattleAnimSpritePal_Snowball[] = INCBIN_U32("graphics/battle_anims/sprites/snowball.gbapal.lz"); +const u32 gBattleAnimSpritePal_Vine[] = INCBIN_U32("graphics/battle_anims/sprites/vine.gbapal.lz"); +const u32 gBattleAnimSpritePal_Sword2[] = INCBIN_U32("graphics/battle_anims/sprites/sword_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_RedTube[] = INCBIN_U32("graphics/battle_anims/sprites/red_tube.gbapal.lz"); +const u32 gBattleAnimSpritePal_Amnesia[] = INCBIN_U32("graphics/battle_anims/sprites/amnesia.gbapal.lz"); +const u32 gBattleAnimSpritePal_String2[] = INCBIN_U32("graphics/battle_anims/sprites/string_2.gbapal.lz"); const u32 gUnknown_D0D2B4[] = INCBIN_U32("graphics/unknown/unknown_D0D2B4.bin.lz"); -const u32 gBattleAnimSpritePalette_Pencil2[] = INCBIN_U32("graphics/battle_anims/sprites/pencil_2.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Petal[] = INCBIN_U32("graphics/battle_anims/sprites/petal.gbapal.lz"); -const u32 gBattleAnimSpritePalette_BentSpoon[] = INCBIN_U32("graphics/battle_anims/sprites/bent_spoon.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Coin[] = INCBIN_U32("graphics/battle_anims/sprites/coin.gbapal.lz"); -const u32 gBattleAnimSpritePalette_CrackedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/cracked_egg.gbapal.lz"); -const u32 gBattleAnimSpritePalette_FreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/fresh_egg.gbapal.lz"); +const u32 gBattleAnimSpritePal_Pencil2[] = INCBIN_U32("graphics/battle_anims/sprites/pencil_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_Petal[] = INCBIN_U32("graphics/battle_anims/sprites/petal.gbapal.lz"); +const u32 gBattleAnimSpritePal_BentSpoon[] = INCBIN_U32("graphics/battle_anims/sprites/bent_spoon.gbapal.lz"); +const u32 gBattleAnimSpritePal_Coin[] = INCBIN_U32("graphics/battle_anims/sprites/coin.gbapal.lz"); +const u32 gBattleAnimSpritePal_CrackedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/cracked_egg.gbapal.lz"); +const u32 gBattleAnimSpritePal_FreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/fresh_egg.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Impact3[] = INCBIN_U32("graphics/battle_anims/sprites/impact_3.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Impact2[] = INCBIN_U32("graphics/battle_anims/sprites/impact_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Reticle[] = INCBIN_U32("graphics/battle_anims/sprites/reticle.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Breath[] = INCBIN_U32("graphics/battle_anims/sprites/breath.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Snowball[] = INCBIN_U32("graphics/battle_anims/sprites/snowball.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Vine[] = INCBIN_U32("graphics/battle_anims/sprites/vine.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Sword2[] = INCBIN_U32("graphics/battle_anims/sprites/sword_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Clapping[] = INCBIN_U32("graphics/battle_anims/sprites/clapping.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_RedTube[] = INCBIN_U32("graphics/battle_anims/sprites/red_tube.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Amnesia[] = INCBIN_U32("graphics/battle_anims/sprites/amnesia.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_String2[] = INCBIN_U32("graphics/battle_anims/sprites/string_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Pencil2[] = INCBIN_U32("graphics/battle_anims/sprites/pencil_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Petal[] = INCBIN_U32("graphics/battle_anims/sprites/petal.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_BentSpoon[] = INCBIN_U32("graphics/battle_anims/sprites/bent_spoon.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Web[] = INCBIN_U32("graphics/battle_anims/sprites/web.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Coin[] = INCBIN_U32("graphics/battle_anims/sprites/coin.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_CrackedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/cracked_egg.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_HatchedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/hatched_egg.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_FreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/fresh_egg.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Impact3[] = INCBIN_U32("graphics/battle_anims/sprites/impact_3.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Impact2[] = INCBIN_U32("graphics/battle_anims/sprites/impact_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Reticle[] = INCBIN_U32("graphics/battle_anims/sprites/reticle.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Breath[] = INCBIN_U32("graphics/battle_anims/sprites/breath.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Snowball[] = INCBIN_U32("graphics/battle_anims/sprites/snowball.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Vine[] = INCBIN_U32("graphics/battle_anims/sprites/vine.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Sword2[] = INCBIN_U32("graphics/battle_anims/sprites/sword_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Clapping[] = INCBIN_U32("graphics/battle_anims/sprites/clapping.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_RedTube[] = INCBIN_U32("graphics/battle_anims/sprites/red_tube.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Amnesia[] = INCBIN_U32("graphics/battle_anims/sprites/amnesia.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_String2[] = INCBIN_U32("graphics/battle_anims/sprites/string_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Pencil2[] = INCBIN_U32("graphics/battle_anims/sprites/pencil_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Petal[] = INCBIN_U32("graphics/battle_anims/sprites/petal.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_BentSpoon[] = INCBIN_U32("graphics/battle_anims/sprites/bent_spoon.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Web[] = INCBIN_U32("graphics/battle_anims/sprites/web.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Coin[] = INCBIN_U32("graphics/battle_anims/sprites/coin.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_CrackedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/cracked_egg.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_HatchedEgg[] = INCBIN_U32("graphics/battle_anims/sprites/hatched_egg.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_FreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/fresh_egg.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Fangs[] = INCBIN_U32("graphics/battle_anims/sprites/fangs.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Fangs[] = INCBIN_U32("graphics/battle_anims/sprites/fangs.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Fangs[] = INCBIN_U32("graphics/battle_anims/sprites/fangs.4bpp.lz"); +const u32 gBattleAnimSpritePal_Fangs[] = INCBIN_U32("graphics/battle_anims/sprites/fangs.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Explosion2[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Explosion2[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Explosion2[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_Explosion2[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Explosion3[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_3.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Explosion3[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_3.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_WaterDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet.4bpp.lz"); -const u32 gBattleAnimSpritePalette_WaterDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_WaterDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet.4bpp.lz"); +const u32 gBattleAnimSpritePal_WaterDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_WaterDroplet2[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_WaterDroplet2[] = INCBIN_U32("graphics/battle_anims/sprites/water_droplet_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Seed2[] = INCBIN_U32("graphics/battle_anims/sprites/seed_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Seed2[] = INCBIN_U32("graphics/battle_anims/sprites/seed_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Seed2[] = INCBIN_U32("graphics/battle_anims/sprites/seed_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_Seed2[] = INCBIN_U32("graphics/battle_anims/sprites/seed_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Sprout[] = INCBIN_U32("graphics/battle_anims/sprites/sprout.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Sprout[] = INCBIN_U32("graphics/battle_anims/sprites/sprout.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_RedWand[] = INCBIN_U32("graphics/battle_anims/sprites/red_wand.4bpp.lz"); -const u32 gBattleAnimSpritePalette_RedWand[] = INCBIN_U32("graphics/battle_anims/sprites/red_wand.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_RedWand[] = INCBIN_U32("graphics/battle_anims/sprites/red_wand.4bpp.lz"); +const u32 gBattleAnimSpritePal_RedWand[] = INCBIN_U32("graphics/battle_anims/sprites/red_wand.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PurpleGreenUnk[] = INCBIN_U32("graphics/battle_anims/sprites/purple_green_unk.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PurpleGreenUnk[] = INCBIN_U32("graphics/battle_anims/sprites/purple_green_unk.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PurpleGreenUnk[] = INCBIN_U32("graphics/battle_anims/sprites/purple_green_unk.4bpp.lz"); +const u32 gBattleAnimSpritePal_PurpleGreenUnk[] = INCBIN_U32("graphics/battle_anims/sprites/purple_green_unk.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_WaterColumn[] = INCBIN_U32("graphics/battle_anims/sprites/water_column.4bpp.lz"); -const u32 gBattleAnimSpritePalette_WaterColumn[] = INCBIN_U32("graphics/battle_anims/sprites/water_column.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_WaterColumn[] = INCBIN_U32("graphics/battle_anims/sprites/water_column.4bpp.lz"); +const u32 gBattleAnimSpritePal_WaterColumn[] = INCBIN_U32("graphics/battle_anims/sprites/water_column.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_MudUnk[] = INCBIN_U32("graphics/battle_anims/sprites/mud_unk.4bpp.lz"); -const u32 gBattleAnimSpritePalette_MudUnk[] = INCBIN_U32("graphics/battle_anims/sprites/mud_unk.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MudUnk[] = INCBIN_U32("graphics/battle_anims/sprites/mud_unk.4bpp.lz"); +const u32 gBattleAnimSpritePal_MudUnk[] = INCBIN_U32("graphics/battle_anims/sprites/mud_unk.gbapal.lz"); const u32 gUnusedTilemap_BlueFrame[] = INCBIN_U32("graphics/unused/blue_frame.bin.lz"); // P1, P2, P3 and P4 tilemaps? const u32 gUnusedTilemap_RedYellowGreenFrame[] = INCBIN_U32("graphics/unused/redyellowgreen_frame.bin.lz"); const u32 gUnusedGfx_ColorFrames[] = INCBIN_U32("graphics/unused/color_frames.4bpp.lz"); const u32 gUnusedPal_ColorFrames[] = INCBIN_U32("graphics/unused/color_frames.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_RainDrops[] = INCBIN_U32("graphics/battle_anims/sprites/rain_drops.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_RainDrops[] = INCBIN_U32("graphics/battle_anims/sprites/rain_drops.4bpp.lz"); const u32 gUnusedGfx8bpp_WaterSplash [] = INCBIN_U32("graphics/unused/water_splash.8bpp.lz"); const u32 gUnusedTilemap_WaterSplash[] = INCBIN_U32("graphics/unused/water_splash.bin.lz"); @@ -379,63 +379,63 @@ const u8 gUnknown_D1300C[] = INCBIN_U8("graphics/unknown/unknown_D1300C.4bpp"); const u32 gBattleInterfaceGfx_UnusedWindow3[] = INCBIN_U32("graphics/battle_interface/unused_window3.4bpp.lz"); const u32 gBattleInterfaceGfx_UnusedWindow4[] = INCBIN_U32("graphics/battle_interface/unused_window4.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_FurySwipes[] = INCBIN_U32("graphics/battle_anims/sprites/fury_swipes.4bpp.lz"); -const u32 gBattleAnimSpritePalette_FurySwipes[] = INCBIN_U32("graphics/battle_anims/sprites/fury_swipes.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_FurySwipes[] = INCBIN_U32("graphics/battle_anims/sprites/fury_swipes.4bpp.lz"); +const u32 gBattleAnimSpritePal_FurySwipes[] = INCBIN_U32("graphics/battle_anims/sprites/fury_swipes.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Vine2[] = INCBIN_U32("graphics/battle_anims/sprites/vine_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Vine2[] = INCBIN_U32("graphics/battle_anims/sprites/vine_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Vine2[] = INCBIN_U32("graphics/battle_anims/sprites/vine_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_Vine2[] = INCBIN_U32("graphics/battle_anims/sprites/vine_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Teeth[] = INCBIN_U32("graphics/battle_anims/sprites/teeth.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Teeth[] = INCBIN_U32("graphics/battle_anims/sprites/teeth.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Teeth[] = INCBIN_U32("graphics/battle_anims/sprites/teeth.4bpp.lz"); +const u32 gBattleAnimSpritePal_Teeth[] = INCBIN_U32("graphics/battle_anims/sprites/teeth.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Bone2[] = INCBIN_U32("graphics/battle_anims/sprites/bone_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Bone2[] = INCBIN_U32("graphics/battle_anims/sprites/bone_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Bone2[] = INCBIN_U32("graphics/battle_anims/sprites/bone_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_Bone2[] = INCBIN_U32("graphics/battle_anims/sprites/bone_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_WhiteBag[] = INCBIN_U32("graphics/battle_anims/sprites/white_bag.4bpp.lz"); -const u32 gBattleAnimSpritePalette_WhiteBag[] = INCBIN_U32("graphics/battle_anims/sprites/white_bag.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_WhiteBag[] = INCBIN_U32("graphics/battle_anims/sprites/white_bag.4bpp.lz"); +const u32 gBattleAnimSpritePal_WhiteBag[] = INCBIN_U32("graphics/battle_anims/sprites/white_bag.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Unknown[] = INCBIN_U32("graphics/battle_anims/sprites/unknown.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Unknown[] = INCBIN_U32("graphics/battle_anims/sprites/unknown.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Unknown[] = INCBIN_U32("graphics/battle_anims/sprites/unknown.4bpp.lz"); +const u32 gBattleAnimSpritePal_Unknown[] = INCBIN_U32("graphics/battle_anims/sprites/unknown.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PurpleCoral[] = INCBIN_U32("graphics/battle_anims/sprites/purple_coral.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PurpleCoral[] = INCBIN_U32("graphics/battle_anims/sprites/purple_coral.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PurpleCoral[] = INCBIN_U32("graphics/battle_anims/sprites/purple_coral.4bpp.lz"); +const u32 gBattleAnimSpritePal_PurpleCoral[] = INCBIN_U32("graphics/battle_anims/sprites/purple_coral.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PurpleDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/purple_droplet.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_PurpleDroplet[] = INCBIN_U32("graphics/battle_anims/sprites/purple_droplet.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Shock2[] = INCBIN_U32("graphics/battle_anims/sprites/shock_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Shock2[] = INCBIN_U32("graphics/battle_anims/sprites/shock_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Shock2[] = INCBIN_U32("graphics/battle_anims/sprites/shock_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_Shock2[] = INCBIN_U32("graphics/battle_anims/sprites/shock_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_ClosingEye2[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_ClosingEye2[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_ClosingEye2[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_ClosingEye2[] = INCBIN_U32("graphics/battle_anims/sprites/closing_eye_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_MetalBall[] = INCBIN_U32("graphics/battle_anims/sprites/metal_ball.4bpp.lz"); -const u32 gBattleAnimSpritePalette_MetalBall[] = INCBIN_U32("graphics/battle_anims/sprites/metal_ball.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MetalBall[] = INCBIN_U32("graphics/battle_anims/sprites/metal_ball.4bpp.lz"); +const u32 gBattleAnimSpritePal_MetalBall[] = INCBIN_U32("graphics/battle_anims/sprites/metal_ball.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_MonsterDoll[] = INCBIN_U32("graphics/battle_anims/sprites/monster_doll.4bpp.lz"); -const u32 gBattleAnimSpritePalette_MonsterDoll[] = INCBIN_U32("graphics/battle_anims/sprites/monster_doll.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MonsterDoll[] = INCBIN_U32("graphics/battle_anims/sprites/monster_doll.4bpp.lz"); +const u32 gBattleAnimSpritePal_MonsterDoll[] = INCBIN_U32("graphics/battle_anims/sprites/monster_doll.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Whirlwind[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Whirlwind[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Whirlwind[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind.4bpp.lz"); +const u32 gBattleAnimSpritePal_Whirlwind[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Whirlwind2[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Whirlwind2[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Explosion4[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_4.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Explosion4[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_4.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Explosion4[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_4.4bpp.lz"); +const u32 gBattleAnimSpritePal_Explosion4[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_4.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Explosion5[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_5.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Explosion5[] = INCBIN_U32("graphics/battle_anims/sprites/explosion_5.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Tongue[] = INCBIN_U32("graphics/battle_anims/sprites/tongue.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Tongue[] = INCBIN_U32("graphics/battle_anims/sprites/tongue.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Tongue[] = INCBIN_U32("graphics/battle_anims/sprites/tongue.4bpp.lz"); +const u32 gBattleAnimSpritePal_Tongue[] = INCBIN_U32("graphics/battle_anims/sprites/tongue.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Smoke[] = INCBIN_U32("graphics/battle_anims/sprites/smoke.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Smoke[] = INCBIN_U32("graphics/battle_anims/sprites/smoke.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Smoke[] = INCBIN_U32("graphics/battle_anims/sprites/smoke.4bpp.lz"); +const u32 gBattleAnimSpritePal_Smoke[] = INCBIN_U32("graphics/battle_anims/sprites/smoke.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Smoke2[] = INCBIN_U32("graphics/battle_anims/sprites/smoke_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Smoke2[] = INCBIN_U32("graphics/battle_anims/sprites/smoke_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_BlueFlames[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames.4bpp.lz"); -const u32 gBattleAnimSpritePalette_BlueFlames[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BlueFlames[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames.4bpp.lz"); +const u32 gBattleAnimSpritePal_BlueFlames[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_BlueFlames2[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_BlueFlames2[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flames_2.4bpp.lz"); // Contest @@ -479,114 +479,114 @@ const u32 gUnknown_08C1A12C[] = INCBIN_U32("graphics/contest/misc_2_tilemap_3.bi const u32 gUnknown_08C1A2B4[] = INCBIN_U32("graphics/contest/misc_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Impact[] = INCBIN_U32("graphics/battle_anims/sprites/impact.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Impact[] = INCBIN_U32("graphics/battle_anims/sprites/impact.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Impact[] = INCBIN_U32("graphics/battle_anims/sprites/impact.4bpp.lz"); +const u32 gBattleAnimSpritePal_Impact[] = INCBIN_U32("graphics/battle_anims/sprites/impact.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Particles[] = INCBIN_U32("graphics/battle_anims/sprites/particles.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Particles[] = INCBIN_U32("graphics/battle_anims/sprites/particles.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_CircleImpact[] = INCBIN_U32("graphics/battle_anims/sprites/circle_impact.4bpp.lz"); -const u32 gBattleAnimSpritePalette_CircleImpact[] = INCBIN_U32("graphics/battle_anims/sprites/circle_impact.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_CircleImpact[] = INCBIN_U32("graphics/battle_anims/sprites/circle_impact.4bpp.lz"); +const u32 gBattleAnimSpritePal_CircleImpact[] = INCBIN_U32("graphics/battle_anims/sprites/circle_impact.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Scratch[] = INCBIN_U32("graphics/battle_anims/sprites/scratch.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Scratch[] = INCBIN_U32("graphics/battle_anims/sprites/scratch.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_SharpTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/sharp_teeth.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SharpTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/sharp_teeth.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SharpTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/sharp_teeth.4bpp.lz"); +const u32 gBattleAnimSpritePal_SharpTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/sharp_teeth.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Clamp[] = INCBIN_U32("graphics/battle_anims/sprites/clamp.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Clamp[] = INCBIN_U32("graphics/battle_anims/sprites/clamp.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Cut[] = INCBIN_U32("graphics/battle_anims/sprites/cut.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Cut[] = INCBIN_U32("graphics/battle_anims/sprites/cut.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_RainbowRings[] = INCBIN_U32("graphics/battle_anims/sprites/rainbow_rings.4bpp.lz"); -const u32 gBattleAnimSpritePalette_RainbowRings[] = INCBIN_U32("graphics/battle_anims/sprites/rainbow_rings.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_RainbowRings[] = INCBIN_U32("graphics/battle_anims/sprites/rainbow_rings.4bpp.lz"); +const u32 gBattleAnimSpritePal_RainbowRings[] = INCBIN_U32("graphics/battle_anims/sprites/rainbow_rings.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_IceCrystals[] = INCBIN_U32("graphics/battle_anims/sprites/ice_crystals.4bpp.lz"); -const u32 gBattleAnimSpritePalette_IceCrystals[] = INCBIN_U32("graphics/battle_anims/sprites/ice_crystals.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_IceCrystals[] = INCBIN_U32("graphics/battle_anims/sprites/ice_crystals.4bpp.lz"); +const u32 gBattleAnimSpritePal_IceCrystals[] = INCBIN_U32("graphics/battle_anims/sprites/ice_crystals.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_IceSpikes[] = INCBIN_U32("graphics/battle_anims/sprites/ice_spikes.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_IceSpikes[] = INCBIN_U32("graphics/battle_anims/sprites/ice_spikes.4bpp.lz"); const u32 gUnusedGfx_OldBeatUp[] = INCBIN_U32("graphics/unused/old_beatup.4bpp.lz"); const u32 gUnusedPal_OldBeatUp[] = INCBIN_U32("graphics/unused/old_beatup.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Orbs[] = INCBIN_U32("graphics/battle_anims/sprites/orbs.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Orbs[] = INCBIN_U32("graphics/battle_anims/sprites/orbs.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Orbs[] = INCBIN_U32("graphics/battle_anims/sprites/orbs.4bpp.lz"); +const u32 gBattleAnimSpritePal_Orbs[] = INCBIN_U32("graphics/battle_anims/sprites/orbs.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_WaterOrb[] = INCBIN_U32("graphics/battle_anims/sprites/water_orb.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_WaterOrb[] = INCBIN_U32("graphics/battle_anims/sprites/water_orb.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_WaterImpact[] = INCBIN_U32("graphics/battle_anims/sprites/water_impact.4bpp.lz"); -const u32 gBattleAnimSpritePalette_WaterImpact[] = INCBIN_U32("graphics/battle_anims/sprites/water_impact.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_WaterImpact[] = INCBIN_U32("graphics/battle_anims/sprites/water_impact.4bpp.lz"); +const u32 gBattleAnimSpritePal_WaterImpact[] = INCBIN_U32("graphics/battle_anims/sprites/water_impact.gbapal.lz"); -const u32 gBattleAnimSpritePalette_BrownOrb[] = INCBIN_U32("graphics/battle_anims/sprites/brown_orb.gbapal.lz"); +const u32 gBattleAnimSpritePal_BrownOrb[] = INCBIN_U32("graphics/battle_anims/sprites/brown_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_MudSand[] = INCBIN_U32("graphics/battle_anims/sprites/mud_sand.4bpp.lz"); -const u32 gBattleAnimSpritePalette_MudSand[] = INCBIN_U32("graphics/battle_anims/sprites/mud_sand.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MudSand[] = INCBIN_U32("graphics/battle_anims/sprites/mud_sand.4bpp.lz"); +const u32 gBattleAnimSpritePal_MudSand[] = INCBIN_U32("graphics/battle_anims/sprites/mud_sand.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PoisonBubble[] = INCBIN_U32("graphics/battle_anims/sprites/poison_bubble.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PoisonBubble[] = INCBIN_U32("graphics/battle_anims/sprites/poison_bubble.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PoisonBubble[] = INCBIN_U32("graphics/battle_anims/sprites/poison_bubble.4bpp.lz"); +const u32 gBattleAnimSpritePal_PoisonBubble[] = INCBIN_U32("graphics/battle_anims/sprites/poison_bubble.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_ToxicBubble[] = INCBIN_U32("graphics/battle_anims/sprites/toxic_bubble.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_ToxicBubble[] = INCBIN_U32("graphics/battle_anims/sprites/toxic_bubble.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_HornHit2[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_HornHit2[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_HornHit2[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_HornHit2[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_AirWave2[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_AirWave2[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_AirWave2[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_AirWave2[] = INCBIN_U32("graphics/battle_anims/sprites/air_wave_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_SmallBubbles[] = INCBIN_U32("graphics/battle_anims/sprites/small_bubbles.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SmallBubbles[] = INCBIN_U32("graphics/battle_anims/sprites/small_bubbles.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SmallBubbles[] = INCBIN_U32("graphics/battle_anims/sprites/small_bubbles.4bpp.lz"); +const u32 gBattleAnimSpritePal_SmallBubbles[] = INCBIN_U32("graphics/battle_anims/sprites/small_bubbles.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_RoundShadow[] = INCBIN_U32("graphics/battle_anims/sprites/round_shadow.4bpp.lz"); -const u32 gBattleAnimSpritePalette_RoundShadow[] = INCBIN_U32("graphics/battle_anims/sprites/round_shadow.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_RoundShadow[] = INCBIN_U32("graphics/battle_anims/sprites/round_shadow.4bpp.lz"); +const u32 gBattleAnimSpritePal_RoundShadow[] = INCBIN_U32("graphics/battle_anims/sprites/round_shadow.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Sunlight[] = INCBIN_U32("graphics/battle_anims/sprites/sunlight.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Sunlight[] = INCBIN_U32("graphics/battle_anims/sprites/sunlight.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Sunlight[] = INCBIN_U32("graphics/battle_anims/sprites/sunlight.4bpp.lz"); +const u32 gBattleAnimSpritePal_Sunlight[] = INCBIN_U32("graphics/battle_anims/sprites/sunlight.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Spore[] = INCBIN_U32("graphics/battle_anims/sprites/spore.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Spore[] = INCBIN_U32("graphics/battle_anims/sprites/spore.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Spore[] = INCBIN_U32("graphics/battle_anims/sprites/spore.gbapal.lz"); +const u32 gBattleAnimSpritePal_Spore[] = INCBIN_U32("graphics/battle_anims/sprites/spore.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Flower[] = INCBIN_U32("graphics/battle_anims/sprites/flower.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Flower[] = INCBIN_U32("graphics/battle_anims/sprites/flower.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Flower[] = INCBIN_U32("graphics/battle_anims/sprites/flower.4bpp.lz"); +const u32 gBattleAnimSpritePal_Flower[] = INCBIN_U32("graphics/battle_anims/sprites/flower.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_RazorLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/razor_leaf.4bpp.lz"); -const u32 gBattleAnimSpritePalette_RazorLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/razor_leaf.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_RazorLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/razor_leaf.4bpp.lz"); +const u32 gBattleAnimSpritePal_RazorLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/razor_leaf.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_MistCloud[] = INCBIN_U32("graphics/battle_anims/sprites/mist_cloud.4bpp.lz"); -const u32 gBattleAnimSpritePalette_MistCloud[] = INCBIN_U32("graphics/battle_anims/sprites/mist_cloud.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MistCloud[] = INCBIN_U32("graphics/battle_anims/sprites/mist_cloud.4bpp.lz"); +const u32 gBattleAnimSpritePal_MistCloud[] = INCBIN_U32("graphics/battle_anims/sprites/mist_cloud.gbapal.lz"); const u32 gUnknownGfx_D1C060[] = INCBIN_U32("graphics/unknown/unknown_D1C060.4bpp.lz"); const u32 gUnknownPal_D1C060[] = INCBIN_U32("graphics/unknown/unknown_D1C060.gbapal.lz"); const u32 gUnknownTilemap_D1C060[] = INCBIN_U32("graphics/unknown/unknown_D1C060.bin.lz"); -const u32 gBattleAnimSpriteSheet_WhirlwindLines[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_lines.4bpp.lz"); -const u32 gBattleAnimSpritePalette_WhirlwindLines[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_lines.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_WhirlwindLines[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_lines.4bpp.lz"); +const u32 gBattleAnimSpritePal_WhirlwindLines[] = INCBIN_U32("graphics/battle_anims/sprites/whirlwind_lines.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_GoldRing[] = INCBIN_U32("graphics/battle_anims/sprites/gold_ring.4bpp.lz"); -const u32 gBattleAnimSpritePalette_GoldRing[] = INCBIN_U32("graphics/battle_anims/sprites/gold_ring.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GoldRing[] = INCBIN_U32("graphics/battle_anims/sprites/gold_ring.4bpp.lz"); +const u32 gBattleAnimSpritePal_GoldRing[] = INCBIN_U32("graphics/battle_anims/sprites/gold_ring.gbapal.lz"); -const u32 gBattleAnimSpritePalette_BlueRing2[] = INCBIN_U32("graphics/battle_anims/sprites/blue_ring_2.gbapal.lz"); -const u32 gBattleAnimSpritePalette_PurpleRing[] = INCBIN_U32("graphics/battle_anims/sprites/purple_ring.gbapal.lz"); -const u32 gBattleAnimSpritePalette_BlueRing[] = INCBIN_U32("graphics/battle_anims/sprites/blue_ring.gbapal.lz"); +const u32 gBattleAnimSpritePal_BlueRing2[] = INCBIN_U32("graphics/battle_anims/sprites/blue_ring_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_PurpleRing[] = INCBIN_U32("graphics/battle_anims/sprites/purple_ring.gbapal.lz"); +const u32 gBattleAnimSpritePal_BlueRing[] = INCBIN_U32("graphics/battle_anims/sprites/blue_ring.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_GreenLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/green_light_wall.4bpp.lz"); -const u32 gBattleAnimSpritePalette_GreenLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/green_light_wall.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GreenLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/green_light_wall.4bpp.lz"); +const u32 gBattleAnimSpritePal_GreenLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/green_light_wall.gbapal.lz"); -const u32 gBattleAnimSpritePalette_BlueLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/blue_light_wall.gbapal.lz"); -const u32 gBattleAnimSpritePalette_RedLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/red_light_wall.gbapal.lz"); -const u32 gBattleAnimSpritePalette_GrayLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/gray_light_wall.gbapal.lz"); -const u32 gBattleAnimSpritePalette_OrangeLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/orange_light_wall.gbapal.lz"); +const u32 gBattleAnimSpritePal_BlueLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/blue_light_wall.gbapal.lz"); +const u32 gBattleAnimSpritePal_RedLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/red_light_wall.gbapal.lz"); +const u32 gBattleAnimSpritePal_GrayLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/gray_light_wall.gbapal.lz"); +const u32 gBattleAnimSpritePal_OrangeLightWall[] = INCBIN_U32("graphics/battle_anims/sprites/orange_light_wall.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_BlackBall2[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_BlackBall2[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BlackBall2[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_BlackBall2[] = INCBIN_U32("graphics/battle_anims/sprites/black_ball_2.gbapal.lz"); -const u32 gBattleAnimSpritePalette_PurpleGasCloud[] = INCBIN_U32("graphics/battle_anims/sprites/purple_gas_cloud.gbapal.lz"); +const u32 gBattleAnimSpritePal_PurpleGasCloud[] = INCBIN_U32("graphics/battle_anims/sprites/purple_gas_cloud.gbapal.lz"); const u32 gContestJudgeGfx[] = INCBIN_U32("graphics/contest/judge.4bpp.lz"); const u32 gContest2Pal[] = INCBIN_U32("graphics/contest/judge.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Spark[] = INCBIN_U32("graphics/battle_anims/sprites/spark.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Spark[] = INCBIN_U32("graphics/battle_anims/sprites/spark.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Spark[] = INCBIN_U32("graphics/battle_anims/sprites/spark.4bpp.lz"); +const u32 gBattleAnimSpritePal_Spark[] = INCBIN_U32("graphics/battle_anims/sprites/spark.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_SparkH[] = INCBIN_U32("graphics/battle_anims/sprites/spark_h.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_SparkH[] = INCBIN_U32("graphics/battle_anims/sprites/spark_h.4bpp.lz"); const u32 gBattleAnimBackgroundImage_00[] = INCBIN_U32("graphics/battle_anims/backgrounds/00.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_00[] = INCBIN_U32("graphics/battle_anims/backgrounds/00.gbapal.lz"); @@ -600,48 +600,48 @@ const u32 gUnusedGfx_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.4bpp.lz"); const u32 gUnusedPal_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.gbapal.lz"); const u32 gUnusedTilemap_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.bin.lz"); -const u32 gBattleAnimSpriteSheet_YellowStar[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_star.4bpp.lz"); -const u32 gBattleAnimSpritePalette_YellowStar[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_star.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_YellowStar[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_star.4bpp.lz"); +const u32 gBattleAnimSpritePal_YellowStar[] = INCBIN_U32("graphics/battle_anims/sprites/yellow_star.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_LargeFreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/large_fresh_egg.4bpp.lz"); -const u32 gBattleAnimSpritePalette_LargeFreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/large_fresh_egg.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_LargeFreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/large_fresh_egg.4bpp.lz"); +const u32 gBattleAnimSpritePal_LargeFreshEgg[] = INCBIN_U32("graphics/battle_anims/sprites/large_fresh_egg.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_ShadowBall[] = INCBIN_U32("graphics/battle_anims/sprites/shadow_ball.4bpp.lz"); -const u32 gBattleAnimSpritePalette_ShadowBall[] = INCBIN_U32("graphics/battle_anims/sprites/shadow_ball.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_ShadowBall[] = INCBIN_U32("graphics/battle_anims/sprites/shadow_ball.4bpp.lz"); +const u32 gBattleAnimSpritePal_ShadowBall[] = INCBIN_U32("graphics/battle_anims/sprites/shadow_ball.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Lick[] = INCBIN_U32("graphics/battle_anims/sprites/lick.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Lick[] = INCBIN_U32("graphics/battle_anims/sprites/lick.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Lick[] = INCBIN_U32("graphics/battle_anims/sprites/lick.4bpp.lz"); +const u32 gBattleAnimSpritePal_Lick[] = INCBIN_U32("graphics/battle_anims/sprites/lick.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_VoidLines[] = INCBIN_U32("graphics/battle_anims/sprites/void_lines.4bpp.lz"); -const u32 gBattleAnimSpritePalette_VoidLines[] = INCBIN_U32("graphics/battle_anims/sprites/void_lines.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_VoidLines[] = INCBIN_U32("graphics/battle_anims/sprites/void_lines.4bpp.lz"); +const u32 gBattleAnimSpritePal_VoidLines[] = INCBIN_U32("graphics/battle_anims/sprites/void_lines.gbapal.lz"); -const u32 gBattleAnimSpritePalette_String[] = INCBIN_U32("graphics/battle_anims/sprites/string.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_String[] = INCBIN_U32("graphics/battle_anims/sprites/string.4bpp.lz"); +const u32 gBattleAnimSpritePal_String[] = INCBIN_U32("graphics/battle_anims/sprites/string.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_String[] = INCBIN_U32("graphics/battle_anims/sprites/string.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_WebThread[] = INCBIN_U32("graphics/battle_anims/sprites/web_thread.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_SpiderWeb[] = INCBIN_U32("graphics/battle_anims/sprites/spider_web.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_WebThread[] = INCBIN_U32("graphics/battle_anims/sprites/web_thread.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_SpiderWeb[] = INCBIN_U32("graphics/battle_anims/sprites/spider_web.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Lightbulb[] = INCBIN_U32("graphics/battle_anims/sprites/lightbulb.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Lightbulb[] = INCBIN_U32("graphics/battle_anims/sprites/lightbulb.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Lightbulb[] = INCBIN_U32("graphics/battle_anims/sprites/lightbulb.4bpp.lz"); +const u32 gBattleAnimSpritePal_Lightbulb[] = INCBIN_U32("graphics/battle_anims/sprites/lightbulb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Slash[] = INCBIN_U32("graphics/battle_anims/sprites/slash.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Slash[] = INCBIN_U32("graphics/battle_anims/sprites/slash.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Slash[] = INCBIN_U32("graphics/battle_anims/sprites/slash.4bpp.lz"); +const u32 gBattleAnimSpritePal_Slash[] = INCBIN_U32("graphics/battle_anims/sprites/slash.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_FocusEnergy[] = INCBIN_U32("graphics/battle_anims/sprites/focus_energy.4bpp.lz"); -const u32 gBattleAnimSpritePalette_FocusEnergy[] = INCBIN_U32("graphics/battle_anims/sprites/focus_energy.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_FocusEnergy[] = INCBIN_U32("graphics/battle_anims/sprites/focus_energy.4bpp.lz"); +const u32 gBattleAnimSpritePal_FocusEnergy[] = INCBIN_U32("graphics/battle_anims/sprites/focus_energy.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_SphereToCube[] = INCBIN_U32("graphics/battle_anims/sprites/sphere_to_cube.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SphereToCube[] = INCBIN_U32("graphics/battle_anims/sprites/sphere_to_cube.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SphereToCube[] = INCBIN_U32("graphics/battle_anims/sprites/sphere_to_cube.4bpp.lz"); +const u32 gBattleAnimSpritePal_SphereToCube[] = INCBIN_U32("graphics/battle_anims/sprites/sphere_to_cube.gbapal.lz"); const u32 gBattleAnimBackgroundImage_03[] = INCBIN_U32("graphics/battle_anims/backgrounds/03.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_03[] = INCBIN_U32("graphics/battle_anims/backgrounds/03.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_03[] = INCBIN_U32("graphics/battle_anims/backgrounds/03.bin.lz"); -const u32 gBattleAnimSpriteSheet_Eye[] = INCBIN_U32("graphics/battle_anims/sprites/eye.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Eye[] = INCBIN_U32("graphics/battle_anims/sprites/eye.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Eye[] = INCBIN_U32("graphics/battle_anims/sprites/eye.4bpp.lz"); +const u32 gBattleAnimSpritePal_Eye[] = INCBIN_U32("graphics/battle_anims/sprites/eye.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Tendrils[] = INCBIN_U32("graphics/battle_anims/sprites/tendrils.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Tendrils[] = INCBIN_U32("graphics/battle_anims/sprites/tendrils.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Tendrils[] = INCBIN_U32("graphics/battle_anims/sprites/tendrils.4bpp.lz"); +const u32 gBattleAnimSpritePal_Tendrils[] = INCBIN_U32("graphics/battle_anims/sprites/tendrils.gbapal.lz"); const u32 gHealthboxSinglesPlayerGfx[] = INCBIN_U32("graphics/battle_interface/healthbox_singles_player.4bpp.lz"); const u32 gHealthboxSinglesOpponentGfx[] = INCBIN_U32("graphics/battle_interface/healthbox_singles_opponent.4bpp.lz"); @@ -652,136 +652,136 @@ const u32 gHealthboxSafariGfx[] = INCBIN_U32("graphics/battle_interface/healthbo const u32 gUnusedGfx_Shadow[] = INCBIN_U32("graphics/unused/shadow.4bpp.lz"); const u32 gUnusedPal_Shadow[] = INCBIN_U32("graphics/unused/shadow.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_LockOn[] = INCBIN_U32("graphics/battle_anims/sprites/lock_on.4bpp.lz"); -const u32 gBattleAnimSpritePalette_LockOn[] = INCBIN_U32("graphics/battle_anims/sprites/lock_on.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_LockOn[] = INCBIN_U32("graphics/battle_anims/sprites/lock_on.4bpp.lz"); +const u32 gBattleAnimSpritePal_LockOn[] = INCBIN_U32("graphics/battle_anims/sprites/lock_on.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_OpeningEye[] = INCBIN_U32("graphics/battle_anims/sprites/opening_eye.4bpp.lz"); -const u32 gBattleAnimSpritePalette_OpeningEye[] = INCBIN_U32("graphics/battle_anims/sprites/opening_eye.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_OpeningEye[] = INCBIN_U32("graphics/battle_anims/sprites/opening_eye.4bpp.lz"); +const u32 gBattleAnimSpritePal_OpeningEye[] = INCBIN_U32("graphics/battle_anims/sprites/opening_eye.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_RoundWhiteHalo[] = INCBIN_U32("graphics/battle_anims/sprites/round_white_halo.4bpp.lz"); -const u32 gBattleAnimSpritePalette_RoundWhiteHalo[] = INCBIN_U32("graphics/battle_anims/sprites/round_white_halo.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_RoundWhiteHalo[] = INCBIN_U32("graphics/battle_anims/sprites/round_white_halo.4bpp.lz"); +const u32 gBattleAnimSpritePal_RoundWhiteHalo[] = INCBIN_U32("graphics/battle_anims/sprites/round_white_halo.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_TealAlert[] = INCBIN_U32("graphics/battle_anims/sprites/teal_alert.4bpp.lz"); -const u32 gBattleAnimSpritePalette_TealAlert[] = INCBIN_U32("graphics/battle_anims/sprites/teal_alert.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_TealAlert[] = INCBIN_U32("graphics/battle_anims/sprites/teal_alert.4bpp.lz"); +const u32 gBattleAnimSpritePal_TealAlert[] = INCBIN_U32("graphics/battle_anims/sprites/teal_alert.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_FangAttack[] = INCBIN_U32("graphics/battle_anims/sprites/fang_attack.4bpp.lz"); -const u32 gBattleAnimSpritePalette_FangAttack[] = INCBIN_U32("graphics/battle_anims/sprites/fang_attack.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_FangAttack[] = INCBIN_U32("graphics/battle_anims/sprites/fang_attack.4bpp.lz"); +const u32 gBattleAnimSpritePal_FangAttack[] = INCBIN_U32("graphics/battle_anims/sprites/fang_attack.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.4bpp.lz"); +const u32 gBattleAnimSpritePal_PurpleHandOutline[] = INCBIN_U32("graphics/battle_anims/sprites/purple_hand_outline.gbapal.lz"); const u32 gUnknown_08C20668[] = INCBIN_U32("graphics/battle_anims/masks/curse.4bpp.lz"); const u32 gUnknown_08C20684[] = INCBIN_U32("graphics/battle_anims/masks/curse.bin.lz"); -const u32 gBattleAnimSpriteSheet_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.4bpp.lz"); +const u32 gBattleAnimSpritePal_Pencil[] = INCBIN_U32("graphics/battle_anims/sprites/pencil.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Spiral[] = INCBIN_U32("graphics/battle_anims/sprites/spiral.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Spiral[] = INCBIN_U32("graphics/battle_anims/sprites/spiral.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Spiral[] = INCBIN_U32("graphics/battle_anims/sprites/spiral.4bpp.lz"); +const u32 gBattleAnimSpritePal_Spiral[] = INCBIN_U32("graphics/battle_anims/sprites/spiral.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Moon[] = INCBIN_U32("graphics/battle_anims/sprites/moon.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Moon[] = INCBIN_U32("graphics/battle_anims/sprites/moon.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Moon[] = INCBIN_U32("graphics/battle_anims/sprites/moon.4bpp.lz"); +const u32 gBattleAnimSpritePal_Moon[] = INCBIN_U32("graphics/battle_anims/sprites/moon.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_GreenSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/green_sparkle.4bpp.lz"); -const u32 gBattleAnimSpritePalette_GreenSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/green_sparkle.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GreenSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/green_sparkle.4bpp.lz"); +const u32 gBattleAnimSpritePal_GreenSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/green_sparkle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_SnoreZ[] = INCBIN_U32("graphics/battle_anims/sprites/snore_z.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SnoreZ[] = INCBIN_U32("graphics/battle_anims/sprites/snore_z.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SnoreZ[] = INCBIN_U32("graphics/battle_anims/sprites/snore_z.4bpp.lz"); +const u32 gBattleAnimSpritePal_SnoreZ[] = INCBIN_U32("graphics/battle_anims/sprites/snore_z.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Explosion[] = INCBIN_U32("graphics/battle_anims/sprites/explosion.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Explosion[] = INCBIN_U32("graphics/battle_anims/sprites/explosion.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Explosion[] = INCBIN_U32("graphics/battle_anims/sprites/explosion.4bpp.lz"); +const u32 gBattleAnimSpritePal_Explosion[] = INCBIN_U32("graphics/battle_anims/sprites/explosion.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Nail[] = INCBIN_U32("graphics/battle_anims/sprites/nail.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Nail[] = INCBIN_U32("graphics/battle_anims/sprites/nail.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Nail[] = INCBIN_U32("graphics/battle_anims/sprites/nail.4bpp.lz"); +const u32 gBattleAnimSpritePal_Nail[] = INCBIN_U32("graphics/battle_anims/sprites/nail.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_GhostlySpirit[] = INCBIN_U32("graphics/battle_anims/sprites/ghostly_spirit.4bpp.lz"); -const u32 gBattleAnimSpritePalette_GhostlySpirit[] = INCBIN_U32("graphics/battle_anims/sprites/ghostly_spirit.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GhostlySpirit[] = INCBIN_U32("graphics/battle_anims/sprites/ghostly_spirit.4bpp.lz"); +const u32 gBattleAnimSpritePal_GhostlySpirit[] = INCBIN_U32("graphics/battle_anims/sprites/ghostly_spirit.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_WarmRock[] = INCBIN_U32("graphics/battle_anims/sprites/warm_rock.4bpp.lz"); -const u32 gBattleAnimSpritePalette_WarmRock[] = INCBIN_U32("graphics/battle_anims/sprites/warm_rock.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_WarmRock[] = INCBIN_U32("graphics/battle_anims/sprites/warm_rock.4bpp.lz"); +const u32 gBattleAnimSpritePal_WarmRock[] = INCBIN_U32("graphics/battle_anims/sprites/warm_rock.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PunchImpact[] = INCBIN_U32("graphics/battle_anims/sprites/punch_impact.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PunchImpact[] = INCBIN_U32("graphics/battle_anims/sprites/punch_impact.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PunchImpact[] = INCBIN_U32("graphics/battle_anims/sprites/punch_impact.4bpp.lz"); +const u32 gBattleAnimSpritePal_PunchImpact[] = INCBIN_U32("graphics/battle_anims/sprites/punch_impact.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_BreakingEgg[] = INCBIN_U32("graphics/battle_anims/sprites/breaking_egg.4bpp.lz"); -const u32 gBattleAnimSpritePalette_BreakingEgg[] = INCBIN_U32("graphics/battle_anims/sprites/breaking_egg.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BreakingEgg[] = INCBIN_U32("graphics/battle_anims/sprites/breaking_egg.4bpp.lz"); +const u32 gBattleAnimSpritePal_BreakingEgg[] = INCBIN_U32("graphics/battle_anims/sprites/breaking_egg.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_ThinRing[] = INCBIN_U32("graphics/battle_anims/sprites/thin_ring.4bpp.lz"); -const u32 gBattleAnimSpritePalette_ThinRing[] = INCBIN_U32("graphics/battle_anims/sprites/thin_ring.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_ThinRing[] = INCBIN_U32("graphics/battle_anims/sprites/thin_ring.4bpp.lz"); +const u32 gBattleAnimSpritePal_ThinRing[] = INCBIN_U32("graphics/battle_anims/sprites/thin_ring.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_MusicNotes2[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes_2.4bpp.lz"); -const u32 gBattleAnimSpritePalette_MusicNotes2[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MusicNotes2[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_MusicNotes2[] = INCBIN_U32("graphics/battle_anims/sprites/music_notes_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Bell[] = INCBIN_U32("graphics/battle_anims/sprites/bell.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Bell[] = INCBIN_U32("graphics/battle_anims/sprites/bell.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Bell[] = INCBIN_U32("graphics/battle_anims/sprites/bell.4bpp.lz"); +const u32 gBattleAnimSpritePal_Bell[] = INCBIN_U32("graphics/battle_anims/sprites/bell.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_SpeedDust[] = INCBIN_U32("graphics/battle_anims/sprites/speed_dust.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SpeedDust[] = INCBIN_U32("graphics/battle_anims/sprites/speed_dust.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SpeedDust[] = INCBIN_U32("graphics/battle_anims/sprites/speed_dust.4bpp.lz"); +const u32 gBattleAnimSpritePal_SpeedDust[] = INCBIN_U32("graphics/battle_anims/sprites/speed_dust.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_TornMetal[] = INCBIN_U32("graphics/battle_anims/sprites/torn_metal.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_TornMetal[] = INCBIN_U32("graphics/battle_anims/sprites/torn_metal.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_ThoughtBubble[] = INCBIN_U32("graphics/battle_anims/sprites/thought_bubble.4bpp.lz"); -const u32 gBattleAnimSpritePalette_ThoughtBubble[] = INCBIN_U32("graphics/battle_anims/sprites/thought_bubble.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_ThoughtBubble[] = INCBIN_U32("graphics/battle_anims/sprites/thought_bubble.4bpp.lz"); +const u32 gBattleAnimSpritePal_ThoughtBubble[] = INCBIN_U32("graphics/battle_anims/sprites/thought_bubble.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Finger[] = INCBIN_U32("graphics/battle_anims/sprites/finger.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Finger[] = INCBIN_U32("graphics/battle_anims/sprites/finger.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Finger[] = INCBIN_U32("graphics/battle_anims/sprites/finger.4bpp.lz"); +const u32 gBattleAnimSpritePal_Finger[] = INCBIN_U32("graphics/battle_anims/sprites/finger.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_MagentaHeart[] = INCBIN_U32("graphics/battle_anims/sprites/magenta_heart.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_MagentaHeart[] = INCBIN_U32("graphics/battle_anims/sprites/magenta_heart.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PinkHeart[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart.gbapal.lz"); -const u32 gBattleAnimSpritePalette_MagentaHeart[] = INCBIN_U32("graphics/battle_anims/sprites/magenta_heart.gbapal.lz"); -const u32 gBattleAnimSpritePalette_RedHeart[] = INCBIN_U32("graphics/battle_anims/sprites/red_heart.gbapal.lz"); +const u32 gBattleAnimSpritePal_PinkHeart[] = INCBIN_U32("graphics/battle_anims/sprites/pink_heart.gbapal.lz"); +const u32 gBattleAnimSpritePal_MagentaHeart[] = INCBIN_U32("graphics/battle_anims/sprites/magenta_heart.gbapal.lz"); +const u32 gBattleAnimSpritePal_RedHeart[] = INCBIN_U32("graphics/battle_anims/sprites/red_heart.gbapal.lz"); const u32 gUnknown_08C232E0[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.4bpp.lz"); const u32 gUnknown_08C23D50[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.gbapal.lz"); const u32 gUnknown_08C23D78[] = INCBIN_U32("graphics/battle_anims/backgrounds/attract.bin.lz"); -const u32 gBattleAnimSpriteSheet_RedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb.4bpp.lz"); -const u32 gBattleAnimSpritePalette_RedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_RedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb.4bpp.lz"); +const u32 gBattleAnimSpritePal_RedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_CircleOfLight[] = INCBIN_U32("graphics/battle_anims/sprites/circle_of_light.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_ElectricOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/electric_orbs.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Electricity[] = INCBIN_U32("graphics/battle_anims/sprites/electricity.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_CircleOfLight[] = INCBIN_U32("graphics/battle_anims/sprites/circle_of_light.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_ElectricOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/electric_orbs.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Electricity[] = INCBIN_U32("graphics/battle_anims/sprites/electricity.4bpp.lz"); -const u32 gBattleAnimSpritePalette_ElectricOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/electric_orbs.gbapal.lz"); +const u32 gBattleAnimSpritePal_ElectricOrbs[] = INCBIN_U32("graphics/battle_anims/sprites/electric_orbs.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Finger2[] = INCBIN_U32("graphics/battle_anims/sprites/finger_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Finger2[] = INCBIN_U32("graphics/battle_anims/sprites/finger_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_MovementWaves[] = INCBIN_U32("graphics/battle_anims/sprites/movement_waves.4bpp.lz"); -const u32 gBattleAnimSpritePalette_MovementWaves[] = INCBIN_U32("graphics/battle_anims/sprites/movement_waves.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MovementWaves[] = INCBIN_U32("graphics/battle_anims/sprites/movement_waves.4bpp.lz"); +const u32 gBattleAnimSpritePal_MovementWaves[] = INCBIN_U32("graphics/battle_anims/sprites/movement_waves.gbapal.lz"); const u32 gUnknown_08C249D0[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face.gbapal.lz"); const u32 gUnknown_08C249F8[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face.4bpp.lz"); -const u32 gBattleAnimSpritePalette_EyeSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/eye_sparkle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_EyeSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/eye_sparkle.4bpp.lz"); +const u32 gBattleAnimSpritePal_EyeSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/eye_sparkle.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_EyeSparkle[] = INCBIN_U32("graphics/battle_anims/sprites/eye_sparkle.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Anger[] = INCBIN_U32("graphics/battle_anims/sprites/anger.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Anger[] = INCBIN_U32("graphics/battle_anims/sprites/anger.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Anger[] = INCBIN_U32("graphics/battle_anims/sprites/anger.4bpp.lz"); +const u32 gBattleAnimSpritePal_Anger[] = INCBIN_U32("graphics/battle_anims/sprites/anger.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Conversion[] = INCBIN_U32("graphics/battle_anims/sprites/conversion.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Conversion[] = INCBIN_U32("graphics/battle_anims/sprites/conversion.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Conversion[] = INCBIN_U32("graphics/battle_anims/sprites/conversion.4bpp.lz"); +const u32 gBattleAnimSpritePal_Conversion[] = INCBIN_U32("graphics/battle_anims/sprites/conversion.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Angel[] = INCBIN_U32("graphics/battle_anims/sprites/angel.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Angel[] = INCBIN_U32("graphics/battle_anims/sprites/angel.4bpp.lz"); +const u32 gBattleAnimSpritePal_Angel[] = INCBIN_U32("graphics/battle_anims/sprites/angel.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Angel[] = INCBIN_U32("graphics/battle_anims/sprites/angel.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Devil[] = INCBIN_U32("graphics/battle_anims/sprites/devil.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Devil[] = INCBIN_U32("graphics/battle_anims/sprites/devil.4bpp.lz"); +const u32 gBattleAnimSpritePal_Devil[] = INCBIN_U32("graphics/battle_anims/sprites/devil.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Devil[] = INCBIN_U32("graphics/battle_anims/sprites/devil.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Swipe[] = INCBIN_U32("graphics/battle_anims/sprites/swipe.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Swipe[] = INCBIN_U32("graphics/battle_anims/sprites/swipe.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Swipe[] = INCBIN_U32("graphics/battle_anims/sprites/swipe.4bpp.lz"); +const u32 gBattleAnimSpritePal_Swipe[] = INCBIN_U32("graphics/battle_anims/sprites/swipe.gbapal.lz"); -const u32 gBattleAnimSpritePalette_Roots[] = INCBIN_U32("graphics/battle_anims/sprites/roots.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Roots[] = INCBIN_U32("graphics/battle_anims/sprites/roots.4bpp.lz"); +const u32 gBattleAnimSpritePal_Roots[] = INCBIN_U32("graphics/battle_anims/sprites/roots.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Roots[] = INCBIN_U32("graphics/battle_anims/sprites/roots.4bpp.lz"); -const u32 gBattleAnimSpritePalette_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.4bpp.lz"); +const u32 gBattleAnimSpritePal_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.4bpp.lz"); -const u32 gBattleAnimSpritePalette_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_force_triangle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_force_triangle.4bpp.lz"); +const u32 gBattleAnimSpritePal_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_force_triangle.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_force_triangle.4bpp.lz"); -const u32 gBattleAnimSpritePalette_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.4bpp.lz"); +const u32 gBattleAnimSpritePal_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_04[] = INCBIN_U32("graphics/battle_anims/backgrounds/04.gbapal.lz"); const u32 gBattleAnimBackgroundImage_04[] = INCBIN_U32("graphics/battle_anims/backgrounds/04.4bpp.lz"); @@ -790,39 +790,39 @@ const u32 gBattleAnimBackgroundTilemap_04[] = INCBIN_U32("graphics/battle_anims/ const u32 gBattleAnimBackgroundTilemap_05[] = INCBIN_U32("graphics/battle_anims/backgrounds/05.bin.lz"); const u32 gBattleAnimBackgroundTilemap_06[] = INCBIN_U32("graphics/battle_anims/backgrounds/06.bin.lz"); -const u32 gBattleAnimSpriteSheet_JaggedMusicNote[] = INCBIN_U32("graphics/battle_anims/sprites/jagged_music_note.4bpp.lz"); -const u32 gBattleAnimSpritePalette_JaggedMusicNote[] = INCBIN_U32("graphics/battle_anims/sprites/jagged_music_note.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_JaggedMusicNote[] = INCBIN_U32("graphics/battle_anims/sprites/jagged_music_note.4bpp.lz"); +const u32 gBattleAnimSpritePal_JaggedMusicNote[] = INCBIN_U32("graphics/battle_anims/sprites/jagged_music_note.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Spotlight[] = INCBIN_U32("graphics/battle_anims/sprites/spotlight.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Spotlight[] = INCBIN_U32("graphics/battle_anims/sprites/spotlight.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Pokeball[] = INCBIN_U32("graphics/battle_anims/sprites/pokeball.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Pokeball[] = INCBIN_U32("graphics/battle_anims/sprites/pokeball.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Pokeball[] = INCBIN_U32("graphics/battle_anims/sprites/pokeball.4bpp.lz"); +const u32 gBattleAnimSpritePal_Pokeball[] = INCBIN_U32("graphics/battle_anims/sprites/pokeball.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_RapidSpin[] = INCBIN_U32("graphics/battle_anims/sprites/rapid_spin.4bpp.lz"); -const u32 gBattleAnimSpritePalette_RapidSpin[] = INCBIN_U32("graphics/battle_anims/sprites/rapid_spin.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_RapidSpin[] = INCBIN_U32("graphics/battle_anims/sprites/rapid_spin.4bpp.lz"); +const u32 gBattleAnimSpritePal_RapidSpin[] = INCBIN_U32("graphics/battle_anims/sprites/rapid_spin.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_MilkBottle[] = INCBIN_U32("graphics/battle_anims/sprites/milk_bottle.4bpp.lz"); -const u32 gBattleAnimSpritePalette_MilkBottle[] = INCBIN_U32("graphics/battle_anims/sprites/milk_bottle.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MilkBottle[] = INCBIN_U32("graphics/battle_anims/sprites/milk_bottle.4bpp.lz"); +const u32 gBattleAnimSpritePal_MilkBottle[] = INCBIN_U32("graphics/battle_anims/sprites/milk_bottle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_WispFire[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_fire.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_WispFire[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_fire.4bpp.lz"); -const u32 gBattleAnimSpritePalette_WispOrb[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_WispOrb[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_orb.4bpp.lz"); +const u32 gBattleAnimSpritePal_WispOrb[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_orb.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_WispOrb[] = INCBIN_U32("graphics/battle_anims/sprites/wisp_orb.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_GoldStars[] = INCBIN_U32("graphics/battle_anims/sprites/gold_stars.4bpp.lz"); -const u32 gBattleAnimSpritePalette_GoldStars[] = INCBIN_U32("graphics/battle_anims/sprites/gold_stars.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GoldStars[] = INCBIN_U32("graphics/battle_anims/sprites/gold_stars.4bpp.lz"); +const u32 gBattleAnimSpritePal_GoldStars[] = INCBIN_U32("graphics/battle_anims/sprites/gold_stars.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_EclipsingOrb[] = INCBIN_U32("graphics/battle_anims/sprites/eclipsing_orb.4bpp.lz"); -const u32 gBattleAnimSpritePalette_EclipsingOrb[] = INCBIN_U32("graphics/battle_anims/sprites/eclipsing_orb.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_EclipsingOrb[] = INCBIN_U32("graphics/battle_anims/sprites/eclipsing_orb.4bpp.lz"); +const u32 gBattleAnimSpritePal_EclipsingOrb[] = INCBIN_U32("graphics/battle_anims/sprites/eclipsing_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PinkPetal[] = INCBIN_U32("graphics/battle_anims/sprites/pink_petal.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PinkPetal[] = INCBIN_U32("graphics/battle_anims/sprites/pink_petal.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PinkPetal[] = INCBIN_U32("graphics/battle_anims/sprites/pink_petal.4bpp.lz"); +const u32 gBattleAnimSpritePal_PinkPetal[] = INCBIN_U32("graphics/battle_anims/sprites/pink_petal.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_GrayOrb[] = INCBIN_U32("graphics/battle_anims/sprites/gray_orb.4bpp.lz"); -const u32 gBattleAnimSpritePalette_GrayOrb[] = INCBIN_U32("graphics/battle_anims/sprites/gray_orb.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GrayOrb[] = INCBIN_U32("graphics/battle_anims/sprites/gray_orb.4bpp.lz"); +const u32 gBattleAnimSpritePal_GrayOrb[] = INCBIN_U32("graphics/battle_anims/sprites/gray_orb.gbapal.lz"); -const u32 gBattleAnimSpritePalette_BlueOrb[] = INCBIN_U32("graphics/battle_anims/sprites/blue_orb.gbapal.lz"); -const u32 gBattleAnimSpritePalette_RedOrb2[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_BlueOrb[] = INCBIN_U32("graphics/battle_anims/sprites/blue_orb.gbapal.lz"); +const u32 gBattleAnimSpritePal_RedOrb2[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb_2.gbapal.lz"); const u32 gBattleAnimBackgroundImage_07[] = INCBIN_U32("graphics/battle_anims/backgrounds/07.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_07[] = INCBIN_U32("graphics/battle_anims/backgrounds/07.gbapal.lz"); @@ -859,30 +859,30 @@ const u32 gBattleAnimBackgroundImage_11[] = INCBIN_U32("graphics/battle_anims/ba const u32 gBattleAnimBackgroundPalette_11[] = INCBIN_U32("graphics/battle_anims/backgrounds/11.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_11[] = INCBIN_U32("graphics/battle_anims/backgrounds/11.bin.lz"); -const u32 gBattleAnimSpriteSheet_PainSplit[] = INCBIN_U32("graphics/battle_anims/sprites/pain_split.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PainSplit[] = INCBIN_U32("graphics/battle_anims/sprites/pain_split.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PainSplit[] = INCBIN_U32("graphics/battle_anims/sprites/pain_split.4bpp.lz"); +const u32 gBattleAnimSpritePal_PainSplit[] = INCBIN_U32("graphics/battle_anims/sprites/pain_split.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_HandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/hands_and_feet.4bpp.lz"); -const u32 gBattleAnimSpritePalette_HandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/hands_and_feet.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_HandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/hands_and_feet.4bpp.lz"); +const u32 gBattleAnimSpritePal_HandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/hands_and_feet.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Confetti[] = INCBIN_U32("graphics/battle_anims/sprites/confetti.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Confetti[] = INCBIN_U32("graphics/battle_anims/sprites/confetti.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Confetti[] = INCBIN_U32("graphics/battle_anims/sprites/confetti.4bpp.lz"); +const u32 gBattleAnimSpritePal_Confetti[] = INCBIN_U32("graphics/battle_anims/sprites/confetti.gbapal.lz"); const u32 gSubstituteDollPal[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.gbapal.lz"); const u32 gSubstituteDollGfx[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.4bpp.lz"); const u32 gSubstituteDollTilemap[] = INCBIN_U32("graphics/battle_anims/sprites/substitute.bin.lz"); -const u32 gBattleAnimSpriteSheet_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.4bpp.lz"); -const u32 gBattleAnimSpritePalette_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.4bpp.lz"); +const u32 gBattleAnimSpritePal_GreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star.gbapal.lz"); const u32 gContestConfetti_Gfx[] = INCBIN_U32("graphics/misc/confetti.4bpp.lz"); const u32 gContestConfetti_Pal[] = INCBIN_U32("graphics/misc/confetti.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PinkCloud[] = INCBIN_U32("graphics/battle_anims/sprites/pink_cloud.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PinkCloud[] = INCBIN_U32("graphics/battle_anims/sprites/pink_cloud.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PinkCloud[] = INCBIN_U32("graphics/battle_anims/sprites/pink_cloud.4bpp.lz"); +const u32 gBattleAnimSpritePal_PinkCloud[] = INCBIN_U32("graphics/battle_anims/sprites/pink_cloud.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.4bpp.lz"); +const u32 gBattleAnimSpritePal_SweatDrop[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_drop.gbapal.lz"); const u32 gBattleStatMask_Gfx[] = INCBIN_U32("graphics/battle_anims/masks/stat.4bpp.lz"); const u32 gBattleStatMask1_Tilemap[] = INCBIN_U32("graphics/battle_anims/masks/stat_tilemap_1.bin.lz"); @@ -901,52 +901,52 @@ const u32 gCureBubblesGfx[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbl const u32 gCureBubblesPal[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.gbapal.lz"); const u32 gCureBubblesTilemap[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.bin.lz"); -const u32 gBattleAnimSpritePalette_PurpleScratch[] = INCBIN_U32("graphics/battle_anims/sprites/purple_scratch.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PurpleScratch[] = INCBIN_U32("graphics/battle_anims/sprites/purple_scratch.4bpp.lz"); +const u32 gBattleAnimSpritePal_PurpleScratch[] = INCBIN_U32("graphics/battle_anims/sprites/purple_scratch.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PurpleScratch[] = INCBIN_U32("graphics/battle_anims/sprites/purple_scratch.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_PurpleSwipe[] = INCBIN_U32("graphics/battle_anims/sprites/purple_swipe.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_PurpleSwipe[] = INCBIN_U32("graphics/battle_anims/sprites/purple_swipe.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_GuardRing[] = INCBIN_U32("graphics/battle_anims/sprites/guard_ring.4bpp.lz"); -const u32 gBattleAnimSpritePalette_GuardRing[] = INCBIN_U32("graphics/battle_anims/sprites/guard_ring.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GuardRing[] = INCBIN_U32("graphics/battle_anims/sprites/guard_ring.4bpp.lz"); +const u32 gBattleAnimSpritePal_GuardRing[] = INCBIN_U32("graphics/battle_anims/sprites/guard_ring.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_TagHand[] = INCBIN_U32("graphics/battle_anims/sprites/tag_hand.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_TagHand[] = INCBIN_U32("graphics/battle_anims/sprites/tag_hand.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_NoiseLine[] = INCBIN_U32("graphics/battle_anims/sprites/noise_line.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_NoiseLine[] = INCBIN_U32("graphics/battle_anims/sprites/noise_line.4bpp.lz"); const u32 gUnknown_08C2EA50[] = INCBIN_U32("graphics/battle_anims/masks/unknown_C2EA50.4bpp.lz"); const u32 gUnknown_08C2EA9C[] = INCBIN_U32("graphics/battle_anims/masks/unknown_C2EA50.bin.lz"); -const u32 gBattleAnimSpriteSheet_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.4bpp.lz"); +const u32 gBattleAnimSpritePal_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_HollowOrb[] = INCBIN_U32("graphics/battle_anims/sprites/hollow_orb.4bpp.lz"); -const u32 gBattleAnimSpritePalette_HollowOrb[] = INCBIN_U32("graphics/battle_anims/sprites/hollow_orb.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_HollowOrb[] = INCBIN_U32("graphics/battle_anims/sprites/hollow_orb.4bpp.lz"); +const u32 gBattleAnimSpritePal_HollowOrb[] = INCBIN_U32("graphics/battle_anims/sprites/hollow_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_XSign[] = INCBIN_U32("graphics/battle_anims/sprites/x_sign.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_XSign[] = INCBIN_U32("graphics/battle_anims/sprites/x_sign.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_BluegreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/bluegreen_orb.4bpp.lz"); -const u32 gBattleAnimSpritePalette_BluegreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/bluegreen_orb.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BluegreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/bluegreen_orb.4bpp.lz"); +const u32 gBattleAnimSpritePal_BluegreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/bluegreen_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PawPrint[] = INCBIN_U32("graphics/battle_anims/sprites/paw_print.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PawPrint[] = INCBIN_U32("graphics/battle_anims/sprites/paw_print.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PawPrint[] = INCBIN_U32("graphics/battle_anims/sprites/paw_print.4bpp.lz"); +const u32 gBattleAnimSpritePal_PawPrint[] = INCBIN_U32("graphics/battle_anims/sprites/paw_print.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_PurpleFlame[] = INCBIN_U32("graphics/battle_anims/sprites/purple_flame.4bpp.lz"); -const u32 gBattleAnimSpritePalette_PurpleFlame[] = INCBIN_U32("graphics/battle_anims/sprites/purple_flame.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PurpleFlame[] = INCBIN_U32("graphics/battle_anims/sprites/purple_flame.4bpp.lz"); +const u32 gBattleAnimSpritePal_PurpleFlame[] = INCBIN_U32("graphics/battle_anims/sprites/purple_flame.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_RedBall[] = INCBIN_U32("graphics/battle_anims/sprites/red_ball.4bpp.lz"); -const u32 gBattleAnimSpritePalette_RedBall[] = INCBIN_U32("graphics/battle_anims/sprites/red_ball.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_RedBall[] = INCBIN_U32("graphics/battle_anims/sprites/red_ball.4bpp.lz"); +const u32 gBattleAnimSpritePal_RedBall[] = INCBIN_U32("graphics/battle_anims/sprites/red_ball.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_SmellingsaltEffect[] = INCBIN_U32("graphics/battle_anims/sprites/smellingsalt_effect.4bpp.lz"); -const u32 gBattleAnimSpritePalette_SmellingsaltEffect[] = INCBIN_U32("graphics/battle_anims/sprites/smellingsalt_effect.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SmellingsaltEffect[] = INCBIN_U32("graphics/battle_anims/sprites/smellingsalt_effect.4bpp.lz"); +const u32 gBattleAnimSpritePal_SmellingsaltEffect[] = INCBIN_U32("graphics/battle_anims/sprites/smellingsalt_effect.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_MagnifyingGlass[] = INCBIN_U32("graphics/battle_anims/sprites/magnifying_glass.4bpp.lz"); -const u32 gBattleAnimSpritePalette_MagnifyingGlass[] = INCBIN_U32("graphics/battle_anims/sprites/magnifying_glass.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MagnifyingGlass[] = INCBIN_U32("graphics/battle_anims/sprites/magnifying_glass.4bpp.lz"); +const u32 gBattleAnimSpritePal_MagnifyingGlass[] = INCBIN_U32("graphics/battle_anims/sprites/magnifying_glass.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Meteor[] = INCBIN_U32("graphics/battle_anims/sprites/meteor.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Meteor[] = INCBIN_U32("graphics/battle_anims/sprites/meteor.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Meteor[] = INCBIN_U32("graphics/battle_anims/sprites/meteor.4bpp.lz"); +const u32 gBattleAnimSpritePal_Meteor[] = INCBIN_U32("graphics/battle_anims/sprites/meteor.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.4bpp.lz"); -const u32 gBattleAnimSpritePalette_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.4bpp.lz"); +const u32 gBattleAnimSpritePal_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.gbapal.lz"); const u32 gUnknownPal_C2F9E0[] = INCBIN_U32("graphics/unknown/unknown_C2F9E0.gbapal.lz"); @@ -1005,58 +1005,58 @@ const u32 gUnknown_08D85A1C[] = INCBIN_U32("graphics/battle_frontier/battle_tile #include "data/graphics/intro_scene.h" -const u32 gBattleAnimSpriteSheet_FlyingDirt[] = INCBIN_U32("graphics/battle_anims/sprites/flying_dirt.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_FlyingDirt[] = INCBIN_U32("graphics/battle_anims/sprites/flying_dirt.4bpp.lz"); const u32 gUnknown_08D8D410[] = INCBIN_U32("graphics/battle_anims/backgrounds/sandstorm_brew.bin.lz"); const u32 gUnknown_08D8D58C[] = INCBIN_U32("graphics/battle_anims/backgrounds/sandstorm_brew.4bpp.lz"); -const u32 gBattleAnimSpritePalette_FlyingDirt[] = INCBIN_U32("graphics/battle_anims/sprites/flying_dirt.gbapal.lz"); +const u32 gBattleAnimSpritePal_FlyingDirt[] = INCBIN_U32("graphics/battle_anims/sprites/flying_dirt.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_MetalSoundWaves[] = INCBIN_U32("graphics/battle_anims/sprites/metal_sound_waves.4bpp.lz"); -const u32 gBattleAnimSpritePalette_MetalSoundWaves[] = INCBIN_U32("graphics/battle_anims/sprites/metal_sound_waves.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MetalSoundWaves[] = INCBIN_U32("graphics/battle_anims/sprites/metal_sound_waves.4bpp.lz"); +const u32 gBattleAnimSpritePal_MetalSoundWaves[] = INCBIN_U32("graphics/battle_anims/sprites/metal_sound_waves.gbapal.lz"); const u32 gBattleAnimBackgroundImage_15[] = INCBIN_U32("graphics/battle_anims/backgrounds/15.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_15[] = INCBIN_U32("graphics/battle_anims/backgrounds/15.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_15[] = INCBIN_U32("graphics/battle_anims/backgrounds/15.bin.lz"); -const u32 gBattleAnimSpriteSheet_IcicleSpear[] = INCBIN_U32("graphics/battle_anims/sprites/icicle_spear.4bpp.lz"); -const u32 gBattleAnimSpritePalette_IcicleSpear[] = INCBIN_U32("graphics/battle_anims/sprites/icicle_spear.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_IcicleSpear[] = INCBIN_U32("graphics/battle_anims/sprites/icicle_spear.4bpp.lz"); +const u32 gBattleAnimSpritePal_IcicleSpear[] = INCBIN_U32("graphics/battle_anims/sprites/icicle_spear.gbapal.lz"); const u32 gContestNextTurnGfx[] = INCBIN_U32("graphics/contest/nextturn.4bpp.lz"); const u8 gContestNextTurnNumbersGfx[] = INCBIN_U8("graphics/contest/nextturn_numbers.4bpp"); const u8 gContestNextTurnRandomGfx[] = INCBIN_U8("graphics/contest/nextturn_random.4bpp"); -const u32 gBattleAnimSpriteSheet_GlowyRedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_red_orb.4bpp.lz"); -const u32 gBattleAnimSpritePalette_GlowyRedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_red_orb.gbapal.lz"); -const u32 gBattleAnimSpritePalette_GlowyGreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_green_orb.gbapal.lz"); -const u32 gBattleAnimSpritePalette_SleepPowder[] = INCBIN_U32("graphics/battle_anims/sprites/sleep_powder.gbapal.lz"); -const u32 gBattleAnimSpritePalette_StunSpore[] = INCBIN_U32("graphics/battle_anims/sprites/stun_spore.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GlowyRedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_red_orb.4bpp.lz"); +const u32 gBattleAnimSpritePal_GlowyRedOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_red_orb.gbapal.lz"); +const u32 gBattleAnimSpritePal_GlowyGreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_green_orb.gbapal.lz"); +const u32 gBattleAnimSpritePal_SleepPowder[] = INCBIN_U32("graphics/battle_anims/sprites/sleep_powder.gbapal.lz"); +const u32 gBattleAnimSpritePal_StunSpore[] = INCBIN_U32("graphics/battle_anims/sprites/stun_spore.gbapal.lz"); const u32 gContestApplauseGfx[] = INCBIN_U32("graphics/contest/applause.4bpp.lz"); const u8 gContestApplauseMeterGfx[] = INCBIN_U8("graphics/contest/applause_meter.4bpp"); const u16 gContestPal[] = INCBIN_U16("graphics/contest/nextturn.gbapal"); -const u32 gBattleAnimSpriteSheet_Splash[] = INCBIN_U32("graphics/battle_anims/sprites/splash.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Splash[] = INCBIN_U32("graphics/battle_anims/sprites/splash.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Splash[] = INCBIN_U32("graphics/battle_anims/sprites/splash.4bpp.lz"); +const u32 gBattleAnimSpritePal_Splash[] = INCBIN_U32("graphics/battle_anims/sprites/splash.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_SweatBead[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_bead.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_SweatBead[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_bead.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_RedBrick[] = INCBIN_U32("graphics/battle_anims/sprites/red_brick.4bpp.lz"); -const u32 gBattleAnimSpritePalette_RedBrick[] = INCBIN_U32("graphics/battle_anims/sprites/red_brick.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_RedBrick[] = INCBIN_U32("graphics/battle_anims/sprites/red_brick.4bpp.lz"); +const u32 gBattleAnimSpritePal_RedBrick[] = INCBIN_U32("graphics/battle_anims/sprites/red_brick.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Gem1[] = INCBIN_U32("graphics/battle_anims/sprites/gem_1.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Gem2[] = INCBIN_U32("graphics/battle_anims/sprites/gem_2.4bpp.lz"); -const u32 gBattleAnimSpriteSheet_Gem3[] = INCBIN_U32("graphics/battle_anims/sprites/gem_3.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Gem1[] = INCBIN_U32("graphics/battle_anims/sprites/gem_1.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Gem2[] = INCBIN_U32("graphics/battle_anims/sprites/gem_2.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Gem3[] = INCBIN_U32("graphics/battle_anims/sprites/gem_3.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Gem1[] = INCBIN_U32("graphics/battle_anims/sprites/gem_1.gbapal.lz"); +const u32 gBattleAnimSpritePal_Gem1[] = INCBIN_U32("graphics/battle_anims/sprites/gem_1.gbapal.lz"); const u32 gBattleAnimBackgroundImage_17[] = INCBIN_U32("graphics/battle_anims/backgrounds/17.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_17[] = INCBIN_U32("graphics/battle_anims/backgrounds/17.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_17[] = INCBIN_U32("graphics/battle_anims/backgrounds/17.bin.lz"); -const u32 gBattleAnimSpriteSheet_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.4bpp.lz"); +const u32 gBattleAnimSpritePal_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.gbapal.lz"); const u32 gBattleAnimBackgroundImageMuddyWater_Pal[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz"); @@ -1070,7 +1070,7 @@ const u32 gBattleAnimBackgroundImage_02[] = INCBIN_U32("graphics/battle_anims/ba const u32 gBattleAnimBackgroundPalette_02[] = INCBIN_U32("graphics/battle_anims/backgrounds/02.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_02[] = INCBIN_U32("graphics/battle_anims/backgrounds/02.bin.lz"); -const u32 gBattleAnimSpritePalette_WhipHit[] = INCBIN_U32("graphics/battle_anims/sprites/whip_hit.gbapal.lz"); +const u32 gBattleAnimSpritePal_WhipHit[] = INCBIN_U32("graphics/battle_anims/sprites/whip_hit.gbapal.lz"); const u32 gBattleAnimBackgroundPalette_24[] = INCBIN_U32("graphics/battle_anims/backgrounds/24.gbapal.lz"); @@ -1085,44 +1085,44 @@ const u32 gBattleAnimBackgroundPalette_16[] = INCBIN_U32("graphics/battle_anims/ const u32 gBattleAnimBackgroundImage_16[] = INCBIN_U32("graphics/battle_anims/backgrounds/16.4bpp.lz"); const u32 gBattleAnimBackgroundTilemap_16[] = INCBIN_U32("graphics/battle_anims/backgrounds/16.bin.lz"); -const u32 gBattleAnimSpritePalette_SlamHit2[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_SlamHit2[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit_2.4bpp.lz"); +const u32 gBattleAnimSpritePal_SlamHit2[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit_2.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SlamHit2[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit_2.4bpp.lz"); const u32 gBattleAnimFogTilemap[] = INCBIN_U32("graphics/battle_anims/backgrounds/fog.bin.lz"); -const u32 gBattleAnimSpritePalette_WeatherBall[] = INCBIN_U32("graphics/battle_anims/sprites/weather_ball.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_WeatherBall[] = INCBIN_U32("graphics/battle_anims/sprites/weather_ball.4bpp.lz"); +const u32 gBattleAnimSpritePal_WeatherBall[] = INCBIN_U32("graphics/battle_anims/sprites/weather_ball.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_WeatherBall[] = INCBIN_U32("graphics/battle_anims/sprites/weather_ball.4bpp.lz"); const u32 gBattleAnimBackgroundTilemap_ScaryFacePlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_player.bin.lz"); const u32 gBattleAnimBackgroundTilemap_ScaryFaceOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_opponent.bin.lz"); const u32 gBattleAnimBackgroundTilemap_ScaryFaceContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_contest.bin.lz"); -const u32 gBattleAnimSpriteSheet_Hail[] = INCBIN_U32("graphics/battle_anims/sprites/hail.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Hail[] = INCBIN_U32("graphics/battle_anims/sprites/hail.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Hail[] = INCBIN_U32("graphics/battle_anims/sprites/hail.4bpp.lz"); +const u32 gBattleAnimSpritePal_Hail[] = INCBIN_U32("graphics/battle_anims/sprites/hail.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_GreenSpike[] = INCBIN_U32("graphics/battle_anims/sprites/green_spike.4bpp.lz"); -const u32 gBattleAnimSpritePalette_GreenSpike[] = INCBIN_U32("graphics/battle_anims/sprites/green_spike.gbapal.lz"); -const u32 gBattleAnimSpritePalette_WhiteCircleOfLight[] = INCBIN_U32("graphics/battle_anims/sprites/white_circle_of_light.gbapal.lz"); -const u32 gBattleAnimSpritePalette_GlowyBlueOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_blue_orb.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GreenSpike[] = INCBIN_U32("graphics/battle_anims/sprites/green_spike.4bpp.lz"); +const u32 gBattleAnimSpritePal_GreenSpike[] = INCBIN_U32("graphics/battle_anims/sprites/green_spike.gbapal.lz"); +const u32 gBattleAnimSpritePal_WhiteCircleOfLight[] = INCBIN_U32("graphics/battle_anims/sprites/white_circle_of_light.gbapal.lz"); +const u32 gBattleAnimSpritePal_GlowyBlueOrb[] = INCBIN_U32("graphics/battle_anims/sprites/glowy_blue_orb.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Recycle[] = INCBIN_U32("graphics/battle_anims/sprites/recycle.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Recycle[] = INCBIN_U32("graphics/battle_anims/sprites/recycle.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Recycle[] = INCBIN_U32("graphics/battle_anims/sprites/recycle.4bpp.lz"); +const u32 gBattleAnimSpritePal_Recycle[] = INCBIN_U32("graphics/battle_anims/sprites/recycle.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_RedParticles[] = INCBIN_U32("graphics/battle_anims/sprites/red_particles.4bpp.lz"); -const u32 gBattleAnimSpritePalette_RedParticles[] = INCBIN_U32("graphics/battle_anims/sprites/red_particles.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_RedParticles[] = INCBIN_U32("graphics/battle_anims/sprites/red_particles.4bpp.lz"); +const u32 gBattleAnimSpritePal_RedParticles[] = INCBIN_U32("graphics/battle_anims/sprites/red_particles.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_DirtMound[] = INCBIN_U32("graphics/battle_anims/sprites/dirt_mound.4bpp.lz"); -const u32 gBattleAnimSpritePalette_DirtMound[] = INCBIN_U32("graphics/battle_anims/sprites/dirt_mound.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_DirtMound[] = INCBIN_U32("graphics/battle_anims/sprites/dirt_mound.4bpp.lz"); +const u32 gBattleAnimSpritePal_DirtMound[] = INCBIN_U32("graphics/battle_anims/sprites/dirt_mound.gbapal.lz"); const u32 gBattleAnimBackgroundImage_21[] = INCBIN_U32("graphics/battle_anims/backgrounds/21.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_21[] = INCBIN_U32("graphics/battle_anims/backgrounds/21.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_21[] = INCBIN_U32("graphics/battle_anims/backgrounds/21.bin.lz"); -const u32 gBattleAnimSpriteSheet_Bird[] = INCBIN_U32("graphics/battle_anims/sprites/bird.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Bird[] = INCBIN_U32("graphics/battle_anims/sprites/bird.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Bird[] = INCBIN_U32("graphics/battle_anims/sprites/bird.4bpp.lz"); +const u32 gBattleAnimSpritePal_Bird[] = INCBIN_U32("graphics/battle_anims/sprites/bird.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.4bpp.lz"); -const u32 gBattleAnimSpritePalette_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.4bpp.lz"); +const u32 gBattleAnimSpritePal_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.gbapal.lz"); const u32 gBattleAnimBackgroundImage_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz"); @@ -1133,10 +1133,10 @@ const u32 gUnknown_08D960D0[] = INCBIN_U32("graphics/unknown/unknown_D960D0.bin. const u32 gUnknown_08D963A4[] = INCBIN_U32("graphics/unknown/unknown_D963A4.bin.lz"); -const u32 gBattleAnimSpritePalette_Slash2[] = INCBIN_U32("graphics/battle_anims/sprites/slash_2.gbapal.lz"); +const u32 gBattleAnimSpritePal_Slash2[] = INCBIN_U32("graphics/battle_anims/sprites/slash_2.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.4bpp.lz"); -const u32 gBattleAnimSpritePalette_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.4bpp.lz"); +const u32 gBattleAnimSpritePal_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.gbapal.lz"); const u32 gPartyMenuMisc_Gfx[] = INCBIN_U32("graphics/interface/party_menu_misc.4bpp.lz"); const u32 gPartyMenuMisc_Pal[] = INCBIN_U32("graphics/interface/party_menu_misc.gbapal.lz"); @@ -1223,14 +1223,14 @@ const u32 gUnknown_08D9BA44[] = INCBIN_U32("graphics/interface/pokeblock_feeding #include "data/graphics/items.h" #include "data/graphics/decorations.h" -const u32 gBattleAnimSpritePalette_Shock3[] = INCBIN_U32("graphics/battle_anims/sprites/shock_3.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Shock3[] = INCBIN_U32("graphics/battle_anims/sprites/shock_3.4bpp.lz"); +const u32 gBattleAnimSpritePal_Shock3[] = INCBIN_U32("graphics/battle_anims/sprites/shock_3.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Shock3[] = INCBIN_U32("graphics/battle_anims/sprites/shock_3.4bpp.lz"); -const u32 gBattleAnimSpritePalette_WhiteFeather[] = INCBIN_U32("graphics/battle_anims/sprites/white_feather.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_WhiteFeather[] = INCBIN_U32("graphics/battle_anims/sprites/white_feather.4bpp.lz"); +const u32 gBattleAnimSpritePal_WhiteFeather[] = INCBIN_U32("graphics/battle_anims/sprites/white_feather.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_WhiteFeather[] = INCBIN_U32("graphics/battle_anims/sprites/white_feather.4bpp.lz"); -const u32 gBattleAnimSpritePalette_Sparkle6[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_6.gbapal.lz"); -const u32 gBattleAnimSpriteSheet_Sparkle6[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_6.4bpp.lz"); +const u32 gBattleAnimSpritePal_Sparkle6[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_6.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Sparkle6[] = INCBIN_U32("graphics/battle_anims/sprites/sparkle_6.4bpp.lz"); const u16 gUnknown_08DBA518[] = INCBIN_U16("graphics/misc/cable_car_bg.gbapal"); const u16 gCableCar_Pal[] = INCBIN_U16("graphics/misc/cable_car.gbapal"); diff --git a/src/rock.c b/src/rock.c index 489ef9f7d..f05816362 100644 --- a/src/rock.c +++ b/src/rock.c @@ -419,7 +419,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId) sub_80A6B30(&animBg); AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08D8D58C, animBg.tilesOffset); sub_80A6D60(&animBg, gUnknown_08D8D410, 0); - LoadCompressedPalette(gBattleAnimSpritePalette_FlyingDirt, animBg.paletteId * 16, 32); + LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, animBg.paletteId * 16, 32); if (gBattleAnimArgs[0] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) var0 = 1; -- cgit v1.2.3 From b85a74afc5a5dc1225e85904ab0b583f5d359d12 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 6 Apr 2019 18:38:15 +0200 Subject: Give names to battle anim backgrounds --- src/battle_anim.c | 55 +++++++++++------------ src/battle_anim_effects_2.c | 6 +-- src/battle_bg.c | 21 ++++++++- src/graphics.c | 106 ++++++++++++++++++++++---------------------- src/water.c | 58 ++++++++++++------------ 5 files changed, 132 insertions(+), 114 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index 33eb1dac4..a667c6177 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -26,7 +26,6 @@ extern struct MusicPlayerInfo gMPlayInfo_SE2; extern const u16 gMovesWithQuietBGM[]; extern const u8 *const gBattleAnims_Moves[]; -extern const struct BattleAnimBackground gBattleAnimBackgroundTable[]; // this file's functions static void ScriptCmd_loadspritegfx(void); @@ -1712,33 +1711,33 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = const struct BattleAnimBackground gBattleAnimBackgroundTable[] = { - {gBattleAnimBackgroundImage_00, gBattleAnimBackgroundPalette_00, gBattleAnimBackgroundTilemap_00}, - {gBattleAnimBackgroundImage_00, gBattleAnimBackgroundPalette_00, gBattleAnimBackgroundTilemap_00}, - {gBattleAnimBackgroundImage_02, gBattleAnimBackgroundPalette_02, gBattleAnimBackgroundTilemap_02}, - {gBattleAnimBackgroundImage_03, gBattleAnimBackgroundPalette_03, gBattleAnimBackgroundTilemap_03}, - {gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_04}, - {gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_05}, - {gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_06}, - {gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_07, gBattleAnimBackgroundTilemap_07}, - {gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_07, gBattleAnimBackgroundTilemap_08}, - {gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_09, gBattleAnimBackgroundTilemap_09}, - {gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_09, gBattleAnimBackgroundTilemap_10}, - {gBattleAnimBackgroundImage_11, gBattleAnimBackgroundPalette_11, gBattleAnimBackgroundTilemap_11}, - {gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_12}, - {gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_13}, - {gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_14}, - {gBattleAnimBackgroundImage_15, gBattleAnimBackgroundPalette_15, gBattleAnimBackgroundTilemap_15}, - {gBattleAnimBackgroundImage_16, gBattleAnimBackgroundPalette_16, gBattleAnimBackgroundTilemap_16}, - {gBattleAnimBackgroundImage_17, gBattleAnimBackgroundPalette_17, gBattleAnimBackgroundTilemap_17}, - {gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_18, gBattleAnimBackgroundTilemap_07}, - {gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_18, gBattleAnimBackgroundTilemap_08}, - {gBattleAnimBackgroundImage_20, gBattleAnimBackgroundPalette_20, gBattleAnimBackgroundTilemap_20}, - {gBattleAnimBackgroundImage_21, gBattleAnimBackgroundPalette_21, gBattleAnimBackgroundTilemap_21}, - {gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_22, gBattleAnimBackgroundTilemap_09}, - {gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_22, gBattleAnimBackgroundTilemap_10}, - {gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_04}, - {gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_05}, - {gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_06}, + [BG_DARK_] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, + [BG_DARK] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, + [BG_GHOST] = {gBattleAnimBgImage_Ghost, gBattleAnimBgPalette_Ghost, gBattleAnimBgTilemap_Ghost}, + [BG_PSYCHIC] = {gBattleAnimBgImage_Psychic, gBattleAnimBgPalette_Psychic, gBattleAnimBgTilemap_Psychic}, + [BG_IMPACT_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactOpponent}, + [BG_IMPACT_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactPlayer}, + [BG_IMPACT_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactContests}, + [BG_DRILL] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Drill, gBattleAnimBgTilemap_Drill}, + [BG_DRILL_CONTESTS] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Drill, gBattleAnimBgTilemap_DrillContests}, + [BG_HIGHSPEED_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Highspeed, gBattleAnimBgTilemap_HighspeedOpponent}, + [BG_HIGHSPEED_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Highspeed, gBattleAnimBgTilemap_HighspeedPlayer}, + [BG_THUNDER] = {gBattleAnimBgImage_Thunder, gBattleAnimBgPalette_Thunder, gBattleAnimBgTilemap_Thunder}, + [BG_GUILLOTINE_OPPONENT] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotineOpponent}, + [BG_GUILLOTINE_PLAYER] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotinePlayer}, + [BG_GUILLOTINE_CONTESTS] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotineContests}, + [BG_ICE] = {gBattleAnimBgImage_Ice, gBattleAnimBgPalette_Ice, gBattleAnimBgTilemap_Ice}, + [BG_COSMIC] = {gBattleAnimBgImage_Cosmic, gBattleAnimBgPalette_Cosmic, gBattleAnimBgTilemap_Cosmic}, + [BG_IN_AIR] = {gBattleAnimBgImage_InAir, gBattleAnimBgPalette_InAir, gBattleAnimBgTilemap_InAir}, + [BG_SKY] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Sky, gBattleAnimBgTilemap_Drill}, + [BG_SKY_CONTESTS] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Sky, gBattleAnimBgTilemap_DrillContests}, + [BG_AURORA] = {gBattleAnimBgImage_Aurora, gBattleAnimBgPalette_Aurora, gBattleAnimBgTilemap_Aurora}, + [BG_FISSURE] = {gBattleAnimBgImage_Fissure, gBattleAnimBgPalette_Fissure, gBattleAnimBgTilemap_Fissure}, + [BG_BUG_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedOpponent}, + [BG_BUG_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedPlayer}, + [BG_SOLARBEAM_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Solarbeam, gBattleAnimBgTilemap_ImpactOpponent}, + [BG_SOLARBEAM_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Solarbeam, gBattleAnimBgTilemap_ImpactPlayer}, + [BG_SOLARBEAM_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Solarbeam, gBattleAnimBgTilemap_ImpactContests}, }; static void (* const sScriptCmdTable[])(void) = diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 88319a2e3..580b13864 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -3381,11 +3381,11 @@ void sub_81064F8(u8 taskId) SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); sub_80A6B30(&animBg); if (IsContest()) - sub_80A6D60(&animBg, &gBattleAnimBackgroundTilemap_ScaryFaceContest, 0); + sub_80A6D60(&animBg, &gBattleAnimBgTilemap_ScaryFaceContest, 0); else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) - sub_80A6D60(&animBg, &gBattleAnimBackgroundTilemap_ScaryFacePlayer, 0); + sub_80A6D60(&animBg, &gBattleAnimBgTilemap_ScaryFacePlayer, 0); else - sub_80A6D60(&animBg, &gBattleAnimBackgroundTilemap_ScaryFaceOpponent, 0); + sub_80A6D60(&animBg, &gBattleAnimBgTilemap_ScaryFaceOpponent, 0); AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C249F8, animBg.tilesOffset); LoadCompressedPalette(gUnknown_08C249D0, animBg.paletteId * 16, 32); diff --git a/src/battle_bg.c b/src/battle_bg.c index 81e8acdf9..a08873857 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -598,6 +598,7 @@ const struct WindowTemplate * const gBattleWindowTemplates[] = static const struct BattleBackground gBattleTerrainTable[] = { + [BATTLE_TERRAIN_GRASS] = { .tileset = gBattleTerrainTiles_TallGrass, .tilemap = gBattleTerrainTilemap_TallGrass, @@ -605,6 +606,8 @@ static const struct BattleBackground gBattleTerrainTable[] = .entryTilemap = gBattleTerrainAnimTilemap_TallGrass, .palette = gBattleTerrainPalette_TallGrass, }, + + [BATTLE_TERRAIN_LONG_GRASS] = { .tileset = gBattleTerrainTiles_LongGrass, .tilemap = gBattleTerrainTilemap_LongGrass, @@ -612,6 +615,8 @@ static const struct BattleBackground gBattleTerrainTable[] = .entryTilemap = gBattleTerrainAnimTilemap_LongGrass, .palette = gBattleTerrainPalette_LongGrass, }, + + [BATTLE_TERRAIN_SAND] = { .tileset = gBattleTerrainTiles_Sand, .tilemap = gBattleTerrainTilemap_Sand, @@ -619,6 +624,8 @@ static const struct BattleBackground gBattleTerrainTable[] = .entryTilemap = gBattleTerrainAnimTilemap_Sand, .palette = gBattleTerrainPalette_Sand, }, + + [BATTLE_TERRAIN_UNDERWATER] = { .tileset = gBattleTerrainTiles_Underwater, .tilemap = gBattleTerrainTilemap_Underwater, @@ -626,6 +633,8 @@ static const struct BattleBackground gBattleTerrainTable[] = .entryTilemap = gBattleTerrainAnimTilemap_Underwater, .palette = gBattleTerrainPalette_Underwater, }, + + [BATTLE_TERRAIN_WATER] = { .tileset = gBattleTerrainTiles_Water, .tilemap = gBattleTerrainTilemap_Water, @@ -633,6 +642,8 @@ static const struct BattleBackground gBattleTerrainTable[] = .entryTilemap = gBattleTerrainAnimTilemap_Water, .palette = gBattleTerrainPalette_Water, }, + + [BATTLE_TERRAIN_POND] = { .tileset = gBattleTerrainTiles_PondWater, .tilemap = gBattleTerrainTilemap_PondWater, @@ -640,6 +651,8 @@ static const struct BattleBackground gBattleTerrainTable[] = .entryTilemap = gBattleTerrainAnimTilemap_PondWater, .palette = gBattleTerrainPalette_PondWater, }, + + [BATTLE_TERRAIN_MOUNTAIN] = { .tileset = gBattleTerrainTiles_Rock, .tilemap = gBattleTerrainTilemap_Rock, @@ -647,6 +660,8 @@ static const struct BattleBackground gBattleTerrainTable[] = .entryTilemap = gBattleTerrainAnimTilemap_Rock, .palette = gBattleTerrainPalette_Rock, }, + + [BATTLE_TERRAIN_CAVE] = { .tileset = gBattleTerrainTiles_Cave, .tilemap = gBattleTerrainTilemap_Cave, @@ -654,6 +669,8 @@ static const struct BattleBackground gBattleTerrainTable[] = .entryTilemap = gBattleTerrainAnimTilemap_Cave, .palette = gBattleTerrainPalette_Cave, }, + + [BATTLE_TERRAIN_BUILDING] = { .tileset = gBattleTerrainTiles_Building, .tilemap = gBattleTerrainTilemap_Building, @@ -661,7 +678,9 @@ static const struct BattleBackground gBattleTerrainTable[] = .entryTilemap = gBattleTerrainAnimTilemap_Building, .palette = gBattleTerrainPalette_Building, }, - {// plain + + [BATTLE_TERRAIN_PLAIN] = + { .tileset = gBattleTerrainTiles_Building, .tilemap = gBattleTerrainTilemap_Building, .entryTileset = gBattleTerrainAnimTiles_Building, diff --git a/src/graphics.c b/src/graphics.c index 509f5bea9..fd5f24d49 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -588,9 +588,9 @@ const u32 gBattleAnimSpritePal_Spark[] = INCBIN_U32("graphics/battle_anims/sprit const u32 gBattleAnimSpriteGfx_SparkH[] = INCBIN_U32("graphics/battle_anims/sprites/spark_h.4bpp.lz"); -const u32 gBattleAnimBackgroundImage_00[] = INCBIN_U32("graphics/battle_anims/backgrounds/00.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_00[] = INCBIN_U32("graphics/battle_anims/backgrounds/00.gbapal.lz"); -const u32 gBattleAnimBackgroundTilemap_00[] = INCBIN_U32("graphics/battle_anims/backgrounds/00.bin.lz"); +const u32 gBattleAnimBgImage_Dark[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark.4bpp.lz"); +const u32 gBattleAnimBgPalette_Dark[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Dark[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark.bin.lz"); const u32 gMetalShineGfx[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.4bpp.lz"); const u32 gMetalShinePalette[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.gbapal.lz"); @@ -633,9 +633,9 @@ const u32 gBattleAnimSpritePal_FocusEnergy[] = INCBIN_U32("graphics/battle_anims const u32 gBattleAnimSpriteGfx_SphereToCube[] = INCBIN_U32("graphics/battle_anims/sprites/sphere_to_cube.4bpp.lz"); const u32 gBattleAnimSpritePal_SphereToCube[] = INCBIN_U32("graphics/battle_anims/sprites/sphere_to_cube.gbapal.lz"); -const u32 gBattleAnimBackgroundImage_03[] = INCBIN_U32("graphics/battle_anims/backgrounds/03.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_03[] = INCBIN_U32("graphics/battle_anims/backgrounds/03.gbapal.lz"); -const u32 gBattleAnimBackgroundTilemap_03[] = INCBIN_U32("graphics/battle_anims/backgrounds/03.bin.lz"); +const u32 gBattleAnimBgImage_Psychic[] = INCBIN_U32("graphics/battle_anims/backgrounds/psychic.4bpp.lz"); +const u32 gBattleAnimBgPalette_Psychic[] = INCBIN_U32("graphics/battle_anims/backgrounds/psychic.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Psychic[] = INCBIN_U32("graphics/battle_anims/backgrounds/psychic.bin.lz"); const u32 gBattleAnimSpriteGfx_Eye[] = INCBIN_U32("graphics/battle_anims/sprites/eye.4bpp.lz"); const u32 gBattleAnimSpritePal_Eye[] = INCBIN_U32("graphics/battle_anims/sprites/eye.gbapal.lz"); @@ -783,12 +783,12 @@ const u32 gBattleAnimSpriteGfx_TriForceTriangle[] = INCBIN_U32("graphics/battle_ const u32 gBattleAnimSpritePal_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.gbapal.lz"); const u32 gBattleAnimSpriteGfx_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_04[] = INCBIN_U32("graphics/battle_anims/backgrounds/04.gbapal.lz"); -const u32 gBattleAnimBackgroundImage_04[] = INCBIN_U32("graphics/battle_anims/backgrounds/04.4bpp.lz"); -const u32 gBattleAnimBackgroundTilemap_04[] = INCBIN_U32("graphics/battle_anims/backgrounds/04.bin.lz"); +const u32 gBattleAnimBgPalette_Impact[] = INCBIN_U32("graphics/battle_anims/backgrounds/impact.gbapal.lz"); +const u32 gBattleAnimBgImage_Impact[] = INCBIN_U32("graphics/battle_anims/backgrounds/impact.4bpp.lz"); +const u32 gBattleAnimBgTilemap_ImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/impact_opponent.bin.lz"); -const u32 gBattleAnimBackgroundTilemap_05[] = INCBIN_U32("graphics/battle_anims/backgrounds/05.bin.lz"); -const u32 gBattleAnimBackgroundTilemap_06[] = INCBIN_U32("graphics/battle_anims/backgrounds/06.bin.lz"); +const u32 gBattleAnimBgTilemap_ImpactPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/impact_player.bin.lz"); +const u32 gBattleAnimBgTilemap_ImpactContests[] = INCBIN_U32("graphics/battle_anims/backgrounds/impact_contests.bin.lz"); const u32 gBattleAnimSpriteGfx_JaggedMusicNote[] = INCBIN_U32("graphics/battle_anims/sprites/jagged_music_note.4bpp.lz"); const u32 gBattleAnimSpritePal_JaggedMusicNote[] = INCBIN_U32("graphics/battle_anims/sprites/jagged_music_note.gbapal.lz"); @@ -824,40 +824,40 @@ const u32 gBattleAnimSpritePal_GrayOrb[] = INCBIN_U32("graphics/battle_anims/spr const u32 gBattleAnimSpritePal_BlueOrb[] = INCBIN_U32("graphics/battle_anims/sprites/blue_orb.gbapal.lz"); const u32 gBattleAnimSpritePal_RedOrb2[] = INCBIN_U32("graphics/battle_anims/sprites/red_orb_2.gbapal.lz"); -const u32 gBattleAnimBackgroundImage_07[] = INCBIN_U32("graphics/battle_anims/backgrounds/07.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_07[] = INCBIN_U32("graphics/battle_anims/backgrounds/07.gbapal.lz"); +const u32 gBattleAnimBgImage_Drill[] = INCBIN_U32("graphics/battle_anims/backgrounds/drill.4bpp.lz"); +const u32 gBattleAnimBgPalette_Drill[] = INCBIN_U32("graphics/battle_anims/backgrounds/drill.gbapal.lz"); -const u32 gBattleAnimBackgroundPalette_18[] = INCBIN_U32("graphics/battle_anims/backgrounds/18.gbapal.lz"); +const u32 gBattleAnimBgPalette_Sky[] = INCBIN_U32("graphics/battle_anims/backgrounds/sky.gbapal.lz"); -const u32 gBattleAnimBackgroundTilemap_07[] = INCBIN_U32("graphics/battle_anims/backgrounds/07.bin.lz"); -const u32 gBattleAnimBackgroundTilemap_08[] = INCBIN_U32("graphics/battle_anims/backgrounds/08.bin.lz"); +const u32 gBattleAnimBgTilemap_Drill[] = INCBIN_U32("graphics/battle_anims/backgrounds/drill.bin.lz"); +const u32 gBattleAnimBgTilemap_DrillContests[] = INCBIN_U32("graphics/battle_anims/backgrounds/drill_contests.bin.lz"); -const u32 gBattleAnimBackgroundImage_20[] = INCBIN_U32("graphics/battle_anims/backgrounds/20.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_20[] = INCBIN_U32("graphics/battle_anims/backgrounds/20.gbapal.lz"); -const u32 gBattleAnimBackgroundTilemap_20[] = INCBIN_U32("graphics/battle_anims/backgrounds/20.bin.lz"); +const u32 gBattleAnimBgImage_Aurora[] = INCBIN_U32("graphics/battle_anims/backgrounds/aurora.4bpp.lz"); +const u32 gBattleAnimBgPalette_Aurora[] = INCBIN_U32("graphics/battle_anims/backgrounds/aurora.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Aurora[] = INCBIN_U32("graphics/battle_anims/backgrounds/aurora.bin.lz"); -const u32 gBattleAnimBackgroundTilemap_09[] = INCBIN_U32("graphics/battle_anims/backgrounds/09.bin.lz"); -const u32 gBattleAnimBackgroundPalette_09[] = INCBIN_U32("graphics/battle_anims/backgrounds/09.gbapal.lz"); +const u32 gBattleAnimBgTilemap_HighspeedOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/highspeed_opponent.bin.lz"); +const u32 gBattleAnimBgPalette_Highspeed[] = INCBIN_U32("graphics/battle_anims/backgrounds/highspeed.gbapal.lz"); -const u32 gBattleAnimBackgroundPalette_22[] = INCBIN_U32("graphics/battle_anims/backgrounds/22.gbapal.lz"); +const u32 gBattleAnimBgPalette_Bug[] = INCBIN_U32("graphics/battle_anims/backgrounds/bug.gbapal.lz"); -const u32 gBattleAnimBackgroundImage_09[] = INCBIN_U32("graphics/battle_anims/backgrounds/09.4bpp.lz"); -const u32 gBattleAnimBackgroundTilemap_10[] = INCBIN_U32("graphics/battle_anims/backgrounds/10.bin.lz"); +const u32 gBattleAnimBgImage_Highspeed[] = INCBIN_U32("graphics/battle_anims/backgrounds/highspeed.4bpp.lz"); +const u32 gBattleAnimBgTilemap_HighspeedPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/highspeed_player.bin.lz"); const u32 gUnknown_08C2A634[] = INCBIN_U32("graphics/battle_anims/masks/morning_sun.4bpp.lz"); const u32 gUnknown_08C2A6D4[] = INCBIN_U32("graphics/battle_anims/masks/morning_sun.gbapal.lz"); const u32 gUnknown_08C2A6EC[] = INCBIN_U32("graphics/battle_anims/masks/morning_sun.bin.lz"); -const u32 gBattleAnimBackgroundTilemap_12[] = INCBIN_U32("graphics/battle_anims/backgrounds/12.bin.lz"); -const u32 gBattleAnimBackgroundTilemap_13[] = INCBIN_U32("graphics/battle_anims/backgrounds/13.bin.lz"); -const u32 gBattleAnimBackgroundTilemap_14[] = INCBIN_U32("graphics/battle_anims/backgrounds/14.bin.lz"); +const u32 gBattleAnimBgTilemap_GuillotineOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine_opponent.bin.lz"); +const u32 gBattleAnimBgTilemap_GuillotinePlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine_player.bin.lz"); +const u32 gBattleAnimBgTilemap_GuillotineContests[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine_contests.bin.lz"); -const u32 gBattleAnimBackgroundImage_12[] = INCBIN_U32("graphics/battle_anims/backgrounds/12.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_12[] = INCBIN_U32("graphics/battle_anims/backgrounds/12.gbapal.lz"); +const u32 gBattleAnimBgImage_Guillotine[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine.4bpp.lz"); +const u32 gBattleAnimBgPalette_Guillotine[] = INCBIN_U32("graphics/battle_anims/backgrounds/guillotine.gbapal.lz"); -const u32 gBattleAnimBackgroundImage_11[] = INCBIN_U32("graphics/battle_anims/backgrounds/11.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_11[] = INCBIN_U32("graphics/battle_anims/backgrounds/11.gbapal.lz"); -const u32 gBattleAnimBackgroundTilemap_11[] = INCBIN_U32("graphics/battle_anims/backgrounds/11.bin.lz"); +const u32 gBattleAnimBgImage_Thunder[] = INCBIN_U32("graphics/battle_anims/backgrounds/thunder.4bpp.lz"); +const u32 gBattleAnimBgPalette_Thunder[] = INCBIN_U32("graphics/battle_anims/backgrounds/thunder.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Thunder[] = INCBIN_U32("graphics/battle_anims/backgrounds/thunder.bin.lz"); const u32 gBattleAnimSpriteGfx_PainSplit[] = INCBIN_U32("graphics/battle_anims/sprites/pain_split.4bpp.lz"); const u32 gBattleAnimSpritePal_PainSplit[] = INCBIN_U32("graphics/battle_anims/sprites/pain_split.gbapal.lz"); @@ -1015,9 +1015,9 @@ const u32 gBattleAnimSpritePal_FlyingDirt[] = INCBIN_U32("graphics/battle_anims/ const u32 gBattleAnimSpriteGfx_MetalSoundWaves[] = INCBIN_U32("graphics/battle_anims/sprites/metal_sound_waves.4bpp.lz"); const u32 gBattleAnimSpritePal_MetalSoundWaves[] = INCBIN_U32("graphics/battle_anims/sprites/metal_sound_waves.gbapal.lz"); -const u32 gBattleAnimBackgroundImage_15[] = INCBIN_U32("graphics/battle_anims/backgrounds/15.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_15[] = INCBIN_U32("graphics/battle_anims/backgrounds/15.gbapal.lz"); -const u32 gBattleAnimBackgroundTilemap_15[] = INCBIN_U32("graphics/battle_anims/backgrounds/15.bin.lz"); +const u32 gBattleAnimBgImage_Ice[] = INCBIN_U32("graphics/battle_anims/backgrounds/ice.4bpp.lz"); +const u32 gBattleAnimBgPalette_Ice[] = INCBIN_U32("graphics/battle_anims/backgrounds/ice.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Ice[] = INCBIN_U32("graphics/battle_anims/backgrounds/ice.bin.lz"); const u32 gBattleAnimSpriteGfx_IcicleSpear[] = INCBIN_U32("graphics/battle_anims/sprites/icicle_spear.4bpp.lz"); const u32 gBattleAnimSpritePal_IcicleSpear[] = INCBIN_U32("graphics/battle_anims/sprites/icicle_spear.gbapal.lz"); @@ -1051,9 +1051,9 @@ const u32 gBattleAnimSpriteGfx_Gem3[] = INCBIN_U32("graphics/battle_anims/sprite const u32 gBattleAnimSpritePal_Gem1[] = INCBIN_U32("graphics/battle_anims/sprites/gem_1.gbapal.lz"); -const u32 gBattleAnimBackgroundImage_17[] = INCBIN_U32("graphics/battle_anims/backgrounds/17.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_17[] = INCBIN_U32("graphics/battle_anims/backgrounds/17.gbapal.lz"); -const u32 gBattleAnimBackgroundTilemap_17[] = INCBIN_U32("graphics/battle_anims/backgrounds/17.bin.lz"); +const u32 gBattleAnimBgImage_InAir[] = INCBIN_U32("graphics/battle_anims/backgrounds/in_air.4bpp.lz"); +const u32 gBattleAnimBgPalette_InAir[] = INCBIN_U32("graphics/battle_anims/backgrounds/in_air.gbapal.lz"); +const u32 gBattleAnimBgTilemap_InAir[] = INCBIN_U32("graphics/battle_anims/backgrounds/in_air.bin.lz"); const u32 gBattleAnimSpriteGfx_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.4bpp.lz"); const u32 gBattleAnimSpritePal_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.gbapal.lz"); @@ -1066,13 +1066,13 @@ const u32 gBattleInterface_BallStatusBarGfx[] = INCBIN_U32("graphics/battle_inte const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp"); -const u32 gBattleAnimBackgroundImage_02[] = INCBIN_U32("graphics/battle_anims/backgrounds/02.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_02[] = INCBIN_U32("graphics/battle_anims/backgrounds/02.gbapal.lz"); -const u32 gBattleAnimBackgroundTilemap_02[] = INCBIN_U32("graphics/battle_anims/backgrounds/02.bin.lz"); +const u32 gBattleAnimBgImage_Ghost[] = INCBIN_U32("graphics/battle_anims/backgrounds/ghost.4bpp.lz"); +const u32 gBattleAnimBgPalette_Ghost[] = INCBIN_U32("graphics/battle_anims/backgrounds/ghost.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Ghost[] = INCBIN_U32("graphics/battle_anims/backgrounds/ghost.bin.lz"); const u32 gBattleAnimSpritePal_WhipHit[] = INCBIN_U32("graphics/battle_anims/sprites/whip_hit.gbapal.lz"); -const u32 gBattleAnimBackgroundPalette_24[] = INCBIN_U32("graphics/battle_anims/backgrounds/24.gbapal.lz"); +const u32 gBattleAnimBgPalette_Solarbeam[] = INCBIN_U32("graphics/battle_anims/backgrounds/solarbeam.gbapal.lz"); const u32 gUnknown_E6BC04[] = INCBIN_U32("graphics/unknown/unknown_E6BC04.bin.lz"); @@ -1081,9 +1081,9 @@ const u32 sBlenderCenterGfx[] = INCBIN_U32("graphics/berry_blender/center.8bpp.l const u32 gUnknown_08D91DB8[] = INCBIN_U32("graphics/berry_blender/outer.4bpp.lz"); const u32 gUnknown_08D927EC[] = INCBIN_U32("graphics/berry_blender/outer_map.bin.lz"); -const u32 gBattleAnimBackgroundPalette_16[] = INCBIN_U32("graphics/battle_anims/backgrounds/16.gbapal.lz"); -const u32 gBattleAnimBackgroundImage_16[] = INCBIN_U32("graphics/battle_anims/backgrounds/16.4bpp.lz"); -const u32 gBattleAnimBackgroundTilemap_16[] = INCBIN_U32("graphics/battle_anims/backgrounds/16.bin.lz"); +const u32 gBattleAnimBgPalette_Cosmic[] = INCBIN_U32("graphics/battle_anims/backgrounds/cosmic.gbapal.lz"); +const u32 gBattleAnimBgImage_Cosmic[] = INCBIN_U32("graphics/battle_anims/backgrounds/cosmic.4bpp.lz"); +const u32 gBattleAnimBgTilemap_Cosmic[] = INCBIN_U32("graphics/battle_anims/backgrounds/cosmic.bin.lz"); const u32 gBattleAnimSpritePal_SlamHit2[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit_2.gbapal.lz"); const u32 gBattleAnimSpriteGfx_SlamHit2[] = INCBIN_U32("graphics/battle_anims/sprites/slam_hit_2.4bpp.lz"); @@ -1093,9 +1093,9 @@ const u32 gBattleAnimFogTilemap[] = INCBIN_U32("graphics/battle_anims/background const u32 gBattleAnimSpritePal_WeatherBall[] = INCBIN_U32("graphics/battle_anims/sprites/weather_ball.gbapal.lz"); const u32 gBattleAnimSpriteGfx_WeatherBall[] = INCBIN_U32("graphics/battle_anims/sprites/weather_ball.4bpp.lz"); -const u32 gBattleAnimBackgroundTilemap_ScaryFacePlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_player.bin.lz"); -const u32 gBattleAnimBackgroundTilemap_ScaryFaceOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_opponent.bin.lz"); -const u32 gBattleAnimBackgroundTilemap_ScaryFaceContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_contest.bin.lz"); +const u32 gBattleAnimBgTilemap_ScaryFacePlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_player.bin.lz"); +const u32 gBattleAnimBgTilemap_ScaryFaceOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_opponent.bin.lz"); +const u32 gBattleAnimBgTilemap_ScaryFaceContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/scary_face_contest.bin.lz"); const u32 gBattleAnimSpriteGfx_Hail[] = INCBIN_U32("graphics/battle_anims/sprites/hail.4bpp.lz"); const u32 gBattleAnimSpritePal_Hail[] = INCBIN_U32("graphics/battle_anims/sprites/hail.gbapal.lz"); @@ -1114,9 +1114,9 @@ const u32 gBattleAnimSpritePal_RedParticles[] = INCBIN_U32("graphics/battle_anim const u32 gBattleAnimSpriteGfx_DirtMound[] = INCBIN_U32("graphics/battle_anims/sprites/dirt_mound.4bpp.lz"); const u32 gBattleAnimSpritePal_DirtMound[] = INCBIN_U32("graphics/battle_anims/sprites/dirt_mound.gbapal.lz"); -const u32 gBattleAnimBackgroundImage_21[] = INCBIN_U32("graphics/battle_anims/backgrounds/21.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_21[] = INCBIN_U32("graphics/battle_anims/backgrounds/21.gbapal.lz"); -const u32 gBattleAnimBackgroundTilemap_21[] = INCBIN_U32("graphics/battle_anims/backgrounds/21.bin.lz"); +const u32 gBattleAnimBgImage_Fissure[] = INCBIN_U32("graphics/battle_anims/backgrounds/fissure.4bpp.lz"); +const u32 gBattleAnimBgPalette_Fissure[] = INCBIN_U32("graphics/battle_anims/backgrounds/fissure.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Fissure[] = INCBIN_U32("graphics/battle_anims/backgrounds/fissure.bin.lz"); const u32 gBattleAnimSpriteGfx_Bird[] = INCBIN_U32("graphics/battle_anims/sprites/bird.4bpp.lz"); const u32 gBattleAnimSpritePal_Bird[] = INCBIN_U32("graphics/battle_anims/sprites/bird.gbapal.lz"); @@ -1124,8 +1124,8 @@ const u32 gBattleAnimSpritePal_Bird[] = INCBIN_U32("graphics/battle_anims/sprite const u32 gBattleAnimSpriteGfx_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.4bpp.lz"); const u32 gBattleAnimSpritePal_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.gbapal.lz"); -const u32 gBattleAnimBackgroundImage_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz"); -const u32 gBattleAnimBackgroundPalette_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz"); +const u32 gBattleAnimBgImage_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz"); +const u32 gBattleAnimBgPalette_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz"); const u32 gUnknown_08D95E00[] = INCBIN_U32("graphics/unknown/unknown_D95E00.bin.lz"); diff --git a/src/water.c b/src/water.c index 20bf2542d..9aa08bf01 100644 --- a/src/water.c +++ b/src/water.c @@ -483,7 +483,7 @@ extern const struct SpriteTemplate gUnknown_08597388; void AnimTask_CreateRaindrops(u8 taskId) { u8 x, y; - + if (gTasks[taskId].data[0] == 0) { gTasks[taskId].data[1] = gBattleAnimArgs[0]; @@ -520,7 +520,7 @@ void sub_8107228(struct Sprite *sprite) void sub_8107260(struct Sprite *sprite) { u8 spriteId; - + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) - gBattleAnimArgs[0]; @@ -559,7 +559,7 @@ void sub_8107380(struct Sprite *sprite) u8 otherSpriteId = sprite->data[5]; u8 timer = gSprites[otherSpriteId].data[4]; u16 trigIndex = gSprites[otherSpriteId].data[3]; - + sprite->data[0] = 1; AnimTranslateLinear(sprite); sprite->pos2.x += Sin(trigIndex >> 8, gSprites[otherSpriteId].data[0]); @@ -593,7 +593,7 @@ void sub_8107430(struct Sprite *sprite) void sub_810744C(struct Sprite *sprite) { s16 unkArg; - + InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) unkArg = -gBattleAnimArgs[2]; @@ -636,7 +636,7 @@ void sub_810756C(u8 taskId) u16 *palPtr1; u16 *palPtr2; u16 rgbBuffer; - + if (++gTasks[taskId].data[10] == 3) { gTasks[taskId].data[10] = 0; @@ -724,7 +724,7 @@ _081075DE:\n\ void sub_81075EC(struct Sprite *sprite) { u16 retArg; - + InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 30; sprite->data[1] = sprite->pos1.x; @@ -781,7 +781,7 @@ void sub_81076F4(u8 taskId) void sub_8107730(struct Sprite *sprite) { u8 priority; - + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); sprite->pos2.y = -10; @@ -797,7 +797,7 @@ void sub_8107730(struct Sprite *sprite) { sprite->pos2.x = -10; sprite->subpriority = priority - 2; - } + } } else { @@ -876,7 +876,7 @@ void AnimTask_CreateSurfWave(u8 taskId) { struct BattleAnimBgData animBg; u8 taskId2; - + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); @@ -894,9 +894,9 @@ void AnimTask_CreateSurfWave(u8 taskId) { sub_80A6D60(&animBg, gUnknown_08D963A4, 1); } - AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBackgroundImage_Surf, animBg.tilesOffset); + AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset); if (gBattleAnimArgs[0] == 0) - LoadCompressedPalette(gBattleAnimBackgroundPalette_Surf, animBg.paletteId * 16, 32); + LoadCompressedPalette(gBattleAnimBgPalette_Surf, animBg.paletteId * 16, 32); else LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, animBg.paletteId * 16, 32); taskId2 = CreateTask(sub_8107D58, gTasks[taskId].priority + 1); @@ -1009,7 +1009,7 @@ _081079E0:\n\ _081079EA:\n\ mov r0, sp\n\ ldrb r0, [r0, 0x9]\n\ - ldr r1, =gBattleAnimBackgroundImage_Surf\n\ + ldr r1, =gBattleAnimBgImage_Surf\n\ mov r2, sp\n\ ldrh r2, [r2, 0xA]\n\ bl AnimLoadCompressedBgGfx\n\ @@ -1018,7 +1018,7 @@ _081079EA:\n\ ldrsh r0, [r0, r1]\n\ cmp r0, 0\n\ bne _08107A24\n\ - ldr r0, =gBattleAnimBackgroundPalette_Surf\n\ + ldr r0, =gBattleAnimBgPalette_Surf\n\ mov r1, sp\n\ ldrb r1, [r1, 0x8]\n\ lsls r1, 4\n\ @@ -1182,7 +1182,7 @@ void sub_8107B84(u8 taskId) s16 unkUse; u32 palOffset; u16 palNum; - + *BGptrX += gTasks[taskId].data[0]; *BGptrY += gTasks[taskId].data[1]; sub_80A6B30(&animBg); @@ -1412,7 +1412,7 @@ void sub_8107D58(u8 taskId) struct ScanlineEffectParams params; struct Task *task = &gTasks[taskId]; // u16 *scanlineBuffer; - + switch (task->data[0]) { case 0: @@ -1883,7 +1883,7 @@ void sub_8108034(struct Sprite *sprite) { s16 randData; s16 randData2; - + sprite->oam.tileNum += 8; InitSpritePosToAnimTarget(sprite, TRUE); randData = (Random2() & 0xFF) | 256; @@ -1911,7 +1911,7 @@ void sub_8108098(struct Sprite *sprite) void sub_81080E4(u8 taskId) { struct Task *task = &gTasks[taskId]; - + task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[5] = gSprites[task->data[15]].pos1.y; task->data[1] = sub_8108384(); @@ -1922,7 +1922,7 @@ void sub_81080E4(u8 taskId) void sub_8108140(u8 taskId) { struct Task *task = &gTasks[taskId]; - + switch (task->data[0]) { case 0: @@ -2011,7 +2011,7 @@ u8 sub_8108384(void) u16 maxhp; u16 partyIndex; struct Pokemon *slot; - + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { partyIndex = gBattlerPartyIndexes[gBattleAnimAttacker]; @@ -2045,7 +2045,7 @@ void sub_8108408(struct Task *task, u8 taskId) u8 subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; s16 increment = 4 - task->data[1]; u8 spriteId; - + if (increment <= 0) increment = 1; for (i = 0; i < 20; i += increment) @@ -2094,7 +2094,7 @@ void sub_810851C(struct Sprite *sprite) void sub_81085C8(u8 taskId) { struct Task *task = &gTasks[taskId]; - + task->data[1] = sub_8108384(); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { @@ -2116,7 +2116,7 @@ void sub_810862C(u8 taskId) { struct Task *task = &gTasks[taskId]; u8 taskId2; - + switch (task->data[0]) { case 0: @@ -2159,7 +2159,7 @@ void sub_810871C(struct Task *task, u8 taskId) { u16 yPosArg = ((gSineTable[task->data[8]] + 3) >> 4) + task->data[6]; u8 spriteId = CreateSprite(&gUnknown_08595268, task->data[7], 0, 0); - + if (spriteId != MAX_SPRITES) { gSprites[spriteId].callback = sub_81087C0; @@ -2212,7 +2212,7 @@ void sub_810886C(struct Sprite *sprite) void sub_81088E4(u8 taskId) { struct Task *task = &gTasks[taskId]; - + task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); task->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); task->data[7] = (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) ? 1 : -1; @@ -2229,7 +2229,7 @@ void sub_81088E4(u8 taskId) void sub_8108978(u8 taskId) { struct Task *task = &gTasks[taskId]; - + switch (task->data[0]) { case 0: @@ -2298,7 +2298,7 @@ void sub_8108978(u8 taskId) void sub_8108AC0(struct Task *task) { u8 spriteId; - + if (++task->data[2] > 1) { task->data[2] = 0; @@ -2334,7 +2334,7 @@ void sub_8108B2C(struct Sprite *sprite) void sub_8108B94(struct Sprite *sprite) { u16 i; - + if (TranslateAnimHorizontalArc(sprite)) { for (i = 0; i < NUM_TASKS; i++) @@ -2397,7 +2397,7 @@ void sub_8108CDC(struct Sprite *sprite) { int xDiff = sprite->data[1] - sprite->pos1.x; int yDiff = sprite->data[2] - sprite->pos1.y; - + sprite->pos2.x = (sprite->data[0] * xDiff) / sprite->data[3]; sprite->pos2.y = (sprite->data[0] * yDiff) / sprite->data[3]; if (++sprite->data[5] == sprite->data[4]) @@ -2420,7 +2420,7 @@ void sub_8108D54(struct Sprite *sprite, int xDiff, int yDiff) s16 randomSomethingX = -xDiff + (Random2() % 10) - 5; s16 i; u8 spriteId; - + for (i = 0; i <= 0; i++) { spriteId = CreateSprite(&gUnknown_08595310, combinedX, combinedY + something, 130); -- cgit v1.2.3 From 4a09a5da330cfb855989ed5390efaef219d73ecc Mon Sep 17 00:00:00 2001 From: Fontbane Date: Thu, 4 Apr 2019 23:26:53 -0400 Subject: Doc field move scripts completely, use fldeff constants for dofieldeffect Fix labels Fix labels again Delete extra boulder scripts Now it should build fine --- src/fldeff_cut.c | 4 ++-- src/fldeff_rocksmash.c | 2 +- src/fldeff_strength.c | 2 +- src/fldeff_sweetscent.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 3da1a9217..be655b86a 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -23,7 +23,7 @@ extern struct MapPosition gPlayerFacingPosition; -extern const u8 Route103_EventScript_290705[]; +extern const u8 EventScript_FldEffCut[]; extern const u8 FarawayIsland_Interior_EventScript_267EDB[]; extern const u8 gFieldEffectPic_CutGrass[]; @@ -327,7 +327,7 @@ bool8 FldEff_UseCutOnGrass(void) static void FieldCallback_CutTree(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(Route103_EventScript_290705); + ScriptContext1_SetupScript(EventScript_FldEffCut); } bool8 FldEff_UseCutOnTree(void) diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index a9077f2ff..18cebdf11 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -140,7 +140,7 @@ bool8 SetUpFieldMove_RockSmash(void) static void sub_81356C4(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(Route111_EventScript_2907F0); + ScriptContext1_SetupScript(EventScript_FldEffRockSmash); } bool8 FldEff_UseRockSmash(void) diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index c57ab8cdc..47fc7061c 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -30,7 +30,7 @@ bool8 SetUpFieldMove_Strength(void) static void FldEff_UseStrength(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(FieryPath_EventScript_2908FD); + ScriptContext1_SetupScript(EventScript_FldEffStrength); } bool8 sub_8145E2C(void) diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index a187353ff..788310b5d 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -93,7 +93,7 @@ static void FailSweetScentEncounter(u8 taskId) { CpuFastSet(gPaletteDecompressionBuffer, gPlttBufferUnfaded, 0x100); sub_80AC3E4(); - ScriptContext1_SetupScript(EventScript_290CAE); + ScriptContext1_SetupScript(EventScript_FailSweetScent); DestroyTask(taskId); } } -- cgit v1.2.3 From fe12f2f4b360e68937e49af8672c8b1b1441223c Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 6 Apr 2019 12:41:55 -0500 Subject: Document and cleanup some decoration code --- src/decoration.c | 1923 +++++++++++++++++++++----------------------- src/decoration_inventory.c | 45 +- src/menu_helpers.c | 14 +- src/player_pc.c | 4 +- src/secret_base.c | 4 +- src/trader.c | 10 +- 6 files changed, 971 insertions(+), 1029 deletions(-) (limited to 'src') diff --git a/src/decoration.c b/src/decoration.c index 201fa74b1..0f6dd082b 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1,84 +1,83 @@ #include "global.h" -#include "constants/decorations.h" -#include "decompress.h" #include "alloc.h" -#include "text.h" -#include "string_util.h" -#include "international_string_util.h" -#include "script.h" -#include "task.h" -#include "main.h" -#include "palette.h" -#include "constants/songs.h" -#include "overworld.h" -#include "fieldmap.h" -#include "metatile_behavior.h" -#include "field_weather.h" -#include "field_player_avatar.h" +#include "decompress.h" +#include "decoration.h" +#include "decoration_inventory.h" +#include "event_data.h" +#include "event_object_movement.h" +#include "event_scripts.h" #include "field_camera.h" +#include "field_player_avatar.h" #include "field_screen_effect.h" -#include "event_object_movement.h" +#include "field_weather.h" +#include "fieldmap.h" +#include "graphics.h" +#include "international_string_util.h" +#include "item_icon.h" #include "list_menu.h" -#include "menu_helpers.h" +#include "main.h" #include "menu.h" -#include "sound.h" -#include "event_scripts.h" -#include "event_data.h" -#include "constants/region_map_sections.h" +#include "menu_helpers.h" +#include "metatile_behavior.h" +#include "overworld.h" +#include "palette.h" #include "player_pc.h" -#include "strings.h" -#include "tv.h" +#include "script.h" #include "secret_base.h" +#include "sound.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "text.h" #include "tilesets.h" -#include "item_icon.h" #include "trader.h" +#include "tv.h" +#include "constants/decorations.h" #include "constants/event_objects.h" -#include "decoration_inventory.h" -#include "decoration.h" -#include "graphics.h" - -// Static type declarations +#include "constants/songs.h" +#include "constants/region_map_sections.h" -#define OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG 0xbe5 -#define OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG 0x008 +#define PLACE_DECORATION_SELECTOR_TAG 0xbe5 +#define PLACE_DECORATION_PLAYER_TAG 0x008 -struct DecorPCBuffer { +struct DecorationItemsMenu +{ struct ListMenuItem items[41]; u8 names[41][24]; - u8 unk_520; - u8 unk_521; - u8 unk_522; + u8 numMenuItems; + u8 maxShownItems; + u8 scrollIndicatorsTaskId; }; -struct PlaceDecorationGraphicsDataBuffer { - /*0x000; 0x0203a190*/ const struct Decoration *decoration; - /*0x004; 0x0203a194*/ u16 tiles[0x40]; - /*0x084; 0x0203a214*/ u8 image[0x800]; - /*0x884; 0x0203aa14*/ u16 palette[16]; +struct PlaceDecorationGraphicsDataBuffer +{ + const struct Decoration *decoration; + u16 tiles[0x40]; + u8 image[0x800]; + u16 palette[16]; }; -struct DecorRearrangementDataBuffer { +struct DecorRearrangementDataBuffer +{ u8 idx; u8 width; u8 height; u16 flagId; }; -// Static RAM declarations - -EWRAM_DATA u8 *gCurDecorInventoryItems = NULL; -EWRAM_DATA static u8 sSecretBasePCMenuCursorPos = 0; -EWRAM_DATA static u8 sCurDecorCatCount = 0; +EWRAM_DATA u8 *gCurDecorationItems = NULL; +EWRAM_DATA static u8 sDecorationActionsCursorPos = 0; +EWRAM_DATA static u8 sNumOwnedDecorationsInCurCategory = 0; EWRAM_DATA static u8 sSecretBaseItemsIndicesBuffer[16] = {}; EWRAM_DATA static u8 sPlayerRoomItemsIndicesBuffer[12] = {}; -EWRAM_DATA static u16 sSecretBasePCSelectDecorLineNo = 0; -EWRAM_DATA static u16 sSecretBasePCSelectDecorPageNo = 0; +EWRAM_DATA static u16 sDecorationsCursorPos = 0; +EWRAM_DATA static u16 sDecorationsScrollOffset = 0; EWRAM_DATA u8 gCurDecorationIndex = 0; EWRAM_DATA static u8 sCurDecorationCategory = DECORCAT_DESK; EWRAM_DATA static u32 filler_0203a174[2] = {}; -EWRAM_DATA struct DecorPCPointers gUnknown_0203A17C = {}; -EWRAM_DATA static u8 sDecorMenuWindowIndices[4] = {}; -EWRAM_DATA struct DecorPCBuffer *sDecorPCBuffer = NULL; +EWRAM_DATA struct DecorationPCContext gDecorationContext = {}; +EWRAM_DATA static u8 sDecorMenuWindowIds[4] = {}; +EWRAM_DATA static struct DecorationItemsMenu *sDecorationItemsMenu = NULL; EWRAM_DATA struct PlaceDecorationGraphicsDataBuffer sPlaceDecorationGraphicsDataBuffer = {}; EWRAM_DATA static u16 sCurDecorMapX = 0; EWRAM_DATA static u16 sCurDecorMapY = 0; @@ -89,38 +88,36 @@ EWRAM_DATA static struct OamData sDecorSelectorOam = {}; EWRAM_DATA static struct DecorRearrangementDataBuffer sDecorRearrangementDataBuffer[16] = {}; EWRAM_DATA static u8 sCurDecorSelectedInRearrangement = 0; -// Static ROM declarations - -void sub_8126B80(u8 taskId); -void sub_8126C08(void); -void SecretBasePC_Decorate(u8 taskId); -void SecretBasePC_PutAway(u8 taskId); -void SecretBasePC_Toss(u8 taskId); -void sub_8126DA4(u8 taskId); -void SecretBasePC_Cancel(u8 taskId); -void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId); -void sub_8126DFC(u8 taskId); -void sub_8126E8C(u8 taskId); -void sub_8126F68(u8 winid, u8 decorCat, u8 x, u8 y, bool8 flag, u8 speed); -void sub_8127058(u8 *str, bool8 flag); -void sub_8127088(u8 taskId); -void sub_81270E8(u8 taskId); -void sub_8127180(u8 taskId); -void sub_812719C(u8 taskId); -void sub_81271CC(u8 taskId); -void sub_8127268(u8 taskId); -void sub_8127454(u8 *dest, u16 decorId); -void sub_8127480(s32 a0, bool8 flag, struct ListMenu *menu); +static void HandleDecorationActionsMenuInput(u8 taskId); +static void PrintCurMainMenuDescription(void); +static void DecorationMenuAction_Decorate(u8 taskId); +static void DecorationMenuAction_PutAway(u8 taskId); +static void DecorationMenuAction_Toss(u8 taskId); +static void DecorationMenuAction_Cancel(u8 taskId); +static void ReturnToDecorationActionsAfterInvalidSelection(u8 taskId); +static void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId); +static void InitDecorationCategoriesWindow(u8 taskId); +static void PrintDecorationCategoryMenuItems(u8 taskId); +static void PrintDecorationCategoryMenuItem(u8 winid, u8 category, u8 x, u8 y, bool8 disabled, u8 speed); +static void ColorMenuItemString(u8 *str, bool8 disabled); +static void HandleDecorationCategoriesMenuInput(u8 taskId); +static void SelectDecorationCategory(u8 taskId); +static void ReturnToDecorationCategoriesAfterInvalidSelection(u8 taskId); +static void ExitDecorationCategoriesMenu(u8 taskId); +static void ReturnToActionsMenuFromCategories(u8 taskId); +static void ExitTraderDecorationMenu(u8 taskId); +static void CopyDecorationMenuItemName(u8 *dest, u16 decoration); +static void DecorationItemsMenu_OnCursorMove(s32 itemIndex, bool8 flag, struct ListMenu *menu); void sub_81274A0(u8 a0, s32 a1, u8 a2); -void sub_8127620(u8 taskId); -void sub_812764C(u8 taskId); -void sub_8127744(u32 a0); -void sub_81277A8(void); +static void ShowDecorationItemsWindow(u8 taskId); +static void HandleDecorationItemsMenuInput(u8 taskId); +static void PrintDecorationItemDescription(u32 itemIndex); +static void RemoveDecorationItemsOtherWindows(void); bool8 sub_81277BC(u8 idx); bool8 sub_81277E8(u8 idx); -void IdentifyOwnedDecorationsCurrentlyInUse(u8 taskId); -void sub_812759C(u8 taskId); -void sub_8127718(u8 decorCat); +static void IdentifyOwnedDecorationsCurrentlyInUse(u8 taskId); +static void InitDecorationItemsWindow(u8 taskId); +static void ShowDecorationCategorySummaryWindow(u8 category); void sub_8127A30(u8 taskId); void sub_8127A8C(u8 taskId); void sub_8127F68(u8 taskId); @@ -168,13 +165,12 @@ void sub_812A3D4(u8 taskId); void sub_812A458(u8 taskId); void sub_812A478(u8 taskId); -// .rodata - #include "data/decoration/tiles.h" #include "data/decoration/description.h" #include "data/decoration/header.h" -const u8 *const sDecorCatNames[] = { +static const u8 *const sDecorationCategoryNames[] = +{ gText_Desk, gText_Chair, gText_Plant, @@ -185,36 +181,42 @@ const u8 *const sDecorCatNames[] = { gText_Cushion }; -const struct MenuAction sSecretBasePCMenuActions[] = { +static const struct MenuAction sDecorationMainMenuActions[] = +{ { - gText_Decorate, {.void_u8=SecretBasePC_Decorate} - }, { - gText_PutAway, {.void_u8=SecretBasePC_PutAway} - }, { - gText_Toss2, {.void_u8=SecretBasePC_Toss} - }, { - gText_Cancel, {.void_u8=SecretBasePC_Cancel} - } + .text = gText_Decorate, + .func = { .void_u8 = DecorationMenuAction_Decorate }, + }, + { + .text = gText_PutAway, + .func = { .void_u8 = DecorationMenuAction_PutAway }, + }, + { + .text = gText_Toss2, + .func = { .void_u8 = DecorationMenuAction_Toss }, + }, + { + .text = gText_Cancel, + .func = { .void_u8 = DecorationMenuAction_Cancel }, + }, }; -const u8 *const sSecretBasePCMenuItemDescriptions[] = { +static const u8 *const sSecretBasePCMenuItemDescriptions[] = +{ gText_PutOutSelectedDecorItem, gText_StoreChosenDecorInPC, gText_ThrowAwayUnwantedDecors, gText_GoBackPrevMenu }; -void (*const SecretBasePC_SelectedDecorActions[][2])(u8 taskId) = { - { - sub_8127F68, sub_8127A8C - }, { - sub_812A3D4, sub_8127A8C - }, { - sub_8133DA0, sub_8127A8C - } +static const TaskFunc sSecretBasePC_SelectedDecorationActions[][2] = +{ + { sub_8127F68, sub_8127A8C }, + { sub_812A3D4, sub_8127A8C }, + { sub_8133DA0, sub_8127A8C }, }; -const struct WindowTemplate gUnknown_085A6B90[4] = +static const struct WindowTemplate sDecorationWindowTemplates[4] = { { .bg = 0, @@ -254,12 +256,12 @@ const struct WindowTemplate gUnknown_085A6B90[4] = } }; -const u16 gUnknown_085A6BB0[] = INCBIN_U16("graphics/decorations/unk_85a6bb0.gbapal"); +static const u16 sDecorationMenuPalette[] = INCBIN_U16("graphics/decorations/decoration_menu.gbapal"); -const struct ListMenuTemplate gUnknown_085A6BD0 = +static const struct ListMenuTemplate sDecorationItemsListMenuTemplate = { .items = NULL, - .moveCursorFunc = sub_8127480, + .moveCursorFunc = DecorationItemsMenu_OnCursorMove, .itemPrintFunc = sub_81274A0, .totalItems = 0, .maxShowed = 0, @@ -280,118 +282,140 @@ const struct ListMenuTemplate gUnknown_085A6BD0 = #include "data/decoration/icon.h" #include "data/decoration/tilemaps.h" -const struct { +static const struct { u8 shape; u8 size; - u8 x; - u8 y; -} gUnknown_085A7250[] = { - {0, 1, 0x78, 0x4e}, - {1, 2, 0x80, 0x4e}, - {1, 3, 0x90, 0x56}, - {1, 3, 0x90, 0x46}, - {0, 2, 0x80, 0x46}, - {2, 2, 0x78, 0x46}, - {2, 3, 0x80, 0x56}, - {2, 3, 0x80, 0x36}, - {0, 3, 0x90, 0x46}, - {1, 3, 0x90, 0x46} + u8 cameraX; + u8 cameraY; +} sDecorationMovementInfo[] = +{ + [DECORSHAPE_1x1] = {SPRITE_SHAPE(16x16), SPRITE_SIZE(16x16), 120, 78}, + [DECORSHAPE_2x1] = {SPRITE_SHAPE(32x16), SPRITE_SIZE(32x16), 128, 78}, + [DECORSHAPE_3x1] = {SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), 144, 86}, + [DECORSHAPE_4x2] = {SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), 144, 70}, + [DECORSHAPE_2x2] = {SPRITE_SHAPE(32x32), SPRITE_SIZE(32x32), 128, 70}, + [DECORSHAPE_1x2] = {SPRITE_SHAPE(16x32), SPRITE_SIZE(16x32), 120, 70}, + [DECORSHAPE_1x3] = {SPRITE_SHAPE(32x64), SPRITE_SIZE(32x64), 128, 86}, + [DECORSHAPE_2x4] = {SPRITE_SHAPE(32x64), SPRITE_SIZE(32x64), 128, 54}, + [DECORSHAPE_3x3] = {SPRITE_SHAPE(64x64), SPRITE_SIZE(64x64), 144, 70}, + [DECORSHAPE_3x2] = {SPRITE_SHAPE(64x32), SPRITE_SIZE(64x32), 144, 70}, }; -const union AnimCmd gUnknown_085A7278[] = { +static const union AnimCmd sDecorSelectorAnimCmd0[] = +{ ANIMCMD_FRAME(0, 0, FALSE, FALSE), ANIMCMD_END }; -const union AnimCmd *const sDecorSelectorAnims[] = { - gUnknown_085A7278 -}; +static const union AnimCmd *const sDecorSelectorAnimCmds[] = { sDecorSelectorAnimCmd0 }; -const struct SpriteFrameImage sDecorSelectorSpriteFrameImages = { - (const u8 *)&sPlaceDecorationGraphicsDataBuffer.image, 0x800 +static const struct SpriteFrameImage sDecorSelectorSpriteFrameImages = +{ + .data = (const u8 *)&sPlaceDecorationGraphicsDataBuffer.image, + .size = 0x800, }; -const struct SpriteTemplate sDecorSelectorSpriteTemplate = { +static const struct SpriteTemplate sDecorationSelectorSpriteTemplate = +{ 0xFFFF, - OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG, + PLACE_DECORATION_SELECTOR_TAG, &sDecorSelectorOam, - sDecorSelectorAnims, + sDecorSelectorAnimCmds, &sDecorSelectorSpriteFrameImages, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate sDecorWhilePlacingSpriteTemplate = { +const struct SpriteTemplate sDecorWhilePlacingSpriteTemplate = +{ 0x0000, 0x0000, &sDecorSelectorOam, - sDecorSelectorAnims, + sDecorSelectorAnimCmds, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpritePalette gUnknown_085A72BC = { - (const u16 *)&sPlaceDecorationGraphicsDataBuffer.palette, OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG +const struct SpritePalette gUnknown_085A72BC = +{ + .data = (const u16 *)&sPlaceDecorationGraphicsDataBuffer.palette, + .tag = PLACE_DECORATION_SELECTOR_TAG, }; -const struct YesNoFuncTable gUnknown_085A72C4 = { - sub_81289F0, - sub_8128FD8 +const struct YesNoFuncTable gUnknown_085A72C4 = +{ + .yesFunc = sub_81289F0, + .noFunc = sub_8128FD8, }; -const struct YesNoFuncTable gUnknown_085A72CC = { - sub_8128BA0, - sub_8128FD8 +const struct YesNoFuncTable gUnknown_085A72CC = +{ + .yesFunc = sub_8128BA0, + .noFunc = sub_8128FD8, }; -const struct YesNoFuncTable gUnknown_085A72D4[] = { +const struct YesNoFuncTable gUnknown_085A72D4[] = +{ + { + .yesFunc = sub_81283BC, + .noFunc = sub_8128414, + }, { - sub_81283BC, - sub_8128414 - }, { - sub_8129BCC, - sub_8129BF8 + .yesFunc = sub_8129BCC, + .noFunc = sub_8129BF8, } }; -const u8 gUnknown_085A72E4[] = { - 0x04, 0x04, 0x04, 0x04, 0x00, 0x03, 0x03, 0x00 +static const u8 sDecorationStandElevations[] = +{ + 4, 4, 4, 4, + 0, 3, 3, 0 }; -const u8 gUnknown_085A72EC[] = { - 0x04, 0x04, 0x04, 0x04, 0x00, 0x04, 0x03, 0x00 +static const u8 sDecorationSlideElevation[] = +{ + 4, 4, + 4, 4, + 0, 4, + 3, 0, }; const u16 gUnknown_085A72F4[] = { 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x10, 0x20, 0x40, 0x20 }; -const u16 Unknown_085A7308[] = INCBIN_U16("graphics/decorations/unk_85a7308.gbapal"); +const u16 gUnknown_085A7308[] = INCBIN_U16("graphics/decorations/unk_85a7308.gbapal"); -const u16 Unknown_085A7328[] = INCBIN_U16("graphics/decorations/unk_85a7328.gbapal"); +const u16 gUnknown_085A7328[] = INCBIN_U16("graphics/decorations/unk_85a7328.gbapal"); -const struct YesNoFuncTable gUnknown_085A7348 = { - sub_812A1C0, - sub_8129B34 +const struct YesNoFuncTable gUnknown_085A7348 = +{ + .yesFunc = sub_812A1C0, + .noFunc = sub_8129B34, }; -const struct YesNoFuncTable gUnknown_085A7350 = { - sub_812A210, - sub_8129B34 +const struct YesNoFuncTable gUnknown_085A7350 = +{ + .yesFunc = sub_812A210, + .noFunc = sub_8129B34, }; -const u8 Unknown_085A7358[] = INCBIN_U8("graphics/misc/decoration_unk_85a7358.4bpp"); +const u8 gUnknown_085A7358[] = INCBIN_U8("graphics/misc/decoration_unk_85a7358.4bpp"); -const struct SpritePalette gUnknown_085A73D8 = { - Unknown_085A7308, OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG +const struct SpritePalette gUnknown_085A73D8 = +{ + .data = gUnknown_085A7308, + .tag = PLACE_DECORATION_PLAYER_TAG, }; -const struct SpritePalette gUnknown_085A73E0 = { - Unknown_085A7328, OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG +const struct SpritePalette gUnknown_085A73E0 = +{ + .data = gUnknown_085A7328, + .tag = PLACE_DECORATION_PLAYER_TAG, }; -const struct OamData Unknown_085A73E8 = +const struct OamData gUnknown_085A73E8 = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -405,164 +429,163 @@ const struct OamData Unknown_085A73E8 = .paletteNum = 0, }; -const union AnimCmd Unknown_085A73F0[] = { +const union AnimCmd gUnknown_085A73F0[] = +{ ANIMCMD_FRAME(0, 0, 0), ANIMCMD_END }; -const union AnimCmd *const Unknown_085A73F8[] = { - Unknown_085A73F0 +const union AnimCmd *const gUnknown_085A73F8[] = +{ + gUnknown_085A73F0, }; -const struct SpriteFrameImage Unknown_085A73FC = { - Unknown_085A7358, 0x80 +const struct SpriteFrameImage gUnknown_085A73FC = +{ + .data = gUnknown_085A7358, + .size = 0x80, }; -const struct SpriteTemplate gUnknown_085A7404 = { +const struct SpriteTemplate gUnknown_085A7404 = +{ 0xFFFF, - OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG, - &Unknown_085A73E8, - Unknown_085A73F8, - &Unknown_085A73FC, + PLACE_DECORATION_PLAYER_TAG, + &gUnknown_085A73E8, + gUnknown_085A73F8, + &gUnknown_085A73FC, gDummySpriteAffineAnimTable, sub_812A36C }; -const struct YesNoFuncTable gUnknown_085A741C = { - sub_812A478, - sub_8127A30 +const struct YesNoFuncTable gUnknown_085A741C = +{ + .yesFunc = sub_812A478, + .noFunc = sub_8127A30, }; -// .text -void sub_8126968(void) +void InitDecorationContextItems(void) { - if (sCurDecorationCategory < 8) - { - gCurDecorInventoryItems = gDecorationInventories[sCurDecorationCategory].items; - } - if (gUnknown_0203A17C.isPlayerRoom == FALSE) + if (sCurDecorationCategory < DECORCAT_COUNT) + gCurDecorationItems = gDecorationInventories[sCurDecorationCategory].items; + + if (gDecorationContext.isPlayerRoom == FALSE) { - gUnknown_0203A17C.items = gSaveBlock1Ptr->secretBases[0].decorations; - gUnknown_0203A17C.pos = gSaveBlock1Ptr->secretBases[0].decorationPositions; + gDecorationContext.items = gSaveBlock1Ptr->secretBases[0].decorations; + gDecorationContext.pos = gSaveBlock1Ptr->secretBases[0].decorationPositions; } - if (gUnknown_0203A17C.isPlayerRoom == TRUE) + + if (gDecorationContext.isPlayerRoom == TRUE) { - gUnknown_0203A17C.items = gSaveBlock1Ptr->playerRoomDecor; - gUnknown_0203A17C.pos = gSaveBlock1Ptr->playerRoomDecorPos; + gDecorationContext.items = gSaveBlock1Ptr->playerRoomDecor; + gDecorationContext.pos = gSaveBlock1Ptr->playerRoomDecorPos; } } -u8 sub_81269D4(u8 idx) +static u8 AddDecorationWindow(u8 windowIndex) { - u8 *winidx; + u8 *windowId; struct WindowTemplate template; - winidx = &sDecorMenuWindowIndices[idx]; - if (idx == 0) + windowId = &sDecorMenuWindowIds[windowIndex]; + if (windowIndex == 0) { - template = gUnknown_085A6B90[0]; - template.width = GetMaxWidthInMenuTable(sSecretBasePCMenuActions, 4); + template = sDecorationWindowTemplates[0]; + template.width = GetMaxWidthInMenuTable(sDecorationMainMenuActions, ARRAY_COUNT(sDecorationMainMenuActions)); if (template.width > 18) - { template.width = 18; - } - *winidx = AddWindow(&template); + + *windowId = AddWindow(&template); } else { - *winidx = AddWindow(&gUnknown_085A6B90[idx]); + *windowId = AddWindow(&sDecorationWindowTemplates[windowIndex]); } - DrawStdFrameWithCustomTileAndPalette(*winidx, 0, 0x214, 0xe); + + DrawStdFrameWithCustomTileAndPalette(*windowId, FALSE, 0x214, 14); schedule_bg_copy_tilemap_to_vram(0); - return *winidx; + return *windowId; } -void sub_8126A58(u8 idx) +static void RemoveDecorationWindow(u8 windowIndex) { - ClearStdWindowAndFrameToTransparent(sDecorMenuWindowIndices[idx], FALSE); - ClearWindowTilemap(sDecorMenuWindowIndices[idx]); - RemoveWindow(sDecorMenuWindowIndices[idx]); + ClearStdWindowAndFrameToTransparent(sDecorMenuWindowIds[windowIndex], FALSE); + ClearWindowTilemap(sDecorMenuWindowIds[windowIndex]); + RemoveWindow(sDecorMenuWindowIds[windowIndex]); schedule_bg_copy_tilemap_to_vram(0); } -void sub_8126A88(void) +static void AddDecorationActionsWindow(void) { - u8 idx; - - idx = sub_81269D4(0); - PrintMenuTable(idx, 4, sSecretBasePCMenuActions); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(idx, 4, sSecretBasePCMenuCursorPos); + u8 windowId = AddDecorationWindow(0); + PrintMenuTable(windowId, 4, sDecorationMainMenuActions); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, 4, sDecorationActionsCursorPos); } -void sub_8126ABC(void) +static void InitDecorationActionsWindow(void) { - sSecretBasePCMenuCursorPos = 0; + sDecorationActionsCursorPos = 0; ScriptContext2_Enable(); - sub_8126A88(); - sub_8126C08(); + AddDecorationActionsWindow(); + PrintCurMainMenuDescription(); } -void sub_8126AD8(u8 taskId) +void DoSecretBaseDecorationMenu(u8 taskId) { - sub_8126ABC(); - gUnknown_0203A17C.items = gSaveBlock1Ptr->secretBases[0].decorations; - gUnknown_0203A17C.pos = gSaveBlock1Ptr->secretBases[0].decorationPositions; - gUnknown_0203A17C.size = sizeof(gSaveBlock1Ptr->secretBases[0].decorations); - gUnknown_0203A17C.isPlayerRoom = FALSE; - gTasks[taskId].func = sub_8126B80; + InitDecorationActionsWindow(); + gDecorationContext.items = gSaveBlock1Ptr->secretBases[0].decorations; + gDecorationContext.pos = gSaveBlock1Ptr->secretBases[0].decorationPositions; + gDecorationContext.size = sizeof(gSaveBlock1Ptr->secretBases[0].decorations); + gDecorationContext.isPlayerRoom = FALSE; + gTasks[taskId].func = HandleDecorationActionsMenuInput; } -void sub_8126B2C(u8 taskId) +void DoPlayerRoomDecorationMenu(u8 taskId) { - sub_8126ABC(); - gUnknown_0203A17C.items = gSaveBlock1Ptr->playerRoomDecor; - gUnknown_0203A17C.pos = gSaveBlock1Ptr->playerRoomDecorPos; - gUnknown_0203A17C.size = sizeof(gSaveBlock1Ptr->playerRoomDecor); - gUnknown_0203A17C.isPlayerRoom = TRUE; - gTasks[taskId].func = sub_8126B80; + InitDecorationActionsWindow(); + gDecorationContext.items = gSaveBlock1Ptr->playerRoomDecor; + gDecorationContext.pos = gSaveBlock1Ptr->playerRoomDecorPos; + gDecorationContext.size = sizeof(gSaveBlock1Ptr->playerRoomDecor); + gDecorationContext.isPlayerRoom = TRUE; + gTasks[taskId].func = HandleDecorationActionsMenuInput; } -void sub_8126B80(u8 taskId) +static void HandleDecorationActionsMenuInput(u8 taskId) { - u8 menuPos; - if (!gPaletteFade.active) { - menuPos = Menu_GetCursorPos(); + s8 menuPos = Menu_GetCursorPos(); switch (Menu_ProcessInput()) { - default: - PlaySE(SE_SELECT); - sSecretBasePCMenuActions[sSecretBasePCMenuCursorPos].func.void_u8(taskId); - break; - case MENU_NOTHING_CHOSEN: - sSecretBasePCMenuCursorPos = Menu_GetCursorPos(); - if ((s8)menuPos != sSecretBasePCMenuCursorPos) - { - sub_8126C08(); - } - break; - case MENU_B_PRESSED: - PlaySE(SE_SELECT); - SecretBasePC_Cancel(taskId); - break; + default: + PlaySE(SE_SELECT); + sDecorationMainMenuActions[sDecorationActionsCursorPos].func.void_u8(taskId); + break; + case MENU_NOTHING_CHOSEN: + sDecorationActionsCursorPos = Menu_GetCursorPos(); + if (menuPos != sDecorationActionsCursorPos) + PrintCurMainMenuDescription(); + break; + case MENU_B_PRESSED: + PlaySE(SE_SELECT); + DecorationMenuAction_Cancel(taskId); + break; } } } -void sub_8126C08(void) +static void PrintCurMainMenuDescription(void) { FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized2(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, sSecretBasePCMenuItemDescriptions[sDecorationActionsCursorPos], 0, 0, 2, 1, 3); } -void SecretBasePC_Decorate(u8 taskId) +static void DecorationMenuAction_Decorate(u8 taskId) { - if (CountDecorations() == 0) + if (GetNumOwnedDecorations() == 0) { StringExpandPlaceholders(gStringVar4, gText_NoDecorations); - DisplayItemMessageOnField(taskId, gStringVar4, sub_8126DA4); + DisplayItemMessageOnField(taskId, gStringVar4, ReturnToDecorationActionsAfterInvalidSelection); } else { @@ -572,16 +595,16 @@ void SecretBasePC_Decorate(u8 taskId) } } -void SecretBasePC_PutAway(u8 taskId) +static void DecorationMenuAction_PutAway(u8 taskId) { if (!sub_81299AC(taskId)) { StringExpandPlaceholders(gStringVar4, gText_NoDecorationsInUse); - DisplayItemMessageOnField(taskId, gStringVar4, sub_8126DA4); + DisplayItemMessageOnField(taskId, gStringVar4, ReturnToDecorationActionsAfterInvalidSelection); } else { - sub_8126A58(0); + RemoveDecorationWindow(0); ClearDialogWindowAndFrame(0, 0); FadeScreen(1, 0); gTasks[taskId].data[2] = 0; @@ -589,12 +612,12 @@ void SecretBasePC_PutAway(u8 taskId) } } -void SecretBasePC_Toss(u8 taskId) +static void DecorationMenuAction_Toss(u8 taskId) { - if (CountDecorations() == 0) + if (GetNumOwnedDecorations() == 0) { StringExpandPlaceholders(gStringVar4, gText_NoDecorations); - DisplayItemMessageOnField(taskId, gStringVar4, sub_8126DA4); + DisplayItemMessageOnField(taskId, gStringVar4, ReturnToDecorationActionsAfterInvalidSelection); } else { @@ -604,10 +627,10 @@ void SecretBasePC_Toss(u8 taskId) } } -void SecretBasePC_Cancel(u8 taskId) +static void DecorationMenuAction_Cancel(u8 taskId) { - sub_8126A58(0); - if (!gUnknown_0203A17C.isPlayerRoom) + RemoveDecorationWindow(0); + if (!gDecorationContext.isPlayerRoom) { ScriptContext1_SetupScript(gUnknown_0823B4E8); DestroyTask(taskId); @@ -618,260 +641,237 @@ void SecretBasePC_Cancel(u8 taskId) } } -void sub_8126DA4(u8 taskId) +static void ReturnToDecorationActionsAfterInvalidSelection(u8 taskId) { - sub_8126C08(); - gTasks[taskId].func = sub_8126B80; + PrintCurMainMenuDescription(); + gTasks[taskId].func = HandleDecorationActionsMenuInput; } -void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId) +static void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId) { - LoadPalette(gUnknown_085A6BB0, 0xd0, 0x20); + LoadPalette(sDecorationMenuPalette, 0xd0, 0x20); ClearDialogWindowAndFrame(0, 0); - sub_8126A58(0); - sub_8126DFC(taskId); + RemoveDecorationWindow(0); + InitDecorationCategoriesWindow(taskId); } -void sub_8126DFC(u8 taskId) +static void InitDecorationCategoriesWindow(u8 taskId) { - u8 winIdx; - - winIdx = sub_81269D4(1); - sub_8126E8C(taskId); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(winIdx, 9, sCurDecorationCategory); - gTasks[taskId].func = sub_8127088; + u8 windowId = AddDecorationWindow(1); + PrintDecorationCategoryMenuItems(taskId); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, DECORCAT_COUNT + 1, sCurDecorationCategory); + gTasks[taskId].func = HandleDecorationCategoriesMenuInput; } -void sub_8126E44(u8 taskId) +static void sub_8126E44(u8 taskId) { - FillWindowPixelBuffer(sDecorMenuWindowIndices[1], PIXEL_FILL(1)); - sub_8126E8C(taskId); - InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sDecorMenuWindowIndices[1], 9, sCurDecorationCategory); - gTasks[taskId].func = sub_8127088; + FillWindowPixelBuffer(sDecorMenuWindowIds[1], PIXEL_FILL(1)); + PrintDecorationCategoryMenuItems(taskId); + InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sDecorMenuWindowIds[1], DECORCAT_COUNT + 1, sCurDecorationCategory); + gTasks[taskId].func = HandleDecorationCategoriesMenuInput; } -void sub_8126E8C(u8 taskId) +static void PrintDecorationCategoryMenuItems(u8 taskId) { - s16 *data; - u8 r5; - bool8 r8; u8 i; - bool8 fl; - - data = gTasks[taskId].data; - r5 = sDecorMenuWindowIndices[1]; - fl = gUnknown_0203A17C.isPlayerRoom; - r8 = FALSE; - if (fl == TRUE && data[11] == 0) - { - r8 = TRUE; - } - for (i = 0; i < 8; i ++) - { - if (r8 == TRUE && i != DECORCAT_DOLL && i != DECORCAT_CUSHION) - { - sub_8126F68(r5, i, 8, i << 4, TRUE, 0xFF); - } + s16 *data = gTasks[taskId].data; + u8 windowId = sDecorMenuWindowIds[1]; + bool8 isPlayerRoom = gDecorationContext.isPlayerRoom; + bool8 shouldDisable = FALSE; + if (isPlayerRoom == TRUE && data[11] == 0) + shouldDisable = TRUE; + + for (i = 0; i < DECORCAT_COUNT; i++) + { + // Only DOLL and CUSHION decorations are enabled when decorating the player's room. + if (shouldDisable == TRUE && i != DECORCAT_DOLL && i != DECORCAT_CUSHION) + PrintDecorationCategoryMenuItem(windowId, i, 8, i * 16, TRUE, TEXT_SPEED_FF); else - { - sub_8126F68(r5, i, 8, i << 4, FALSE, 0xFF); - } + PrintDecorationCategoryMenuItem(windowId, i, 8, i * 16, FALSE, TEXT_SPEED_FF); } - AddTextPrinterParameterized(r5, 1, gTasks[taskId].data[11] == 2 ? gText_Exit : gText_Cancel, 8, (i << 4) + 1, 0, 0); + + AddTextPrinterParameterized(windowId, 1, gTasks[taskId].data[11] == 2 ? gText_Exit : gText_Cancel, 8, i * 16 + 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); } -void sub_8126F68(u8 winid, u8 decorCat, u8 x, u8 y, bool8 flag, u8 speed) +static void PrintDecorationCategoryMenuItem(u8 winid, u8 category, u8 x, u8 y, bool8 disabled, u8 speed) { u8 width; - u8 *strbuf; + u8 *str; - width = x == 8 ? 0x68 : 0x60; - y ++; - sub_8127058(gStringVar4, flag); - strbuf = StringLength(gStringVar4) + gStringVar4; - StringCopy(strbuf, sDecorCatNames[decorCat]); + width = x == 8 ? 104 : 96; + y++; + ColorMenuItemString(gStringVar4, disabled); + str = StringLength(gStringVar4) + gStringVar4; + StringCopy(str, sDecorationCategoryNames[category]); AddTextPrinterParameterized(winid, 1, gStringVar4, x, y, speed, NULL); - strbuf = ConvertIntToDecimalStringN(strbuf, CountDecorationCategoryN(decorCat), STR_CONV_MODE_RIGHT_ALIGN, 2); - *strbuf++ = CHAR_SLASH; - ConvertIntToDecimalStringN(strbuf, gDecorationInventories[decorCat].size, STR_CONV_MODE_RIGHT_ALIGN, 2); + str = ConvertIntToDecimalStringN(str, GetNumOwnedDecorationsInCategory(category), STR_CONV_MODE_RIGHT_ALIGN, 2); + *(str++) = CHAR_SLASH; + ConvertIntToDecimalStringN(str, gDecorationInventories[category].size, STR_CONV_MODE_RIGHT_ALIGN, 2); x = GetStringRightAlignXOffset(1, gStringVar4, width); AddTextPrinterParameterized(winid, 1, gStringVar4, x, y, speed, NULL); } -void sub_8127058(u8 *str, bool8 flag) +static void ColorMenuItemString(u8 *str, bool8 disabled) { StringCopy(str, gText_Color161Shadow161); - if (flag == TRUE) + if (disabled == TRUE) { - str[2] = 0x04; // RED - str[5] = 0x05; // LIGHT_RED + str[2] = 4; + str[5] = 5; } else { - str[2] = 0x02; // DARK_GREY - str[5] = 0x03; // LIGHT_GREY + str[2] = 2; + str[5] = 3; } } -void sub_8127088(u8 taskId) +static void HandleDecorationCategoriesMenuInput(u8 taskId) { - s8 input; - if (!gPaletteFade.active) { - input = Menu_ProcessInput(); + s8 input = Menu_ProcessInput(); switch (input) { - case MENU_B_PRESSED: - case 8: - PlaySE(SE_SELECT); - sub_812719C(taskId); - break; - case MENU_NOTHING_CHOSEN: - break; - default: - PlaySE(SE_SELECT); - sCurDecorationCategory = input; - sub_81270E8(taskId); - break; + case MENU_B_PRESSED: + case DECORCAT_COUNT: // CANCEL + PlaySE(SE_SELECT); + ExitDecorationCategoriesMenu(taskId); + break; + case MENU_NOTHING_CHOSEN: + break; + default: + PlaySE(SE_SELECT); + sCurDecorationCategory = input; + SelectDecorationCategory(taskId); + break; } } } -void sub_81270E8(u8 taskId) +static void SelectDecorationCategory(u8 taskId) { - sCurDecorCatCount = CountDecorationCategoryN(sCurDecorationCategory); - if (sCurDecorCatCount != 0) + sNumOwnedDecorationsInCurCategory = GetNumOwnedDecorationsInCategory(sCurDecorationCategory); + if (sNumOwnedDecorationsInCurCategory != 0) { - CondenseDecorationCategoryN(sCurDecorationCategory); - gCurDecorInventoryItems = gDecorationInventories[sCurDecorationCategory].items; + CondenseDecorationsInCategory(sCurDecorationCategory); + gCurDecorationItems = gDecorationInventories[sCurDecorationCategory].items; IdentifyOwnedDecorationsCurrentlyInUse(taskId); - sSecretBasePCSelectDecorPageNo = 0; - sSecretBasePCSelectDecorLineNo = 0; - gTasks[taskId].func = sub_8127620; + sDecorationsScrollOffset = 0; + sDecorationsCursorPos = 0; + gTasks[taskId].func = ShowDecorationItemsWindow; } else { - sub_8126A58(1); + RemoveDecorationWindow(1); StringExpandPlaceholders(gStringVar4, gText_NoDecorations); - DisplayItemMessageOnField(taskId, gStringVar4, sub_8127180); + DisplayItemMessageOnField(taskId, gStringVar4, ReturnToDecorationCategoriesAfterInvalidSelection); } } -void sub_8127180(u8 taskId) +static void ReturnToDecorationCategoriesAfterInvalidSelection(u8 taskId) { ClearDialogWindowAndFrame(0, 0); - sub_8126DFC(taskId); + InitDecorationCategoriesWindow(taskId); } -void sub_812719C(u8 taskId) +static void ExitDecorationCategoriesMenu(u8 taskId) { if (gTasks[taskId].data[11] != 2) - { - sub_81271CC(taskId); - } + ReturnToActionsMenuFromCategories(taskId); else - { - sub_8127268(taskId); - } + ExitTraderDecorationMenu(taskId); } -void sub_81271CC(u8 taskId) +static void ReturnToActionsMenuFromCategories(u8 taskId) { - sub_8126A58(1); - sub_8126A88(); + RemoveDecorationWindow(1); + AddDecorationActionsWindow(); DrawDialogueFrame(0, 0); - sub_8126C08(); - gTasks[taskId].func = sub_8126B80; + PrintCurMainMenuDescription(); + gTasks[taskId].func = HandleDecorationActionsMenuInput; } -void sub_8127208(u8 taskId) +void ShowDecorationCategoriesWindow(u8 taskId) { - LoadPalette(gUnknown_085A6BB0, 0xd0, 0x20); + LoadPalette(sDecorationMenuPalette, 0xd0, 0x20); ClearDialogWindowAndFrame(0, 0); gTasks[taskId].data[11] = 2; sCurDecorationCategory = DECORCAT_DESK; - sub_8126DFC(taskId); + InitDecorationCategoriesWindow(taskId); } -void sub_8127250(u8 *dest, u8 decorCat) +void CopyDecorationCategoryName(u8 *dest, u8 category) { - StringCopy(dest, sDecorCatNames[decorCat]); + StringCopy(dest, sDecorationCategoryNames[category]); } -void sub_8127268(u8 taskId) +static void ExitTraderDecorationMenu(u8 taskId) { - sub_8126A58(1); - sub_8133E1C(taskId); + RemoveDecorationWindow(1); + ExitTraderMenu(taskId); } -void sub_8127284(void) +static void InitDecorationItemsMenuLimits(void) { - sDecorPCBuffer->unk_520 = sCurDecorCatCount + 1; - if (sDecorPCBuffer->unk_520 > 8) - { - sDecorPCBuffer->unk_521 = 8; - } + sDecorationItemsMenu->numMenuItems = sNumOwnedDecorationsInCurCategory + 1; + if (sDecorationItemsMenu->numMenuItems > 8) + sDecorationItemsMenu->maxShownItems = 8; else - { - sDecorPCBuffer->unk_521 = sDecorPCBuffer->unk_520; - } + sDecorationItemsMenu->maxShownItems = sDecorationItemsMenu->numMenuItems; } -void sub_81272C8(void) +static void sub_81272C8(void) { - sub_812225C(&sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo, sDecorPCBuffer->unk_521, sDecorPCBuffer->unk_520); + sub_812225C(&sDecorationsScrollOffset, &sDecorationsCursorPos, sDecorationItemsMenu->maxShownItems, sDecorationItemsMenu->numMenuItems); } -void sub_81272F8(void) +static void sub_81272F8(void) { - sub_8122298(&sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo, sDecorPCBuffer->unk_521, sDecorPCBuffer->unk_520, 8); + sub_8122298(&sDecorationsScrollOffset, &sDecorationsCursorPos, sDecorationItemsMenu->maxShownItems, sDecorationItemsMenu->numMenuItems, 8); } -void sub_8127330(u8 taskId) +static void PrintDecorationItemMenuItems(u8 taskId) { s16 *data; u16 i; data = gTasks[taskId].data; - if ((sCurDecorationCategory < DECORCAT_DOLL || sCurDecorationCategory > DECORCAT_CUSHION) && gUnknown_0203A17C.isPlayerRoom == TRUE && data[11] == 0) - { - sub_8127058(gStringVar1, TRUE); - } + if ((sCurDecorationCategory < DECORCAT_DOLL || sCurDecorationCategory > DECORCAT_CUSHION) && gDecorationContext.isPlayerRoom == TRUE && data[11] == 0) + ColorMenuItemString(gStringVar1, TRUE); else + ColorMenuItemString(gStringVar1, FALSE); + + for (i = 0; i < sDecorationItemsMenu->numMenuItems - 1; i++) { - sub_8127058(gStringVar1, FALSE); - } - for (i = 0; i < sDecorPCBuffer->unk_520 - 1; i ++) - { - sub_8127454(sDecorPCBuffer->names[i], gCurDecorInventoryItems[i]); - sDecorPCBuffer->items[i].name = sDecorPCBuffer->names[i]; - sDecorPCBuffer->items[i].id = i; + CopyDecorationMenuItemName(sDecorationItemsMenu->names[i], gCurDecorationItems[i]); + sDecorationItemsMenu->items[i].name = sDecorationItemsMenu->names[i]; + sDecorationItemsMenu->items[i].id = i; } - StringCopy(sDecorPCBuffer->names[i], gText_Cancel); - sDecorPCBuffer->items[i].name = sDecorPCBuffer->names[i]; - sDecorPCBuffer->items[i].id = -2; - gMultiuseListMenuTemplate = gUnknown_085A6BD0; - gMultiuseListMenuTemplate.windowId = sDecorMenuWindowIndices[1]; - gMultiuseListMenuTemplate.totalItems = sDecorPCBuffer->unk_520; - gMultiuseListMenuTemplate.items = sDecorPCBuffer->items; - gMultiuseListMenuTemplate.maxShowed = sDecorPCBuffer->unk_521; + + StringCopy(sDecorationItemsMenu->names[i], gText_Cancel); + sDecorationItemsMenu->items[i].name = sDecorationItemsMenu->names[i]; + sDecorationItemsMenu->items[i].id = -2; + gMultiuseListMenuTemplate = sDecorationItemsListMenuTemplate; + gMultiuseListMenuTemplate.windowId = sDecorMenuWindowIds[1]; + gMultiuseListMenuTemplate.totalItems = sDecorationItemsMenu->numMenuItems; + gMultiuseListMenuTemplate.items = sDecorationItemsMenu->items; + gMultiuseListMenuTemplate.maxShowed = sDecorationItemsMenu->maxShownItems; } -void sub_8127454(u8 *dest, u16 decorId) +static void CopyDecorationMenuItemName(u8 *dest, u16 decoration) { StringCopy(dest, gStringVar1); - StringAppend(dest, gDecorations[decorId].name); + StringAppend(dest, gDecorations[decoration].name); } -void sub_8127480(s32 a0, bool8 flag, struct ListMenu *menu) +static void DecorationItemsMenu_OnCursorMove(s32 itemIndex, bool8 flag, struct ListMenu *menu) { if (flag != TRUE) - { PlaySE(SE_SELECT); - } - sub_8127744(a0); + + PrintDecorationItemDescription(itemIndex); } void sub_81274A0(u8 a0, s32 a1, u8 a2) @@ -889,53 +889,59 @@ void sub_81274A0(u8 a0, s32 a1, u8 a2) } } -void sub_8127500(void) +static void AddDecorationItemsScrollIndicators(void) { - if (sDecorPCBuffer->unk_522 == 0xFF) + if (sDecorationItemsMenu->scrollIndicatorsTaskId == 0xFF) { - sDecorPCBuffer->unk_522 = AddScrollIndicatorArrowPairParameterized(SCROLL_ARROW_UP, 0x3c, 0x0c, 0x94, sDecorPCBuffer->unk_520 - sDecorPCBuffer->unk_521, 0x6e, 0x6e, &sSecretBasePCSelectDecorPageNo); + sDecorationItemsMenu->scrollIndicatorsTaskId = AddScrollIndicatorArrowPairParameterized( + SCROLL_ARROW_UP, + 0x3c, + 0x0c, + 0x94, + sDecorationItemsMenu->numMenuItems - sDecorationItemsMenu->maxShownItems, + 0x6e, + 0x6e, + &sDecorationsScrollOffset); } } -void sub_8127554(void) +static void RemoveDecorationItemsScrollIndicators(void) { - if (sDecorPCBuffer->unk_522 != 0xFF) + if (sDecorationItemsMenu->scrollIndicatorsTaskId != 0xFF) { - RemoveScrollIndicatorArrowPair(sDecorPCBuffer->unk_522); - sDecorPCBuffer->unk_522 = 0xFF; + RemoveScrollIndicatorArrowPair(sDecorationItemsMenu->scrollIndicatorsTaskId); + sDecorationItemsMenu->scrollIndicatorsTaskId = 0xFF; } } void sub_8127580(u8 taskId) { - sub_81269D4(1); - sub_812759C(taskId); + AddDecorationWindow(1); + InitDecorationItemsWindow(taskId); } -void sub_812759C(u8 taskId) +static void InitDecorationItemsWindow(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; - sub_81269D4(3); - sub_8127718(sCurDecorationCategory); - sDecorPCBuffer = calloc(1, sizeof(struct DecorPCBuffer)); - sDecorPCBuffer->unk_522 = 0xFF; - sub_8127284(); + s16 *data = gTasks[taskId].data; + AddDecorationWindow(3); + ShowDecorationCategorySummaryWindow(sCurDecorationCategory); + sDecorationItemsMenu = AllocZeroed(sizeof(*sDecorationItemsMenu)); + sDecorationItemsMenu->scrollIndicatorsTaskId = 0xFF; + InitDecorationItemsMenuLimits(); sub_81272C8(); sub_81272F8(); - sub_8127330(taskId); - data[13] = ListMenuInit(&gMultiuseListMenuTemplate, sSecretBasePCSelectDecorPageNo, sSecretBasePCSelectDecorLineNo); - sub_8127500(); + PrintDecorationItemMenuItems(taskId); + data[13] = ListMenuInit(&gMultiuseListMenuTemplate, sDecorationsScrollOffset, sDecorationsCursorPos); + AddDecorationItemsScrollIndicators(); } -void sub_8127620(u8 taskId) +static void ShowDecorationItemsWindow(u8 taskId) { - sub_812759C(taskId); - gTasks[taskId].func = sub_812764C; + InitDecorationItemsWindow(taskId); + gTasks[taskId].func = HandleDecorationItemsMenuInput; } -void sub_812764C(u8 taskId) +static void HandleDecorationItemsMenuInput(u8 taskId) { s16 *data; s32 input; @@ -944,129 +950,125 @@ void sub_812764C(u8 taskId) if (!gPaletteFade.active) { input = ListMenu_ProcessInput(data[13]); - ListMenuGetScrollAndRow(data[13], &sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo); + ListMenuGetScrollAndRow(data[13], &sDecorationsScrollOffset, &sDecorationsCursorPos); switch (input) { - case LIST_NOTHING_CHOSEN: - break; - case LIST_CANCEL: - PlaySE(SE_SELECT); - SecretBasePC_SelectedDecorActions[data[11]][1](taskId); - break; - default: - PlaySE(SE_SELECT); - gCurDecorationIndex = input; - sub_8127554(); - DestroyListMenuTask(data[13], &sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo); - sub_8126A58(1); - sub_81277A8(); - free(sDecorPCBuffer); - SecretBasePC_SelectedDecorActions[data[11]][0](taskId); - break; + case LIST_NOTHING_CHOSEN: + break; + case LIST_CANCEL: + PlaySE(SE_SELECT); + sSecretBasePC_SelectedDecorationActions[data[11]][1](taskId); + break; + default: + PlaySE(SE_SELECT); + gCurDecorationIndex = input; + RemoveDecorationItemsScrollIndicators(); + DestroyListMenuTask(data[13], &sDecorationsScrollOffset, &sDecorationsCursorPos); + RemoveDecorationWindow(1); + RemoveDecorationItemsOtherWindows(); + free(sDecorationItemsMenu); + sSecretBasePC_SelectedDecorationActions[data[11]][0](taskId); + break; } } } -void sub_8127718(u8 decorCat) +static void ShowDecorationCategorySummaryWindow(u8 category) { - sub_8126F68(sub_81269D4(2), decorCat, 0, 0, 0, 0); + PrintDecorationCategoryMenuItem(AddDecorationWindow(2), category, 0, 0, 0, 0); } -void sub_8127744(u32 a0) +static void PrintDecorationItemDescription(u32 itemIndex) { - u8 winidx; - const u8 *txt; + u8 windowId; + const u8 *str; - winidx = sDecorMenuWindowIndices[3]; - FillWindowPixelBuffer(winidx, PIXEL_FILL(1)); - if (a0 >= sCurDecorCatCount) - { - txt = gText_GoBackPrevMenu; - } + windowId = sDecorMenuWindowIds[3]; + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + if (itemIndex >= sNumOwnedDecorationsInCurCategory) + str = gText_GoBackPrevMenu; else - { - txt = gDecorations[gCurDecorInventoryItems[a0]].description; - } - AddTextPrinterParameterized(winidx, 1, txt, 0, 1, 0, 0); + str = gDecorations[gCurDecorationItems[itemIndex]].description; + + AddTextPrinterParameterized(windowId, 1, str, 0, 1, 0, 0); } -void sub_81277A8(void) +static void RemoveDecorationItemsOtherWindows(void) { - sub_8126A58(3); - sub_8126A58(2); + // Remove description and category summary windows + RemoveDecorationWindow(3); + RemoveDecorationWindow(2); } bool8 sub_81277BC(u8 idx) { u8 i; - - for (i = 0; i < 16; i ++) + for (i = 0; i < ARRAY_COUNT(sSecretBaseItemsIndicesBuffer); i++) { if (sSecretBaseItemsIndicesBuffer[i] == idx) - { return TRUE; - } } + return FALSE; } bool8 sub_81277E8(u8 idx) { u8 i; - - for (i = 0; i < 12; i ++) + for (i = 0; i < ARRAY_COUNT(sPlayerRoomItemsIndicesBuffer); i++) { if (sPlayerRoomItemsIndicesBuffer[i] == idx) - { return TRUE; - } } + return FALSE; } -void IdentifyOwnedDecorationsCurrentlyInUseInternal(u8 taskId) +static void IdentifyOwnedDecorationsCurrentlyInUseInternal(u8 taskId) { - u16 i; - u16 j; - u16 k; - u16 cnt; + u16 i, j, k; + u16 count; + + count = 0; + memset(sSecretBaseItemsIndicesBuffer, 0, sizeof(sSecretBaseItemsIndicesBuffer)); + memset(sPlayerRoomItemsIndicesBuffer, 0, sizeof(sPlayerRoomItemsIndicesBuffer)); - cnt = 0; - memset(sSecretBaseItemsIndicesBuffer, 0, 16); - memset(sPlayerRoomItemsIndicesBuffer, 0, 12); - for (i = 0; i < 16; i ++) + for (i = 0; i < ARRAY_COUNT(sSecretBaseItemsIndicesBuffer); i++) { if (gSaveBlock1Ptr->secretBases[0].decorations[i] != DECOR_NONE) { - for (j = 0; j < gDecorationInventories[sCurDecorationCategory].size; j ++) + for (j = 0; j < gDecorationInventories[sCurDecorationCategory].size; j++) { - if (gCurDecorInventoryItems[j] == gSaveBlock1Ptr->secretBases[0].decorations[i]) + if (gCurDecorationItems[j] == gSaveBlock1Ptr->secretBases[0].decorations[i]) { - for (k = 0; k < cnt && sSecretBaseItemsIndicesBuffer[k] != j + 1; k ++); - if (k == cnt) + for (k = 0; k < count && sSecretBaseItemsIndicesBuffer[k] != j + 1; k++) + ; + + if (k == count) { - sSecretBaseItemsIndicesBuffer[cnt] = j + 1; - cnt ++; + sSecretBaseItemsIndicesBuffer[count] = j + 1; + count++; break; } } } } } - cnt = 0; - for (i = 0; i < 12; i ++) + + count = 0; + for (i = 0; i < ARRAY_COUNT(sPlayerRoomItemsIndicesBuffer); i++) { if (gSaveBlock1Ptr->playerRoomDecor[i] != DECOR_NONE) { - for (j = 0; j < gDecorationInventories[sCurDecorationCategory].size; j ++) + for (j = 0; j < gDecorationInventories[sCurDecorationCategory].size; j++) { - if (gCurDecorInventoryItems[j] == gSaveBlock1Ptr->playerRoomDecor[i] && sub_81277BC(j + 1) != TRUE) + if (gCurDecorationItems[j] == gSaveBlock1Ptr->playerRoomDecor[i] && sub_81277BC(j + 1) != TRUE) { - for (k = 0; k < cnt && sPlayerRoomItemsIndicesBuffer[k] != j + 1; k ++); - if (k == cnt) + for (k = 0; k < count && sPlayerRoomItemsIndicesBuffer[k] != j + 1; k++); + if (k == count) { - sPlayerRoomItemsIndicesBuffer[cnt] = j + 1; - cnt ++; + sPlayerRoomItemsIndicesBuffer[count] = j + 1; + count++; break; } } @@ -1075,7 +1077,7 @@ void IdentifyOwnedDecorationsCurrentlyInUseInternal(u8 taskId) } } -void IdentifyOwnedDecorationsCurrentlyInUse(u8 taskId) +static void IdentifyOwnedDecorationsCurrentlyInUse(u8 taskId) { IdentifyOwnedDecorationsCurrentlyInUseInternal(taskId); } @@ -1083,24 +1085,25 @@ void IdentifyOwnedDecorationsCurrentlyInUse(u8 taskId) bool8 IsSelectedDecorInThePC(void) { u16 i; - for (i = 0; i < 16; i ++) + for (i = 0; i < ARRAY_COUNT(sSecretBaseItemsIndicesBuffer); i++) { - if (sSecretBaseItemsIndicesBuffer[i] == sSecretBasePCSelectDecorPageNo + sSecretBasePCSelectDecorLineNo + 1) - { + if (sSecretBaseItemsIndicesBuffer[i] == sDecorationsScrollOffset + sDecorationsCursorPos + 1) return FALSE; - } - if (i < 12 && sPlayerRoomItemsIndicesBuffer[i] == sSecretBasePCSelectDecorPageNo + sSecretBasePCSelectDecorLineNo + 1) + + if (i < ARRAY_COUNT(sPlayerRoomItemsIndicesBuffer) + && sPlayerRoomItemsIndicesBuffer[i] == sDecorationsScrollOffset + sDecorationsCursorPos + 1) { return FALSE; } } + return TRUE; } -void sub_8127A14(u8 taskId) +static void sub_8127A14(u8 taskId) { - sub_81269D4(1); - sub_8127620(taskId); + AddDecorationWindow(1); + ShowDecorationItemsWindow(taskId); } void sub_8127A30(u8 taskId) @@ -1114,20 +1117,18 @@ void sub_8127A5C(u8 taskId) if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { ClearDialogWindowAndFrame(0, 0); - sub_81269D4(1); - sub_8127620(taskId); + AddDecorationWindow(1); + ShowDecorationItemsWindow(taskId); } } void sub_8127A8C(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; - sub_8127554(); - sub_81277A8(); + s16 *data = gTasks[taskId].data; + RemoveDecorationItemsScrollIndicators(); + RemoveDecorationItemsOtherWindows(); DestroyListMenuTask(data[13], NULL, NULL); - free(sDecorPCBuffer); + free(sDecorationItemsMenu); sub_8126E44(taskId); } @@ -1145,25 +1146,23 @@ void sub_8127B04(u8 taskId) WarpIntoMap(); } -u16 sub_8127B54(u8 decor, u8 a1) +static u16 GetDecorationElevation(u8 decoration, u8 tileIndex) { - u16 resp; - - resp = -1; - switch (decor) + u16 elevation = -1; + switch (decoration) { - case DECOR_STAND: - resp = gUnknown_085A72E4[a1] << 12; - return resp; - case DECOR_SLIDE: - resp = gUnknown_085A72EC[a1] << 12; - return resp; - default: - return resp; + case DECOR_STAND: + elevation = sDecorationStandElevations[tileIndex] << 12; + return elevation; + case DECOR_SLIDE: + elevation = sDecorationSlideElevation[tileIndex] << 12; + return elevation; + default: + return elevation; } } -void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) +static void ShowDecorationOnMap_(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decoration) { u16 i, j; s16 x, y; @@ -1178,60 +1177,60 @@ void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) for (i = 0; i < decWidth; i++) { x = mapX + i; - behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decor].tiles[j * decWidth + i]); - if (MetatileBehavior_IsSecretBaseImpassable(behavior) == TRUE || (gDecorations[decor].permission != DECORPERM_PASS_FLOOR && (behavior >> 12))) + behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decoration].tiles[j * decWidth + i]); + if (MetatileBehavior_IsSecretBaseImpassable(behavior) == TRUE || (gDecorations[decoration].permission != DECORPERM_PASS_FLOOR && (behavior >> 12))) impassableFlag = METATILE_COLLISION_MASK; else impassableFlag = 0; - if (gDecorations[decor].permission != DECORPERM_NA_WALL && MetatileBehavior_IsSecretBaseNorthWall(MapGridGetMetatileBehaviorAt(x, y)) == TRUE) + if (gDecorations[decoration].permission != DECORPERM_NA_WALL && MetatileBehavior_IsSecretBaseNorthWall(MapGridGetMetatileBehaviorAt(x, y)) == TRUE) posterSide = 1; else posterSide = 0; - elevation = sub_8127B54(gDecorations[decor].id, j * decWidth + i); + elevation = GetDecorationElevation(gDecorations[decoration].id, j * decWidth + i); if (elevation != 0xFFFF) - MapGridSetMetatileEntryAt(x, y, (gDecorations[decor].tiles[j * decWidth + i] + (0x200 | posterSide)) | impassableFlag | elevation); + MapGridSetMetatileEntryAt(x, y, (gDecorations[decoration].tiles[j * decWidth + i] + (0x200 | posterSide)) | impassableFlag | elevation); else - MapGridSetMetatileIdAt(x, y, (gDecorations[decor].tiles[j * decWidth + i] + (0x200 | posterSide)) | impassableFlag); + MapGridSetMetatileIdAt(x, y, (gDecorations[decoration].tiles[j * decWidth + i] + (0x200 | posterSide)) | impassableFlag); } } } -void ShowDecorationOnMap(u16 mapX, u16 mapY, u16 decor) -{ - switch (gDecorations[decor].shape) - { - case DECORSHAPE_1x1: - sub_8127B90(mapX, mapY, 1, 1, decor); - break; - case DECORSHAPE_2x1: - sub_8127B90(mapX, mapY, 2, 1, decor); - break; - case DECORSHAPE_3x1: // unused - sub_8127B90(mapX, mapY, 3, 1, decor); - break; - case DECORSHAPE_4x2: - sub_8127B90(mapX, mapY, 4, 2, decor); - break; - case DECORSHAPE_2x2: - sub_8127B90(mapX, mapY, 2, 2, decor); - break; - case DECORSHAPE_1x2: - sub_8127B90(mapX, mapY, 1, 2, decor); - break; - case DECORSHAPE_1x3: // unused - sub_8127B90(mapX, mapY, 1, 3, decor); - break; - case DECORSHAPE_2x4: - sub_8127B90(mapX, mapY, 2, 4, decor); - break; - case DECORSHAPE_3x3: - sub_8127B90(mapX, mapY, 3, 3, decor); - break; - case DECORSHAPE_3x2: - sub_8127B90(mapX, mapY, 3, 2, decor); - break; +void ShowDecorationOnMap(u16 mapX, u16 mapY, u16 decoration) +{ + switch (gDecorations[decoration].shape) + { + case DECORSHAPE_1x1: + ShowDecorationOnMap_(mapX, mapY, 1, 1, decoration); + break; + case DECORSHAPE_2x1: + ShowDecorationOnMap_(mapX, mapY, 2, 1, decoration); + break; + case DECORSHAPE_3x1: // unused + ShowDecorationOnMap_(mapX, mapY, 3, 1, decoration); + break; + case DECORSHAPE_4x2: + ShowDecorationOnMap_(mapX, mapY, 4, 2, decoration); + break; + case DECORSHAPE_2x2: + ShowDecorationOnMap_(mapX, mapY, 2, 2, decoration); + break; + case DECORSHAPE_1x2: + ShowDecorationOnMap_(mapX, mapY, 1, 2, decoration); + break; + case DECORSHAPE_1x3: // unused + ShowDecorationOnMap_(mapX, mapY, 1, 3, decoration); + break; + case DECORSHAPE_2x4: + ShowDecorationOnMap_(mapX, mapY, 2, 4, decoration); + break; + case DECORSHAPE_3x3: + ShowDecorationOnMap_(mapX, mapY, 3, 3, decoration); + break; + case DECORSHAPE_3x2: + ShowDecorationOnMap_(mapX, mapY, 3, 2, decoration); + break; } } @@ -1240,21 +1239,21 @@ void sub_8127E18(void) u8 i; u8 j; - for (i = 0; i < 14; i ++) + for (i = 0; i < 14; i++) { if (FlagGet(FLAG_DECORATION_1 + i) == TRUE) { FlagClear(FLAG_DECORATION_1 + i); - for (j = 0; j < gMapHeader.events->eventObjectCount; j ++) + for (j = 0; j < gMapHeader.events->eventObjectCount; j++) { if (gMapHeader.events->eventObjects[j].flagId == FLAG_DECORATION_1 + i) - { break; - } } + VarSet( VAR_OBJ_GFX_ID_0 + (gMapHeader.events->eventObjects[j].graphicsId - EVENT_OBJ_GFX_VAR_0), sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0]); + gSpecialVar_0x8005 = gMapHeader.events->eventObjects[j].localId; gSpecialVar_0x8006 = sCurDecorMapX; gSpecialVar_0x8007 = sCurDecorMapY; @@ -1270,9 +1269,9 @@ bool8 sub_8127F38(void) { u16 i; - for (i = 0; i < gUnknown_0203A17C.size; i ++) + for (i = 0; i < gDecorationContext.size; i++) { - if (gUnknown_0203A17C.items[i] == DECOR_NONE) + if (gDecorationContext.items[i] == DECOR_NONE) { return TRUE; } @@ -1282,7 +1281,7 @@ bool8 sub_8127F38(void) void sub_8127F68(u8 taskId) { - if (gUnknown_0203A17C.isPlayerRoom == TRUE && sCurDecorationCategory != DECORCAT_DOLL && sCurDecorationCategory != DECORCAT_CUSHION) + if (gDecorationContext.isPlayerRoom == TRUE && sCurDecorationCategory != DECORCAT_DOLL && sCurDecorationCategory != DECORCAT_CUSHION) { StringExpandPlaceholders(gStringVar4, gText_CantPlaceInRoom); DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C); @@ -1297,8 +1296,8 @@ void sub_8127F68(u8 taskId) } else { - ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203A17C.size, STR_CONV_MODE_RIGHT_ALIGN, 2); - if (gUnknown_0203A17C.isPlayerRoom == FALSE) { + ConvertIntToDecimalStringN(gStringVar1, gDecorationContext.size, STR_CONV_MODE_RIGHT_ALIGN, 2); + if (gDecorationContext.isPlayerRoom == FALSE) { StringExpandPlaceholders(gStringVar4, gText_NoMoreDecorations); } else @@ -1328,7 +1327,7 @@ void sub_8128060(u8 taskId) break; case 1: gPaletteFade.bufferTransferDisabled = TRUE; - ConfigureCameraObjectForPlacingDecoration(&sPlaceDecorationGraphicsDataBuffer, gCurDecorInventoryItems[gCurDecorationIndex]); + ConfigureCameraObjectForPlacingDecoration(&sPlaceDecorationGraphicsDataBuffer, gCurDecorationItems[gCurDecorationIndex]); sub_812826C(taskId); SetUpPlacingDecorationPlayerAvatar(taskId, &sPlaceDecorationGraphicsDataBuffer); pal_fill_black(); @@ -1351,27 +1350,23 @@ void ConfigureCameraObjectForPlacingDecoration(struct PlaceDecorationGraphicsDat gFieldCamera.spriteId = gpu_pal_decompress_alloc_tag_and_upload(data, decor); gSprites[gFieldCamera.spriteId].oam.priority = 1; gSprites[gFieldCamera.spriteId].callback = sub_81292D0; - gSprites[gFieldCamera.spriteId].pos1.x = gUnknown_085A7250[data->decoration->shape].x; - gSprites[gFieldCamera.spriteId].pos1.y = gUnknown_085A7250[data->decoration->shape].y; + gSprites[gFieldCamera.spriteId].pos1.x = sDecorationMovementInfo[data->decoration->shape].cameraX; + gSprites[gFieldCamera.spriteId].pos1.y = sDecorationMovementInfo[data->decoration->shape].cameraY; } void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct PlaceDecorationGraphicsDataBuffer *data) { - u8 v0; + u8 x; - v0 = 16 * (u8)gTasks[taskId].data[5] + gUnknown_085A7250[data->decoration->shape].x - 8 * ((u8)gTasks[taskId].data[5] - 1); + x = 16 * (u8)gTasks[taskId].data[5] + sDecorationMovementInfo[data->decoration->shape].cameraX - 8 * ((u8)gTasks[taskId].data[5] - 1); if (data->decoration->shape == DECORSHAPE_3x1 || data->decoration->shape == DECORSHAPE_3x3 || data->decoration->shape == DECORSHAPE_3x2) - { - v0 -= 8; - } + x -= 8; + if (gSaveBlock2Ptr->playerGender == MALE) - { - sDecor_CameraSpriteObjectIdx2 = AddPseudoEventObject(0xC1, SpriteCallbackDummy, v0, 0x48, 0); - } + sDecor_CameraSpriteObjectIdx2 = AddPseudoEventObject(EVENT_OBJ_GFX_BRENDAN_DECORATING, SpriteCallbackDummy, x, 72, 0); else - { - sDecor_CameraSpriteObjectIdx2 = AddPseudoEventObject(0xC2, SpriteCallbackDummy, v0, 0x48, 0); - } + sDecor_CameraSpriteObjectIdx2 = AddPseudoEventObject(EVENT_OBJ_GFX_MAY_DECORATING, SpriteCallbackDummy, x, 72, 0); + gSprites[sDecor_CameraSpriteObjectIdx2].oam.priority = 1; DestroySprite(&gSprites[sDecor_CameraSpriteObjectIdx1]); sDecor_CameraSpriteObjectIdx1 = gFieldCamera.spriteId; @@ -1379,7 +1374,7 @@ void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct PlaceDecorationGraphic void sub_812826C(u8 taskId) { - switch (gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].shape) + switch (gDecorations[gCurDecorationItems[gCurDecorationIndex]].shape) { case DECORSHAPE_1x1: gTasks[taskId].data[5] = 1; @@ -1467,14 +1462,12 @@ bool8 sub_81284F4(u16 behaviorAt, const struct Decoration *decoration) if (MetatileBehavior_IsBlockDecoration(behaviorAt) != TRUE) { if (decoration->id == DECOR_SOLID_BOARD && MetatileBehavior_IsSecretBaseHole(behaviorAt) == TRUE) - { return TRUE; - } + if (MetatileBehavior_IsNormal(behaviorAt)) - { return TRUE; - } } + return FALSE; } @@ -1493,127 +1486,108 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) switch (decoration->permission) { - case DECORPERM_SOLID_FLOOR: - case DECORPERM_PASS_FLOOR: - for (i=0; itiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; - if (!sub_81284F4(behaviorAt, decoration)) - { - return FALSE; - } - if (!sub_81284AC(taskId, curX, curY, behaviorBy)) - { - return FALSE; - } - behaviorAt = GetEventObjectIdByXYZ(curX, curY, 0); - if (behaviorAt != 0 && behaviorAt != 16) - { - return FALSE; - } - } - } - break; - case DECORPERM_BEHIND_FLOOR: - for (i=0; itiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; - if (!MetatileBehavior_IsNormal(behaviorAt) && !sub_8128484(behaviorAt, behaviorBy)) - { - return FALSE; - } - if (!sub_81284AC(taskId, curX, curY, behaviorBy)) - { - return FALSE; - } - if (GetEventObjectIdByXYZ(curX, curY, 0) != 16) - { - return FALSE; - } - } - } - curY = gTasks[taskId].data[1] - mapY + 1; - for (j=0; jtiles[j]) & METATILE_ELEVATION_MASK; - if (!MetatileBehavior_IsNormal(behaviorAt) && !MetatileBehavior_IsSecretBaseNorthWall(behaviorAt)) - { + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; + if (!sub_81284F4(behaviorAt, decoration)) return FALSE; - } + if (!sub_81284AC(taskId, curX, curY, behaviorBy)) - { return FALSE; - } + behaviorAt = GetEventObjectIdByXYZ(curX, curY, 0); if (behaviorAt != 0 && behaviorAt != 16) - { return FALSE; - } } - break; - case DECORPERM_NA_WALL: - for (i=0; ishape == DECORSHAPE_1x2) - { - if (!MetatileBehavior_HoldsLargeDecoration(behaviorAt)) - { - return FALSE; - } - } - else if (!MetatileBehavior_HoldsSmallDecoration(behaviorAt)) - { - if (!MetatileBehavior_HoldsLargeDecoration(behaviorAt)) - { - return FALSE; - } - } + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; + if (!MetatileBehavior_IsNormal(behaviorAt) && !sub_8128484(behaviorAt, behaviorBy)) + return FALSE; + + if (!sub_81284AC(taskId, curX, curY, behaviorBy)) + return FALSE; + if (GetEventObjectIdByXYZ(curX, curY, 0) != 16) - { return FALSE; - } } - break; + } + + curY = gTasks[taskId].data[1] - mapY + 1; + for (j = 0; j < mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & METATILE_ELEVATION_MASK; + if (!MetatileBehavior_IsNormal(behaviorAt) && !MetatileBehavior_IsSecretBaseNorthWall(behaviorAt)) + return FALSE; + + if (!sub_81284AC(taskId, curX, curY, behaviorBy)) + return FALSE; + + behaviorAt = GetEventObjectIdByXYZ(curX, curY, 0); + if (behaviorAt != 0 && behaviorAt != 16) + return FALSE; + } + break; + case DECORPERM_NA_WALL: + for (i = 0; i < mapY; i++) + { + curY = gTasks[taskId].data[1] - i; + for (j = 0; j < mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + if (!MetatileBehavior_IsSecretBaseNorthWall(MapGridGetMetatileBehaviorAt(curX, curY))) + return FALSE; + + if (MapGridGetMetatileIdAt(curX, curY + 1) == 0x28c) + return FALSE; + } + } + break; + case DECORPERM_SPRITE: + curY = gTasks[taskId].data[1]; + for (j = 0; j < mapX; j++) + { + curX = gTasks[taskId].data[0] + j; + behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); + if (decoration->shape == DECORSHAPE_1x2) + { + if (!MetatileBehavior_HoldsLargeDecoration(behaviorAt)) + return FALSE; + } + else if (!MetatileBehavior_HoldsSmallDecoration(behaviorAt)) + { + if (!MetatileBehavior_HoldsLargeDecoration(behaviorAt)) + return FALSE; + } + + if (GetEventObjectIdByXYZ(curX, curY, 0) != 16) + return FALSE; + } + break; } return TRUE; } void sub_8128950(u8 taskId) { - if (sub_812853C(taskId, &gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]]) == TRUE) + if (sub_812853C(taskId, &gDecorations[gCurDecorationItems[gCurDecorationIndex]]) == TRUE) { StringExpandPlaceholders(gStringVar4, gText_PlaceItHere); DisplayItemMessageOnField(taskId, gStringVar4, sub_81289D0); @@ -1636,9 +1610,9 @@ void sub_81289F0(u8 taskId) { ClearDialogWindowAndFrame(0, 0); sub_8128AAC(taskId); - if (gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].permission != DECORPERM_SPRITE) + if (gDecorations[gCurDecorationItems[gCurDecorationIndex]].permission != DECORPERM_SPRITE) { - ShowDecorationOnMap(gTasks[taskId].data[0], gTasks[taskId].data[1], gCurDecorInventoryItems[gCurDecorationIndex]); + ShowDecorationOnMap(gTasks[taskId].data[0], gTasks[taskId].data[1], gCurDecorationItems[gCurDecorationIndex]); } else { @@ -1646,11 +1620,11 @@ void sub_81289F0(u8 taskId) sCurDecorMapY = gTasks[taskId].data[1] - 7; ScriptContext1_SetupScript(EventScript_275D1F); } + gSprites[sDecor_CameraSpriteObjectIdx1].pos1.y += 2; if (gMapHeader.regionMapSectionId == MAPSEC_SECRET_BASE) - { TV_PutSecretBaseVisitOnTheAir(); - } + sub_8128BBC(taskId); } @@ -1658,18 +1632,19 @@ void sub_8128AAC(u8 taskId) { u16 i; - for (i = 0; i < gUnknown_0203A17C.size; i ++) + for (i = 0; i < gDecorationContext.size; i++) { - if (gUnknown_0203A17C.items[i] == DECOR_NONE) + if (gDecorationContext.items[i] == DECOR_NONE) { - gUnknown_0203A17C.items[i] = gCurDecorInventoryItems[gCurDecorationIndex]; - gUnknown_0203A17C.pos[i] = ((gTasks[taskId].data[0] - 7) << 4) + (gTasks[taskId].data[1] - 7); + gDecorationContext.items[i] = gCurDecorationItems[gCurDecorationIndex]; + gDecorationContext.pos[i] = ((gTasks[taskId].data[0] - 7) << 4) + (gTasks[taskId].data[1] - 7); break; } } - if (!gUnknown_0203A17C.isPlayerRoom) + + if (!gDecorationContext.isPlayerRoom) { - for (i = 0; i < 16; i ++) + for (i = 0; i < 16; i++) { if (sSecretBaseItemsIndicesBuffer[i] == 0) { @@ -1680,7 +1655,7 @@ void sub_8128AAC(u8 taskId) } else { - for (i = 0; i < 12; i ++) + for (i = 0; i < 12; i++) { if (sPlayerRoomItemsIndicesBuffer[i] == 0) { @@ -1714,49 +1689,45 @@ void c1_overworld_prev_quest(u8 taskId) { switch (gTasks[taskId].data[2]) { - case 0: - ScriptContext2_Enable(); - if (!gPaletteFade.active) - { - sub_8127B04(taskId); - gTasks[taskId].data[2] = 1; - } - break; - case 1: - sub_812A3C8(); - FreeSpritePaletteByTag(OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG); - gFieldCallback = sub_8128CD4; - SetMainCallback2(CB2_ReturnToField); - DestroyTask(taskId); - break; + case 0: + ScriptContext2_Enable(); + if (!gPaletteFade.active) + { + sub_8127B04(taskId); + gTasks[taskId].data[2] = 1; + } + break; + case 1: + sub_812A3C8(); + FreeSpritePaletteByTag(PLACE_DECORATION_SELECTOR_TAG); + gFieldCallback = sub_8128CD4; + SetMainCallback2(CB2_ReturnToField); + DestroyTask(taskId); + break; } } void sub_8128C64(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; switch (data[2]) { - case 0: - HideSecretBaseDecorationSprites(); - data[2] ++; - break; - case 1: - ScriptContext1_SetupScript(EventScript_275D0C); - data[2] ++; - break; - case 2: - ScriptContext2_Enable(); - data[2] ++; - break; - case 3: - if (IsWeatherNotFadingIn() == TRUE) - { - gTasks[taskId].func = sub_812764C; - } - break; + case 0: + HideSecretBaseDecorationSprites(); + data[2]++; + break; + case 1: + ScriptContext1_SetupScript(EventScript_275D0C); + data[2]++; + break; + case 2: + ScriptContext2_Enable(); + data[2]++; + break; + case 3: + if (IsWeatherNotFadingIn() == TRUE) + gTasks[taskId].func = HandleDecorationItemsMenuInput; + break; } } @@ -1773,41 +1744,40 @@ void sub_8128CD4(void) bool8 sub_8128D10(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; if (sDecorationLastDirectionMoved == DIR_SOUTH && data[1] - data[6] - 6 < 0) { - data[1] ++; + data[1]++; return FALSE; } + if (sDecorationLastDirectionMoved == DIR_NORTH && data[1] - 7 >= gMapHeader.mapLayout->height) { - data[1] --; + data[1]--; return FALSE; } + if (sDecorationLastDirectionMoved == DIR_WEST && data[0] - 7 < 0) { - data[0] ++; + data[0]++; return FALSE; } + if (sDecorationLastDirectionMoved == DIR_EAST && data[0] + data[5] - 8 >= gMapHeader.mapLayout->width) { - data[0] --; + data[0]--; return FALSE; } + return TRUE; } bool8 sub_8128DB4(void) { - u16 heldKeys; - - heldKeys = gMain.heldKeys & 0x0F0; + u16 heldKeys = gMain.heldKeys & DPAD_ANY; if (heldKeys != DPAD_UP && heldKeys != DPAD_DOWN && heldKeys != DPAD_LEFT && heldKeys != DPAD_RIGHT) - { return FALSE; - } + return TRUE; } @@ -1820,68 +1790,69 @@ void sub_8128DE0(void) void sub_8128E18(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; if (!gSprites[sDecor_CameraSpriteObjectIdx1].data[4]) { if (data[10] == 1) { gUnknown_085A72D4[data[12]].yesFunc(taskId); return; - } else if (data[10] == 2) + } + else if (data[10] == 2) { gUnknown_085A72D4[data[12]].noFunc(taskId); return; } - if ((gMain.heldKeys & 0x0F0) == DPAD_UP) + + if ((gMain.heldKeys & DPAD_ANY) == DPAD_UP) { sDecorationLastDirectionMoved = DIR_SOUTH; gSprites[sDecor_CameraSpriteObjectIdx1].data[2] = 0; gSprites[sDecor_CameraSpriteObjectIdx1].data[3] = -2; data[1]--; } - if ((gMain.heldKeys & 0x0F0) == DPAD_DOWN) + + if ((gMain.heldKeys & DPAD_ANY) == DPAD_DOWN) { sDecorationLastDirectionMoved = DIR_NORTH; gSprites[sDecor_CameraSpriteObjectIdx1].data[2] = 0; gSprites[sDecor_CameraSpriteObjectIdx1].data[3] = 2; data[1]++; } - if ((gMain.heldKeys & 0x0F0) == DPAD_LEFT) + + if ((gMain.heldKeys & DPAD_ANY) == DPAD_LEFT) { sDecorationLastDirectionMoved = DIR_WEST; gSprites[sDecor_CameraSpriteObjectIdx1].data[2] = -2; gSprites[sDecor_CameraSpriteObjectIdx1].data[3] = 0; data[0]--; } - if ((gMain.heldKeys & 0x0F0) == DPAD_RIGHT) + + if ((gMain.heldKeys & DPAD_ANY) == DPAD_RIGHT) { sDecorationLastDirectionMoved = DIR_EAST; gSprites[sDecor_CameraSpriteObjectIdx1].data[2] = 2; gSprites[sDecor_CameraSpriteObjectIdx1].data[3] = 0; data[0]++; } + if (!sub_8128DB4() || !sub_8128D10(taskId)) - { sub_8128DE0(); - } } + if (sDecorationLastDirectionMoved) { gSprites[sDecor_CameraSpriteObjectIdx1].data[4]++; gSprites[sDecor_CameraSpriteObjectIdx1].data[4] &= 7; } + if (!data[10]) { if (gMain.newKeys & A_BUTTON) - { data[10] = A_BUTTON; - } + if (gMain.newKeys & B_BUTTON) - { data[10] = B_BUTTON; - } } } @@ -1896,9 +1867,7 @@ void sub_8128FD8(u8 taskId) void sub_8129020(u8 taskId) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) - { sub_8128FD8(taskId); - } } void sub_8129048(struct PlaceDecorationGraphicsDataBuffer *data) @@ -1919,49 +1888,46 @@ void sub_8129088(u8 *dest, u16 tile) mode = tile >> 10; if (tile != 0) - { tile &= 0x03FF; - } + CpuFastCopy(&((u8 *)gTilesetPointer_SecretBase->tiles)[tile << 5], buffer, 32); switch (mode) { - case 0: - CpuFastCopy(buffer, dest, 32); - break; - case 1: - for (i = 0; i < 8; i ++) - { - dest[4 * i] = (buffer[4 * (i + 1) - 1] >> 4) + ((buffer[4 * (i + 1) - 1] & 0x0F) << 4); - dest[4 * i + 1] = (buffer[4 * (i + 1) - 2] >> 4) + ((buffer[4 * (i + 1) - 2] & 0x0F) << 4); - dest[4 * i + 2] = (buffer[4 * (i + 1) - 3] >> 4) + ((buffer[4 * (i + 1) - 3] & 0x0F) << 4); - dest[4 * i + 3] = (buffer[4 * (i + 1) - 4] >> 4) + ((buffer[4 * (i + 1) - 4] & 0x0F) << 4); - } - break; - case 2: - for (i = 0; i < 8; i ++) - { - dest[4 * i] = buffer[4 * (7 - i)]; - dest[4 * i + 1] = buffer[4 * (7 - i) + 1]; - dest[4 * i + 2] = buffer[4 * (7 - i) + 2]; - dest[4 * i + 3] = buffer[4 * (7 - i) + 3]; - } - break; - case 3: - for (i = 0; i < 32; i ++) - { - dest[i] = (buffer[31 - i] >> 4) + ((buffer[31 - i] & 0x0F) << 4); - } - break; + case 0: + CpuFastCopy(buffer, dest, 32); + break; + case 1: + for (i = 0; i < 8; i++) + { + dest[4 * i] = (buffer[4 * (i + 1) - 1] >> 4) + ((buffer[4 * (i + 1) - 1] & 0x0F) << 4); + dest[4 * i + 1] = (buffer[4 * (i + 1) - 2] >> 4) + ((buffer[4 * (i + 1) - 2] & 0x0F) << 4); + dest[4 * i + 2] = (buffer[4 * (i + 1) - 3] >> 4) + ((buffer[4 * (i + 1) - 3] & 0x0F) << 4); + dest[4 * i + 3] = (buffer[4 * (i + 1) - 4] >> 4) + ((buffer[4 * (i + 1) - 4] & 0x0F) << 4); + } + break; + case 2: + for (i = 0; i < 8; i++) + { + dest[4 * i] = buffer[4 * (7 - i)]; + dest[4 * i + 1] = buffer[4 * (7 - i) + 1]; + dest[4 * i + 2] = buffer[4 * (7 - i) + 2]; + dest[4 * i + 3] = buffer[4 * (7 - i) + 3]; + } + break; + case 3: + for (i = 0; i < 32; i++) + { + dest[i] = (buffer[31 - i] >> 4) + ((buffer[31 - i] & 0x0F) << 4); + } + break; } } void sub_81291A4(struct PlaceDecorationGraphicsDataBuffer *data) { u16 i; - for (i = 0; i < 64; i ++) - { + for (i = 0; i < 64; i++) sub_8129088(&data->image[i * 32], data->tiles[i]); - } } u16 sub_81291CC(u16 tile) @@ -1975,7 +1941,7 @@ void sub_81291E8(struct PlaceDecorationGraphicsDataBuffer *data) u8 shape; shape = data->decoration->shape; - for (i = 0; i < gUnknown_085A71B0[shape].size; i ++) + for (i = 0; i < gUnknown_085A71B0[shape].size; i++) { data->tiles[gUnknown_085A71B0[shape].tiles[i]] = sub_81291CC(data->decoration->tiles[gUnknown_085A71B0[shape].y[i]] * 8 + gUnknown_085A71B0[shape].x[i]); } @@ -1988,10 +1954,10 @@ void SetDecorSelectionBoxOamAttributes(u8 decorShape) sDecorSelectorOam.objMode = ST_OAM_OBJ_NORMAL; sDecorSelectorOam.mosaic = 0; sDecorSelectorOam.bpp = ST_OAM_4BPP; - sDecorSelectorOam.shape = gUnknown_085A7250[decorShape].shape; + sDecorSelectorOam.shape = sDecorationMovementInfo[decorShape].shape; sDecorSelectorOam.x = 0; sDecorSelectorOam.matrixNum = 0; - sDecorSelectorOam.size = gUnknown_085A7250[decorShape].size; + sDecorSelectorOam.size = sDecorationMovementInfo[decorShape].size; sDecorSelectorOam.tileNum = 0; sDecorSelectorOam.priority = 0; sDecorSelectorOam.paletteNum = 0; @@ -2013,14 +1979,11 @@ void sub_81292E8(struct Sprite *sprite) if (sprite->data[7] == 0) { if (sprite->data[6] < 15) - { - sprite->invisible = FALSE; - } + sprite->invisible = 0; else - { - sprite->invisible = TRUE; - } - sprite->data[6] ++; + sprite->invisible = 1; + + sprite->data[6]++; sprite->data[6] &= 0x1F; } else @@ -2034,16 +1997,15 @@ u8 gpu_pal_decompress_alloc_tag_and_upload(struct PlaceDecorationGraphicsDataBuf sub_8129048(data); data->decoration = &gDecorations[decor]; if (data->decoration->permission == DECORPERM_SPRITE) - { return AddPseudoEventObject(data->decoration->tiles[0], SpriteCallbackDummy, 0, 0, 1); - } - FreeSpritePaletteByTag(OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG); + + FreeSpritePaletteByTag(PLACE_DECORATION_SELECTOR_TAG); sub_81291E8(data); SetDecorSelectionBoxOamAttributes(data->decoration->shape); sub_81291A4(data); sub_8129068(data->palette, ((u16 *)gTilesetPointer_SecretBaseRedCave->metatiles)[(data->decoration->tiles[0] * 8) + 7] >> 12); LoadSpritePalette(&gUnknown_085A72BC); - return CreateSprite(&sDecorSelectorSpriteTemplate, 0, 0, 0); + return CreateSprite(&sDecorationSelectorSpriteTemplate, 0, 0, 0); } u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decor) @@ -2054,9 +2016,8 @@ u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decor) u8 spriteId; if (!AllocItemIconTemporaryBuffers()) - { return MAX_SPRITES; - } + LZDecompressWram(GetDecorationIconPicOrPalette(decor, 0), gItemIconDecompressionBuffer); CopyItemIconPicTo4x4Buffer(gItemIconDecompressionBuffer, gItemIcon4x4Buffer); sheet.data = gItemIcon4x4Buffer; @@ -2078,10 +2039,9 @@ u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decor) const u32 *GetDecorationIconPicOrPalette(u16 decor, u8 mode) { - if (decor > 120) - { + if (decor > NUM_DECORATIONS) decor = DECOR_NONE; - } + return gUnknown_085A6BE8[decor][mode]; } @@ -2125,13 +2085,12 @@ u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u1 { u8 spriteId; - if (decor > 120) + if (decor > NUM_DECORATIONS) { spriteId = AddDecorationIconObjectFromIconTable(tilesTag, paletteTag, DECOR_NONE); if (spriteId == MAX_SPRITES) - { return MAX_SPRITES; - } + gSprites[spriteId].pos2.x = x + 4; gSprites[spriteId].pos2.y = y + 4; } @@ -2139,37 +2098,32 @@ u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u1 { spriteId = AddDecorationIconObjectFromEventObject(tilesTag, paletteTag, decor); if (spriteId == MAX_SPRITES) - { return MAX_SPRITES; - } + gSprites[spriteId].pos2.x = x; if (decor == DECOR_SILVER_SHIELD || decor == DECOR_GOLD_SHIELD) - { gSprites[spriteId].pos2.y = y - 4; - } else - { gSprites[spriteId].pos2.y = y; - } } else { spriteId = AddDecorationIconObjectFromIconTable(tilesTag, paletteTag, decor); if (spriteId == MAX_SPRITES) - { return MAX_SPRITES; - } + gSprites[spriteId].pos2.x = x + 4; gSprites[spriteId].pos2.y = y + 4; } + gSprites[spriteId].oam.priority = priority; return spriteId; } void sub_81296EC(u8 idx) { - gUnknown_0203A17C.items[idx] = 0; - gUnknown_0203A17C.pos[idx] = 0; + gDecorationContext.items[idx] = 0; + gDecorationContext.pos[idx] = 0; } void sub_8129708(void) @@ -2182,11 +2136,11 @@ void sub_8129708(void) { gSpecialVar_Result = 1; } - else if (gDecorations[gUnknown_0203A17C.items[sDecorRearrangementDataBuffer[gSpecialVar_0x8004].idx]].permission == DECORPERM_SPRITE) + else if (gDecorations[gDecorationContext.items[sDecorRearrangementDataBuffer[gSpecialVar_0x8004].idx]].permission == DECORPERM_SPRITE) { gSpecialVar_0x8005 = sDecorRearrangementDataBuffer[gSpecialVar_0x8004].flagId; sub_81296EC(sDecorRearrangementDataBuffer[gSpecialVar_0x8004].idx); - for (i = 0; i < gMapHeader.events->eventObjectCount; i ++) + for (i = 0; i < gMapHeader.events->eventObjectCount; i++) { if (gMapHeader.events->eventObjects[i].flagId == gSpecialVar_0x8005) { @@ -2201,7 +2155,7 @@ void sub_81297AC(void) { u8 i; - for (i = 0; i < gMapHeader.events->eventObjectCount; i ++) + for (i = 0; i < gMapHeader.events->eventObjectCount; i++) { if (gMapHeader.events->eventObjects[i].flagId == gSpecialVar_0x8004) { @@ -2220,20 +2174,21 @@ void sub_81297F8(void) int posY; u8 perm; - for (i = 0; i < sCurDecorSelectedInRearrangement; i ++) + for (i = 0; i < sCurDecorSelectedInRearrangement; i++) { - perm = gDecorations[gUnknown_0203A17C.items[sDecorRearrangementDataBuffer[i].idx]].permission; - posX = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[i].idx] >> 4; - posY = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[i].idx] & 0x0F; + perm = gDecorations[gDecorationContext.items[sDecorRearrangementDataBuffer[i].idx]].permission; + posX = gDecorationContext.pos[sDecorRearrangementDataBuffer[i].idx] >> 4; + posY = gDecorationContext.pos[sDecorRearrangementDataBuffer[i].idx] & 0x0F; if (perm != DECORPERM_SPRITE) { - for (y = 0; y < sDecorRearrangementDataBuffer[i].height; y ++) + for (y = 0; y < sDecorRearrangementDataBuffer[i].height; y++) { - for (x = 0; x < sDecorRearrangementDataBuffer[i].width; x ++) + for (x = 0; x < sDecorRearrangementDataBuffer[i].width; x++) { MapGridSetMetatileEntryAt(posX + 7 + x, posY + 7 - y, gMapHeader.mapLayout->map[posX + x + gMapHeader.mapLayout->width * (posY - y)] | 0x3000); } } + sub_81296EC(sDecorRearrangementDataBuffer[i].idx); } } @@ -2243,35 +2198,33 @@ void sub_81298EC(u8 taskId) { switch (gTasks[taskId].data[2]) { - case 0: - sub_81297F8(); - gTasks[taskId].data[2] = 1; - break; - case 1: - if (!gPaletteFade.active) { - DrawWholeMapView(); - ScriptContext1_SetupScript(EventScript_275D2E); - ClearDialogWindowAndFrame(0, 1); - gTasks[taskId].data[2] = 2; - } - break; - case 2: - ScriptContext2_Enable(); - IdentifyOwnedDecorationsCurrentlyInUseInternal(taskId); - pal_fill_black(); - gTasks[taskId].data[2] = 3; - break; - case 3: - if (IsWeatherNotFadingIn() == TRUE) - { - StringExpandPlaceholders(gStringVar4, gText_DecorationReturnedToPC); - DisplayItemMessageOnField(taskId, gStringVar4, sub_8129D64); - if (gMapHeader.regionMapSectionId == MAPSEC_SECRET_BASE) - { - TV_PutSecretBaseVisitOnTheAir(); - } - } - break; + case 0: + sub_81297F8(); + gTasks[taskId].data[2] = 1; + break; + case 1: + if (!gPaletteFade.active) { + DrawWholeMapView(); + ScriptContext1_SetupScript(EventScript_275D2E); + ClearDialogWindowAndFrame(0, 1); + gTasks[taskId].data[2] = 2; + } + break; + case 2: + ScriptContext2_Enable(); + IdentifyOwnedDecorationsCurrentlyInUseInternal(taskId); + pal_fill_black(); + gTasks[taskId].data[2] = 3; + break; + case 3: + if (IsWeatherNotFadingIn() == TRUE) + { + StringExpandPlaceholders(gStringVar4, gText_DecorationReturnedToPC); + DisplayItemMessageOnField(taskId, gStringVar4, sub_8129D64); + if (gMapHeader.regionMapSectionId == MAPSEC_SECRET_BASE) + TV_PutSecretBaseVisitOnTheAir(); + } + break; } } @@ -2279,14 +2232,12 @@ void sub_81298EC(u8 taskId) bool8 sub_81299AC(u8 taskId) { u16 i; - - for (i = 0; i < gUnknown_0203A17C.size; i ++) + for (i = 0; i < gDecorationContext.size; i++) { - if (gUnknown_0203A17C.items[i] != DECOR_NONE) - { + if (gDecorationContext.items[i] != DECOR_NONE) return TRUE; - } } + return FALSE; } @@ -2295,15 +2246,12 @@ void SetUpPuttingAwayDecorationPlayerAvatar(void) GetPlayerFacingDirection(); sDecor_CameraSpriteObjectIdx1 = gSprites[gFieldCamera.spriteId].data[0]; sub_812A39C(); - gFieldCamera.spriteId = CreateSprite(&gUnknown_085A7404, 0x78, 0x50, 0); + gFieldCamera.spriteId = CreateSprite(&gUnknown_085A7404, 120, 80, 0); if (gSaveBlock2Ptr->playerGender == MALE) - { - sDecor_CameraSpriteObjectIdx2 = AddPseudoEventObject(0xC1, SpriteCallbackDummy, 0x88, 0x48, 0); - } + sDecor_CameraSpriteObjectIdx2 = AddPseudoEventObject(EVENT_OBJ_GFX_BRENDAN_DECORATING, SpriteCallbackDummy, 136, 72, 0); else - { - sDecor_CameraSpriteObjectIdx2 = AddPseudoEventObject(0xC2, SpriteCallbackDummy, 0x88, 0x48, 0); - } + sDecor_CameraSpriteObjectIdx2 = AddPseudoEventObject(EVENT_OBJ_GFX_MAY_DECORATING, SpriteCallbackDummy, 136, 72, 0); + gSprites[sDecor_CameraSpriteObjectIdx2].oam.priority = 1; DestroySprite(&gSprites[sDecor_CameraSpriteObjectIdx1]); sDecor_CameraSpriteObjectIdx1 = gFieldCamera.spriteId; @@ -2317,27 +2265,27 @@ void sub_8129ABC(u8 taskId) data = gTasks[taskId].data; switch (data[2]) { - case 0: - if (!gPaletteFade.active) - { - sub_8127ACC(taskId); - data[2] = 1; - data[6] = 1; - data[5] = 1; - } - break; - case 1: - SetUpPuttingAwayDecorationPlayerAvatar(); - pal_fill_black(); - data[2] = 2; - break; - case 2: - if (IsWeatherNotFadingIn() == TRUE) - { - data[12] = 1; - sub_8129B34(taskId); - } - break; + case 0: + if (!gPaletteFade.active) + { + sub_8127ACC(taskId); + data[2] = 1; + data[6] = 1; + data[5] = 1; + } + break; + case 1: + SetUpPuttingAwayDecorationPlayerAvatar(); + pal_fill_black(); + data[2] = 2; + break; + case 2: + if (IsWeatherNotFadingIn() == TRUE) + { + data[12] = 1; + sub_8129B34(taskId); + } + break; } } @@ -2347,8 +2295,8 @@ void sub_8129B34(u8 taskId) gSprites[sDecor_CameraSpriteObjectIdx1].data[7] = 0; gSprites[sDecor_CameraSpriteObjectIdx1].invisible = FALSE; gSprites[sDecor_CameraSpriteObjectIdx1].callback = sub_812A36C; - gSprites[sDecor_CameraSpriteObjectIdx2].pos1.x = 0x88; - gSprites[sDecor_CameraSpriteObjectIdx2].pos1.y = 0x48; + gSprites[sDecor_CameraSpriteObjectIdx2].pos1.x = 136; + gSprites[sDecor_CameraSpriteObjectIdx2].pos1.y = 72; gTasks[taskId].data[10] = 0; gTasks[taskId].func = sub_8128E18; } @@ -2403,9 +2351,7 @@ void sub_8129C74(u8 taskId) void sub_8129D64(u8 taskId) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) - { sub_8129B34(taskId); - } } void sub_8129D8C(u8 decor, struct DecorRearrangementDataBuffer *data) @@ -2414,39 +2360,48 @@ void sub_8129D8C(u8 decor, struct DecorRearrangementDataBuffer *data) { data->width = 1; data->height = 1; - } else if (gDecorations[decor].shape == DECORSHAPE_2x1) + } + else if (gDecorations[decor].shape == DECORSHAPE_2x1) { data->width = 2; data->height = 1; - } else if (gDecorations[decor].shape == DECORSHAPE_3x1) + } + else if (gDecorations[decor].shape == DECORSHAPE_3x1) { data->width = 3; data->height = 1; - } else if (gDecorations[decor].shape == DECORSHAPE_4x2) + } + else if (gDecorations[decor].shape == DECORSHAPE_4x2) { data->width = 4; data->height = 2; - } else if (gDecorations[decor].shape == DECORSHAPE_2x2) + } + else if (gDecorations[decor].shape == DECORSHAPE_2x2) { data->width = 2; data->height = 2; - } else if (gDecorations[decor].shape == DECORSHAPE_1x2) + } + else if (gDecorations[decor].shape == DECORSHAPE_1x2) { data->width = 1; data->height = 2; - } else if (gDecorations[decor].shape == DECORSHAPE_1x3) + } + else if (gDecorations[decor].shape == DECORSHAPE_1x3) { data->width = 1; data->height = 3; - } else if (gDecorations[decor].shape == DECORSHAPE_2x4) + } + else if (gDecorations[decor].shape == DECORSHAPE_2x4) { data->width = 2; data->height = 4; - } else if (gDecorations[decor].shape == DECORSHAPE_3x3) + } + else if (gDecorations[decor].shape == DECORSHAPE_3x3) { data->width = 3; data->height = 3; - } else if (gDecorations[decor].shape == DECORSHAPE_3x2) + } + else if (gDecorations[decor].shape == DECORSHAPE_3x2) { data->width = 3; data->height = 2; @@ -2457,8 +2412,8 @@ void sub_8129E0C(u8 x, u8 y) { gSprites[sDecor_CameraSpriteObjectIdx1].invisible = TRUE; gSprites[sDecor_CameraSpriteObjectIdx1].callback = SpriteCallbackDummy; - gSprites[sDecor_CameraSpriteObjectIdx2].pos1.x = (x << 4) + 0x88; - gSprites[sDecor_CameraSpriteObjectIdx2].pos1.y = (y << 4) + 0x48; + gSprites[sDecor_CameraSpriteObjectIdx2].pos1.x = (x << 4) + 136; + gSprites[sDecor_CameraSpriteObjectIdx2].pos1.y = (y << 4) + 72; } bool8 sub_8129E74(u8 taskId, u8 idx, struct DecorRearrangementDataBuffer *data) @@ -2471,18 +2426,18 @@ bool8 sub_8129E74(u8 taskId, u8 idx, struct DecorRearrangementDataBuffer *data) x = gTasks[taskId].data[0] - 7; y = gTasks[taskId].data[1] - 7; - xOff = gUnknown_0203A17C.pos[idx] >> 4; - yOff = gUnknown_0203A17C.pos[idx] & 0x0F; + xOff = gDecorationContext.pos[idx] >> 4; + yOff = gDecorationContext.pos[idx] & 0x0F; ht = data->height; - if (gUnknown_0203A17C.items[idx] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(xOff + 7, yOff + 7) == 0x28C) - { - ht --; - } + if (gDecorationContext.items[idx] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(xOff + 7, yOff + 7) == 0x28C) + ht--; + if (x >= xOff && x < xOff + data->width && y > yOff - ht && y <= yOff) { sub_8129E0C(data->width - (x - xOff + 1), yOff - y); return TRUE; } + return FALSE; } @@ -2492,9 +2447,9 @@ void sub_8129F20(void) u8 yOff; u16 i; - xOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx] >> 4; - yOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx] & 0x0F; - for (i = 0; i < 0x40; i ++) + xOff = gDecorationContext.pos[sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx] >> 4; + yOff = gDecorationContext.pos[sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx] & 0x0F; + for (i = 0; i < 0x40; i++) { if (gSaveBlock1Ptr->eventObjectTemplates[i].x == xOff && gSaveBlock1Ptr->eventObjectTemplates[i].y == yOff && !FlagGet(gSaveBlock1Ptr->eventObjectTemplates[i].flagId)) { @@ -2508,13 +2463,13 @@ bool8 sub_8129FC8(u8 taskId) { u16 i; - for (i = 0; i < gUnknown_0203A17C.size; i ++) + for (i = 0; i < gDecorationContext.size; i++) { - if (gUnknown_0203A17C.items[i] != 0) + if (gDecorationContext.items[i] != 0) { - if (gDecorations[gUnknown_0203A17C.items[i]].permission == DECORPERM_SPRITE) + if (gDecorations[gDecorationContext.items[i]].permission == DECORPERM_SPRITE) { - sub_8129D8C(gUnknown_0203A17C.items[i], sDecorRearrangementDataBuffer); + sub_8129D8C(gDecorationContext.items[i], sDecorRearrangementDataBuffer); if (sub_8129E74(taskId, i, sDecorRearrangementDataBuffer) == TRUE) { sDecorRearrangementDataBuffer->idx = i; @@ -2535,11 +2490,11 @@ void sub_812A040(u8 left, u8 top, u8 right, u8 bottom) u8 yOff; u8 decorIdx; - for (i = 0; i < gUnknown_0203A17C.size; i ++) + for (i = 0; i < gDecorationContext.size; i++) { - decorIdx = gUnknown_0203A17C.items[i]; - xOff = gUnknown_0203A17C.pos[i] >> 4; - yOff = gUnknown_0203A17C.pos[i] & 0x0F; + decorIdx = gDecorationContext.items[i]; + xOff = gDecorationContext.pos[i] >> 4; + yOff = gDecorationContext.pos[i] & 0x0F; if (decorIdx != 0 && gDecorations[decorIdx].permission == DECORPERM_SPRITE && left <= xOff && top <= yOff && right >= xOff && bottom >= yOff) { sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx = i; @@ -2560,9 +2515,9 @@ void sub_812A0E8(u8 taskId) sCurDecorSelectedInRearrangement = 0; if (sub_8129FC8(taskId) != TRUE) { - for (i = 0; i < gUnknown_0203A17C.size; i++) + for (i = 0; i < gDecorationContext.size; i++) { - var1 = gUnknown_0203A17C.items[i]; + var1 = gDecorationContext.items[i]; if (var1 != DECOR_NONE) { sub_8129D8C(var1, &sDecorRearrangementDataBuffer[0]); @@ -2576,8 +2531,8 @@ void sub_812A0E8(u8 taskId) } if (sCurDecorSelectedInRearrangement != 0) { - xOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[0].idx] >> 4; - yOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[0].idx] & 0x0F; + xOff = gDecorationContext.pos[sDecorRearrangementDataBuffer[0].idx] >> 4; + yOff = gDecorationContext.pos[sDecorRearrangementDataBuffer[0].idx] & 0x0F; var1 = yOff - sDecorRearrangementDataBuffer[0].height + 1; var2 = sDecorRearrangementDataBuffer[0].width + xOff - 1; @@ -2622,47 +2577,43 @@ void sub_812A25C(u8 taskId) { switch (gTasks[taskId].data[2]) { - case 0: - if (!gPaletteFade.active) - { - sub_8127B04(taskId); - gTasks[taskId].data[2] = 1; - } - break; - case 1: - sub_812A3C8(); - gFieldCallback = sub_812A334; - SetMainCallback2(CB2_ReturnToField); - DestroyTask(taskId); - break; + case 0: + if (!gPaletteFade.active) + { + sub_8127B04(taskId); + gTasks[taskId].data[2] = 1; + } + break; + case 1: + sub_812A3C8(); + gFieldCallback = sub_812A334; + SetMainCallback2(CB2_ReturnToField); + DestroyTask(taskId); + break; } } void sub_812A2C4(u8 taskId) { - s16 *data; - - data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; switch (data[2]) { - case 0: - HideSecretBaseDecorationSprites(); - data[2] ++; - break; - case 1: - ScriptContext1_SetupScript(EventScript_275D0C); - data[2] ++; - break; - case 2: - ScriptContext2_Enable(); - data[2] ++; - break; - case 3: - if (IsWeatherNotFadingIn() == TRUE) - { - gTasks[taskId].func = sub_8126B80; - } - break; + case 0: + HideSecretBaseDecorationSprites(); + data[2]++; + break; + case 1: + ScriptContext1_SetupScript(EventScript_275D0C); + data[2]++; + break; + case 2: + ScriptContext2_Enable(); + data[2]++; + break; + case 3: + if (IsWeatherNotFadingIn() == TRUE) + gTasks[taskId].func = HandleDecorationActionsMenuInput; + break; } } @@ -2672,47 +2623,39 @@ void sub_812A334(void) pal_fill_black(); DrawDialogueFrame(0, 1); - sub_8126ABC(); + InitDecorationActionsWindow(); taskId = CreateTask(sub_812A2C4, 8); gTasks[taskId].data[2] = 0; } void sub_812A36C(struct Sprite *sprite) { - sprite->data[0] ++; + sprite->data[0]++; sprite->data[0] &= 0x1F; if (sprite->data[0] > 15) - { sprite->invisible = TRUE; - } else - { sprite->invisible = FALSE; - } } void sub_812A39C(void) { if (gSaveBlock2Ptr->playerGender == MALE) - { LoadSpritePalette(&gUnknown_085A73D8); - } else - { LoadSpritePalette(&gUnknown_085A73E0); - } } void sub_812A3C8(void) { - FreeSpritePaletteByTag(OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG); + FreeSpritePaletteByTag(PLACE_DECORATION_PLAYER_TAG); } void sub_812A3D4(u8 taskId) { if (IsSelectedDecorInThePC() == TRUE) { - StringCopy(gStringVar1, gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].name); + StringCopy(gStringVar1, gDecorations[gCurDecorationItems[gCurDecorationIndex]].name); StringExpandPlaceholders(gStringVar4, gText_DecorationWillBeDiscarded); DisplayItemMessageOnField(taskId, gStringVar4, sub_812A458); } @@ -2731,9 +2674,9 @@ void sub_812A458(u8 taskId) void sub_812A478(u8 taskId) { - gCurDecorInventoryItems[gCurDecorationIndex] = DECOR_NONE; - sCurDecorCatCount = CountDecorationCategoryN(sCurDecorationCategory); - CondenseDecorationCategoryN(sCurDecorationCategory); + gCurDecorationItems[gCurDecorationIndex] = DECOR_NONE; + sNumOwnedDecorationsInCurCategory = GetNumOwnedDecorationsInCategory(sCurDecorationCategory); + CondenseDecorationsInCategory(sCurDecorationCategory); IdentifyOwnedDecorationsCurrentlyInUseInternal(taskId); StringExpandPlaceholders(gStringVar4, gText_DecorationThrownAway); DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C); diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c index 308320206..80646c69c 100644 --- a/src/decoration_inventory.c +++ b/src/decoration_inventory.c @@ -32,7 +32,7 @@ void SetDecorationInventoriesPointers(void) SET_DECOR_INV(5, gSaveBlock1Ptr->decorPoster); SET_DECOR_INV(6, gSaveBlock1Ptr->decorDoll); SET_DECOR_INV(7, gSaveBlock1Ptr->decorCushion); - sub_8126968(); + InitDecorationContextItems(); } static void ClearDecorationInventory(u8 idx) @@ -120,7 +120,7 @@ bool8 DecorationCheckSpace(u8 decor) s8 DecorationRemove(u8 decor) { u8 i; - u8 idx; + u8 category; i = 0; if (decor == DECOR_NONE) @@ -129,38 +129,38 @@ s8 DecorationRemove(u8 decor) } for (i = 0; i < gDecorationInventories[gDecorations[decor].category].size; i ++) { - idx = gDecorations[decor].category; - if (gDecorationInventories[idx].items[i] == decor) + category = gDecorations[decor].category; + if (gDecorationInventories[category].items[i] == decor) { - gDecorationInventories[idx].items[i] = DECOR_NONE; - CondenseDecorationCategoryN(idx); + gDecorationInventories[category].items[i] = DECOR_NONE; + CondenseDecorationsInCategory(category); return 1; } } return 0; } -void CondenseDecorationCategoryN(u8 idx) +void CondenseDecorationsInCategory(u8 category) { u8 i; u8 j; u8 tmp; - for (i = 0; i < gDecorationInventories[idx].size; i ++) + for (i = 0; i < gDecorationInventories[category].size; i ++) { - for (j = i + 1; j < gDecorationInventories[idx].size; j ++) + for (j = i + 1; j < gDecorationInventories[category].size; j ++) { - if (gDecorationInventories[idx].items[j] != DECOR_NONE && (gDecorationInventories[idx].items[i] == DECOR_NONE || gDecorationInventories[idx].items[i] > gDecorationInventories[idx].items[j])) + if (gDecorationInventories[category].items[j] != DECOR_NONE && (gDecorationInventories[category].items[i] == DECOR_NONE || gDecorationInventories[category].items[i] > gDecorationInventories[category].items[j])) { - tmp = gDecorationInventories[idx].items[i]; - gDecorationInventories[idx].items[i] = gDecorationInventories[idx].items[j]; - gDecorationInventories[idx].items[j] = tmp; + tmp = gDecorationInventories[category].items[i]; + gDecorationInventories[category].items[i] = gDecorationInventories[category].items[j]; + gDecorationInventories[category].items[j] = tmp; } } } } -u8 CountDecorationCategoryN(u8 idx) +u8 GetNumOwnedDecorationsInCategory(u8 idx) { u8 i; u8 ct; @@ -176,15 +176,14 @@ u8 CountDecorationCategoryN(u8 idx) return ct; } -u8 CountDecorations(void) +u8 GetNumOwnedDecorations(void) { - u8 idx; - u8 ct; + u8 category; + u8 count; - ct = 0; - for (idx = 0; idx < 8; idx ++) - { - ct += CountDecorationCategoryN(idx); - } - return ct; + count = 0; + for (category = 0; category < DECORCAT_COUNT; category++) + count += GetNumOwnedDecorationsInCategory(category); + + return count; } diff --git a/src/menu_helpers.c b/src/menu_helpers.c index b5745d812..801e2546b 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -344,17 +344,17 @@ void sub_812220C(struct ItemSlot *slots, u8 count, u8 *arg2, u8 *usedSlotsCount, *arg2 = (*usedSlotsCount); } -void sub_812225C(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3) +void sub_812225C(u16 *scrollOffset, u16 *cursorPos, u8 maxShownItems, u8 numItems) { - if ((*arg0) != 0 && (*arg0) + arg2 > arg3) - (*arg0) = arg3 - arg2; + if (*scrollOffset != 0 && *scrollOffset + maxShownItems > numItems) + *scrollOffset = numItems - maxShownItems; - if ((*arg0) + (*arg1) >= arg3) + if (*scrollOffset + *cursorPos >= numItems) { - if (arg3 == 0) - (*arg1) = 0; + if (numItems == 0) + *cursorPos = 0; else - (*arg1) = arg3 - 1; + *cursorPos = numItems - 1; } } diff --git a/src/player_pc.c b/src/player_pc.c index 49b9cc5f5..08f24d379 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -412,9 +412,9 @@ static void PlayerPC_Mailbox(u8 taskId) } } -static void PlayerPC_Decoration(u8 var) +static void PlayerPC_Decoration(u8 taskId) { - sub_8126B2C(var); //DoPlayerPCDecoration(var); + DoPlayerRoomDecorationMenu(taskId); } static void PlayerPC_TurnOff(u8 taskId) diff --git a/src/secret_base.c b/src/secret_base.c index a311db37d..ac35a090a 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -854,7 +854,7 @@ void GetCurSecretBaseRegistrationValidity(void) { if (IsSecretBaseRegistered(VarGet(VAR_CURRENT_SECRET_BASE)) == TRUE) gSpecialVar_Result = 1; - else if (GetNumRegisteredSecretBases() > 9) + else if (GetNumRegisteredSecretBases() >= 10) gSpecialVar_Result = 2; else gSpecialVar_Result = 0; @@ -868,7 +868,7 @@ void ToggleCurSecretBaseRegistry(void) void ShowSecretBaseDecorationMenu(void) { - CreateTask(sub_8126AD8, 0); + CreateTask(DoSecretBaseDecorationMenu, 0); } void ShowSecretBaseRegistryMenu(void) diff --git a/src/trader.c b/src/trader.c index 97bc4626f..dcf1fa076 100644 --- a/src/trader.c +++ b/src/trader.c @@ -142,7 +142,7 @@ void ScrSpecial_DoesPlayerHaveNoDecorations(void) for (i = 0; i < 8; i++) { - if (CountDecorationCategoryN(i)) + if (GetNumOwnedDecorationsInCategory(i)) { gSpecialVar_Result = FALSE; return; @@ -157,21 +157,21 @@ void ScrSpecial_IsDecorationFull(void) if (gDecorations[gSpecialVar_0x8004].category != gDecorations[gSpecialVar_0x8006].category && GetFirstEmptyDecorSlot(gDecorations[gSpecialVar_0x8004].category) == -1) { - sub_8127250(gStringVar2, gDecorations[gSpecialVar_0x8004].category); + CopyDecorationCategoryName(gStringVar2, gDecorations[gSpecialVar_0x8004].category); gSpecialVar_Result = TRUE; } } void ScrSpecial_TraderMenuGiveDecoration(void) { - CreateTask(sub_8127208, 0); + CreateTask(ShowDecorationCategoriesWindow, 0); } void sub_8133DA0(u8 taskId) { if (IsSelectedDecorInThePC() == TRUE) { - gSpecialVar_0x8006 = gCurDecorInventoryItems[gCurDecorationIndex]; + gSpecialVar_0x8006 = gCurDecorationItems[gCurDecorationIndex]; StringCopy(gStringVar3, gDecorations[gSpecialVar_0x8004].name); StringCopy(gStringVar2, gDecorations[gSpecialVar_0x8006].name); } @@ -183,7 +183,7 @@ void sub_8133DA0(u8 taskId) EnableBothScriptContexts(); } -void sub_8133E1C(u8 taskId) +void ExitTraderMenu(u8 taskId) { gSpecialVar_0x8006 = 0; DestroyTask(taskId); -- cgit v1.2.3 From b251ddf3b45a6d95d38c6c5d1561067d0223c691 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 6 Apr 2019 13:58:06 -0500 Subject: Add explicit return to Alloc funcs --- src/alloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/alloc.c b/src/alloc.c index 2944bc1c6..4d1a9fe5c 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -178,12 +178,12 @@ void InitHeap(void *heapStart, u32 heapSize) void *Alloc(u32 size) { - AllocInternal(sHeapStart, size); + return AllocInternal(sHeapStart, size); } void *AllocZeroed(u32 size) { - AllocZeroedInternal(sHeapStart, size); + return AllocZeroedInternal(sHeapStart, size); } void Free(void *pointer) -- cgit v1.2.3 From c3cfd6065825ec8ddd5e1782998071518efaa322 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 6 Apr 2019 15:16:05 -0500 Subject: Generate zoom_tiles palette from correct image --- src/graphics.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/graphics.c b/src/graphics.c index fd5f24d49..531d337a2 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1363,7 +1363,7 @@ const u16 gPokenavMessageBox_Pal[] = INCBIN_U16("graphics/pokenav/message.gbapal const u32 gPokenavMessageBox_Gfx[] = INCBIN_U32("graphics/pokenav/message.4bpp.lz"); const u32 gPokenavMessageBox_Tilemap[] = INCBIN_U32("graphics/pokenav/message.bin.lz"); -const u16 gHoennMapZoomIcons_Pal[] = INCBIN_U16("graphics/pokenav/zoom.gbapal"); +const u16 gHoennMapZoomIcons_Pal[] = INCBIN_U16("graphics/pokenav/zoom_tiles.gbapal"); const u32 gHoennMapZoomIcons_Gfx[] = INCBIN_U32("graphics/pokenav/zoom.4bpp.lz"); const u16 gPokenavConditionCancel_Pal[] = INCBIN_U16("graphics/pokenav/cancel.gbapal"); -- cgit v1.2.3